@openmrs/esm-framework 3.1.10-pre.92 → 3.1.11-pre.597
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/README.md +2 -8
- package/dist/openmrs-esm-framework.js +2 -21
- package/dist/openmrs-esm-framework.js.LICENSE.txt +16 -0
- package/dist/openmrs-esm-framework.js.map +1 -1
- package/docs/API.md +4381 -0
- package/docs/classes/OpenmrsFetchError.md +186 -0
- package/docs/enums/Type.md +85 -0
- package/docs/enums/VisitMode.md +41 -0
- package/docs/enums/VisitStatus.md +30 -0
- package/docs/interfaces/AppState.md +3 -0
- package/docs/interfaces/BreadcrumbRegistration.md +30 -0
- package/docs/interfaces/BreadcrumbSettings.md +70 -0
- package/docs/interfaces/CancelLoading.md +17 -0
- package/docs/interfaces/ClearDynamicRoutesMessage.md +29 -0
- package/docs/interfaces/ComponentConfig.md +30 -0
- package/docs/interfaces/ComponentDecoratorOptions.md +52 -0
- package/docs/interfaces/ComponentDefinition.md +101 -0
- package/docs/interfaces/Config.md +182 -0
- package/docs/interfaces/ConfigObject.md +182 -0
- package/docs/interfaces/ConfigSchema.md +45 -0
- package/docs/interfaces/ConfigStore.md +34 -0
- package/docs/interfaces/ConfigurableLinkProps.md +25 -0
- package/docs/interfaces/ConnectivityChangedEvent.md +19 -0
- package/docs/interfaces/CurrentPatientOptions.md +27 -0
- package/docs/interfaces/CurrentUserOptions.md +27 -0
- package/docs/interfaces/CurrentUserWithResponseOption.md +29 -0
- package/docs/interfaces/CurrentUserWithoutResponseOption.md +29 -0
- package/docs/interfaces/ExtensionComponentDefinition.md +153 -0
- package/docs/interfaces/ExtensionData.md +41 -0
- package/docs/interfaces/ExtensionDetails.md +81 -0
- package/docs/interfaces/ExtensionInfo.md +140 -0
- package/docs/interfaces/ExtensionInstance.md +19 -0
- package/docs/interfaces/ExtensionMeta.md +7 -0
- package/docs/interfaces/ExtensionProps.md +44 -0
- package/docs/interfaces/ExtensionRegistration.md +98 -0
- package/docs/interfaces/ExtensionSlotBaseProps.md +54 -0
- package/docs/interfaces/ExtensionSlotConfig.md +52 -0
- package/docs/interfaces/ExtensionSlotConfigObject.md +41 -0
- package/docs/interfaces/ExtensionSlotConfigsStore.md +32 -0
- package/docs/interfaces/ExtensionSlotConfigureValueObject.md +7 -0
- package/docs/interfaces/ExtensionSlotInfo.md +50 -0
- package/docs/interfaces/ExtensionSlotInstance.md +51 -0
- package/docs/interfaces/ExtensionStore.md +34 -0
- package/docs/interfaces/FHIRCode.md +30 -0
- package/docs/interfaces/FHIRRequestObj.md +41 -0
- package/docs/interfaces/FHIRResource.md +46 -0
- package/docs/interfaces/FetchHeaders.md +7 -0
- package/docs/interfaces/FetchResponse.md +285 -0
- package/docs/interfaces/ImplementerToolsConfigStore.md +19 -0
- package/docs/interfaces/ImportMap.md +19 -0
- package/docs/interfaces/LegacyAppExtensionDefinition.md +170 -0
- package/docs/interfaces/Lifecycle.md +68 -0
- package/docs/interfaces/Location.md +41 -0
- package/docs/interfaces/LoggedInUser.md +133 -0
- package/docs/interfaces/LoggedInUserFetchResponse.md +281 -0
- package/docs/interfaces/MessageServiceWorkerResult.md +47 -0
- package/docs/interfaces/ModernAppExtensionDefinition.md +196 -0
- package/docs/interfaces/NavigateOptions.md +19 -0
- package/docs/interfaces/NavigationContext.md +50 -0
- package/docs/interfaces/NetworkRequestFailedEvent.md +49 -0
- package/docs/interfaces/NewVisitPayload.md +74 -0
- package/docs/interfaces/OfflinePatientArgs.md +34 -0
- package/docs/interfaces/OfflinePatientDataSyncHandler.md +52 -0
- package/docs/interfaces/OfflinePatientDataSyncState.md +99 -0
- package/docs/interfaces/OfflinePatientDataSyncStore.md +37 -0
- package/docs/interfaces/OfflineSynchronizationStore.md +27 -0
- package/docs/interfaces/OmrsServiceWorkerEvent.md +31 -0
- package/docs/interfaces/OmrsServiceWorkerMessage.md +35 -0
- package/docs/interfaces/OnImportMapChangedMessage.md +40 -0
- package/docs/interfaces/OnlyThePatient.md +29 -0
- package/docs/interfaces/OpenmrsReactComponentProps.md +19 -0
- package/docs/interfaces/OpenmrsReactComponentState.md +41 -0
- package/docs/interfaces/OpenmrsResource.md +34 -0
- package/docs/interfaces/PageDefinition.md +149 -0
- package/docs/interfaces/PatientWithFullResponse.md +29 -0
- package/docs/interfaces/Person.md +41 -0
- package/docs/interfaces/PrecacheStaticDependenciesEvent.md +3 -0
- package/docs/interfaces/Privilege.md +41 -0
- package/docs/interfaces/QueueItemDescriptor.md +52 -0
- package/docs/interfaces/RegisterDynamicRouteMessage.md +51 -0
- package/docs/interfaces/ResourceLoader.md +23 -0
- package/docs/interfaces/RetryOptions.md +83 -0
- package/docs/interfaces/Role.md +41 -0
- package/docs/interfaces/SessionLocation.md +41 -0
- package/docs/interfaces/SessionUser.md +92 -0
- package/docs/interfaces/ShowNotificationEvent.md +63 -0
- package/docs/interfaces/ShowToastEvent.md +52 -0
- package/docs/interfaces/SpaConfig.md +77 -0
- package/docs/interfaces/SyncItem.md +92 -0
- package/docs/interfaces/SyncProcessOptions.md +69 -0
- package/docs/interfaces/UnauthenticatedUser.md +52 -0
- package/docs/interfaces/User.md +107 -0
- package/docs/interfaces/UserHasAccessProps.md +19 -0
- package/docs/interfaces/Visit.md +111 -0
- package/docs/interfaces/VisitItem.md +52 -0
- package/docs/interfaces/VisitType.md +41 -0
- package/docs/interfaces/WorkspaceItem.md +74 -0
- package/mock.tsx +253 -0
- package/package.json +15 -12
- package/src/index.ts +3 -1
- package/tsconfig.json +1 -0
- package/typedoc.json +7 -0
- package/webpack.config.js +4 -10
- package/src/set-public-path.ts +0 -3
- package/src/types.ts +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:////webpack/bootstrap","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/tslib/tslib.es6.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/pipe.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/Observable.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/toSubscriber.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/canReportError.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/Subscriber.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/isArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/Subscription.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/config.js","webpack:///webpack:/external \"@openmrs/esm-config\"","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/symbol/observable.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/hostReportError.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_root.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_Symbol.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_getRawTag.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_objectToString.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseGetTag.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_getPrototype.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_overArg.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isPlainObject.js","webpack:////src/openmrs-fetch.ts","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isObjectLike.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/isFunction.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/utils.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/Observer.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/middlewares/core.js","webpack:////src/fhir.ts","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/noop.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/operators/tap.js","webpack:////src/shared-api-objects/current-user.ts","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/path-to-regexp/dist.es2015/index.js","webpack:////src/breadcrumbs/db.ts","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/isObject.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/identity.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/SubjectSubscription.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/subscribeToArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/Subject.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/operators/map.js","webpack:////src/setup.ts","webpack:////src/breadcrumbs/index.ts","webpack:////src/breadcrumbs/filter.ts","webpack:////src/shared-api-objects/current-patient.ts","webpack:////src/openmrs-backend-dependencies.ts","webpack:////src/workspace/workspace.resource.tsx","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/systemjs-webpack-interop/public-path.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_freeGlobal.js","webpack:////src/set-public-path.ts","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/unistore/dist/unistore.es.js","webpack:////src/state.ts","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/scheduler/Action.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/Scheduler.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/scheduler/queue.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/observable/empty.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/isScheduler.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/Notification.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/observable/fromArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/observable/throwError.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/observable/of.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/operators/observeOn.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/ReplaySubject.js","webpack:////src/index.ts","webpack:////(webpack)/buildin/global.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/fhir.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/merge/merge.js","webpack:////(webpack)/buildin/module.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/middlewares/search.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/middlewares/auth.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/Base64/base64.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/middlewares/http.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/middlewares/errors.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/middlewares/config.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/middlewares/bundle.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/middlewares/patient.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/middlewares/references.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/middlewares/url.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/fhir.js/src/decorate.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/operators/filter.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/symbol/iterator.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/isArrayLike.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/isPromise.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/subscribeTo.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/innerSubscribe.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/operators/mergeMap.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/observable/from.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/rxjs/_esm5/internal/operators/mergeAll.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_curry2.js","webpack:///webpack:/external \"@openmrs/esm-state\"","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_curry1.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_isPlaceholder.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_arity.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_has.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_curry3.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/clone.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_isArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_reduce.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/map.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/prop.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/reduce.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/mergeDeepRight.js","webpack:///webpack:/external \"single-spa\"","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_clone.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_cloneRegExp.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/type.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_dispatchable.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_isTransformer.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_map.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_isArrayLike.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_isString.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_xwrap.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/bind.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_xmap.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_xfBase.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/curryN.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_curryN.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/keys.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_isArguments.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/path.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/mergeDeepWithKey.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/internal/_isObject.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/ramda/src/mergeWithKey.js","webpack:////src/types.ts","webpack:////src/validators/validator.ts","webpack:////src/validators/type-validators.ts","webpack:////src/module-config/state.ts","webpack:////src/module-config/module-config.ts","webpack:////src/navigation/interpolate-string.ts","webpack:////src/navigation/navigate.ts","webpack:////src/validators/validators.ts","webpack:///webpack:/external \"@openmrs/esm-styleguide\"","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_nodeUtil.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isBuffer.js","webpack:////(webpack)/buildin/harmony-module.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/stubFalse.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_cloneBuffer.js","webpack:////src/contexts.ts","webpack:////src/route.ts","webpack:////src/store.ts","webpack:////src/extensions.ts","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_isMasked.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isObject.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isFunction.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_coreJsData.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_toSource.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseIsNative.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_getNative.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_getValue.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_defineProperty.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseAssignValue.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/eq.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_assignValue.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isSymbol.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_isKey.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_nativeCreate.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_hashGet.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_hashHas.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_Hash.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_hashClear.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_hashDelete.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_hashSet.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_assocIndexOf.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_listCacheDelete.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_ListCache.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_listCacheClear.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_listCacheGet.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_listCacheHas.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_listCacheSet.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_Map.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_getMapData.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_isKeyable.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_MapCache.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_mapCacheClear.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_mapCacheDelete.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_mapCacheGet.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_mapCacheHas.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_mapCacheSet.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/memoize.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_stringToPath.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_memoizeCapped.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseToString.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_arrayMap.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_castPath.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/toString.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_isIndex.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_toKey.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/set.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseSet.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_Stack.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_stackClear.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_stackDelete.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_stackGet.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_stackHas.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_stackSet.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_copyObject.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseIsArguments.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isArguments.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isLength.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseIsTypedArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseUnary.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isTypedArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_arrayLikeKeys.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseTimes.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_isPrototype.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_nativeKeys.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseKeys.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isArrayLike.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/keys.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseKeysIn.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_nativeKeysIn.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/keysIn.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/stubArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_getSymbols.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_arrayFilter.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_arrayPush.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_getSymbolsIn.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseGetAllKeys.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_getAllKeys.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_getAllKeysIn.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_DataView.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_Promise.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_Set.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_WeakMap.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_getTag.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_initCloneArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_Uint8Array.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_cloneArrayBuffer.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_cloneRegExp.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_cloneSymbol.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_initCloneByTag.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_cloneDataView.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_cloneTypedArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseCreate.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isMap.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseIsMap.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/isSet.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseIsSet.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseClone.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_copyArray.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_initCloneObject.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_copySymbolsIn.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseAssignIn.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_copySymbols.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_baseAssign.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/_arrayEach.js","webpack:////src/render.ts","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/lodash-es/cloneDeep.js","webpack:///webpack:/external \"react\"","webpack:///webpack:/external \"@openmrs/esm-extensions\"","webpack:///webpack:/external \"@openmrs/esm-api\"","webpack:///webpack:/external \"i18next\"","webpack:///webpack:/external \"@openmrs/esm-error-handling\"","webpack:///webpack:/external \"react-dom\"","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/single-spa-react/lib/single-spa-react.js","webpack:///webpack:/external \"react-i18next\"","webpack:////src/ComponentContext.ts","webpack:////src/ConfigurableLink.tsx","webpack:////src/createUseStore.ts","webpack:////src/Extension.tsx","webpack:////src/ExtensionSlot.tsx","webpack:////src/useExtensionSlot.ts","webpack:////src/openmrsComponentDecorator.tsx","webpack:////src/getLifecycle.ts","webpack:////src/useForceUpdate.ts","webpack:////src/useConfig.ts","webpack:////src/useCurrentPatient.ts","webpack:////src/useExtensionStore.ts","webpack:////src/useNavigationContext.ts","webpack:////src/UserHasAccess.tsx","webpack:////src/useStore.ts","webpack:///../esm-styleguide/dist/openmrs-esm-styleguide.js","webpack:///webpack:/external \"dayjs\"","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/dayjs/plugin/utc.js","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/dayjs/plugin/isToday.js","webpack:////src/omrs-dates.ts","webpack:////home/runner/work/openmrs-esm-core/openmrs-esm-core/node_modules/systemjs-webpack-interop/public-path.js","webpack:///./src/set-public-path.ts","webpack:///./src/index.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","extendStatics","b","setPrototypeOf","__proto__","Array","__extends","__","this","constructor","pipeFromArray","fns","length","identity","input","reduce","prev","fn","Observable","subscribe","_isScalar","_subscribe","lift","operator","observable","source","observerOrNext","error","complete","sink","nextOrObserver","Subscriber","rxSubscriber","add","config","useDeprecatedSynchronousErrorHandling","syncErrorThrowable","_trySubscribe","syncErrorThrown","syncErrorValue","err","observer","_a","closed_1","closed","destination","isStopped","console","warn","forEach","next","promiseCtor","_this","getPromiseCtor","resolve","reject","subscription","unsubscribe","subscriber","pipe","operations","_i","arguments","toPromise","x","Promise","Error","_super","destinationOrNext","SafeSubscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentOrParents","_parentSubscriber","context","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","parent","_unsubscribe","isArray","UnsubscriptionError","UnsubscriptionErrorImpl","errors","message","map","toString","join","Subscription","_subscriptions","_ctorUnsubscribe","empty","remove","index","e","flattenUnsubscriptionErrors","len","sub","concat","push","teardown","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","errs","_enable_super_gross_mode_that_will_cause_bad_things","stack","__WEBPACK_EXTERNAL_MODULE__5__","hostReportError","setTimeout","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","freeSelf","self","Function","objectProto","nativeObjectToString","symToStringTag","isOwn","tag","unmasked","result","func","transform","arg","getPrototypeOf","funcProto","funcToString","objectCtorString","sessionEndpoint","makeUrl","path","window","openmrsBase","openmrsFetch","fetchInit","url","headers","proto","Ctor","isPlainObject","body","JSON","stringify","Accept","requestStacktrace","fetch","then","async","response","ok","status","data","json","redirectAuthFailure","getConfig","enabled","includes","navigate","to","resolvePromise","text","responseText","responseBody","parse","OpenmrsFetchError","openmrsObservableFetch","abortController","AbortController","signal","hasResponse","abort","super","statusText","Math","random","isFunction","merge","RTRIM","trim","replace","type","obj","String","assertArray","a","assertObject","reduceMap","acc","k","v","results","argsArray","slice","mergeLists","merged","nextMap","ret","apply","absoluteUrl","baseUrl","ref","match","relativeUrl","resourceIdToUrl","id","walk","inner","outer","keysToMap","item","postwalk","f","scheduleArray","scheduler","schedule","utils","Middleware","mw","and","nmw","mw1","mw2","h","end","$$Simple","args","$$Attr","attr","undefined","split","Attribute","Method","method","fhirBaseUrl","fhir","require","http","requestObj","noop","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","userSubject","ReplaySubject","lastFetchTimeMillis","getCurrentUser","opts","includeAuthStatus","Date","now","refetchCurrentUser","asObservable","mergeAll","setUserLanguage","user","filter","Boolean","sessionResponse","userProperties","defaultLocale","locale","document","documentElement","getAttribute","setAttribute","userHasAccess","requiredPrivilege","privileges","find","display","roles","role","escapeString","str","flags","options","sensitive","stringToRegexp","keys","tokens","strict","_b","start","_c","_d","encode","endsWith","delimiter","route","tokens_1","token","prefix","suffix","pattern","modifier","mod","endToken","isEndDelimited","RegExp","char","count","j","TypeError","code","charCodeAt","prefixes","defaultPattern","tryConsume","mustConsume","nextType","consumeText","name_1","pattern_1","pathToRegexp","groups","paths","parts","store","createGlobalStore","getMatcher","settings","matcher","registerBreadcrumb","breadcrumb","registerBreadcrumbs","breadcrumbs","nextBreadcrumbs","getBreadcrumbs","setState","getState","isObject","SubjectSubscription","subject","observers","subscriberIndex","subscribeToArray","array","SubjectSubscriber","Subject","hasError","thrownError","AnonymousSubject","copy","project","thisArg","MapOperator","MapSubscriber","setupApiModule","defineConfigSchema","_type","Type","_default","_description","_validators","validators","isUrl","_elements","Number","inRange","getNext","bc","test","segments","pop","filterBreadcrumbs","list","current","links","previous","reverse","getBreadcrumbsFor","currentPatientUuid","currentPatientUuidSubject","currentPatientSubject","getCurrentPatient","includeConfig","refetchCurrentPatient","read","patient","getCurrentPatientUuid","addEventListener","u","exec","location","pathname","backendDependencies","fhir2","workspaceItem","newWorkspaceItem","getNewWorkspaceItem","resolveDirectory","urlString","rootDirectoryLevel","createElement","href","numDirsProcessed","finalPath","protocol","host","setPublicPath","systemjsModuleName","isInteger","moduleUrl","System","val","isFinite","floor","freeGlobal","global","action","availableStores","initialState","available","active","createStore","getGlobalStore","fallbackState","createAppState","getAppState","QueueAction","work","state","delay","flush","execute","_execute","requestAsyncId","AsyncAction","pending","recycleAsyncId","setInterval","clearInterval","errored","errorValue","actions","Action","Scheduler","SchedulerAction","queue","QueueScheduler","AsyncScheduler","delegate","scheduled","shift","isScheduler","NotificationKind","fromArray","Notification","kind","hasValue","observe","do","accept","toObservable","createNext","undefinedValueNotification","createError","createComplete","completeNotification","ObserveOnSubscriber","dispatch","notification","scheduleMessage","ObserveOnMessage","bufferSize","windowTime","POSITIVE_INFINITY","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","time","max","g","M","query","auth","transport","bundle","pt","refs","decorate","cfg","adapter","$$Method","$$Header","$Errors","Defaults","$Basic","$Bearer","$Credentials","$JsonData","GET","POST","PUT","DELETE","PATCH","Http","Path","BaseUrl","resourceTypePath","slash","resourceTypeHxPath","resourcePath","resourceHxPath","vreadPath","metaTarget","ReturnHeader","$Paging","conformance","profile","transaction","history","typeHistory","resourceHistory","$WithPatient","vread","validate","meta","delete","search","$SearchParams","update","conditionalUpdate","conditionalDelete","nextPage","$$BundleLinkUrl","prevPage","getBundleByUrl","patch","isNode","Public","clone","merge_recursive","base","extend","typeOf","recursive","argv","size","sitem","toLowerCase","output","webpackPolyfill","deprecate","children","OPERATORS","$gt","$lt","$lte","$gte","$ge","$le","MODIFIERS","$asc","$desc","$exact","$missing","$null","$text","linearizeOne","xs","param","kk","res","vv","vvv","$or","$type","linearizeParams","buildSearchParams","excludeEncode","encodeURIComponent","_query","params","since","_since","_count","credentials","btoa","pass","bearer","chars","InvalidCharacterError","block","charCode","idx","charAt","atob","bs","buffer","fromCharCode","debug","log","promise","resource","defer","deff","copyAttr","from","rel","link","relation","targets","CONTAINED","sync","cache","reference","cid","contained","_id","content","abs","entry","cacheMatched","def","core","tkn","chain","new_chain","target","versionId","pth","exp","exps","substring","ch","fhirAPI","drain","searchParams","process","done","fail","entries","fetchAll","fetchAllWithReferences","resolveParams","resolvedReferences","enqueue","referenceID","referencedObject","element","resourceType","resolveParam","targetType","targetElement","client","newAdapter","predicate","FilterOperator","FilterSubscriber","iterator","isArrayLike","isPromise","subscribeTo","obs","iterable","return","SimpleInnerSubscriber","notifyNext","notifyError","notifyComplete","SimpleOuterSubscriber","innerValue","mergeMap","resultSelector","concurrent","ii","MergeMapOperator","MergeMapSubscriber","hasCompleted","_tryNext","_innerSub","ish","innerSubscriber","innerSubscription","_curry1","_isPlaceholder","f2","__WEBPACK_EXTERNAL_MODULE__1__","f1","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","prop","_curry2","f3","_clone","_isArrayLike","_xwrap","_iterableReduce","xf","iter","step","_methodReduce","methodName","symIterator","_dispatchable","_map","_reduce","_xmap","curryN","functor","mergeDeepWithKey","mergeDeepRight","lObj","rObj","lVal","rVal","__WEBPACK_EXTERNAL_MODULE__14__","_cloneRegExp","refFrom","refTo","deep","copiedValue","valueOf","ignoreCase","multiline","sticky","unicode","_isArray","_isTransformer","methodNames","transducer","_isString","nodeType","XWrap","_arity","thisObj","_xfBase","XMap","init","_curryN","received","combined","argsIdx","left","combinedIdx","_has","_isArguments","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","hasArgsEnumBug","contains","nIdx","ks","checkArgsLength","_curry3","_isObject","mergeWithKey","validator","validationFunction","isBoolean","isNumber","isString","isUuid","configInternalStoreInitialValue","providedConfigs","importMapConfig","schemas","importMapConfigLoaded","devDefaultsAreOn","getAreDevDefaultsOn","configInternalStore","lastValueOfDevDefaultsAreOn","localStorage","getItem","setItem","temporaryConfigStore","configExtensionStore","mountedExtensions","getConfigStore","moduleName","loaded","getExtensionSlotsConfigStore","extensionSlotConfigs","getExtensionConfigStore","extensionSlotModuleName","attachedExtensionSlotName","extensionId","implementerToolsConfigStore","getImportMapConfigPromise","didInitialCheck","loadConfigs","importMapConfigExists","configFileModule","import","default","computeModuleConfig","getConfigForModule","computeExtensionSlotConfigs","slotConfigsByModule","allConfigs","mergeConfigs","getProvidedConfigs","slotConfigPerModule","extensions","configBySlotName","slotName","validateExtensionSlotConfig","computeImplementerToolsConfig","getSchemaWithValuesAndSources","schema","_value","_source","isOrdinaryObject","configsAndSources","createValuesAndSourcesTree","computeExtensionConfigs","configState","extensionState","extension","extensionStore","slotModuleName","getExtensionConfig","extensionModuleName","validateConfigSchema","keyPath","updateMessage","startsWith","thisKeyPath","schemaPart","elements","hasObjectSchema","valueType","values","every","provide","sourceName","processConfig","providedConfig","keyPathContext","validateConfig","setDefaults","slotModuleConfig","mergeConfigsFor","configOverride","configure","extensionConfig","errorPrefix","invalidKeys","order","inputConfig","configs","checkForImportMapConfigFile","importMapOverrides","getCurrentPageMap","checkType","runValidators","validateDictionary","validateArray","dictionarySchema","arraySchema","ConceptUuid","UUID","validatorResult","valueString","configPart","devDefault","configWithDefaults","conf","objectKey","selectedConfigPart","elementsSchema","reloadImportMapConfig","interpolateUrl","template","openmrsSpaBase","getOpenmrsSpaBase","interpolateString","curr","navigateToUrl","assign","min","isUrlWithTemplateParameters","allowedTemplateParameters","allowedParams","rx","__WEBPACK_EXTERNAL_MODULE__0__","handleApiError","incomingResponseErr","reportError","ensureErrorObject","createErrorHandler","outgoingErr","incomingErr","thing","onerror","showToast","description","onunhandledrejection","event","root","freeExports","freeModule","freeProcess","nodeUtil","types","binding","__WEBPACK_EXTERNAL_MODULE__2__","Buffer","isBuffer","originalModule","__WEBPACK_EXTERNAL_MODULE__7__","__WEBPACK_EXTERNAL_MODULE__8__","allocUnsafe","isDeep","navigationContexts","handler","switchTo","pushNavigationContext","getActualRouteProps","pathTemplate","slots","storeUpdates","updateExtensionStore","updater","newState","updateConfigExtensionStore","configExtensionRecords","extensionInfo","extensionBySlot","instances","actualSlotName","extensionInstance","createNewExtensionSlotInfo","extensionSlotName","attachedIds","matches","actualExtensionSlotName","getExtensionRegistration","extensionName","registerExtension","load","attach","existingSlot","detach","registerExtensionSlot","domElement","updatedSlot","getUpdatedExtensionSlotInfo","registered","addedIds","assignedIds","idOrder","removedIds","unregisterExtensionSlot","existing","getExtensionSlotsForModule","reset","extensionSlot","instance","originalInstance","testOrder","sort","ai","bi","uid","maskSrcKey","IE_PROTO","reIsHostCtor","reIsNative","other","objValue","reIsDeepProp","reIsPlainProp","Hash","clear","set","__data__","has","ListCache","MapCache","memoize","resolver","memoized","Cache","rePropName","reEscapeChar","string","number","quote","subString","symbolProto","symbolToString","baseToString","iteratee","reIsUint","customizer","lastIndex","nested","newValue","Stack","pairs","LARGE_ARRAY_SIZE","props","isNew","typedArrayTags","nodeIsTypedArray","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","isProto","nativeGetSymbols","getOwnPropertySymbols","resIndex","symbol","offset","keysFunc","symbolsFunc","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","ctorString","Uint8Array","arrayBuffer","byteLength","reFlags","symbolValueOf","dataView","byteOffset","typedArray","regexp","objectCreate","nodeIsMap","isMap","nodeIsSet","isSet","cloneableTags","baseClone","bitmask","isFlat","isFull","isFunc","stacked","subValue","keysIn","renderExtension","renderFunction","additionalProps","extensionRegistration","routeProps","extensionContextProps","_extensionContext","lifecycle","mountRootParcel","cloneDeep","__WEBPACK_EXTERNAL_MODULE__3__","__WEBPACK_EXTERNAL_MODULE__4__","configurable","writable","getOwnPropertyDescriptor","SingleSpaContext","React","ReactDOM","rootComponent","loadRootComponent","suppressComponentDidCatchWarning","domElements","errorBoundary","domElementGetter","parcelCanUpdate","version","componentDidCatch","appName","childAppName","customProps","getElementById","appendChild","elementToRender","whenFinished","unmountComponentAtNode","renderType","createRoot","render","createBlockingRoot","hydrate","Provider","errorBoundaryClass","Component","caughtError","caughtErrorInfo","displayName","getOwnPropertyDescriptors","defineProperties","createContext","bootstrap","mount","unmount","__WEBPACK_EXTERNAL_MODULE__9__","ComponentContext","ConfigurableLink","otherProps","onClick","metaKey","ctrlKey","shiftKey","button","preventDefault","createUseStore","useState","useEffect","boundActions","useMemo","bound","Extension","useRef","useContext","style","position","ExtensionSlot","divProps","slotRef","extensionIdsToRender","slotInfo","slotDef","i18n","_i18n","defaultOpts","strictMode","throwErrorsToConsole","disableTranslations","I18nextLoadNamespace","on","forceUpdate","off","loadNamespaceErrRef","hasLoadedNamespace","timeoutId","loadNamespaces","clearTimeout","catch","openmrsComponentDecorator","userOpts","featureName","Comp","info","componentStack","extra","Suspense","fallback","I18nextProvider","defaultNS","StrictMode","getLifecycle","singleSpaReact","getAsyncLifecycle","lazy","getAsyncExtensionLifecycle","useForceUpdate","setTick","useCallback","tick","promises","useConfig","cacheId","useCurrentPatient","useReducer","reducer","uuid","ActionTypes","newUuid","newPatient","patientLoadError","isLoadingPatient","patientUuid","useExtensionStore","useNavigationContext","UserHasAccess","privilege","setUser","useStore","register","setters","classList","toggle","innerWidth","readyState","resetWarningCache","isRequired","bool","any","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","Zt","Bt","DOMParser","parseFromString","querySelector","w","C","y","O","focusable","preserveAspectRatio","H","L","V","_","forwardRef","className","tabIndex","width","height","viewBox","tabindex","title","propTypes","xmlns","defaultProps","P","fill","opacity","Z","E","S","T","B","D","A","z","I","N","R","q","F","W","U","$","Y","G","J","K","Q","X","ee","te","ne","re","ae","ie","le","as","disabled","small","renderIcon","iconDescription","hasIconOnly","tooltipPosition","tooltipAlignment","oe","ce","se","de","ue","pe","fe","ve","ariaLabel","notificationType","ge","subtitle","caption","he","success","warning","be","me","onCloseButtonClick","statusIconDescription","lowContrast","hideCloseButton","timeout","we","Ce","millis","ye","toast","closeToast","isClosing","onMouseEnter","onMouseLeave","Oe","some","Ie","je","xe","He","Me","Ve","_e","ke","Pe","Ze","Ee","Te","De","Ae","Se","Be","ze","Ne","Re","qe","We","Ue","$e","Ye","Ge","Je","Ke","Qe","Xe","Fe","tt","et","nt","ot","rt","it","lt","at","ct","st","dt","ut","ft","vt","gt","ht","bt","mt","wt","Ct","yt","jt","xt","Lt","Vt","_t","Mt","kt","Pt","Ot","Le","Et","St","Tt","utc","date","toDate","$L","utcOffset","local","$u","$utils","$offset","$d","$y","getUTCFullYear","$M","getUTCMonth","$D","getUTCDate","$W","getUTCDay","$H","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","getTimezoneOffset","$x","$localOffset","format","isUTC","toISOString","toUTCString","diff","isToday","dayjs","isoFormat","isOmrsDateStrict","omrsPayloadString","isValid","isOmrsDateToday","toDateObjectStrict","omrsDateString","toOmrsIsoString","toUTC","toOmrsTimeString24","toOmrsTimeString","toOmrsDayDateFormat","toOmrsDateFormat","toOmrsYearlessDateFormat"],"mappings":"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","file":"openmrs-esm-framework.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 10);\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/** PURE_IMPORTS_START _identity PURE_IMPORTS_END */\nimport { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map\n","/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = /*@__PURE__*/ (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map\n","/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map\n","/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map\n","/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArray = /*@__PURE__*/ (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar UnsubscriptionErrorImpl = /*@__PURE__*/ (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n","/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */\nimport { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = /*@__PURE__*/ (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = /*@__PURE__*/ new Error();\n /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n","module.exports = __WEBPACK_EXTERNAL_MODULE__2__;","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var observable = /*@__PURE__*/ (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar ObjectUnsubscribedErrorImpl = /*@__PURE__*/ (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import { Observable } from \"rxjs\";\nimport isPlainObject from \"lodash-es/isPlainObject\";\nimport { getConfig, navigate } from \"@openmrs/esm-config\";\nimport { FetchResponse } from \"./types\";\n\nexport const sessionEndpoint = \"/ws/rest/v1/session\";\n\nexport function makeUrl(path: string) {\n return window.openmrsBase + path;\n}\n\nexport function openmrsFetch<T = any>(\n path: string,\n fetchInit: FetchConfig = {}\n): Promise<FetchResponse<T>> {\n if (typeof path !== \"string\") {\n throw Error(\n \"The first argument to @openmrs/api's openmrsFetch function must be a url string\"\n );\n }\n\n if (typeof fetchInit !== \"object\") {\n throw Error(\n \"The second argument to @openmrs/api's openmrsFetch function must be a plain object.\"\n );\n }\n\n // @ts-ignore\n if (!window.openmrsBase) {\n throw Error(\n \"@openmrs/api is running in a browser that doesn't have window.openmrsBase, which is provided by openmrs-module-spa's HTML file.\"\n );\n }\n\n // Prefix the url with the openmrs spa base\n // @ts-ignore\n const url = makeUrl(path);\n\n // We're going to need some headers\n if (!fetchInit.headers) {\n fetchInit.headers = {};\n }\n\n /* Automatically stringify javascript objects being sent in the\n * request body.\n */\n if (isPlainObject(fetchInit.body)) {\n fetchInit.body = JSON.stringify(fetchInit.body);\n }\n\n /* Add a request header to tell the server to respond with json,\n * since frontend code almost always wants json and the OpenMRS\n * server won't give you json unless you explicitly ask for it.\n * If a different Accept header is preferred, pass it into the fetchInit.\n * If no Accept header is desired, pass it in explicitly as null.\n */\n if (typeof fetchInit.headers.Accept === \"undefined\") {\n fetchInit.headers.Accept = \"application/json\";\n }\n\n if (fetchInit.headers.Accept === null) {\n delete fetchInit.headers.Accept;\n }\n\n /* We capture the stacktrace before making the request, so that if an error occurs we can\n * log a full stacktrace that includes the code that made the request and handled the response\n * Otherwise, we could run into situations where the stacktrace doesn't even show which code\n * called @openmrs/api.\n */\n const requestStacktrace = Error();\n\n return window.fetch(url, fetchInit as RequestInit).then(async (r) => {\n const response = r as FetchResponse<T>;\n if (response.ok) {\n if (response.status === 204) {\n /* HTTP 204 - No Content\n * We should not try to download the empty response as json. Instead,\n * we return null since there is no response body.\n */\n response.data = (null as unknown) as T;\n return response;\n } else {\n // HTTP 200s - The request succeeded\n return response.json().then((data) => {\n response.data = data;\n return response;\n });\n }\n } else {\n /* HTTP response status is not in 200s. Usually this will mean\n * either HTTP 400s (bad request from browser) or HTTP 500s (server error)\n * Our goal is to come up with best possible stacktrace and error message\n * to help developers understand the problem and debug\n */\n\n /*\n *Redirect to given url when redirect on auth failure is enabled\n */\n const { redirectAuthFailure } = await getConfig(\"@openmrs/esm-api\");\n\n if (\n (url === makeUrl(sessionEndpoint) && response.status === 403) ||\n (redirectAuthFailure.enabled &&\n redirectAuthFailure.errors.includes(response.status))\n ) {\n navigate({ to: redirectAuthFailure.url });\n\n /* We sometimes don't really want this promise to resolve since there's no response data,\n * nor do we want it to reject because that would trigger error handling. We instead\n * want it to remain in pending status while the navigation occurs.\n */\n return redirectAuthFailure.resolvePromise\n ? ((Promise.resolve() as unknown) as Promise<FetchResponse>)\n : new Promise<FetchResponse>(() => {});\n } else {\n // Attempt to download a response body, if it has one\n return response.text().then(\n (responseText) => {\n let responseBody = responseText;\n try {\n responseBody = JSON.parse(responseText);\n } catch (err) {\n // Server didn't respond with json, so just go with the response text string\n }\n\n /* Make the fetch promise go into \"rejected\" status, with the best\n * possible stacktrace and error message.\n */\n throw new OpenmrsFetchError(\n url,\n response,\n responseBody,\n requestStacktrace\n );\n },\n (err) => {\n /* We weren't able to download a response body for this error.\n * Time to just give the best possible stacktrace and error message.\n */\n throw new OpenmrsFetchError(url, response, null, requestStacktrace);\n }\n );\n }\n }\n });\n}\n\nexport function openmrsObservableFetch<T>(\n url: string,\n fetchInit: FetchConfig = {}\n) {\n if (typeof fetchInit !== \"object\") {\n throw Error(\n \"The second argument to openmrsObservableFetch must be either omitted or an object\"\n );\n }\n\n const abortController = new AbortController();\n\n fetchInit.signal = abortController.signal;\n\n return new Observable<FetchResponse<T>>((observer) => {\n let hasResponse = false;\n\n openmrsFetch(url, fetchInit).then(\n (response) => {\n hasResponse = true;\n observer.next(response);\n observer.complete();\n },\n (err) => {\n hasResponse = true;\n observer.error(err);\n }\n );\n\n return () => {\n if (!hasResponse) {\n abortController.abort();\n }\n };\n });\n}\n\nexport class OpenmrsFetchError extends Error {\n constructor(\n url: string,\n response: Response,\n responseBody: ResponseBody | null,\n requestStacktrace: Error\n ) {\n super();\n this.message = `Server responded with ${response.status} (${response.statusText}) for url ${url}. Check err.responseBody or network tab in dev tools for more info`;\n requestStacktrace.message = this.message;\n this.responseBody = responseBody;\n this.response = response;\n this.stack = `Stacktrace for outgoing request:\\n${requestStacktrace.stack}\\nStacktrace for incoming response:\\n${this.stack}`;\n }\n response: Response;\n responseBody: string | FetchResponseJson | null;\n}\n\ninterface FetchConfig extends Omit<Omit<RequestInit, \"body\">, \"headers\"> {\n headers?: FetchHeaders;\n body?: FetchBody | string;\n}\n\ntype ResponseBody = string | FetchResponseJson;\n\nexport interface FetchHeaders {\n [key: string]: string | null;\n}\n\ninterface FetchBody {\n [key: string]: any;\n}\n\ninterface FetchResponseJson {\n [key: string]: any;\n}\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var rxSubscriber = /*@__PURE__*/ (function () {\n return typeof Symbol === 'function'\n ? /*@__PURE__*/ Symbol('rxSubscriber')\n : '@@rxSubscriber_' + /*@__PURE__*/ Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map\n","(function() {\n var merge = require('merge');\n\n var RTRIM = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n var trim = function(text) {\n return text ? text.toString().replace(RTRIM, \"\") : \"\";\n };\n\n exports.trim = trim;\n\n var addKey = function(acc, str) {\n var pair, val;\n if (!str) {\n return null;\n }\n pair = str.split(\"=\").map(trim);\n val = pair[1].replace(/(^\"|\"$)/g, '');\n if (val) {\n acc[pair[0]] = val;\n }\n return acc;\n };\n\n var type = function(obj) {\n var classToType;\n if (obj == null && obj === undefined) {\n return String(obj);\n }\n classToType = {\n '[object Boolean]': 'boolean',\n '[object Number]': 'number',\n '[object String]': 'string',\n '[object Function]': 'function',\n '[object Array]': 'array',\n '[object Date]': 'date',\n '[object RegExp]': 'regexp',\n '[object Object]': 'object'\n };\n return classToType[Object.prototype.toString.call(obj)];\n };\n\n exports.type = type;\n\n var assertArray = function(a) {\n if (type(a) !== 'array') {\n throw 'not array';\n }\n return a;\n };\n\n exports.assertArray = assertArray;\n\n var assertObject = function(a) {\n if (type(a) !== 'object') {\n throw 'not object';\n }\n return a;\n };\n\n exports.assertObject = assertObject;\n\n var reduceMap = function(m, fn, acc) {\n var k, v;\n acc || (acc = []);\n assertObject(m);\n return ((function() {\n var results;\n results = [];\n for (k in m) {\n v = m[k];\n results.push([k, v]);\n }\n return results;\n })()).reduce(fn, acc);\n };\n\n exports.reduceMap = reduceMap;\n\n var identity = function(x) {return x;};\n\n exports.identity = identity;\n\n var argsArray = function() {\n return Array.prototype.slice.call(arguments)\n };\n\n exports.argsArray = argsArray;\n\n var mergeLists = function() {\n var reduce;\n reduce = function(merged, nextMap) {\n var k, ret, v;\n ret = merge(true, merged);\n for (k in nextMap) {\n v = nextMap[k];\n ret[k] = (ret[k] || []).concat(v);\n }\n return ret;\n };\n return argsArray.apply(null, arguments).reduce(reduce, {});\n };\n\n exports.mergeLists = mergeLists;\n\n var absoluteUrl = function(baseUrl, ref) {\n if (!ref.match(/https?:\\/\\/./)) {\n return baseUrl + \"/\" + ref;\n } else {\n return ref;\n }\n };\n\n exports.absoluteUrl = absoluteUrl;\n\n var relativeUrl = function(baseUrl, ref) {\n if (ref.slice(ref, baseUrl.length + 1) === baseUrl + \"/\") {\n return ref.slice(baseUrl.length + 1);\n } else {\n return ref;\n }\n };\n\n exports.relativeUrl = relativeUrl;\n\n exports.resourceIdToUrl = function(id, baseUrl, type) {\n baseUrl = baseUrl.replace(/\\/$/, '');\n id = id.replace(/^\\//, '');\n if (id.indexOf('/') < 0) {\n return baseUrl + \"/\" + type + \"/\" + id;\n } else if (id.indexOf(baseUrl) !== 0) {\n return baseUrl + \"/\" + id;\n } else {\n return id;\n }\n };\n\n var walk = function(inner, outer, data, context) {\n var keysToMap, remapped;\n switch (type(data)) {\n case 'array':\n return outer(data.map(function(item) {\n return inner(item, [data, context]);\n }), context);\n case 'object':\n keysToMap = function(acc, arg) {\n var k, v;\n k = arg[0], v = arg[1];\n acc[k] = inner(v, [data].concat(context));\n return acc;\n };\n remapped = reduceMap(data, keysToMap, {});\n return outer(remapped, context);\n default:\n return outer(data, context);\n }\n };\n\n exports.walk = walk;\n\n var postwalk = function(f, data, context) {\n if (!data) {\n return function(data, context) {\n return postwalk(f, data, context);\n };\n } else {\n return walk(postwalk(f), f, data, context);\n }\n };\n\n exports.postwalk = postwalk;\n\n}).call(this);\n","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map\n","/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n","(function() {\n var utils = require(\"../utils\");\n\n var id = function(x){return x;};\n var constantly = function(x){return function(){return x;};};\n\n var mwComposition = function(mw1, mw2){\n return function(h){ return mw1(mw2(h)); };\n };\n\n var Middleware = function(mw){\n mw.and = function(nmw){\n return Middleware(mwComposition(mw, nmw));\n };\n mw.end = function(h){\n return mw(h);\n };\n return mw;\n };\n\n // generate wm from function\n exports.$$Simple = function(f){\n return function(h){\n return function(args){\n return h(f(args));\n };\n };\n };\n\n var setAttr = function(args, attr, value){\n var path = attr.split('.');\n var obj = args;\n for(var i = 0; i < (path.length - 1); i++){\n var k = path[i];\n obj = args[k];\n if(!obj){\n obj = {};\n args[k] = obj;\n }\n }\n obj[path[path.length - 1]] = value;\n return args;\n };\n\n // generate wm from function\n exports.$$Attr = function(attr, fn){\n return Middleware(function(h){\n return function(args) {\n var value = null;\n if(utils.type(fn) == 'function'){\n value = fn(args);\n } else {\n value = fn;\n }\n if(value == null && value == undefined){\n return h(args);\n }else {\n return h(setAttr(args, attr, value));\n }\n };\n });\n };\n\n var Attribute = function(attr, fn){\n return Middleware(function(h){\n return function(args) {\n args[attr] = fn(args);\n return h(args);\n };\n });\n };\n\n var Method = function(method){\n return Attribute('method', constantly(method));\n };\n\n exports.Middleware = Middleware;\n exports.Attribute = Attribute;\n exports.Method = Method;\n\n}).call(this);\n","import { openmrsFetch, FetchHeaders, OpenmrsFetchError } from \"./openmrs-fetch\";\nimport type { FhirClient } from \"./types/fhir\";\n\nexport const fhirBaseUrl = `/ws/fhir2/R4`;\n\nconst makeFhir = require(\"fhir.js/src/fhir.js\");\nconst openmrsFhirAdapter = {\n http(requestObj: FHIRRequestObj) {\n return openmrsFetch(requestObj.url, {\n method: requestObj.method,\n headers: requestObj.headers,\n }).then(\n (response) => {\n return {\n status: response.status,\n headers: response.headers,\n data: response.data,\n config: requestObj,\n };\n },\n (err: OpenmrsFetchError) => {\n return {\n status: err.response.status,\n headers: err.response.headers,\n data: err.responseBody,\n config: requestObj,\n };\n }\n );\n },\n};\n\nexport const fhir: FhirClient = makeFhir(\n { baseUrl: fhirBaseUrl },\n openmrsFhirAdapter\n);\n\nexport interface FHIRRequestObj {\n url: string;\n method: string;\n headers: FetchHeaders;\n}\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function noop() { }\n//# sourceMappingURL=noop.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = /*@__PURE__*/ (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map\n","import { Observable, ReplaySubject } from \"rxjs\";\nimport { filter, map, tap, mergeAll } from \"rxjs/operators\";\nimport { openmrsFetch, sessionEndpoint } from \"../openmrs-fetch\";\nimport {\n LoggedInUserFetchResponse,\n LoggedInUser,\n CurrentUserWithResponseOption,\n UnauthenticatedUser,\n CurrentUserWithoutResponseOption,\n CurrentUserOptions,\n} from \"../types\";\n\nconst userSubject = new ReplaySubject<Promise<LoggedInUserFetchResponse>>(1);\nlet lastFetchTimeMillis = 0;\n\nfunction getCurrentUser(): Observable<LoggedInUser>;\nfunction getCurrentUser(\n opts: CurrentUserWithResponseOption\n): Observable<UnauthenticatedUser>;\nfunction getCurrentUser(\n opts: CurrentUserWithoutResponseOption\n): Observable<LoggedInUser>;\nfunction getCurrentUser(\n opts: CurrentUserOptions = { includeAuthStatus: false }\n): Observable<LoggedInUser | UnauthenticatedUser> {\n if (lastFetchTimeMillis < Date.now() - 1000 * 60) {\n refetchCurrentUser();\n }\n\n return userSubject.asObservable().pipe(\n mergeAll(),\n tap(setUserLanguage),\n map((r: LoggedInUserFetchResponse) =>\n opts.includeAuthStatus ? r.data : r.data.user\n ),\n filter(Boolean)\n ) as Observable<LoggedInUser | UnauthenticatedUser>;\n}\n\nfunction setUserLanguage(sessionResponse: LoggedInUserFetchResponse) {\n if (sessionResponse?.data?.user?.userProperties?.defaultLocale) {\n const locale = sessionResponse.data.user.userProperties.defaultLocale;\n const htmlLang = document.documentElement.getAttribute(\"lang\");\n if (locale != htmlLang) {\n document.documentElement.setAttribute(\"lang\", locale);\n }\n }\n}\n\nfunction userHasPrivilege(requiredPrivilege: string, user: LoggedInUser) {\n return user.privileges.find((p) => requiredPrivilege === p.display);\n}\n\nfunction isSuperUser(user: LoggedInUser) {\n const superUserRole = \"System Developer\";\n return user.roles.find((role) => role.display === superUserRole);\n}\n\nexport { getCurrentUser };\n\nexport function refetchCurrentUser() {\n lastFetchTimeMillis = Date.now();\n userSubject.next(openmrsFetch(sessionEndpoint));\n}\n\nexport function userHasAccess(requiredPrivilege: string, user: LoggedInUser) {\n return userHasPrivilege(requiredPrivilege, user) || isSuperUser(user);\n}\n","/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \" + i);\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \" + j);\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \" + j);\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \" + i);\n if (!pattern)\n throw new TypeError(\"Missing pattern at \" + i);\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a;\n var defaultPattern = \"[^\" + escapeString(options.delimiter || \"/#?\") + \"]+?\";\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \" + nextType + \" at \" + index + \", expected \" + type);\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n // tslint:disable-next-line\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\" + token.pattern + \")$\", reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not repeat, but got an array\");\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not be empty\");\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to be \" + typeOfMessage);\n }\n return path;\n };\n}\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n // tslint:disable-next-line\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\"\n });\n }\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\" + parts.join(\"|\") + \")\", flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d;\n var endsWith = \"[\" + escapeString(options.endsWith || \"\") + \"]|$\";\n var delimiter = \"[\" + escapeString(options.delimiter || \"/#?\") + \"]\";\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\" + prefix + \"((?:\" + token.pattern + \")(?:\" + suffix + prefix + \"(?:\" + token.pattern + \"))*)\" + suffix + \")\" + mod;\n }\n else {\n route += \"(?:\" + prefix + \"(\" + token.pattern + \")\" + suffix + \")\" + token.modifier;\n }\n }\n else {\n route += \"(\" + token.pattern + \")\" + token.modifier;\n }\n }\n else {\n route += \"(?:\" + prefix + suffix + \")\" + token.modifier;\n }\n }\n }\n if (end) {\n if (!strict)\n route += delimiter + \"?\";\n route += !options.endsWith ? \"$\" : \"(?=\" + endsWith + \")\";\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiter.indexOf(endToken[endToken.length - 1]) > -1\n : // tslint:disable-next-line\n endToken === undefined;\n if (!strict) {\n route += \"(?:\" + delimiter + \"(?=\" + endsWith + \"))?\";\n }\n if (!isEndDelimited) {\n route += \"(?=\" + delimiter + \"|\" + endsWith + \")\";\n }\n }\n return new RegExp(route, flags(options));\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nexport function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n//# sourceMappingURL=index.js.map","import { pathToRegexp } from \"path-to-regexp\";\nimport { BreadcrumbSettings, BreadcrumbRegistration } from \"./types\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\n\nconst store = createGlobalStore<Array<BreadcrumbRegistration>>(\n \"breadcrumbs\",\n []\n);\n\nfunction getMatcher(settings: BreadcrumbSettings) {\n if (settings.matcher instanceof RegExp) {\n return settings.matcher;\n } else if (typeof settings.matcher === \"string\") {\n return pathToRegexp(settings.matcher);\n } else {\n return pathToRegexp(settings.path);\n }\n}\n\nexport function registerBreadcrumb(breadcrumb: BreadcrumbSettings) {\n return registerBreadcrumbs([breadcrumb]);\n}\n\nexport function registerBreadcrumbs(breadcrumbs: Array<BreadcrumbSettings>) {\n const prevBreadcrumbs = getBreadcrumbs();\n const newBreadcrumbs = breadcrumbs.map((settings) => ({\n matcher: getMatcher(settings),\n settings,\n }));\n const nextBreadcrumbs = [...prevBreadcrumbs, ...newBreadcrumbs];\n store.setState(nextBreadcrumbs, true);\n}\n\nexport function getBreadcrumbs() {\n return store.getState();\n}\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var subscribeToArray = function (array) {\n return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n };\n};\n//# sourceMappingURL=subscribeToArray.js.map\n","/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = /*@__PURE__*/ (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map\n","import { defineConfigSchema, Type, validators } from \"@openmrs/esm-config\";\nimport { refetchCurrentUser } from \"./shared-api-objects/current-user\";\n\nexport function setupApiModule() {\n defineConfigSchema(\"@openmrs/esm-api\", {\n redirectAuthFailure: {\n enabled: {\n _type: Type.Boolean,\n _default: true,\n _description:\n \"Whether to redirect logged-out users to `redirectAuthFailure.url`\",\n },\n url: {\n _type: Type.String,\n _default: \"${openmrsSpaBase}/login\",\n _validators: [validators.isUrl],\n },\n errors: {\n _type: Type.Array,\n _default: [401],\n _elements: {\n _type: Type.Number,\n _validators: [validators.inRange(100, 600)],\n },\n _description: \"The HTTP error codes for which users will be redirected\",\n },\n resolvePromise: {\n _type: Type.Boolean,\n _default: false,\n _description:\n \"Changes how requests that fail authentication are handled. Try messing with this if redirects to the login page aren't working correctly.\",\n },\n },\n });\n\n refetchCurrentUser();\n}\n","export * from \"./db\";\nexport * from \"./filter\";\nexport * from \"./types\";\n","import { getBreadcrumbs } from \"./db\";\nimport { BreadcrumbRegistration } from \"./types\";\n\nfunction getExact(\n breadcrumbs: Array<BreadcrumbRegistration>,\n path: string\n): BreadcrumbRegistration {\n const [bc] = breadcrumbs.filter((m) => m.matcher.test(path));\n return bc;\n}\n\nfunction getClosest(\n breadcrumbs: Array<BreadcrumbRegistration>,\n path: string\n): BreadcrumbRegistration | undefined {\n const segments = path.split(\"/\");\n\n while (segments.length > 1) {\n segments.pop();\n const newPath = segments.join(\"/\");\n const next = getNext(breadcrumbs, newPath);\n\n if (next) {\n return next;\n }\n }\n\n return undefined;\n}\n\nfunction getNext(\n breadcrumbs: Array<BreadcrumbRegistration>,\n path: string | undefined\n) {\n if (path) {\n return getExact(breadcrumbs, path) || getClosest(breadcrumbs, path);\n }\n\n return undefined;\n}\n\nexport function filterBreadcrumbs(\n list: Array<BreadcrumbRegistration>,\n path: string\n) {\n if (list.length > 0) {\n const current = getNext(list, path);\n\n if (current) {\n const links = [current];\n let previous = getNext(list, current.settings.parent);\n\n while (previous !== undefined) {\n links.push(previous);\n previous = getNext(list, previous.settings.parent);\n }\n\n return links.reverse();\n }\n }\n\n return [];\n}\n\nexport function getBreadcrumbsFor(path: string) {\n const breadcrumbs = getBreadcrumbs();\n return filterBreadcrumbs(breadcrumbs, path);\n}\n","import { ReplaySubject, Observable } from \"rxjs\";\nimport { fhir } from \"../fhir\";\nimport { mergeAll, filter, map } from \"rxjs/operators\";\nimport { FetchResponse } from \"../types\";\n\nlet currentPatientUuid: string;\nconst currentPatientUuidSubject = new ReplaySubject<PatientUuid>(1);\nconst currentPatientSubject = new ReplaySubject<\n Promise<{ data: fhir.Patient }>\n>(1);\n\nwindow.addEventListener(\"single-spa:routing-event\", () => {\n const u = getPatientUuidFromUrl();\n\n if (u && u !== currentPatientUuid) {\n currentPatientUuid = u;\n currentPatientUuidSubject.next(u);\n\n if (u) {\n currentPatientSubject.next(\n fhir.read<fhir.Patient>({\n type: \"Patient\",\n patient: currentPatientUuid,\n })\n );\n }\n }\n});\n\nfunction getPatientUuidFromUrl() {\n const match = /\\/patient\\/([a-zA-Z0-9\\-]+)\\/?/.exec(location.pathname);\n return match && match[1];\n}\n\nfunction getCurrentPatient(): Observable<fhir.Patient>;\nfunction getCurrentPatient(\n opts: PatientWithFullResponse\n): Observable<FetchResponse<fhir.Patient>>;\nfunction getCurrentPatient(opts: OnlyThePatient): Observable<fhir.Patient>;\nfunction getCurrentPatient(\n opts: CurrentPatientOptions = { includeConfig: false }\n): Observable<CurrentPatient> {\n const result = currentPatientSubject.asObservable().pipe(\n mergeAll(),\n map((r) => (opts.includeConfig ? r : r.data)),\n filter(Boolean)\n );\n return result as Observable<CurrentPatient>;\n}\n\nexport { getCurrentPatient };\n\nexport function refetchCurrentPatient() {\n currentPatientSubject.next(\n fhir.read<fhir.Patient>({ type: \"Patient\", patient: currentPatientUuid })\n );\n}\n\nexport function getCurrentPatientUuid(): Observable<PatientUuid> {\n return currentPatientUuidSubject.asObservable();\n}\n\nexport type CurrentPatient = fhir.Patient | FetchResponse<fhir.Patient>;\n\ninterface CurrentPatientOptions {\n includeConfig?: boolean;\n}\ninterface PatientWithFullResponse extends CurrentPatientOptions {\n includeConfig: true;\n}\ninterface OnlyThePatient extends CurrentPatientOptions {\n includeConfig: false;\n}\n\nexport type PatientUuid = string | null;\n","export const backendDependencies = {\n \"webservices.rest\": \"2.24.0\",\n fhir2: \"1.0.0-SNAPSHOT\",\n};\n","import { Subject, Observable } from \"rxjs\";\n\nconst workspaceItem = new Subject<WorkspaceItem>();\n\nexport function newWorkspaceItem(item: WorkspaceItem) {\n workspaceItem.next(item);\n}\n\nexport function getNewWorkspaceItem(): Observable<WorkspaceItem> {\n return workspaceItem.asObservable();\n}\n\nexport interface WorkspaceItem {\n component: any;\n name: string;\n props: any;\n validations?: Function;\n inProgress: boolean;\n componentClosed?: Function;\n}\n","exports.setPublicPath = function setPublicPath(\n systemjsModuleName,\n rootDirectoryLevel\n) {\n if (!rootDirectoryLevel) {\n rootDirectoryLevel = 1;\n }\n if (\n typeof systemjsModuleName !== \"string\" ||\n systemjsModuleName.trim().length === 0\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'\"\n );\n }\n\n if (\n typeof rootDirectoryLevel !== \"number\" ||\n rootDirectoryLevel <= 0 ||\n !isInteger(rootDirectoryLevel)\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'\"\n );\n }\n\n let moduleUrl;\n try {\n moduleUrl = window.System.resolve(systemjsModuleName);\n if (!moduleUrl) {\n throw Error();\n }\n } catch (err) {\n throw Error(\n \"systemjs-webpack-interop: There is no such module '\" +\n systemjsModuleName +\n \"' in the SystemJS registry. Did you misspell the name of your module?\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(moduleUrl, rootDirectoryLevel);\n};\n\nfunction resolveDirectory(urlString, rootDirectoryLevel) {\n // Our friend IE11 doesn't support new URL()\n // https://github.com/single-spa/single-spa/issues/612\n // https://gist.github.com/jlong/2428561\n\n const a = document.createElement(\"a\");\n a.href = urlString;\n\n const pathname = a.pathname[0] === \"/\" ? a.pathname : \"/\" + a.pathname;\n let numDirsProcessed = 0,\n index = pathname.length;\n while (numDirsProcessed !== rootDirectoryLevel && index >= 0) {\n const char = pathname[--index];\n if (char === \"/\") {\n numDirsProcessed++;\n }\n }\n\n if (numDirsProcessed !== rootDirectoryLevel) {\n throw Error(\n \"systemjs-webpack-interop: rootDirectoryLevel (\" +\n rootDirectoryLevel +\n \") is greater than the number of directories (\" +\n numDirsProcessed +\n \") in the URL path \" +\n urlString\n );\n }\n\n const finalPath = pathname.slice(0, index + 1);\n\n return a.protocol + \"//\" + a.host + finalPath;\n}\n\nexports.resolveDirectory = resolveDirectory;\n\n// borrowed from https://github.com/parshap/js-is-integer/blob/master/index.js\nconst isInteger =\n Number.isInteger ||\n function isInteger(val) {\n return typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n };\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import { setPublicPath } from \"systemjs-webpack-interop\";\n\nsetPublicPath(\"@openmrs/esm-utils\");\n","function n(n,t){for(var r in t)n[r]=t[r];return n}export default function(t){var r=[];function u(n){for(var t=[],u=0;u<r.length;u++)r[u]===n?n=null:t.push(r[u]);r=t}function e(u,e,f){t=e?u:n(n({},t),u);for(var i=r,o=0;o<i.length;o++)i[o](t,f)}return t=t||{},{action:function(n){function r(t){e(t,!1,n)}return function(){for(var u=arguments,e=[t],f=0;f<arguments.length;f++)e.push(u[f]);var i=n.apply(this,e);if(null!=i)return i.then?i.then(r):r(i)}},setState:e,subscribe:function(n){return r.push(n),function(){u(n)}},unsubscribe:u,getState:function(){return t}}}\n//# sourceMappingURL=unistore.es.js.map\n","import createStore, { Store } from \"unistore\";\n\ninterface StoreEntity {\n value: Store<any>;\n active: boolean;\n}\n\nconst availableStores: Record<string, StoreEntity> = {};\n\nexport function createGlobalStore<TState>(\n name: string,\n initialState: TState\n): Store<TState> {\n const available = availableStores[name];\n\n if (available) {\n if (available.active) {\n console.error(\n \"Cannot override an existing store. Make sure that stores are only created once.\"\n );\n } else {\n available.value.setState(initialState, true);\n }\n\n available.active = true;\n return available.value;\n } else {\n const store = createStore(initialState);\n\n availableStores[name] = {\n value: store,\n active: true,\n };\n\n return store;\n }\n}\n\nexport function getGlobalStore<TState = any>(\n name: string,\n fallbackState?: TState\n): Store<TState> {\n const available = availableStores[name];\n\n if (!available) {\n const store = createStore(fallbackState);\n availableStores[name] = {\n value: store,\n active: false,\n };\n return store;\n }\n\n return available.value;\n}\n\nexport interface AppState {}\n\nexport function createAppState(initialState: AppState) {\n return createGlobalStore(\"app\", initialState);\n}\n\nexport function getAppState() {\n return getGlobalStore<AppState>(\"app\", {});\n}\n","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map\n","/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map\n","var Scheduler = /*@__PURE__*/ (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map\n","/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */\nimport { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queueScheduler = /*@__PURE__*/ new QueueScheduler(QueueAction);\nexport var queue = queueScheduler;\n//# sourceMappingURL=queue.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map\n","/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport var EMPTY = /*@__PURE__*/ new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map\n","/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */\nimport { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n/*@__PURE__*/ (function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = /*@__PURE__*/ (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map\n","/** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map\n","/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n//# sourceMappingURL=of.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = /*@__PURE__*/ (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = /*@__PURE__*/ (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) {\n bufferSize = Number.POSITIVE_INFINITY;\n }\n if (windowTime === void 0) {\n windowTime = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n if (!this.isStopped) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n if (!this.isStopped) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = /*@__PURE__*/ (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map\n","import { showToast } from \"@openmrs/esm-styleguide\";\n\nexport function handleApiError() {\n return (incomingResponseErr) => {\n setTimeout(() => {\n throw incomingResponseErr;\n });\n };\n}\n\nwindow.onerror = function () {\n showToast({ description: \"Oops! An unexpected error occurred.\" });\n\n return false;\n};\n\nwindow.onunhandledrejection = function (event) {\n showToast({ description: `Oops! An unexpected error occurred.` });\n};\n\nexport function reportError(err) {\n const error = ensureErrorObject(err);\n setTimeout(() => {\n throw error;\n });\n}\n\nexport function createErrorHandler() {\n const outgoingErr = Error();\n return (incomingErr) => {\n const finalErr = ensureErrorObject(incomingErr);\n finalErr.stack += `\\nAsync stacktrace:\\n${outgoingErr.stack}`;\n reportError(incomingErr);\n };\n}\n\nfunction ensureErrorObject(thing) {\n let message;\n if (thing instanceof Error) {\n return thing;\n } else if (thing === null) {\n return Error(`'null' was thrown as an error`);\n } else if (typeof thing === \"object\") {\n try {\n message = `Object thrown as error: ${JSON.stringify(thing)}`;\n } catch (e) {\n message = `Object thrown as error with the following properties: ${Object.keys(\n thing\n )}`;\n }\n return Error(message);\n } else if (thing === undefined) {\n return Error(`'undefined' was thrown as an error`);\n } else {\n return Error(thing.toString());\n }\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","(function() {\n var utils = require(\"./utils\");\n var M = require('./middlewares/core');\n var query = require('./middlewares/search');\n var auth = require('./middlewares/auth');\n var transport = require('./middlewares/http');\n var errors = require('./middlewares/errors');\n var config = require('./middlewares/config');\n var bundle = require('./middlewares/bundle');\n var pt = require('./middlewares/patient');\n var refs = require('./middlewares/references');\n var url = require('./middlewares/url');\n var decorate = require('./decorate');\n\n var cache = {};\n\n\n var fhir = function(cfg, adapter){\n var Middleware = M.Middleware;\n var $$Attr = M.$$Attr;\n\n var $$Method = function(m){ return $$Attr('method', m);};\n var $$Header = function(h,v) {return $$Attr('headers.' + h, v);};\n\n var $Errors = Middleware(errors);\n var Defaults = Middleware(config(cfg, adapter))\n .and($Errors)\n .and(auth.$Basic)\n .and(auth.$Bearer)\n .and(auth.$Credentials)\n .and(transport.$JsonData)\n .and($$Header('Accept', (cfg.headers && cfg.headers['Accept']) ? cfg.headers['Accept'] : 'application/json'))\n .and($$Header('Content-Type', (cfg.headers && cfg.headers['Content-Type']) ? cfg.headers['Content-Type'] : 'application/json'));\n\n var GET = Defaults.and($$Method('GET'));\n var POST = Defaults.and($$Method('POST'));\n var PUT = Defaults.and($$Method('PUT'));\n var DELETE = Defaults.and($$Method('DELETE'));\n var PATCH = Defaults.and($$Method('PATCH'));\n\n var http = transport.Http(cfg, adapter);\n\n var Path = url.Path;\n var BaseUrl = Path(cfg.baseUrl);\n var resourceTypePath = BaseUrl.slash(\":type || :resource.resourceType\");\n var searchPath = resourceTypePath;\n var resourceTypeHxPath = resourceTypePath.slash(\"_history\");\n var resourcePath = resourceTypePath.slash(\":id || :resource.id\");\n var resourceHxPath = resourcePath.slash(\"_history\");\n var vreadPath = resourcePath.slash(\":versionId || :resource.meta.versionId\");\n var metaTarget = BaseUrl.slash(\":target.resourceType || :target.type\").slash(\":target.id\").slash(':target.versionId');\n\n var ReturnHeader = $$Header('Prefer', 'return=representation');\n\n var $Paging = Middleware(query.$Paging);\n\n return decorate({\n conformance: GET.and(BaseUrl.slash(\"metadata\")).end(http),\n document: POST.and(BaseUrl.slash(\"Document\")).end(http),\n profile: GET.and(BaseUrl.slash(\"Profile\").slash(\":type\")).end(http),\n transaction: POST.and(BaseUrl).end(http),\n history: GET.and(BaseUrl.slash(\"_history\")).and($Paging).end(http),\n typeHistory: GET.and(resourceTypeHxPath).and($Paging).end(http),\n resourceHistory: GET.and(resourceHxPath).and($Paging).end(http),\n read: GET.and(pt.$WithPatient).and(resourcePath).end(http),\n vread: GET.and(vreadPath).end(http),\n \"delete\": DELETE.and(resourcePath).and(ReturnHeader).end(http),\n create: POST.and(resourceTypePath).and(ReturnHeader).end(http),\n validate: POST.and(resourceTypePath.slash(\"_validate\")).end(http),\n meta: {\n add: POST.and(metaTarget.slash(\"$meta-add\")).end(http),\n delete: POST.and(metaTarget.slash(\"$meta-delete\")).end(http),\n read: GET.and(metaTarget.slash(\"$meta\")).end(http)\n },\n search: GET.and(resourceTypePath).and(pt.$WithPatient).and(query.$SearchParams).and($Paging).end(http),\n update: PUT.and(resourcePath).and(ReturnHeader).end(http),\n conditionalUpdate: PUT.and(resourceTypePath).and(query.$SearchParams).and(ReturnHeader).end(http),\n conditionalDelete: DELETE.and(resourceTypePath).and(query.$SearchParams).and(ReturnHeader).end(http),\n nextPage: GET.and(bundle.$$BundleLinkUrl(\"next\")).end(http),\n // For previous page, bundle.link.relation can either have 'previous' or 'prev' values\n prevPage: GET.and(bundle.$$BundleLinkUrl(\"previous\")).and(bundle.$$BundleLinkUrl(\"prev\")).end(http),\n getBundleByUrl: GET.and(Path(\":url\")).end(http),\n resolve: GET.and(refs.resolve).end(http),\n patch: PATCH.and(resourcePath).and($$Header('Content-Type', 'application/json-patch+json')).end(http)\n }, adapter);\n };\n module.exports = fhir;\n}).call(this);\n","/*!\r\n * @name JavaScript/NodeJS Merge v1.2.1\r\n * @author yeikos\r\n * @repository https://github.com/yeikos/js.merge\r\n\r\n * Copyright 2014 yeikos - MIT license\r\n * https://raw.github.com/yeikos/js.merge/master/LICENSE\r\n */\r\n\r\n;(function(isNode) {\r\n\r\n\t/**\r\n\t * Merge one or more objects \r\n\t * @param bool? clone\r\n\t * @param mixed,... arguments\r\n\t * @return object\r\n\t */\r\n\r\n\tvar Public = function(clone) {\r\n\r\n\t\treturn merge(clone === true, false, arguments);\r\n\r\n\t}, publicName = 'merge';\r\n\r\n\t/**\r\n\t * Merge two or more objects recursively \r\n\t * @param bool? clone\r\n\t * @param mixed,... arguments\r\n\t * @return object\r\n\t */\r\n\r\n\tPublic.recursive = function(clone) {\r\n\r\n\t\treturn merge(clone === true, true, arguments);\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Clone the input removing any reference\r\n\t * @param mixed input\r\n\t * @return mixed\r\n\t */\r\n\r\n\tPublic.clone = function(input) {\r\n\r\n\t\tvar output = input,\r\n\t\t\ttype = typeOf(input),\r\n\t\t\tindex, size;\r\n\r\n\t\tif (type === 'array') {\r\n\r\n\t\t\toutput = [];\r\n\t\t\tsize = input.length;\r\n\r\n\t\t\tfor (index=0;index<size;++index)\r\n\r\n\t\t\t\toutput[index] = Public.clone(input[index]);\r\n\r\n\t\t} else if (type === 'object') {\r\n\r\n\t\t\toutput = {};\r\n\r\n\t\t\tfor (index in input)\r\n\r\n\t\t\t\toutput[index] = Public.clone(input[index]);\r\n\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Merge two objects recursively\r\n\t * @param mixed input\r\n\t * @param mixed extend\r\n\t * @return mixed\r\n\t */\r\n\r\n\tfunction merge_recursive(base, extend) {\r\n\r\n\t\tif (typeOf(base) !== 'object')\r\n\r\n\t\t\treturn extend;\r\n\r\n\t\tfor (var key in extend) {\r\n\r\n\t\t\tif (typeOf(base[key]) === 'object' && typeOf(extend[key]) === 'object') {\r\n\r\n\t\t\t\tbase[key] = merge_recursive(base[key], extend[key]);\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tbase[key] = extend[key];\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn base;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Merge two or more objects\r\n\t * @param bool clone\r\n\t * @param bool recursive\r\n\t * @param array argv\r\n\t * @return object\r\n\t */\r\n\r\n\tfunction merge(clone, recursive, argv) {\r\n\r\n\t\tvar result = argv[0],\r\n\t\t\tsize = argv.length;\r\n\r\n\t\tif (clone || typeOf(result) !== 'object')\r\n\r\n\t\t\tresult = {};\r\n\r\n\t\tfor (var index=0;index<size;++index) {\r\n\r\n\t\t\tvar item = argv[index],\r\n\r\n\t\t\t\ttype = typeOf(item);\r\n\r\n\t\t\tif (type !== 'object') continue;\r\n\r\n\t\t\tfor (var key in item) {\r\n\r\n\t\t\t\tif (key === '__proto__') continue;\r\n\r\n\t\t\t\tvar sitem = clone ? Public.clone(item[key]) : item[key];\r\n\r\n\t\t\t\tif (recursive) {\r\n\r\n\t\t\t\t\tresult[key] = merge_recursive(result[key], sitem);\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tresult[key] = sitem;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Get type of variable\r\n\t * @param mixed input\r\n\t * @return string\r\n\t *\r\n\t * @see http://jsperf.com/typeofvar\r\n\t */\r\n\r\n\tfunction typeOf(input) {\r\n\r\n\t\treturn ({}).toString.call(input).slice(8, -1).toLowerCase();\r\n\r\n\t}\r\n\r\n\tif (isNode) {\r\n\r\n\t\tmodule.exports = Public;\r\n\r\n\t} else {\r\n\r\n\t\twindow[publicName] = Public;\r\n\r\n\t}\r\n\r\n})(typeof module === 'object' && module && typeof module.exports === 'object' && module.exports);","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","(function() {\n var utils = require('../utils');\n\n var type = utils.type;\n\n var assertArray = utils.assertArray;\n\n var assertObject = utils.assertObject;\n\n var reduceMap = utils.reduceMap;\n\n var identity = utils.identity;\n\n var OPERATORS = {\n $gt: 'gt',\n $lt: 'lt',\n $lte: 'lte',\n $gte: 'gte',\n $ge: 'ge',\n $le: 'le'\n };\n\n var MODIFIERS = {\n $asc: ':asc',\n $desc: ':desc',\n $exact: ':exact',\n $missing: ':missing',\n $null: ':missing',\n $text: ':text'\n };\n\n var isOperator = function(v) {\n return v.indexOf('$') === 0;\n };\n\n var expandParam = function(k, v) {\n return reduceMap(v, function(acc, arg) {\n var kk, o, res, vv;\n kk = arg[0], vv = arg[1];\n return acc.concat(kk === '$and' ? assertArray(vv).reduce((function(a, vvv) {\n return a.concat(linearizeOne(k, vvv));\n }), []) : kk === '$type' ? [] : isOperator(kk) ? (o = {\n param: k\n }, kk === '$or' ? o.value = vv : (OPERATORS[kk] ? o.operator = OPERATORS[kk] : void 0, MODIFIERS[kk] ? o.modifier = MODIFIERS[kk] : void 0, type(vv) === 'object' && vv.$or ? o.value = vv.$or : o.value = [vv]), [o]) : (v.$type ? res = \":\" + v.$type : void 0, linearizeOne(\"\" + k + (res || '') + \".\" + kk, vv)));\n });\n };\n\n var handleSort = function(xs) {\n var i, len, results, x;\n assertArray(xs);\n results = [];\n for (i = 0, len = xs.length; i < len; i++) {\n x = xs[i];\n switch (type(x)) {\n case 'array':\n results.push({\n param: '_sort',\n value: x[0],\n modifier: \":\" + x[1]\n });\n break;\n case 'string':\n results.push({\n param: '_sort',\n value: x\n });\n break;\n default:\n results.push(void 0);\n }\n }\n return results;\n };\n\n var handleInclude = function(includes, key) {\n return reduceMap(includes, function(acc, arg) {\n var k, v;\n k = arg[0], v = arg[1];\n return acc.concat((function() {\n switch (type(v)) {\n case 'array':\n return v.map(function(x) {\n return {\n param: key === '$include' ? '_include' : '_revinclude',\n value: k + \":\" + x\n };\n });\n case 'string':\n return [\n {\n param: key === '$include' ? '_include' : '_revinclude',\n value: k + \":\" + v\n }\n ];\n }\n })());\n });\n };\n var handleHas = function(includes, key) {\n return reduceMap(includes, function(acc, arg) {\n var k, v;\n k = arg[0], v = arg[1];\n return acc.concat((function() {\n switch (type(v)) {\n case 'array':\n return v.map(function(x) {\n return {\n param: '_has',\n value: k + \"=\" + x\n };\n });\n case 'string':\n return [\n {\n param: '_has',\n value: k + \"=\" + v\n }\n ];\n }\n })());\n });\n };\n var linearizeOne = function(k, v) {\n if (k === '$sort') {\n return handleSort(v);\n } else if (k === '$has') {\n return handleHas(v, k);\n } else if (k === '$include' || k === '$revInclude') {\n return handleInclude(v, k);\n } else {\n switch (type(v)) {\n case 'object':\n return expandParam(k, v);\n case 'string':\n return [\n {\n param: k,\n value: [v]\n }\n ];\n case 'number':\n return [\n {\n param: k,\n value: [v]\n }\n ];\n case 'array':\n return [\n {\n param: k,\n value: [v.join(\"|\")]\n }\n ];\n default:\n throw \"could not linearizeParams \" + (type(v));\n }\n }\n };\n\n var linearizeParams = function(query) {\n return reduceMap(query, function(acc, arg) {\n var k, v;\n k = arg[0], v = arg[1];\n return acc.concat(linearizeOne(k, v));\n });\n };\n\n var buildSearchParams = function(query) {\n var p, ps, value;\n var excludeEncode = ['_include', '_revinclude', '_has']\n ps = (function() {\n var i, len, ref, results;\n ref = linearizeParams(query);\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n p = ref[i];\n if (excludeEncode.indexOf(p.param) === -1)\n value = encodeURIComponent(p.value);\n else\n value = p.value\n results.push([p.param, p.modifier, (p.param == '_has') ? ':' : '=', p.operator, value].filter(identity).join(''));\n }\n return results;\n })();\n return ps.join(\"&\");\n };\n\n exports._query = linearizeParams;\n\n exports.query = buildSearchParams;\n\n var mw = require('./core');\n\n exports.$SearchParams = mw.$$Attr('url', function(args){\n var url = args.url;\n if(args.query){\n var queryStr = buildSearchParams(args.query);\n return url + \"?\" + queryStr;\n }\n return url;\n });\n\n\n exports.$Paging = function(h){\n return function(args){\n var params = args.params || {};\n if(args.since){params._since = args.since;}\n if(args.count){params._count = args.count;}\n args.params = params;\n return h(args);\n };\n };\n\n\n}).call(this);\n","(function() {\n var mw = require('./core');\n\n var btoa = require('Base64').btoa;\n\n exports.$Basic = mw.$$Attr('headers.Authorization', function(args){\n if(args.auth && args.auth.user && args.auth.pass){\n return \"Basic \" + btoa(args.auth.user + \":\" + args.auth.pass);\n }\n });\n\n exports.$Bearer = mw.$$Attr('headers.Authorization', function(args){\n if(args.auth && args.auth.bearer){\n return \"Bearer \" + args.auth.bearer;\n }\n });\n\n var credentials;\n // this first middleware sets the credentials attribute to empty, so\n // adapters cannot use it directly, thus enforcing a valid value to be parsed in.\n exports.$Credentials = mw.Middleware(mw.$$Attr('credentials', function(args){\n // Assign value for later checking\n credentials = args.credentials\n\n // Needs to return non-null and not-undefined\n // in order for value to be (un)set\n return '';\n })).and(mw.$$Attr('credentials', function(args){\n // check credentials for valid options, valid for fetch\n if(['same-origin', 'include'].indexOf(credentials) > -1 ){\n return credentials;\n }\n }));\n\n}).call(this);\n",";(function () {\n\n var object = typeof exports != 'undefined' ? exports : this; // #8: web workers\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n function InvalidCharacterError(message) {\n this.message = message;\n }\n InvalidCharacterError.prototype = new Error;\n InvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n // encoder\n // [https://gist.github.com/999166] by [https://github.com/nignag]\n object.btoa || (\n object.btoa = function (input) {\n var str = String(input);\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars, output = '';\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3/4);\n if (charCode > 0xFF) {\n throw new InvalidCharacterError(\"'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.\");\n }\n block = block << 8 | charCode;\n }\n return output;\n });\n\n // decoder\n // [https://gist.github.com/1020396] by [https://github.com/atk]\n object.atob || (\n object.atob = function (input) {\n var str = String(input).replace(/=+$/, '');\n if (str.length % 4 == 1) {\n throw new InvalidCharacterError(\"'atob' failed: The string to be decoded is not correctly encoded.\");\n }\n for (\n // initialize result and counters\n var bc = 0, bs, buffer, idx = 0, output = '';\n // get next character\n buffer = str.charAt(idx++);\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n });\n\n}());\n","(function() {\n var utils = require(\"../utils\");\n\n exports.Http = function(cfg, adapter){\n return function(args){\n if(args.debug){\n console.log(\"\\nDEBUG (request):\", args.method, args.url, args);\n }\n var promise = (args.http || adapter.http || cfg.http)(args);\n if (args.debug && promise && promise.then){\n promise.then(function(x){ console.log(\"\\nDEBUG: (responce)\", x);});\n }\n return promise;\n };\n };\n\n var toJson = function(x){\n return (utils.type(x) == 'object' || utils.type(x) == 'array') ? JSON.stringify(x) : x;\n };\n\n exports.$JsonData = function(h){\n return function(args){\n var data = args.bundle || args.data || args.resource;\n if(data){\n args.data = toJson(data);\n }\n return h(args);\n };\n };\n\n}).call(this);\n","module.exports = function(h){\n return function(args){\n try{\n return h(args);\n }catch(e){\n if(args.debug){\n console.log(\"\\nDEBUG: (ERROR in middleware)\");\n console.log(e.message);\n console.log(e.stack);\n }\n if(!args.defer) {\n console.log(\"\\nDEBUG: (ERROR in middleware)\");\n console.log(e.message);\n console.log(e.stack);\n throw new Error(\"I need adapter.defer\");\n }\n var deff = args.defer();\n deff.reject(e);\n return deff.promise;\n }\n };\n};\n","(function() {\n var copyAttr = function(from, to, attr){\n var v = from[attr];\n if(v && !to[attr]) {to[attr] = v;}\n return from;\n };\n\n module.exports = function(cfg, adapter){\n return function(h){\n return function(args){\n copyAttr(cfg, args, 'baseUrl');\n copyAttr(cfg, args, 'cache');\n copyAttr(cfg, args, 'auth');\n copyAttr(cfg, args, 'patient');\n copyAttr(cfg, args, 'debug');\n copyAttr(cfg, args, 'credentials');\n copyAttr(cfg, args, 'headers');\n copyAttr(cfg, args, 'agentOptions');\n copyAttr(adapter, args, 'defer');\n copyAttr(adapter, args, 'http');\n return h(args);\n };\n };\n };\n}).call(this);\n","exports.$$BundleLinkUrl = function(rel){\n return function(h) {\n return function(args){\n var matched = function(x){return x.relation && x.relation === rel;};\n var res = args.bundle && (args.bundle.link || []).filter(matched)[0];\n if(res && res.url){\n args.url = res.url;\n args.data = null;\n }\n return h(args);\n };\n };\n};\n","(function() {\n var mw = require('./core');\n\n // List of resources with 'patient' or 'subject' properties (as of FHIR DSTU2 1.0.0)\n var targets = [\n \"Account\",\n \"AllergyIntolerance\",\n \"BodySite\",\n \"CarePlan\",\n \"Claim\",\n \"ClinicalImpression\",\n \"Communication\",\n \"CommunicationRequest\",\n \"Composition\",\n \"Condition\",\n \"Contract\",\n \"DetectedIssue\",\n \"Device\",\n \"DeviceUseRequest\",\n \"DeviceUseStatement\",\n \"DiagnosticOrder\",\n \"DiagnosticReport\",\n \"DocumentManifest\",\n \"DocumentReference\",\n \"Encounter\",\n \"EnrollmentRequest\",\n \"EpisodeOfCare\",\n \"FamilyMemberHistory\",\n \"Flag\",\n \"Goal\",\n \"ImagingObjectSelection\",\n \"ImagingStudy\",\n \"Immunization\",\n \"ImmunizationRecommendation\",\n \"List\",\n \"Media\",\n \"MedicationAdministration\",\n \"MedicationDispense\",\n \"MedicationOrder\",\n \"MedicationStatement\",\n \"NutritionOrder\",\n \"Observation\",\n \"Order\",\n \"Procedure\",\n \"ProcedureRequest\",\n \"QuestionnaireResponse\",\n \"ReferralRequest\",\n \"RelatedPerson\",\n \"RiskAssessment\",\n \"Specimen\",\n \"SupplyDelivery\",\n \"SupplyRequest\",\n \"VisionPrescription\"\n ];\n\n exports.$WithPatient = mw.$$Simple(function(args){\n var type = args.type;\n if (args.patient) {\n if (type === \"Patient\") {\n args.query = args.query || {};\n args.query[\"_id\"] = args.patient;\n args[\"id\"] = args.patient;\n } else if (targets.indexOf(type) >= 0){\n args.query = args.query || {};\n args.query[\"patient\"] = args.patient;\n }\n }\n return args;\n });\n}).call(this);\n","(function() {\n var utils = require('../utils');\n\n var CONTAINED = /^#(.*)/;\n var resolveContained = function(ref, resource) {\n var cid = ref.match(CONTAINED)[1];\n var ret = (resource.contained || []).filter(function(r){\n return (r.id || r._id) == cid;\n })[0];\n return (ret && {content: ret}) || null;\n };\n\n var sync = function(arg) {\n var cache = arg.cache;\n var reference = arg.reference;\n var bundle = arg.bundle;\n var ref = reference;\n if (!ref.reference) {return null;}\n if (ref.reference.match(CONTAINED)) {return resolveContained(ref.reference, arg.resource);}\n var abs = utils.absoluteUrl(arg.baseUrl, ref.reference);\n var bundled = ((bundle && bundle.entry) || []).filter( function(e){\n return e.id === abs;\n })[0];\n return bundled || (cache != null ? cache[abs] : void 0) || null;\n };\n\n var resolve = function(h){\n return function(args) {\n var cacheMatched = sync(args);\n var ref = args.reference;\n var def = args.defer();\n if (cacheMatched) {\n if(!args.defer){ throw new Error(\"I need promise constructor 'adapter.defer' in adapter\"); }\n def.resolve(cacheMatched);\n return def.promise;\n }\n if (!ref) {\n throw new Error(\"No reference found\");\n }\n if (ref && ref.reference.match(CONTAINED)) {\n throw new Error(\"Contained resource not found\");\n }\n args.url = utils.absoluteUrl(args.baseUrl, ref.reference);\n args.data = null;\n return h(args);\n };\n };\n\n module.exports.sync = sync;\n module.exports.resolve = resolve;\n\n}).call(this);\n","(function() {\n var utils = require(\"../utils\");\n var core = require(\"./core\");\n\n var id = function(x){return x;};\n var constantly = function(x){return function(){return x;};};\n\n var get_in = function(obj, path){\n return path.split('.').reduce(function(acc,x){\n if(x === 'versionId' && acc[x]){ return '_history/'+ acc[x] }\n if(acc == null || acc == undefined) { return null; }\n return acc[x];\n }, obj);\n };\n\n var evalPropsExpr = function(exp, args){\n var exps = exp.split('||').map(function(x){return x.trim().substring(1);});\n for(var i = 0; i < exps.length; i++){\n var res = get_in(args, exps[i]);\n if(res){ return res; }\n }\n return null;\n };\n\n var evalExpr = function(exp, args){\n if (exp.indexOf(\":\") == 0){\n return evalPropsExpr(exp, args);\n } else {\n return exp;\n }\n };\n\n var buildPathPart = function(pth, args){\n var k = evalExpr(pth.trim(), args);\n if((k==null || k === undefined) && pth.includes('target.versionId') == false){ throw new Error(\"Parameter \"+pth+\" is required: \" + JSON.stringify(args)); }\n return k;\n };\n\n // path chaining function\n // which return haldler wrapper: (h, cfg)->(args -> promise)\n // it's chainable Path(\"baseUrl\").slash(\":type\").slash(\":id\").slash(\"_history\")(id, {})({id: 5, type: 'Patient'})\n // and composable p0 = Path(\"baseUrl); p1 = p0.slash(\"path)\n var Path = function(tkn, chain){\n //Chainable\n var new_chain = function(args){\n if(chain && tkn.includes('target.versionId') && !args.target.versionId){\n return chain(args);\n }\n return ((chain && (chain(args) + \"/\")) || \"\") + buildPathPart(tkn, args);\n };\n var ch = core.Attribute('url', new_chain);\n ch.slash = function(tkn){\n return Path(tkn, new_chain);\n };\n return ch;\n };\n\n exports.Path = Path;\n}).call(this);\n","(function() {\r\n var fhirAPI;\r\n var adapter;\r\n\r\n function getNext (bundle, process) {\r\n var i;\r\n var d = bundle.data.entry || [];\r\n var entries = [];\r\n for (i = 0; i < d.length; i++) {\r\n entries.push(d[i].resource);\r\n }\r\n process(entries);\r\n var def = adapter.defer();\r\n fhirAPI.nextPage({bundle:bundle.data}).then(function (r) {\r\n getNext(r, process).then(function (t) {\r\n def.resolve();\r\n });\r\n }, function(err) {def.resolve()});\r\n return def.promise;\r\n }\r\n \r\n function drain (searchParams, process, done, fail) {\r\n var ret = adapter.defer();\r\n \r\n fhirAPI.search(searchParams).then(function(data){\r\n getNext(data, process).then(function() {\r\n done();\r\n }, function(err) {\r\n fail(err);\r\n });\r\n }, function(err) {\r\n fail(err);\r\n });\r\n };\r\n \r\n function fetchAll (searchParams){\r\n var ret = adapter.defer();\r\n var results = [];\r\n \r\n drain(\r\n searchParams,\r\n function(entries) {\r\n entries.forEach(function(entry) {\r\n results.push(entry);\r\n });\r\n },\r\n function () {\r\n ret.resolve(results);\r\n },\r\n function (err) {\r\n ret.reject(err);\r\n }\r\n );\r\n \r\n return ret.promise;\r\n };\r\n\r\n function fetchAllWithReferences (searchParams, resolveParams) {\r\n var ret = adapter.defer();\r\n \r\n fhirAPI.search(searchParams) // TODO: THIS IS NOT CORRECT (need fetchAll, but it does not return a bundle yet)\r\n .then(function(results){\r\n\r\n var resolvedReferences = {};\r\n\r\n var queue = [function() {ret.resolve(results, resolvedReferences);}];\r\n \r\n function enqueue (bundle,resource,reference) {\r\n queue.push(function() {resolveReference(bundle,resource,reference)});\r\n }\r\n\r\n function next() {\r\n (queue.pop())();\r\n }\r\n\r\n function resolveReference (bundle,resource,reference) {\r\n var referenceID = reference.reference;\r\n fhirAPI.resolve({'bundle': bundle, 'resource': resource, 'reference':reference}).then(function(res){\r\n var referencedObject = res.data || res.content;\r\n resolvedReferences[referenceID] = referencedObject;\r\n next();\r\n });\r\n }\r\n\r\n var bundle = results.data;\r\n\r\n bundle.entry && bundle.entry.forEach(function(element){\r\n var resource = element.resource;\r\n var type = resource.resourceType;\r\n resolveParams && resolveParams.forEach(function(resolveParam){\r\n var param = resolveParam.split('.');\r\n var targetType = param[0];\r\n var targetElement = param[1];\r\n var reference = resource[targetElement];\r\n if (type === targetType && reference) {\r\n var referenceID = reference.reference;\r\n if (!resolvedReferences[referenceID]) {\r\n enqueue(bundle,resource,reference);\r\n }\r\n }\r\n });\r\n });\r\n\r\n next();\r\n\r\n }, function(){\r\n ret.reject(\"Could not fetch search results\");\r\n });\r\n \r\n return ret.promise;\r\n };\r\n \r\n function decorate (client, newAdapter) {\r\n fhirAPI = client;\r\n adapter = newAdapter;\r\n client[\"drain\"] = drain;\r\n client[\"fetchAll\"] = fetchAll;\r\n client[\"fetchAllWithReferences\"] = fetchAllWithReferences;\r\n return client;\r\n }\r\n \r\n module.exports = decorate;\r\n}).call(this);","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = /*@__PURE__*/ (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = /*@__PURE__*/ getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map\n","/** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map\n","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) {\n return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n };\n};\n//# sourceMappingURL=subscribeToObservable.js.map\n","/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */\nimport { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) {\n return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToPromise.js.map\n","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) {\n return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = void 0;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToIterable.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_util_subscribeTo PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\nvar SimpleInnerSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SimpleInnerSubscriber, _super);\n function SimpleInnerSubscriber(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n return _this;\n }\n SimpleInnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(value);\n };\n SimpleInnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n };\n SimpleInnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete();\n this.unsubscribe();\n };\n return SimpleInnerSubscriber;\n}(Subscriber));\nexport { SimpleInnerSubscriber };\nvar ComplexInnerSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ComplexInnerSubscriber, _super);\n function ComplexInnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n return _this;\n }\n ComplexInnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n };\n ComplexInnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n };\n ComplexInnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return ComplexInnerSubscriber;\n}(Subscriber));\nexport { ComplexInnerSubscriber };\nvar SimpleOuterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SimpleOuterSubscriber, _super);\n function SimpleOuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SimpleOuterSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n SimpleOuterSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n SimpleOuterSubscriber.prototype.notifyComplete = function () {\n this.destination.complete();\n };\n return SimpleOuterSubscriber;\n}(Subscriber));\nexport { SimpleOuterSubscriber };\nvar ComplexOuterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ComplexOuterSubscriber, _super);\n function ComplexOuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComplexOuterSubscriber.prototype.notifyNext = function (_outerValue, innerValue, _outerIndex, _innerSub) {\n this.destination.next(innerValue);\n };\n ComplexOuterSubscriber.prototype.notifyError = function (error) {\n this.destination.error(error);\n };\n ComplexOuterSubscriber.prototype.notifyComplete = function (_innerSub) {\n this.destination.complete();\n };\n return ComplexOuterSubscriber;\n}(Subscriber));\nexport { ComplexOuterSubscriber };\nexport function innerSubscribe(result, innerSubscriber) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n//# sourceMappingURL=innerSubscribe.js.map\n","/** PURE_IMPORTS_START tslib,_map,_observable_from,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = /*@__PURE__*/ (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function () {\n var buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(SimpleOuterSubscriber));\nexport { MergeMapSubscriber };\nexport var flatMap = mergeMap;\n//# sourceMappingURL=mergeMap.js.map\n","/** PURE_IMPORTS_START _Observable,_util_subscribeTo,_scheduled_scheduled PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map\n","/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map\n","var _curry1 = /*#__PURE__*/require('./_curry1');\n\nvar _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}\nmodule.exports = _curry2;","module.exports = __WEBPACK_EXTERNAL_MODULE__7__;","var _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\nmodule.exports = _curry1;","function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}\nmodule.exports = _isPlaceholder;","function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}\nmodule.exports = _arity;","function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\nmodule.exports = _has;","var _curry1 = /*#__PURE__*/require('./_curry1');\n\nvar _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}\nmodule.exports = _curry3;","var _clone = /*#__PURE__*/require('./internal/_clone');\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\n\nvar clone = /*#__PURE__*/_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\n});\nmodule.exports = clone;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nmodule.exports = Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","var _isArrayLike = /*#__PURE__*/require('./_isArrayLike');\n\nvar _xwrap = /*#__PURE__*/require('./_xwrap');\n\nvar bind = /*#__PURE__*/require('../bind');\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nfunction _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}\nmodule.exports = _reduce;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _map = /*#__PURE__*/require('./internal/_map');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar _xmap = /*#__PURE__*/require('./internal/_xmap');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\nvar keys = /*#__PURE__*/require('./keys');\n\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\n\nvar map = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n default:\n return _map(fn, functor);\n }\n}));\nmodule.exports = map;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar path = /*#__PURE__*/require('./path');\n\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig s -> {s: a} -> a | Undefined\n * @param {String} p The property name\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop = /*#__PURE__*/_curry2(function prop(p, obj) {\n return path([p], obj);\n});\nmodule.exports = prop;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\n\nvar reduce = /*#__PURE__*/_curry3(_reduce);\nmodule.exports = reduce;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar mergeDeepWithKey = /*#__PURE__*/require('./mergeDeepWithKey');\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\n\nvar mergeDeepRight = /*#__PURE__*/_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\nmodule.exports = mergeDeepRight;","module.exports = __WEBPACK_EXTERNAL_MODULE__8__;","var _cloneRegExp = /*#__PURE__*/require('./_cloneRegExp');\n\nvar type = /*#__PURE__*/require('../type');\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\n\nfunction _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n idx += 1;\n }\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n return copiedValue;\n };\n switch (type(value)) {\n case 'Object':\n return copy({});\n case 'Array':\n return copy([]);\n case 'Date':\n return new Date(value.valueOf());\n case 'RegExp':\n return _cloneRegExp(value);\n default:\n return value;\n }\n}\nmodule.exports = _clone;","function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}\nmodule.exports = _cloneRegExp;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\n\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nmodule.exports = type;","var _isArray = /*#__PURE__*/require('./_isArray');\n\nvar _isTransformer = /*#__PURE__*/require('./_isTransformer');\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\n\nfunction _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n}\nmodule.exports = _dispatchable;","function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}\nmodule.exports = _isTransformer;","function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n return result;\n}\nmodule.exports = _map;","var _curry1 = /*#__PURE__*/require('./_curry1');\n\nvar _isArray = /*#__PURE__*/require('./_isArray');\n\nvar _isString = /*#__PURE__*/require('./_isString');\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\n\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.nodeType === 1) {\n return !!x.length;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nmodule.exports = _isArrayLike;","function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}\nmodule.exports = _isString;","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nfunction _xwrap(fn) {\n return new XWrap(fn);\n}\nmodule.exports = _xwrap;","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\n\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nmodule.exports = bind;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XMap = /*#__PURE__*/function () {\n\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap = /*#__PURE__*/_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\nmodule.exports = _xmap;","module.exports = {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _curryN = /*#__PURE__*/require('./internal/_curryN');\n\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\n\nvar curryN = /*#__PURE__*/_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n return _arity(length, _curryN(length, [], fn));\n});\nmodule.exports = curryN;","var _arity = /*#__PURE__*/require('./_arity');\n\nvar _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n combined[combinedIdx] = result;\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n combinedIdx += 1;\n }\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}\nmodule.exports = _curryN;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\nvar _isArguments = /*#__PURE__*/require('./internal/_isArguments');\n\n// cover IE < 9 keys issues\n\n\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nmodule.exports = keys;","var _has = /*#__PURE__*/require('./_has');\n\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nmodule.exports = _isArguments;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n */\n\n\nvar path = /*#__PURE__*/_curry2(function path(paths, obj) {\n var val = obj;\n var idx = 0;\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n val = val[paths[idx]];\n idx += 1;\n }\n return val;\n});\nmodule.exports = path;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _isObject = /*#__PURE__*/require('./internal/_isObject');\n\nvar mergeWithKey = /*#__PURE__*/require('./mergeWithKey');\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\n\nvar mergeDeepWithKey = /*#__PURE__*/_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\nmodule.exports = mergeDeepWithKey;","function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}\nmodule.exports = _isObject;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\n\nvar mergeWithKey = /*#__PURE__*/_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\nmodule.exports = mergeWithKey;","export enum Type {\n Array = \"Array\",\n Boolean = \"Boolean\",\n ConceptUuid = \"ConceptUuid\",\n Number = \"Number\",\n Object = \"Object\",\n String = \"String\",\n UUID = \"UUID\",\n}\n\n// Full-powered typing for Config and Schema trees depends on being able to\n// have types like `string not \"_default\"`. There is an experimental PR\n// for this feature, https://github.com/microsoft/TypeScript/pull/29317\n// But it is not likely to be merged any time terribly soon. (Nov 11, 2020)\nexport interface ConfigSchema {\n [key: string]: ConfigSchema | ConfigValue;\n _type?: Type;\n _validators?: Array<Validator>;\n _elements?: ConfigSchema;\n}\n\nexport interface Config extends Object {\n [moduleName: string]: { [key: string]: any };\n}\n\nexport interface ConfigObject extends Object {\n [key: string]: any;\n}\n\nexport type ConfigValue =\n | string\n | number\n | boolean\n | void\n | Array<any>\n | object;\n\nexport interface ExtensionSlotConfig {\n add?: Array<string>;\n remove?: Array<string>;\n order?: Array<string>;\n configure?: ExtensionSlotConfigureValueObject;\n}\n\nexport interface ExtensionSlotConfigureValueObject {\n [key: string]: object;\n}\n\nexport interface ExtensionSlotConfigObject {\n add?: Array<string>;\n remove?: Array<string>;\n order?: Array<string>;\n}\n\nexport type ProvidedConfig = {\n source: string;\n config: Config;\n};\n\nexport type ValidatorFunction = (value: any) => boolean;\n\nexport type Validator = (value: any) => void | string;\n","import { Validator, ValidatorFunction } from \"../types\";\n\nexport function validator(\n validationFunction: ValidatorFunction,\n message: string\n): Validator {\n return (value) => {\n if (!validationFunction(value)) {\n return message;\n }\n };\n}\n","import { validator } from \"./validator\";\n\nexport const isArray = validator(\n (val) => Array.isArray(val),\n \"must be an array\"\n);\n\nexport const isBoolean = validator(\n (val) => typeof val === \"boolean\",\n \"must be a boolean\"\n);\n\nexport const isNumber = validator(\n (val) => typeof val === \"number\",\n \"must be a number\"\n);\n\nexport const isString = validator(\n (val) => typeof val === \"string\",\n \"must be a string\"\n);\n\nexport const isObject = validator(\n (val) => typeof val === \"object\" && !Array.isArray(val) && val !== null,\n \"must be an object (not an array or null)\"\n);\n\nexport const isUuid = validator(\n (val) =>\n /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(\n val\n ) || /^[0-9a-f]{36}$/i.test(val),\n \"must be a valid UUID or a 36-character hexadecimal string\"\n);\n","import { createGlobalStore, getGlobalStore } from \"@openmrs/esm-state\";\nimport {\n Config,\n ConfigObject,\n ConfigSchema,\n ExtensionSlotConfigObject,\n ProvidedConfig,\n} from \"../types\";\n\n/**\n * Internal store\n * A store of the inputs and internal state\n * @internal\n */\nexport interface ConfigInternalStore {\n /** Configs added using the `provide` function */\n providedConfigs: Array<ProvidedConfig>;\n /** A config file provided as `config-file` in the import map */\n importMapConfig: Config;\n /** An object with module names for keys and schemas for values */\n schemas: Record<string, ConfigSchema>;\n /** A flag to keep track of whether the import map config has been loaded */\n importMapConfigLoaded: boolean;\n /** Whether to use dev defaults or not */\n devDefaultsAreOn: boolean;\n}\n\nconst configInternalStoreInitialValue = {\n providedConfigs: [],\n importMapConfig: {},\n schemas: {},\n importMapConfigLoaded: false,\n devDefaultsAreOn: getAreDevDefaultsOn(),\n};\n\n/**\n * @internal\n */\nexport const configInternalStore = createGlobalStore<ConfigInternalStore>(\n \"config-internal\",\n configInternalStoreInitialValue\n);\n\nlet lastValueOfDevDefaultsAreOn = getAreDevDefaultsOn();\nconfigInternalStore.subscribe((state) => {\n if (state.devDefaultsAreOn != lastValueOfDevDefaultsAreOn) {\n setAreDevDefaultsOn(state.devDefaultsAreOn);\n lastValueOfDevDefaultsAreOn = state.devDefaultsAreOn;\n }\n});\n\nfunction setAreDevDefaultsOn(value: boolean) {\n localStorage.setItem(\"openmrs:configAreDevDefaultsOn\", JSON.stringify(value));\n}\n\nfunction getAreDevDefaultsOn(): boolean {\n try {\n return JSON.parse(\n localStorage.getItem(\"openmrs:configAreDevDefaultsOn\") || \"false\"\n );\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Temporary config\n * LocalStorage-based config used by the implementer tools\n * @internal\n */\nexport interface TemporaryConfigStore {\n config: Config;\n}\n\nexport const temporaryConfigStore = createGlobalStore<TemporaryConfigStore>(\n \"temporary-config\",\n { config: getTemporaryConfig() }\n);\n\ntemporaryConfigStore.subscribe((state) => {\n setTemporaryConfig(state.config);\n});\n\nfunction setTemporaryConfig(value: Config) {\n localStorage.setItem(\"openmrs:temporaryConfig\", JSON.stringify(value));\n}\n\nfunction getTemporaryConfig(): Config {\n try {\n return JSON.parse(localStorage.getItem(\"openmrs:temporaryConfig\") || \"{}\");\n } catch (e) {\n return {};\n }\n}\n\n/**\n * Config-side extension store\n * Just what esm-config needs to know about extension state. This\n * is to avoid having esm-config depend on esm-extensions, which would\n * create a circular dependency.\n * @internal\n */\nexport interface ConfigExtensionStore {\n mountedExtensions: Array<ConfigExtensionStoreElement>;\n}\n\n/**\n * @internal\n */\nexport interface ConfigExtensionStoreElement {\n slotModuleName: string;\n extensionModuleName: string;\n slotName: string;\n extensionId: string;\n}\n\n/**\n * @internal\n */\nexport const configExtensionStore = createGlobalStore<ConfigExtensionStore>(\n \"config-extensions\",\n { mountedExtensions: [] }\n);\n\n/**\n * Output configs\n *\n * Each module has its own stores for its config and its extension slots' configs.\n */\nexport interface ConfigStore {\n config: ConfigObject | null;\n loaded: boolean;\n}\n\nfunction initializeConfigStore() {\n return {\n config: null,\n loaded: false,\n };\n}\n\nexport function getConfigStore(moduleName: string) {\n // We use a store for each module's config, named `config-${moduleName}`\n return getGlobalStore<ConfigStore>(\n `config-module-${moduleName}`,\n initializeConfigStore()\n );\n}\n\nexport interface ExtensionSlotConfigsStore {\n /** Configs for each extension slot in the module, indexed by slot name */\n extensionSlotConfigs: Record<string, ExtensionSlotConfigObject>;\n loaded: boolean;\n}\n\nfunction initializeExtensionSlotConfigsStore() {\n return {\n extensionSlotConfigs: {},\n loaded: false,\n };\n}\n\nexport function getExtensionSlotsConfigStore(moduleName: string) {\n // Each module gets one store for the configs of all the slots it contains\n return getGlobalStore<ExtensionSlotConfigsStore>(\n `config-extension-slots-${moduleName}`,\n initializeExtensionSlotConfigsStore()\n );\n}\n\n// A store for each mounted extension's config\nexport function getExtensionConfigStore(\n extensionSlotModuleName: string,\n attachedExtensionSlotName: string,\n extensionId: string\n) {\n return getGlobalStore<ConfigStore>(\n `config-extension-${extensionSlotModuleName}-${attachedExtensionSlotName}-${extensionId}`,\n initializeConfigStore()\n );\n}\n\n// A store of the implementer tools output config\nexport interface ImplementerToolsConfigStore {\n config: Config;\n}\n\nexport const implementerToolsConfigStore = createGlobalStore<\n ImplementerToolsConfigStore\n>(\"config-implementer-tools\", { config: {} });\n","import { clone, map, reduce, mergeDeepRight, prop } from \"ramda\";\nimport {\n Config,\n ConfigObject,\n ConfigSchema,\n ExtensionSlotConfig,\n ExtensionSlotConfigObject,\n Type,\n} from \"../types\";\nimport {\n isArray,\n isBoolean,\n isUuid,\n isNumber,\n isObject,\n isString,\n} from \"../validators/type-validators\";\nimport {\n ConfigExtensionStore,\n ConfigInternalStore,\n configInternalStore,\n ConfigStore,\n configExtensionStore,\n getConfigStore,\n getExtensionConfigStore,\n getExtensionSlotsConfigStore,\n implementerToolsConfigStore,\n temporaryConfigStore,\n} from \"./state\";\n\n/*\n * Config loading\n *\n *\n * We wait for SystemJS and window.importMapOverrides to be loaded before calling\n * `loadConfigs`. We actually wait quite a while longer--we wait 200ms before the\n * first attempt, because otherwise System.import exhibits some very weird\n * behavior.\n *\n * TODO: Investigate further, per this comment: https://github.com/joeldenning/import-map-overrides/issues/48#issuecomment-769477901\n */\nlet didInitialCheck = false;\nfunction checkForImportMapConfigFile() {\n setTimeout(() => {\n if (\n !didInitialCheck &&\n typeof System !== \"undefined\" &&\n typeof window.importMapOverrides !== \"undefined\"\n ) {\n window.importMapOverrides.getCurrentPageMap().then(loadConfigs);\n didInitialCheck = true;\n } else {\n checkForImportMapConfigFile();\n }\n }, 200);\n}\ncheckForImportMapConfigFile();\n\nwindow.addEventListener(\"import-map-overrides:change\", loadConfigs);\n\n// We cache the Promise that loads the import mapped config file\n// so that we can be sure to only call it once\nlet getImportMapConfigPromise;\n\nasync function loadConfigs() {\n if (!getImportMapConfigPromise) {\n getImportMapConfigPromise = getImportMapConfigFile();\n }\n\n return await getImportMapConfigPromise;\n}\n\nasync function getImportMapConfigFile(): Promise<void> {\n let importMapConfigExists: boolean;\n\n if (typeof System !== \"undefined\") {\n try {\n System.resolve(\"config-file\");\n importMapConfigExists = true;\n } catch {\n importMapConfigExists = false;\n configInternalStore.setState({\n importMapConfigLoaded: true,\n });\n }\n } else {\n throw new Error(\"SystemJS not loaded at getImportMapConfigFile call time\");\n }\n\n if (importMapConfigExists) {\n try {\n const configFileModule = await System.import(\"config-file\");\n configInternalStore.setState({\n importMapConfig: configFileModule.default,\n importMapConfigLoaded: true,\n });\n } catch (e) {\n console.error(`Problem importing config-file ${e}`);\n throw e;\n }\n }\n}\n\n/**\n * Store setup\n *\n *\n * Set up stores and subscriptions so that inputs get processed appropriately.\n *\n * There are *input* stores and *output* stores. The *input* stores\n * are configInternalStore, temporaryConfigStore, and configExtensionStore. The\n * output stores are set in the `compute...` functions. They are the module\n * config stores, the extension slot config stores (by module), the extension\n * config stores, and the implementer tools config store.\n *\n * This code sets up the subscriptions so that when an input store changes,\n * the correct set of output stores are updated.\n *\n * NB: You will notice that none of the `compute...` functions below explicitly\n * take `temporaryConfigStore` state as an input. They do make use of\n * `temporaryConfigStore`, however it is obtained in `getProvidedConfigs`.\n * It would probably be better to make the functions pure.\n */\ncomputeModuleConfig(configInternalStore.getState());\nconfigInternalStore.subscribe(computeModuleConfig);\ntemporaryConfigStore.subscribe(() =>\n computeModuleConfig(configInternalStore.getState())\n);\n\ncomputeImplementerToolsConfig(configInternalStore.getState());\nconfigInternalStore.subscribe(computeImplementerToolsConfig);\ntemporaryConfigStore.subscribe(() =>\n computeImplementerToolsConfig(configInternalStore.getState())\n);\n\ncomputeExtensionSlotConfigs(configInternalStore.getState());\nconfigInternalStore.subscribe(computeExtensionSlotConfigs);\ntemporaryConfigStore.subscribe(() =>\n computeExtensionSlotConfigs(configInternalStore.getState())\n);\n\ncomputeExtensionConfigs(\n configInternalStore.getState(),\n configExtensionStore.getState()\n);\nconfigInternalStore.subscribe((configState) =>\n computeExtensionConfigs(configState, configExtensionStore.getState())\n);\nconfigExtensionStore.subscribe((extensionState) =>\n computeExtensionConfigs(configInternalStore.getState(), extensionState)\n);\ntemporaryConfigStore.subscribe(() =>\n computeExtensionConfigs(\n configInternalStore.getState(),\n configExtensionStore.getState()\n )\n);\n\nfunction computeModuleConfig(state: ConfigInternalStore) {\n if (state.importMapConfigLoaded) {\n for (let moduleName of Object.keys(state.schemas)) {\n const config = getConfigForModule(moduleName);\n const moduleStore = getConfigStore(moduleName);\n moduleStore.setState({ loaded: true, config });\n }\n }\n}\n\nfunction computeExtensionSlotConfigs(state: ConfigInternalStore) {\n if (state.importMapConfigLoaded) {\n const slotConfigsByModule = getExtensionSlotConfigs();\n for (let [moduleName, extensionSlotConfigs] of Object.entries(\n slotConfigsByModule\n )) {\n const moduleStore = getExtensionSlotsConfigStore(moduleName);\n moduleStore.setState({ loaded: true, extensionSlotConfigs });\n }\n }\n}\n\nfunction computeImplementerToolsConfig(state: ConfigInternalStore) {\n if (state.importMapConfigLoaded) {\n const config = getImplementerToolsConfig();\n implementerToolsConfigStore.setState({ config });\n }\n}\n\nfunction computeExtensionConfigs(\n configState: ConfigInternalStore,\n extensionState: ConfigExtensionStore\n) {\n if (configState.importMapConfigLoaded) {\n for (let extension of extensionState.mountedExtensions) {\n const extensionStore = getExtensionConfigStore(\n extension.slotModuleName,\n extension.slotName,\n extension.extensionId\n );\n const config = getExtensionConfig(\n extension.slotModuleName,\n extension.extensionModuleName,\n extension.slotName,\n extension.extensionId\n );\n extensionStore.setState({ loaded: true, config });\n }\n }\n}\n\n/*\n * API\n *\n */\n\nexport function defineConfigSchema(moduleName: string, schema: ConfigSchema) {\n validateConfigSchema(moduleName, schema);\n const state = configInternalStore.getState();\n configInternalStore.setState({\n schemas: { ...state.schemas, [moduleName]: schema },\n });\n}\n\nexport function provide(config: Config, sourceName = \"provided\") {\n const state = configInternalStore.getState();\n configInternalStore.setState({\n providedConfigs: [...state.providedConfigs, { source: sourceName, config }],\n });\n}\n\n/**\n * A promise-based way to access the config as soon as it is fully loaded\n * from the import-map. If it is already loaded, resolves the config in its\n * present state.\n *\n * In general you should use the Unistore-based API provided by\n * `getConfigStore`, which allows creating a subscription so that you always\n * have the latest config. If using React, just use `useConfig`.\n *\n * This is a useful function if you need to get the config in the course\n * of the execution of a function.\n *\n * @param moduleName The name of the module for which to look up the config\n */\nexport function getConfig(moduleName: string): Promise<Config> {\n return new Promise<Config>((resolve) => {\n const store = getConfigStore(moduleName);\n function update(state: ConfigStore) {\n if (state.loaded && state.config) {\n resolve(state.config);\n unsubscribe && unsubscribe();\n }\n }\n update(store.getState());\n const unsubscribe = store.subscribe(update);\n });\n}\n\n/**\n * Validate and interpolate defaults for `providedConfig` according to `schema`\n *\n * @param schema a configuration schema\n * @param providedConfig an object of config values (without the top-level module name)\n * @param keyPathContext a dot-deparated string which helps the user figure out where\n * the provided config came from\n */\nexport function processConfig(\n schema: ConfigSchema,\n providedConfig: ConfigObject,\n keyPathContext: string\n) {\n validateConfig(schema, providedConfig, keyPathContext);\n const config = setDefaults(schema, providedConfig);\n return config;\n}\n\n/*\n * Helper functions\n *\n */\n\n/**\n * Returns the configuration for an extension. This configuration is specific\n * to the slot in which it is mounted, and its ID within that slot.\n *\n * The schema for that configuration is the schema for the module in which the\n * extension is defined.\n *\n * @param slotModuleName The name of the module which defines the extension slot\n * @param extensionModuleName The name of the module which defines the extension (and therefore the config schema)\n * @param slotName The name of the extension slot where the extension is mounted\n * @param extensionId The ID of the extension in its slot\n */\nfunction getExtensionConfig(\n slotModuleName: string,\n extensionModuleName: string,\n slotName: string,\n extensionId: string\n) {\n const slotModuleConfig = mergeConfigsFor(\n slotModuleName,\n getProvidedConfigs()\n );\n const configOverride =\n slotModuleConfig?.extensions?.[slotName]?.configure?.[extensionId] ?? {};\n const extensionModuleConfig = mergeConfigsFor(\n extensionModuleName,\n getProvidedConfigs()\n );\n const extensionConfig = mergeConfigs([extensionModuleConfig, configOverride]);\n const schema = configInternalStore.getState().schemas[extensionModuleName]; // TODO: validate that a schema exists for the module\n validateConfig(schema, extensionConfig, extensionModuleName);\n const config = setDefaults(schema, extensionConfig);\n delete config.extensions;\n return config;\n}\n\nfunction getImplementerToolsConfig(): Record<string, Config> {\n const state = configInternalStore.getState();\n let result = getSchemaWithValuesAndSources(clone(state.schemas));\n const configsAndSources = [\n ...state.providedConfigs.map((c) => [c.config, c.source]),\n [state.importMapConfig, \"config-file\"],\n [temporaryConfigStore.getState().config, \"temporary config\"],\n ] as Array<[Config, string]>;\n for (let [config, source] of configsAndSources) {\n result = mergeConfigs([result, createValuesAndSourcesTree(config, source)]);\n }\n return result;\n}\n\nfunction getSchemaWithValuesAndSources(schema) {\n if (schema.hasOwnProperty(\"_default\")) {\n return { ...schema, _value: schema._default, _source: \"default\" };\n } else if (isOrdinaryObject(schema)) {\n return Object.keys(schema).reduce((obj, key) => {\n obj[key] = getSchemaWithValuesAndSources(schema[key]);\n return obj;\n }, {});\n } else {\n // Schema is bad; error will have been logged during schema validation\n return {};\n }\n}\n\nfunction createValuesAndSourcesTree(config: ConfigObject, source: string) {\n if (isOrdinaryObject(config)) {\n return Object.keys(config).reduce((obj, key) => {\n obj[key] = createValuesAndSourcesTree(config[key], source);\n return obj;\n }, {});\n } else {\n return { _value: config, _source: source };\n }\n}\n\nfunction getExtensionSlotConfigs(): Record<\n string,\n Record<string, ExtensionSlotConfigObject>\n> {\n const allConfigs = mergeConfigs(getProvidedConfigs());\n const slotConfigPerModule: Record<\n string,\n Record<string, ExtensionSlotConfig>\n > = Object.keys(allConfigs).reduce((obj, key) => {\n if (allConfigs[key]?.extensions) {\n obj[key] = allConfigs[key]?.extensions;\n }\n return obj;\n }, {});\n validateAllExtensionSlotConfigs(slotConfigPerModule);\n return slotConfigPerModule;\n}\n\nfunction validateAllExtensionSlotConfigs(\n slotConfigPerModule: Record<string, Record<string, ExtensionSlotConfig>>\n) {\n for (let [moduleName, configBySlotName] of Object.entries(\n slotConfigPerModule\n )) {\n for (let [slotName, config] of Object.entries(configBySlotName)) {\n validateExtensionSlotConfig(config, moduleName, slotName);\n }\n }\n}\n\nfunction validateExtensionSlotConfig(\n config: ExtensionSlotConfig,\n moduleName: string,\n slotName: string\n): void {\n const errorPrefix = `Extension slot config '${moduleName}.extensions.${slotName}`;\n const invalidKeys = Object.keys(config).filter(\n (k) => ![\"add\", \"remove\", \"order\", \"configure\"].includes(k)\n );\n if (invalidKeys.length) {\n console.error(\n errorPrefix + `' contains invalid keys '${invalidKeys.join(\"', '\")}'`\n );\n }\n if (config.add) {\n if (\n !Array.isArray(config.add) ||\n !config.add.every((n) => typeof n === \"string\")\n ) {\n console.error(\n errorPrefix +\n `.add' is invalid. Must be an array of strings (extension IDs)`\n );\n }\n }\n if (config.remove) {\n if (\n !Array.isArray(config.remove) ||\n !config.remove.every((n) => typeof n === \"string\")\n ) {\n console.error(\n errorPrefix +\n `.remove' is invalid. Must be an array of strings (extension IDs)`\n );\n }\n }\n if (config.order) {\n if (\n !Array.isArray(config.order) ||\n !config.order.every((n) => typeof n === \"string\")\n ) {\n console.error(\n errorPrefix +\n `.order' is invalid. Must be an array of strings (extension IDs)`\n );\n }\n }\n if (config.configure) {\n if (!isOrdinaryObject(config.configure)) {\n console.error(\n errorPrefix +\n `.configure' is invalid. Must be an object with extension IDs for keys`\n );\n }\n }\n}\n\nfunction getProvidedConfigs(): Array<Config> {\n const state = configInternalStore.getState();\n return [\n ...state.providedConfigs.map((c) => c.config),\n state.importMapConfig,\n temporaryConfigStore.getState().config,\n ];\n}\n\nfunction validateConfigSchema(\n moduleName: string,\n schema: ConfigSchema,\n keyPath = \"\"\n) {\n const updateMessage = `Please verify that you are running the latest version and, if so, alert the maintainer.`;\n\n for (const key of Object.keys(schema).filter((k) => !k.startsWith(\"_\"))) {\n const thisKeyPath = keyPath + (keyPath && \".\") + key;\n const schemaPart = schema[key] as ConfigSchema;\n\n if (!isOrdinaryObject(schemaPart)) {\n console.error(\n `${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}`\n );\n continue;\n }\n\n if (!schemaPart.hasOwnProperty(\"_default\")) {\n // recurse for nested config keys\n validateConfigSchema(moduleName, schemaPart, thisKeyPath);\n }\n\n const elements = schemaPart._elements;\n if (hasObjectSchema(elements)) {\n validateConfigSchema(moduleName, elements, thisKeyPath + \"._elements\");\n }\n\n if (schemaPart._validators) {\n for (let validator of schemaPart._validators) {\n if (typeof validator !== \"function\") {\n console.error(\n `${moduleName} has invalid validator for key '${thisKeyPath}' ${updateMessage}.` +\n `\\n\\nIf you're the maintainer: validators must be functions that return either ` +\n `undefined or an error string. Received ${validator}.`\n );\n }\n }\n }\n\n const valueType = schemaPart._type;\n if (valueType && !Object.values(Type).includes(valueType)) {\n console.error(\n `${moduleName} has invalid type for key '${thisKeyPath}' ${updateMessage}.` +\n `\\n\\nIf you're the maintainer: the allowed types are ${Object.values(\n Type\n ).join(\", \")}. ` +\n `Received '${valueType}'`\n );\n }\n\n if (\n Object.keys(schemaPart).every((k) =>\n [\"_description\", \"_validators\", \"_elements\", \"_type\"].includes(k)\n ) &&\n !keyPath.includes(\"._elements\")\n ) {\n console.error(\n `${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` +\n `\\n\\nIf you're the maintainer: all config elements must have a default. ` +\n `Received ${JSON.stringify(schemaPart)}`\n );\n }\n\n if (\n elements &&\n valueType &&\n ![Type.Array, Type.Object].includes(valueType)\n ) {\n console.error(\n `${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` +\n `\\n\\nIf you're the maintainer: the 'elements' key only works with '_type' equal to 'Array' or 'Object'. ` +\n `Received ${JSON.stringify(valueType)}`\n );\n }\n }\n}\n\nfunction getConfigForModule(moduleName: string): ConfigObject {\n const state = configInternalStore.getState();\n if (!state.schemas.hasOwnProperty(moduleName)) {\n throw Error(\"No config schema has been defined for \" + moduleName);\n }\n\n const schema = state.schemas[moduleName];\n const inputConfig = mergeConfigsFor(moduleName, getProvidedConfigs());\n validateConfig(schema, inputConfig, moduleName);\n const config = setDefaults(schema, inputConfig);\n delete config.extensions;\n return config;\n}\n\nfunction mergeConfigsFor(\n moduleName: string,\n allConfigs: Array<Config>\n): ConfigObject {\n const allConfigsForModule = map(prop(moduleName), allConfigs).filter(\n (item) => item !== undefined && item !== null\n );\n\n return mergeConfigs(allConfigsForModule);\n}\n\nfunction mergeConfigs(configs: Array<Config>) {\n const mergeDeepAll = reduce(mergeDeepRight, {});\n return mergeDeepAll(configs);\n}\n\n// Recursively check the provided config tree to make sure that all\n// of the provided properties exist in the schema. Run validators\n// where present in the schema.\nconst validateConfig = (\n schema: ConfigSchema,\n config: ConfigObject,\n keyPath = \"\"\n) => {\n for (const key of Object.keys(config)) {\n const value = config[key];\n const thisKeyPath = keyPath + \".\" + key;\n const schemaPart = schema[key] as ConfigSchema;\n\n if (!schema.hasOwnProperty(key)) {\n if (key !== \"extensions\") {\n console.error(\n `Unknown config key '${thisKeyPath}' provided. Ignoring.`\n );\n }\n\n continue;\n }\n\n checkType(thisKeyPath, schemaPart._type, value);\n runValidators(thisKeyPath, schemaPart._validators, value);\n\n if (isOrdinaryObject(value)) {\n // structurally validate only if there's elements specified\n // or there's a `_default` value, which indicates a freeform object\n if (schemaPart._type === Type.Object) {\n validateDictionary(schemaPart, value, thisKeyPath);\n } else if (!schemaPart.hasOwnProperty(\"_default\")) {\n // recurse to validate nested object structure\n validateConfig(schemaPart, value, thisKeyPath);\n }\n } else {\n if (schemaPart._type === Type.Array) {\n validateArray(schemaPart, value, thisKeyPath);\n }\n }\n }\n};\n\nfunction validateDictionary(\n dictionarySchema: ConfigSchema,\n config: ConfigObject,\n keyPath: string\n) {\n if (dictionarySchema._elements) {\n for (const key of Object.keys(config)) {\n const value = config[key];\n validateConfig(dictionarySchema._elements, value, `${keyPath}.${key}`);\n }\n }\n}\n\nfunction validateArray(\n arraySchema: ConfigSchema,\n value: ConfigObject,\n keyPath: string\n) {\n // if there is an array element object schema, verify that elements match it\n if (hasObjectSchema(arraySchema._elements)) {\n for (let i = 0; i < value.length; i++) {\n validateConfig(arraySchema._elements, value[i], `${keyPath}[${i}]`);\n }\n }\n\n for (let i = 0; i < value.length; i++) {\n checkType(`${keyPath}[${i}]`, arraySchema._elements?._type, value[i]);\n runValidators(\n `${keyPath}[${i}]`,\n arraySchema._elements?._validators,\n value[i]\n );\n }\n}\n\nfunction checkType(keyPath: string, _type: Type | undefined, value: any) {\n if (_type) {\n const validator: Record<string, Function> = {\n Array: isArray,\n Boolean: isBoolean,\n ConceptUuid: isUuid,\n Number: isNumber,\n Object: isObject,\n String: isString,\n UUID: isUuid,\n };\n runValidators(keyPath, [validator[_type]], value);\n }\n}\n\nfunction runValidators(\n keyPath: string,\n validators: Array<Function> | undefined,\n value: any\n) {\n if (validators) {\n try {\n for (let validator of validators) {\n const validatorResult = validator(value);\n\n if (typeof validatorResult === \"string\") {\n const valueString =\n typeof value === \"object\" ? JSON.stringify(value) : value;\n console.error(\n `Invalid configuration value ${valueString} for ${keyPath}: ${validatorResult}`\n );\n }\n }\n } catch (e) {\n console.error(`Skipping invalid validator at \"${keyPath}\".`);\n }\n }\n}\n\n// Recursively fill in the config with values from the schema.\nconst setDefaults = (schema: ConfigSchema, inputConfig: Config) => {\n const config = clone(inputConfig);\n const devDefaultsAreOn = configInternalStore.getState().devDefaultsAreOn;\n\n if (!schema) {\n return config;\n }\n\n for (const key of Object.keys(schema)) {\n const configPart = config[key];\n const schemaPart = schema[key] as ConfigSchema;\n\n // The `schemaPart &&` clause of this `if` statement will only fail\n // if the schema is very invalid. It is there to prevent the app from\n // crashing completely, though it will produce unexpected behavior.\n // If this happens, there should be legible errors in the console from\n // the schema validator.\n if (schemaPart && schemaPart.hasOwnProperty(\"_default\")) {\n // We assume that schemaPart defines a config value, since it has\n // a property `_default`.\n if (!config.hasOwnProperty(key)) {\n const devDefault = schemaPart[\"_devDefault\"] || schemaPart[\"_default\"];\n\n (config[key] as any) = devDefaultsAreOn\n ? devDefault\n : schemaPart[\"_default\"];\n }\n\n // We also check if it is an object or array with object elements, in which case we recurse\n const elements = schemaPart._elements;\n\n if (configPart && hasObjectSchema(elements)) {\n if (schemaPart._type === Type.Array) {\n const configWithDefaults = configPart.map((conf: Config) =>\n setDefaults(elements, conf)\n );\n config[key] = configWithDefaults;\n } else if (schemaPart._type === Type.Object) {\n for (let objectKey of Object.keys(configPart)) {\n configPart[objectKey] = setDefaults(\n elements,\n configPart[objectKey]\n );\n }\n }\n }\n } else if (isOrdinaryObject(schemaPart)) {\n // Since schemaPart has no property \"_default\", if it's an ordinary object\n // (unlike, importantly, the validators array), we assume it is a parent config property.\n // We recurse to config[key] and schema[key]. Default config[key] to {}.\n const selectedConfigPart = config.hasOwnProperty(key) ? configPart : {};\n\n if (isOrdinaryObject(selectedConfigPart)) {\n config[key] = setDefaults(schemaPart, selectedConfigPart);\n }\n }\n }\n\n return config;\n};\n\nfunction hasObjectSchema(\n elementsSchema: Object | undefined\n): elementsSchema is ConfigSchema {\n return (\n !!elementsSchema &&\n Object.keys(elementsSchema).filter(\n (e) => ![\"_default\", \"_validators\"].includes(e)\n ).length > 0\n );\n}\n\nfunction isOrdinaryObject(value) {\n return typeof value === \"object\" && !Array.isArray(value) && value !== null;\n}\n\n/** @internal for testing */\nexport function reloadImportMapConfig() {\n getImportMapConfigPromise = undefined;\n return loadConfigs();\n}\n","function trimTrailingSlash(str: string) {\n return str.replace(/\\/$/, \"\");\n}\n\n/**\n * @internal\n * Interpolates a string with openmrsBase and openmrsSpaBase\n *\n * @param template A string to interpolate\n */\nexport function interpolateUrl(template: string): string {\n const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());\n return interpolateString(template, {\n openmrsBase: window.openmrsBase,\n openmrsSpaBase: openmrsSpaBase,\n }).replace(/^\\/\\//, \"/\"); // remove extra initial slash if present\n}\n\n/**\n * Interpolates values of `params` into the `template` string.\n *\n * Useful for additional template parameters in URLs.\n *\n * Example usage:\n * ```js\n * navigate({\n * to: interpolateString(\n * config.links.patientChart,\n * { patientUuid: patient.uuid }\n * )\n * });\n * ```\n *\n * @param template With optional params wrapped in `${ }`\n * @param params Values to interpolate into the string template\n * @category Navigation\n */\nexport function interpolateString(template: string, params: object): string {\n const names = Object.keys(params);\n return names.reduce(\n (prev, curr) => prev.split(\"${\" + curr + \"}\").join(params[curr]),\n template\n );\n}\n","import { navigateToUrl } from \"single-spa\";\nimport { interpolateUrl } from \"./interpolate-string\";\nimport type {} from \"@openmrs/esm-app-shell/src/types\";\n\nfunction trimTrailingSlash(str: string) {\n return str.replace(/\\/$/, \"\");\n}\n\nexport interface NavigateOptions {\n to: string;\n}\n\n/**\n * Calls `location.assign` for non-SPA paths and [navigateToUrl](https://single-spa.js.org/docs/api/#navigatetourl) for SPA paths\n *\n * Example usage:\n * ```js\n * const config = getConfig();\n * const submitHandler = () => {\n * navigate({ to: config.links.submitSuccess });\n * };\n * ```\n *\n * @param to The target path or URL. Supports templating with 'openmrsBase' and 'openmrsSpaBase'.\n * For example, `${openmrsSpaBase}/home` will resolve to `/openmrs/spa/home`\n * for implementations using the standard OpenMRS and SPA base paths.\n * @category Navigation\n */\nexport function navigate({ to }: NavigateOptions): void {\n const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());\n const target = interpolateUrl(to);\n const isSpaPath = target.startsWith(openmrsSpaBase);\n\n if (isSpaPath) {\n navigateToUrl(target);\n } else {\n window.location.assign(target);\n }\n}\n","import { validator } from \"./validator\";\n\n/**\n * Verifies that the value is between the provided minimum and maximum\n *\n * @param min Minimum acceptable value\n * @param max Maximum acceptable value\n */\nexport const inRange = (min: number, max: number) => {\n return validator(\n (val) => min <= val && val <= max,\n `must be between ${min} and ${max}`\n );\n};\n\n/**\n * Verifies that a string contains only the default URL template\n * parameters, plus any specified in `allowedTemplateParameters`.\n *\n * @param allowedTemplateParameters To be added to `openmrsBase` and `openmrsSpaBase`\n * @category Navigation\n */\nexport const isUrlWithTemplateParameters = (\n allowedTemplateParameters: string[]\n) => {\n const allowedParams = allowedTemplateParameters.concat([\n \"openmrsBase\",\n \"openmrsSpaBase\",\n ]);\n return validator((val) => {\n if (!val || typeof val != \"string\") {\n return false;\n }\n\n const rx = /\\${(.*?)}/g;\n let match = rx.exec(val);\n\n while (match) {\n if (!allowedParams.includes(match[1])) {\n return false;\n }\n\n match = rx.exec(val);\n }\n\n return true;\n }, \"should be a URL or path. The allowed template parameters are \" + allowedParams.map((p) => \"${\" + p + \"}\").join(\", \"));\n};\n\n/**\n * Verifies that a string contains only the default URL template parameters.\n *\n * @category Navigation\n */\nexport const isUrl = isUrlWithTemplateParameters([]);\n\nexport const validators = {\n inRange,\n isUrl,\n isUrlWithTemplateParameters,\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","module.exports = function(originalModule) {\n\tif (!originalModule.webpackPolyfill) {\n\t\tvar module = Object.create(originalModule);\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"exports\", {\n\t\t\tenumerable: true\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import { navigate } from \"@openmrs/esm-config\";\n\nconst fallbackType: NavigationContextType = \"link\";\nconst navigationContexts: Array<NavigationContext> = [\n {\n type: fallbackType,\n handler(link) {\n navigate({ to: link });\n return true;\n },\n },\n];\n\nexport type NavigationContextType = \"workspace\" | \"dialog\" | \"link\";\n\nexport interface NavigationContext {\n type: NavigationContextType;\n handler<T = any>(link: string, state: T): boolean;\n}\n\nexport function switchTo<T>(\n type: NavigationContextType,\n link: string,\n state?: T\n) {\n for (let i = navigationContexts.length; i--; ) {\n const context = navigationContexts[i];\n\n if (context.type === type && context.handler(link, state)) {\n return;\n }\n }\n\n switchTo(fallbackType, link, state);\n}\n\nexport function pushNavigationContext(context: NavigationContext) {\n navigationContexts.push(context);\n return () => {\n const index = navigationContexts.indexOf(context);\n navigationContexts.splice(index, 1);\n };\n}\n","import { pathToRegexp, Key } from \"path-to-regexp\";\n\nexport function getActualRouteProps(\n pathTemplate: string,\n url: string\n): object | undefined {\n const keys: Array<Key> = [];\n const ptr = pathToRegexp(pathTemplate, keys);\n const result = ptr.exec(url);\n\n if (result) {\n return keys.reduce((p, c, i) => {\n p[c.name] = result[i + 1];\n return p;\n }, {} as Record<string, string>);\n }\n\n return undefined;\n}\n","import {\n configExtensionStore,\n ConfigExtensionStoreElement,\n} from \"@openmrs/esm-config\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\n\nexport interface ExtensionDefinition {\n name: string;\n load(): Promise<any>;\n}\n\nexport interface ExtensionRegistration extends ExtensionDefinition {\n moduleName: string;\n}\n\nexport interface ExtensionInfo extends ExtensionRegistration {\n /**\n * The instances where the extension has been rendered using `renderExtension`,\n * indexed by slotModuleName and actualExtensionSlotName\n */\n instances: Record<string, Record<string, ExtensionInstance>>;\n}\n\nexport interface ExtensionInstance {\n id: string;\n domElement: HTMLElement;\n}\n\nexport interface ExtensionStore {\n /** Slots indexed by name */\n slots: Record<string, ExtensionSlotInfo>;\n /** Extensions indexed by name */\n extensions: Record<string, ExtensionInfo>;\n}\n\nexport interface ExtensionSlotInstance {\n /**\n * The set of extensions IDs which should be rendered into this slot at the current point in time.\n */\n assignedIds: Array<string>;\n /**\n * A set of additional extension IDs which have been added to to this slot despite not being\n * explicitly `attach`ed to it.\n * An example may be an extension which is added to the slot via the configuration.\n */\n addedIds: Array<string>;\n /**\n * A set of extension IDs which have been removed/hidden from this slot, even though they have\n * previously been `attach`ed/added to it.\n * An example may be an extension which is removed from the slot via the configuration.\n */\n removedIds: Array<string>;\n /**\n * A set allowing explicit ordering of the `assignedIds`.\n */\n idOrder: Array<string>;\n /**\n * The number of active registrations on the instance.\n */\n registered: number;\n /**\n * The dom element at which the slot is mounted\n */\n domElement: HTMLElement | null;\n}\n\nexport interface ExtensionSlotInfo {\n /**\n * The name under which the extension slot has been registered.\n */\n name: string;\n /**\n * The mapping of modules / extension slot instances where the extension slot has been used.\n */\n instances: Record<string, ExtensionSlotInstance>;\n /**\n * The set of extension IDs which have been attached to this slot.\n * This is essentially a complete history of `attach` calls to this specific slot.\n * However, not all of these extension IDs should be rendered.\n * `assignedIds` is the set defining those.\n */\n attachedIds: Array<string>;\n /**\n * Returns whether the given extension slot name corresponds to this ExtensionSlotInfo.\n * @param actualExtensionSlotName The actual extension slot name into which the extensions might be rendered.\n * For URL like extension slots, this should be the name where parameters have been replaced with actual values\n * (e.g. `/mySlot/213da954-87a2-432d-91f6-a3c441851726`).\n */\n matches(actualExtensionSlotName: string): boolean;\n}\n\nexport interface PageDefinition {\n route: string;\n load(): Promise<any>;\n}\n\nexport const extensionStore = createGlobalStore<ExtensionStore>(\"extensions\", {\n slots: {},\n extensions: {},\n});\n\nexport type MaybeAsync<T> = T | Promise<T>;\n\nlet storeUpdates: Promise<void> = Promise.resolve();\n\nexport function updateExtensionStore<U extends keyof ExtensionStore>(\n updater: (state: ExtensionStore) => MaybeAsync<Pick<ExtensionStore, U>>\n) {\n storeUpdates = storeUpdates.then(async () => {\n const state = extensionStore.getState();\n const newState = await updater(state);\n\n if (newState !== state) {\n extensionStore.setState(newState);\n }\n });\n}\n\n/**\n * esm-config maintains its own store of the extension information it needs\n * to generate extension configs. We keep it updated based on what's in\n * `extensionStore`.\n */\n\nupdateConfigExtensionStore(extensionStore.getState());\nextensionStore.subscribe(updateConfigExtensionStore);\n\nfunction updateConfigExtensionStore(extensionState: ExtensionStore) {\n const configExtensionRecords: Array<ConfigExtensionStoreElement> = [];\n\n for (let extensionInfo of Object.values(extensionState.extensions)) {\n for (let [slotModuleName, extensionBySlot] of Object.entries(\n extensionInfo.instances\n )) {\n for (let [actualSlotName, extensionInstance] of Object.entries(\n extensionBySlot\n )) {\n configExtensionRecords.push({\n slotModuleName,\n extensionModuleName: extensionInfo.moduleName,\n slotName: actualSlotName,\n extensionId: extensionInstance.id,\n });\n }\n }\n }\n configExtensionStore.setState({ mountedExtensions: configExtensionRecords });\n}\n","import { getExtensionSlotsConfigStore } from \"@openmrs/esm-config\";\nimport { getActualRouteProps } from \"./route\";\nimport {\n ExtensionRegistration,\n ExtensionSlotInfo,\n ExtensionSlotInstance,\n extensionStore,\n updateExtensionStore,\n} from \"./store\";\n\nfunction createNewExtensionSlotInstance(): ExtensionSlotInstance {\n return {\n addedIds: [],\n assignedIds: [],\n idOrder: [],\n removedIds: [],\n registered: 1,\n domElement: null,\n };\n}\n\nfunction createNewExtensionSlotInfo(\n extensionSlotName: string\n): ExtensionSlotInfo {\n return {\n name: extensionSlotName,\n attachedIds: [],\n instances: {},\n matches: (actualExtensionSlotName) =>\n slotNamesMatch(extensionSlotName, actualExtensionSlotName),\n };\n}\n\nexport function getExtensionRegistration(\n extensionId: string\n): ExtensionRegistration | undefined {\n const state = extensionStore.getState();\n const extensionName = extensionId.split(\"#\")[0];\n return state.extensions[extensionName];\n}\n\nexport const registerExtension: (\n moduleName: string,\n name: string,\n load: () => Promise<any>\n) => void = extensionStore.action(\n (state, moduleName: string, name: string, load: () => Promise<any>) => {\n state.extensions[name] = {\n name,\n load,\n moduleName,\n instances: {},\n };\n }\n);\n\nexport function attach(extensionSlotName: string, extensionId: string) {\n updateExtensionStore((state) => {\n const existingSlot = state.slots[extensionSlotName];\n\n if (!existingSlot) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [extensionSlotName]: {\n ...createNewExtensionSlotInfo(extensionSlotName),\n attachedIds: [extensionId],\n },\n },\n };\n } else {\n return {\n ...state,\n slots: {\n ...state.slots,\n [extensionSlotName]: {\n ...existingSlot,\n attachedIds: [...existingSlot.attachedIds, extensionId],\n },\n },\n };\n }\n });\n}\n\nexport function detach(extensionSlotName: string, extensionId: string) {\n updateExtensionStore((state) => {\n const existingSlot = state.slots[extensionSlotName];\n\n if (existingSlot && existingSlot.attachedIds.includes(extensionId)) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [extensionSlotName]: {\n ...existingSlot,\n attachedIds: existingSlot.attachedIds.filter(\n (id) => id !== extensionId\n ),\n },\n },\n };\n } else {\n return state;\n }\n });\n}\n\nfunction slotNamesMatch(\n attachedExtensionSlotName: string,\n actualExtensionSlotName: string\n) {\n return (\n attachedExtensionSlotName === actualExtensionSlotName ||\n (attachedExtensionSlotName.startsWith(\"/\") &&\n !!getActualRouteProps(attachedExtensionSlotName, actualExtensionSlotName))\n );\n}\n\nfunction getAssignedIds(\n instance: ExtensionSlotInstance,\n attachedIds: Array<string>\n) {\n const { addedIds, removedIds, idOrder } = instance;\n\n return [...attachedIds, ...addedIds]\n .filter((m) => !removedIds.includes(m))\n .sort((a, b) => {\n const ai = idOrder.indexOf(a);\n const bi = idOrder.indexOf(b);\n\n if (bi === -1) {\n return -1;\n } else if (ai === -1) {\n return 1;\n } else {\n return ai - bi;\n }\n });\n}\n\nfunction getUpdatedExtensionSlotInfoForRegistration(\n existingSlot: ExtensionSlotInfo,\n actualExtensionSlotName: string,\n moduleName: string\n) {\n if (!existingSlot) {\n return getUpdatedExtensionSlotInfo(actualExtensionSlotName, moduleName, {\n ...createNewExtensionSlotInfo(actualExtensionSlotName),\n instances: {\n [moduleName]: createNewExtensionSlotInstance(),\n },\n });\n } else if (moduleName in existingSlot.instances) {\n return getUpdatedExtensionSlotInfo(actualExtensionSlotName, moduleName, {\n ...existingSlot,\n instances: {\n ...existingSlot.instances,\n [moduleName]: {\n ...existingSlot.instances[moduleName],\n registered: existingSlot.instances[moduleName].registered + 1,\n },\n },\n });\n } else {\n return getUpdatedExtensionSlotInfo(actualExtensionSlotName, moduleName, {\n ...existingSlot,\n instances: {\n ...existingSlot.instances,\n [moduleName]: createNewExtensionSlotInstance(),\n },\n });\n }\n}\n\nfunction getUpdatedExtensionSlotInfoForUnregistration(\n existingSlot: ExtensionSlotInfo,\n actualExtensionSlotName: string,\n moduleName: string\n) {\n const { [moduleName]: existing, ...instances } = existingSlot.instances;\n\n if (existing.registered > 1) {\n return getUpdatedExtensionSlotInfo(actualExtensionSlotName, moduleName, {\n ...existingSlot,\n instances: {\n ...instances,\n [moduleName]: {\n ...existing,\n registered: existing.registered - 1,\n },\n },\n });\n } else {\n return getUpdatedExtensionSlotInfo(actualExtensionSlotName, moduleName, {\n ...existingSlot,\n instances,\n });\n }\n}\n\n/**\n * @param moduleName The name of the module that contains the extension slot\n * @param actualExtensionSlotName The extension slot name that is actually used\n * @param domElement The HTML element of the extension slot\n */\nexport function registerExtensionSlot(\n moduleName: string,\n actualExtensionSlotName: string,\n domElement: HTMLElement\n) {\n updateExtensionStore(async (state) => {\n const slotName =\n Object.keys(state.slots).filter((name) =>\n state.slots[name].matches(actualExtensionSlotName)\n )?.[0] ?? actualExtensionSlotName;\n const existingSlot = state.slots[slotName];\n const updatedSlot = await getUpdatedExtensionSlotInfoForRegistration(\n existingSlot,\n actualExtensionSlotName,\n moduleName\n );\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: {\n ...updatedSlot,\n instances: {\n ...updatedSlot.instances,\n [moduleName]: {\n ...updatedSlot.instances[moduleName],\n domElement,\n },\n },\n },\n },\n };\n });\n}\n\nexport function unregisterExtensionSlot(\n moduleName: string,\n actualExtensionSlotName: string\n) {\n updateExtensionStore(async (state) => {\n const slotName =\n Object.keys(state.slots).filter((name) =>\n state.slots[name].matches(actualExtensionSlotName)\n )?.[0] ?? actualExtensionSlotName;\n const existingSlot = state.slots[slotName];\n\n if (existingSlot && moduleName in existingSlot.instances) {\n const updatedSlot = await getUpdatedExtensionSlotInfoForUnregistration(\n existingSlot,\n actualExtensionSlotName,\n moduleName\n );\n\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: updatedSlot,\n },\n };\n }\n\n return state;\n });\n}\n\nexport function getExtensionSlotsForModule(moduleName: string) {\n const state = extensionStore.getState();\n return Object.keys(state.slots).filter(\n (name) => moduleName in state.slots[name].instances\n );\n}\n\n/**\n * @internal\n * Just for testing.\n */\nexport const reset: () => void = extensionStore.action(() => {\n return {\n slots: {},\n extensions: {},\n };\n});\n\n/**\n * Returns information describing all extensions which can be rendered into an extension slot with\n * the specified name.\n * The returned information describe the extension itself, as well as the extension slot name(s)\n * with which it has been attached.\n * @param actualExtensionSlotName The extension slot name for which matching extension info should be returned.\n * For URL like extension slots, this should be the name where parameters have been replaced with actual values\n * (e.g. `/mySlot/213da954-87a2-432d-91f6-a3c441851726`).\n * @param moduleName The module name. Used for applying extension-specific config values to the result.\n * @param extensionSlot The extension slot information object.\n */\nexport async function getUpdatedExtensionSlotInfo(\n actualExtensionSlotName: string,\n moduleName: string,\n extensionSlot: ExtensionSlotInfo\n): Promise<ExtensionSlotInfo> {\n let instance = extensionSlot.instances[moduleName];\n\n if (instance) {\n const originalInstance = instance;\n const config =\n getExtensionSlotsConfigStore(moduleName).getState().extensionSlotConfigs[\n actualExtensionSlotName\n ] ?? {};\n\n if (Array.isArray(config.add)) {\n config.add.forEach((extensionId) => {\n if (!instance.addedIds.includes(extensionId)) {\n instance = {\n ...instance,\n addedIds: [...instance.addedIds, extensionId],\n };\n }\n });\n }\n\n if (Array.isArray(config.remove)) {\n config.remove.forEach((extensionId) => {\n if (!instance.removedIds.includes(extensionId)) {\n instance = {\n ...instance,\n removedIds: [...instance.removedIds, extensionId],\n };\n }\n });\n }\n\n if (Array.isArray(config.order)) {\n const testOrder = config.order.join(\",\");\n const fullOrder = instance.idOrder.join(\",\");\n\n if (!fullOrder.endsWith(testOrder)) {\n config.order.forEach((extensionId) => {\n instance = {\n ...instance,\n idOrder: [\n ...instance.idOrder.filter((m) => m !== extensionId),\n extensionId,\n ],\n };\n });\n }\n }\n\n const assignedIds = getAssignedIds(instance, extensionSlot.attachedIds);\n\n if (\n instance !== originalInstance ||\n assignedIds.join(\",\") !== instance.assignedIds.join(\",\")\n ) {\n return {\n ...extensionSlot,\n instances: {\n ...extensionSlot.instances,\n [moduleName]: {\n ...instance,\n assignedIds,\n },\n },\n };\n }\n }\n\n return extensionSlot;\n}\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import { mountRootParcel } from \"single-spa\";\nimport { cloneDeep, set } from \"lodash-es\";\nimport { getExtensionRegistration } from \"./extensions\";\nimport { getActualRouteProps } from \"./route\";\nimport { updateExtensionStore } from \"./store\";\n\nexport interface Lifecycle {\n bootstrap(): void;\n mount(): void;\n unmount(): void;\n update?(): void;\n}\n\nexport interface CancelLoading {\n (): void;\n}\n\n/**\n * Mounts into a DOM node (representing an extension slot)\n * a lazy-loaded component from *any* microfrontend\n * that registered an extension component for this slot.\n */\nexport function renderExtension(\n domElement: HTMLElement,\n actualExtensionSlotName: string,\n attachedExtensionSlotName: string,\n extensionSlotModuleName: string,\n extensionId: string,\n renderFunction: (lifecycle: Lifecycle) => Lifecycle = (x) => x,\n additionalProps: Record<string, any> = {}\n): CancelLoading {\n const extensionName = extensionId.split(\"#\")[0];\n const extensionRegistration = getExtensionRegistration(extensionId);\n let active = true;\n\n if (domElement) {\n if (extensionRegistration) {\n const routeProps = getActualRouteProps(\n actualExtensionSlotName,\n attachedExtensionSlotName\n );\n const extensionContextProps = {\n _extensionContext: {\n extensionId,\n actualExtensionSlotName,\n attachedExtensionSlotName,\n extensionSlotModuleName,\n extensionModuleName: extensionRegistration.moduleName,\n },\n };\n\n extensionRegistration.load().then(\n ({ default: result, ...lifecycle }) =>\n active &&\n mountRootParcel(renderFunction(result ?? lifecycle) as any, {\n ...additionalProps,\n ...extensionContextProps,\n ...routeProps,\n domElement,\n })\n );\n\n updateExtensionStore((state) =>\n set(\n cloneDeep(state),\n [\n \"extensions\",\n extensionName,\n \"instances\",\n extensionSlotModuleName,\n actualExtensionSlotName,\n ],\n { domElement, id: extensionId }\n )\n );\n } else {\n throw Error(\n `Couldn't find extension '${extensionName}' to attach to '${actualExtensionSlotName}'`\n );\n }\n }\n\n return () => {\n active = false;\n };\n}\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5__;","module.exports = __WEBPACK_EXTERNAL_MODULE__7__;","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=e||self).singleSpaReact={})}(this,(function(e){\"use strict\";function t(e){return(t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}e.SingleSpaContext=null;var r={React:null,ReactDOM:null,rootComponent:null,loadRootComponent:null,suppressComponentDidCatchWarning:!1,domElements:{},errorBoundary:null,domElementGetter:null,parcelCanUpdate:!0};function a(e,t){return e.rootComponent?Promise.resolve():e.loadRootComponent(t).then((function(t){e.rootComponent=t}))}function i(e,t){return new Promise((function(n,o){e.suppressComponentDidCatchWarning||!function(e){if(!(e&&\"string\"==typeof e.version&&e.version.indexOf(\".\")>=0))return!1;var t=e.version.slice(0,e.version.indexOf(\".\"));try{return Number(t)>=16}catch(e){return!1}}(e.React)||e.errorBoundary||(e.rootComponent.prototype?e.rootComponent.prototype.componentDidCatch||console.warn(\"single-spa-react: \".concat(t.name||t.appName||t.childAppName,\"'s rootComponent should implement componentDidCatch to avoid accidentally unmounting the entire single-spa application.\")):console.warn(\"single-spa-react: \".concat(t.name||t.appName||t.childAppName,\"'s rootComponent does not implement an error boundary. If using a functional component, consider providing an opts.errorBoundary to singleSpaReact(opts).\")));var r=function(e,t){return(t=t&&t.customProps?t.customProps:t).domElement?function(){return t.domElement}:t.domElementGetter?t.domElementGetter:e.domElementGetter?e.domElementGetter:function(e){var t=e.appName||e.name;if(!t)throw Error(\"single-spa-react was not given an application name as a prop, so it can't make a unique dom element container for the react application\");var n=\"single-spa-application:\".concat(t);return function(){var e=document.getElementById(n);return e||((e=document.createElement(\"div\")).id=n,document.body.appendChild(e)),e}}(t)}(e,t);if(\"function\"!=typeof r)throw new Error(\"single-spa-react: the domElementGetter for react application '\".concat(t.appName||t.name,\"' is not a function\"));var a=u(e,t),i=function(e,t){var n=e(t);if(!n)throw new Error(\"single-spa-react: domElementGetter function for application '\".concat(t.appName||t.name,\"' did not return a valid dom element. Please pass a valid domElement or domElementGetter via opts or props\"));return n}(r,t);s({elementToRender:a,domElement:i,whenFinished:function(){n(this)},opts:e});e.domElements[t.name]=i}))}function c(e,t){return Promise.resolve().then((function(){e.ReactDOM.unmountComponentAtNode(e.domElements[t.name]),delete e.domElements[t.name]}))}function p(e,t){return new Promise((function(n,o){s({elementToRender:u(e,t),domElement:e.domElements[t.name],whenFinished:function(){n(this)},opts:e})}))}function s(e){var t=e.opts,n=e.elementToRender,o=e.domElement,r=e.whenFinished;return\"createRoot\"===t.renderType?t.ReactDOM.createRoot(o).render(n,r):\"createBlockingRoot\"===t.renderType?t.ReactDOM.createBlockingRoot(o).render(n,r):\"hydrate\"===t.renderType?t.ReactDOM.hydrate(n,o,r):t.ReactDOM.render(n,o,r)}function u(t,n){var o=t.React.createElement(t.rootComponent,n),r=e.SingleSpaContext?t.React.createElement(e.SingleSpaContext.Provider,{value:n},o):o;return t.errorBoundary&&(t.errorBoundaryClass=t.errorBoundaryClass||function(e){function t(n){e.React.Component.apply(this,arguments),this.state={caughtError:null,caughtErrorInfo:null},t.displayName=\"SingleSpaReactErrorBoundary(\".concat(n.name,\")\")}return t.prototype=Object.create(e.React.Component.prototype),t.prototype.render=function(){return this.state.caughtError?e.errorBoundary(this.state.caughtError,this.state.caughtErrorInfo,this.props):this.props.children},t.prototype.componentDidCatch=function(e,t){this.setState({caughtError:e,caughtErrorInfo:t})},t}(t),r=t.React.createElement(t.errorBoundaryClass,n,r)),r}e.default=function(s){if(\"object\"!==t(s))throw new Error(\"single-spa-react requires a configuration object\");var u=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({},r,{},s);if(!u.React)throw new Error(\"single-spa-react must be passed opts.React\");if(!u.ReactDOM)throw new Error(\"single-spa-react must be passed opts.ReactDOM\");if(!u.rootComponent&&!u.loadRootComponent)throw new Error(\"single-spa-react must be passed opts.rootComponent or opts.loadRootComponent\");if(u.errorBoundary&&\"function\"!=typeof u.errorBoundary)throw Error(\"The errorBoundary opt for single-spa-react must either be omitted or be a function that returns React elements\");!e.SingleSpaContext&&u.React.createContext&&(e.SingleSpaContext=u.React.createContext());var l={bootstrap:a.bind(null,u),mount:i.bind(null,u),unmount:c.bind(null,u)};return u.parcelCanUpdate&&(l.update=p.bind(null,u)),l},Object.defineProperty(e,\"__esModule\",{value:!0})}));\n//# sourceMappingURL=single-spa-react.js.map\n","module.exports = __WEBPACK_EXTERNAL_MODULE__9__;","import React from \"react\";\n\nexport interface ExtensionData {\n actualExtensionSlotName: string;\n attachedExtensionSlotName: string;\n extensionSlotModuleName: string;\n extensionId: string;\n}\n\nexport interface ComponentConfig {\n moduleName: string;\n extension?: ExtensionData;\n}\n\n/**\n * Available to all components. Provided by `openmrsComponentDecorator`.\n */\nexport const ComponentContext = React.createContext<ComponentConfig>({\n moduleName: \"\",\n});\n","import React, { MouseEvent, AnchorHTMLAttributes } from \"react\";\nimport { navigate, interpolateUrl } from \"@openmrs/esm-config\";\n\nfunction handleClick(event: MouseEvent, to: string) {\n if (\n !event.metaKey &&\n !event.ctrlKey &&\n !event.shiftKey &&\n event.button == 0\n ) {\n event.preventDefault();\n navigate({ to });\n }\n}\n\nexport interface ConfigurableLinkProps\n extends AnchorHTMLAttributes<HTMLAnchorElement> {\n to: string;\n}\n\n/**\n * A React link component which calls [[navigate]] when clicked\n *\n * @param to The target path or URL. Supports interpolation. See [[navigate]]\n * @param children Inline elements within the link\n * @param otherProps Any other valid props for an <a> tag except `href` and `onClick`\n * @category Navigation\n */\nexport const ConfigurableLink: React.FC<ConfigurableLinkProps> = ({\n to,\n children,\n ...otherProps\n}) => (\n <a\n onClick={(event) => handleClick(event, to)}\n href={interpolateUrl(to)}\n {...otherProps}\n >\n {children}\n </a>\n);\n","import { useEffect, useMemo, useState } from \"react\";\nimport { Store, BoundAction } from \"unistore\";\n\nexport type Actions = Function | { [key: string]: Function };\nexport type BoundActions = { [key: string]: BoundAction };\n\nfunction bindActions<T>(store: Store<T>, actions: Actions) {\n if (typeof actions == \"function\") {\n actions = actions(store);\n }\n\n const bound = {};\n\n for (let i in actions) {\n bound[i] = store.action(actions[i]);\n }\n\n return bound;\n}\n\nexport function createUseStore<T>(store: Store<T>) {\n function useStore(): T;\n function useStore(actions: Actions): T & BoundActions;\n function useStore(actions?: Actions): T & BoundActions;\n function useStore(actions?: Actions) {\n const [state, set] = useState(store.getState());\n useEffect(() => store.subscribe((state) => set(state)), []);\n let boundActions: BoundActions = {};\n\n if (actions) {\n boundActions = useMemo(() => bindActions(store, actions), [\n store,\n actions,\n ]);\n }\n\n return { ...state, ...boundActions };\n }\n\n return useStore;\n}\n","import React, { useContext } from \"react\";\nimport { renderExtension } from \"@openmrs/esm-extensions\";\nimport { ComponentContext } from \"./ComponentContext\";\n\nexport interface ExtensionProps {\n state?: Record<string, any>;\n}\n\n/**\n * Represents the position in the DOM where each extension within\n * an extension slot is rendered.\n *\n * Renders once for each extension attached to that extension slot.\n *\n * Usage of this component *must* have an ancestor `<ExtensionSlot>`.\n */\nexport const Extension: React.FC<ExtensionProps> = ({ state }) => {\n const ref = React.useRef<HTMLSlotElement>(null);\n const { extension } = useContext(ComponentContext);\n\n React.useEffect(() => {\n if (ref.current && extension) {\n return renderExtension(\n ref.current,\n extension.actualExtensionSlotName,\n extension.attachedExtensionSlotName,\n extension.extensionSlotModuleName,\n extension.extensionId,\n undefined,\n state\n );\n }\n }, [extension, ref.current]);\n\n return (\n // The extension is rendered into the `<slot>`. It is surrounded by a\n // `<div>` with relative positioning in order to allow the UI Editor\n // to absolutely position elements within it.\n <div style={{ position: \"relative\" }}>\n <slot ref={ref} />\n </div>\n );\n};\n","import React, { CSSProperties, ReactNode, useRef } from \"react\";\nimport { getExtensionRegistration } from \"@openmrs/esm-extensions\";\nimport { ComponentContext } from \"./ComponentContext\";\nimport { Extension } from \"./Extension\";\nimport { useExtensionSlot } from \"./useExtensionSlot\";\n\nexport interface ExtensionSlotBaseProps {\n extensionSlotName: string;\n children?: ReactNode;\n state?: Record<string, any>;\n style?: CSSProperties;\n}\n\n// remainder of props are for the top-level <div>\nexport type ExtensionSlotProps<T = {}> = ExtensionSlotBaseProps & T;\n\nexport const ExtensionSlot: React.FC<ExtensionSlotProps> = ({\n extensionSlotName: actualExtensionSlotName,\n children,\n state,\n style,\n ...divProps\n}: ExtensionSlotProps) => {\n const slotRef = useRef(null);\n const {\n attachedExtensionSlotName,\n extensionIdsToRender,\n extensionSlotModuleName,\n } = useExtensionSlot(actualExtensionSlotName, slotRef);\n\n return (\n <div ref={slotRef} style={{ ...style, position: \"relative\" }} {...divProps}>\n {extensionIdsToRender.map((extensionId) => {\n const extensionRegistration = getExtensionRegistration(extensionId);\n\n return (\n attachedExtensionSlotName &&\n extensionRegistration && (\n <ComponentContext.Provider\n key={extensionId}\n value={{\n moduleName: extensionRegistration.moduleName,\n extension: {\n actualExtensionSlotName,\n attachedExtensionSlotName,\n extensionSlotModuleName,\n extensionId,\n },\n }}\n >\n {children ?? <Extension state={state} />}\n </ComponentContext.Provider>\n )\n );\n })}\n </div>\n );\n};\n","import { MutableRefObject, useContext, useEffect, useState } from \"react\";\nimport {\n registerExtensionSlot,\n unregisterExtensionSlot,\n extensionStore,\n ExtensionStore,\n} from \"@openmrs/esm-extensions\";\nimport { ComponentContext } from \"./ComponentContext\";\n\nexport function useExtensionSlot(\n actualExtensionSlotName: string,\n ref: MutableRefObject<HTMLElement | null>\n) {\n const { moduleName } = useContext(ComponentContext);\n const extensionSlotModuleName = moduleName;\n\n if (!extensionSlotModuleName) {\n throw Error(\n \"ModuleNameContext has not been provided. This should come from @openmrs/esm-react-utils.\"\n );\n }\n\n const [\n [attachedExtensionSlotName, extensionIdsToRender],\n setState,\n ] = useState<[string | undefined, Array<string>]>([undefined, []]);\n\n useEffect(() => {\n if (ref.current) {\n registerExtensionSlot(\n extensionSlotModuleName,\n actualExtensionSlotName,\n ref.current\n );\n return () =>\n unregisterExtensionSlot(\n extensionSlotModuleName,\n actualExtensionSlotName\n );\n }\n }, [ref.current]);\n\n useEffect(() => {\n const update = (state: ExtensionStore) => {\n const slotInfo = Object.values(state.slots).find((slotDef) =>\n slotDef.matches(actualExtensionSlotName)\n );\n\n if (slotInfo) {\n const instance = slotInfo.instances[extensionSlotModuleName];\n\n if (\n instance &&\n (attachedExtensionSlotName !== slotInfo.name ||\n extensionIdsToRender.join(\",\") !== instance.assignedIds.join(\",\"))\n ) {\n setState([slotInfo.name, instance.assignedIds]);\n }\n }\n };\n\n update(extensionStore.getState());\n return extensionStore.subscribe((state) => update(state));\n }, [\n attachedExtensionSlotName,\n extensionIdsToRender,\n extensionSlotModuleName,\n ]);\n\n return {\n extensionSlotModuleName,\n attachedExtensionSlotName,\n extensionIdsToRender,\n };\n}\n","import React from \"react\";\nimport _i18n from \"i18next\";\nimport { I18nextProvider } from \"react-i18next\";\nimport {\n ComponentConfig,\n ComponentContext,\n ExtensionData,\n} from \"./ComponentContext\";\n\nconst i18n = (_i18n as any).default || _i18n;\n\nconst defaultOpts = {\n strictMode: true,\n throwErrorsToConsole: true,\n disableTranslations: false,\n};\n\ninterface I18nextLoadNamespaceProps {\n forceUpdate(): void;\n ns: string;\n}\n\nconst I18nextLoadNamespace: React.FC<I18nextLoadNamespaceProps> = (props) => {\n React.useEffect(() => {\n i18n.on(\"languageChanged\", props.forceUpdate);\n return () => i18n.off(\"languageChanged\", props.forceUpdate);\n }, [props.forceUpdate]);\n\n const loadNamespaceErrRef = React.useRef(null);\n\n if (loadNamespaceErrRef.current) {\n throw loadNamespaceErrRef.current;\n }\n\n if (!i18n.hasLoadedNamespace(props.ns)) {\n const timeoutId = setTimeout(() => {\n console.warn(\n `openmrsComponentDecorator: the React suspense promise for i18next.loadNamespaces(['${props.ns}']) did not resolve nor reject after three seconds. This could mean you have multiple versions of i18next and haven't made i18next a webpack external in all projects.`\n );\n }, 3000);\n\n throw i18n\n .loadNamespaces([props.ns])\n .then(() => clearTimeout(timeoutId))\n .catch((err) => {\n clearTimeout(timeoutId);\n loadNamespaceErrRef.current = err;\n });\n }\n\n return <>{props.children}</>;\n};\n\nexport interface ComponentDecoratorOptions {\n moduleName: string;\n featureName: string;\n disableTranslations?: boolean;\n strictMode?: boolean;\n}\n\nexport interface OpenmrsReactComponentProps {\n _extensionContext?: ExtensionData;\n}\n\nexport interface OpenmrsReactComponentState {\n caughtError: any;\n caughtErrorInfo: any;\n config: ComponentConfig;\n}\n\nexport function openmrsComponentDecorator(userOpts: ComponentDecoratorOptions) {\n if (\n typeof userOpts !== \"object\" ||\n typeof userOpts.featureName !== \"string\" ||\n typeof userOpts.moduleName !== \"string\"\n ) {\n throw new Error(\"Invalid options\");\n }\n\n const opts = Object.assign({}, defaultOpts, userOpts);\n\n return function decorateComponent(Comp: React.ComponentType) {\n return class OpenmrsReactComponent extends React.Component<\n OpenmrsReactComponentProps,\n OpenmrsReactComponentState\n > {\n static displayName = `OpenmrsReactComponent(${opts.featureName})`;\n\n constructor(props: OpenmrsReactComponentProps) {\n super(props);\n this.state = {\n caughtError: null,\n caughtErrorInfo: null,\n config: {\n moduleName: opts.moduleName,\n extension: props._extensionContext,\n },\n };\n }\n\n componentDidCatch(err: any, info: any) {\n if (info && info.componentStack) {\n err.extra = Object.assign(err.extra || {}, {\n componentStack: info.componentStack,\n });\n }\n\n if (opts.throwErrorsToConsole) {\n setTimeout(() => {\n throw err;\n });\n }\n\n this.setState({\n caughtError: err,\n caughtErrorInfo: info,\n });\n }\n\n render() {\n if (this.state.caughtError) {\n // TO-DO have a UX designed for when a catastrophic error occurs\n return null;\n } else {\n const content = (\n <ComponentContext.Provider value={this.state.config}>\n <React.Suspense fallback={null}>\n {opts.disableTranslations ? (\n <Comp {...this.props} />\n ) : (\n <I18nextLoadNamespace\n ns={opts.moduleName}\n forceUpdate={() => this.forceUpdate()}\n >\n <I18nextProvider i18n={i18n} defaultNS={opts.moduleName}>\n <Comp {...this.props} />\n </I18nextProvider>\n </I18nextLoadNamespace>\n )}\n </React.Suspense>\n </ComponentContext.Provider>\n );\n\n if (opts.strictMode || !React.StrictMode) {\n return content;\n } else {\n return <React.StrictMode>{content}</React.StrictMode>;\n }\n }\n }\n };\n };\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport singleSpaReact from \"single-spa-react\";\nimport {\n openmrsComponentDecorator,\n ComponentDecoratorOptions,\n} from \"./openmrsComponentDecorator\";\n\nexport function getLifecycle<T>(\n Component: React.ComponentType<T>,\n options: ComponentDecoratorOptions\n) {\n return singleSpaReact({\n React,\n ReactDOM,\n rootComponent: openmrsComponentDecorator(options)(Component),\n });\n}\n\nexport function getAsyncLifecycle<T>(\n lazy: () => Promise<{ default: React.ComponentType<T> }>,\n options: ComponentDecoratorOptions\n) {\n return () =>\n lazy().then(({ default: Component }) => getLifecycle(Component, options));\n}\n\n/**\n * @deprecated Use getAsyncLifecycle instead.\n */\nexport const getAsyncExtensionLifecycle = getAsyncLifecycle;\n","import { useState, useCallback } from \"react\";\n\nexport function useForceUpdate() {\n const [, setTick] = useState(0);\n const update = useCallback(() => {\n setTick((tick) => tick + 1);\n }, []);\n return update;\n}\n","import { useContext, useEffect, useMemo } from \"react\";\nimport {\n getConfigStore,\n getExtensionConfigStore,\n ConfigStore,\n} from \"@openmrs/esm-config\";\nimport { ComponentContext } from \"./ComponentContext\";\nimport { ConfigObject } from \"@openmrs/esm-config\";\nimport { useForceUpdate } from \"./useForceUpdate\";\n\nlet error: Error | undefined;\nconst promises: Record<string, Promise<ConfigObject>> = {};\nconst configs: Record<string, ConfigObject> = {};\n\nconst errorMessage = `No ComponentContext has been provided.\nThis should come from \"openmrsComponentDecorator\".\nUsually this is already applied when using \"get[Async]Lifecycle\".`;\n\n/**\n * Use this React Hook to obtain your module's configuration.\n */\nexport function useConfig() {\n // This hook uses the extension config if an ExtensionContext is\n // found, and uses the normal config if the ModuleNameContext is\n // found.\n const { moduleName, extension } = useContext(ComponentContext);\n const forceUpdate = useForceUpdate();\n\n if (!moduleName && !extension) {\n throw Error(errorMessage);\n }\n\n const store = useMemo(\n () =>\n !extension\n ? getConfigStore(moduleName)\n : getExtensionConfigStore(\n extension.extensionSlotModuleName,\n extension.attachedExtensionSlotName,\n extension.extensionId\n ),\n [moduleName, extension]\n );\n\n const cacheId = extension\n ? `${extension.attachedExtensionSlotName}-${extension.extensionId}`\n : moduleName;\n\n useEffect(() => {\n return store.subscribe((state) => {\n if (state.loaded && state.config) {\n configs[cacheId] = state.config;\n forceUpdate();\n }\n });\n }, [store]);\n\n if (error) {\n // Suspense will just keep calling useConfig if the thrown promise rejects.\n // So we check ahead of time and avoid creating a new promise.\n throw error;\n }\n\n if (!configs[cacheId]) {\n if (!promises[cacheId]) {\n promises[cacheId] = new Promise((resolve) => {\n function update(state: ConfigStore) {\n if (state.loaded && state.config) {\n configs[cacheId] = state.config;\n resolve(state.config);\n unsubscribe && unsubscribe();\n }\n }\n\n update(store.getState());\n const unsubscribe = store.subscribe(update);\n });\n }\n\n // React will prevent the client component from rendering until the promise resolves\n throw promises[cacheId];\n } else {\n return configs[cacheId];\n }\n}\n","import React from \"react\";\nimport { createErrorHandler, reportError } from \"@openmrs/esm-error-handling\";\nimport {\n getCurrentPatient,\n getCurrentPatientUuid,\n PatientUuid,\n} from \"@openmrs/esm-api\";\n\n/* This React hook returns the current patient, as specified by the current route. It returns\n * all the information needed to render a loading state, error state, and normal/success state.\n */\nexport function useCurrentPatient(): [\n boolean,\n NullablePatient,\n PatientUuid,\n Error | null\n] {\n const [state, dispatch] = React.useReducer(reducer, initialState);\n\n React.useEffect(() => {\n const sub = getCurrentPatientUuid().subscribe(\n (uuid) => dispatch({ type: ActionTypes.newUuid, uuid }),\n createErrorHandler()\n );\n return () => {\n sub.unsubscribe();\n };\n }, []);\n\n React.useEffect(() => {\n const sub = getCurrentPatient().subscribe(\n (patient) => dispatch({ type: ActionTypes.newPatient, patient }),\n (err) => {\n dispatch({ type: ActionTypes.patientLoadError, err });\n reportError(err);\n }\n );\n return () => {\n sub.unsubscribe();\n };\n }, []);\n\n return [state.isLoadingPatient, state.patient, state.patientUuid, state.err];\n}\n\nfunction reducer(\n state: CurrentPatientState,\n action: Action\n): CurrentPatientState {\n switch (action.type) {\n case ActionTypes.newUuid:\n return {\n ...state,\n patientUuid: action.uuid,\n patient: null,\n isLoadingPatient: true,\n err: null,\n };\n case ActionTypes.newPatient:\n return {\n ...state,\n patient: action.patient,\n isLoadingPatient: false,\n err: null,\n };\n case ActionTypes.patientLoadError:\n return {\n ...state,\n patient: null,\n isLoadingPatient: false,\n err: action.err,\n };\n default:\n throw Error();\n }\n}\n\nconst initialState: CurrentPatientState = {\n patientUuid: null,\n patient: null,\n isLoadingPatient: true,\n err: null,\n};\n\ntype NullablePatient = fhir.Patient | null;\n\ntype CurrentPatientState = {\n patientUuid: PatientUuid;\n patient: NullablePatient;\n isLoadingPatient: boolean;\n err: Error | null;\n};\n\ntype NewUuid = {\n type: ActionTypes.newUuid;\n uuid: PatientUuid;\n};\n\ntype NewPatient = {\n type: ActionTypes.newPatient;\n patient: fhir.Patient;\n};\n\ntype PatientLoadError = {\n type: ActionTypes.patientLoadError;\n err: Error | null;\n};\n\ntype Action = NewUuid | NewPatient | PatientLoadError;\n\nenum ActionTypes {\n newUuid = \"newUuid\",\n newPatient = \"newPatient\",\n patientLoadError = \"patientLoadError\",\n}\n","import { ExtensionStore, extensionStore } from \"@openmrs/esm-extensions\";\nimport { createUseStore } from \"./createUseStore\";\n\nexport const useExtensionStore = createUseStore<ExtensionStore>(extensionStore);\n","import { useEffect } from \"react\";\nimport {\n NavigationContext,\n pushNavigationContext,\n} from \"@openmrs/esm-extensions\";\n\nexport function useNavigationContext(context: NavigationContext) {\n useEffect(() => pushNavigationContext(context), []);\n}\n","import React from \"react\";\nimport { getCurrentUser, userHasAccess, LoggedInUser } from \"@openmrs/esm-api\";\n\nexport interface UserHasAccessProps {\n privilege: string;\n}\n\nexport const UserHasAccess: React.FC<UserHasAccessProps> = ({\n privilege,\n children,\n}) => {\n const [user, setUser] = React.useState<LoggedInUser | null>(null);\n\n React.useEffect(() => {\n const subscription = getCurrentUser({\n includeAuthStatus: false,\n }).subscribe(setUser);\n return () => subscription.unsubscribe();\n }, []);\n\n if (user && userHasAccess(privilege, user)) {\n return <>{children}</>;\n }\n\n return null;\n};\n","import { Store } from \"unistore\";\nimport { Actions, BoundActions, createUseStore } from \"./createUseStore\";\n\nexport function useStore<T>(store: Store<T>): T;\nexport function useStore<T>(\n store: Store<T>,\n actions: Actions\n): T & BoundActions;\nexport function useStore<T>(store: Store<T>, actions?: Actions) {\n return createUseStore<T>(store)(actions);\n}\n","System.register([\"react\",\"carbon-components\",\"react-dom\",\"rxjs\"],(function(e){var t,n,o,r;return{setters:[function(e){t=e},function(e){n=e},function(e){o=e},function(e){r=e}],execute:function(){e(function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=13)}([function(e,n){e.exports=t},function(e,t,n){e.exports=n(16)()},function(e,t,n){\"use strict\";var o=n(5),r=\"object\"==typeof self&&self&&self.Object===Object&&self,i=o.a||r||Function(\"return this\")();t.a=i},function(e,t,n){var o;\n/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/!function(){\"use strict\";var n={}.hasOwnProperty;function r(){for(var e=[],t=0;t<arguments.length;t++){var o=arguments[t];if(o){var i=typeof o;if(\"string\"===i||\"number\"===i)e.push(o);else if(Array.isArray(o)&&o.length){var l=r.apply(null,o);l&&e.push(l)}else if(\"object\"===i)for(var a in o)n.call(o,a)&&o[a]&&e.push(a)}}return e.join(\" \")}e.exports?(r.default=r,e.exports=r):void 0===(o=function(){return r}.apply(t,[]))||(e.exports=o)}()},function(e,t){e.exports=n},function(e,t,n){\"use strict\";(function(e){var n=\"object\"==typeof e&&e&&e.Object===Object&&e;t.a=n}).call(this,n(19))},function(e,t,n){\"use strict\";(function(e){var o=n(5),r=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,i=r&&\"object\"==typeof e&&e&&!e.nodeType&&e,l=i&&i.exports===r&&o.a.process,a=function(){try{var e=i&&i.require&&i.require(\"util\").types;return e||l&&l.binding&&l.binding(\"util\")}catch(e){}}();t.a=a}).call(this,n(7)(e))},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,\"loaded\",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,\"id\",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,\"exports\",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t,n){function o(e,t){const n=document.createElement(\"a\");n.href=e;const o=\"/\"===n.pathname[0]?n.pathname:\"/\"+n.pathname;let r=0,i=o.length;for(;r!==t&&i>=0;){\"/\"===o[--i]&&r++}if(r!==t)throw Error(\"systemjs-webpack-interop: rootDirectoryLevel (\"+t+\") is greater than the number of directories (\"+r+\") in the URL path \"+e);const l=o.slice(0,i+1);return n.protocol+\"//\"+n.host+l}t.setPublicPath=function(e,t){if(t||(t=1),\"string\"!=typeof e||0===e.trim().length)throw Error(\"systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'\");if(\"number\"!=typeof t||t<=0||!r(t))throw Error(\"systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'\");let i;try{if(i=window.System.resolve(e),!i)throw Error()}catch(t){throw Error(\"systemjs-webpack-interop: There is no such module '\"+e+\"' in the SystemJS registry. Did you misspell the name of your module?\")}n.p=o(i,t)},t.resolveDirectory=o;const r=Number.isInteger||function(e){return\"number\"==typeof e&&isFinite(e)&&Math.floor(e)===e}},function(e,t){e.exports=o},function(e,t){e.exports=r},function(e,t,n){\"use strict\";(function(e){var o=n(2),r=n(12),i=\"object\"==typeof exports&&exports&&!exports.nodeType&&exports,l=i&&\"object\"==typeof e&&e&&!e.nodeType&&e,a=l&&l.exports===i?o.a.Buffer:void 0,c=(a?a.isBuffer:void 0)||r.a;t.a=c}).call(this,n(7)(e))},function(e,t,n){\"use strict\";t.a=function(){return!1}},function(e,t,n){n(14),e.exports=n(20)},function(e,t,n){\"use strict\";n.r(t);var o=n(8);Object(o.setPublicPath)(\"@openmrs/esm-styleguide\")},function(e,t){function n(){document.body.classList.toggle(\"omrs-breakpoint-lt-tablet\",window.innerWidth<600),document.body.classList.toggle(\"omrs-breakpoint-gt-phone\",window.innerWidth>=600),document.body.classList.toggle(\"omrs-breakpoint-lt-desktop\",window.innerWidth<1200),document.body.classList.toggle(\"omrs-breakpoint-gt-tablet\",window.innerWidth>=1200)}window.addEventListener(\"resize\",n),\"complete\"===document.readyState?n():window.addEventListener(\"load\",n)},function(e,t,n){\"use strict\";var o=n(17);function r(){}function i(){}i.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,i,l){if(l!==o){var a=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw a.name=\"Invariant Violation\",a}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return n.PropTypes=n,n}},function(e,t,n){\"use strict\";e.exports=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\"},function(e,t,n){\"use strict\";e.exports=function(){}},function(e,t){var n;n=function(){return this}();try{n=n||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(n=window)}e.exports=n},function(e,t,n){\"use strict\";n.r(t),n.d(t,\"toastsSubject\",(function(){return Zt})),n.d(t,\"showToast\",(function(){return Bt}));var o='<svg viewBox=\"0 0 380 119\" xmlns=\"http://www.w3.org/2000/svg\">\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M40.29 40.3278C45.3275 35.2904 52.2878 32.1739 59.9776 32.1739C67.6466 32.1739 74.5911 35.2765 79.6245 40.29L79.6454 21.7502C73.7513 18.7143 67.0622 17 59.9776 17C52.8891 17 46.1652 18.9309 40.2692 21.9679L40.29 40.3278Z\" fill=\"var(--logo-red)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M79.6454 79.6712C74.6079 84.7096 67.6506 87.8251 59.9608 87.8251C52.2918 87.8251 45.3473 84.7236 40.3099 79.709L40.29 98.2498C46.1871 101.285 52.8732 103 59.9608 103C67.0493 103 73.7374 101.285 79.6315 98.2488L79.6454 79.6712Z\" fill=\"var(--logo-orange)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M40.3278 79.6961C35.2904 74.6586 32.1739 67.7012 32.1739 60.0114C32.1739 52.3425 35.2755 45.399 40.29 40.3616L21.7492 40.3417C18.7143 46.2378 17 52.9229 17 60.0114C17 67.1 18.7143 73.7881 21.7522 79.6831L40.3278 79.6961Z\" fill=\"var(--logo-purple)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M79.6344 40.289C84.6719 45.3255 87.7883 52.2868 87.7883 59.9766C87.7883 67.6456 84.6868 74.5901 79.6712 79.6225L98.213 79.6434C101.248 73.7493 102.962 67.0612 102.962 59.9766C102.962 52.8871 101.248 46.198 98.211 40.302L79.6344 40.289Z\" fill=\"var(--logo-green)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M156.184 60.0025C156.184 51.2543 150.066 44.2264 141.159 44.2264C132.25 44.2264 126.134 51.2543 126.134 60.0025C126.134 68.7507 132.25 75.7816 141.159 75.7816C150.066 75.7816 156.184 68.7507 156.184 60.0025ZM121.303 60.0025C121.303 48.5205 129.621 40.0436 141.159 40.0436C152.695 40.0436 161.014 48.5205 161.014 60.0025C161.014 71.4875 152.695 79.9674 141.159 79.9674C129.621 79.9674 121.303 71.4875 121.303 60.0025Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M179.514 75.5401C185.021 75.5401 188.564 71.4 188.564 66.0585C188.564 60.717 185.021 56.575 179.514 56.575C174.009 56.575 170.468 60.717 170.468 66.0585C170.468 71.4 174.009 75.5401 179.514 75.5401ZM166.22 53.3064H170.468V57.0102H170.578C172.922 54.2853 176.027 52.6506 179.732 52.6506C187.746 52.6506 193.14 58.32 193.14 66.0585C193.14 73.6887 187.527 79.4645 180.388 79.4645C175.808 79.4645 172.157 77.1749 170.578 74.286H170.468V90.87H166.22V53.3064Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M217.773 63.7679C217.61 59.4629 214.773 56.575 210.087 56.575C205.402 56.575 202.297 59.4629 201.752 63.7679H217.773ZM221.426 74.1796C218.425 78.0484 214.83 79.4645 210.087 79.4645C202.077 79.4645 197.173 73.4711 197.173 66.0585C197.173 58.157 202.732 52.6506 210.253 52.6506C217.449 52.6506 222.349 57.5568 222.349 66.0049V67.3673H201.752C202.077 71.7797 205.456 75.5401 210.087 75.5401C213.737 75.5401 216.192 74.2333 218.207 71.6723L221.426 74.1796Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M227.854 59.3565C227.854 57.0102 227.638 54.9959 227.638 53.3064H231.669C231.669 54.6689 231.779 56.083 231.779 57.5012H231.889C233.033 54.9959 236.195 52.6506 240.389 52.6506C247.094 52.6506 250.088 56.9029 250.088 63.0603V78.8086H245.84V63.4986C245.84 59.2462 243.984 56.575 240.007 56.575C234.504 56.575 232.104 60.554 232.104 66.3865V78.8086H227.854V59.3565Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M259.211 41.0085H265.919L278.8 70.7909H278.907L291.889 41.0085H298.438V78.9994H293.932V47.1242H293.826L280.192 78.9994H277.454L263.825 47.1242H263.718V78.9994H259.211V41.0085Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M312.392 57.7516H316.415C321.407 57.7516 327.902 57.7516 327.902 51.47C327.902 45.9992 323.126 45.1943 318.725 45.1943H312.392V57.7516ZM307.886 41.0085H317.597C324.949 41.0085 332.729 42.0798 332.729 51.47C332.729 56.9973 329.135 60.5948 323.234 61.507L334.018 78.9994H328.493L318.189 61.9364H312.392V78.9994H307.886V41.0085Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M358.123 47.7125C356.617 45.2986 353.936 44.2264 351.197 44.2264C347.224 44.2264 343.097 46.1056 343.097 50.6113C343.097 54.1005 345.028 55.6577 351.091 57.5906C356.994 59.4688 362.468 61.3997 362.468 68.858C362.468 76.4246 355.973 79.9674 349.108 79.9674C344.706 79.9674 339.983 78.5174 337.408 74.7063L341.27 71.5412C342.88 74.3347 346.1 75.7816 349.375 75.7816C353.237 75.7816 357.638 73.5277 357.638 69.18C357.638 64.5112 354.473 63.7063 347.71 61.4524C342.344 59.6805 338.268 57.3183 338.268 50.989C338.268 43.6907 344.545 40.0436 351.197 40.0436C355.438 40.0436 359.033 41.2222 361.822 44.4947L358.123 47.7125Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M185.885 90.9982H187.309L190.043 97.3236H190.066L192.824 90.9982H194.215V99.0676H193.258V92.2971H193.234L190.34 99.0676H189.758L186.864 92.2971H186.842V99.0676H185.885V90.9982Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M198.386 90.9982H203.457V91.8867H199.343V94.4168H203.184V95.3062H199.343V98.1782H203.663V99.0676H198.386V90.9982Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M207.891 98.1782H209.713C211.561 98.1782 212.963 97.2431 212.963 95.0319C212.963 92.8218 211.561 91.8867 209.713 91.8867H207.891V98.1782ZM206.934 90.9982H210.034C211.617 90.9982 213.987 92.0586 213.987 95.0319C213.987 98.0083 211.617 99.0676 210.034 99.0676H206.934V90.9982Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M217.007 99.0676H217.965V90.9982H217.007V99.0676Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M227.105 92.6628C226.627 92.0119 225.863 91.6819 225.088 91.6819C223.288 91.6819 222.011 93.266 222.011 95.0319C222.011 96.9012 223.277 98.3839 225.088 98.3839C226.068 98.3839 226.855 97.9844 227.425 97.255L228.143 97.8582C227.425 98.8281 226.377 99.2724 225.088 99.2724C222.774 99.2724 220.986 97.4826 220.986 95.0319C220.986 92.6628 222.695 90.7935 225.088 90.7935C226.183 90.7935 227.254 91.1701 227.937 92.0586L227.105 92.6628Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M233.557 92.2295H233.533L231.858 96.1947H235.152L233.557 92.2295ZM233.123 90.9982H234.023L237.453 99.0676H236.336L235.516 97.0841H231.482L230.65 99.0676H229.568L233.123 90.9982Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M240.006 90.9982H240.964V98.1782H244.656V99.0676H240.006V90.9982Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M252.793 94.5539H253.648C254.708 94.5539 256.087 94.5539 256.087 93.2203C256.087 92.0586 255.073 91.8867 254.139 91.8867H252.793V94.5539ZM251.836 90.9982H253.899C255.46 90.9982 257.113 91.2258 257.113 93.2203C257.113 94.3939 256.349 95.1582 255.095 95.3519L257.386 99.0676H256.213L254.023 95.4434H252.793V99.0676H251.836V90.9982Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M260.51 90.9982H265.58V91.8867H261.468V94.4168H265.308V95.3062H261.468V98.1782H265.786V99.0676H260.51V90.9982Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M274.402 92.6628C273.923 92.0119 273.16 91.6819 272.384 91.6819C270.584 91.6819 269.307 93.266 269.307 95.0319C269.307 96.9012 270.573 98.3839 272.384 98.3839C273.364 98.3839 274.151 97.9844 274.72 97.255L275.438 97.8582C274.72 98.8281 273.672 99.2724 272.384 99.2724C270.071 99.2724 268.282 97.4826 268.282 95.0319C268.282 92.6628 269.991 90.7935 272.384 90.7935C273.478 90.7935 274.55 91.1701 275.234 92.0586L274.402 92.6628Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M284.739 95.0319C284.739 93.1746 283.439 91.6819 281.548 91.6819C279.656 91.6819 278.357 93.1746 278.357 95.0319C278.357 96.8903 279.656 98.3839 281.548 98.3839C283.439 98.3839 284.739 96.8903 284.739 95.0319ZM277.33 95.0319C277.33 92.5932 279.097 90.7935 281.548 90.7935C283.998 90.7935 285.765 92.5932 285.765 95.0319C285.765 97.4726 283.998 99.2724 281.548 99.2724C279.097 99.2724 277.33 97.4726 277.33 95.0319Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M289.514 94.5539H290.369C291.428 94.5539 292.807 94.5539 292.807 93.2203C292.807 92.0586 291.793 91.8867 290.859 91.8867H289.514V94.5539ZM288.556 90.9982H290.618C292.181 90.9982 293.833 91.2258 293.833 93.2203C293.833 94.3939 293.07 95.1582 291.817 95.3519L294.106 99.0676H292.933L290.744 95.4434H289.514V99.0676H288.556V90.9982Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M297.81 98.1782H299.635C301.48 98.1782 302.881 97.2431 302.881 95.0319C302.881 92.8218 301.48 91.8867 299.635 91.8867H297.81V98.1782ZM296.853 90.9982H299.953C301.538 90.9982 303.909 92.0586 303.909 95.0319C303.909 98.0083 301.538 99.0676 299.953 99.0676H296.853V90.9982Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M315.407 92.4223C315.089 91.9095 314.517 91.6819 313.937 91.6819C313.093 91.6819 312.216 92.0814 312.216 93.0384C312.216 93.7788 312.626 94.1097 313.914 94.5202C315.168 94.9187 316.331 95.3291 316.331 96.9132C316.331 98.5201 314.951 99.2724 313.493 99.2724C312.558 99.2724 311.555 98.9643 311.007 98.1554L311.828 97.4826C312.17 98.0759 312.854 98.3839 313.549 98.3839C314.37 98.3839 315.303 97.9049 315.303 96.9807C315.303 95.9899 314.633 95.818 313.196 95.341C312.057 94.9644 311.19 94.4625 311.19 93.1189C311.19 91.5677 312.523 90.7935 313.937 90.7935C314.837 90.7935 315.601 91.0439 316.193 91.7386L315.407 92.4223Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M320.844 95.5914L317.835 90.9982H319.054L321.323 94.6454L323.658 90.9982H324.81L321.8 95.5914V99.0676H320.844V95.5914Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M330.565 92.4223C330.245 91.9095 329.675 91.6819 329.094 91.6819C328.251 91.6819 327.374 92.0814 327.374 93.0384C327.374 93.7788 327.784 94.1097 329.072 94.5202C330.326 94.9187 331.487 95.3291 331.487 96.9132C331.487 98.5201 330.109 99.2724 328.65 99.2724C327.716 99.2724 326.713 98.9643 326.165 98.1554L326.986 97.4826C327.328 98.0759 328.012 98.3839 328.707 98.3839C329.528 98.3839 330.461 97.9049 330.461 96.9807C330.461 95.9899 329.79 95.818 328.354 95.341C327.215 94.9644 326.348 94.4625 326.348 93.1189C326.348 91.5677 327.681 90.7935 329.094 90.7935C329.995 90.7935 330.759 91.0439 331.351 91.7386L330.565 92.4223Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M339.283 91.8867H336.617V99.0676H335.659V91.8867H332.992V90.9982H339.283V91.8867Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M341.665 90.9982H346.736V91.8867H342.623V94.4168H346.463V95.3062H342.623V98.1782H346.942V99.0676H341.665V90.9982Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M349.905 90.9982H351.329L354.064 97.3236H354.087L356.845 90.9982H358.236V99.0676H357.278V92.2971H357.255L354.361 99.0676H353.779L350.884 92.2971H350.863V99.0676H349.905V90.9982Z\" fill=\"var(--logo-black)\"/>\\n</svg>\\n',r='<svg id=\"omrs-logo-partial\" viewBox=\"0 0 380 119\" xmlns=\"http://www.w3.org/2000/svg\">\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M40.2901 40.3278C45.3275 35.2904 52.2879 32.1739 59.9777 32.1739C67.6466 32.1739 74.5911 35.2765 79.6246 40.29L79.6454 21.7502C73.7514 18.7143 67.0623 17 59.9777 17C52.8891 17 46.1653 18.9309 40.2692 21.9679L40.2901 40.3278Z\" fill=\"var(--logo-red)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M79.6454 79.6712C74.6079 84.7096 67.6506 87.8251 59.9608 87.8251C52.2918 87.8251 45.3473 84.7236 40.3099 79.709L40.29 98.2498C46.1871 101.285 52.8732 103 59.9608 103C67.0493 103 73.7374 101.285 79.6315 98.2488L79.6454 79.6712Z\" fill=\"var(--logo-orange)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M40.3278 79.6961C35.2904 74.6586 32.1739 67.7012 32.1739 60.0114C32.1739 52.3425 35.2755 45.399 40.29 40.3616L21.7492 40.3417C18.7143 46.2378 17 52.9229 17 60.0114C17 67.1 18.7143 73.7881 21.7522 79.6831L40.3278 79.6961Z\" fill=\"var(--logo-purple)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M79.6344 40.289C84.6718 45.3255 87.7883 52.2868 87.7883 59.9766C87.7883 67.6456 84.6867 74.5901 79.6712 79.6225L98.213 79.6434C101.248 73.7493 102.962 67.0612 102.962 59.9766C102.962 52.8871 101.248 46.198 98.211 40.302L79.6344 40.289Z\" fill=\"var(--logo-green)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M156.184 60.0025C156.184 51.2543 150.066 44.2264 141.159 44.2264C132.25 44.2264 126.134 51.2543 126.134 60.0025C126.134 68.7507 132.25 75.7816 141.159 75.7816C150.066 75.7816 156.184 68.7507 156.184 60.0025ZM121.303 60.0025C121.303 48.5205 129.621 40.0436 141.159 40.0436C152.695 40.0436 161.014 48.5205 161.014 60.0025C161.014 71.4875 152.695 79.9674 141.159 79.9674C129.621 79.9674 121.303 71.4875 121.303 60.0025Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M179.514 75.5401C185.021 75.5401 188.564 71.4 188.564 66.0585C188.564 60.717 185.021 56.575 179.514 56.575C174.009 56.575 170.468 60.717 170.468 66.0585C170.468 71.4 174.009 75.5401 179.514 75.5401ZM166.22 53.3064H170.468V57.0102H170.578C172.922 54.2853 176.027 52.6506 179.732 52.6506C187.746 52.6506 193.14 58.32 193.14 66.0585C193.14 73.6887 187.527 79.4645 180.388 79.4645C175.808 79.4645 172.157 77.1749 170.578 74.286H170.468V90.87H166.22V53.3064Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M217.773 63.7679C217.61 59.4629 214.773 56.575 210.087 56.575C205.402 56.575 202.297 59.4629 201.752 63.7679H217.773ZM221.426 74.1796C218.425 78.0484 214.83 79.4645 210.087 79.4645C202.077 79.4645 197.173 73.4711 197.173 66.0585C197.173 58.157 202.732 52.6506 210.253 52.6506C217.449 52.6506 222.349 57.5568 222.349 66.0049V67.3673H201.752C202.077 71.7797 205.456 75.5401 210.087 75.5401C213.737 75.5401 216.192 74.2333 218.207 71.6723L221.426 74.1796Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M227.854 59.3565C227.854 57.0102 227.638 54.9959 227.638 53.3064H231.669C231.669 54.6689 231.779 56.083 231.779 57.5012H231.889C233.033 54.9959 236.195 52.6506 240.389 52.6506C247.094 52.6506 250.088 56.9029 250.088 63.0603V78.8086H245.84V63.4986C245.84 59.2462 243.984 56.575 240.007 56.575C234.504 56.575 232.104 60.554 232.104 66.3865V78.8086H227.854V59.3565Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M259.211 41.0085H265.919L278.8 70.7909H278.907L291.889 41.0085H298.438V78.9994H293.932V47.1242H293.826L280.192 78.9994H277.454L263.825 47.1242H263.718V78.9994H259.211V41.0085Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M312.392 57.7516H316.415C321.407 57.7516 327.902 57.7516 327.902 51.47C327.902 45.9992 323.126 45.1943 318.725 45.1943H312.392V57.7516ZM307.886 41.0085H317.597C324.949 41.0085 332.729 42.0798 332.729 51.47C332.729 56.9973 329.135 60.5948 323.234 61.5071L334.018 78.9994H328.493L318.189 61.9364H312.392V78.9994H307.886V41.0085Z\" fill=\"var(--logo-black)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M358.123 47.7125C356.617 45.2986 353.936 44.2264 351.197 44.2264C347.224 44.2264 343.097 46.1056 343.097 50.6113C343.097 54.1005 345.028 55.6577 351.091 57.5906C356.994 59.4688 362.468 61.3997 362.468 68.858C362.468 76.4246 355.973 79.9674 349.108 79.9674C344.706 79.9674 339.983 78.5174 337.408 74.7063L341.27 71.5412C342.88 74.3347 346.1 75.7816 349.375 75.7816C353.237 75.7816 357.638 73.5277 357.638 69.18C357.638 64.5112 354.473 63.7063 347.71 61.4524C342.344 59.6805 338.268 57.3183 338.268 50.989C338.268 43.6907 344.545 40.0436 351.197 40.0436C355.438 40.0436 359.033 41.2222 361.822 44.4947L358.123 47.7125Z\" fill=\"var(--logo-black)\"/>\\n</svg>\\n',i='<svg id=\"omrs-logo-icon\" width=\"121\" height=\"118\" viewBox=\"0 0 121 118\" xmlns=\"http://www.w3.org/2000/svg\">\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M40.436 39.474C45.505 34.405 52.509 31.269 60.247 31.269C67.964 31.269 74.952 34.391 80.017 39.436L80.038 20.78C74.107 17.725 67.376 16 60.247 16C53.114 16 46.348 17.943 40.415 20.999L40.436 39.474Z\" fill=\"var(--logo-red)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M80.038 79.064C74.969 84.134 67.968 87.269 60.23 87.269C52.513 87.269 45.525 84.148 40.456 79.102L40.436 97.759C46.37 100.813 53.098 102.539 60.23 102.539C67.363 102.539 74.093 100.813 80.024 97.758L80.038 79.064Z\" fill=\"var(--logo-orange)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M40.474 79.089C35.405 74.02 32.269 67.019 32.269 59.281C32.269 51.564 35.39 44.577 40.436 39.508L21.779 39.488C18.725 45.421 17 52.148 17 59.281C17 66.414 18.725 73.144 21.782 79.076L40.474 79.089Z\" fill=\"var(--logo-purple)\"/>\\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M80.027 39.435C85.096 44.503 88.232 51.508 88.232 59.246C88.232 66.963 85.111 73.951 80.064 79.015L98.722 79.036C101.776 73.105 103.501 66.375 103.501 59.246C103.501 52.112 101.776 45.381 98.72 39.448L80.027 39.435Z\" fill=\"var(--logo-green)\"/>\\n</svg>\\n';const l=document.createElement(\"div\"),a=()=>{document.body.appendChild(l)};function c(e,t){const n=(new DOMParser).parseFromString(t,\"text/html\").querySelector(\"svg\");n.id=e,l.appendChild(n)}l.id=\"omrs-svgs-container\",l.style.display=\"none\",\"complete\"===document.readyState?a():window.addEventListener(\"load\",a),c(\"omrs-logo-full-color\",o),c(\"omrs-logo-full-mono\",o),c(\"omrs-logo-full-grey\",o),c(\"omrs-logo-partial-color\",r),c(\"omrs-logo-partial-mono\",r),c(\"omrs-logo-partial-grey\",r),c(\"omrs-logo-icon-color\",i),c(\"omrs-logo-icon-mono\",i),c(\"omrs-logo-icon-grey\",i);c(\"omrs-icon-visibility\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/action/visibility_24px\">\\n <path id=\"icon/action/visibility_24px_2\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 4.5C7 4.5 2.72998 7.60999 1 12C2.72998 16.39 7 19.5 12 19.5C17 19.5 21.27 16.39 23 12C21.27 7.60999 17 4.5 12 4.5ZM12 17C9.23999 17 7 14.76 7 12C7 9.23999 9.23999 7 12 7C14.76 7 17 9.23999 17 12C17 14.76 14.76 17 12 17ZM9 12C9 10.34 10.34 9 12 9C13.66 9 15 10.34 15 12C15 13.66 13.66 15 12 15C10.34 15 9 13.66 9 12Z\"/>\\n </g>\\n <title>Visibility rounded</title>\\n</svg>\\n'),c(\"omrs-icon-menu\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/navigation/menu_24px\">\\n <path id=\"icon/navigation/menu_24px_2\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 8C3.44995 8 3 7.54999 3 7C3 6.45001 3.44995 6 4 6H20C20.55 6 21 6.45001 21 7C21 7.54999 20.55 8 20 8H4ZM4 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H4C3.44995 11 3 11.45 3 12C3 12.55 3.44995 13 4 13ZM4 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H4C3.44995 16 3 16.45 3 17C3 17.55 3.44995 18 4 18Z\"/>\\n </g>\\n <title>Menu rounded</title>\\n</svg>\\n'),c(\"omrs-icon-search\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/action/search_24px\">\\n <path id=\"icon/action/search_24px_2\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1865 14.4716H15.9765L20.2165 18.7316C20.6266 19.1416 20.6266 19.8116 20.2165 20.2216C19.8065 20.6316 19.1366 20.6316 18.7265 20.2216L14.4765 15.9716V15.1816L14.2065 14.9016C12.8065 16.1016 10.8966 16.7216 8.86655 16.3816C6.08652 15.9116 3.86655 13.5916 3.52658 10.7916C3.00656 6.56158 6.5665 3.00158 10.7966 3.52157C13.5965 3.86157 15.9166 6.08157 16.3866 8.86157C16.7265 10.8916 16.1065 12.8016 14.9066 14.2016L15.1865 14.4716ZM5.47653 9.97155C5.47653 12.4615 7.48654 14.4716 9.97653 14.4716C12.4665 14.4716 14.4765 12.4615 14.4765 9.97155C14.4765 7.48156 12.4665 5.47155 9.97653 5.47155C7.48654 5.47155 5.47653 7.48156 5.47653 9.97155Z\"/>\\n </g>\\n <title>Search rounded</title>\\n</svg>\\n'),c(\"omrs-icon-arrow-back\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/navigation/arrow_back_24px\">\\n <path id=\"icon/navigation/arrow_back_24px_2\" d=\"M18.7912 11.005H7.62124L12.5012 6.12499C12.8912 5.73499 12.8912 5.09499 12.5012 4.70499C12.3144 4.51774 12.0608 4.41251 11.7962 4.41251C11.5317 4.41251 11.2781 4.51774 11.0912 4.70499L4.50124 11.295C4.11124 11.685 4.11124 12.315 4.50124 12.705L11.0912 19.295C11.4812 19.685 12.1112 19.685 12.5012 19.295C12.8912 18.905 12.8912 18.275 12.5012 17.885L7.62124 13.005H18.7912C19.3412 13.005 19.7912 12.555 19.7912 12.005C19.7912 11.455 19.3412 11.005 18.7912 11.005Z\"/>\\n </g>\\n <title>Arrow back rounded</title>\\n</svg>\\n'),c(\"omrs-icon-arrow-forward\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <path d=\"M5 13h11.17l-4.88 4.88c-.39.39-.39 1.03 0 1.42.39.39 1.02.39 1.41 0l6.59-6.59c.39-.39.39-1.02 0-1.41l-6.58-6.6c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L16.17 11H5c-.55 0-1 .45-1 1s.45 1 1 1z\"/>\\n <title>Arrow forward rounded</title>\\n</svg>'),c(\"omrs-icon-arrow-downward\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/navigation/arrow_downward_24px\">\\n <path id=\"icon/navigation/arrow_downward_24px_2\" d=\"M11.005 5.20874V16.3787L6.12498 11.4987C5.73498 11.1087 5.09498 11.1087 4.70498 11.4987C4.31498 11.8887 4.31498 12.5187 4.70498 12.9087L11.295 19.4987C11.685 19.8887 12.315 19.8887 12.705 19.4987L19.295 12.9087C19.685 12.5187 19.685 11.8887 19.295 11.4987C19.1081 11.3115 18.8545 11.2063 18.59 11.2063C18.3255 11.2063 18.0718 11.3115 17.885 11.4987L13.005 16.3787V5.20874C13.005 4.65874 12.555 4.20874 12.005 4.20874C11.455 4.20874 11.005 4.65874 11.005 5.20874Z\"/>\\n </g>\\n <title>Arrow downward rounded</title>\\n</svg>\\n'),c(\"omrs-icon-arrow-upward\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/navigation/arrow_upward_24px\">\\n <path id=\"icon/navigation/arrow_upward_24px_2\" d=\"M13 18.7913V7.62126L17.88 12.5013C18.27 12.8913 18.91 12.8913 19.3 12.5013C19.69 12.1113 19.69 11.4813 19.3 11.0913L12.71 4.50126C12.5231 4.314 12.2695 4.20877 12.005 4.20877C11.7405 4.20877 11.4868 4.314 11.3 4.50126L4.69997 11.0813C4.30997 11.4713 4.30997 12.1013 4.69997 12.4913C5.08997 12.8813 5.71997 12.8813 6.10997 12.4913L11 7.62126V18.7913C11 19.3413 11.45 19.7913 12 19.7913C12.55 19.7913 13 19.3413 13 18.7913Z\"/>\\n </g>\\n <title>Arrow upward rounded </title>\\n</svg>\\n'),c(\"omrs-icon-chevron-left\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/navigation/chevron_left_24px\">\\n <path id=\"icon/navigation/chevron_left_24px_2\" d=\"M15 6.70499C14.8132 6.51774 14.5595 6.41251 14.295 6.41251C14.0305 6.41251 13.7769 6.51774 13.59 6.70499L9.00002 11.295C8.61002 11.685 8.61002 12.315 9.00002 12.705L13.59 17.295C13.98 17.685 14.61 17.685 15 17.295C15.39 16.905 15.39 16.275 15 15.885L11.12 11.995L15 8.11499C15.39 7.72499 15.38 7.08499 15 6.70499Z\"/>\\n </g>\\n <title>Chevron left</title>\\n</svg>\\n'),c(\"omrs-icon-chevron-right\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/navigation/chevron_right_24px\">\\n <path id=\"icon/navigation/chevron_right_24px_2\" d=\"M9.00002 6.71063C8.61002 7.10063 8.61002 7.73063 9.00002 8.12063L12.88 12.0006L9.00002 15.8806C8.61002 16.2706 8.61002 16.9006 9.00002 17.2906C9.39002 17.6806 10.02 17.6806 10.41 17.2906L15 12.7006C15.39 12.3106 15.39 11.6806 15 11.2906L10.41 6.70063C10.03 6.32063 9.39002 6.32063 9.00002 6.71063Z\"/>\\n </g>\\n <title>Chevron right</title>\\n</svg>\\n'),c(\"omrs-icon-chevron-up\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/navigation/chevron_up_24px\">\\n <path d=\"M11.29 8.71L6.7 13.3c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 10.83l3.88 3.88c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L12.7 8.71c-.38-.39-1.02-.39-1.41 0z\"/>\\n </g>\\n <title>Chevron up</title>\\n</svg>\\n'),c(\"omrs-icon-chevron-down\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/navigation/chevron_down_24px\">\\n <path id=\"icon/navigation/chevron_down_24px\" d=\"M8.12 9.29L12 13.17l3.88-3.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-4.59 4.59c-.39.39-1.02.39-1.41 0L6.7 10.7c-.39-.39-.39-1.02 0-1.41.39-.38 1.03-.39 1.42 0z\"/>\\n </g>\\n <title>Chevron down</title>\\n</svg>\\n'),c(\"omrs-icon-supervised-user-circle\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/action/supervised_user_circle_24px\">\\n <path id=\"icon/action/supervised_user_circle_24px_2\" fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.47998 2 2 6.48001 2 12C2 17.52 6.47998 22 12 22C17.52 22 22 17.52 22 12C22 6.48001 17.52 2 12 2ZM15.61 8.34C16.6801 8.34 17.54 9.19998 17.54 10.27C17.54 11.34 16.6801 12.2 15.61 12.2C14.54 12.2 13.6801 11.34 13.6801 10.27C13.67 9.19998 14.54 8.34 15.61 8.34ZM11.97 9.12C11.97 7.82001 10.91 6.76001 9.60999 6.76001C8.30005 6.76001 7.25 7.81 7.25 9.12C7.25 10.42 8.31006 11.48 9.60999 11.48C10.91 11.48 11.97 10.42 11.97 9.12ZM9.60999 15.89V19.64C7.20996 18.89 5.30994 17.04 4.46997 14.68C5.52002 13.56 8.14001 12.99 9.60999 12.99C10.14 12.99 10.8099 13.07 11.51 13.21C9.87 14.08 9.60999 15.23 9.60999 15.89ZM11.21 19.96C11.47 19.99 11.73 20 12 20C15.39 20 18.2799 17.88 19.45 14.91C18.5299 14.15 16.6799 13.76 15.61 13.76C14.1499 13.76 11.21 14.47 11.21 15.89V19.96Z\"/>\\n </g>\\n <title>Supervised user circle rounded</title>\\n</svg>\\n'),c(\"omrs-icon-home\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n<g id=\"icon/navigation/home_24px\">\\n <path id=\"icon/navigation/home_24px\" d=\"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z\"/>\\n</g>\\n<title>Home rounded</title>\\n</svg>'),c(\"omrs-icon-close\",'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\\n <path d=\"M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z\"/>\\n <title>Close icon</title>\\n</svg>'),c(\"omrs-icon-important-notification\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/important_notification_24px_rounded\">\\n <path d=\"M12 23c1.1 0 1.99-.89 1.99-1.99h-3.98c0 1.1.89 1.99 1.99 1.99zm8.29-4.71L19 17v-6c0-3.35-2.36-6.15-5.5-6.83V3c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v1.17C7.36 4.85 5 7.65 5 11v6l-1.29 1.29c-.63.63-.19 1.71.7 1.71h15.17c.9 0 1.34-1.08.71-1.71zM13 16h-2v-2h2v2zm0-5c0 .55-.45 1-1 1s-1-.45-1-1V9c0-.55.45-1 1-1s1 .45 1 1v2z\"/>\\n </g>\\n <title>Important notification</title>\\n</svg>\\n'),c(\"omrs-icon-access-time\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/callend/access_time24px\">\\n <path id=\"icon/callend/access_time24px\" d=\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm-.22-13h-.06c-.4 0-.72.32-.72.72v4.72c0 .35.18.68.49.86l4.15 2.49c.34.2.78.1.98-.24.21-.34.1-.79-.25-.99l-3.87-2.3V7.72c0-.4-.32-.72-.72-.72z\" />\\n </g>\\n <title>Access time rounded</title>\\n</svg>'),c(\"omrs-icon-calendar\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/callend/calendar24px\">\\n <path d=\"M20 3h-1V2c0-.55-.45-1-1-1s-1 .45-1 1v1H7V2c0-.55-.45-1-1-1s-1 .45-1 1v1H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 18H5c-.55 0-1-.45-1-1V8h16v12c0 .55-.45 1-1 1z\"/>\\n </g>\\n <title>Calendar rounded</title>\\n</svg>'),c(\"omrs-icon-add\",'<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/content/add-24px\">\\n <path d=\"M18 13h-5v5c0 .55-.45 1-1 1s-1-.45-1-1v-5H6c-.55 0-1-.45-1-1s.45-1 1-1h5V6c0-.55.45-1 1-1s1 .45 1 1v5h5c.55 0 1 .45 1 1s-.45 1-1 1z\"/>\\n </g>\\n <title>Add rounded</title>\\n</svg>\\n'),c(\"omrs-icon-remove\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/content/add-24px\">\\n <path d=\"M18 13H6c-.55 0-1-.45-1-1s.45-1 1-1h12c.55 0 1 .45 1 1s-.45 1-1 1z\"/>\\n </g>\\n <title>Remove rounded</title>\\n</svg>\\n'),c(\"omrs-icon-check-circle\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"/>\\n <title>Check circle</title>\\n</svg>\\n'),c(\"omrs-icon-zoomoutmap\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <g id=\"icon/action/visibility_24px\">\\n <path d=\"M15.85 3.85L17.3 5.3l-2.18 2.16c-.39.39-.39 1.03 0 1.42.39.39 1.03.39 1.42 0L18.7 6.7l1.45 1.45c.31.31.85.09.85-.36V3.5c0-.28-.22-.5-.5-.5h-4.29c-.45 0-.67.54-.36.85zm-12 4.3L5.3 6.7l2.16 2.18c.39.39 1.03.39 1.42 0 .39-.39.39-1.03 0-1.42L6.7 5.3l1.45-1.45c.31-.31.09-.85-.36-.85H3.5c-.28 0-.5.22-.5.5v4.29c0 .45.54.67.85.36zm4.3 12L6.7 18.7l2.18-2.16c.39-.39.39-1.03 0-1.42-.39-.39-1.03-.39-1.42 0L5.3 17.3l-1.45-1.45c-.31-.31-.85-.09-.85.36v4.29c0 .28.22.5.5.5h4.29c.45 0 .67-.54.36-.85zm12-4.3L18.7 17.3l-2.16-2.18c-.39-.39-1.03-.39-1.42 0-.39.39-.39 1.03 0 1.42l2.18 2.16-1.45 1.45c-.31.31-.09.85.36.85h4.29c.28 0 .5-.22.5-.5v-4.29c0-.45-.54-.67-.85-.36z\" />\\n </g>\\n <title>\\n Zoom Out \\n </title>\\n</svg>'),c(\"omrs-icon-location\",'<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" width=\"24\" viewBox=\"0 0 24 24\">\\n <path d=\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\"/>\\n <path d=\"M0 0h24v24H0z\" class=\"omrs-icon-location\"/>\\n <title>Location icon</title>\\n</svg>'),c(\"omrs-icon-download\",'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\\n <path d=\"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z\" />\\n <title>Download icon</title>\\n</svg>');n(15);var s=n(0),d=n.n(s),u=n(9),p=n(10),f=n(1),v=n.n(f),g=n(3),h=n.n(g),b=n(4);function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?w(Object(n),!0).forEach((function(t){m(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function y(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var O={focusable:\"false\",preserveAspectRatio:\"xMidYMid meet\"};function j(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.width,n=e.height,o=e.viewBox,r=void 0===o?\"0 0 \".concat(t,\" \").concat(n):o,i=y(e,[\"width\",\"height\",\"viewBox\"]),l=i.tabindex,a=y(i,[\"tabindex\"]),c=C(C(C({},O),a),{},{width:t,height:n,viewBox:r});return c[\"aria-label\"]||c[\"aria-labelledby\"]||c.title?(c.role=\"img\",null!=l&&(c.focusable=\"true\",c.tabindex=l)):c[\"aria-hidden\"]=!0,c}function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function H(){return(H=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function L(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?M(Object(n),!0).forEach((function(t){x(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function V(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var _=d.a.forwardRef((function(e,t){var n=e.className,o=e.children,r=e.tabIndex,i=j(L(L({},V(e,[\"className\",\"children\",\"tabIndex\"])),{},{tabindex:r})),l=i.tabindex,a=V(i,[\"tabindex\"]);return n&&(a.className=n),null!=l&&(a.tabIndex=l),t&&(a.ref=t),d.a.createElement(\"svg\",a,o)}));_.displayName=\"Icon\",_.propTypes={\"aria-hidden\":v.a.string,\"aria-label\":v.a.string,\"aria-labelledby\":v.a.string,children:v.a.node,className:v.a.string,height:v.a.number,preserveAspectRatio:v.a.string,tabIndex:v.a.string,viewBox:v.a.string,width:v.a.number,xmlns:v.a.string},_.defaultProps={xmlns:\"http://www.w3.org/2000/svg\",preserveAspectRatio:\"xMidYMid meet\"};var k=d.a.createElement(\"path\",{d:\"M10,1c-4.9,0-9,4.1-9,9s4.1,9,9,9s9-4,9-9S15,1,10,1z M8.7,13.5l-3.2-3.2l1-1l2.2,2.2l4.8-4.8l1,1L8.7,13.5z\"}),P=d.a.createElement(\"path\",{fill:\"none\",d:\"M8.7,13.5l-3.2-3.2l1-1l2.2,2.2l4.8-4.8l1,1L8.7,13.5z\",\"data-icon-path\":\"inner-path\",opacity:\"0\"}),Z=d.a.forwardRef((function(e,t){var n=e.children,o=V(e,[\"children\"]);return d.a.createElement(_,H({width:20,height:20,viewBox:\"0 0 20 20\",xmlns:\"http://www.w3.org/2000/svg\",fill:\"currentColor\",ref:t},o),k,P,n)})),E=d.a.createElement(\"path\",{d:\"M24 9.4L22.6 8 16 14.6 9.4 8 8 9.4 14.6 16 8 22.6 9.4 24 16 17.4 22.6 24 24 22.6 17.4 16 24 9.4z\"}),S=d.a.forwardRef((function(e,t){var n=e.children,o=V(e,[\"children\"]);return d.a.createElement(_,H({width:20,height:20,viewBox:\"0 0 32 32\",xmlns:\"http://www.w3.org/2000/svg\",fill:\"currentColor\",ref:t},o),E,n)})),T=d.a.createElement(\"path\",{d:\"M10,1c-5,0-9,4-9,9s4,9,9,9s9-4,9-9S15,1,10,1z M13.5,14.5l-8-8l1-1l8,8L13.5,14.5z\"}),B=d.a.createElement(\"path\",{d:\"M13.5,14.5l-8-8l1-1l8,8L13.5,14.5z\",\"data-icon-path\":\"inner-path\",opacity:\"0\"}),D=d.a.forwardRef((function(e,t){var n=e.children,o=V(e,[\"children\"]);return d.a.createElement(_,H({width:20,height:20,viewBox:\"0 0 20 20\",xmlns:\"http://www.w3.org/2000/svg\",fill:\"currentColor\",ref:t},o),T,B,n)})),A=d.a.createElement(\"path\",{fill:\"none\",d:\"M14.875,11h2.25V21h-2.25ZM16,27a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,16,27Z\"}),z=d.a.createElement(\"path\",{d:\"M29.8872,28.5386l-13-25a1,1,0,0,0-1.7744,0l-13,25A1,1,0,0,0,3,30H29a1,1,0,0,0,.8872-1.4614ZM14.875,11h2.25V21h-2.25ZM16,27a1.5,1.5,0,1,1,1.5-1.5A1.5,1.5,0,0,1,16,27Z\"}),I=d.a.forwardRef((function(e,t){var n=e.children,o=V(e,[\"children\"]);return d.a.createElement(_,H({width:20,height:20,viewBox:\"0 0 32 32\",xmlns:\"http://www.w3.org/2000/svg\",fill:\"currentColor\",ref:t},o),A,z,n)})),N=d.a.createElement(\"path\",{d:\"M10,1c-5,0-9,4-9,9s4,9,9,9s9-4,9-9S15,1,10,1z M9.2,5h1.5v7H9.2V5z M10,16c-0.6,0-1-0.4-1-1s0.4-1,1-1\\ts1,0.4,1,1S10.6,16,10,16z\"}),R=d.a.createElement(\"path\",{d:\"M9.2,5h1.5v7H9.2V5z M10,16c-0.6,0-1-0.4-1-1s0.4-1,1-1s1,0.4,1,1S10.6,16,10,16z\",\"data-icon-path\":\"inner-path\",opacity:\"0\"}),q=d.a.forwardRef((function(e,t){var n=e.children,o=V(e,[\"children\"]);return d.a.createElement(_,H({width:20,height:20,viewBox:\"0 0 20 20\",xmlns:\"http://www.w3.org/2000/svg\",fill:\"currentColor\",ref:t},o),N,R,n)})),F=d.a.createElement(\"path\",{fill:\"none\",d:\"M16,8a1.5,1.5,0,1,1-1.5,1.5A1.5,1.5,0,0,1,16,8Zm4,13.875H17.125v-8H13v2.25h1.875v5.75H12v2.25h8Z\"}),W=d.a.createElement(\"path\",{d:\"M16,2A14,14,0,1,0,30,16,14,14,0,0,0,16,2Zm0,6a1.5,1.5,0,1,1-1.5,1.5A1.5,1.5,0,0,1,16,8Zm4,16.125H12v-2.25h2.875v-5.75H13v-2.25h4.125v8H20Z\"}),U=d.a.forwardRef((function(e,t){var n=e.children,o=V(e,[\"children\"]);return d.a.createElement(_,H({width:20,height:20,viewBox:\"0 0 32 32\",xmlns:\"http://www.w3.org/2000/svg\",fill:\"currentColor\",ref:t},o),F,W,n)})),$=d.a.createElement(\"path\",{fill:\"none\",d:\"M16,8a1.5,1.5,0,1,1-1.5,1.5A1.5,1.5,0,0,1,16,8Zm4,13.875H17.125v-8H13v2.25h1.875v5.75H12v2.25h8Z\"}),Y=d.a.createElement(\"path\",{d:\"M26,4H6A2,2,0,0,0,4,6V26a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2V6A2,2,0,0,0,26,4ZM16,8a1.5,1.5,0,1,1-1.5,1.5A1.5,1.5,0,0,1,16,8Zm4,16.125H12v-2.25h2.875v-5.75H13v-2.25h4.125v8H20Z\"}),G=d.a.forwardRef((function(e,t){var n=e.children,o=V(e,[\"children\"]);return d.a.createElement(_,H({width:20,height:20,viewBox:\"0 0 32 32\",xmlns:\"http://www.w3.org/2000/svg\",fill:\"currentColor\",ref:t},o),$,Y,n)}));n(18);function J(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?J(Object(n),!0).forEach((function(t){Q(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):J(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var X={};function ee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function te(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(n),!0).forEach((function(t){ne(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ee(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ne(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oe(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var re,ie=b.settings.prefix,le=d.a.forwardRef((function(e,t){var n,o=e.children,r=e.as,i=e.className,l=e.disabled,a=e.small,c=e.size,s=e.kind,u=e.href,p=e.tabIndex,f=e.type,v=e.renderIcon,g=e.iconDescription,b=e.hasIconOnly,m=e.tooltipPosition,w=e.tooltipAlignment,C=oe(e,[\"children\",\"as\",\"className\",\"disabled\",\"small\",\"size\",\"kind\",\"href\",\"tabIndex\",\"type\",\"renderIcon\",\"iconDescription\",\"hasIconOnly\",\"tooltipPosition\",\"tooltipAlignment\"]),y={tabIndex:p,className:h()(i,(ne(n={},\"\".concat(ie,\"--btn\"),!0),ne(n,\"\".concat(ie,\"--btn--field\"),\"field\"===c),ne(n,\"\".concat(ie,\"--btn--sm\"),\"small\"===c||\"sm\"===c||a),ne(n,\"\".concat(ie,\"--btn--lg\"),\"lg\"===c),ne(n,\"\".concat(ie,\"--btn--xl\"),\"xl\"===c),ne(n,\"\".concat(ie,\"--btn--\").concat(s),s),ne(n,\"\".concat(ie,\"--btn--disabled\"),l),ne(n,\"\".concat(ie,\"--btn--icon-only\"),b),ne(n,\"\".concat(ie,\"--tooltip__trigger\"),b),ne(n,\"\".concat(ie,\"--tooltip--a11y\"),b),ne(n,\"\".concat(ie,\"--tooltip--\").concat(m),b&&m),ne(n,\"\".concat(ie,\"--tooltip--align-\").concat(w),b&&w),n)),ref:t},O=v?d.a.createElement(v,{\"aria-label\":g,className:\"\".concat(ie,\"--btn__icon\"),\"aria-hidden\":\"true\"}):null,j=\"button\",x={disabled:l,type:f},H={href:u},M=b?d.a.createElement(\"span\",{className:\"\".concat(ie,\"--assistive-text\")},g):null;return r?(j=r,x=te(te({},x),H)):u&&!l&&(j=\"a\",x=H),d.a.createElement(j,te(te(te({},C),y),x),M,o,O)}));le.displayName=\"Button\",le.propTypes={as:v.a.oneOfType([v.a.func,v.a.string,v.a.elementType]),children:v.a.node,className:v.a.string,disabled:v.a.bool,hasIconOnly:v.a.bool,href:v.a.string,iconDescription:function(e){if(e.renderIcon&&!e.children&&!e.iconDescription)return new Error(\"renderIcon property specified without also providing an iconDescription property.\")},kind:v.a.oneOf([\"primary\",\"secondary\",\"danger\",\"ghost\",\"danger--primary\",\"danger--ghost\",\"danger--tertiary\",\"tertiary\"]).isRequired,renderIcon:v.a.oneOfType([v.a.func,v.a.object]),role:v.a.string,size:v.a.oneOf([\"default\",\"field\",\"small\",\"sm\",\"lg\",\"xl\"]),small:(re=v.a.bool,function(e,t,n){if(void 0!==e[t]){X[n]&&X[n][t]||(X[n]=K(K({},X[n]),{},Q({},t,!0)));for(var o=arguments.length,r=new Array(o>3?o-3:0),i=3;i<o;i++)r[i-3]=arguments[i];return re.apply(void 0,[e,t,n].concat(r))}}),tabIndex:v.a.number,tooltipAlignment:v.a.oneOf([\"start\",\"center\",\"end\"]),tooltipPosition:v.a.oneOf([\"top\",\"right\",\"bottom\",\"left\"]),type:v.a.oneOf([\"button\",\"reset\",\"submit\"])},le.defaultProps={tabIndex:0,type:\"button\",disabled:!1,kind:\"primary\",size:\"default\",tooltipAlignment:\"center\",tooltipPosition:\"top\"};var ae;function ce(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(\"undefined\"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],o=!0,r=!1,i=void 0;try{for(var l,a=e[Symbol.iterator]();!(o=(l=a.next()).done)&&(n.push(l.value),!t||n.length!==t);o=!0);}catch(e){r=!0,i=e}finally{try{o||null==a.return||a.return()}finally{if(r)throw i}}return n}(e,t)||function(e,t){if(!e)return;if(\"string\"==typeof e)return se(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return se(e,t)}(e,t)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function se(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function de(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ue(){return(ue=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function pe(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},i=Object.keys(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o<i.length;o++)n=i[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var fe=b.settings.prefix;function ve(e){var t=e.ariaLabel,n=e.className,o=e.iconDescription,r=e.type,i=e.renderIcon,l=e.name,a=e.notificationType,c=pe(e,[\"ariaLabel\",\"className\",\"iconDescription\",\"type\",\"renderIcon\",\"name\",\"notificationType\"]),s=h()(n,de({},\"\".concat(fe,\"--\").concat(a,\"-notification__close-button\"),a)),u=h()(de({},\"\".concat(fe,\"--\").concat(a,\"-notification__close-icon\"),a));return d.a.createElement(\"button\",ue({},c,{type:r,\"aria-label\":o,title:o,className:s}),i&&d.a.createElement(i,{\"aria-label\":t,className:u,name:l}))}function ge(e){var t=e.title,n=e.subtitle,o=e.caption,r=e.notificationType,i=e.children,l=pe(e,[\"title\",\"subtitle\",\"caption\",\"notificationType\",\"children\"]);return\"toast\"===r?d.a.createElement(\"div\",ue({},l,{className:\"\".concat(fe,\"--toast-notification__details\")}),d.a.createElement(\"h3\",{className:\"\".concat(fe,\"--toast-notification__title\")},t),d.a.createElement(\"div\",{className:\"\".concat(fe,\"--toast-notification__subtitle\")},n),d.a.createElement(\"div\",{className:\"\".concat(fe,\"--toast-notification__caption\")},o),i):\"inline\"===r?d.a.createElement(\"div\",ue({},l,{className:\"\".concat(fe,\"--inline-notification__text-wrapper\")}),d.a.createElement(\"p\",{className:\"\".concat(fe,\"--inline-notification__title\")},t),d.a.createElement(\"div\",{className:\"\".concat(fe,\"--inline-notification__subtitle\")},n),i):void 0}v.a.node,v.a.string,v.a.func,ve.propTypes={ariaLabel:v.a.string,className:v.a.string,iconDescription:v.a.string,name:v.a.string,notificationType:v.a.oneOf([\"toast\",\"inline\"]),renderIcon:v.a.oneOfType([v.a.func,v.a.object]),type:v.a.string},ve.defaultProps={ariaLabel:\"close notification\",notificationType:\"toast\",type:\"button\",iconDescription:\"close icon\",renderIcon:S},ge.propTypes={caption:v.a.node,children:v.a.node,notificationType:v.a.oneOf([\"toast\",\"inline\"]),subtitle:v.a.node,title:v.a.string},ge.defaultProps={title:\"title\",caption:\"caption\",notificationType:\"toast\"};var he=(de(ae={error:D,success:Z,warning:q},\"warning-alt\",I),de(ae,\"info\",U),de(ae,\"info-square\",G),ae);function be(e){var t=e.iconDescription,n=e.kind,o=e.notificationType,r=he[n];return r?d.a.createElement(r,{className:\"\".concat(fe,\"--\").concat(o,\"-notification__icon\")},d.a.createElement(\"title\",null,t)):null}function me(e){var t,n=e.role,o=e.notificationType,r=e.onCloseButtonClick,i=e.iconDescription,l=e.statusIconDescription,a=e.className,c=e.caption,u=e.subtitle,p=e.title,f=e.kind,v=e.lowContrast,g=e.hideCloseButton,b=e.children,m=e.timeout,w=pe(e,[\"role\",\"notificationType\",\"onCloseButtonClick\",\"iconDescription\",\"statusIconDescription\",\"className\",\"caption\",\"subtitle\",\"title\",\"kind\",\"lowContrast\",\"hideCloseButton\",\"children\",\"timeout\"]),C=ce(Object(s.useState)(!0),2),y=C[0],O=C[1],j=h()(a,(de(t={},\"\".concat(fe,\"--toast-notification\"),!0),de(t,\"\".concat(fe,\"--toast-notification--low-contrast\"),v),de(t,\"\".concat(fe,\"--toast-notification--\").concat(f),f),t));return Object(s.useEffect)((function(){if(m){var e=window.setTimeout((function(){O(!1),r(event)}),m);return function(){window.clearTimeout(e)}}}),[r,m]),y?d.a.createElement(\"div\",ue({},w,{role:n,kind:f,className:j}),d.a.createElement(be,{notificationType:o,kind:f,iconDescription:l||\"\".concat(f,\" icon\")}),d.a.createElement(ge,{title:p,subtitle:u,caption:c,notificationType:o},b),!g&&d.a.createElement(ve,{iconDescription:i,notificationType:o,onClick:function(e){O(!1),r(e)}})):null}function we(e){var t,n=e.actions,o=e.role,r=e.notificationType,i=e.onCloseButtonClick,l=e.iconDescription,a=e.statusIconDescription,c=e.className,u=e.subtitle,p=e.title,f=e.kind,v=e.lowContrast,g=e.hideCloseButton,b=e.children,m=pe(e,[\"actions\",\"role\",\"notificationType\",\"onCloseButtonClick\",\"iconDescription\",\"statusIconDescription\",\"className\",\"subtitle\",\"title\",\"kind\",\"lowContrast\",\"hideCloseButton\",\"children\"]),w=ce(Object(s.useState)(!0),2),C=w[0],y=w[1],O=h()(c,(de(t={},\"\".concat(fe,\"--inline-notification\"),!0),de(t,\"\".concat(fe,\"--inline-notification--low-contrast\"),v),de(t,\"\".concat(fe,\"--inline-notification--\").concat(f),f),de(t,\"\".concat(fe,\"--inline-notification--hide-close-button\"),g),t));return C?d.a.createElement(\"div\",ue({},m,{role:o,kind:f,className:O}),d.a.createElement(\"div\",{className:\"\".concat(fe,\"--inline-notification__details\")},d.a.createElement(be,{notificationType:r,kind:f,iconDescription:a||\"\".concat(f,\" icon\")}),d.a.createElement(ge,{title:p,subtitle:u,notificationType:r},b)),n,!g&&d.a.createElement(ve,{iconDescription:l,notificationType:r,onClick:function(e){y(!1),i(e)}})):null}be.propTypes={iconDescription:v.a.string.isRequired,kind:v.a.oneOf([\"error\",\"success\",\"warning\",\"warning-alt\",\"info\",\"info-square\"]).isRequired,notificationType:v.a.oneOf([\"inline\",\"toast\"]).isRequired},me.propTypes={caption:v.a.node,children:v.a.node,className:v.a.string,hideCloseButton:v.a.bool,iconDescription:v.a.string,kind:v.a.oneOf([\"error\",\"info\",\"info-square\",\"success\",\"warning\",\"warning-alt\"]).isRequired,lowContrast:v.a.bool,notificationType:v.a.string,onCloseButtonClick:v.a.func,role:v.a.string.isRequired,statusIconDescription:v.a.string,subtitle:v.a.node,timeout:v.a.number,title:v.a.string.isRequired},me.defaultProps={kind:\"error\",title:\"provide a title\",caption:\"provide a caption\",role:\"alert\",notificationType:\"toast\",iconDescription:\"closes notification\",onCloseButtonClick:function(){},hideCloseButton:!1,timeout:0},we.propTypes={actions:v.a.node,children:v.a.node,className:v.a.string,hideCloseButton:v.a.bool,iconDescription:v.a.string,kind:v.a.oneOf([\"error\",\"info\",\"info-square\",\"success\",\"warning\",\"warning-alt\"]).isRequired,lowContrast:v.a.bool,notificationType:v.a.string,onCloseButtonClick:v.a.func,role:v.a.string.isRequired,statusIconDescription:v.a.string,subtitle:v.a.node,title:v.a.string.isRequired},we.defaultProps={role:\"alert\",notificationType:\"inline\",iconDescription:\"closes notification\",onCloseButtonClick:function(){},hideCloseButton:!1};const Ce={millis:4e3},ye=({toast:e,closeToast:t,isClosing:n})=>{const{millis:o=Ce.millis,title:r,description:i,kind:l,action:a}=e,[c,s]=d.a.useState(!0),[u,p]=d.a.useState(!0);return d.a.useEffect(()=>{if(c){const n=setTimeout(()=>t(e),o);return()=>clearTimeout(n)}},[c]),d.a.useEffect(()=>{const e=setTimeout(()=>p(!1),20);return()=>clearTimeout(e)},[]),d.a.createElement(\"div\",{className:[n&&\"omrs-toast-closing\",u&&\"omrs-toast-mounting\"].filter(Boolean).join(\" \"),onMouseEnter:()=>s(!1),onMouseLeave:()=>s(!0)},d.a.createElement(we,{kind:l||\"info\",subtitle:i,title:r||\"\",actions:a}))};function Oe({subject:e}){const[t,n]=d.a.useState([]),[o,r]=d.a.useState([]),i=d.a.useCallback(e=>{o.some(t=>t===e)||r(o.concat(e))},[o]);return d.a.useEffect(()=>{const o=e.subscribe(e=>n([...t,e]));return()=>{o.unsubscribe()}},[e,t]),d.a.useEffect(()=>{if(o.length>0){const e=setTimeout(()=>{n(t.filter(e=>!o.some(t=>t===e))),r([])},200);return()=>clearTimeout(e)}},[o,t]),t.map(e=>d.a.createElement(ye,{key:e.id,toast:e,isClosing:o.some(t=>t===e),closeToast:i}))}var je=Object.prototype;var xe=function(e){var t=e&&e.constructor;return e===(\"function\"==typeof t&&t.prototype||je)};var He=function(e,t){return function(n){return e(t(n))}}(Object.keys,Object),Me=Object.prototype.hasOwnProperty;var Le=function(e){if(!xe(e))return He(e);var t=[];for(var n in Object(e))Me.call(e,n)&&\"constructor\"!=n&&t.push(n);return t},Ve=n(2),_e=Ve.a.Symbol,ke=Object.prototype,Pe=ke.hasOwnProperty,Ze=ke.toString,Ee=_e?_e.toStringTag:void 0;var Se=function(e){var t=Pe.call(e,Ee),n=e[Ee];try{e[Ee]=void 0;var o=!0}catch(e){}var r=Ze.call(e);return o&&(t?e[Ee]=n:delete e[Ee]),r},Te=Object.prototype.toString;var Be=function(e){return Te.call(e)},De=_e?_e.toStringTag:void 0;var Ae=function(e){return null==e?void 0===e?\"[object Undefined]\":\"[object Null]\":De&&De in Object(e)?Se(e):Be(e)};var ze=function(e){var t=typeof e;return null!=e&&(\"object\"==t||\"function\"==t)};var Ie,Ne=function(e){if(!ze(e))return!1;var t=Ae(e);return\"[object Function]\"==t||\"[object GeneratorFunction]\"==t||\"[object AsyncFunction]\"==t||\"[object Proxy]\"==t},Re=Ve.a[\"__core-js_shared__\"],qe=(Ie=/[^.]+$/.exec(Re&&Re.keys&&Re.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+Ie:\"\";var Fe=function(e){return!!qe&&qe in e},We=Function.prototype.toString;var Ue=function(e){if(null!=e){try{return We.call(e)}catch(e){}try{return e+\"\"}catch(e){}}return\"\"},$e=/^\\[object .+?Constructor\\]$/,Ye=Function.prototype,Ge=Object.prototype,Je=Ye.toString,Ke=Ge.hasOwnProperty,Qe=RegExp(\"^\"+Je.call(Ke).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");var Xe=function(e){return!(!ze(e)||Fe(e))&&(Ne(e)?Qe:$e).test(Ue(e))};var et=function(e,t){return null==e?void 0:e[t]};var tt=function(e,t){var n=et(e,t);return Xe(n)?n:void 0},nt=tt(Ve.a,\"DataView\"),ot=tt(Ve.a,\"Map\"),rt=tt(Ve.a,\"Promise\"),it=tt(Ve.a,\"Set\"),lt=tt(Ve.a,\"WeakMap\"),at=Ue(nt),ct=Ue(ot),st=Ue(rt),dt=Ue(it),ut=Ue(lt),pt=Ae;(nt&&\"[object DataView]\"!=pt(new nt(new ArrayBuffer(1)))||ot&&\"[object Map]\"!=pt(new ot)||rt&&\"[object Promise]\"!=pt(rt.resolve())||it&&\"[object Set]\"!=pt(new it)||lt&&\"[object WeakMap]\"!=pt(new lt))&&(pt=function(e){var t=Ae(e),n=\"[object Object]\"==t?e.constructor:void 0,o=n?Ue(n):\"\";if(o)switch(o){case at:return\"[object DataView]\";case ct:return\"[object Map]\";case st:return\"[object Promise]\";case dt:return\"[object Set]\";case ut:return\"[object WeakMap]\"}return t});var ft=pt;var vt=function(e){return null!=e&&\"object\"==typeof e};var gt=function(e){return vt(e)&&\"[object Arguments]\"==Ae(e)},ht=Object.prototype,bt=ht.hasOwnProperty,mt=ht.propertyIsEnumerable,wt=gt(function(){return arguments}())?gt:function(e){return vt(e)&&bt.call(e,\"callee\")&&!mt.call(e,\"callee\")},Ct=Array.isArray;var yt=function(e){return\"number\"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991};var Ot=function(e){return null!=e&&yt(e.length)&&!Ne(e)},jt=n(11),xt={};xt[\"[object Float32Array]\"]=xt[\"[object Float64Array]\"]=xt[\"[object Int8Array]\"]=xt[\"[object Int16Array]\"]=xt[\"[object Int32Array]\"]=xt[\"[object Uint8Array]\"]=xt[\"[object Uint8ClampedArray]\"]=xt[\"[object Uint16Array]\"]=xt[\"[object Uint32Array]\"]=!0,xt[\"[object Arguments]\"]=xt[\"[object Array]\"]=xt[\"[object ArrayBuffer]\"]=xt[\"[object Boolean]\"]=xt[\"[object DataView]\"]=xt[\"[object Date]\"]=xt[\"[object Error]\"]=xt[\"[object Function]\"]=xt[\"[object Map]\"]=xt[\"[object Number]\"]=xt[\"[object Object]\"]=xt[\"[object RegExp]\"]=xt[\"[object Set]\"]=xt[\"[object String]\"]=xt[\"[object WeakMap]\"]=!1;var Ht=function(e){return vt(e)&&yt(e.length)&&!!xt[Ae(e)]};var Mt=function(e){return function(t){return e(t)}},Lt=n(6),Vt=Lt.a&&Lt.a.isTypedArray,_t=Vt?Mt(Vt):Ht,kt=Object.prototype.hasOwnProperty;var Pt=function(e){if(null==e)return!0;if(Ot(e)&&(Ct(e)||\"string\"==typeof e||\"function\"==typeof e.splice||Object(jt.a)(e)||_t(e)||wt(e)))return!e.length;var t=ft(e);if(\"[object Map]\"==t||\"[object Set]\"==t)return!e.size;if(xe(e))return!Le(e).length;for(var n in e)if(kt.call(e,n))return!1;return!0};const Zt=new p.Subject;let Et=0;const St=document.createElement(\"div\"),Tt=()=>{document.body.appendChild(St),Object(u.render)(d.a.createElement(Oe,{subject:Zt}),St)};function Bt(e){if(!e||!(\"string\"==typeof(t=e.description)?t.trim().length>0:\"object\"==typeof t&&!Pt(t)))throw Error(\"showToast must be called with an object that has a 'description' property that is a non-empty string or object\");var t;e.id=Et++,Zt.next(e)}St.className=\"omrs-toasts-container\",\"complete\"===document.readyState?Tt():window.addEventListener(\"load\",Tt)}]))}}}));\n//# sourceMappingURL=openmrs-esm-styleguide.js.map","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):t.dayjs_plugin_utc=i()}(this,function(){\"use strict\";return function(t,i,e){var s=i.prototype;e.utc=function(t){return new i({date:t,utc:!0,args:arguments})},s.utc=function(t){var i=e(this.toDate(),{locale:this.$L,utc:!0});return t?i.add(this.utcOffset(),\"minute\"):i},s.local=function(){return e(this.toDate(),{locale:this.$L,utc:!1})};var f=s.parse;s.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),f.call(this,t)};var n=s.init;s.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else n.call(this)};var u=s.utcOffset;s.utcOffset=function(t,i){var e=this.$utils().u;if(e(t))return this.$u?0:e(this.$offset)?u.call(this):this.$offset;var s=Math.abs(t)<=16?60*t:t,f=this;if(i)return f.$offset=s,f.$u=0===t,f;if(0!==t){var n=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(f=this.local().add(s+n,\"minute\")).$offset=s,f.$x.$localOffset=n}else f=this.utc();return f};var o=s.format;s.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return o.call(this,i)},s.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||(new Date).getTimezoneOffset());return this.$d.valueOf()-6e4*t},s.isUTC=function(){return!!this.$u},s.toISOString=function(){return this.toDate().toISOString()},s.toString=function(){return this.toDate().toUTCString()};var r=s.toDate;s.toDate=function(t){return\"s\"===t&&this.$offset?e(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():r.call(this)};var a=s.diff;s.diff=function(t,i,s){if(t&&this.$u===t.$u)return a.call(this,t,i,s);var f=this.local(),n=e(t).local();return a.call(f,n,i,s)}}});\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):t.dayjs_plugin_isToday=e()}(this,function(){\"use strict\";return function(t,e,o){e.prototype.isToday=function(){var t=o();return this.format(\"YYYY-MM-DD\")===t.format(\"YYYY-MM-DD\")}}});\n","import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport isToday from \"dayjs/plugin/isToday\";\n\ndayjs.extend(utc);\ndayjs.extend(isToday);\n\nexport type DateInput = string | number | Date;\n\nconst isoFormat = \"YYYY-MM-DDTHH:mm:ss.SSSZZ\";\n\n/**\n * This function is STRICT on checking whether a date string is the openmrs format.\n * The format should be YYYY-MM-DDTHH:mm:ss.SSSZZ\n */\nexport function isOmrsDateStrict(omrsPayloadString: string): boolean {\n // omrs format 2018-03-19T00:00:00.000+0300\n if (\n omrsPayloadString === null ||\n omrsPayloadString === undefined ||\n omrsPayloadString.trim().length !== 28\n ) {\n return false;\n }\n omrsPayloadString = omrsPayloadString.trim();\n\n // 11th character will always be T\n if (omrsPayloadString[10] !== \"T\") {\n return false;\n }\n\n // checking time format\n if (\n omrsPayloadString[13] !== \":\" ||\n omrsPayloadString[16] !== \":\" ||\n omrsPayloadString[19] !== \".\"\n ) {\n return false;\n }\n\n // checking UTC offset format\n if (!(omrsPayloadString[23] === \"+\" && omrsPayloadString[26] !== \":\")) {\n return false;\n }\n\n return dayjs(omrsPayloadString, isoFormat).isValid();\n}\n\n/**\n *\n * @param date Checks if the provided date is today.\n */\nexport function isOmrsDateToday(date: DateInput) {\n return dayjs(date).isToday();\n}\n\n/**\n * Converts the object to a date object if it is a valid ISO date time string.\n */\nexport function toDateObjectStrict(omrsDateString: string): Date | null {\n if (!isOmrsDateStrict(omrsDateString)) {\n return null;\n }\n\n return dayjs(omrsDateString, isoFormat).toDate();\n}\n\n/**\n * Formats the input as a date time string using the format \"YYYY-MM-DDTHH:mm:ss.SSSZZ\".\n */\nexport function toOmrsIsoString(date: DateInput, toUTC = false): string {\n let d = dayjs(date);\n\n if (toUTC) {\n d = d.utc();\n }\n\n return d.format(isoFormat);\n}\n\n/**\n * Formats the input as a time string using the format \"HH:mm\".\n */\nexport function toOmrsTimeString24(date: DateInput) {\n return dayjs(date).format(\"HH:mm\");\n}\n\n/**\n * Formats the input as a time string using the format \"HH:mm A\".\n */\nexport function toOmrsTimeString(date: DateInput) {\n return dayjs.utc(date).format(\"HH:mm A\");\n}\n\n/**\n * Formats the input as a date string using the format \"DD - MMM - YYYY\".\n */\nexport function toOmrsDayDateFormat(date: DateInput) {\n return toOmrsDateFormat(date, \"DD - MMM - YYYY\");\n}\n\n/**\n * Formats the input as a date string using the format \"DD-MMM\".\n */\nexport function toOmrsYearlessDateFormat(date: DateInput) {\n return toOmrsDateFormat(date, \"DD-MMM\");\n}\n\n/**\n * Formats the input as a date string. By default the format \"YYYY-MMM-DD\" is used.\n */\nexport function toOmrsDateFormat(date: DateInput, format = \"YYYY-MMM-DD\") {\n return dayjs(date).format(format);\n}\n","exports.setPublicPath = function setPublicPath(\n systemjsModuleName,\n rootDirectoryLevel\n) {\n if (!rootDirectoryLevel) {\n rootDirectoryLevel = 1;\n }\n if (\n typeof systemjsModuleName !== \"string\" ||\n systemjsModuleName.trim().length === 0\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'\"\n );\n }\n\n if (\n typeof rootDirectoryLevel !== \"number\" ||\n rootDirectoryLevel <= 0 ||\n !isInteger(rootDirectoryLevel)\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'\"\n );\n }\n\n let moduleUrl;\n try {\n moduleUrl = window.System.resolve(systemjsModuleName);\n if (!moduleUrl) {\n throw Error();\n }\n } catch (err) {\n throw Error(\n \"systemjs-webpack-interop: There is no such module '\" +\n systemjsModuleName +\n \"' in the SystemJS registry. Did you misspell the name of your module?\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(moduleUrl, rootDirectoryLevel);\n};\n\nfunction resolveDirectory(urlString, rootDirectoryLevel) {\n // Our friend IE11 doesn't support new URL()\n // https://github.com/single-spa/single-spa/issues/612\n // https://gist.github.com/jlong/2428561\n\n const a = document.createElement(\"a\");\n a.href = urlString;\n\n const pathname = a.pathname[0] === \"/\" ? a.pathname : \"/\" + a.pathname;\n let numDirsProcessed = 0,\n index = pathname.length;\n while (numDirsProcessed !== rootDirectoryLevel && index >= 0) {\n const char = pathname[--index];\n if (char === \"/\") {\n numDirsProcessed++;\n }\n }\n\n if (numDirsProcessed !== rootDirectoryLevel) {\n throw Error(\n \"systemjs-webpack-interop: rootDirectoryLevel (\" +\n rootDirectoryLevel +\n \") is greater than the number of directories (\" +\n numDirsProcessed +\n \") in the URL path \" +\n urlString\n );\n }\n\n const finalPath = pathname.slice(0, index + 1);\n\n return a.protocol + \"//\" + a.host + finalPath;\n}\n\nexports.resolveDirectory = resolveDirectory;\n\n// borrowed from https://github.com/parshap/js-is-integer/blob/master/index.js\nconst isInteger =\n Number.isInteger ||\n function isInteger(val) {\n return typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n };\n","import { setPublicPath } from \"systemjs-webpack-interop\";\n\nsetPublicPath(\"@openmrs/esm-framework\");\n","export * from \"@openmrs/esm-api\";\nexport * from \"@openmrs/esm-config\";\nexport * from \"@openmrs/esm-error-handling\";\nexport * from \"@openmrs/esm-extensions\";\nexport * from \"@openmrs/esm-react-utils\";\nexport * from \"@openmrs/esm-state\";\nexport * from \"@openmrs/esm-styleguide\";\nexport * from \"@openmrs/esm-utils\";\nexport * from \"./types\";\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"openmrs-esm-framework.js","mappings":"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","sources":["webpack://@openmrs/esm-framework/../node_modules/Base64/base64.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/decorate.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/fhir.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/middlewares/auth.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/middlewares/bundle.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/middlewares/config.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/middlewares/core.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/middlewares/errors.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/middlewares/http.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/middlewares/patient.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/middlewares/references.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/middlewares/search.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/middlewares/url.js","webpack://@openmrs/esm-framework/../node_modules/fhir.js/src/utils.js","webpack://@openmrs/esm-framework/../node_modules/merge/merge.js","webpack://@openmrs/esm-framework/../node_modules/systemjs-webpack-interop/auto-public-path/auto-public-path.js","webpack://@openmrs/esm-framework/../node_modules/systemjs-webpack-interop/public-path.js","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-api/external system \"@openmrs/esm-config\"","webpack://@openmrs/esm-framework/@openmrs/esm-api/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-api/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-api/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-api/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-api/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-api/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-api/webpack/runtime/node module decorator","webpack://@openmrs/esm-framework/@openmrs/esm-api/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/../node_modules/systemjs-webpack-interop/auto-public-path/1.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/node_modules/tslib/tslib.es6.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/isFunction.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/config.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/hostReportError.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/Observer.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/isArray.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/isObject.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/Subscription.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/Subscriber.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/symbol/observable.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/identity.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/pipe.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/Observable.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/toSubscriber.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/canReportError.js","webpack://@openmrs/esm-framework/../node_modules/lodash-es/_freeGlobal.js","webpack://@openmrs/esm-framework/../node_modules/lodash-es/_root.js","webpack://@openmrs/esm-framework/../node_modules/lodash-es/_Symbol.js","webpack://@openmrs/esm-framework/../node_modules/lodash-es/_getRawTag.js","webpack://@openmrs/esm-framework/../node_modules/lodash-es/_objectToString.js","webpack://@openmrs/esm-framework/../node_modules/lodash-es/_baseGetTag.js","webpack://@openmrs/esm-framework/../node_modules/lodash-es/_getPrototype.js","webpack://@openmrs/esm-framework/../node_modules/lodash-es/_overArg.js","webpack://@openmrs/esm-framework/../node_modules/lodash-es/isPlainObject.js","webpack://@openmrs/esm-framework/@openmrs/esm-api/src/openmrs-fetch.ts","webpack://@openmrs/esm-framework/../node_modules/lodash-es/isObjectLike.js","webpack://@openmrs/esm-framework/@openmrs/esm-api/src/fhir.ts","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/SubjectSubscription.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/Subject.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/scheduler/Action.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/Scheduler.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/scheduler/queue.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/observable/empty.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/isScheduler.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/subscribeToArray.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/Notification.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/observable/fromArray.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/observable/throwError.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/observable/of.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/operators/observeOn.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/ReplaySubject.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/operators/map.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/symbol/iterator.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/subscribeTo.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/isArrayLike.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/isPromise.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/innerSubscribe.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/operators/mergeMap.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/observable/from.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/noop.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/operators/tap.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/operators/filter.js","webpack://@openmrs/esm-framework/@openmrs/esm-api/src/shared-api-objects/current-user.ts","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/operators/mergeAll.js","webpack://@openmrs/esm-framework/@openmrs/esm-api/src/setup.ts","webpack://@openmrs/esm-framework/@openmrs/esm-api/src/shared-api-objects/current-patient.ts","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/BehaviorSubject.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js","webpack://@openmrs/esm-framework/../node_modules/rxjs/_esm5/internal/operators/take.js","webpack://@openmrs/esm-framework/@openmrs/esm-api/src/workspace/workspace.resource.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-api/src/shared-api-objects/visit-utils.ts","webpack://@openmrs/esm-framework/@openmrs/esm-api/src/shared-api-objects/visit-type.ts","webpack://@openmrs/esm-framework/@openmrs/esm-api/src/shared-api-objects/location.ts","webpack://@openmrs/esm-framework/@openmrs/esm-api/src/openmrs-backend-dependencies.ts","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-breadcrumbs/external system \"@openmrs/esm-state\"","webpack://@openmrs/esm-framework/@openmrs/esm-breadcrumbs/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-breadcrumbs/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-breadcrumbs/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-breadcrumbs/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-breadcrumbs/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-breadcrumbs/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-breadcrumbs/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/../node_modules/path-to-regexp/dist.es2015/index.js","webpack://@openmrs/esm-framework/@openmrs/esm-breadcrumbs/src/db.ts","webpack://@openmrs/esm-framework/@openmrs/esm-breadcrumbs/src/filter.ts","webpack://@openmrs/esm-framework/../node_modules/ramda/src/bind.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/clone.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_arity.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_clone.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_cloneRegExp.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_curry1.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_curry2.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_curry3.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_has.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_isArray.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_isArrayLike.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_isObject.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_isPlaceholder.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_isString.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_reduce.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/internal/_xwrap.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/mergeDeepRight.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/mergeDeepWithKey.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/mergeWithKey.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/reduce.js","webpack://@openmrs/esm-framework/../node_modules/ramda/src/type.js","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-config/external system \"@openmrs/esm-state\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-config/external system \"single-spa\"","webpack://@openmrs/esm-framework/@openmrs/esm-config/webpack/bootstrap","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-config/webpack/runtime/compat get default export","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-config/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-config/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-config/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-config/src/types.ts","webpack://@openmrs/esm-framework/@openmrs/esm-config/src/validators/validator.ts","webpack://@openmrs/esm-framework/@openmrs/esm-config/src/validators/type-validators.ts","webpack://@openmrs/esm-framework/@openmrs/esm-config/src/module-config/state.ts","webpack://@openmrs/esm-framework/@openmrs/esm-config/src/module-config/module-config.ts","webpack://@openmrs/esm-framework/@openmrs/esm-config/src/navigation/interpolate-string.ts","webpack://@openmrs/esm-framework/@openmrs/esm-config/src/navigation/navigate.ts","webpack://@openmrs/esm-framework/@openmrs/esm-config/src/validators/validators.ts","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-error-handling/external system \"@openmrs/esm-globals\"","webpack://@openmrs/esm-framework/@openmrs/esm-error-handling/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-error-handling/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-error-handling/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-error-handling/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-error-handling/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-error-handling/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-error-handling/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/@openmrs/esm-error-handling/src/index.ts","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-extensions/external system \"@openmrs/esm-config\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-extensions/external system \"@openmrs/esm-state\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-extensions/external system \"single-spa\"","webpack://@openmrs/esm-framework/@openmrs/esm-extensions/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-extensions/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-extensions/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-extensions/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-extensions/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-extensions/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-extensions/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/@openmrs/esm-extensions/src/contexts.ts","webpack://@openmrs/esm-framework/@openmrs/esm-extensions/src/store.ts","webpack://@openmrs/esm-framework/@openmrs/esm-extensions/src/extensions.ts","webpack://@openmrs/esm-framework/@openmrs/esm-extensions/src/helpers.ts","webpack://@openmrs/esm-framework/@openmrs/esm-extensions/src/render.ts","webpack://@openmrs/esm-framework/@openmrs/esm-globals/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-globals/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-globals/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-globals/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-globals/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-globals/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-globals/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/@openmrs/esm-globals/src/events.ts","webpack://@openmrs/esm-framework/@openmrs/esm-globals/src/globals.ts","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-offline/external system \"@openmrs/esm-api\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-offline/external system \"@openmrs/esm-state\"","webpack://@openmrs/esm-framework/@openmrs/esm-offline/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-offline/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-offline/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-offline/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-offline/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-offline/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-offline/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/../node_modules/workbox-window/build/workbox-window.prod.es5.mjs","webpack://@openmrs/esm-framework/@openmrs/esm-offline/src/service-worker.ts","webpack://@openmrs/esm-framework/@openmrs/esm-offline/src/service-worker-http-headers.ts","webpack://@openmrs/esm-framework/@openmrs/esm-offline/src/service-worker-messaging.ts","webpack://@openmrs/esm-framework/@openmrs/esm-offline/src/events.ts","webpack://@openmrs/esm-framework/@openmrs/esm-offline/src/patches.ts","webpack://@openmrs/esm-framework/../node_modules/dexie/dist/dexie.mjs","webpack://@openmrs/esm-framework/@openmrs/esm-offline/src/sync.ts","webpack://@openmrs/esm-framework/@openmrs/esm-offline/node_modules/uuid/dist/esm-browser/rng.js","webpack://@openmrs/esm-framework/@openmrs/esm-offline/node_modules/uuid/dist/esm-browser/regex.js","webpack://@openmrs/esm-framework/@openmrs/esm-offline/node_modules/uuid/dist/esm-browser/validate.js","webpack://@openmrs/esm-framework/@openmrs/esm-offline/node_modules/uuid/dist/esm-browser/stringify.js","webpack://@openmrs/esm-framework/@openmrs/esm-offline/node_modules/uuid/dist/esm-browser/v4.js","webpack://@openmrs/esm-framework/@openmrs/esm-offline/src/uuid.ts","webpack://@openmrs/esm-framework/@openmrs/esm-offline/src/offline-patient-data.ts","webpack://@openmrs/esm-framework/@openmrs/node_modules/systemjs-webpack-interop/auto-public-path/auto-public-path.js","webpack://@openmrs/esm-framework/@openmrs/node_modules/systemjs-webpack-interop/public-path.js","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/@openmrs/esm-state/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/@openmrs/esm-state/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/webpack:/@openmrs/esm-state/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/@openmrs/esm-state/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/webpack:/@openmrs/esm-state/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/webpack:/@openmrs/esm-state/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/@openmrs/esm-state/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/@openmrs/node_modules/systemjs-webpack-interop/auto-public-path/1.js","webpack://@openmrs/esm-framework/@openmrs/node_modules/unistore/dist/unistore.es.js","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/@openmrs/esm-state/src/state.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/@openmrs/esm-state/src/update.ts","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/external system \"@openmrs/esm-api\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/external system \"@openmrs/esm-config\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/external system \"@openmrs/esm-extensions\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/external system \"@openmrs/esm-globals\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/external system \"i18next\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/external system \"react\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/external system \"react-dom\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/external system \"react-i18next\"","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-react-utils/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/ComponentContext.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/ConfigurableLink.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/createUseStore.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useExtension.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/Extension.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useStoreState.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useExtensionSlotConfig.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useAttachedExtensionIds.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useAssignedExtensionIds.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useConnectivity.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useConnectedExtensions.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useExtensionSlot.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/ExtensionSlot.tsx","webpack://@openmrs/esm-framework/../node_modules/single-spa-react/lib/esm/single-spa-react.js","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/openmrsComponentDecorator.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/getLifecycle.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useBodyScrollLock.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useConfig.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useCurrentPatient.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useExtensionSlotMeta.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useExtensionStore.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useForceUpdate.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useLayoutType.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useLocations.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useNavigationContext.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useOnClickOutside.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/UserHasAccess.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useSessionUser.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useStore.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useVisit.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/useVisitTypes.ts","webpack://@openmrs/esm-framework/@openmrs/esm-react-utils/src/usePagination.ts","webpack://@openmrs/esm-framework/@openmrs/esm-state/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-state/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-state/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-state/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-state/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-state/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-state/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/../node_modules/unistore/dist/unistore.es.js","webpack://@openmrs/esm-framework/@openmrs/esm-state/src/state.ts","webpack://@openmrs/esm-framework/@openmrs/esm-state/src/update.ts","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/@openmrs/esm-state/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/@openmrs/esm-state/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-styleguide/webpack:/@openmrs/esm-state/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/@openmrs/esm-state/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-styleguide/webpack:/@openmrs/esm-state/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-styleguide/webpack:/@openmrs/esm-state/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/@openmrs/esm-state/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/@openmrs/esm-state/src/state.ts","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/@openmrs/esm-state/src/update.ts","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/src/icons/svgs/access_time-24px_rounded.svg","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-styleguide/external system \"@openmrs/esm-extensions\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-styleguide/external system \"react\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-styleguide/external system \"react-dom\"","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-styleguide/external system \"rxjs\"","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-styleguide/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-styleguide/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-styleguide/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/src/svg-utils.ts","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/src/notifications/index.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/src/toasts/index.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/src/modals/index.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/src/logo/index.ts","webpack://@openmrs/esm-framework/@openmrs/esm-styleguide/src/icons/index.ts","webpack://@openmrs/esm-framework/../node_modules/dayjs/plugin/isToday.js","webpack://@openmrs/esm-framework/../node_modules/dayjs/plugin/utc.js","webpack://@openmrs/esm-framework/../node_modules/yallist/iterator.js","webpack://@openmrs/esm-framework/../node_modules/yallist/yallist.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/lru-cache/index.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/classes/comparator.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/classes/range.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/classes/semver.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/clean.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/cmp.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/coerce.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/compare-build.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/compare-loose.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/compare.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/diff.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/eq.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/gt.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/gte.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/inc.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/lt.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/lte.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/major.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/minor.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/neq.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/parse.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/patch.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/prerelease.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/rcompare.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/rsort.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/satisfies.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/sort.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/functions/valid.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/index.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/internal/constants.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/internal/debug.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/internal/identifiers.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/internal/parse-options.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/internal/re.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/ranges/gtr.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/ranges/intersects.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/ranges/ltr.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/ranges/max-satisfying.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/ranges/min-satisfying.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/ranges/min-version.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/ranges/outside.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/ranges/simplify.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/ranges/subset.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/ranges/to-comparators.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/node_modules/semver/ranges/valid.js","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-utils/external system \"dayjs\"","webpack://@openmrs/esm-framework/@openmrs/esm-utils/webpack/bootstrap","webpack://@openmrs/esm-framework/@openmrs/esm-utils/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-utils/webpack/runtime/compat get default export","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-utils/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/@openmrs/esm-utils/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-utils/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack:/@openmrs/esm-utils/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/@openmrs/esm-utils/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/@openmrs/esm-utils/src/age-helpers.tsx","webpack://@openmrs/esm-framework/@openmrs/esm-utils/src/omrs-dates.ts","webpack://@openmrs/esm-framework/../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@openmrs/esm-framework/../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://@openmrs/esm-framework/../node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://@openmrs/esm-framework/../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://@openmrs/esm-framework/../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://@openmrs/esm-framework/../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://@openmrs/esm-framework/../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://@openmrs/esm-framework/../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://@openmrs/esm-framework/../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@openmrs/esm-framework/../node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://@openmrs/esm-framework/../node_modules/i18next/dist/esm/i18next.js","webpack://@openmrs/esm-framework/@openmrs/esm-utils/src/translate.ts","webpack://@openmrs/esm-framework/@openmrs/esm-utils/src/version.ts","webpack://@openmrs/esm-framework/@openmrs/esm-utils/src/retry.ts","webpack://@openmrs/esm-framework/../../../node_modules/object-assign/index.js","webpack://@openmrs/esm-framework/../../../node_modules/react/cjs/react.production.min.js","webpack://@openmrs/esm-framework/../../../node_modules/react/index.js","webpack://@openmrs/esm-framework/../../../node_modules/systemjs-webpack-interop/auto-public-path/auto-public-path.js","webpack://@openmrs/esm-framework/../../../node_modules/systemjs-webpack-interop/public-path.js","webpack://@openmrs/esm-framework/webpack/bootstrap","webpack://@openmrs/esm-framework/webpack/runtime/__system_context__","webpack://@openmrs/esm-framework/webpack/runtime/compat get default export","webpack://@openmrs/esm-framework/webpack/runtime/define property getters","webpack://@openmrs/esm-framework/webpack/runtime/global","webpack://@openmrs/esm-framework/webpack/runtime/hasOwnProperty shorthand","webpack://@openmrs/esm-framework/webpack/runtime/make namespace object","webpack://@openmrs/esm-framework/webpack/runtime/publicPath","webpack://@openmrs/esm-framework/../../../node_modules/systemjs-webpack-interop/auto-public-path/1.js"],"sourcesContent":[";(function () {\n\n var object = typeof exports != 'undefined' ? exports : this; // #8: web workers\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n function InvalidCharacterError(message) {\n this.message = message;\n }\n InvalidCharacterError.prototype = new Error;\n InvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n // encoder\n // [https://gist.github.com/999166] by [https://github.com/nignag]\n object.btoa || (\n object.btoa = function (input) {\n var str = String(input);\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars, output = '';\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3/4);\n if (charCode > 0xFF) {\n throw new InvalidCharacterError(\"'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.\");\n }\n block = block << 8 | charCode;\n }\n return output;\n });\n\n // decoder\n // [https://gist.github.com/1020396] by [https://github.com/atk]\n object.atob || (\n object.atob = function (input) {\n var str = String(input).replace(/=+$/, '');\n if (str.length % 4 == 1) {\n throw new InvalidCharacterError(\"'atob' failed: The string to be decoded is not correctly encoded.\");\n }\n for (\n // initialize result and counters\n var bc = 0, bs, buffer, idx = 0, output = '';\n // get next character\n buffer = str.charAt(idx++);\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n });\n\n}());\n","(function() {\r\n var fhirAPI;\r\n var adapter;\r\n\r\n function getNext (bundle, process) {\r\n var i;\r\n var d = bundle.data.entry || [];\r\n var entries = [];\r\n for (i = 0; i < d.length; i++) {\r\n entries.push(d[i].resource);\r\n }\r\n process(entries);\r\n var def = adapter.defer();\r\n fhirAPI.nextPage({bundle:bundle.data}).then(function (r) {\r\n getNext(r, process).then(function (t) {\r\n def.resolve();\r\n });\r\n }, function(err) {def.resolve()});\r\n return def.promise;\r\n }\r\n \r\n function drain (searchParams, process, done, fail) {\r\n var ret = adapter.defer();\r\n \r\n fhirAPI.search(searchParams).then(function(data){\r\n getNext(data, process).then(function() {\r\n done();\r\n }, function(err) {\r\n fail(err);\r\n });\r\n }, function(err) {\r\n fail(err);\r\n });\r\n };\r\n \r\n function fetchAll (searchParams){\r\n var ret = adapter.defer();\r\n var results = [];\r\n \r\n drain(\r\n searchParams,\r\n function(entries) {\r\n entries.forEach(function(entry) {\r\n results.push(entry);\r\n });\r\n },\r\n function () {\r\n ret.resolve(results);\r\n },\r\n function (err) {\r\n ret.reject(err);\r\n }\r\n );\r\n \r\n return ret.promise;\r\n };\r\n\r\n function fetchAllWithReferences (searchParams, resolveParams) {\r\n var ret = adapter.defer();\r\n \r\n fhirAPI.search(searchParams) // TODO: THIS IS NOT CORRECT (need fetchAll, but it does not return a bundle yet)\r\n .then(function(results){\r\n\r\n var resolvedReferences = {};\r\n\r\n var queue = [function() {ret.resolve(results, resolvedReferences);}];\r\n \r\n function enqueue (bundle,resource,reference) {\r\n queue.push(function() {resolveReference(bundle,resource,reference)});\r\n }\r\n\r\n function next() {\r\n (queue.pop())();\r\n }\r\n\r\n function resolveReference (bundle,resource,reference) {\r\n var referenceID = reference.reference;\r\n fhirAPI.resolve({'bundle': bundle, 'resource': resource, 'reference':reference}).then(function(res){\r\n var referencedObject = res.data || res.content;\r\n resolvedReferences[referenceID] = referencedObject;\r\n next();\r\n });\r\n }\r\n\r\n var bundle = results.data;\r\n\r\n bundle.entry && bundle.entry.forEach(function(element){\r\n var resource = element.resource;\r\n var type = resource.resourceType;\r\n resolveParams && resolveParams.forEach(function(resolveParam){\r\n var param = resolveParam.split('.');\r\n var targetType = param[0];\r\n var targetElement = param[1];\r\n var reference = resource[targetElement];\r\n if (type === targetType && reference) {\r\n var referenceID = reference.reference;\r\n if (!resolvedReferences[referenceID]) {\r\n enqueue(bundle,resource,reference);\r\n }\r\n }\r\n });\r\n });\r\n\r\n next();\r\n\r\n }, function(){\r\n ret.reject(\"Could not fetch search results\");\r\n });\r\n \r\n return ret.promise;\r\n };\r\n \r\n function decorate (client, newAdapter) {\r\n fhirAPI = client;\r\n adapter = newAdapter;\r\n client[\"drain\"] = drain;\r\n client[\"fetchAll\"] = fetchAll;\r\n client[\"fetchAllWithReferences\"] = fetchAllWithReferences;\r\n return client;\r\n }\r\n \r\n module.exports = decorate;\r\n}).call(this);","(function() {\n var utils = require(\"./utils\");\n var M = require('./middlewares/core');\n var query = require('./middlewares/search');\n var auth = require('./middlewares/auth');\n var transport = require('./middlewares/http');\n var errors = require('./middlewares/errors');\n var config = require('./middlewares/config');\n var bundle = require('./middlewares/bundle');\n var pt = require('./middlewares/patient');\n var refs = require('./middlewares/references');\n var url = require('./middlewares/url');\n var decorate = require('./decorate');\n\n var cache = {};\n\n\n var fhir = function(cfg, adapter){\n var Middleware = M.Middleware;\n var $$Attr = M.$$Attr;\n\n var $$Method = function(m){ return $$Attr('method', m);};\n var $$Header = function(h,v) {return $$Attr('headers.' + h, v);};\n\n var $Errors = Middleware(errors);\n var Defaults = Middleware(config(cfg, adapter))\n .and($Errors)\n .and(auth.$Basic)\n .and(auth.$Bearer)\n .and(auth.$Credentials)\n .and(transport.$JsonData)\n .and($$Header('Accept', (cfg.headers && cfg.headers['Accept']) ? cfg.headers['Accept'] : 'application/json'))\n .and($$Header('Content-Type', (cfg.headers && cfg.headers['Content-Type']) ? cfg.headers['Content-Type'] : 'application/json'));\n\n var GET = Defaults.and($$Method('GET'));\n var POST = Defaults.and($$Method('POST'));\n var PUT = Defaults.and($$Method('PUT'));\n var DELETE = Defaults.and($$Method('DELETE'));\n var PATCH = Defaults.and($$Method('PATCH'));\n\n var http = transport.Http(cfg, adapter);\n\n var Path = url.Path;\n var BaseUrl = Path(cfg.baseUrl);\n var resourceTypePath = BaseUrl.slash(\":type || :resource.resourceType\");\n var searchPath = resourceTypePath;\n var resourceTypeHxPath = resourceTypePath.slash(\"_history\");\n var resourcePath = resourceTypePath.slash(\":id || :resource.id\");\n var resourceHxPath = resourcePath.slash(\"_history\");\n var vreadPath = resourcePath.slash(\":versionId || :resource.meta.versionId\");\n var metaTarget = BaseUrl.slash(\":target.resourceType || :target.type\").slash(\":target.id\").slash(':target.versionId');\n\n var ReturnHeader = $$Header('Prefer', 'return=representation');\n\n var $Paging = Middleware(query.$Paging);\n\n return decorate({\n conformance: GET.and(BaseUrl.slash(\"metadata\")).end(http),\n document: POST.and(BaseUrl.slash(\"Document\")).end(http),\n profile: GET.and(BaseUrl.slash(\"Profile\").slash(\":type\")).end(http),\n transaction: POST.and(BaseUrl).end(http),\n history: GET.and(BaseUrl.slash(\"_history\")).and($Paging).end(http),\n typeHistory: GET.and(resourceTypeHxPath).and($Paging).end(http),\n resourceHistory: GET.and(resourceHxPath).and($Paging).end(http),\n read: GET.and(pt.$WithPatient).and(resourcePath).end(http),\n vread: GET.and(vreadPath).end(http),\n \"delete\": DELETE.and(resourcePath).and(ReturnHeader).end(http),\n create: POST.and(resourceTypePath).and(ReturnHeader).end(http),\n validate: POST.and(resourceTypePath.slash(\"_validate\")).end(http),\n meta: {\n add: POST.and(metaTarget.slash(\"$meta-add\")).end(http),\n delete: POST.and(metaTarget.slash(\"$meta-delete\")).end(http),\n read: GET.and(metaTarget.slash(\"$meta\")).end(http)\n },\n search: GET.and(resourceTypePath).and(pt.$WithPatient).and(query.$SearchParams).and($Paging).end(http),\n update: PUT.and(resourcePath).and(ReturnHeader).end(http),\n conditionalUpdate: PUT.and(resourceTypePath).and(query.$SearchParams).and(ReturnHeader).end(http),\n conditionalDelete: DELETE.and(resourceTypePath).and(query.$SearchParams).and(ReturnHeader).end(http),\n nextPage: GET.and(bundle.$$BundleLinkUrl(\"next\")).end(http),\n // For previous page, bundle.link.relation can either have 'previous' or 'prev' values\n prevPage: GET.and(bundle.$$BundleLinkUrl(\"previous\")).and(bundle.$$BundleLinkUrl(\"prev\")).end(http),\n getBundleByUrl: GET.and(Path(\":url\")).end(http),\n resolve: GET.and(refs.resolve).end(http),\n patch: PATCH.and(resourcePath).and($$Header('Content-Type', 'application/json-patch+json')).end(http)\n }, adapter);\n };\n module.exports = fhir;\n}).call(this);\n","(function() {\n var mw = require('./core');\n\n var btoa = require('Base64').btoa;\n\n exports.$Basic = mw.$$Attr('headers.Authorization', function(args){\n if(args.auth && args.auth.user && args.auth.pass){\n return \"Basic \" + btoa(args.auth.user + \":\" + args.auth.pass);\n }\n });\n\n exports.$Bearer = mw.$$Attr('headers.Authorization', function(args){\n if(args.auth && args.auth.bearer){\n return \"Bearer \" + args.auth.bearer;\n }\n });\n\n var credentials;\n // this first middleware sets the credentials attribute to empty, so\n // adapters cannot use it directly, thus enforcing a valid value to be parsed in.\n exports.$Credentials = mw.Middleware(mw.$$Attr('credentials', function(args){\n // Assign value for later checking\n credentials = args.credentials\n\n // Needs to return non-null and not-undefined\n // in order for value to be (un)set\n return '';\n })).and(mw.$$Attr('credentials', function(args){\n // check credentials for valid options, valid for fetch\n if(['same-origin', 'include'].indexOf(credentials) > -1 ){\n return credentials;\n }\n }));\n\n}).call(this);\n","exports.$$BundleLinkUrl = function(rel){\n return function(h) {\n return function(args){\n var matched = function(x){return x.relation && x.relation === rel;};\n var res = args.bundle && (args.bundle.link || []).filter(matched)[0];\n if(res && res.url){\n args.url = res.url;\n args.data = null;\n }\n return h(args);\n };\n };\n};\n","(function() {\n var copyAttr = function(from, to, attr){\n var v = from[attr];\n if(v && !to[attr]) {to[attr] = v;}\n return from;\n };\n\n module.exports = function(cfg, adapter){\n return function(h){\n return function(args){\n copyAttr(cfg, args, 'baseUrl');\n copyAttr(cfg, args, 'cache');\n copyAttr(cfg, args, 'auth');\n copyAttr(cfg, args, 'patient');\n copyAttr(cfg, args, 'debug');\n copyAttr(cfg, args, 'credentials');\n copyAttr(cfg, args, 'headers');\n copyAttr(cfg, args, 'agentOptions');\n copyAttr(adapter, args, 'defer');\n copyAttr(adapter, args, 'http');\n return h(args);\n };\n };\n };\n}).call(this);\n","(function() {\n var utils = require(\"../utils\");\n\n var id = function(x){return x;};\n var constantly = function(x){return function(){return x;};};\n\n var mwComposition = function(mw1, mw2){\n return function(h){ return mw1(mw2(h)); };\n };\n\n var Middleware = function(mw){\n mw.and = function(nmw){\n return Middleware(mwComposition(mw, nmw));\n };\n mw.end = function(h){\n return mw(h);\n };\n return mw;\n };\n\n // generate wm from function\n exports.$$Simple = function(f){\n return function(h){\n return function(args){\n return h(f(args));\n };\n };\n };\n\n var setAttr = function(args, attr, value){\n var path = attr.split('.');\n var obj = args;\n for(var i = 0; i < (path.length - 1); i++){\n var k = path[i];\n obj = args[k];\n if(!obj){\n obj = {};\n args[k] = obj;\n }\n }\n obj[path[path.length - 1]] = value;\n return args;\n };\n\n // generate wm from function\n exports.$$Attr = function(attr, fn){\n return Middleware(function(h){\n return function(args) {\n var value = null;\n if(utils.type(fn) == 'function'){\n value = fn(args);\n } else {\n value = fn;\n }\n if(value == null && value == undefined){\n return h(args);\n }else {\n return h(setAttr(args, attr, value));\n }\n };\n });\n };\n\n var Attribute = function(attr, fn){\n return Middleware(function(h){\n return function(args) {\n args[attr] = fn(args);\n return h(args);\n };\n });\n };\n\n var Method = function(method){\n return Attribute('method', constantly(method));\n };\n\n exports.Middleware = Middleware;\n exports.Attribute = Attribute;\n exports.Method = Method;\n\n}).call(this);\n","module.exports = function(h){\n return function(args){\n try{\n return h(args);\n }catch(e){\n if(args.debug){\n console.log(\"\\nDEBUG: (ERROR in middleware)\");\n console.log(e.message);\n console.log(e.stack);\n }\n if(!args.defer) {\n console.log(\"\\nDEBUG: (ERROR in middleware)\");\n console.log(e.message);\n console.log(e.stack);\n throw new Error(\"I need adapter.defer\");\n }\n var deff = args.defer();\n deff.reject(e);\n return deff.promise;\n }\n };\n};\n","(function() {\n var utils = require(\"../utils\");\n\n exports.Http = function(cfg, adapter){\n return function(args){\n if(args.debug){\n console.log(\"\\nDEBUG (request):\", args.method, args.url, args);\n }\n var promise = (args.http || adapter.http || cfg.http)(args);\n if (args.debug && promise && promise.then){\n promise.then(function(x){ console.log(\"\\nDEBUG: (responce)\", x);});\n }\n return promise;\n };\n };\n\n var toJson = function(x){\n return (utils.type(x) == 'object' || utils.type(x) == 'array') ? JSON.stringify(x) : x;\n };\n\n exports.$JsonData = function(h){\n return function(args){\n var data = args.bundle || args.data || args.resource;\n if(data){\n args.data = toJson(data);\n }\n return h(args);\n };\n };\n\n}).call(this);\n","(function() {\n var mw = require('./core');\n\n // List of resources with 'patient' or 'subject' properties (as of FHIR DSTU2 1.0.0)\n var targets = [\n \"Account\",\n \"AllergyIntolerance\",\n \"BodySite\",\n \"CarePlan\",\n \"Claim\",\n \"ClinicalImpression\",\n \"Communication\",\n \"CommunicationRequest\",\n \"Composition\",\n \"Condition\",\n \"Contract\",\n \"DetectedIssue\",\n \"Device\",\n \"DeviceUseRequest\",\n \"DeviceUseStatement\",\n \"DiagnosticOrder\",\n \"DiagnosticReport\",\n \"DocumentManifest\",\n \"DocumentReference\",\n \"Encounter\",\n \"EnrollmentRequest\",\n \"EpisodeOfCare\",\n \"FamilyMemberHistory\",\n \"Flag\",\n \"Goal\",\n \"ImagingObjectSelection\",\n \"ImagingStudy\",\n \"Immunization\",\n \"ImmunizationRecommendation\",\n \"List\",\n \"Media\",\n \"MedicationAdministration\",\n \"MedicationDispense\",\n \"MedicationOrder\",\n \"MedicationStatement\",\n \"NutritionOrder\",\n \"Observation\",\n \"Order\",\n \"Procedure\",\n \"ProcedureRequest\",\n \"QuestionnaireResponse\",\n \"ReferralRequest\",\n \"RelatedPerson\",\n \"RiskAssessment\",\n \"Specimen\",\n \"SupplyDelivery\",\n \"SupplyRequest\",\n \"VisionPrescription\"\n ];\n\n exports.$WithPatient = mw.$$Simple(function(args){\n var type = args.type;\n if (args.patient) {\n if (type === \"Patient\") {\n args.query = args.query || {};\n args.query[\"_id\"] = args.patient;\n args[\"id\"] = args.patient;\n } else if (targets.indexOf(type) >= 0){\n args.query = args.query || {};\n args.query[\"patient\"] = args.patient;\n }\n }\n return args;\n });\n}).call(this);\n","(function() {\n var utils = require('../utils');\n\n var CONTAINED = /^#(.*)/;\n var resolveContained = function(ref, resource) {\n var cid = ref.match(CONTAINED)[1];\n var ret = (resource.contained || []).filter(function(r){\n return (r.id || r._id) == cid;\n })[0];\n return (ret && {content: ret}) || null;\n };\n\n var sync = function(arg) {\n var cache = arg.cache;\n var reference = arg.reference;\n var bundle = arg.bundle;\n var ref = reference;\n if (!ref.reference) {return null;}\n if (ref.reference.match(CONTAINED)) {return resolveContained(ref.reference, arg.resource);}\n var abs = utils.absoluteUrl(arg.baseUrl, ref.reference);\n var bundled = ((bundle && bundle.entry) || []).filter( function(e){\n return e.id === abs;\n })[0];\n return bundled || (cache != null ? cache[abs] : void 0) || null;\n };\n\n var resolve = function(h){\n return function(args) {\n var cacheMatched = sync(args);\n var ref = args.reference;\n var def = args.defer();\n if (cacheMatched) {\n if(!args.defer){ throw new Error(\"I need promise constructor 'adapter.defer' in adapter\"); }\n def.resolve(cacheMatched);\n return def.promise;\n }\n if (!ref) {\n throw new Error(\"No reference found\");\n }\n if (ref && ref.reference.match(CONTAINED)) {\n throw new Error(\"Contained resource not found\");\n }\n args.url = utils.absoluteUrl(args.baseUrl, ref.reference);\n args.data = null;\n return h(args);\n };\n };\n\n module.exports.sync = sync;\n module.exports.resolve = resolve;\n\n}).call(this);\n","(function() {\n var utils = require('../utils');\n\n var type = utils.type;\n\n var assertArray = utils.assertArray;\n\n var assertObject = utils.assertObject;\n\n var reduceMap = utils.reduceMap;\n\n var identity = utils.identity;\n\n var OPERATORS = {\n $gt: 'gt',\n $lt: 'lt',\n $lte: 'lte',\n $gte: 'gte',\n $ge: 'ge',\n $le: 'le'\n };\n\n var MODIFIERS = {\n $asc: ':asc',\n $desc: ':desc',\n $exact: ':exact',\n $missing: ':missing',\n $null: ':missing',\n $text: ':text'\n };\n\n var isOperator = function(v) {\n return v.indexOf('$') === 0;\n };\n\n var expandParam = function(k, v) {\n return reduceMap(v, function(acc, arg) {\n var kk, o, res, vv;\n kk = arg[0], vv = arg[1];\n return acc.concat(kk === '$and' ? assertArray(vv).reduce((function(a, vvv) {\n return a.concat(linearizeOne(k, vvv));\n }), []) : kk === '$type' ? [] : isOperator(kk) ? (o = {\n param: k\n }, kk === '$or' ? o.value = vv : (OPERATORS[kk] ? o.operator = OPERATORS[kk] : void 0, MODIFIERS[kk] ? o.modifier = MODIFIERS[kk] : void 0, type(vv) === 'object' && vv.$or ? o.value = vv.$or : o.value = [vv]), [o]) : (v.$type ? res = \":\" + v.$type : void 0, linearizeOne(\"\" + k + (res || '') + \".\" + kk, vv)));\n });\n };\n\n var handleSort = function(xs) {\n var i, len, results, x;\n assertArray(xs);\n results = [];\n for (i = 0, len = xs.length; i < len; i++) {\n x = xs[i];\n switch (type(x)) {\n case 'array':\n results.push({\n param: '_sort',\n value: x[0],\n modifier: \":\" + x[1]\n });\n break;\n case 'string':\n results.push({\n param: '_sort',\n value: x\n });\n break;\n default:\n results.push(void 0);\n }\n }\n return results;\n };\n\n var handleInclude = function(includes, key) {\n return reduceMap(includes, function(acc, arg) {\n var k, v;\n k = arg[0], v = arg[1];\n return acc.concat((function() {\n switch (type(v)) {\n case 'array':\n return v.map(function(x) {\n return {\n param: key === '$include' ? '_include' : '_revinclude',\n value: k + \":\" + x\n };\n });\n case 'string':\n return [\n {\n param: key === '$include' ? '_include' : '_revinclude',\n value: k + \":\" + v\n }\n ];\n }\n })());\n });\n };\n var handleHas = function(includes, key) {\n return reduceMap(includes, function(acc, arg) {\n var k, v;\n k = arg[0], v = arg[1];\n return acc.concat((function() {\n switch (type(v)) {\n case 'array':\n return v.map(function(x) {\n return {\n param: '_has',\n value: k + \"=\" + x\n };\n });\n case 'string':\n return [\n {\n param: '_has',\n value: k + \"=\" + v\n }\n ];\n }\n })());\n });\n };\n var linearizeOne = function(k, v) {\n if (k === '$sort') {\n return handleSort(v);\n } else if (k === '$has') {\n return handleHas(v, k);\n } else if (k === '$include' || k === '$revInclude') {\n return handleInclude(v, k);\n } else {\n switch (type(v)) {\n case 'object':\n return expandParam(k, v);\n case 'string':\n return [\n {\n param: k,\n value: [v]\n }\n ];\n case 'number':\n return [\n {\n param: k,\n value: [v]\n }\n ];\n case 'array':\n return [\n {\n param: k,\n value: [v.join(\"|\")]\n }\n ];\n default:\n throw \"could not linearizeParams \" + (type(v));\n }\n }\n };\n\n var linearizeParams = function(query) {\n return reduceMap(query, function(acc, arg) {\n var k, v;\n k = arg[0], v = arg[1];\n return acc.concat(linearizeOne(k, v));\n });\n };\n\n var buildSearchParams = function(query) {\n var p, ps, value;\n var excludeEncode = ['_include', '_revinclude', '_has']\n ps = (function() {\n var i, len, ref, results;\n ref = linearizeParams(query);\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n p = ref[i];\n if (excludeEncode.indexOf(p.param) === -1)\n value = encodeURIComponent(p.value);\n else\n value = p.value\n results.push([p.param, p.modifier, (p.param == '_has') ? ':' : '=', p.operator, value].filter(identity).join(''));\n }\n return results;\n })();\n return ps.join(\"&\");\n };\n\n exports._query = linearizeParams;\n\n exports.query = buildSearchParams;\n\n var mw = require('./core');\n\n exports.$SearchParams = mw.$$Attr('url', function(args){\n var url = args.url;\n if(args.query){\n var queryStr = buildSearchParams(args.query);\n return url + \"?\" + queryStr;\n }\n return url;\n });\n\n\n exports.$Paging = function(h){\n return function(args){\n var params = args.params || {};\n if(args.since){params._since = args.since;}\n if(args.count){params._count = args.count;}\n args.params = params;\n return h(args);\n };\n };\n\n\n}).call(this);\n","(function() {\n var utils = require(\"../utils\");\n var core = require(\"./core\");\n\n var id = function(x){return x;};\n var constantly = function(x){return function(){return x;};};\n\n var get_in = function(obj, path){\n return path.split('.').reduce(function(acc,x){\n if(x === 'versionId' && acc[x]){ return '_history/'+ acc[x] }\n if(acc == null || acc == undefined) { return null; }\n return acc[x];\n }, obj);\n };\n\n var evalPropsExpr = function(exp, args){\n var exps = exp.split('||').map(function(x){return x.trim().substring(1);});\n for(var i = 0; i < exps.length; i++){\n var res = get_in(args, exps[i]);\n if(res){ return res; }\n }\n return null;\n };\n\n var evalExpr = function(exp, args){\n if (exp.indexOf(\":\") == 0){\n return evalPropsExpr(exp, args);\n } else {\n return exp;\n }\n };\n\n var buildPathPart = function(pth, args){\n var k = evalExpr(pth.trim(), args);\n if((k==null || k === undefined) && pth.includes('target.versionId') == false){ throw new Error(\"Parameter \"+pth+\" is required: \" + JSON.stringify(args)); }\n return k;\n };\n\n // path chaining function\n // which return haldler wrapper: (h, cfg)->(args -> promise)\n // it's chainable Path(\"baseUrl\").slash(\":type\").slash(\":id\").slash(\"_history\")(id, {})({id: 5, type: 'Patient'})\n // and composable p0 = Path(\"baseUrl); p1 = p0.slash(\"path)\n var Path = function(tkn, chain){\n //Chainable\n var new_chain = function(args){\n if(chain && tkn.includes('target.versionId') && !args.target.versionId){\n return chain(args);\n }\n return ((chain && (chain(args) + \"/\")) || \"\") + buildPathPart(tkn, args);\n };\n var ch = core.Attribute('url', new_chain);\n ch.slash = function(tkn){\n return Path(tkn, new_chain);\n };\n return ch;\n };\n\n exports.Path = Path;\n}).call(this);\n","(function() {\n var merge = require('merge');\n\n var RTRIM = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n var trim = function(text) {\n return text ? text.toString().replace(RTRIM, \"\") : \"\";\n };\n\n exports.trim = trim;\n\n var addKey = function(acc, str) {\n var pair, val;\n if (!str) {\n return null;\n }\n pair = str.split(\"=\").map(trim);\n val = pair[1].replace(/(^\"|\"$)/g, '');\n if (val) {\n acc[pair[0]] = val;\n }\n return acc;\n };\n\n var type = function(obj) {\n var classToType;\n if (obj == null && obj === undefined) {\n return String(obj);\n }\n classToType = {\n '[object Boolean]': 'boolean',\n '[object Number]': 'number',\n '[object String]': 'string',\n '[object Function]': 'function',\n '[object Array]': 'array',\n '[object Date]': 'date',\n '[object RegExp]': 'regexp',\n '[object Object]': 'object'\n };\n return classToType[Object.prototype.toString.call(obj)];\n };\n\n exports.type = type;\n\n var assertArray = function(a) {\n if (type(a) !== 'array') {\n throw 'not array';\n }\n return a;\n };\n\n exports.assertArray = assertArray;\n\n var assertObject = function(a) {\n if (type(a) !== 'object') {\n throw 'not object';\n }\n return a;\n };\n\n exports.assertObject = assertObject;\n\n var reduceMap = function(m, fn, acc) {\n var k, v;\n acc || (acc = []);\n assertObject(m);\n return ((function() {\n var results;\n results = [];\n for (k in m) {\n v = m[k];\n results.push([k, v]);\n }\n return results;\n })()).reduce(fn, acc);\n };\n\n exports.reduceMap = reduceMap;\n\n var identity = function(x) {return x;};\n\n exports.identity = identity;\n\n var argsArray = function() {\n return Array.prototype.slice.call(arguments)\n };\n\n exports.argsArray = argsArray;\n\n var mergeLists = function() {\n var reduce;\n reduce = function(merged, nextMap) {\n var k, ret, v;\n ret = merge(true, merged);\n for (k in nextMap) {\n v = nextMap[k];\n ret[k] = (ret[k] || []).concat(v);\n }\n return ret;\n };\n return argsArray.apply(null, arguments).reduce(reduce, {});\n };\n\n exports.mergeLists = mergeLists;\n\n var absoluteUrl = function(baseUrl, ref) {\n if (!ref.match(/https?:\\/\\/./)) {\n return baseUrl + \"/\" + ref;\n } else {\n return ref;\n }\n };\n\n exports.absoluteUrl = absoluteUrl;\n\n var relativeUrl = function(baseUrl, ref) {\n if (ref.slice(ref, baseUrl.length + 1) === baseUrl + \"/\") {\n return ref.slice(baseUrl.length + 1);\n } else {\n return ref;\n }\n };\n\n exports.relativeUrl = relativeUrl;\n\n exports.resourceIdToUrl = function(id, baseUrl, type) {\n baseUrl = baseUrl.replace(/\\/$/, '');\n id = id.replace(/^\\//, '');\n if (id.indexOf('/') < 0) {\n return baseUrl + \"/\" + type + \"/\" + id;\n } else if (id.indexOf(baseUrl) !== 0) {\n return baseUrl + \"/\" + id;\n } else {\n return id;\n }\n };\n\n var walk = function(inner, outer, data, context) {\n var keysToMap, remapped;\n switch (type(data)) {\n case 'array':\n return outer(data.map(function(item) {\n return inner(item, [data, context]);\n }), context);\n case 'object':\n keysToMap = function(acc, arg) {\n var k, v;\n k = arg[0], v = arg[1];\n acc[k] = inner(v, [data].concat(context));\n return acc;\n };\n remapped = reduceMap(data, keysToMap, {});\n return outer(remapped, context);\n default:\n return outer(data, context);\n }\n };\n\n exports.walk = walk;\n\n var postwalk = function(f, data, context) {\n if (!data) {\n return function(data, context) {\n return postwalk(f, data, context);\n };\n } else {\n return walk(postwalk(f), f, data, context);\n }\n };\n\n exports.postwalk = postwalk;\n\n}).call(this);\n","/*!\r\n * @name JavaScript/NodeJS Merge v1.2.1\r\n * @author yeikos\r\n * @repository https://github.com/yeikos/js.merge\r\n\r\n * Copyright 2014 yeikos - MIT license\r\n * https://raw.github.com/yeikos/js.merge/master/LICENSE\r\n */\r\n\r\n;(function(isNode) {\r\n\r\n\t/**\r\n\t * Merge one or more objects \r\n\t * @param bool? clone\r\n\t * @param mixed,... arguments\r\n\t * @return object\r\n\t */\r\n\r\n\tvar Public = function(clone) {\r\n\r\n\t\treturn merge(clone === true, false, arguments);\r\n\r\n\t}, publicName = 'merge';\r\n\r\n\t/**\r\n\t * Merge two or more objects recursively \r\n\t * @param bool? clone\r\n\t * @param mixed,... arguments\r\n\t * @return object\r\n\t */\r\n\r\n\tPublic.recursive = function(clone) {\r\n\r\n\t\treturn merge(clone === true, true, arguments);\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Clone the input removing any reference\r\n\t * @param mixed input\r\n\t * @return mixed\r\n\t */\r\n\r\n\tPublic.clone = function(input) {\r\n\r\n\t\tvar output = input,\r\n\t\t\ttype = typeOf(input),\r\n\t\t\tindex, size;\r\n\r\n\t\tif (type === 'array') {\r\n\r\n\t\t\toutput = [];\r\n\t\t\tsize = input.length;\r\n\r\n\t\t\tfor (index=0;index<size;++index)\r\n\r\n\t\t\t\toutput[index] = Public.clone(input[index]);\r\n\r\n\t\t} else if (type === 'object') {\r\n\r\n\t\t\toutput = {};\r\n\r\n\t\t\tfor (index in input)\r\n\r\n\t\t\t\toutput[index] = Public.clone(input[index]);\r\n\r\n\t\t}\r\n\r\n\t\treturn output;\r\n\r\n\t};\r\n\r\n\t/**\r\n\t * Merge two objects recursively\r\n\t * @param mixed input\r\n\t * @param mixed extend\r\n\t * @return mixed\r\n\t */\r\n\r\n\tfunction merge_recursive(base, extend) {\r\n\r\n\t\tif (typeOf(base) !== 'object')\r\n\r\n\t\t\treturn extend;\r\n\r\n\t\tfor (var key in extend) {\r\n\r\n\t\t\tif (typeOf(base[key]) === 'object' && typeOf(extend[key]) === 'object') {\r\n\r\n\t\t\t\tbase[key] = merge_recursive(base[key], extend[key]);\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tbase[key] = extend[key];\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn base;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Merge two or more objects\r\n\t * @param bool clone\r\n\t * @param bool recursive\r\n\t * @param array argv\r\n\t * @return object\r\n\t */\r\n\r\n\tfunction merge(clone, recursive, argv) {\r\n\r\n\t\tvar result = argv[0],\r\n\t\t\tsize = argv.length;\r\n\r\n\t\tif (clone || typeOf(result) !== 'object')\r\n\r\n\t\t\tresult = {};\r\n\r\n\t\tfor (var index=0;index<size;++index) {\r\n\r\n\t\t\tvar item = argv[index],\r\n\r\n\t\t\t\ttype = typeOf(item);\r\n\r\n\t\t\tif (type !== 'object') continue;\r\n\r\n\t\t\tfor (var key in item) {\r\n\r\n\t\t\t\tif (key === '__proto__') continue;\r\n\r\n\t\t\t\tvar sitem = clone ? Public.clone(item[key]) : item[key];\r\n\r\n\t\t\t\tif (recursive) {\r\n\r\n\t\t\t\t\tresult[key] = merge_recursive(result[key], sitem);\r\n\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tresult[key] = sitem;\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * Get type of variable\r\n\t * @param mixed input\r\n\t * @return string\r\n\t *\r\n\t * @see http://jsperf.com/typeofvar\r\n\t */\r\n\r\n\tfunction typeOf(input) {\r\n\r\n\t\treturn ({}).toString.call(input).slice(8, -1).toLowerCase();\r\n\r\n\t}\r\n\r\n\tif (isNode) {\r\n\r\n\t\tmodule.exports = Public;\r\n\r\n\t} else {\r\n\r\n\t\twindow[publicName] = Public;\r\n\r\n\t}\r\n\r\n})(typeof module === 'object' && module && typeof module.exports === 'object' && module.exports);","const resolveDirectory = require(\"../public-path\").resolveDirectory;\n\nexports.autoPublicPath = function autoPublicPath(rootDirLevel) {\n if (!rootDirLevel) {\n rootDirLevel = 1;\n }\n\n if (typeof __webpack_public_path__ !== \"undefined\") {\n if (typeof __system_context__ === \"undefined\") {\n throw Error(\n \"systemjs-webpack-interop requires webpack@>=5.0.0-beta.15 and output.libraryTarget set to 'system'\"\n );\n }\n\n if (!__system_context__.meta || !__system_context__.meta.url) {\n console.error(\"__system_context__\", __system_context__);\n throw Error(\n \"systemjs-webpack-interop was provided an unknown SystemJS context. Expected context.meta.url, but none was provided\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(\n __system_context__.meta.url,\n rootDirLevel\n );\n }\n};\n","exports.setPublicPath = function setPublicPath(\n systemjsModuleName,\n rootDirectoryLevel\n) {\n if (!rootDirectoryLevel) {\n rootDirectoryLevel = 1;\n }\n if (\n typeof systemjsModuleName !== \"string\" ||\n systemjsModuleName.trim().length === 0\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'\"\n );\n }\n\n if (\n typeof rootDirectoryLevel !== \"number\" ||\n rootDirectoryLevel <= 0 ||\n isNaN(rootDirectoryLevel) ||\n !isInteger(rootDirectoryLevel)\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'\"\n );\n }\n\n var moduleUrl;\n try {\n moduleUrl = window.System.resolve(systemjsModuleName);\n if (!moduleUrl) {\n throw Error();\n }\n } catch (err) {\n throw Error(\n \"systemjs-webpack-interop: There is no such module '\" +\n systemjsModuleName +\n \"' in the SystemJS registry. Did you misspell the name of your module?\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(moduleUrl, rootDirectoryLevel);\n};\n\nfunction resolveDirectory(urlString, rootDirectoryLevel) {\n // Our friend IE11 doesn't support new URL()\n // https://github.com/single-spa/single-spa/issues/612\n // https://gist.github.com/jlong/2428561\n\n var a = document.createElement(\"a\");\n a.href = urlString;\n\n var pathname = a.pathname[0] === \"/\" ? a.pathname : \"/\" + a.pathname;\n var numDirsProcessed = 0,\n index = pathname.length;\n while (numDirsProcessed !== rootDirectoryLevel && index >= 0) {\n var char = pathname[--index];\n if (char === \"/\") {\n numDirsProcessed++;\n }\n }\n\n if (numDirsProcessed !== rootDirectoryLevel) {\n throw Error(\n \"systemjs-webpack-interop: rootDirectoryLevel (\" +\n rootDirectoryLevel +\n \") is greater than the number of directories (\" +\n numDirsProcessed +\n \") in the URL path \" +\n urlString\n );\n }\n\n var finalPath = pathname.slice(0, index + 1);\n\n return a.protocol + \"//\" + a.host + finalPath;\n}\n\nexports.resolveDirectory = resolveDirectory;\n\n// borrowed from https://github.com/parshap/js-is-integer/blob/master/index.js\nvar isInteger =\n Number.isInteger ||\n function isInteger(val) {\n return typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n };\n","module.exports = __WEBPACK_EXTERNAL_MODULE__824__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","const autoPublicPath = require(\"./auto-public-path\").autoPublicPath;\n\nautoPublicPath(1);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = /*@__PURE__*/ new Error();\n /*@__PURE__*/ console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n /*@__PURE__*/ console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function hostReportError(err) {\n setTimeout(function () { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map\n","/** PURE_IMPORTS_START _config,_util_hostReportError PURE_IMPORTS_END */\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArray = /*@__PURE__*/ (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar UnsubscriptionErrorImpl = /*@__PURE__*/ (function () {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map\n","/** PURE_IMPORTS_START _util_isArray,_util_isObject,_util_isFunction,_util_UnsubscriptionError PURE_IMPORTS_END */\nimport { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = /*@__PURE__*/ (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._ctorUnsubscribe = true;\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _ctorUnsubscribe = _a._ctorUnsubscribe, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n if (_ctorUnsubscribe) {\n this._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var rxSubscriber = /*@__PURE__*/ (function () {\n return typeof Symbol === 'function'\n ? /*@__PURE__*/ Symbol('rxSubscriber')\n : '@@rxSubscriber_' + /*@__PURE__*/ Math.random();\n})();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map\n","/** PURE_IMPORTS_START tslib,_util_isFunction,_Observer,_Subscription,_internal_symbol_rxSubscriber,_config,_util_hostReportError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var observable = /*@__PURE__*/ (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })();\n//# sourceMappingURL=observable.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map\n","/** PURE_IMPORTS_START _identity PURE_IMPORTS_END */\nimport { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map\n","/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = /*@__PURE__*/ (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map\n","/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map\n","/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */\nimport { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import { Observable } from \"rxjs\";\nimport isPlainObject from \"lodash-es/isPlainObject\";\nimport { getConfig, navigate } from \"@openmrs/esm-config\";\nimport { FetchResponse } from \"./types\";\n\nexport const sessionEndpoint = \"/ws/rest/v1/session\";\n\nexport function makeUrl(path: string) {\n return window.openmrsBase + path;\n}\n\n/**\n * The openmrsFetch function is a wrapper around the\n * [browser's built-in fetch function](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch),\n * with extra handling for OpenMRS-specific API behaviors, such as\n * request headers, authentication, authorization, and the API urls.\n *\n * @param path A string url to make the request to. Note that the\n * openmrs base url (by default `/openmrs`) will be automatically\n * prepended to the URL, so there is no need to include it.\n * @param fetchInit A [fetch init object](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Syntax).\n * Note that the `body` property does not need to be `JSON.stringify()`ed\n * because openmrsFetch will do that for you.\n * @returns A [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)\n * that resolves with a [Response object](https://developer.mozilla.org/en-US/docs/Web/API/Response).\n * Note that the openmrs version of the Response object has already\n * downloaded the HTTP response body as json, and has an additional\n * `data` property with the HTTP response json as a javascript object.\n *\n * #### Example\n * ```js\n * import { openmrsFetch } from '@openmrs/esm-api'\n * const abortController = new AbortController();\n * openmrsFetch('/ws/rest/v1/session', {signal: abortController.signal})\n * .then(response => {\n * console.log(response.data.authenticated)\n * })\n * .catch(err => {\n * console.error(err.status);\n * })\n * abortController.abort();\n * openmrsFetch('/ws/rest/v1/session', {\n * method: 'POST',\n * body: {\n * username: 'hi',\n * password: 'there',\n * }\n * })\n * ```\n *\n * #### Cancellation\n *\n * To cancel a network request, use an\n * [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController/abort).\n * It is best practice to cancel your network requests when the user\n * navigates away from a page while the request is pending request, to\n * free up memory and network resources and to prevent race conditions.\n *\n * @category API\n */\nexport function openmrsFetch<T = any>(\n path: string,\n fetchInit: FetchConfig = {}\n): Promise<FetchResponse<T>> {\n if (typeof path !== \"string\") {\n throw Error(\n \"The first argument to @openmrs/api's openmrsFetch function must be a url string\"\n );\n }\n\n if (typeof fetchInit !== \"object\") {\n throw Error(\n \"The second argument to @openmrs/api's openmrsFetch function must be a plain object.\"\n );\n }\n\n // @ts-ignore\n if (!window.openmrsBase) {\n throw Error(\n \"@openmrs/api is running in a browser that doesn't have window.openmrsBase, which is provided by openmrs-module-spa's HTML file.\"\n );\n }\n\n // Prefix the url with the openmrs spa base\n // @ts-ignore\n const url = makeUrl(path);\n\n // We're going to need some headers\n if (!fetchInit.headers) {\n fetchInit.headers = {};\n }\n\n /* Automatically stringify javascript objects being sent in the\n * request body.\n */\n if (isPlainObject(fetchInit.body)) {\n fetchInit.body = JSON.stringify(fetchInit.body);\n }\n\n /* Add a request header to tell the server to respond with json,\n * since frontend code almost always wants json and the OpenMRS\n * server won't give you json unless you explicitly ask for it.\n * If a different Accept header is preferred, pass it into the fetchInit.\n * If no Accept header is desired, pass it in explicitly as null.\n */\n if (typeof fetchInit.headers.Accept === \"undefined\") {\n fetchInit.headers.Accept = \"application/json\";\n }\n\n if (fetchInit.headers.Accept === null) {\n delete fetchInit.headers.Accept;\n }\n\n /* We capture the stacktrace before making the request, so that if an error occurs we can\n * log a full stacktrace that includes the code that made the request and handled the response\n * Otherwise, we could run into situations where the stacktrace doesn't even show which code\n * called @openmrs/api.\n */\n const requestStacktrace = Error();\n\n return window.fetch(url, fetchInit as RequestInit).then(async (r) => {\n const response = r as FetchResponse<T>;\n if (response.ok) {\n if (response.status === 204) {\n /* HTTP 204 - No Content\n * We should not try to download the empty response as json. Instead,\n * we return null since there is no response body.\n */\n response.data = null as unknown as T;\n return response;\n } else {\n // HTTP 200s - The request succeeded\n return response.text().then((responseText) => {\n try {\n if (responseText) {\n response.data = JSON.parse(responseText);\n }\n } catch (err) {\n // Server didn't respond with json\n }\n return response;\n });\n }\n } else {\n /* HTTP response status is not in 200s. Usually this will mean\n * either HTTP 400s (bad request from browser) or HTTP 500s (server error)\n * Our goal is to come up with best possible stacktrace and error message\n * to help developers understand the problem and debug\n */\n\n /*\n *Redirect to given url when redirect on auth failure is enabled\n */\n const { redirectAuthFailure } = await getConfig(\"@openmrs/esm-api\");\n\n if (\n (url === makeUrl(sessionEndpoint) && response.status === 403) ||\n (redirectAuthFailure.enabled &&\n redirectAuthFailure.errors.includes(response.status))\n ) {\n navigate({ to: redirectAuthFailure.url });\n\n /* We sometimes don't really want this promise to resolve since there's no response data,\n * nor do we want it to reject because that would trigger error handling. We instead\n * want it to remain in pending status while the navigation occurs.\n */\n return redirectAuthFailure.resolvePromise\n ? (Promise.resolve() as unknown as Promise<FetchResponse>)\n : new Promise<FetchResponse>(() => {});\n } else {\n // Attempt to download a response body, if it has one\n return response.text().then(\n (responseText) => {\n let responseBody = responseText;\n try {\n responseBody = JSON.parse(responseText);\n } catch (err) {\n // Server didn't respond with json, so just go with the response text string\n }\n\n /* Make the fetch promise go into \"rejected\" status, with the best\n * possible stacktrace and error message.\n */\n throw new OpenmrsFetchError(\n url,\n response,\n responseBody,\n requestStacktrace\n );\n },\n (err) => {\n /* We weren't able to download a response body for this error.\n * Time to just give the best possible stacktrace and error message.\n */\n throw new OpenmrsFetchError(url, response, null, requestStacktrace);\n }\n );\n }\n }\n });\n}\n\n/**\n * The openmrsObservableFetch function is a wrapper around openmrsFetch\n * that returns an [Observable](https://rxjs-dev.firebaseapp.com/guide/observable)\n * instead of a promise. It exists in case using an Observable is\n * preferred or more convenient than a promise.\n *\n * @param url See [[openmrsFetch]]\n * @param fetchInit See [[openmrsFetch]]\n * @returns An Observable that produces exactly one Response object.\n * The response object is exactly the same as for [[openmrsFetch]].\n *\n * #### Example\n *\n * ```js\n * import { openmrsObservableFetch } from '@openmrs/esm-api'\n * const subscription = openmrsObservableFetch('/ws/rest/v1/session').subscribe(\n * response => console.log(response.data),\n * err => {throw err},\n * () => console.log('finished')\n * )\n * subscription.unsubscribe()\n * ```\n *\n * #### Cancellation\n *\n * To cancel the network request, simply call `subscription.unsubscribe();`\n *\n * @category API\n */\nexport function openmrsObservableFetch<T>(\n url: string,\n fetchInit: FetchConfig = {}\n) {\n if (typeof fetchInit !== \"object\") {\n throw Error(\n \"The second argument to openmrsObservableFetch must be either omitted or an object\"\n );\n }\n\n const abortController = new AbortController();\n\n fetchInit.signal = abortController.signal;\n\n return new Observable<FetchResponse<T>>((observer) => {\n let hasResponse = false;\n\n openmrsFetch(url, fetchInit).then(\n (response) => {\n hasResponse = true;\n observer.next(response);\n observer.complete();\n },\n (err) => {\n hasResponse = true;\n observer.error(err);\n }\n );\n\n return () => {\n if (!hasResponse) {\n abortController.abort();\n }\n };\n });\n}\n\nexport class OpenmrsFetchError extends Error {\n constructor(\n url: string,\n response: Response,\n responseBody: ResponseBody | null,\n requestStacktrace: Error\n ) {\n super();\n this.message = `Server responded with ${response.status} (${response.statusText}) for url ${url}. Check err.responseBody or network tab in dev tools for more info`;\n requestStacktrace.message = this.message;\n this.responseBody = responseBody;\n this.response = response;\n this.stack = `Stacktrace for outgoing request:\\n${requestStacktrace.stack}\\nStacktrace for incoming response:\\n${this.stack}`;\n }\n response: Response;\n responseBody: string | FetchResponseJson | null;\n}\n\ninterface FetchConfig extends Omit<Omit<RequestInit, \"body\">, \"headers\"> {\n headers?: FetchHeaders;\n body?: FetchBody | string;\n}\n\ntype ResponseBody = string | FetchResponseJson;\n\nexport interface FetchHeaders {\n [key: string]: string | null;\n}\n\ninterface FetchBody {\n [key: string]: any;\n}\n\ninterface FetchResponseJson {\n [key: string]: any;\n}\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import { openmrsFetch, FetchHeaders, OpenmrsFetchError } from \"./openmrs-fetch\";\nimport type { FhirClient } from \"./types/fhir\";\n\nexport const fhirBaseUrl = `/ws/fhir2/R4`;\n\nconst makeFhir = require(\"fhir.js/src/fhir.js\");\nconst openmrsFhirAdapter = {\n http(requestObj: FHIRRequestObj) {\n return openmrsFetch(requestObj.url, {\n method: requestObj.method,\n headers: requestObj.headers,\n }).then(\n (response) => {\n return {\n status: response.status,\n headers: response.headers,\n data: response.data,\n config: requestObj,\n };\n },\n (err: OpenmrsFetchError) => {\n return {\n status: err.response.status,\n headers: err.response.headers,\n data: err.responseBody,\n config: requestObj,\n };\n }\n );\n },\n};\n\n/**\n * The `fhir` object is [an instance of fhir.js](https://github.com/FHIR/fhir.js)\n * that can be used to call FHIR-compliant OpenMRS APIs. See\n * [the docs for fhir.js](https://github.com/FHIR/fhir.js) for more info\n * and example usage.\n *\n * @category API\n */\nexport const fhir: FhirClient = makeFhir(\n { baseUrl: fhirBaseUrl },\n openmrsFhirAdapter\n);\n\nexport interface FHIRRequestObj {\n url: string;\n method: string;\n headers: FetchHeaders;\n}\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar ObjectUnsubscribedErrorImpl = /*@__PURE__*/ (function () {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map\n","/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map\n","/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map\n","/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map\n","var Scheduler = /*@__PURE__*/ (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map\n","/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */\nimport { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queueScheduler = /*@__PURE__*/ new QueueScheduler(QueueAction);\nexport var queue = queueScheduler;\n//# sourceMappingURL=queue.js.map\n","/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map\n","/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) {\n now = Scheduler.now;\n }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) {\n delay = 0;\n }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport var EMPTY = /*@__PURE__*/ new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var subscribeToArray = function (array) {\n return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n };\n};\n//# sourceMappingURL=subscribeToArray.js.map\n","/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */\nimport { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n/*@__PURE__*/ (function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nvar Notification = /*@__PURE__*/ (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map\n","/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map\n","/** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map\n","/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map\n","/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */\nimport { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n//# sourceMappingURL=of.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = /*@__PURE__*/ (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = /*@__PURE__*/ (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map\n","/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) {\n bufferSize = Number.POSITIVE_INFINITY;\n }\n if (windowTime === void 0) {\n windowTime = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n if (!this.isStopped) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n if (!this.isStopped) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = /*@__PURE__*/ (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = /*@__PURE__*/ (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = /*@__PURE__*/ getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map\n","/** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map\n","/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) {\n return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n };\n};\n//# sourceMappingURL=subscribeToObservable.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map\n","/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */\nimport { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) {\n return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToPromise.js.map\n","/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) {\n return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = void 0;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n };\n};\n//# sourceMappingURL=subscribeToIterable.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_util_subscribeTo PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nimport { Observable } from './Observable';\nimport { subscribeTo } from './util/subscribeTo';\nvar SimpleInnerSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SimpleInnerSubscriber, _super);\n function SimpleInnerSubscriber(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n return _this;\n }\n SimpleInnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(value);\n };\n SimpleInnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n };\n SimpleInnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete();\n this.unsubscribe();\n };\n return SimpleInnerSubscriber;\n}(Subscriber));\nexport { SimpleInnerSubscriber };\nvar ComplexInnerSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ComplexInnerSubscriber, _super);\n function ComplexInnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n return _this;\n }\n ComplexInnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this);\n };\n ComplexInnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error);\n this.unsubscribe();\n };\n ComplexInnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return ComplexInnerSubscriber;\n}(Subscriber));\nexport { ComplexInnerSubscriber };\nvar SimpleOuterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(SimpleOuterSubscriber, _super);\n function SimpleOuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SimpleOuterSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n SimpleOuterSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n SimpleOuterSubscriber.prototype.notifyComplete = function () {\n this.destination.complete();\n };\n return SimpleOuterSubscriber;\n}(Subscriber));\nexport { SimpleOuterSubscriber };\nvar ComplexOuterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(ComplexOuterSubscriber, _super);\n function ComplexOuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComplexOuterSubscriber.prototype.notifyNext = function (_outerValue, innerValue, _outerIndex, _innerSub) {\n this.destination.next(innerValue);\n };\n ComplexOuterSubscriber.prototype.notifyError = function (error) {\n this.destination.error(error);\n };\n ComplexOuterSubscriber.prototype.notifyComplete = function (_innerSub) {\n this.destination.complete();\n };\n return ComplexOuterSubscriber;\n}(Subscriber));\nexport { ComplexOuterSubscriber };\nexport function innerSubscribe(result, innerSubscriber) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n var subscription;\n try {\n subscription = subscribeTo(result)(innerSubscriber);\n }\n catch (error) {\n innerSubscriber.error(error);\n }\n return subscription;\n}\n//# sourceMappingURL=innerSubscribe.js.map\n","/** PURE_IMPORTS_START tslib,_map,_observable_from,_innerSubscribe PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = /*@__PURE__*/ (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish) {\n var innerSubscriber = new SimpleInnerSubscriber(this);\n var destination = this.destination;\n destination.add(innerSubscriber);\n var innerSubscription = innerSubscribe(ish, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (innerValue) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function () {\n var buffer = this.buffer;\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(SimpleOuterSubscriber));\nexport { MergeMapSubscriber };\nexport var flatMap = mergeMap;\n//# sourceMappingURL=mergeMap.js.map\n","/** PURE_IMPORTS_START _Observable,_util_subscribeTo,_scheduled_scheduled PURE_IMPORTS_END */\nimport { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nexport function noop() { }\n//# sourceMappingURL=noop.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = /*@__PURE__*/ (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = /*@__PURE__*/ (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map\n","import { Observable, ReplaySubject } from \"rxjs\";\nimport { filter, map, tap, mergeAll } from \"rxjs/operators\";\nimport { openmrsFetch, sessionEndpoint } from \"../openmrs-fetch\";\nimport {\n LoggedInUserData,\n LoggedInUser,\n CurrentUserWithResponseOption,\n UnauthenticatedUser,\n CurrentUserWithoutResponseOption,\n CurrentUserOptions,\n SessionLocation,\n} from \"../types\";\n\nconst userSubject = new ReplaySubject<Promise<LoggedInUserData>>(1);\nlet lastFetchTimeMillis = 0;\n\n/**\n * The getCurrentUser function returns an observable that produces\n * **zero or more values, over time**. It will produce zero values\n * by default if the user is not logged in. And it will provide a\n * first value when the logged in user is fetched from the server.\n * Subsequent values will be produced whenever the user object is\n * updated.\n *\n * @param options An object with `includeAuthStatus` boolean\n * property that defaults to `false`. When `includeAuthStatus` is set\n * to `true`, the entire response object from the API will be provided.\n * When `includeAuthStatus` is set to `false`, only the `user` property\n * of the response object will be provided.\n *\n * @returns An Observable that produces zero or more values (as\n * described above). The values produced will be a user object (if\n * `includeAuthStatus` is set to `false`) or an object with a session\n * and authenticated property (if `includeAuthStatus` is set to `true`).\n *\n * #### Example\n *\n * ```js\n * import { getCurrentUser } from '@openmrs/esm-api'\n * const subscription = getCurrentUser().subscribe(\n * user => console.log(user)\n * )\n * subscription.unsubscribe()\n * getCurrentUser({includeAuthStatus: true}).subscribe(\n * data => console.log(data.authenticated)\n * )\n * ```\n *\n * #### Be sure to unsubscribe when your component unmounts\n *\n * Otherwise your code will continue getting updates to the user object\n * even after the UI component is gone from the screen. This is a memory\n * leak and source of bugs.\n *\n * @category API Object\n */\nfunction getCurrentUser(): Observable<LoggedInUser>;\nfunction getCurrentUser(\n opts: CurrentUserWithResponseOption\n): Observable<UnauthenticatedUser>;\nfunction getCurrentUser(\n opts: CurrentUserWithoutResponseOption\n): Observable<LoggedInUser>;\nfunction getCurrentUser(\n opts: CurrentUserOptions = { includeAuthStatus: false }\n): Observable<LoggedInUser | UnauthenticatedUser> {\n if (lastFetchTimeMillis < Date.now() - 1000 * 60) {\n refetchCurrentUser();\n }\n\n return userSubject.asObservable().pipe(\n mergeAll(),\n tap(setUserLanguage),\n map((r) => (opts.includeAuthStatus ? r : r.user)),\n filter(Boolean)\n ) as Observable<LoggedInUser | UnauthenticatedUser>;\n}\n\nfunction setUserLanguage(data: LoggedInUserData) {\n if (data?.user?.userProperties?.defaultLocale) {\n const locale = data.user.userProperties.defaultLocale;\n const htmlLang = document.documentElement.getAttribute(\"lang\");\n\n if (locale !== htmlLang) {\n document.documentElement.setAttribute(\"lang\", locale);\n }\n }\n}\n\nfunction userHasPrivilege(requiredPrivilege: string, user: LoggedInUser) {\n return user.privileges.find((p) => requiredPrivilege === p.display);\n}\n\nfunction isSuperUser(user: LoggedInUser) {\n const superUserRole = \"System Developer\";\n return user.roles.find((role) => role.display === superUserRole);\n}\n\nexport { getCurrentUser };\n\n/**\n * The `refetchCurrentUser` function causes a network request to redownload\n * the user. All subscribers to the current user will be notified of the\n * new users once the new version of the user object is downloaded.\n *\n * @returns The same observable as returned by [[getCurrentUser]].\n *\n * #### Example\n * ```js\n * import { refetchCurrentUser } from '@openmrs/esm-api'\n * refetchCurrentUser()\n * ```\n *\n * @category API Object\n */\nexport function refetchCurrentUser() {\n lastFetchTimeMillis = Date.now();\n userSubject.next(\n openmrsFetch(sessionEndpoint)\n .then((res) =>\n typeof res.data === \"object\" ? res.data : Promise.reject()\n )\n .catch(() => ({\n sessionId: \"\",\n authenticated: false,\n }))\n );\n}\n\nexport function userHasAccess(requiredPrivilege: string, user: LoggedInUser) {\n return userHasPrivilege(requiredPrivilege, user) || isSuperUser(user);\n}\n\nexport function getLoggedInUser() {\n return new Promise<LoggedInUser>((res, rej) => {\n const sub = getCurrentUser().subscribe((user) => {\n res(user);\n sub.unsubscribe();\n }, rej);\n });\n}\n\nexport function getSessionLocation() {\n return new Promise<SessionLocation | undefined>((res, rej) => {\n const sub = getCurrentUser({ includeAuthStatus: true }).subscribe(\n (user) => {\n res(user.sessionLocation);\n sub.unsubscribe();\n },\n rej\n );\n });\n}\n\nexport async function setSessionLocation(\n locationUuid: string,\n abortController: AbortController\n): Promise<any> {\n await openmrsFetch(sessionEndpoint, {\n method: \"POST\",\n body: { sessionLocation: locationUuid },\n headers: {\n \"Content-Type\": \"application/json\",\n },\n signal: abortController.signal,\n });\n refetchCurrentUser();\n}\n","/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */\nimport { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) {\n concurrent = Number.POSITIVE_INFINITY;\n }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map\n","import { defineConfigSchema, Type, validators } from \"@openmrs/esm-config\";\nimport { refetchCurrentUser } from \"./shared-api-objects/current-user\";\n\n/**\n * @internal\n */\nexport function setupApiModule() {\n defineConfigSchema(\"@openmrs/esm-api\", {\n redirectAuthFailure: {\n enabled: {\n _type: Type.Boolean,\n _default: true,\n _description:\n \"Whether to redirect logged-out users to `redirectAuthFailure.url`\",\n },\n url: {\n _type: Type.String,\n _default: \"${openmrsSpaBase}/login\",\n _validators: [validators.isUrl],\n },\n errors: {\n _type: Type.Array,\n _default: [401],\n _elements: {\n _type: Type.Number,\n _validators: [validators.inRange(100, 600)],\n },\n _description: \"The HTTP error codes for which users will be redirected\",\n },\n resolvePromise: {\n _type: Type.Boolean,\n _default: false,\n _description:\n \"Changes how requests that fail authentication are handled. Try messing with this if redirects to the login page aren't working correctly.\",\n },\n },\n });\n\n refetchCurrentUser();\n}\n","import { fhir } from \"../fhir\";\nimport { FetchResponse } from \"../types\";\n\nexport type CurrentPatient = fhir.Patient | FetchResponse<fhir.Patient>;\n\nexport interface CurrentPatientOptions {\n includeConfig?: boolean;\n}\n\nexport interface PatientWithFullResponse extends CurrentPatientOptions {\n includeConfig: true;\n}\n\nexport interface OnlyThePatient extends CurrentPatientOptions {\n includeConfig: false;\n}\n\nexport type PatientUuid = string | null;\n\n/**\n * @category API Object\n */\nexport function fetchCurrentPatient(\n patientUuid: PatientUuid,\n contentOverrides?: Partial<Parameters<typeof fhir.read>[0]>\n) {\n if (patientUuid) {\n return fhir.read<fhir.Patient>({\n type: \"Patient\",\n patient: patientUuid,\n ...contentOverrides,\n });\n }\n\n return Promise.resolve(null);\n}\n","/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nvar BehaviorSubject = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map\n","/** PURE_IMPORTS_START PURE_IMPORTS_END */\nvar ArgumentOutOfRangeErrorImpl = /*@__PURE__*/ (function () {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map\n","/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = /*@__PURE__*/ (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map\n","import { Subject, Observable } from \"rxjs\";\n\nconst workspaceItem = new Subject<WorkspaceItem>();\n\n/**\n *\n * @param item\n * @category Workspace\n */\nexport function newWorkspaceItem(item: WorkspaceItem) {\n workspaceItem.next(item);\n}\n\n/**\n *\n * @returns\n * @category Workspace\n */\nexport function getNewWorkspaceItem(): Observable<WorkspaceItem> {\n return workspaceItem.asObservable();\n}\n\nexport interface WorkspaceItem {\n component: any;\n name: string;\n props: any;\n validations?: Function;\n inProgress: boolean;\n componentClosed?: Function;\n}\n","import { Observable, BehaviorSubject } from \"rxjs\";\nimport { take, map } from \"rxjs/operators\";\nimport { openmrsObservableFetch } from \"../openmrs-fetch\";\nimport { newWorkspaceItem } from \"../workspace/workspace.resource\";\nimport {\n FetchResponse,\n NewVisitPayload,\n UpdateVisitPayload,\n Visit,\n} from \"../types\";\n\nexport function openVisitsNoteWorkspace(componentName: string, title: string) {\n newWorkspaceItem({\n component: componentName,\n name: title,\n props: {},\n inProgress: false,\n validations: (workspaceTabs: Array<any>) =>\n workspaceTabs.findIndex((tab) => tab.component === componentName),\n });\n}\n\nexport function getVisitsForPatient(\n patientUuid: string,\n abortController: AbortController,\n v?: string\n): Observable<FetchResponse<{ results: Array<Visit> }>> {\n const custom =\n v ||\n \"custom:(uuid,encounters:(uuid,encounterDatetime,\" +\n \"form:(uuid,name),location:ref,\" +\n \"encounterType:ref,encounterProviders:(uuid,display,\" +\n \"provider:(uuid,display))),patient:(uuid,uuid),\" +\n \"visitType:(uuid,name,display),attributes:(uuid,display,value),location:(uuid,name,display),startDatetime,\" +\n \"stopDatetime)\";\n\n return openmrsObservableFetch(\n `/ws/rest/v1/visit?patient=${patientUuid}&v=${custom}`,\n {\n signal: abortController.signal,\n method: \"GET\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n }\n )\n .pipe(take(1))\n .pipe(\n map((response: FetchResponse<{ results: Array<Visit> }>) => {\n return response;\n })\n );\n}\n\nexport function saveVisit(\n payload: NewVisitPayload,\n abortController: AbortController\n): Observable<FetchResponse<any>> {\n return openmrsObservableFetch(`/ws/rest/v1/visit`, {\n signal: abortController.signal,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n body: payload,\n });\n}\n\nexport function updateVisit(\n uuid: string,\n payload: UpdateVisitPayload,\n abortController: AbortController\n): Observable<any> {\n return openmrsObservableFetch(`/ws/rest/v1/visit/${uuid}`, {\n signal: abortController.signal,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n body: payload,\n });\n}\n\nexport const getStartedVisit = new BehaviorSubject<VisitItem | null>(null);\n\nexport interface VisitItem {\n mode: VisitMode;\n visitData?: Visit;\n status: VisitStatus;\n anythingElse?: any;\n}\n\nexport enum VisitMode {\n NEWVISIT = \"startVisit\",\n EDITVISIT = \"editVisit\",\n LOADING = \"loadingVisit\",\n}\n\nexport enum VisitStatus {\n NOTSTARTED = \"notStarted\",\n ONGOING = \"ongoing\",\n}\n","import { Observable } from \"rxjs\";\nimport { map, take } from \"rxjs/operators\";\nimport { openmrsObservableFetch } from \"../openmrs-fetch\";\nimport { VisitType } from \"../types\";\n\nexport function toVisitTypeObject(openmrsRestForm: any): VisitType {\n return {\n uuid: openmrsRestForm.uuid,\n display: openmrsRestForm.display,\n name: openmrsRestForm.name,\n };\n}\n\nexport function getVisitTypes(): Observable<Array<VisitType>> {\n return openmrsObservableFetch<any>(`/ws/rest/v1/visittype`)\n .pipe(\n map((results) => {\n const visitTypes: Array<VisitType> =\n results.data.results.map(toVisitTypeObject);\n return visitTypes;\n })\n )\n .pipe(take(1));\n}\n","import { Observable } from \"rxjs\";\nimport { map, take } from \"rxjs/operators\";\nimport { openmrsObservableFetch } from \"../openmrs-fetch\";\nimport { Location } from \"../types\";\n\nexport function toLocationObject(openmrsRestForm: any): Location {\n return {\n uuid: openmrsRestForm.uuid,\n display: openmrsRestForm.display,\n };\n}\n\nexport function getLocations(): Observable<Array<Location>> {\n return openmrsObservableFetch<any>(`/ws/rest/v1/location`)\n .pipe(\n map((results) => {\n const locations: Array<Location> =\n results.data.results.map(toLocationObject);\n return locations;\n })\n )\n .pipe(take(1));\n}\n","export const backendDependencies = {\n \"webservices.rest\": \"2.24.0\",\n fhir2: \"1.0.0-SNAPSHOT\",\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__685__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \" + i);\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \" + j);\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \" + j);\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \" + i);\n if (!pattern)\n throw new TypeError(\"Missing pattern at \" + i);\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nexport function parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a;\n var defaultPattern = \"[^\" + escapeString(options.delimiter || \"/#?\") + \"]+?\";\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \" + nextType + \" at \" + index + \", expected \" + type);\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n // tslint:disable-next-line\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\n/**\n * Compile a string to a template function for the path.\n */\nexport function compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\nexport function tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\" + token.pattern + \")$\", reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not repeat, but got an array\");\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not be empty\");\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to be \" + typeOfMessage);\n }\n return path;\n };\n}\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nexport function match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nexport function regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n // tslint:disable-next-line\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\"\n });\n }\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\" + parts.join(\"|\") + \")\", flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nexport function tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d;\n var endsWith = \"[\" + escapeString(options.endsWith || \"\") + \"]|$\";\n var delimiter = \"[\" + escapeString(options.delimiter || \"/#?\") + \"]\";\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\" + prefix + \"((?:\" + token.pattern + \")(?:\" + suffix + prefix + \"(?:\" + token.pattern + \"))*)\" + suffix + \")\" + mod;\n }\n else {\n route += \"(?:\" + prefix + \"(\" + token.pattern + \")\" + suffix + \")\" + token.modifier;\n }\n }\n else {\n route += \"(\" + token.pattern + \")\" + token.modifier;\n }\n }\n else {\n route += \"(?:\" + prefix + suffix + \")\" + token.modifier;\n }\n }\n }\n if (end) {\n if (!strict)\n route += delimiter + \"?\";\n route += !options.endsWith ? \"$\" : \"(?=\" + endsWith + \")\";\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiter.indexOf(endToken[endToken.length - 1]) > -1\n : // tslint:disable-next-line\n endToken === undefined;\n if (!strict) {\n route += \"(?:\" + delimiter + \"(?=\" + endsWith + \"))?\";\n }\n if (!isEndDelimited) {\n route += \"(?=\" + delimiter + \"|\" + endsWith + \")\";\n }\n }\n return new RegExp(route, flags(options));\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nexport function pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\n//# sourceMappingURL=index.js.map","import { pathToRegexp } from \"path-to-regexp\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\nimport { BreadcrumbSettings, BreadcrumbRegistration } from \"./types\";\n\nconst store = createGlobalStore<Array<BreadcrumbRegistration>>(\n \"breadcrumbs\",\n []\n);\n\nfunction getMatcher(settings: BreadcrumbSettings) {\n if (settings.matcher instanceof RegExp) {\n return settings.matcher;\n } else if (typeof settings.matcher === \"string\") {\n return pathToRegexp(settings.matcher);\n } else {\n return pathToRegexp(settings.path);\n }\n}\n\n/**\n *\n * @param breadcrumb\n * @returns\n * @category Breadcrumb\n */\nexport function registerBreadcrumb(breadcrumb: BreadcrumbSettings) {\n return registerBreadcrumbs([breadcrumb]);\n}\n\n/**\n *\n * @param breadcrumbs\n * @category Breadcrumb\n */\nexport function registerBreadcrumbs(breadcrumbs: Array<BreadcrumbSettings>) {\n const prevBreadcrumbs = getBreadcrumbs();\n const newBreadcrumbs = breadcrumbs.map((settings) => ({\n matcher: getMatcher(settings),\n settings,\n }));\n const nextBreadcrumbs = [...prevBreadcrumbs, ...newBreadcrumbs];\n store.setState(nextBreadcrumbs, true);\n}\n\n/**\n *\n * @returns\n * @category Breadcrumb\n */\nexport function getBreadcrumbs() {\n return store.getState();\n}\n","import { getBreadcrumbs } from \"./db\";\nimport { BreadcrumbRegistration } from \"./types\";\n\nfunction getExact(\n breadcrumbs: Array<BreadcrumbRegistration>,\n path: string\n): BreadcrumbRegistration {\n const [bc] = breadcrumbs.filter((m) => m.matcher.test(path));\n return bc;\n}\n\nfunction getClosest(\n breadcrumbs: Array<BreadcrumbRegistration>,\n path: string\n): BreadcrumbRegistration | undefined {\n const segments = path.split(\"/\");\n\n while (segments.length > 1) {\n segments.pop();\n const newPath = segments.join(\"/\");\n const next = getNext(breadcrumbs, newPath);\n\n if (next) {\n return next;\n }\n }\n\n return undefined;\n}\n\nfunction getNext(\n breadcrumbs: Array<BreadcrumbRegistration>,\n path: string | undefined\n) {\n if (path) {\n return getExact(breadcrumbs, path) || getClosest(breadcrumbs, path);\n }\n\n return undefined;\n}\n\n/**\n *\n * @param list\n * @param path\n * @returns\n * @category Breadcrumb\n */\nexport function filterBreadcrumbs(\n list: Array<BreadcrumbRegistration>,\n path: string\n) {\n if (list.length > 0) {\n const current = getNext(list, path);\n\n if (current) {\n const links = [current];\n let previous = getNext(list, current.settings.parent);\n\n while (previous !== undefined) {\n links.push(previous);\n previous = getNext(list, previous.settings.parent);\n }\n\n return links.reverse();\n }\n }\n\n return [];\n}\n\n/**\n *\n * @param path\n * @returns\n * @category Breadcrumb\n */\nexport function getBreadcrumbsFor(path: string) {\n const breadcrumbs = getBreadcrumbs();\n return filterBreadcrumbs(breadcrumbs, path);\n}\n","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\n\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nmodule.exports = bind;","var _clone = /*#__PURE__*/require('./internal/_clone');\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\n\nvar clone = /*#__PURE__*/_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\n});\nmodule.exports = clone;","function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}\nmodule.exports = _arity;","var _cloneRegExp = /*#__PURE__*/require('./_cloneRegExp');\n\nvar type = /*#__PURE__*/require('../type');\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\n\nfunction _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n idx += 1;\n }\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n return copiedValue;\n };\n switch (type(value)) {\n case 'Object':\n return copy({});\n case 'Array':\n return copy([]);\n case 'Date':\n return new Date(value.valueOf());\n case 'RegExp':\n return _cloneRegExp(value);\n default:\n return value;\n }\n}\nmodule.exports = _clone;","function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}\nmodule.exports = _cloneRegExp;","var _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\nmodule.exports = _curry1;","var _curry1 = /*#__PURE__*/require('./_curry1');\n\nvar _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}\nmodule.exports = _curry2;","var _curry1 = /*#__PURE__*/require('./_curry1');\n\nvar _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}\nmodule.exports = _curry3;","function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\nmodule.exports = _has;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nmodule.exports = Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","var _curry1 = /*#__PURE__*/require('./_curry1');\n\nvar _isArray = /*#__PURE__*/require('./_isArray');\n\nvar _isString = /*#__PURE__*/require('./_isString');\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\n\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.nodeType === 1) {\n return !!x.length;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nmodule.exports = _isArrayLike;","function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}\nmodule.exports = _isObject;","function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}\nmodule.exports = _isPlaceholder;","function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}\nmodule.exports = _isString;","var _isArrayLike = /*#__PURE__*/require('./_isArrayLike');\n\nvar _xwrap = /*#__PURE__*/require('./_xwrap');\n\nvar bind = /*#__PURE__*/require('../bind');\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nfunction _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}\nmodule.exports = _reduce;","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nfunction _xwrap(fn) {\n return new XWrap(fn);\n}\nmodule.exports = _xwrap;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar mergeDeepWithKey = /*#__PURE__*/require('./mergeDeepWithKey');\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\n\nvar mergeDeepRight = /*#__PURE__*/_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\nmodule.exports = mergeDeepRight;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _isObject = /*#__PURE__*/require('./internal/_isObject');\n\nvar mergeWithKey = /*#__PURE__*/require('./mergeWithKey');\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\n\nvar mergeDeepWithKey = /*#__PURE__*/_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\nmodule.exports = mergeDeepWithKey;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\n\nvar mergeWithKey = /*#__PURE__*/_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\nmodule.exports = mergeWithKey;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\n\nvar reduce = /*#__PURE__*/_curry3(_reduce);\nmodule.exports = reduce;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\n\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nmodule.exports = type;","module.exports = __WEBPACK_EXTERNAL_MODULE__685__;","module.exports = __WEBPACK_EXTERNAL_MODULE__645__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export enum Type {\n Array = \"Array\",\n Boolean = \"Boolean\",\n ConceptUuid = \"ConceptUuid\",\n Number = \"Number\",\n Object = \"Object\",\n String = \"String\",\n UUID = \"UUID\",\n}\n\n// Full-powered typing for Config and Schema trees depends on being able to\n// have types like `string not \"_default\"`. There is an experimental PR\n// for this feature, https://github.com/microsoft/TypeScript/pull/29317\n// But it is not likely to be merged any time terribly soon. (Nov 11, 2020)\nexport interface ConfigSchema {\n [key: string]: ConfigSchema | ConfigValue;\n _type?: Type;\n _validators?: Array<Validator>;\n _elements?: ConfigSchema;\n}\n\nexport interface Config extends Object {\n [moduleName: string]: { [key: string]: any };\n}\n\nexport interface ConfigObject extends Object {\n [key: string]: any;\n}\n\nexport type ConfigValue =\n | string\n | number\n | boolean\n | void\n | Array<any>\n | object;\n\nexport interface ExtensionSlotConfig {\n add?: Array<string>;\n remove?: Array<string>;\n order?: Array<string>;\n configure?: ExtensionSlotConfigureValueObject;\n}\n\nexport interface ExtensionSlotConfigureValueObject {\n [key: string]: object;\n}\n\nexport interface ExtensionSlotConfigObject {\n add?: Array<string>;\n remove?: Array<string>;\n order?: Array<string>;\n}\n\nexport type ProvidedConfig = {\n source: string;\n config: Config;\n};\n\nexport type ValidatorFunction = (value: any) => boolean;\n\nexport type Validator = (value: any) => void | string;\n","import { Validator, ValidatorFunction } from \"../types\";\n\nexport function validator(\n validationFunction: ValidatorFunction,\n message: string\n): Validator {\n return (value) => {\n if (!validationFunction(value)) {\n return message;\n }\n };\n}\n","import { validator } from \"./validator\";\n\nexport const isArray = validator(\n (val) => Array.isArray(val),\n \"must be an array\"\n);\n\nexport const isBoolean = validator(\n (val) => typeof val === \"boolean\",\n \"must be a boolean\"\n);\n\nexport const isNumber = validator(\n (val) => typeof val === \"number\",\n \"must be a number\"\n);\n\nexport const isString = validator(\n (val) => typeof val === \"string\",\n \"must be a string\"\n);\n\nexport const isObject = validator(\n (val) => typeof val === \"object\" && !Array.isArray(val) && val !== null,\n \"must be an object (not an array or null)\"\n);\n\nexport const isUuid = validator(\n (val) =>\n /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(\n val\n ) || /^[0-9a-f]{36}$/i.test(val),\n \"must be a valid UUID or a 36-character hexadecimal string\"\n);\n","import { createGlobalStore, getGlobalStore } from \"@openmrs/esm-state\";\nimport {\n Config,\n ConfigObject,\n ConfigSchema,\n ExtensionSlotConfigObject,\n ProvidedConfig,\n} from \"../types\";\n\n/**\n * Internal store\n * A store of the inputs and internal state\n * @internal\n */\nexport interface ConfigInternalStore {\n /** Configs added using the `provide` function */\n providedConfigs: Array<ProvidedConfig>;\n /** A config file provided as `config-file` in the import map */\n importMapConfig: Config;\n /** An object with module names for keys and schemas for values */\n schemas: Record<string, ConfigSchema>;\n /** A flag to keep track of whether the import map config has been loaded */\n importMapConfigLoaded: boolean;\n /** Whether to use dev defaults or not */\n devDefaultsAreOn: boolean;\n}\n\nconst configInternalStoreInitialValue = {\n providedConfigs: [],\n importMapConfig: {},\n schemas: {},\n importMapConfigLoaded: false,\n devDefaultsAreOn: getAreDevDefaultsOn(),\n};\n\n/**\n * @internal\n */\nexport const configInternalStore = createGlobalStore<ConfigInternalStore>(\n \"config-internal\",\n configInternalStoreInitialValue\n);\n\nlet lastValueOfDevDefaultsAreOn = getAreDevDefaultsOn();\nconfigInternalStore.subscribe((state) => {\n if (state.devDefaultsAreOn != lastValueOfDevDefaultsAreOn) {\n setAreDevDefaultsOn(state.devDefaultsAreOn);\n lastValueOfDevDefaultsAreOn = state.devDefaultsAreOn;\n }\n});\n\nfunction setAreDevDefaultsOn(value: boolean) {\n localStorage.setItem(\"openmrs:configAreDevDefaultsOn\", JSON.stringify(value));\n}\n\nfunction getAreDevDefaultsOn(): boolean {\n try {\n return JSON.parse(\n localStorage.getItem(\"openmrs:configAreDevDefaultsOn\") || \"false\"\n );\n } catch (e) {\n return false;\n }\n}\n\n/**\n * Temporary config\n * LocalStorage-based config used by the implementer tools\n * @internal\n */\nexport interface TemporaryConfigStore {\n config: Config;\n}\n\nexport const temporaryConfigStore = createGlobalStore<TemporaryConfigStore>(\n \"temporary-config\",\n { config: getTemporaryConfig() }\n);\n\ntemporaryConfigStore.subscribe((state) => {\n setTemporaryConfig(state.config);\n});\n\nfunction setTemporaryConfig(value: Config) {\n localStorage.setItem(\"openmrs:temporaryConfig\", JSON.stringify(value));\n}\n\nfunction getTemporaryConfig(): Config {\n try {\n return JSON.parse(localStorage.getItem(\"openmrs:temporaryConfig\") || \"{}\");\n } catch (e) {\n return {};\n }\n}\n\n/**\n * Config-side extension store\n * Just what esm-config needs to know about extension state. This\n * is to avoid having esm-config depend on esm-extensions, which would\n * create a circular dependency.\n * @internal\n */\nexport interface ConfigExtensionStore {\n mountedExtensions: Array<ConfigExtensionStoreElement>;\n}\n\n/**\n * @internal\n */\nexport interface ConfigExtensionStoreElement {\n slotModuleName: string;\n extensionModuleName: string;\n slotName: string;\n extensionId: string;\n}\n\n/**\n * @internal\n */\nexport const configExtensionStore = createGlobalStore<ConfigExtensionStore>(\n \"config-extensions\",\n { mountedExtensions: [] }\n);\n\n/**\n * Output configs\n *\n * Each module has its own stores for its config and its extension slots' configs.\n */\nexport interface ConfigStore {\n config: ConfigObject | null;\n loaded: boolean;\n}\n\nfunction initializeConfigStore() {\n return {\n config: null,\n loaded: false,\n };\n}\n\nexport function getConfigStore(moduleName: string) {\n // We use a store for each module's config, named `config-${moduleName}`\n return getGlobalStore<ConfigStore>(\n `config-module-${moduleName}`,\n initializeConfigStore()\n );\n}\n\nexport interface ExtensionSlotConfigsStore {\n /** Configs for each extension slot in the module, indexed by slot name */\n extensionSlotConfigs: Record<string, ExtensionSlotConfigObject>;\n loaded: boolean;\n}\n\nfunction initializeExtensionSlotConfigsStore() {\n return {\n extensionSlotConfigs: {},\n loaded: false,\n };\n}\n\nexport function getExtensionSlotsConfigStore(moduleName: string) {\n // Each module gets one store for the configs of all the slots it contains\n return getGlobalStore<ExtensionSlotConfigsStore>(\n `config-extension-slots-${moduleName}`,\n initializeExtensionSlotConfigsStore()\n );\n}\n\n// A store for each mounted extension's config\nexport function getExtensionConfigStore(\n extensionSlotModuleName: string,\n attachedExtensionSlotName: string,\n extensionId: string\n) {\n return getGlobalStore<ConfigStore>(\n `config-extension-${extensionSlotModuleName}-${attachedExtensionSlotName}-${extensionId}`,\n initializeConfigStore()\n );\n}\n\n// A store of the implementer tools output config\nexport interface ImplementerToolsConfigStore {\n config: Config;\n}\n\nexport const implementerToolsConfigStore =\n createGlobalStore<ImplementerToolsConfigStore>(\"config-implementer-tools\", {\n config: {},\n });\n","import { clone, reduce, mergeDeepRight } from \"ramda\";\nimport {\n Config,\n ConfigObject,\n ConfigSchema,\n ExtensionSlotConfig,\n ExtensionSlotConfigObject,\n Type,\n} from \"../types\";\nimport {\n isArray,\n isBoolean,\n isUuid,\n isNumber,\n isObject,\n isString,\n} from \"../validators/type-validators\";\nimport {\n ConfigExtensionStore,\n ConfigInternalStore,\n configInternalStore,\n ConfigStore,\n configExtensionStore,\n getConfigStore,\n getExtensionConfigStore,\n getExtensionSlotsConfigStore,\n implementerToolsConfigStore,\n temporaryConfigStore,\n} from \"./state\";\nimport type {} from \"@openmrs/esm-globals\";\n\n/*\n * Config loading\n *\n *\n * We wait for SystemJS and window.importMapOverrides to be loaded before calling\n * `loadConfigs`. We actually wait quite a while longer--we wait 200ms before the\n * first attempt, because otherwise System.import exhibits some very weird\n * behavior.\n *\n * TODO: Investigate further, per this comment: https://github.com/joeldenning/import-map-overrides/issues/48#issuecomment-769477901\n */\nconst checkImportMapInterval = setInterval(() => {\n if (\n typeof System !== \"undefined\" &&\n typeof window.importMapOverrides !== \"undefined\"\n ) {\n clearInterval(checkImportMapInterval);\n window.importMapOverrides.getCurrentPageMap().then(loadConfigs);\n }\n}, 200);\n\nwindow.addEventListener(\"import-map-overrides:change\", loadConfigs);\n\n// We cache the Promise that loads the import mapped config file\n// so that we can be sure to only call it once\nlet getImportMapConfigPromise;\nasync function loadConfigs() {\n if (!getImportMapConfigPromise) {\n getImportMapConfigPromise = getImportMapConfigFile();\n }\n\n return await getImportMapConfigPromise;\n}\n\nasync function getImportMapConfigFile(): Promise<void> {\n if (typeof System === \"undefined\") {\n throw new Error(\"SystemJS not loaded at getImportMapConfigFile call time\");\n }\n\n try {\n System.resolve(\"config-file\");\n } catch {\n configInternalStore.setState({\n importMapConfigLoaded: true,\n });\n return;\n }\n\n try {\n const configFileModule = await System.import(\"config-file\");\n configInternalStore.setState({\n importMapConfig: configFileModule.default,\n importMapConfigLoaded: true,\n });\n } catch (e) {\n console.error(`Problem importing config-file ${e}`);\n throw e;\n }\n}\n\n/**\n * Store setup\n *\n *\n * Set up stores and subscriptions so that inputs get processed appropriately.\n *\n * There are *input* stores and *output* stores. The *input* stores\n * are configInternalStore, temporaryConfigStore, and configExtensionStore. The\n * output stores are set in the `compute...` functions. They are the module\n * config stores, the extension slot config stores (by module), the extension\n * config stores, and the implementer tools config store.\n *\n * This code sets up the subscriptions so that when an input store changes,\n * the correct set of output stores are updated.\n *\n * NB: You will notice that none of the `compute...` functions below explicitly\n * take `temporaryConfigStore` state as an input. They do make use of\n * `temporaryConfigStore`, however it is obtained in `getProvidedConfigs`.\n * It would probably be better to make the functions pure.\n */\ncomputeModuleConfig(configInternalStore.getState());\nconfigInternalStore.subscribe(computeModuleConfig);\ntemporaryConfigStore.subscribe(() =>\n computeModuleConfig(configInternalStore.getState())\n);\n\ncomputeImplementerToolsConfig(configInternalStore.getState());\nconfigInternalStore.subscribe(computeImplementerToolsConfig);\ntemporaryConfigStore.subscribe(() =>\n computeImplementerToolsConfig(configInternalStore.getState())\n);\n\ncomputeExtensionSlotConfigs(configInternalStore.getState());\nconfigInternalStore.subscribe(computeExtensionSlotConfigs);\ntemporaryConfigStore.subscribe(() =>\n computeExtensionSlotConfigs(configInternalStore.getState())\n);\n\ncomputeExtensionConfigs(\n configInternalStore.getState(),\n configExtensionStore.getState()\n);\nconfigInternalStore.subscribe((configState) =>\n computeExtensionConfigs(configState, configExtensionStore.getState())\n);\nconfigExtensionStore.subscribe((extensionState) =>\n computeExtensionConfigs(configInternalStore.getState(), extensionState)\n);\ntemporaryConfigStore.subscribe(() =>\n computeExtensionConfigs(\n configInternalStore.getState(),\n configExtensionStore.getState()\n )\n);\n\nfunction computeModuleConfig(state: ConfigInternalStore) {\n if (state.importMapConfigLoaded) {\n for (let moduleName of Object.keys(state.schemas)) {\n const config = getConfigForModule(moduleName);\n const moduleStore = getConfigStore(moduleName);\n moduleStore.setState({ loaded: true, config });\n }\n }\n}\n\nfunction computeExtensionSlotConfigs(state: ConfigInternalStore) {\n if (state.importMapConfigLoaded) {\n const slotConfigsByModule = getExtensionSlotConfigs();\n for (let [moduleName, extensionSlotConfigs] of Object.entries(\n slotConfigsByModule\n )) {\n const moduleStore = getExtensionSlotsConfigStore(moduleName);\n moduleStore.setState({ loaded: true, extensionSlotConfigs });\n }\n }\n}\n\nfunction computeImplementerToolsConfig(state: ConfigInternalStore) {\n if (state.importMapConfigLoaded) {\n const config = getImplementerToolsConfig();\n implementerToolsConfigStore.setState({ config });\n }\n}\n\nfunction computeExtensionConfigs(\n configState: ConfigInternalStore,\n extensionState: ConfigExtensionStore\n) {\n if (configState.importMapConfigLoaded) {\n for (let extension of extensionState.mountedExtensions) {\n const extensionStore = getExtensionConfigStore(\n extension.slotModuleName,\n extension.slotName,\n extension.extensionId\n );\n const config = getExtensionConfig(\n extension.slotModuleName,\n extension.extensionModuleName,\n extension.slotName,\n extension.extensionId\n );\n extensionStore.setState({ loaded: true, config });\n }\n }\n}\n\n/*\n * API\n *\n */\n\nexport function defineConfigSchema(moduleName: string, schema: ConfigSchema) {\n validateConfigSchema(moduleName, schema);\n const state = configInternalStore.getState();\n configInternalStore.setState({\n schemas: { ...state.schemas, [moduleName]: schema },\n });\n}\n\nexport function provide(config: Config, sourceName = \"provided\") {\n const state = configInternalStore.getState();\n configInternalStore.setState({\n providedConfigs: [...state.providedConfigs, { source: sourceName, config }],\n });\n}\n\n/**\n * A promise-based way to access the config as soon as it is fully loaded\n * from the import-map. If it is already loaded, resolves the config in its\n * present state.\n *\n * In general you should use the Unistore-based API provided by\n * `getConfigStore`, which allows creating a subscription so that you always\n * have the latest config. If using React, just use `useConfig`.\n *\n * This is a useful function if you need to get the config in the course\n * of the execution of a function.\n *\n * @param moduleName The name of the module for which to look up the config\n */\nexport function getConfig(moduleName: string): Promise<Config> {\n return new Promise<Config>((resolve) => {\n const store = getConfigStore(moduleName);\n function update(state: ConfigStore) {\n if (state.loaded && state.config) {\n resolve(state.config);\n unsubscribe && unsubscribe();\n }\n }\n update(store.getState());\n const unsubscribe = store.subscribe(update);\n });\n}\n\n/**\n * Validate and interpolate defaults for `providedConfig` according to `schema`\n *\n * @param schema a configuration schema\n * @param providedConfig an object of config values (without the top-level module name)\n * @param keyPathContext a dot-deparated string which helps the user figure out where\n * the provided config came from\n */\nexport function processConfig(\n schema: ConfigSchema,\n providedConfig: ConfigObject,\n keyPathContext: string\n) {\n validateConfig(schema, providedConfig, keyPathContext);\n const config = setDefaults(schema, providedConfig);\n return config;\n}\n\n/*\n * Helper functions\n *\n */\n\n/**\n * Returns the configuration for an extension. This configuration is specific\n * to the slot in which it is mounted, and its ID within that slot.\n *\n * The schema for that configuration is the schema for the module in which the\n * extension is defined.\n *\n * @param slotModuleName The name of the module which defines the extension slot\n * @param extensionModuleName The name of the module which defines the extension (and therefore the config schema)\n * @param slotName The name of the extension slot where the extension is mounted\n * @param extensionId The ID of the extension in its slot\n */\nfunction getExtensionConfig(\n slotModuleName: string,\n extensionModuleName: string,\n slotName: string,\n extensionId: string\n) {\n const slotModuleConfig = mergeConfigsFor(\n slotModuleName,\n getProvidedConfigs()\n );\n const configOverride =\n slotModuleConfig?.extensions?.[slotName]?.configure?.[extensionId] ?? {};\n const extensionModuleConfig = mergeConfigsFor(\n extensionModuleName,\n getProvidedConfigs()\n );\n const extensionConfig = mergeConfigs([extensionModuleConfig, configOverride]);\n const schema = configInternalStore.getState().schemas[extensionModuleName]; // TODO: validate that a schema exists for the module\n validateConfig(schema, extensionConfig, extensionModuleName);\n const config = setDefaults(schema, extensionConfig);\n delete config.extensions;\n return config;\n}\n\nfunction getImplementerToolsConfig(): Record<string, Config> {\n const state = configInternalStore.getState();\n let result = getSchemaWithValuesAndSources(clone(state.schemas));\n const configsAndSources = [\n ...state.providedConfigs.map((c) => [c.config, c.source]),\n [state.importMapConfig, \"config-file\"],\n [temporaryConfigStore.getState().config, \"temporary config\"],\n ] as Array<[Config, string]>;\n for (let [config, source] of configsAndSources) {\n result = mergeConfigs([result, createValuesAndSourcesTree(config, source)]);\n }\n return result;\n}\n\nfunction getSchemaWithValuesAndSources(schema) {\n if (schema.hasOwnProperty(\"_default\")) {\n return { ...schema, _value: schema._default, _source: \"default\" };\n } else if (isOrdinaryObject(schema)) {\n return Object.keys(schema).reduce((obj, key) => {\n obj[key] = getSchemaWithValuesAndSources(schema[key]);\n return obj;\n }, {});\n } else {\n // Schema is bad; error will have been logged during schema validation\n return {};\n }\n}\n\nfunction createValuesAndSourcesTree(config: ConfigObject, source: string) {\n if (isOrdinaryObject(config)) {\n return Object.keys(config).reduce((obj, key) => {\n obj[key] = createValuesAndSourcesTree(config[key], source);\n return obj;\n }, {});\n } else {\n return { _value: config, _source: source };\n }\n}\n\nfunction getExtensionSlotConfigs(): Record<\n string,\n Record<string, ExtensionSlotConfigObject>\n> {\n const allConfigs = mergeConfigs(getProvidedConfigs());\n const slotConfigPerModule: Record<\n string,\n Record<string, ExtensionSlotConfig>\n > = Object.keys(allConfigs).reduce((obj, key) => {\n if (allConfigs[key]?.extensions) {\n obj[key] = allConfigs[key]?.extensions;\n }\n return obj;\n }, {});\n validateAllExtensionSlotConfigs(slotConfigPerModule);\n return slotConfigPerModule;\n}\n\nfunction validateAllExtensionSlotConfigs(\n slotConfigPerModule: Record<string, Record<string, ExtensionSlotConfig>>\n) {\n for (let [moduleName, configBySlotName] of Object.entries(\n slotConfigPerModule\n )) {\n for (let [slotName, config] of Object.entries(configBySlotName)) {\n validateExtensionSlotConfig(config, moduleName, slotName);\n }\n }\n}\n\nfunction validateExtensionSlotConfig(\n config: ExtensionSlotConfig,\n moduleName: string,\n slotName: string\n): void {\n const errorPrefix = `Extension slot config '${moduleName}.extensions.${slotName}`;\n const invalidKeys = Object.keys(config).filter(\n (k) => ![\"add\", \"remove\", \"order\", \"configure\"].includes(k)\n );\n if (invalidKeys.length) {\n console.error(\n errorPrefix + `' contains invalid keys '${invalidKeys.join(\"', '\")}'`\n );\n }\n if (config.add) {\n if (\n !Array.isArray(config.add) ||\n !config.add.every((n) => typeof n === \"string\")\n ) {\n console.error(\n errorPrefix +\n `.add' is invalid. Must be an array of strings (extension IDs)`\n );\n }\n }\n if (config.remove) {\n if (\n !Array.isArray(config.remove) ||\n !config.remove.every((n) => typeof n === \"string\")\n ) {\n console.error(\n errorPrefix +\n `.remove' is invalid. Must be an array of strings (extension IDs)`\n );\n }\n }\n if (config.order) {\n if (\n !Array.isArray(config.order) ||\n !config.order.every((n) => typeof n === \"string\")\n ) {\n console.error(\n errorPrefix +\n `.order' is invalid. Must be an array of strings (extension IDs)`\n );\n }\n }\n if (config.configure) {\n if (!isOrdinaryObject(config.configure)) {\n console.error(\n errorPrefix +\n `.configure' is invalid. Must be an object with extension IDs for keys`\n );\n }\n }\n}\n\nfunction getProvidedConfigs(): Array<Config> {\n const state = configInternalStore.getState();\n return [\n ...state.providedConfigs.map((c) => c.config),\n state.importMapConfig,\n temporaryConfigStore.getState().config,\n ];\n}\n\nfunction validateConfigSchema(\n moduleName: string,\n schema: ConfigSchema,\n keyPath = \"\"\n) {\n const updateMessage = `Please verify that you are running the latest version and, if so, alert the maintainer.`;\n\n for (const key of Object.keys(schema).filter((k) => !k.startsWith(\"_\"))) {\n const thisKeyPath = keyPath + (keyPath && \".\") + key;\n const schemaPart = schema[key] as ConfigSchema;\n\n if (!isOrdinaryObject(schemaPart)) {\n console.error(\n `${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}`\n );\n continue;\n }\n\n if (!schemaPart.hasOwnProperty(\"_default\")) {\n // recurse for nested config keys\n validateConfigSchema(moduleName, schemaPart, thisKeyPath);\n }\n\n const elements = schemaPart._elements;\n if (hasObjectSchema(elements)) {\n validateConfigSchema(moduleName, elements, thisKeyPath + \"._elements\");\n }\n\n if (schemaPart._validators) {\n for (let validator of schemaPart._validators) {\n if (typeof validator !== \"function\") {\n console.error(\n `${moduleName} has invalid validator for key '${thisKeyPath}' ${updateMessage}.` +\n `\\n\\nIf you're the maintainer: validators must be functions that return either ` +\n `undefined or an error string. Received ${validator}.`\n );\n }\n }\n }\n\n const valueType = schemaPart._type;\n if (valueType && !Object.values(Type).includes(valueType)) {\n console.error(\n `${moduleName} has invalid type for key '${thisKeyPath}' ${updateMessage}.` +\n `\\n\\nIf you're the maintainer: the allowed types are ${Object.values(\n Type\n ).join(\", \")}. ` +\n `Received '${valueType}'`\n );\n }\n\n if (\n Object.keys(schemaPart).every((k) =>\n [\"_description\", \"_validators\", \"_elements\", \"_type\"].includes(k)\n ) &&\n !keyPath.includes(\"._elements\")\n ) {\n console.error(\n `${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` +\n `\\n\\nIf you're the maintainer: all config elements must have a default. ` +\n `Received ${JSON.stringify(schemaPart)}`\n );\n }\n\n if (\n elements &&\n valueType &&\n ![Type.Array, Type.Object].includes(valueType)\n ) {\n console.error(\n `${moduleName} has bad config schema definition for key '${thisKeyPath}'. ${updateMessage}.` +\n `\\n\\nIf you're the maintainer: the 'elements' key only works with '_type' equal to 'Array' or 'Object'. ` +\n `Received ${JSON.stringify(valueType)}`\n );\n }\n }\n}\n\nfunction getConfigForModule(moduleName: string): ConfigObject {\n const state = configInternalStore.getState();\n if (!state.schemas.hasOwnProperty(moduleName)) {\n throw Error(\"No config schema has been defined for \" + moduleName);\n }\n\n const schema = state.schemas[moduleName];\n const inputConfig = mergeConfigsFor(moduleName, getProvidedConfigs());\n validateConfig(schema, inputConfig, moduleName);\n const config = setDefaults(schema, inputConfig);\n delete config.extensions;\n return config;\n}\n\nfunction mergeConfigsFor(\n moduleName: string,\n allConfigs: Array<Config>\n): ConfigObject {\n const allConfigsForModule = allConfigs\n .map(({ [moduleName]: c }) => c)\n .filter((c) => !!c);\n\n return mergeConfigs(allConfigsForModule);\n}\n\nconst mergeDeepAll = reduce(mergeDeepRight);\nfunction mergeConfigs(configs: Array<Config>) {\n return mergeDeepAll({}, configs) as Config;\n}\n\n// Recursively check the provided config tree to make sure that all\n// of the provided properties exist in the schema. Run validators\n// where present in the schema.\nconst validateConfig = (\n schema: ConfigSchema,\n config: ConfigObject,\n keyPath = \"\"\n) => {\n for (const key of Object.keys(config)) {\n const value = config[key];\n const thisKeyPath = keyPath + \".\" + key;\n const schemaPart = schema[key] as ConfigSchema;\n\n if (!schema.hasOwnProperty(key)) {\n if (key !== \"extensions\") {\n console.error(\n `Unknown config key '${thisKeyPath}' provided. Ignoring.`\n );\n }\n\n continue;\n }\n\n checkType(thisKeyPath, schemaPart._type, value);\n runValidators(thisKeyPath, schemaPart._validators, value);\n\n if (isOrdinaryObject(value)) {\n // structurally validate only if there's elements specified\n // or there's a `_default` value, which indicates a freeform object\n if (schemaPart._type === Type.Object) {\n validateDictionary(schemaPart, value, thisKeyPath);\n } else if (!schemaPart.hasOwnProperty(\"_default\")) {\n // recurse to validate nested object structure\n validateConfig(schemaPart, value, thisKeyPath);\n }\n } else {\n if (schemaPart._type === Type.Array) {\n validateArray(schemaPart, value, thisKeyPath);\n }\n }\n }\n};\n\nfunction validateDictionary(\n dictionarySchema: ConfigSchema,\n config: ConfigObject,\n keyPath: string\n) {\n if (dictionarySchema._elements) {\n for (const key of Object.keys(config)) {\n const value = config[key];\n validateConfig(dictionarySchema._elements, value, `${keyPath}.${key}`);\n }\n }\n}\n\nfunction validateArray(\n arraySchema: ConfigSchema,\n value: ConfigObject,\n keyPath: string\n) {\n // if there is an array element object schema, verify that elements match it\n if (hasObjectSchema(arraySchema._elements)) {\n for (let i = 0; i < value.length; i++) {\n validateConfig(arraySchema._elements, value[i], `${keyPath}[${i}]`);\n }\n }\n\n for (let i = 0; i < value.length; i++) {\n checkType(`${keyPath}[${i}]`, arraySchema._elements?._type, value[i]);\n runValidators(\n `${keyPath}[${i}]`,\n arraySchema._elements?._validators,\n value[i]\n );\n }\n}\n\nfunction checkType(keyPath: string, _type: Type | undefined, value: any) {\n if (_type) {\n const validator: Record<string, Function> = {\n Array: isArray,\n Boolean: isBoolean,\n ConceptUuid: isUuid,\n Number: isNumber,\n Object: isObject,\n String: isString,\n UUID: isUuid,\n };\n runValidators(keyPath, [validator[_type]], value);\n }\n}\n\nfunction runValidators(\n keyPath: string,\n validators: Array<Function> | undefined,\n value: any\n) {\n if (validators) {\n try {\n for (let validator of validators) {\n const validatorResult = validator(value);\n\n if (typeof validatorResult === \"string\") {\n const valueString =\n typeof value === \"object\" ? JSON.stringify(value) : value;\n console.error(\n `Invalid configuration value ${valueString} for ${keyPath}: ${validatorResult}`\n );\n }\n }\n } catch (e) {\n console.error(`Skipping invalid validator at \"${keyPath}\".`);\n }\n }\n}\n\n// Recursively fill in the config with values from the schema.\nconst setDefaults = (schema: ConfigSchema, inputConfig: Config) => {\n const config = clone(inputConfig);\n const devDefaultsAreOn = configInternalStore.getState().devDefaultsAreOn;\n\n if (!schema) {\n return config;\n }\n\n for (const key of Object.keys(schema)) {\n const configPart = config[key];\n const schemaPart = schema[key] as ConfigSchema;\n\n // The `schemaPart &&` clause of this `if` statement will only fail\n // if the schema is very invalid. It is there to prevent the app from\n // crashing completely, though it will produce unexpected behavior.\n // If this happens, there should be legible errors in the console from\n // the schema validator.\n if (schemaPart && schemaPart.hasOwnProperty(\"_default\")) {\n // We assume that schemaPart defines a config value, since it has\n // a property `_default`.\n if (!config.hasOwnProperty(key)) {\n const devDefault = schemaPart[\"_devDefault\"] || schemaPart[\"_default\"];\n\n (config[key] as any) = devDefaultsAreOn\n ? devDefault\n : schemaPart[\"_default\"];\n }\n\n // We also check if it is an object or array with object elements, in which case we recurse\n const elements = schemaPart._elements;\n\n if (configPart && hasObjectSchema(elements)) {\n if (schemaPart._type === Type.Array) {\n const configWithDefaults = configPart.map((conf: Config) =>\n setDefaults(elements, conf)\n );\n config[key] = configWithDefaults;\n } else if (schemaPart._type === Type.Object) {\n for (let objectKey of Object.keys(configPart)) {\n configPart[objectKey] = setDefaults(\n elements,\n configPart[objectKey]\n );\n }\n }\n }\n } else if (isOrdinaryObject(schemaPart)) {\n // Since schemaPart has no property \"_default\", if it's an ordinary object\n // (unlike, importantly, the validators array), we assume it is a parent config property.\n // We recurse to config[key] and schema[key]. Default config[key] to {}.\n const selectedConfigPart = config.hasOwnProperty(key) ? configPart : {};\n\n if (isOrdinaryObject(selectedConfigPart)) {\n config[key] = setDefaults(schemaPart, selectedConfigPart);\n }\n }\n }\n\n return config;\n};\n\nfunction hasObjectSchema(\n elementsSchema: Object | undefined\n): elementsSchema is ConfigSchema {\n return (\n !!elementsSchema &&\n Object.keys(elementsSchema).filter(\n (e) => ![\"_default\", \"_validators\"].includes(e)\n ).length > 0\n );\n}\n\nfunction isOrdinaryObject(value) {\n return typeof value === \"object\" && !Array.isArray(value) && value !== null;\n}\n\n/** @internal for testing */\nexport function reloadImportMapConfig() {\n getImportMapConfigPromise = undefined;\n return loadConfigs();\n}\n","function trimTrailingSlash(str: string) {\n return str.replace(/\\/$/, \"\");\n}\n\n/**\n * @internal\n * Interpolates a string with openmrsBase and openmrsSpaBase\n *\n * @param template A string to interpolate\n */\nexport function interpolateUrl(template: string): string {\n const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());\n return interpolateString(template, {\n openmrsBase: window.openmrsBase,\n openmrsSpaBase: openmrsSpaBase,\n }).replace(/^\\/\\//, \"/\"); // remove extra initial slash if present\n}\n\n/**\n * Interpolates values of `params` into the `template` string.\n *\n * Useful for additional template parameters in URLs.\n *\n * Example usage:\n * ```js\n * navigate({\n * to: interpolateString(\n * config.links.patientChart,\n * { patientUuid: patient.uuid }\n * )\n * });\n * ```\n *\n * @param template With optional params wrapped in `${ }`\n * @param params Values to interpolate into the string template\n * @category Navigation\n */\nexport function interpolateString(template: string, params: object): string {\n const names = Object.keys(params);\n return names.reduce(\n (prev, curr) => prev.split(\"${\" + curr + \"}\").join(params[curr]),\n template\n );\n}\n","import { navigateToUrl } from \"single-spa\";\nimport { interpolateUrl } from \"./interpolate-string\";\nimport type {} from \"@openmrs/esm-globals\";\n\nfunction trimTrailingSlash(str: string) {\n return str.replace(/\\/$/, \"\");\n}\n\nexport interface NavigateOptions {\n to: string;\n}\n\n/**\n * Calls `location.assign` for non-SPA paths and [navigateToUrl](https://single-spa.js.org/docs/api/#navigatetourl) for SPA paths\n *\n * Example usage:\n * ```js\n * const config = getConfig();\n * const submitHandler = () => {\n * navigate({ to: config.links.submitSuccess });\n * };\n * ```\n *\n * @param to The target path or URL. Supports templating with 'openmrsBase' and 'openmrsSpaBase'.\n * For example, `${openmrsSpaBase}/home` will resolve to `/openmrs/spa/home`\n * for implementations using the standard OpenMRS and SPA base paths.\n * @category Navigation\n */\nexport function navigate({ to }: NavigateOptions): void {\n const openmrsSpaBase = trimTrailingSlash(window.getOpenmrsSpaBase());\n const target = interpolateUrl(to);\n const isSpaPath = target.startsWith(openmrsSpaBase);\n\n if (isSpaPath) {\n navigateToUrl(target);\n } else {\n window.location.assign(target);\n }\n}\n","import { validator } from \"./validator\";\n\n/**\n * Verifies that the value is between the provided minimum and maximum\n *\n * @param min Minimum acceptable value\n * @param max Maximum acceptable value\n */\nexport const inRange = (min: number, max: number) => {\n return validator(\n (val) => min <= val && val <= max,\n `must be between ${min} and ${max}`\n );\n};\n\n/**\n * Verifies that a string contains only the default URL template\n * parameters, plus any specified in `allowedTemplateParameters`.\n *\n * @param allowedTemplateParameters To be added to `openmrsBase` and `openmrsSpaBase`\n * @category Navigation\n */\nexport const isUrlWithTemplateParameters = (\n allowedTemplateParameters: string[]\n) => {\n const allowedParams = allowedTemplateParameters.concat([\n \"openmrsBase\",\n \"openmrsSpaBase\",\n ]);\n return validator((val) => {\n if (!val || typeof val != \"string\") {\n return false;\n }\n\n const rx = /\\${(.*?)}/g;\n let match = rx.exec(val);\n\n while (match) {\n if (!allowedParams.includes(match[1])) {\n return false;\n }\n\n match = rx.exec(val);\n }\n\n return true;\n }, \"should be a URL or path. The allowed template parameters are \" + allowedParams.map((p) => \"${\" + p + \"}\").join(\", \"));\n};\n\n/**\n * Verifies that a string contains only the default URL template parameters.\n *\n * @category Navigation\n */\nexport const isUrl = isUrlWithTemplateParameters([]);\n\nexport const validators = {\n inRange,\n isUrl,\n isUrlWithTemplateParameters,\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__728__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","import { dispatchNotificationShown } from \"@openmrs/esm-globals\";\n\nexport function handleApiError() {\n return (incomingResponseErr) => {\n setTimeout(() => {\n throw incomingResponseErr;\n });\n };\n}\n\nwindow.onerror = function () {\n dispatchNotificationShown({\n description: \"Oops! An unexpected error occurred.\",\n });\n return false;\n};\n\nwindow.onunhandledrejection = function () {\n dispatchNotificationShown({\n description: \"Oops! An unexpected error occurred.\",\n });\n};\n\nexport function reportError(err) {\n const error = ensureErrorObject(err);\n setTimeout(() => {\n throw error;\n });\n}\n\nexport function createErrorHandler() {\n const outgoingErr = Error();\n return (incomingErr) => {\n const finalErr = ensureErrorObject(incomingErr);\n finalErr.stack += `\\nAsync stacktrace:\\n${outgoingErr.stack}`;\n reportError(incomingErr);\n };\n}\n\nfunction ensureErrorObject(thing: any) {\n let message;\n\n if (thing instanceof Error) {\n return thing;\n } else if (thing === null) {\n return Error(`'null' was thrown as an error`);\n } else if (typeof thing === \"object\") {\n try {\n message = `Object thrown as error: ${JSON.stringify(thing)}`;\n } catch (e) {\n message = `Object thrown as error with the following properties: ${Object.keys(\n thing\n )}`;\n }\n return Error(message);\n } else if (thing === undefined) {\n return Error(`'undefined' was thrown as an error`);\n } else {\n return Error(thing.toString());\n }\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__824__;","module.exports = __WEBPACK_EXTERNAL_MODULE__685__;","module.exports = __WEBPACK_EXTERNAL_MODULE__645__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","import { navigate } from \"@openmrs/esm-config\";\n\nexport type NavigationContextType = \"workspace\" | \"dialog\" | \"link\";\n\nexport interface NavigationContext {\n type: NavigationContextType;\n handler<T = any>(link: string, state: T): boolean;\n}\n\n/**\n * @deprecated use `navigate` directly\n */\nexport function switchTo<T>(\n _type: NavigationContextType,\n link: string,\n _state?: T\n) {\n navigate({ to: link });\n}\n\n/**\n * @deprecated don't use\n */\nexport function pushNavigationContext(_context: NavigationContext) {\n return () => {\n //STUB - remove soon\n };\n}\n","import {\n configExtensionStore,\n ConfigExtensionStoreElement,\n} from \"@openmrs/esm-config\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\n\nexport interface ExtensionMeta {\n [_: string]: any;\n}\n\nexport interface ExtensionRegistration {\n name: string;\n load(): Promise<any>;\n moduleName: string;\n meta: ExtensionMeta;\n order?: number;\n online?: boolean | object;\n offline?: boolean | object;\n}\n\nexport interface ExtensionInfo extends ExtensionRegistration {\n /**\n * The instances where the extension has been rendered using `renderExtension`,\n * indexed by slotModuleName and slotName.\n */\n instances: Record<string, Record<string, ExtensionInstance>>;\n}\n\nexport interface ExtensionInstance {\n id: string;\n}\n\nexport interface ExtensionStore {\n /** Slots indexed by name */\n slots: Record<string, ExtensionSlotInfo>;\n /** Extensions indexed by name */\n extensions: Record<string, ExtensionInfo>;\n}\n\nexport interface ExtensionSlotInstance {\n /**\n * A set of additional extension IDs which have been added to to this slot despite not being\n * explicitly `attach`ed to it.\n * An example may be an extension which is added to the slot via the configuration.\n */\n addedIds: Array<string>;\n /**\n * A set of extension IDs which have been removed/hidden from this slot, even though they have\n * previously been `attach`ed/added to it.\n * An example may be an extension which is removed from the slot via the configuration.\n */\n removedIds: Array<string>;\n /**\n * A set allowing explicit ordering of the `assignedIds`.\n */\n idOrder: Array<string>;\n}\n\nexport interface ExtensionSlotInfo {\n /**\n * The name under which the extension slot has been registered.\n */\n name: string;\n /**\n * The mapping of modules / extension slot instances where the extension slot has been used.\n */\n instances: Record<string, ExtensionSlotInstance>;\n /**\n * The set of extension IDs which have been attached to this slot.\n * This is essentially a complete history of `attach` calls to this specific slot.\n * However, not all of these extension IDs should be rendered.\n * `assignedIds` is the set defining those.\n */\n attachedIds: Array<string>;\n}\n\nexport const extensionStore = createGlobalStore<ExtensionStore>(\"extensions\", {\n slots: {},\n extensions: {},\n});\n\nexport type MaybeAsync<T> = T | Promise<T>;\n\nlet storeUpdates: Promise<void> = Promise.resolve();\n\nexport function updateExtensionStore<U extends keyof ExtensionStore>(\n updater: (state: ExtensionStore) => MaybeAsync<Pick<ExtensionStore, U>>\n) {\n storeUpdates = storeUpdates.then(async () => {\n const state = extensionStore.getState();\n const newState = await updater(state);\n\n if (newState !== state) {\n extensionStore.setState(newState);\n }\n });\n}\n\n/**\n * esm-config maintains its own store of the extension information it needs\n * to generate extension configs. We keep it updated based on what's in\n * `extensionStore`.\n */\n\nupdateConfigExtensionStore(extensionStore.getState());\nextensionStore.subscribe(updateConfigExtensionStore);\n\nfunction updateConfigExtensionStore(extensionState: ExtensionStore) {\n const configExtensionRecords: Array<ConfigExtensionStoreElement> = [];\n\n for (let extensionInfo of Object.values(extensionState.extensions)) {\n for (let [slotModuleName, extensionBySlot] of Object.entries(\n extensionInfo.instances\n )) {\n for (let [actualSlotName, extensionInstance] of Object.entries(\n extensionBySlot\n )) {\n configExtensionRecords.push({\n slotModuleName,\n extensionModuleName: extensionInfo.moduleName,\n slotName: actualSlotName,\n extensionId: extensionInstance.id,\n });\n }\n }\n }\n configExtensionStore.setState({ mountedExtensions: configExtensionRecords });\n}\n","import { getExtensionSlotsConfigStore } from \"@openmrs/esm-config\";\nimport {\n ExtensionRegistration,\n ExtensionSlotInfo,\n ExtensionSlotInstance,\n ExtensionStore,\n extensionStore,\n updateExtensionStore,\n} from \"./store\";\n\nfunction createNewExtensionSlotInstance(): ExtensionSlotInstance {\n return {\n addedIds: [],\n idOrder: [],\n removedIds: [],\n };\n}\n\nfunction createNewExtensionSlotInfo(\n extensionSlotName: string\n): ExtensionSlotInfo {\n return {\n name: extensionSlotName,\n attachedIds: [],\n instances: {},\n };\n}\n\nexport function getExtensionNameFromId(extensionId: string) {\n const [extensionName] = extensionId.split(\"#\");\n return extensionName;\n}\n\nexport function getExtensionRegistrationFrom(\n state: ExtensionStore,\n extensionId: string\n): ExtensionRegistration | undefined {\n const name = getExtensionNameFromId(extensionId);\n return state.extensions[name];\n}\n\nexport function getExtensionRegistration(\n extensionId: string\n): ExtensionRegistration | undefined {\n const state = extensionStore.getState();\n return getExtensionRegistrationFrom(state, extensionId);\n}\n\nexport interface ExtensionDetails {\n moduleName: string;\n load: () => Promise<any>;\n meta: Record<string, any>;\n online?: boolean | object;\n offline?: boolean | object;\n order?: number;\n}\n\nexport const registerExtension: (\n name: string,\n details: ExtensionDetails\n) => void = extensionStore.action(\n (state, name: string, details: ExtensionDetails) => {\n state.extensions[name] = {\n ...details,\n name,\n instances: {},\n };\n }\n);\n\nexport function attach(extensionSlotName: string, extensionId: string) {\n updateExtensionStore((state) => {\n const existingSlot = state.slots[extensionSlotName];\n\n if (!existingSlot) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [extensionSlotName]: {\n ...createNewExtensionSlotInfo(extensionSlotName),\n attachedIds: [extensionId],\n },\n },\n };\n } else {\n return {\n ...state,\n slots: {\n ...state.slots,\n [extensionSlotName]: {\n ...existingSlot,\n attachedIds: [...existingSlot.attachedIds, extensionId],\n },\n },\n };\n }\n });\n}\n\nexport function detach(extensionSlotName: string, extensionId: string) {\n updateExtensionStore((state) => {\n const existingSlot = state.slots[extensionSlotName];\n\n if (existingSlot && existingSlot.attachedIds.includes(extensionId)) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [extensionSlotName]: {\n ...existingSlot,\n attachedIds: existingSlot.attachedIds.filter(\n (id) => id !== extensionId\n ),\n },\n },\n };\n } else {\n return state;\n }\n });\n}\n\nexport function detachAll(extensionSlotName: string) {\n updateExtensionStore((state) => {\n const existingSlot = state.slots[extensionSlotName];\n\n if (existingSlot) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [extensionSlotName]: {\n ...existingSlot,\n attachedIds: [],\n },\n },\n };\n } else {\n return state;\n }\n });\n}\n\nfunction getOrder(\n configuredOrder: number,\n extension: Partial<ExtensionRegistration> = {}\n) {\n if (configuredOrder === -1) {\n const { order = -1 } = extension;\n return order;\n }\n\n return configuredOrder;\n}\n\nexport function getAssignedIds(\n instance: ExtensionSlotInstance,\n attachedIds: Array<string>\n) {\n const { addedIds, removedIds, idOrder } = instance;\n const { extensions } = extensionStore.getState();\n\n return [...attachedIds, ...addedIds]\n .filter((m) => !removedIds.includes(m))\n .sort((a, b) => {\n const ai = getOrder(idOrder.indexOf(a), extensions[a]);\n const bi = getOrder(idOrder.indexOf(b), extensions[b]);\n\n if (bi === -1) {\n return -1;\n } else if (ai === -1) {\n return 1;\n } else {\n return ai - bi;\n }\n });\n}\n\nfunction getUpdatedExtensionSlotInfoForRegistration(\n existingSlot: ExtensionSlotInfo,\n slotName: string,\n moduleName: string\n) {\n if (!existingSlot) {\n return getUpdatedExtensionSlotInfo(slotName, moduleName, {\n ...createNewExtensionSlotInfo(slotName),\n instances: {\n [moduleName]: createNewExtensionSlotInstance(),\n },\n });\n } else if (moduleName in existingSlot.instances) {\n return getUpdatedExtensionSlotInfo(slotName, moduleName, existingSlot);\n } else {\n return getUpdatedExtensionSlotInfo(slotName, moduleName, {\n ...existingSlot,\n instances: {\n ...existingSlot.instances,\n [moduleName]: createNewExtensionSlotInstance(),\n },\n });\n }\n}\n\nfunction getUpdatedExtensionSlotInfoForUnregistration(\n existingSlot: ExtensionSlotInfo,\n extensionSlotName: string,\n moduleName: string\n) {\n const { [moduleName]: existing, ...instances } = existingSlot.instances;\n\n return getUpdatedExtensionSlotInfo(extensionSlotName, moduleName, {\n ...existingSlot,\n instances,\n });\n}\n\n/**\n * @param moduleName The name of the module that contains the extension slot\n * @param slotName The extension slot name that is actually used\n */\nexport function registerExtensionSlot(moduleName: string, slotName: string) {\n updateExtensionStore((state) => {\n const existingSlot = state.slots[slotName];\n const updatedSlot = getUpdatedExtensionSlotInfoForRegistration(\n existingSlot,\n slotName,\n moduleName\n );\n\n if (existingSlot !== updatedSlot) {\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: updatedSlot,\n },\n };\n }\n\n return state;\n });\n}\n\nexport function unregisterExtensionSlot(moduleName: string, slotName: string) {\n updateExtensionStore((state) => {\n const existingSlot = state.slots[slotName];\n\n if (existingSlot && moduleName in existingSlot.instances) {\n const updatedSlot = getUpdatedExtensionSlotInfoForUnregistration(\n existingSlot,\n slotName,\n moduleName\n );\n\n return {\n ...state,\n slots: {\n ...state.slots,\n [slotName]: updatedSlot,\n },\n };\n }\n\n return state;\n });\n}\n\nexport function getExtensionSlotsForModule(moduleName: string) {\n const state = extensionStore.getState();\n return Object.keys(state.slots).filter(\n (name) => moduleName in state.slots[name].instances\n );\n}\n\n/**\n * @internal\n * Just for testing.\n */\nexport const reset: () => void = extensionStore.action(() => {\n return {\n slots: {},\n extensions: {},\n };\n});\n\n/**\n * Returns information describing all extensions which can be rendered into an extension slot with\n * the specified name.\n * The returned information describe the extension itself, as well as the extension slot name(s)\n * with which it has been attached.\n * @param slotName The extension slot name for which matching extension info should be returned.\n * @param moduleName The module name. Used for applying extension-specific config values to the result.\n * @param extensionSlot The extension slot information object.\n */\nexport function getUpdatedExtensionSlotInfo(\n slotName: string,\n moduleName: string,\n extensionSlot: ExtensionSlotInfo\n): ExtensionSlotInfo {\n let instance = extensionSlot.instances[moduleName];\n\n if (instance) {\n const originalInstance = instance;\n const config =\n getExtensionSlotsConfigStore(moduleName).getState().extensionSlotConfigs[\n slotName\n ] ?? {};\n\n if (Array.isArray(config.add)) {\n config.add.forEach((extensionId) => {\n if (!instance.addedIds.includes(extensionId)) {\n instance = {\n ...instance,\n addedIds: [...instance.addedIds, extensionId],\n };\n }\n });\n }\n\n if (Array.isArray(config.remove)) {\n config.remove.forEach((extensionId) => {\n if (!instance.removedIds.includes(extensionId)) {\n instance = {\n ...instance,\n removedIds: [...instance.removedIds, extensionId],\n };\n }\n });\n }\n\n if (Array.isArray(config.order)) {\n const testOrder = config.order.join(\",\");\n const fullOrder = instance.idOrder.join(\",\");\n\n if (!fullOrder.endsWith(testOrder)) {\n config.order.forEach((extensionId) => {\n instance = {\n ...instance,\n idOrder: [\n ...instance.idOrder.filter((m) => m !== extensionId),\n extensionId,\n ],\n };\n });\n }\n }\n\n if (instance !== originalInstance) {\n return {\n ...extensionSlot,\n instances: {\n ...extensionSlot.instances,\n [moduleName]: instance,\n },\n };\n }\n }\n\n return extensionSlot;\n}\n","export function checkStatus(\n online: boolean | object = true,\n offline: boolean | object = false\n) {\n const status = navigator.onLine;\n return checkStatusFor(status, online, offline);\n}\n\nexport function checkStatusFor(\n status: boolean,\n online: boolean | object = true,\n offline: boolean | object = false\n) {\n return Boolean(status ? online : offline);\n}\n\nexport function getCustomProps(\n online: boolean | object | undefined,\n offline: boolean | object | undefined\n) {\n const status = navigator.onLine;\n const props = status ? online : offline;\n return typeof props === \"object\" ? props : {};\n}\n","import { update } from \"@openmrs/esm-state\";\nimport { mountRootParcel, Parcel } from \"single-spa\";\nimport { getExtensionNameFromId, getExtensionRegistration } from \"./extensions\";\nimport { checkStatus, getCustomProps } from \"./helpers\";\nimport { updateExtensionStore } from \"./store\";\n\nexport interface Lifecycle {\n bootstrap(): void;\n mount(): void;\n unmount(): void;\n update?(): void;\n}\n\nexport interface CancelLoading {\n (): void;\n}\n\n/**\n * Mounts into a DOM node (representing an extension slot)\n * a lazy-loaded component from *any* frontend module\n * that registered an extension component for this slot.\n */\nexport function renderExtension(\n domElement: HTMLElement,\n extensionSlotName: string,\n extensionSlotModuleName: string,\n extensionId: string,\n renderFunction: (lifecycle: Lifecycle) => Lifecycle = (x) => x,\n additionalProps: Record<string, any> = {}\n): CancelLoading {\n const extensionName = getExtensionNameFromId(extensionId);\n const extensionRegistration = getExtensionRegistration(extensionId);\n let active: boolean | Parcel = true;\n\n if (domElement) {\n if (!extensionRegistration) {\n throw Error(\n `Couldn't find extension '${extensionName}' to attach to '${extensionSlotName}'`\n );\n }\n\n const { load, online, offline, meta, moduleName } = extensionRegistration;\n\n if (checkStatus(online, offline)) {\n load().then(({ default: result, ...lifecycle }) => {\n if (active) {\n const parcel = mountRootParcel(\n renderFunction(result ?? lifecycle) as any,\n {\n ...getCustomProps(online, offline),\n ...additionalProps,\n _meta: meta,\n _extensionContext: {\n extensionId,\n extensionSlotName,\n extensionSlotModuleName,\n extensionModuleName: moduleName,\n },\n domElement,\n }\n );\n active = parcel;\n }\n });\n\n updateExtensionStore((state) =>\n update(\n state,\n [\n \"extensions\",\n extensionName,\n \"instances\",\n extensionSlotModuleName,\n extensionSlotName,\n ],\n { domElement, id: extensionId }\n )\n );\n }\n }\n\n return () => {\n if (typeof active === \"boolean\") {\n active = false;\n } else {\n const p = active;\n\n if (p.getStatus() !== \"MOUNTED\") {\n p.mountPromise.then(() => p.unmount());\n } else {\n p.unmount();\n }\n }\n };\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","export interface ConnectivityChangedEvent {\n online: boolean;\n}\n\nconst connectivityChangedEventName = \"openmrs:connectivity-changed\";\n\nexport function dispatchConnectivityChanged(online: boolean) {\n window.dispatchEvent(\n new CustomEvent(connectivityChangedEventName, { detail: { online } })\n );\n}\n\nexport function subscribeConnectivityChanged(\n cb: (ev: ConnectivityChangedEvent) => void\n) {\n const handler = (ev: CustomEvent) => cb(ev.detail);\n window.addEventListener(connectivityChangedEventName, handler);\n return () =>\n window.removeEventListener(connectivityChangedEventName, handler);\n}\n\nexport function subscribeConnectivity(\n cb: (ev: ConnectivityChangedEvent) => void\n) {\n cb({ online: navigator.onLine });\n return subscribeConnectivityChanged(cb);\n}\n\nexport interface PrecacheStaticDependenciesEvent {}\n\nconst precacheStaticDependenciesEventName =\n \"openmrs:precache-static-dependencies\";\n\nexport function dispatchPrecacheStaticDependencies(\n data: PrecacheStaticDependenciesEvent = {}\n) {\n window.dispatchEvent(\n new CustomEvent(precacheStaticDependenciesEventName, { detail: data })\n );\n}\n\nexport function subscribePrecacheStaticDependencies(\n cb: (data: PrecacheStaticDependenciesEvent) => void\n) {\n const handler = (ev: CustomEvent) => cb(ev.detail);\n window.addEventListener(precacheStaticDependenciesEventName, handler);\n return () =>\n window.removeEventListener(precacheStaticDependenciesEventName, handler);\n}\n\nexport interface ShowNotificationEvent {\n description: any;\n kind?:\n | \"error\"\n | \"info\"\n | \"info-square\"\n | \"success\"\n | \"warning\"\n | \"warning-alt\";\n title?: string;\n action?: any;\n millis?: number;\n}\n\nexport interface ShowToastEvent {\n description: any;\n kind?:\n | \"error\"\n | \"info\"\n | \"info-square\"\n | \"success\"\n | \"warning\"\n | \"warning-alt\";\n title?: string;\n millis?: number;\n}\n\nconst notificationShownName = \"openmrs:notification-shown\";\nconst toastShownName = \"openmrs:toast-shown\";\n\nexport function dispatchNotificationShown(data: ShowNotificationEvent) {\n window.dispatchEvent(\n new CustomEvent(notificationShownName, { detail: data })\n );\n}\n\nexport function subscribeNotificationShown(\n cb: (data: ShowNotificationEvent) => void\n) {\n const handler = (ev: CustomEvent) => cb(ev.detail);\n window.addEventListener(notificationShownName, handler);\n return () => window.removeEventListener(notificationShownName, handler);\n}\n\nexport function subscribeToastShown(cb: (data: ShowToastEvent) => void) {\n const handler = (ev: CustomEvent) => cb(ev.detail);\n window.addEventListener(toastShownName, handler);\n return () => window.removeEventListener(toastShownName, handler);\n}\n","import { SpaConfig } from \"./types\";\n\nexport function setupPaths(config: SpaConfig) {\n window.openmrsBase = config.apiUrl;\n window.spaBase = config.spaPath;\n window.spaEnv = config.env || \"production\";\n window.spaVersion = process.env.BUILD_VERSION;\n window.getOpenmrsSpaBase = () => `${window.spaBase}/`;\n}\n\nexport function setupUtils() {\n window.copyText = (source: HTMLElement) => {\n const sel = window.getSelection();\n\n if (sel) {\n const r = document.createRange();\n r.selectNode(source);\n sel.removeAllRanges();\n sel.addRange(r);\n document.execCommand(\"copy\");\n sel.removeAllRanges();\n }\n };\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__766__;","module.exports = __WEBPACK_EXTERNAL_MODULE__685__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","try{self[\"workbox:window:6.2.4\"]&&_()}catch(n){}function n(n,t){return new Promise((function(r){var e=new MessageChannel;e.port1.onmessage=function(n){r(n.data)},n.postMessage(t,[e.port2])}))}function t(n,t){for(var r=0;r<t.length;r++){var e=t[r];e.enumerable=e.enumerable||!1,e.configurable=!0,\"value\"in e&&(e.writable=!0),Object.defineProperty(n,e.key,e)}}function r(n,t){(null==t||t>n.length)&&(t=n.length);for(var r=0,e=new Array(t);r<t;r++)e[r]=n[r];return e}function e(n,t){var e;if(\"undefined\"==typeof Symbol||null==n[Symbol.iterator]){if(Array.isArray(n)||(e=function(n,t){if(n){if(\"string\"==typeof n)return r(n,t);var e=Object.prototype.toString.call(n).slice(8,-1);return\"Object\"===e&&n.constructor&&(e=n.constructor.name),\"Map\"===e||\"Set\"===e?Array.from(n):\"Arguments\"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?r(n,t):void 0}}(n))||t&&n&&\"number\"==typeof n.length){e&&(n=e);var i=0;return function(){return i>=n.length?{done:!0}:{done:!1,value:n[i++]}}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}return(e=n[Symbol.iterator]()).next.bind(e)}try{self[\"workbox:core:6.2.4\"]&&_()}catch(n){}var i=function(){var n=this;this.promise=new Promise((function(t,r){n.resolve=t,n.reject=r}))};function o(n,t){var r=location.href;return new URL(n,r).href===new URL(t,r).href}var u=function(n,t){this.type=n,Object.assign(this,t)};function a(n,t,r){return r?t?t(n):n:(n&&n.then||(n=Promise.resolve(n)),t?n.then(t):n)}function c(){}var f={type:\"SKIP_WAITING\"};function s(n,t){if(!t)return n&&n.then?n.then(c):Promise.resolve()}var v=function(r){var e,c;function v(n,t){var e,c;return void 0===t&&(t={}),(e=r.call(this)||this).nn={},e.tn=0,e.rn=new i,e.en=new i,e.on=new i,e.un=0,e.an=new Set,e.cn=function(){var n=e.fn,t=n.installing;e.tn>0||!o(t.scriptURL,e.sn.toString())||performance.now()>e.un+6e4?(e.vn=t,n.removeEventListener(\"updatefound\",e.cn)):(e.hn=t,e.an.add(t),e.rn.resolve(t)),++e.tn,t.addEventListener(\"statechange\",e.ln)},e.ln=function(n){var t=e.fn,r=n.target,i=r.state,o=r===e.vn,a={sw:r,isExternal:o,originalEvent:n};!o&&e.mn&&(a.isUpdate=!0),e.dispatchEvent(new u(i,a)),\"installed\"===i?e.wn=self.setTimeout((function(){\"installed\"===i&&t.waiting===r&&e.dispatchEvent(new u(\"waiting\",a))}),200):\"activating\"===i&&(clearTimeout(e.wn),o||e.en.resolve(r))},e.dn=function(n){var t=e.hn,r=t!==navigator.serviceWorker.controller;e.dispatchEvent(new u(\"controlling\",{isExternal:r,originalEvent:n,sw:t,isUpdate:e.mn})),r||e.on.resolve(t)},e.gn=(c=function(n){var t=n.data,r=n.ports,i=n.source;return a(e.getSW(),(function(){e.an.has(i)&&e.dispatchEvent(new u(\"message\",{data:t,originalEvent:n,ports:r,sw:i}))}))},function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];try{return Promise.resolve(c.apply(this,n))}catch(n){return Promise.reject(n)}}),e.sn=n,e.nn=t,navigator.serviceWorker.addEventListener(\"message\",e.gn),e}c=r,(e=v).prototype=Object.create(c.prototype),e.prototype.constructor=e,e.__proto__=c;var h,l,m,w=v.prototype;return w.register=function(n){var t=(void 0===n?{}:n).immediate,r=void 0!==t&&t;try{var e=this;return function(n,t){var r=n();if(r&&r.then)return r.then(t);return t(r)}((function(){if(!r&&\"complete\"!==document.readyState)return s(new Promise((function(n){return window.addEventListener(\"load\",n)})))}),(function(){return e.mn=Boolean(navigator.serviceWorker.controller),e.yn=e.pn(),a(e.bn(),(function(n){e.fn=n,e.yn&&(e.hn=e.yn,e.en.resolve(e.yn),e.on.resolve(e.yn),e.yn.addEventListener(\"statechange\",e.ln,{once:!0}));var t=e.fn.waiting;return t&&o(t.scriptURL,e.sn.toString())&&(e.hn=t,Promise.resolve().then((function(){e.dispatchEvent(new u(\"waiting\",{sw:t,wasWaitingBeforeRegister:!0}))})).then((function(){}))),e.hn&&(e.rn.resolve(e.hn),e.an.add(e.hn)),e.fn.addEventListener(\"updatefound\",e.cn),navigator.serviceWorker.addEventListener(\"controllerchange\",e.dn),e.fn}))}))}catch(n){return Promise.reject(n)}},w.update=function(){try{return this.fn?s(this.fn.update()):void 0}catch(n){return Promise.reject(n)}},w.getSW=function(){return void 0!==this.hn?Promise.resolve(this.hn):this.rn.promise},w.messageSW=function(t){try{return a(this.getSW(),(function(r){return n(r,t)}))}catch(n){return Promise.reject(n)}},w.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&n(this.fn.waiting,f)},w.pn=function(){var n=navigator.serviceWorker.controller;return n&&o(n.scriptURL,this.sn.toString())?n:void 0},w.bn=function(){try{var n=this;return function(n,t){try{var r=n()}catch(n){return t(n)}if(r&&r.then)return r.then(void 0,t);return r}((function(){return a(navigator.serviceWorker.register(n.sn,n.nn),(function(t){return n.un=performance.now(),t}))}),(function(n){throw n}))}catch(n){return Promise.reject(n)}},h=v,(l=[{key:\"active\",get:function(){return this.en.promise}},{key:\"controlling\",get:function(){return this.on.promise}}])&&t(h.prototype,l),m&&t(h,m),v}(function(){function n(){this.Pn=new Map}var t=n.prototype;return t.addEventListener=function(n,t){this.Sn(n).add(t)},t.removeEventListener=function(n,t){this.Sn(n).delete(t)},t.dispatchEvent=function(n){n.target=this;for(var t,r=e(this.Sn(n.type));!(t=r()).done;){(0,t.value)(n)}},t.Sn=function(n){return this.Pn.has(n)||this.Pn.set(n,new Set),this.Pn.get(n)},n}());export{v as Workbox,n as messageSW};\n//# sourceMappingURL=workbox-window.prod.es5.mjs.map\n","import { Workbox } from \"workbox-window\";\n\nlet workboxRegistration: Promise<Workbox> | undefined = undefined;\n\n/**\n * If not yet registered, registers the application's global Service Worker.\n * Throws if registration is not possible.\n * @param scriptURL The service worker script associated with this instance.\n * @param [registerOptions] The service worker options associated with this instance.\n * @returns A promise which resolves to the registered {@link Workbox} instance which manages the SW.\n */\nexport function registerOmrsServiceWorker(\n scriptUrl: string,\n registerOptions?: object\n) {\n if (workboxRegistration !== undefined) {\n console.warn(\n `The application's Service Worker has already been registered. The new service worker at ${scriptUrl} will not be registered.`\n );\n return workboxRegistration;\n }\n\n if (!(\"serviceWorker\" in navigator)) {\n throw new Error(\n \"Registering the Service Worker is not possible due to missing browser capabilities.\"\n );\n }\n\n const wb = new Workbox(scriptUrl, registerOptions);\n workboxRegistration = wb.register().then(() => wb);\n return workboxRegistration;\n}\n\n/**\n * If a service worker has been registered, returns a promise that resolves to a {@link Workbox}\n * instance which is used by the application to manage that service worker.\n *\n * If no service worker has been registered (e.g. when the application is built without offline specific features),\n * returns a promise which immediately resolves to `undefined`.\n * @returns A promise which either resolves to `undefined` or to the app's {@link Workbox} instance.\n */\nexport function getOmrsServiceWorker(): Promise<Workbox | undefined> {\n return workboxRegistration ?? Promise.resolve(undefined);\n}\n","export const omrsOfflineResponseBodyHttpHeaderName =\n \"x-omrs-offline-response-body\";\nexport const omrsOfflineResponseStatusHttpHeaderName =\n \"x-omrs-offline-response-status\";\nexport const omrsOfflineCachingStrategyHttpHeaderName =\n \"x-omrs-offline-caching-strategy\";\n\n/**\n * Defines the keys of the custom headers which can be appended to an HTTP request.\n * HTTP requests with these headers are handled in a special way by the SPA's service worker.\n */\nexport type OmrsOfflineHttpHeaders = {\n /**\n * If the client is offline and the request cannot be read from the cache (i.e. if there is no way\n * to receive any kind of data for this request), the service worker will return a response with\n * the body in this header.\n */\n [omrsOfflineResponseBodyHttpHeaderName]?: string;\n /**\n * If the client is offline and the request cannot be read from the cache (i.e. if there is no way\n * to receive any kind of data for this request), the service worker will return a response with\n * the status code defined in this header.\n */\n [omrsOfflineResponseStatusHttpHeaderName]?: `${number}`;\n /**\n * Instructs the service worker to use a specific caching strategy for this request.\n * The supported values are:\n *\n * * `default`: Equal to the absence of this header/an invalid value.\n * The service worker decides the strategy to be used.\n * * `network-first`: The service worker will make the request and cache its response.\n */\n [omrsOfflineCachingStrategyHttpHeaderName]?: \"default\" | \"network-first\";\n};\n\nexport type OmrsOfflineHttpHeaderNames = keyof OmrsOfflineHttpHeaders;\n","import type { ImportMap } from \"@openmrs/esm-globals\";\nimport { getOmrsServiceWorker } from \"./service-worker\";\n\n/**\n * Sends the specified message to the application's service worker.\n * @param message The message to be sent.\n * @returns A promise which completes when the message has been successfully processed by the Service Worker.\n */\nexport async function messageOmrsServiceWorker(\n message: KnownOmrsServiceWorkerMessages\n): Promise<MessageServiceWorkerResult<any>> {\n const sw = await getOmrsServiceWorker();\n return sw\n ? await sw.messageSW(message)\n : {\n success: false,\n result: undefined,\n error:\n \"No service worker has been registered. This is typically the case when the application has been built without offline-related features.\",\n };\n}\n\nexport interface OmrsServiceWorkerMessage<\n MessageTypeTypeIdentifier extends string\n> {\n type: MessageTypeTypeIdentifier;\n}\n\nexport interface OnImportMapChangedMessage\n extends OmrsServiceWorkerMessage<\"onImportMapChanged\"> {\n importMap: ImportMap;\n}\n\nexport interface ClearDynamicRoutesMessage\n extends OmrsServiceWorkerMessage<\"clearDynamicRoutes\"> {}\n\nexport interface RegisterDynamicRouteMessage\n extends OmrsServiceWorkerMessage<\"registerDynamicRoute\"> {\n pattern?: string;\n url?: string;\n}\n\nexport type KnownOmrsServiceWorkerMessages =\n | OnImportMapChangedMessage\n | ClearDynamicRoutesMessage\n | RegisterDynamicRouteMessage;\n\nexport interface MessageServiceWorkerResult<T> {\n success: boolean;\n result?: T;\n error?: string;\n}\n","import { NetworkRequestFailedEvent } from \"./service-worker-events\";\n\nconst networkRequestFailedEventName = \"openmrs:network-request-failed\";\n\nexport function dispatchNetworkRequestFailed(data: NetworkRequestFailedEvent) {\n window.dispatchEvent(\n new CustomEvent(networkRequestFailedEventName, { detail: data })\n );\n}\n\nexport function subscribeNetworkRequestFailed(\n cb: (data: NetworkRequestFailedEvent) => void\n) {\n const handler = (ev: CustomEvent) => cb(ev.detail);\n window.addEventListener(networkRequestFailedEventName, handler);\n return () =>\n window.removeEventListener(networkRequestFailedEventName, handler);\n}\n","export function patchXMLHttpRequest() {\n const send = XMLHttpRequest.prototype.send;\n\n XMLHttpRequest.prototype.send = function (...args) {\n return send.apply(this, args);\n };\n}\n","/*\n * Dexie.js - a minimalistic wrapper for IndexedDB\n * ===============================================\n *\n * By David Fahlander, david.fahlander@gmail.com\n *\n * Version 3.0.3, Wed Nov 18 2020\n *\n * http://dexie.org\n *\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/\n */\n \nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\n\n\n\n\n\n\n\nfunction __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nvar keys = Object.keys;\nvar isArray = Array.isArray;\nvar _global = typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n global;\nif (typeof Promise !== 'undefined' && !_global.Promise) {\n _global.Promise = Promise;\n}\nfunction extend(obj, extension) {\n if (typeof extension !== 'object')\n return obj;\n keys(extension).forEach(function (key) {\n obj[key] = extension[key];\n });\n return obj;\n}\nvar getProto = Object.getPrototypeOf;\nvar _hasOwn = {}.hasOwnProperty;\nfunction hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\nfunction props(proto, extension) {\n if (typeof extension === 'function')\n extension = extension(getProto(proto));\n keys(extension).forEach(function (key) {\n setProp(proto, key, extension[key]);\n });\n}\nvar defineProperty = Object.defineProperty;\nfunction setProp(obj, prop, functionOrGetSet, options) {\n defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, \"get\") && typeof functionOrGetSet.get === 'function' ?\n { get: functionOrGetSet.get, set: functionOrGetSet.set, configurable: true } :\n { value: functionOrGetSet, configurable: true, writable: true }, options));\n}\nfunction derive(Child) {\n return {\n from: function (Parent) {\n Child.prototype = Object.create(Parent.prototype);\n setProp(Child.prototype, \"constructor\", Child);\n return {\n extend: props.bind(null, Child.prototype)\n };\n }\n };\n}\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nfunction getPropertyDescriptor(obj, prop) {\n var pd = getOwnPropertyDescriptor(obj, prop);\n var proto;\n return pd || (proto = getProto(obj)) && getPropertyDescriptor(proto, prop);\n}\nvar _slice = [].slice;\nfunction slice(args, start, end) {\n return _slice.call(args, start, end);\n}\nfunction override(origFunc, overridedFactory) {\n return overridedFactory(origFunc);\n}\nfunction assert(b) {\n if (!b)\n throw new Error(\"Assertion Failed\");\n}\nfunction asap(fn) {\n if (_global.setImmediate)\n setImmediate(fn);\n else\n setTimeout(fn, 0);\n}\n\nfunction arrayToObject(array, extractor) {\n return array.reduce(function (result, item, i) {\n var nameAndValue = extractor(item, i);\n if (nameAndValue)\n result[nameAndValue[0]] = nameAndValue[1];\n return result;\n }, {});\n}\n\nfunction tryCatch(fn, onerror, args) {\n try {\n fn.apply(null, args);\n }\n catch (ex) {\n onerror && onerror(ex);\n }\n}\nfunction getByKeyPath(obj, keyPath) {\n if (hasOwn(obj, keyPath))\n return obj[keyPath];\n if (!keyPath)\n return obj;\n if (typeof keyPath !== 'string') {\n var rv = [];\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n var val = getByKeyPath(obj, keyPath[i]);\n rv.push(val);\n }\n return rv;\n }\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj === undefined ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return undefined;\n}\nfunction setByKeyPath(obj, keyPath, value) {\n if (!obj || keyPath === undefined)\n return;\n if ('isFrozen' in Object && Object.isFrozen(obj))\n return;\n if (typeof keyPath !== 'string' && 'length' in keyPath) {\n assert(typeof value !== 'string' && 'length' in value);\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n setByKeyPath(obj, keyPath[i], value[i]);\n }\n }\n else {\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var currentKeyPath = keyPath.substr(0, period);\n var remainingKeyPath = keyPath.substr(period + 1);\n if (remainingKeyPath === \"\")\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(currentKeyPath)))\n obj.splice(currentKeyPath, 1);\n else\n delete obj[currentKeyPath];\n }\n else\n obj[currentKeyPath] = value;\n else {\n var innerObj = obj[currentKeyPath];\n if (!innerObj)\n innerObj = (obj[currentKeyPath] = {});\n setByKeyPath(innerObj, remainingKeyPath, value);\n }\n }\n else {\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(keyPath)))\n obj.splice(keyPath, 1);\n else\n delete obj[keyPath];\n }\n else\n obj[keyPath] = value;\n }\n }\n}\nfunction delByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string')\n setByKeyPath(obj, keyPath, undefined);\n else if ('length' in keyPath)\n [].map.call(keyPath, function (kp) {\n setByKeyPath(obj, kp, undefined);\n });\n}\nfunction shallowClone(obj) {\n var rv = {};\n for (var m in obj) {\n if (hasOwn(obj, m))\n rv[m] = obj[m];\n }\n return rv;\n}\nvar concat = [].concat;\nfunction flatten(a) {\n return concat.apply([], a);\n}\nvar intrinsicTypeNames = \"Boolean,String,Date,RegExp,Blob,File,FileList,ArrayBuffer,DataView,Uint8ClampedArray,ImageData,Map,Set\"\n .split(',').concat(flatten([8, 16, 32, 64].map(function (num) { return [\"Int\", \"Uint\", \"Float\"].map(function (t) { return t + num + \"Array\"; }); }))).filter(function (t) { return _global[t]; });\nvar intrinsicTypes = intrinsicTypeNames.map(function (t) { return _global[t]; });\nvar intrinsicTypeNameSet = arrayToObject(intrinsicTypeNames, function (x) { return [x, true]; });\nfunction deepClone(any) {\n if (!any || typeof any !== 'object')\n return any;\n var rv;\n if (isArray(any)) {\n rv = [];\n for (var i = 0, l = any.length; i < l; ++i) {\n rv.push(deepClone(any[i]));\n }\n }\n else if (intrinsicTypes.indexOf(any.constructor) >= 0) {\n rv = any;\n }\n else {\n rv = any.constructor ? Object.create(any.constructor.prototype) : {};\n for (var prop in any) {\n if (hasOwn(any, prop)) {\n rv[prop] = deepClone(any[prop]);\n }\n }\n }\n return rv;\n}\nvar toString = {}.toString;\nfunction toStringTag(o) {\n return toString.call(o).slice(8, -1);\n}\nvar getValueOf = function (val, type) {\n return type === \"Array\" ? '' + val.map(function (v) { return getValueOf(v, toStringTag(v)); }) :\n type === \"ArrayBuffer\" ? '' + new Uint8Array(val) :\n type === \"Date\" ? val.getTime() :\n ArrayBuffer.isView(val) ? '' + new Uint8Array(val.buffer) :\n val;\n};\nfunction getObjectDiff(a, b, rv, prfx) {\n rv = rv || {};\n prfx = prfx || '';\n keys(a).forEach(function (prop) {\n if (!hasOwn(b, prop))\n rv[prfx + prop] = undefined;\n else {\n var ap = a[prop], bp = b[prop];\n if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) {\n var apTypeName = toStringTag(ap);\n var bpTypeName = toStringTag(bp);\n if (apTypeName === bpTypeName) {\n if (intrinsicTypeNameSet[apTypeName]) {\n if (getValueOf(ap, apTypeName) !== getValueOf(bp, bpTypeName)) {\n rv[prfx + prop] = b[prop];\n }\n }\n else {\n getObjectDiff(ap, bp, rv, prfx + prop + \".\");\n }\n }\n else {\n rv[prfx + prop] = b[prop];\n }\n }\n else if (ap !== bp)\n rv[prfx + prop] = b[prop];\n }\n });\n keys(b).forEach(function (prop) {\n if (!hasOwn(a, prop)) {\n rv[prfx + prop] = b[prop];\n }\n });\n return rv;\n}\nvar iteratorSymbol = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar getIteratorOf = iteratorSymbol ? function (x) {\n var i;\n return x != null && (i = x[iteratorSymbol]) && i.apply(x);\n} : function () { return null; };\nvar NO_CHAR_ARRAY = {};\nfunction getArrayOf(arrayLike) {\n var i, a, x, it;\n if (arguments.length === 1) {\n if (isArray(arrayLike))\n return arrayLike.slice();\n if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string')\n return [arrayLike];\n if ((it = getIteratorOf(arrayLike))) {\n a = [];\n while (x = it.next(), !x.done)\n a.push(x.value);\n return a;\n }\n if (arrayLike == null)\n return [arrayLike];\n i = arrayLike.length;\n if (typeof i === 'number') {\n a = new Array(i);\n while (i--)\n a[i] = arrayLike[i];\n return a;\n }\n return [arrayLike];\n }\n i = arguments.length;\n a = new Array(i);\n while (i--)\n a[i] = arguments[i];\n return a;\n}\nvar isAsyncFunction = typeof Symbol !== 'undefined'\n ? function (fn) { return fn[Symbol.toStringTag] === 'AsyncFunction'; }\n : function () { return false; };\n\nvar debug = typeof location !== 'undefined' &&\n /^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);\nfunction setDebug(value, filter) {\n debug = value;\n libraryFilter = filter;\n}\nvar libraryFilter = function () { return true; };\nvar NEEDS_THROW_FOR_STACK = !new Error(\"\").stack;\nfunction getErrorWithStack() {\n if (NEEDS_THROW_FOR_STACK)\n try {\n throw new Error();\n }\n catch (e) {\n return e;\n }\n return new Error();\n}\nfunction prettyStack(exception, numIgnoredFrames) {\n var stack = exception.stack;\n if (!stack)\n return \"\";\n numIgnoredFrames = (numIgnoredFrames || 0);\n if (stack.indexOf(exception.name) === 0)\n numIgnoredFrames += (exception.name + exception.message).split('\\n').length;\n return stack.split('\\n')\n .slice(numIgnoredFrames)\n .filter(libraryFilter)\n .map(function (frame) { return \"\\n\" + frame; })\n .join('');\n}\n\nvar dexieErrorNames = [\n 'Modify',\n 'Bulk',\n 'OpenFailed',\n 'VersionChange',\n 'Schema',\n 'Upgrade',\n 'InvalidTable',\n 'MissingAPI',\n 'NoSuchDatabase',\n 'InvalidArgument',\n 'SubTransaction',\n 'Unsupported',\n 'Internal',\n 'DatabaseClosed',\n 'PrematureCommit',\n 'ForeignAwait'\n];\nvar idbDomErrorNames = [\n 'Unknown',\n 'Constraint',\n 'Data',\n 'TransactionInactive',\n 'ReadOnly',\n 'Version',\n 'NotFound',\n 'InvalidState',\n 'InvalidAccess',\n 'Abort',\n 'Timeout',\n 'QuotaExceeded',\n 'Syntax',\n 'DataClone'\n];\nvar errorList = dexieErrorNames.concat(idbDomErrorNames);\nvar defaultTexts = {\n VersionChanged: \"Database version changed by other database connection\",\n DatabaseClosed: \"Database has been closed\",\n Abort: \"Transaction aborted\",\n TransactionInactive: \"Transaction has already completed or failed\"\n};\nfunction DexieError(name, msg) {\n this._e = getErrorWithStack();\n this.name = name;\n this.message = msg;\n}\nderive(DexieError).from(Error).extend({\n stack: {\n get: function () {\n return this._stack ||\n (this._stack = this.name + \": \" + this.message + prettyStack(this._e, 2));\n }\n },\n toString: function () { return this.name + \": \" + this.message; }\n});\nfunction getMultiErrorMessage(msg, failures) {\n return msg + \". Errors: \" + Object.keys(failures)\n .map(function (key) { return failures[key].toString(); })\n .filter(function (v, i, s) { return s.indexOf(v) === i; })\n .join('\\n');\n}\nfunction ModifyError(msg, failures, successCount, failedKeys) {\n this._e = getErrorWithStack();\n this.failures = failures;\n this.failedKeys = failedKeys;\n this.successCount = successCount;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(ModifyError).from(DexieError);\nfunction BulkError(msg, failures) {\n this._e = getErrorWithStack();\n this.name = \"BulkError\";\n this.failures = failures;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(BulkError).from(DexieError);\nvar errnames = errorList.reduce(function (obj, name) { return (obj[name] = name + \"Error\", obj); }, {});\nvar BaseException = DexieError;\nvar exceptions = errorList.reduce(function (obj, name) {\n var fullName = name + \"Error\";\n function DexieError(msgOrInner, inner) {\n this._e = getErrorWithStack();\n this.name = fullName;\n if (!msgOrInner) {\n this.message = defaultTexts[name] || fullName;\n this.inner = null;\n }\n else if (typeof msgOrInner === 'string') {\n this.message = \"\" + msgOrInner + (!inner ? '' : '\\n ' + inner);\n this.inner = inner || null;\n }\n else if (typeof msgOrInner === 'object') {\n this.message = msgOrInner.name + \" \" + msgOrInner.message;\n this.inner = msgOrInner;\n }\n }\n derive(DexieError).from(BaseException);\n obj[name] = DexieError;\n return obj;\n}, {});\nexceptions.Syntax = SyntaxError;\nexceptions.Type = TypeError;\nexceptions.Range = RangeError;\nvar exceptionMap = idbDomErrorNames.reduce(function (obj, name) {\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\nfunction mapError(domError, message) {\n if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name])\n return domError;\n var rv = new exceptionMap[domError.name](message || domError.message, domError);\n if (\"stack\" in domError) {\n setProp(rv, \"stack\", { get: function () {\n return this.inner.stack;\n } });\n }\n return rv;\n}\nvar fullNameExceptions = errorList.reduce(function (obj, name) {\n if ([\"Syntax\", \"Type\", \"Range\"].indexOf(name) === -1)\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\nfullNameExceptions.ModifyError = ModifyError;\nfullNameExceptions.DexieError = DexieError;\nfullNameExceptions.BulkError = BulkError;\n\nfunction nop() { }\nfunction mirror(val) { return val; }\nfunction pureFunctionChain(f1, f2) {\n if (f1 == null || f1 === mirror)\n return f2;\n return function (val) {\n return f2(f1(val));\n };\n}\nfunction callBoth(on1, on2) {\n return function () {\n on1.apply(this, arguments);\n on2.apply(this, arguments);\n };\n}\nfunction hookCreatingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res !== undefined)\n arguments[0] = res;\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res2 !== undefined ? res2 : res;\n };\n}\nfunction hookDeletingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n f1.apply(this, arguments);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = this.onerror = null;\n f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n };\n}\nfunction hookUpdatingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function (modifications) {\n var res = f1.apply(this, arguments);\n extend(modifications, res);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res === undefined ?\n (res2 === undefined ? undefined : res2) :\n (extend(res, res2));\n };\n}\nfunction reverseStoppableEventChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n if (f2.apply(this, arguments) === false)\n return false;\n return f1.apply(this, arguments);\n };\n}\n\nfunction promisableChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res && typeof res.then === 'function') {\n var thiz = this, i = arguments.length, args = new Array(i);\n while (i--)\n args[i] = arguments[i];\n return res.then(function () {\n return f2.apply(thiz, args);\n });\n }\n return f2.apply(this, arguments);\n };\n}\n\nvar INTERNAL = {};\nvar LONG_STACKS_CLIP_LIMIT = 100;\nvar MAX_LONG_STACKS = 20;\nvar ZONE_ECHO_LIMIT = 100;\nvar _a = typeof Promise === 'undefined' ?\n [] :\n (function () {\n var globalP = Promise.resolve();\n if (typeof crypto === 'undefined' || !crypto.subtle)\n return [globalP, globalP.__proto__, globalP];\n var nativeP = crypto.subtle.digest(\"SHA-512\", new Uint8Array([0]));\n return [\n nativeP,\n nativeP.__proto__,\n globalP\n ];\n })();\nvar resolvedNativePromise = _a[0];\nvar nativePromiseProto = _a[1];\nvar resolvedGlobalPromise = _a[2];\nvar nativePromiseThen = nativePromiseProto && nativePromiseProto.then;\nvar NativePromise = resolvedNativePromise && resolvedNativePromise.constructor;\nvar patchGlobalPromise = !!resolvedGlobalPromise;\nvar stack_being_generated = false;\nvar schedulePhysicalTick = resolvedGlobalPromise ?\n function () { resolvedGlobalPromise.then(physicalTick); }\n :\n _global.setImmediate ?\n setImmediate.bind(null, physicalTick) :\n _global.MutationObserver ?\n function () {\n var hiddenDiv = document.createElement(\"div\");\n (new MutationObserver(function () {\n physicalTick();\n hiddenDiv = null;\n })).observe(hiddenDiv, { attributes: true });\n hiddenDiv.setAttribute('i', '1');\n } :\n function () { setTimeout(physicalTick, 0); };\nvar asap$1 = function (callback, args) {\n microtickQueue.push([callback, args]);\n if (needsNewPhysicalTick) {\n schedulePhysicalTick();\n needsNewPhysicalTick = false;\n }\n};\nvar isOutsideMicroTick = true;\nvar needsNewPhysicalTick = true;\nvar unhandledErrors = [];\nvar rejectingErrors = [];\nvar currentFulfiller = null;\nvar rejectionMapper = mirror;\nvar globalPSD = {\n id: 'global',\n global: true,\n ref: 0,\n unhandleds: [],\n onunhandled: globalError,\n pgp: false,\n env: {},\n finalize: function () {\n this.unhandleds.forEach(function (uh) {\n try {\n globalError(uh[0], uh[1]);\n }\n catch (e) { }\n });\n }\n};\nvar PSD = globalPSD;\nvar microtickQueue = [];\nvar numScheduledCalls = 0;\nvar tickFinalizers = [];\nfunction DexiePromise(fn) {\n if (typeof this !== 'object')\n throw new TypeError('Promises must be constructed via new');\n this._listeners = [];\n this.onuncatched = nop;\n this._lib = false;\n var psd = (this._PSD = PSD);\n if (debug) {\n this._stackHolder = getErrorWithStack();\n this._prev = null;\n this._numPrev = 0;\n }\n if (typeof fn !== 'function') {\n if (fn !== INTERNAL)\n throw new TypeError('Not a function');\n this._state = arguments[1];\n this._value = arguments[2];\n if (this._state === false)\n handleRejection(this, this._value);\n return;\n }\n this._state = null;\n this._value = null;\n ++psd.ref;\n executePromiseTask(this, fn);\n}\nvar thenProp = {\n get: function () {\n var psd = PSD, microTaskId = totalEchoes;\n function then(onFulfilled, onRejected) {\n var _this = this;\n var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes);\n var cleanup = possibleAwait && !decrementExpectedAwaits();\n var rv = new DexiePromise(function (resolve, reject) {\n propagateToListener(_this, new Listener(nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup), nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup), resolve, reject, psd));\n });\n debug && linkToPreviousPromise(rv, this);\n return rv;\n }\n then.prototype = INTERNAL;\n return then;\n },\n set: function (value) {\n setProp(this, 'then', value && value.prototype === INTERNAL ?\n thenProp :\n {\n get: function () {\n return value;\n },\n set: thenProp.set\n });\n }\n};\nprops(DexiePromise.prototype, {\n then: thenProp,\n _then: function (onFulfilled, onRejected) {\n propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD));\n },\n catch: function (onRejected) {\n if (arguments.length === 1)\n return this.then(null, onRejected);\n var type = arguments[0], handler = arguments[1];\n return typeof type === 'function' ? this.then(null, function (err) {\n return err instanceof type ? handler(err) : PromiseReject(err);\n })\n : this.then(null, function (err) {\n return err && err.name === type ? handler(err) : PromiseReject(err);\n });\n },\n finally: function (onFinally) {\n return this.then(function (value) {\n onFinally();\n return value;\n }, function (err) {\n onFinally();\n return PromiseReject(err);\n });\n },\n stack: {\n get: function () {\n if (this._stack)\n return this._stack;\n try {\n stack_being_generated = true;\n var stacks = getStack(this, [], MAX_LONG_STACKS);\n var stack = stacks.join(\"\\nFrom previous: \");\n if (this._state !== null)\n this._stack = stack;\n return stack;\n }\n finally {\n stack_being_generated = false;\n }\n }\n },\n timeout: function (ms, msg) {\n var _this = this;\n return ms < Infinity ?\n new DexiePromise(function (resolve, reject) {\n var handle = setTimeout(function () { return reject(new exceptions.Timeout(msg)); }, ms);\n _this.then(resolve, reject).finally(clearTimeout.bind(null, handle));\n }) : this;\n }\n});\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise');\nglobalPSD.env = snapShot();\nfunction Listener(onFulfilled, onRejected, resolve, reject, zone) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n this.psd = zone;\n}\nprops(DexiePromise, {\n all: function () {\n var values = getArrayOf.apply(null, arguments)\n .map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (values.length === 0)\n resolve([]);\n var remaining = values.length;\n values.forEach(function (a, i) { return DexiePromise.resolve(a).then(function (x) {\n values[i] = x;\n if (!--remaining)\n resolve(values);\n }, reject); });\n });\n },\n resolve: function (value) {\n if (value instanceof DexiePromise)\n return value;\n if (value && typeof value.then === 'function')\n return new DexiePromise(function (resolve, reject) {\n value.then(resolve, reject);\n });\n var rv = new DexiePromise(INTERNAL, true, value);\n linkToPreviousPromise(rv, currentFulfiller);\n return rv;\n },\n reject: PromiseReject,\n race: function () {\n var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n values.map(function (value) { return DexiePromise.resolve(value).then(resolve, reject); });\n });\n },\n PSD: {\n get: function () { return PSD; },\n set: function (value) { return PSD = value; }\n },\n totalEchoes: { get: function () { return totalEchoes; } },\n newPSD: newScope,\n usePSD: usePSD,\n scheduler: {\n get: function () { return asap$1; },\n set: function (value) { asap$1 = value; }\n },\n rejectionMapper: {\n get: function () { return rejectionMapper; },\n set: function (value) { rejectionMapper = value; }\n },\n follow: function (fn, zoneProps) {\n return new DexiePromise(function (resolve, reject) {\n return newScope(function (resolve, reject) {\n var psd = PSD;\n psd.unhandleds = [];\n psd.onunhandled = reject;\n psd.finalize = callBoth(function () {\n var _this = this;\n run_at_end_of_this_or_next_physical_tick(function () {\n _this.unhandleds.length === 0 ? resolve() : reject(_this.unhandleds[0]);\n });\n }, psd.finalize);\n fn();\n }, zoneProps, resolve, reject);\n });\n }\n});\nif (NativePromise) {\n if (NativePromise.allSettled)\n setProp(DexiePromise, \"allSettled\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve) {\n if (possiblePromises.length === 0)\n resolve([]);\n var remaining = possiblePromises.length;\n var results = new Array(remaining);\n possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return results[i] = { status: \"fulfilled\", value: value }; }, function (reason) { return results[i] = { status: \"rejected\", reason: reason }; })\n .then(function () { return --remaining || resolve(results); }); });\n });\n });\n if (NativePromise.any && typeof AggregateError !== 'undefined')\n setProp(DexiePromise, \"any\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (possiblePromises.length === 0)\n reject(new AggregateError([]));\n var remaining = possiblePromises.length;\n var failures = new Array(remaining);\n possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return resolve(value); }, function (failure) {\n failures[i] = failure;\n if (!--remaining)\n reject(new AggregateError(failures));\n }); });\n });\n });\n}\nfunction executePromiseTask(promise, fn) {\n try {\n fn(function (value) {\n if (promise._state !== null)\n return;\n if (value === promise)\n throw new TypeError('A promise cannot be resolved with itself.');\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n if (value && typeof value.then === 'function') {\n executePromiseTask(promise, function (resolve, reject) {\n value instanceof DexiePromise ?\n value._then(resolve, reject) :\n value.then(resolve, reject);\n });\n }\n else {\n promise._state = true;\n promise._value = value;\n propagateAllListeners(promise);\n }\n if (shouldExecuteTick)\n endMicroTickScope();\n }, handleRejection.bind(null, promise));\n }\n catch (ex) {\n handleRejection(promise, ex);\n }\n}\nfunction handleRejection(promise, reason) {\n rejectingErrors.push(reason);\n if (promise._state !== null)\n return;\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n reason = rejectionMapper(reason);\n promise._state = false;\n promise._value = reason;\n debug && reason !== null && typeof reason === 'object' && !reason._promise && tryCatch(function () {\n var origProp = getPropertyDescriptor(reason, \"stack\");\n reason._promise = promise;\n setProp(reason, \"stack\", {\n get: function () {\n return stack_being_generated ?\n origProp && (origProp.get ?\n origProp.get.apply(reason) :\n origProp.value) :\n promise.stack;\n }\n });\n });\n addPossiblyUnhandledError(promise);\n propagateAllListeners(promise);\n if (shouldExecuteTick)\n endMicroTickScope();\n}\nfunction propagateAllListeners(promise) {\n var listeners = promise._listeners;\n promise._listeners = [];\n for (var i = 0, len = listeners.length; i < len; ++i) {\n propagateToListener(promise, listeners[i]);\n }\n var psd = promise._PSD;\n --psd.ref || psd.finalize();\n if (numScheduledCalls === 0) {\n ++numScheduledCalls;\n asap$1(function () {\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n }, []);\n }\n}\nfunction propagateToListener(promise, listener) {\n if (promise._state === null) {\n promise._listeners.push(listener);\n return;\n }\n var cb = promise._state ? listener.onFulfilled : listener.onRejected;\n if (cb === null) {\n return (promise._state ? listener.resolve : listener.reject)(promise._value);\n }\n ++listener.psd.ref;\n ++numScheduledCalls;\n asap$1(callListener, [cb, promise, listener]);\n}\nfunction callListener(cb, promise, listener) {\n try {\n currentFulfiller = promise;\n var ret, value = promise._value;\n if (promise._state) {\n ret = cb(value);\n }\n else {\n if (rejectingErrors.length)\n rejectingErrors = [];\n ret = cb(value);\n if (rejectingErrors.indexOf(value) === -1)\n markErrorAsHandled(promise);\n }\n listener.resolve(ret);\n }\n catch (e) {\n listener.reject(e);\n }\n finally {\n currentFulfiller = null;\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n --listener.psd.ref || listener.psd.finalize();\n }\n}\nfunction getStack(promise, stacks, limit) {\n if (stacks.length === limit)\n return stacks;\n var stack = \"\";\n if (promise._state === false) {\n var failure = promise._value, errorName, message;\n if (failure != null) {\n errorName = failure.name || \"Error\";\n message = failure.message || failure;\n stack = prettyStack(failure, 0);\n }\n else {\n errorName = failure;\n message = \"\";\n }\n stacks.push(errorName + (message ? \": \" + message : \"\") + stack);\n }\n if (debug) {\n stack = prettyStack(promise._stackHolder, 2);\n if (stack && stacks.indexOf(stack) === -1)\n stacks.push(stack);\n if (promise._prev)\n getStack(promise._prev, stacks, limit);\n }\n return stacks;\n}\nfunction linkToPreviousPromise(promise, prev) {\n var numPrev = prev ? prev._numPrev + 1 : 0;\n if (numPrev < LONG_STACKS_CLIP_LIMIT) {\n promise._prev = prev;\n promise._numPrev = numPrev;\n }\n}\nfunction physicalTick() {\n beginMicroTickScope() && endMicroTickScope();\n}\nfunction beginMicroTickScope() {\n var wasRootExec = isOutsideMicroTick;\n isOutsideMicroTick = false;\n needsNewPhysicalTick = false;\n return wasRootExec;\n}\nfunction endMicroTickScope() {\n var callbacks, i, l;\n do {\n while (microtickQueue.length > 0) {\n callbacks = microtickQueue;\n microtickQueue = [];\n l = callbacks.length;\n for (i = 0; i < l; ++i) {\n var item = callbacks[i];\n item[0].apply(null, item[1]);\n }\n }\n } while (microtickQueue.length > 0);\n isOutsideMicroTick = true;\n needsNewPhysicalTick = true;\n}\nfunction finalizePhysicalTick() {\n var unhandledErrs = unhandledErrors;\n unhandledErrors = [];\n unhandledErrs.forEach(function (p) {\n p._PSD.onunhandled.call(null, p._value, p);\n });\n var finalizers = tickFinalizers.slice(0);\n var i = finalizers.length;\n while (i)\n finalizers[--i]();\n}\nfunction run_at_end_of_this_or_next_physical_tick(fn) {\n function finalizer() {\n fn();\n tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1);\n }\n tickFinalizers.push(finalizer);\n ++numScheduledCalls;\n asap$1(function () {\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n }, []);\n}\nfunction addPossiblyUnhandledError(promise) {\n if (!unhandledErrors.some(function (p) { return p._value === promise._value; }))\n unhandledErrors.push(promise);\n}\nfunction markErrorAsHandled(promise) {\n var i = unhandledErrors.length;\n while (i)\n if (unhandledErrors[--i]._value === promise._value) {\n unhandledErrors.splice(i, 1);\n return;\n }\n}\nfunction PromiseReject(reason) {\n return new DexiePromise(INTERNAL, false, reason);\n}\nfunction wrap(fn, errorCatcher) {\n var psd = PSD;\n return function () {\n var wasRootExec = beginMicroTickScope(), outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn.apply(this, arguments);\n }\n catch (e) {\n errorCatcher && errorCatcher(e);\n }\n finally {\n switchToZone(outerScope, false);\n if (wasRootExec)\n endMicroTickScope();\n }\n };\n}\nvar task = { awaits: 0, echoes: 0, id: 0 };\nvar taskCounter = 0;\nvar zoneStack = [];\nvar zoneEchoes = 0;\nvar totalEchoes = 0;\nvar zone_id_counter = 0;\nfunction newScope(fn, props$$1, a1, a2) {\n var parent = PSD, psd = Object.create(parent);\n psd.parent = parent;\n psd.ref = 0;\n psd.global = false;\n psd.id = ++zone_id_counter;\n var globalEnv = globalPSD.env;\n psd.env = patchGlobalPromise ? {\n Promise: DexiePromise,\n PromiseProp: { value: DexiePromise, configurable: true, writable: true },\n all: DexiePromise.all,\n race: DexiePromise.race,\n allSettled: DexiePromise.allSettled,\n any: DexiePromise.any,\n resolve: DexiePromise.resolve,\n reject: DexiePromise.reject,\n nthen: getPatchedPromiseThen(globalEnv.nthen, psd),\n gthen: getPatchedPromiseThen(globalEnv.gthen, psd)\n } : {};\n if (props$$1)\n extend(psd, props$$1);\n ++parent.ref;\n psd.finalize = function () {\n --this.parent.ref || this.parent.finalize();\n };\n var rv = usePSD(psd, fn, a1, a2);\n if (psd.ref === 0)\n psd.finalize();\n return rv;\n}\nfunction incrementExpectedAwaits() {\n if (!task.id)\n task.id = ++taskCounter;\n ++task.awaits;\n task.echoes += ZONE_ECHO_LIMIT;\n return task.id;\n}\nfunction decrementExpectedAwaits() {\n if (!task.awaits)\n return false;\n if (--task.awaits === 0)\n task.id = 0;\n task.echoes = task.awaits * ZONE_ECHO_LIMIT;\n return true;\n}\nif (('' + nativePromiseThen).indexOf('[native code]') === -1) {\n incrementExpectedAwaits = decrementExpectedAwaits = nop;\n}\nfunction onPossibleParallellAsync(possiblePromise) {\n if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) {\n incrementExpectedAwaits();\n return possiblePromise.then(function (x) {\n decrementExpectedAwaits();\n return x;\n }, function (e) {\n decrementExpectedAwaits();\n return rejection(e);\n });\n }\n return possiblePromise;\n}\nfunction zoneEnterEcho(targetZone) {\n ++totalEchoes;\n if (!task.echoes || --task.echoes === 0) {\n task.echoes = task.id = 0;\n }\n zoneStack.push(PSD);\n switchToZone(targetZone, true);\n}\nfunction zoneLeaveEcho() {\n var zone = zoneStack[zoneStack.length - 1];\n zoneStack.pop();\n switchToZone(zone, false);\n}\nfunction switchToZone(targetZone, bEnteringZone) {\n var currentZone = PSD;\n if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) {\n enqueueNativeMicroTask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho);\n }\n if (targetZone === PSD)\n return;\n PSD = targetZone;\n if (currentZone === globalPSD)\n globalPSD.env = snapShot();\n if (patchGlobalPromise) {\n var GlobalPromise_1 = globalPSD.env.Promise;\n var targetEnv = targetZone.env;\n nativePromiseProto.then = targetEnv.nthen;\n GlobalPromise_1.prototype.then = targetEnv.gthen;\n if (currentZone.global || targetZone.global) {\n Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp);\n GlobalPromise_1.all = targetEnv.all;\n GlobalPromise_1.race = targetEnv.race;\n GlobalPromise_1.resolve = targetEnv.resolve;\n GlobalPromise_1.reject = targetEnv.reject;\n if (targetEnv.allSettled)\n GlobalPromise_1.allSettled = targetEnv.allSettled;\n if (targetEnv.any)\n GlobalPromise_1.any = targetEnv.any;\n }\n }\n}\nfunction snapShot() {\n var GlobalPromise = _global.Promise;\n return patchGlobalPromise ? {\n Promise: GlobalPromise,\n PromiseProp: Object.getOwnPropertyDescriptor(_global, \"Promise\"),\n all: GlobalPromise.all,\n race: GlobalPromise.race,\n allSettled: GlobalPromise.allSettled,\n any: GlobalPromise.any,\n resolve: GlobalPromise.resolve,\n reject: GlobalPromise.reject,\n nthen: nativePromiseProto.then,\n gthen: GlobalPromise.prototype.then\n } : {};\n}\nfunction usePSD(psd, fn, a1, a2, a3) {\n var outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn(a1, a2, a3);\n }\n finally {\n switchToZone(outerScope, false);\n }\n}\nfunction enqueueNativeMicroTask(job) {\n nativePromiseThen.call(resolvedNativePromise, job);\n}\nfunction nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) {\n return typeof fn !== 'function' ? fn : function () {\n var outerZone = PSD;\n if (possibleAwait)\n incrementExpectedAwaits();\n switchToZone(zone, true);\n try {\n return fn.apply(this, arguments);\n }\n finally {\n switchToZone(outerZone, false);\n if (cleanup)\n enqueueNativeMicroTask(decrementExpectedAwaits);\n }\n };\n}\nfunction getPatchedPromiseThen(origThen, zone) {\n return function (onResolved, onRejected) {\n return origThen.call(this, nativeAwaitCompatibleWrap(onResolved, zone), nativeAwaitCompatibleWrap(onRejected, zone));\n };\n}\nvar UNHANDLEDREJECTION = \"unhandledrejection\";\nfunction globalError(err, promise) {\n var rv;\n try {\n rv = promise.onuncatched(err);\n }\n catch (e) { }\n if (rv !== false)\n try {\n var event, eventData = { promise: promise, reason: err };\n if (_global.document && document.createEvent) {\n event = document.createEvent('Event');\n event.initEvent(UNHANDLEDREJECTION, true, true);\n extend(event, eventData);\n }\n else if (_global.CustomEvent) {\n event = new CustomEvent(UNHANDLEDREJECTION, { detail: eventData });\n extend(event, eventData);\n }\n if (event && _global.dispatchEvent) {\n dispatchEvent(event);\n if (!_global.PromiseRejectionEvent && _global.onunhandledrejection)\n try {\n _global.onunhandledrejection(event);\n }\n catch (_) { }\n }\n if (debug && event && !event.defaultPrevented) {\n console.warn(\"Unhandled rejection: \" + (err.stack || err));\n }\n }\n catch (e) { }\n}\nvar rejection = DexiePromise.reject;\n\nfunction tempTransaction(db, mode, storeNames, fn) {\n if (!db._state.openComplete && (!PSD.letThrough)) {\n if (!db._state.isBeingOpened) {\n if (!db._options.autoOpen)\n return rejection(new exceptions.DatabaseClosed());\n db.open().catch(nop);\n }\n return db._state.dbReadyPromise.then(function () { return tempTransaction(db, mode, storeNames, fn); });\n }\n else {\n var trans = db._createTransaction(mode, storeNames, db._dbSchema);\n try {\n trans.create();\n }\n catch (ex) {\n return rejection(ex);\n }\n return trans._promise(mode, function (resolve, reject) {\n return newScope(function () {\n PSD.trans = trans;\n return fn(resolve, reject, trans);\n });\n }).then(function (result) {\n return trans._completion.then(function () { return result; });\n });\n }\n}\n\nvar DEXIE_VERSION = '3.0.3';\nvar maxString = String.fromCharCode(65535);\nvar minKey = -Infinity;\nvar INVALID_KEY_ARGUMENT = \"Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.\";\nvar STRING_EXPECTED = \"String expected.\";\nvar connections = [];\nvar isIEOrEdge = typeof navigator !== 'undefined' && /(MSIE|Trident|Edge)/.test(navigator.userAgent);\nvar hasIEDeleteObjectStoreBug = isIEOrEdge;\nvar hangsOnDeleteLargeKeyRange = isIEOrEdge;\nvar dexieStackFrameFilter = function (frame) { return !/(dexie\\.js|dexie\\.min\\.js)/.test(frame); };\nvar DBNAMES_DB = '__dbnames';\nvar READONLY = 'readonly';\nvar READWRITE = 'readwrite';\n\nfunction combine(filter1, filter2) {\n return filter1 ?\n filter2 ?\n function () { return filter1.apply(this, arguments) && filter2.apply(this, arguments); } :\n filter1 :\n filter2;\n}\n\nvar AnyRange = {\n type: 3 ,\n lower: -Infinity,\n lowerOpen: false,\n upper: [[]],\n upperOpen: false\n};\n\nfunction workaroundForUndefinedPrimKey(keyPath) {\n return function (obj) {\n if (getByKeyPath(obj, keyPath) === undefined) {\n obj = deepClone(obj);\n delByKeyPath(obj, keyPath);\n }\n return obj;\n };\n}\n\nvar Table = (function () {\n function Table() {\n }\n Table.prototype._trans = function (mode, fn, writeLocked) {\n var trans = this._tx || PSD.trans;\n var tableName = this.name;\n function checkTableInTransaction(resolve, reject, trans) {\n if (!trans.schema[tableName])\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n return fn(trans.idbtrans, trans);\n }\n var wasRootExec = beginMicroTickScope();\n try {\n return trans && trans.db === this.db ?\n trans === PSD.trans ?\n trans._promise(mode, checkTableInTransaction, writeLocked) :\n newScope(function () { return trans._promise(mode, checkTableInTransaction, writeLocked); }, { trans: trans, transless: PSD.transless || PSD }) :\n tempTransaction(this.db, mode, [this.name], checkTableInTransaction);\n }\n finally {\n if (wasRootExec)\n endMicroTickScope();\n }\n };\n Table.prototype.get = function (keyOrCrit, cb) {\n var _this = this;\n if (keyOrCrit && keyOrCrit.constructor === Object)\n return this.where(keyOrCrit).first(cb);\n return this._trans('readonly', function (trans) {\n return _this.core.get({ trans: trans, key: keyOrCrit })\n .then(function (res) { return _this.hook.reading.fire(res); });\n }).then(cb);\n };\n Table.prototype.where = function (indexOrCrit) {\n if (typeof indexOrCrit === 'string')\n return new this.db.WhereClause(this, indexOrCrit);\n if (isArray(indexOrCrit))\n return new this.db.WhereClause(this, \"[\" + indexOrCrit.join('+') + \"]\");\n var keyPaths = keys(indexOrCrit);\n if (keyPaths.length === 1)\n return this\n .where(keyPaths[0])\n .equals(indexOrCrit[keyPaths[0]]);\n var compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(function (ix) {\n return ix.compound &&\n keyPaths.every(function (keyPath) { return ix.keyPath.indexOf(keyPath) >= 0; }) &&\n ix.keyPath.every(function (keyPath) { return keyPaths.indexOf(keyPath) >= 0; });\n })[0];\n if (compoundIndex && this.db._maxKey !== maxString)\n return this\n .where(compoundIndex.name)\n .equals(compoundIndex.keyPath.map(function (kp) { return indexOrCrit[kp]; }));\n if (!compoundIndex && debug)\n console.warn(\"The query \" + JSON.stringify(indexOrCrit) + \" on \" + this.name + \" would benefit of a \" +\n (\"compound index [\" + keyPaths.join('+') + \"]\"));\n var idxByName = this.schema.idxByName;\n var idb = this.db._deps.indexedDB;\n function equals(a, b) {\n try {\n return idb.cmp(a, b) === 0;\n }\n catch (e) {\n return false;\n }\n }\n var _a = keyPaths.reduce(function (_a, keyPath) {\n var prevIndex = _a[0], prevFilterFn = _a[1];\n var index = idxByName[keyPath];\n var value = indexOrCrit[keyPath];\n return [\n prevIndex || index,\n prevIndex || !index ?\n combine(prevFilterFn, index && index.multi ?\n function (x) {\n var prop = getByKeyPath(x, keyPath);\n return isArray(prop) && prop.some(function (item) { return equals(value, item); });\n } : function (x) { return equals(value, getByKeyPath(x, keyPath)); })\n : prevFilterFn\n ];\n }, [null, null]), idx = _a[0], filterFunction = _a[1];\n return idx ?\n this.where(idx.name).equals(indexOrCrit[idx.keyPath])\n .filter(filterFunction) :\n compoundIndex ?\n this.filter(filterFunction) :\n this.where(keyPaths).equals('');\n };\n Table.prototype.filter = function (filterFunction) {\n return this.toCollection().and(filterFunction);\n };\n Table.prototype.count = function (thenShortcut) {\n return this.toCollection().count(thenShortcut);\n };\n Table.prototype.offset = function (offset) {\n return this.toCollection().offset(offset);\n };\n Table.prototype.limit = function (numRows) {\n return this.toCollection().limit(numRows);\n };\n Table.prototype.each = function (callback) {\n return this.toCollection().each(callback);\n };\n Table.prototype.toArray = function (thenShortcut) {\n return this.toCollection().toArray(thenShortcut);\n };\n Table.prototype.toCollection = function () {\n return new this.db.Collection(new this.db.WhereClause(this));\n };\n Table.prototype.orderBy = function (index) {\n return new this.db.Collection(new this.db.WhereClause(this, isArray(index) ?\n \"[\" + index.join('+') + \"]\" :\n index));\n };\n Table.prototype.reverse = function () {\n return this.toCollection().reverse();\n };\n Table.prototype.mapToClass = function (constructor) {\n this.schema.mappedClass = constructor;\n var readHook = function (obj) {\n if (!obj)\n return obj;\n var res = Object.create(constructor.prototype);\n for (var m in obj)\n if (hasOwn(obj, m))\n try {\n res[m] = obj[m];\n }\n catch (_) { }\n return res;\n };\n if (this.schema.readHook) {\n this.hook.reading.unsubscribe(this.schema.readHook);\n }\n this.schema.readHook = readHook;\n this.hook(\"reading\", readHook);\n return constructor;\n };\n Table.prototype.defineClass = function () {\n function Class(content) {\n extend(this, content);\n }\n \n return this.mapToClass(Class);\n };\n Table.prototype.add = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({ trans: trans, type: 'add', keys: key != null ? [key] : null, values: [objToAdd] });\n }).then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n .then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n }\n catch (_) { }\n \n }\n return lastResult;\n });\n };\n Table.prototype.update = function (keyOrObject, modifications) {\n if (typeof modifications !== 'object' || isArray(modifications))\n throw new exceptions.InvalidArgument(\"Modifications must be an object.\");\n if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) {\n keys(modifications).forEach(function (keyPath) {\n setByKeyPath(keyOrObject, keyPath, modifications[keyPath]);\n });\n var key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath);\n if (key === undefined)\n return rejection(new exceptions.InvalidArgument(\"Given object does not contain its primary key\"));\n return this.where(\":id\").equals(key).modify(modifications);\n }\n else {\n return this.where(\":id\").equals(keyOrObject).modify(modifications);\n }\n };\n Table.prototype.put = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'put', values: [objToAdd], keys: key != null ? [key] : null }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n .then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n }\n catch (_) { }\n \n }\n return lastResult;\n });\n };\n Table.prototype.delete = function (key) {\n var _this = this;\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'delete', keys: [key] }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n };\n Table.prototype.clear = function () {\n var _this = this;\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'deleteRange', range: AnyRange }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n };\n Table.prototype.bulkGet = function (keys$$1) {\n var _this = this;\n return this._trans('readonly', function (trans) {\n return _this.core.getMany({\n keys: keys$$1,\n trans: trans\n }).then(function (result) { return result.map(function (res) { return _this.hook.reading.fire(res); }); });\n });\n };\n Table.prototype.bulkAdd = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys$$1 = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys$$1 ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n if (keyPath && keys$$1)\n throw new exceptions.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");\n if (keys$$1 && keys$$1.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToAdd = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return _this.core.mutate({ trans: trans, type: 'add', keys: keys$$1, values: objectsToAdd, wantResults: wantResults })\n .then(function (_a) {\n var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0)\n return result;\n throw new BulkError(_this.name + \".bulkAdd(): \" + numFailures + \" of \" + numObjects + \" operations failed\", Object.keys(failures).map(function (pos) { return failures[pos]; }));\n });\n });\n };\n Table.prototype.bulkPut = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys$$1 = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys$$1 ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n if (keyPath && keys$$1)\n throw new exceptions.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");\n if (keys$$1 && keys$$1.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToPut = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return _this.core.mutate({ trans: trans, type: 'put', keys: keys$$1, values: objectsToPut, wantResults: wantResults })\n .then(function (_a) {\n var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0)\n return result;\n throw new BulkError(_this.name + \".bulkPut(): \" + numFailures + \" of \" + numObjects + \" operations failed\", Object.keys(failures).map(function (pos) { return failures[pos]; }));\n });\n });\n };\n Table.prototype.bulkDelete = function (keys$$1) {\n var _this = this;\n var numKeys = keys$$1.length;\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({ trans: trans, type: 'delete', keys: keys$$1 });\n }).then(function (_a) {\n var numFailures = _a.numFailures, lastResult = _a.lastResult, failures = _a.failures;\n if (numFailures === 0)\n return lastResult;\n throw new BulkError(_this.name + \".bulkDelete(): \" + numFailures + \" of \" + numKeys + \" operations failed\", failures);\n });\n };\n return Table;\n}());\n\nfunction Events(ctx) {\n var evs = {};\n var rv = function (eventName, subscriber) {\n if (subscriber) {\n var i = arguments.length, args = new Array(i - 1);\n while (--i)\n args[i - 1] = arguments[i];\n evs[eventName].subscribe.apply(null, args);\n return ctx;\n }\n else if (typeof (eventName) === 'string') {\n return evs[eventName];\n }\n };\n rv.addEventType = add;\n for (var i = 1, l = arguments.length; i < l; ++i) {\n add(arguments[i]);\n }\n return rv;\n function add(eventName, chainFunction, defaultFunction) {\n if (typeof eventName === 'object')\n return addConfiguredEvents(eventName);\n if (!chainFunction)\n chainFunction = reverseStoppableEventChain;\n if (!defaultFunction)\n defaultFunction = nop;\n var context = {\n subscribers: [],\n fire: defaultFunction,\n subscribe: function (cb) {\n if (context.subscribers.indexOf(cb) === -1) {\n context.subscribers.push(cb);\n context.fire = chainFunction(context.fire, cb);\n }\n },\n unsubscribe: function (cb) {\n context.subscribers = context.subscribers.filter(function (fn) { return fn !== cb; });\n context.fire = context.subscribers.reduce(chainFunction, defaultFunction);\n }\n };\n evs[eventName] = rv[eventName] = context;\n return context;\n }\n function addConfiguredEvents(cfg) {\n keys(cfg).forEach(function (eventName) {\n var args = cfg[eventName];\n if (isArray(args)) {\n add(eventName, cfg[eventName][0], cfg[eventName][1]);\n }\n else if (args === 'asap') {\n var context = add(eventName, mirror, function fire() {\n var i = arguments.length, args = new Array(i);\n while (i--)\n args[i] = arguments[i];\n context.subscribers.forEach(function (fn) {\n asap(function fireEvent() {\n fn.apply(null, args);\n });\n });\n });\n }\n else\n throw new exceptions.InvalidArgument(\"Invalid event config\");\n });\n }\n}\n\nfunction makeClassConstructor(prototype, constructor) {\n derive(constructor).from({ prototype: prototype });\n return constructor;\n}\n\nfunction createTableConstructor(db) {\n return makeClassConstructor(Table.prototype, function Table$$1(name, tableSchema, trans) {\n this.db = db;\n this._tx = trans;\n this.name = name;\n this.schema = tableSchema;\n this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, {\n \"creating\": [hookCreatingChain, nop],\n \"reading\": [pureFunctionChain, mirror],\n \"updating\": [hookUpdatingChain, nop],\n \"deleting\": [hookDeletingChain, nop]\n });\n });\n}\n\nfunction isPlainKeyRange(ctx, ignoreLimitFilter) {\n return !(ctx.filter || ctx.algorithm || ctx.or) &&\n (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter);\n}\nfunction addFilter(ctx, fn) {\n ctx.filter = combine(ctx.filter, fn);\n}\nfunction addReplayFilter(ctx, factory, isLimitFilter) {\n var curr = ctx.replayFilter;\n ctx.replayFilter = curr ? function () { return combine(curr(), factory()); } : factory;\n ctx.justLimit = isLimitFilter && !curr;\n}\nfunction addMatchFilter(ctx, fn) {\n ctx.isMatch = combine(ctx.isMatch, fn);\n}\nfunction getIndexOrStore(ctx, coreSchema) {\n if (ctx.isPrimKey)\n return coreSchema.primaryKey;\n var index = coreSchema.getIndexByKeyPath(ctx.index);\n if (!index)\n throw new exceptions.Schema(\"KeyPath \" + ctx.index + \" on object store \" + coreSchema.name + \" is not indexed\");\n return index;\n}\nfunction openCursor(ctx, coreTable, trans) {\n var index = getIndexOrStore(ctx, coreTable.schema);\n return coreTable.openCursor({\n trans: trans,\n values: !ctx.keysOnly,\n reverse: ctx.dir === 'prev',\n unique: !!ctx.unique,\n query: {\n index: index,\n range: ctx.range\n }\n });\n}\nfunction iter(ctx, fn, coreTrans, coreTable) {\n var filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter;\n if (!ctx.or) {\n return iterate(openCursor(ctx, coreTable, coreTrans), combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper);\n }\n else {\n var set_1 = {};\n var union = function (item, cursor, advance) {\n if (!filter || filter(cursor, advance, function (result) { return cursor.stop(result); }, function (err) { return cursor.fail(err); })) {\n var primaryKey = cursor.primaryKey;\n var key = '' + primaryKey;\n if (key === '[object ArrayBuffer]')\n key = '' + new Uint8Array(primaryKey);\n if (!hasOwn(set_1, key)) {\n set_1[key] = true;\n fn(item, cursor, advance);\n }\n }\n };\n return Promise.all([\n ctx.or._iterate(union, coreTrans),\n iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper)\n ]);\n }\n}\nfunction iterate(cursorPromise, filter, fn, valueMapper) {\n var mappedFn = valueMapper ? function (x, c, a) { return fn(valueMapper(x), c, a); } : fn;\n var wrappedFn = wrap(mappedFn);\n return cursorPromise.then(function (cursor) {\n if (cursor) {\n return cursor.start(function () {\n var c = function () { return cursor.continue(); };\n if (!filter || filter(cursor, function (advancer) { return c = advancer; }, function (val) { cursor.stop(val); c = nop; }, function (e) { cursor.fail(e); c = nop; }))\n wrappedFn(cursor.value, cursor, function (advancer) { return c = advancer; });\n c();\n });\n }\n });\n}\n\nvar Collection = (function () {\n function Collection() {\n }\n Collection.prototype._read = function (fn, cb) {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readonly', fn).then(cb);\n };\n Collection.prototype._write = function (fn) {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readwrite', fn, \"locked\");\n };\n Collection.prototype._addAlgorithm = function (fn) {\n var ctx = this._ctx;\n ctx.algorithm = combine(ctx.algorithm, fn);\n };\n Collection.prototype._iterate = function (fn, coreTrans) {\n return iter(this._ctx, fn, coreTrans, this._ctx.table.core);\n };\n Collection.prototype.clone = function (props$$1) {\n var rv = Object.create(this.constructor.prototype), ctx = Object.create(this._ctx);\n if (props$$1)\n extend(ctx, props$$1);\n rv._ctx = ctx;\n return rv;\n };\n Collection.prototype.raw = function () {\n this._ctx.valueMapper = null;\n return this;\n };\n Collection.prototype.each = function (fn) {\n var ctx = this._ctx;\n return this._read(function (trans) { return iter(ctx, fn, trans, ctx.table.core); });\n };\n Collection.prototype.count = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n var coreTable = ctx.table.core;\n if (isPlainKeyRange(ctx, true)) {\n return coreTable.count({\n trans: trans,\n query: {\n index: getIndexOrStore(ctx, coreTable.schema),\n range: ctx.range\n }\n }).then(function (count) { return Math.min(count, ctx.limit); });\n }\n else {\n var count = 0;\n return iter(ctx, function () { ++count; return false; }, trans, coreTable)\n .then(function () { return count; });\n }\n }).then(cb);\n };\n Collection.prototype.sortBy = function (keyPath, cb) {\n var parts = keyPath.split('.').reverse(), lastPart = parts[0], lastIndex = parts.length - 1;\n function getval(obj, i) {\n if (i)\n return getval(obj[parts[i]], i - 1);\n return obj[lastPart];\n }\n var order = this._ctx.dir === \"next\" ? 1 : -1;\n function sorter(a, b) {\n var aVal = getval(a, lastIndex), bVal = getval(b, lastIndex);\n return aVal < bVal ? -order : aVal > bVal ? order : 0;\n }\n return this.toArray(function (a) {\n return a.sort(sorter);\n }).then(cb);\n };\n Collection.prototype.toArray = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n var valueMapper_1 = ctx.valueMapper;\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n limit: ctx.limit,\n values: true,\n query: {\n index: index,\n range: ctx.range\n }\n }).then(function (_a) {\n var result = _a.result;\n return valueMapper_1 ? result.map(valueMapper_1) : result;\n });\n }\n else {\n var a_1 = [];\n return iter(ctx, function (item) { return a_1.push(item); }, trans, ctx.table.core).then(function () { return a_1; });\n }\n }, cb);\n };\n Collection.prototype.offset = function (offset) {\n var ctx = this._ctx;\n if (offset <= 0)\n return this;\n ctx.offset += offset;\n if (isPlainKeyRange(ctx)) {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function (cursor, advance) {\n if (offsetLeft === 0)\n return true;\n if (offsetLeft === 1) {\n --offsetLeft;\n return false;\n }\n advance(function () {\n cursor.advance(offsetLeft);\n offsetLeft = 0;\n });\n return false;\n };\n });\n }\n else {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function () { return (--offsetLeft < 0); };\n });\n }\n return this;\n };\n Collection.prototype.limit = function (numRows) {\n this._ctx.limit = Math.min(this._ctx.limit, numRows);\n addReplayFilter(this._ctx, function () {\n var rowsLeft = numRows;\n return function (cursor, advance, resolve) {\n if (--rowsLeft <= 0)\n advance(resolve);\n return rowsLeft >= 0;\n };\n }, true);\n return this;\n };\n Collection.prototype.until = function (filterFunction, bIncludeStopEntry) {\n addFilter(this._ctx, function (cursor, advance, resolve) {\n if (filterFunction(cursor.value)) {\n advance(resolve);\n return bIncludeStopEntry;\n }\n else {\n return true;\n }\n });\n return this;\n };\n Collection.prototype.first = function (cb) {\n return this.limit(1).toArray(function (a) { return a[0]; }).then(cb);\n };\n Collection.prototype.last = function (cb) {\n return this.reverse().first(cb);\n };\n Collection.prototype.filter = function (filterFunction) {\n addFilter(this._ctx, function (cursor) {\n return filterFunction(cursor.value);\n });\n addMatchFilter(this._ctx, filterFunction);\n return this;\n };\n Collection.prototype.and = function (filter) {\n return this.filter(filter);\n };\n Collection.prototype.or = function (indexName) {\n return new this.db.WhereClause(this._ctx.table, indexName, this);\n };\n Collection.prototype.reverse = function () {\n this._ctx.dir = (this._ctx.dir === \"prev\" ? \"next\" : \"prev\");\n if (this._ondirectionchange)\n this._ondirectionchange(this._ctx.dir);\n return this;\n };\n Collection.prototype.desc = function () {\n return this.reverse();\n };\n Collection.prototype.eachKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.key, cursor); });\n };\n Collection.prototype.eachUniqueKey = function (cb) {\n this._ctx.unique = \"unique\";\n return this.eachKey(cb);\n };\n Collection.prototype.eachPrimaryKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.primaryKey, cursor); });\n };\n Collection.prototype.keys = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.key);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.primaryKeys = function (cb) {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n return this._read(function (trans) {\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n values: false,\n limit: ctx.limit,\n query: {\n index: index,\n range: ctx.range\n }\n });\n }).then(function (_a) {\n var result = _a.result;\n return result;\n }).then(cb);\n }\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.primaryKey);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.uniqueKeys = function (cb) {\n this._ctx.unique = \"unique\";\n return this.keys(cb);\n };\n Collection.prototype.firstKey = function (cb) {\n return this.limit(1).keys(function (a) { return a[0]; }).then(cb);\n };\n Collection.prototype.lastKey = function (cb) {\n return this.reverse().firstKey(cb);\n };\n Collection.prototype.distinct = function () {\n var ctx = this._ctx, idx = ctx.index && ctx.table.schema.idxByName[ctx.index];\n if (!idx || !idx.multi)\n return this;\n var set = {};\n addFilter(this._ctx, function (cursor) {\n var strKey = cursor.primaryKey.toString();\n var found = hasOwn(set, strKey);\n set[strKey] = true;\n return !found;\n });\n return this;\n };\n Collection.prototype.modify = function (changes) {\n var _this = this;\n var ctx = this._ctx;\n return this._write(function (trans) {\n var modifyer;\n if (typeof changes === 'function') {\n modifyer = changes;\n }\n else {\n var keyPaths = keys(changes);\n var numKeys = keyPaths.length;\n modifyer = function (item) {\n var anythingModified = false;\n for (var i = 0; i < numKeys; ++i) {\n var keyPath = keyPaths[i], val = changes[keyPath];\n if (getByKeyPath(item, keyPath) !== val) {\n setByKeyPath(item, keyPath, val);\n anythingModified = true;\n }\n }\n return anythingModified;\n };\n }\n var coreTable = ctx.table.core;\n var _a = coreTable.schema.primaryKey, outbound = _a.outbound, extractKey = _a.extractKey;\n var limit = 'testmode' in Dexie ? 1 : 2000;\n var cmp = _this.db.core.cmp;\n var totalFailures = [];\n var successCount = 0;\n var failedKeys = [];\n var applyMutateResult = function (expectedCount, res) {\n var failures = res.failures, numFailures = res.numFailures;\n successCount += expectedCount - numFailures;\n for (var _i = 0, _a = keys(failures); _i < _a.length; _i++) {\n var pos = _a[_i];\n totalFailures.push(failures[pos]);\n }\n };\n return _this.clone().primaryKeys().then(function (keys$$1) {\n var nextChunk = function (offset) {\n var count = Math.min(limit, keys$$1.length - offset);\n return coreTable.getMany({ trans: trans, keys: keys$$1.slice(offset, offset + count) }).then(function (values) {\n var addValues = [];\n var putValues = [];\n var putKeys = outbound ? [] : null;\n var deleteKeys = [];\n for (var i = 0; i < count; ++i) {\n var origValue = values[i];\n var ctx_1 = {\n value: deepClone(origValue),\n primKey: keys$$1[offset + i]\n };\n if (modifyer.call(ctx_1, ctx_1.value, ctx_1) !== false) {\n if (ctx_1.value == null) {\n deleteKeys.push(keys$$1[offset + i]);\n }\n else if (!outbound && cmp(extractKey(origValue), extractKey(ctx_1.value)) !== 0) {\n deleteKeys.push(keys$$1[offset + i]);\n addValues.push(ctx_1.value);\n }\n else {\n putValues.push(ctx_1.value);\n if (outbound)\n putKeys.push(keys$$1[offset + i]);\n }\n }\n }\n return Promise.resolve(addValues.length > 0 &&\n coreTable.mutate({ trans: trans, type: 'add', values: addValues })\n .then(function (res) {\n for (var pos in res.failures) {\n deleteKeys.splice(parseInt(pos), 1);\n }\n applyMutateResult(addValues.length, res);\n })).then(function (res) { return putValues.length > 0 &&\n coreTable.mutate({ trans: trans, type: 'put', keys: putKeys, values: putValues })\n .then(function (res) { return applyMutateResult(putValues.length, res); }); }).then(function () { return deleteKeys.length > 0 &&\n coreTable.mutate({ trans: trans, type: 'delete', keys: deleteKeys })\n .then(function (res) { return applyMutateResult(deleteKeys.length, res); }); }).then(function () {\n return keys$$1.length > offset + count && nextChunk(offset + limit);\n });\n });\n };\n return nextChunk(0).then(function () {\n if (totalFailures.length > 0)\n throw new ModifyError(\"Error modifying one or more objects\", totalFailures, successCount, failedKeys);\n return keys$$1.length;\n });\n });\n });\n };\n Collection.prototype.delete = function () {\n var ctx = this._ctx, range = ctx.range;\n if (isPlainKeyRange(ctx) &&\n ((ctx.isPrimKey && !hangsOnDeleteLargeKeyRange) || range.type === 3 ))\n {\n return this._write(function (trans) {\n var primaryKey = ctx.table.core.schema.primaryKey;\n var coreRange = range;\n return ctx.table.core.count({ trans: trans, query: { index: primaryKey, range: coreRange } }).then(function (count) {\n return ctx.table.core.mutate({ trans: trans, type: 'deleteRange', range: coreRange })\n .then(function (_a) {\n var failures = _a.failures, lastResult = _a.lastResult, results = _a.results, numFailures = _a.numFailures;\n if (numFailures)\n throw new ModifyError(\"Could not delete some values\", Object.keys(failures).map(function (pos) { return failures[pos]; }), count - numFailures);\n return count - numFailures;\n });\n });\n });\n }\n return this.modify(function (value, ctx) { return ctx.value = null; });\n };\n return Collection;\n}());\n\nfunction createCollectionConstructor(db) {\n return makeClassConstructor(Collection.prototype, function Collection$$1(whereClause, keyRangeGenerator) {\n this.db = db;\n var keyRange = AnyRange, error = null;\n if (keyRangeGenerator)\n try {\n keyRange = keyRangeGenerator();\n }\n catch (ex) {\n error = ex;\n }\n var whereCtx = whereClause._ctx;\n var table = whereCtx.table;\n var readingHook = table.hook.reading.fire;\n this._ctx = {\n table: table,\n index: whereCtx.index,\n isPrimKey: (!whereCtx.index || (table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name)),\n range: keyRange,\n keysOnly: false,\n dir: \"next\",\n unique: \"\",\n algorithm: null,\n filter: null,\n replayFilter: null,\n justLimit: true,\n isMatch: null,\n offset: 0,\n limit: Infinity,\n error: error,\n or: whereCtx.or,\n valueMapper: readingHook !== mirror ? readingHook : null\n };\n });\n}\n\nfunction simpleCompare(a, b) {\n return a < b ? -1 : a === b ? 0 : 1;\n}\nfunction simpleCompareReverse(a, b) {\n return a > b ? -1 : a === b ? 0 : 1;\n}\n\nfunction fail(collectionOrWhereClause, err, T) {\n var collection = collectionOrWhereClause instanceof WhereClause ?\n new collectionOrWhereClause.Collection(collectionOrWhereClause) :\n collectionOrWhereClause;\n collection._ctx.error = T ? new T(err) : new TypeError(err);\n return collection;\n}\nfunction emptyCollection(whereClause) {\n return new whereClause.Collection(whereClause, function () { return rangeEqual(\"\"); }).limit(0);\n}\nfunction upperFactory(dir) {\n return dir === \"next\" ?\n function (s) { return s.toUpperCase(); } :\n function (s) { return s.toLowerCase(); };\n}\nfunction lowerFactory(dir) {\n return dir === \"next\" ?\n function (s) { return s.toLowerCase(); } :\n function (s) { return s.toUpperCase(); };\n}\nfunction nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) {\n var length = Math.min(key.length, lowerNeedle.length);\n var llp = -1;\n for (var i = 0; i < length; ++i) {\n var lwrKeyChar = lowerKey[i];\n if (lwrKeyChar !== lowerNeedle[i]) {\n if (cmp(key[i], upperNeedle[i]) < 0)\n return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1);\n if (cmp(key[i], lowerNeedle[i]) < 0)\n return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1);\n if (llp >= 0)\n return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1);\n return null;\n }\n if (cmp(key[i], lwrKeyChar) < 0)\n llp = i;\n }\n if (length < lowerNeedle.length && dir === \"next\")\n return key + upperNeedle.substr(key.length);\n if (length < key.length && dir === \"prev\")\n return key.substr(0, upperNeedle.length);\n return (llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1));\n}\nfunction addIgnoreCaseAlgorithm(whereClause, match, needles, suffix) {\n var upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix, needlesLen = needles.length;\n if (!needles.every(function (s) { return typeof s === 'string'; })) {\n return fail(whereClause, STRING_EXPECTED);\n }\n function initDirection(dir) {\n upper = upperFactory(dir);\n lower = lowerFactory(dir);\n compare = (dir === \"next\" ? simpleCompare : simpleCompareReverse);\n var needleBounds = needles.map(function (needle) {\n return { lower: lower(needle), upper: upper(needle) };\n }).sort(function (a, b) {\n return compare(a.lower, b.lower);\n });\n upperNeedles = needleBounds.map(function (nb) { return nb.upper; });\n lowerNeedles = needleBounds.map(function (nb) { return nb.lower; });\n direction = dir;\n nextKeySuffix = (dir === \"next\" ? \"\" : suffix);\n }\n initDirection(\"next\");\n var c = new whereClause.Collection(whereClause, function () { return createRange(upperNeedles[0], lowerNeedles[needlesLen - 1] + suffix); });\n c._ondirectionchange = function (direction) {\n initDirection(direction);\n };\n var firstPossibleNeedle = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n if (typeof key !== 'string')\n return false;\n var lowerKey = lower(key);\n if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) {\n return true;\n }\n else {\n var lowestPossibleCasing = null;\n for (var i = firstPossibleNeedle; i < needlesLen; ++i) {\n var casing = nextCasing(key, lowerKey, upperNeedles[i], lowerNeedles[i], compare, direction);\n if (casing === null && lowestPossibleCasing === null)\n firstPossibleNeedle = i + 1;\n else if (lowestPossibleCasing === null || compare(lowestPossibleCasing, casing) > 0) {\n lowestPossibleCasing = casing;\n }\n }\n if (lowestPossibleCasing !== null) {\n advance(function () { cursor.continue(lowestPossibleCasing + nextKeySuffix); });\n }\n else {\n advance(resolve);\n }\n return false;\n }\n });\n return c;\n}\nfunction createRange(lower, upper, lowerOpen, upperOpen) {\n return {\n type: 2 ,\n lower: lower,\n upper: upper,\n lowerOpen: lowerOpen,\n upperOpen: upperOpen\n };\n}\nfunction rangeEqual(value) {\n return {\n type: 1 ,\n lower: value,\n upper: value\n };\n}\n\nvar WhereClause = (function () {\n function WhereClause() {\n }\n Object.defineProperty(WhereClause.prototype, \"Collection\", {\n get: function () {\n return this._ctx.table.db.Collection;\n },\n enumerable: true,\n configurable: true\n });\n WhereClause.prototype.between = function (lower, upper, includeLower, includeUpper) {\n includeLower = includeLower !== false;\n includeUpper = includeUpper === true;\n try {\n if ((this._cmp(lower, upper) > 0) ||\n (this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper)))\n return emptyCollection(this);\n return new this.Collection(this, function () { return createRange(lower, upper, !includeLower, !includeUpper); });\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n };\n WhereClause.prototype.equals = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return rangeEqual(value); });\n };\n WhereClause.prototype.above = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(value, undefined, true); });\n };\n WhereClause.prototype.aboveOrEqual = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(value, undefined, false); });\n };\n WhereClause.prototype.below = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(undefined, value, false, true); });\n };\n WhereClause.prototype.belowOrEqual = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(undefined, value); });\n };\n WhereClause.prototype.startsWith = function (str) {\n if (typeof str !== 'string')\n return fail(this, STRING_EXPECTED);\n return this.between(str, str + maxString, true, true);\n };\n WhereClause.prototype.startsWithIgnoreCase = function (str) {\n if (str === \"\")\n return this.startsWith(str);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return x.indexOf(a[0]) === 0; }, [str], maxString);\n };\n WhereClause.prototype.equalsIgnoreCase = function (str) {\n return addIgnoreCaseAlgorithm(this, function (x, a) { return x === a[0]; }, [str], \"\");\n };\n WhereClause.prototype.anyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return a.indexOf(x) !== -1; }, set, \"\");\n };\n WhereClause.prototype.startsWithAnyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return a.some(function (n) { return x.indexOf(n) === 0; }); }, set, maxString);\n };\n WhereClause.prototype.anyOf = function () {\n var _this = this;\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n var compare = this._cmp;\n try {\n set.sort(compare);\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n if (set.length === 0)\n return emptyCollection(this);\n var c = new this.Collection(this, function () { return createRange(set[0], set[set.length - 1]); });\n c._ondirectionchange = function (direction) {\n compare = (direction === \"next\" ?\n _this._ascending :\n _this._descending);\n set.sort(compare);\n };\n var i = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (compare(key, set[i]) > 0) {\n ++i;\n if (i === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (compare(key, set[i]) === 0) {\n return true;\n }\n else {\n advance(function () { cursor.continue(set[i]); });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.notEqual = function (value) {\n return this.inAnyRange([[minKey, value], [value, this.db._maxKey]], { includeLowers: false, includeUppers: false });\n };\n WhereClause.prototype.noneOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return new this.Collection(this);\n try {\n set.sort(this._ascending);\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var ranges = set.reduce(function (res, val) { return res ?\n res.concat([[res[res.length - 1][1], val]]) :\n [[minKey, val]]; }, null);\n ranges.push([set[set.length - 1], this.db._maxKey]);\n return this.inAnyRange(ranges, { includeLowers: false, includeUppers: false });\n };\n WhereClause.prototype.inAnyRange = function (ranges, options) {\n var _this = this;\n var cmp = this._cmp, ascending = this._ascending, descending = this._descending, min = this._min, max = this._max;\n if (ranges.length === 0)\n return emptyCollection(this);\n if (!ranges.every(function (range) {\n return range[0] !== undefined &&\n range[1] !== undefined &&\n ascending(range[0], range[1]) <= 0;\n })) {\n return fail(this, \"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\", exceptions.InvalidArgument);\n }\n var includeLowers = !options || options.includeLowers !== false;\n var includeUppers = options && options.includeUppers === true;\n function addRange(ranges, newRange) {\n var i = 0, l = ranges.length;\n for (; i < l; ++i) {\n var range = ranges[i];\n if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) {\n range[0] = min(range[0], newRange[0]);\n range[1] = max(range[1], newRange[1]);\n break;\n }\n }\n if (i === l)\n ranges.push(newRange);\n return ranges;\n }\n var sortDirection = ascending;\n function rangeSorter(a, b) { return sortDirection(a[0], b[0]); }\n var set;\n try {\n set = ranges.reduce(addRange, []);\n set.sort(rangeSorter);\n }\n catch (ex) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var rangePos = 0;\n var keyIsBeyondCurrentEntry = includeUppers ?\n function (key) { return ascending(key, set[rangePos][1]) > 0; } :\n function (key) { return ascending(key, set[rangePos][1]) >= 0; };\n var keyIsBeforeCurrentEntry = includeLowers ?\n function (key) { return descending(key, set[rangePos][0]) > 0; } :\n function (key) { return descending(key, set[rangePos][0]) >= 0; };\n function keyWithinCurrentRange(key) {\n return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key);\n }\n var checkKey = keyIsBeyondCurrentEntry;\n var c = new this.Collection(this, function () { return createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers); });\n c._ondirectionchange = function (direction) {\n if (direction === \"next\") {\n checkKey = keyIsBeyondCurrentEntry;\n sortDirection = ascending;\n }\n else {\n checkKey = keyIsBeforeCurrentEntry;\n sortDirection = descending;\n }\n set.sort(rangeSorter);\n };\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (checkKey(key)) {\n ++rangePos;\n if (rangePos === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (keyWithinCurrentRange(key)) {\n return true;\n }\n else if (_this._cmp(key, set[rangePos][1]) === 0 || _this._cmp(key, set[rangePos][0]) === 0) {\n return false;\n }\n else {\n advance(function () {\n if (sortDirection === ascending)\n cursor.continue(set[rangePos][0]);\n else\n cursor.continue(set[rangePos][1]);\n });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.startsWithAnyOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (!set.every(function (s) { return typeof s === 'string'; })) {\n return fail(this, \"startsWithAnyOf() only works with strings\");\n }\n if (set.length === 0)\n return emptyCollection(this);\n return this.inAnyRange(set.map(function (str) { return [str, str + maxString]; }));\n };\n return WhereClause;\n}());\n\nfunction createWhereClauseConstructor(db) {\n return makeClassConstructor(WhereClause.prototype, function WhereClause$$1(table, index, orCollection) {\n this.db = db;\n this._ctx = {\n table: table,\n index: index === \":id\" ? null : index,\n or: orCollection\n };\n var indexedDB = db._deps.indexedDB;\n if (!indexedDB)\n throw new exceptions.MissingAPI(\"indexedDB API missing\");\n this._cmp = this._ascending = indexedDB.cmp.bind(indexedDB);\n this._descending = function (a, b) { return indexedDB.cmp(b, a); };\n this._max = function (a, b) { return indexedDB.cmp(a, b) > 0 ? a : b; };\n this._min = function (a, b) { return indexedDB.cmp(a, b) < 0 ? a : b; };\n this._IDBKeyRange = db._deps.IDBKeyRange;\n });\n}\n\nfunction safariMultiStoreFix(storeNames) {\n return storeNames.length === 1 ? storeNames[0] : storeNames;\n}\n\nfunction getMaxKey(IdbKeyRange) {\n try {\n IdbKeyRange.only([[]]);\n return [[]];\n }\n catch (e) {\n return maxString;\n }\n}\n\nfunction eventRejectHandler(reject) {\n return wrap(function (event) {\n preventDefault(event);\n reject(event.target.error);\n return false;\n });\n}\n\n\n\nfunction preventDefault(event) {\n if (event.stopPropagation)\n event.stopPropagation();\n if (event.preventDefault)\n event.preventDefault();\n}\n\nvar Transaction = (function () {\n function Transaction() {\n }\n Transaction.prototype._lock = function () {\n assert(!PSD.global);\n ++this._reculock;\n if (this._reculock === 1 && !PSD.global)\n PSD.lockOwnerFor = this;\n return this;\n };\n Transaction.prototype._unlock = function () {\n assert(!PSD.global);\n if (--this._reculock === 0) {\n if (!PSD.global)\n PSD.lockOwnerFor = null;\n while (this._blockedFuncs.length > 0 && !this._locked()) {\n var fnAndPSD = this._blockedFuncs.shift();\n try {\n usePSD(fnAndPSD[1], fnAndPSD[0]);\n }\n catch (e) { }\n }\n }\n return this;\n };\n Transaction.prototype._locked = function () {\n return this._reculock && PSD.lockOwnerFor !== this;\n };\n Transaction.prototype.create = function (idbtrans) {\n var _this = this;\n if (!this.mode)\n return this;\n var idbdb = this.db.idbdb;\n var dbOpenError = this.db._state.dbOpenError;\n assert(!this.idbtrans);\n if (!idbtrans && !idbdb) {\n switch (dbOpenError && dbOpenError.name) {\n case \"DatabaseClosedError\":\n throw new exceptions.DatabaseClosed(dbOpenError);\n case \"MissingAPIError\":\n throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError);\n default:\n throw new exceptions.OpenFailed(dbOpenError);\n }\n }\n if (!this.active)\n throw new exceptions.TransactionInactive();\n assert(this._completion._state === null);\n idbtrans = this.idbtrans = idbtrans || idbdb.transaction(safariMultiStoreFix(this.storeNames), this.mode);\n idbtrans.onerror = wrap(function (ev) {\n preventDefault(ev);\n _this._reject(idbtrans.error);\n });\n idbtrans.onabort = wrap(function (ev) {\n preventDefault(ev);\n _this.active && _this._reject(new exceptions.Abort(idbtrans.error));\n _this.active = false;\n _this.on(\"abort\").fire(ev);\n });\n idbtrans.oncomplete = wrap(function () {\n _this.active = false;\n _this._resolve();\n });\n return this;\n };\n Transaction.prototype._promise = function (mode, fn, bWriteLock) {\n var _this = this;\n if (mode === 'readwrite' && this.mode !== 'readwrite')\n return rejection(new exceptions.ReadOnly(\"Transaction is readonly\"));\n if (!this.active)\n return rejection(new exceptions.TransactionInactive());\n if (this._locked()) {\n return new DexiePromise(function (resolve, reject) {\n _this._blockedFuncs.push([function () {\n _this._promise(mode, fn, bWriteLock).then(resolve, reject);\n }, PSD]);\n });\n }\n else if (bWriteLock) {\n return newScope(function () {\n var p = new DexiePromise(function (resolve, reject) {\n _this._lock();\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then)\n rv.then(resolve, reject);\n });\n p.finally(function () { return _this._unlock(); });\n p._lib = true;\n return p;\n });\n }\n else {\n var p = new DexiePromise(function (resolve, reject) {\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then)\n rv.then(resolve, reject);\n });\n p._lib = true;\n return p;\n }\n };\n Transaction.prototype._root = function () {\n return this.parent ? this.parent._root() : this;\n };\n Transaction.prototype.waitFor = function (promiseLike) {\n var root = this._root();\n var promise = DexiePromise.resolve(promiseLike);\n if (root._waitingFor) {\n root._waitingFor = root._waitingFor.then(function () { return promise; });\n }\n else {\n root._waitingFor = promise;\n root._waitingQueue = [];\n var store = root.idbtrans.objectStore(root.storeNames[0]);\n (function spin() {\n ++root._spinCount;\n while (root._waitingQueue.length)\n (root._waitingQueue.shift())();\n if (root._waitingFor)\n store.get(-Infinity).onsuccess = spin;\n }());\n }\n var currentWaitPromise = root._waitingFor;\n return new DexiePromise(function (resolve, reject) {\n promise.then(function (res) { return root._waitingQueue.push(wrap(resolve.bind(null, res))); }, function (err) { return root._waitingQueue.push(wrap(reject.bind(null, err))); }).finally(function () {\n if (root._waitingFor === currentWaitPromise) {\n root._waitingFor = null;\n }\n });\n });\n };\n Transaction.prototype.abort = function () {\n this.active && this._reject(new exceptions.Abort());\n this.active = false;\n };\n Transaction.prototype.table = function (tableName) {\n var memoizedTables = (this._memoizedTables || (this._memoizedTables = {}));\n if (hasOwn(memoizedTables, tableName))\n return memoizedTables[tableName];\n var tableSchema = this.schema[tableName];\n if (!tableSchema) {\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n }\n var transactionBoundTable = new this.db.Table(tableName, tableSchema, this);\n transactionBoundTable.core = this.db.core.table(tableName);\n memoizedTables[tableName] = transactionBoundTable;\n return transactionBoundTable;\n };\n return Transaction;\n}());\n\nfunction createTransactionConstructor(db) {\n return makeClassConstructor(Transaction.prototype, function Transaction$$1(mode, storeNames, dbschema, parent) {\n var _this = this;\n this.db = db;\n this.mode = mode;\n this.storeNames = storeNames;\n this.schema = dbschema;\n this.idbtrans = null;\n this.on = Events(this, \"complete\", \"error\", \"abort\");\n this.parent = parent || null;\n this.active = true;\n this._reculock = 0;\n this._blockedFuncs = [];\n this._resolve = null;\n this._reject = null;\n this._waitingFor = null;\n this._waitingQueue = null;\n this._spinCount = 0;\n this._completion = new DexiePromise(function (resolve, reject) {\n _this._resolve = resolve;\n _this._reject = reject;\n });\n this._completion.then(function () {\n _this.active = false;\n _this.on.complete.fire();\n }, function (e) {\n var wasActive = _this.active;\n _this.active = false;\n _this.on.error.fire(e);\n _this.parent ?\n _this.parent._reject(e) :\n wasActive && _this.idbtrans && _this.idbtrans.abort();\n return rejection(e);\n });\n });\n}\n\nfunction createIndexSpec(name, keyPath, unique, multi, auto, compound, isPrimKey) {\n return {\n name: name,\n keyPath: keyPath,\n unique: unique,\n multi: multi,\n auto: auto,\n compound: compound,\n src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? \"++\" : \"\") + nameFromKeyPath(keyPath)\n };\n}\nfunction nameFromKeyPath(keyPath) {\n return typeof keyPath === 'string' ?\n keyPath :\n keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n\nfunction createTableSchema(name, primKey, indexes) {\n return {\n name: name,\n primKey: primKey,\n indexes: indexes,\n mappedClass: null,\n idxByName: arrayToObject(indexes, function (index) { return [index.name, index]; })\n };\n}\n\nfunction getKeyExtractor(keyPath) {\n if (keyPath == null) {\n return function () { return undefined; };\n }\n else if (typeof keyPath === 'string') {\n return getSinglePathKeyExtractor(keyPath);\n }\n else {\n return function (obj) { return getByKeyPath(obj, keyPath); };\n }\n}\nfunction getSinglePathKeyExtractor(keyPath) {\n var split = keyPath.split('.');\n if (split.length === 1) {\n return function (obj) { return obj[keyPath]; };\n }\n else {\n return function (obj) { return getByKeyPath(obj, keyPath); };\n }\n}\n\nfunction getEffectiveKeys(primaryKey, req) {\n if (req.type === 'delete')\n return req.keys;\n return req.keys || req.values.map(primaryKey.extractKey);\n}\nfunction getExistingValues(table, req, effectiveKeys) {\n return req.type === 'add' ? Promise.resolve(new Array(req.values.length)) :\n table.getMany({ trans: req.trans, keys: effectiveKeys });\n}\n\nfunction arrayify(arrayLike) {\n return [].slice.call(arrayLike);\n}\n\nvar _id_counter = 0;\nfunction getKeyPathAlias(keyPath) {\n return keyPath == null ?\n \":id\" :\n typeof keyPath === 'string' ?\n keyPath :\n \"[\" + keyPath.join('+') + \"]\";\n}\nfunction createDBCore(db, indexedDB, IdbKeyRange, tmpTrans) {\n var cmp = indexedDB.cmp.bind(indexedDB);\n function extractSchema(db, trans) {\n var tables = arrayify(db.objectStoreNames);\n return {\n schema: {\n name: db.name,\n tables: tables.map(function (table) { return trans.objectStore(table); }).map(function (store) {\n var keyPath = store.keyPath, autoIncrement = store.autoIncrement;\n var compound = isArray(keyPath);\n var outbound = keyPath == null;\n var indexByKeyPath = {};\n var result = {\n name: store.name,\n primaryKey: {\n name: null,\n isPrimaryKey: true,\n outbound: outbound,\n compound: compound,\n keyPath: keyPath,\n autoIncrement: autoIncrement,\n unique: true,\n extractKey: getKeyExtractor(keyPath)\n },\n indexes: arrayify(store.indexNames).map(function (indexName) { return store.index(indexName); })\n .map(function (index) {\n var name = index.name, unique = index.unique, multiEntry = index.multiEntry, keyPath = index.keyPath;\n var compound = isArray(keyPath);\n var result = {\n name: name,\n compound: compound,\n keyPath: keyPath,\n unique: unique,\n multiEntry: multiEntry,\n extractKey: getKeyExtractor(keyPath)\n };\n indexByKeyPath[getKeyPathAlias(keyPath)] = result;\n return result;\n }),\n getIndexByKeyPath: function (keyPath) { return indexByKeyPath[getKeyPathAlias(keyPath)]; }\n };\n indexByKeyPath[\":id\"] = result.primaryKey;\n if (keyPath != null) {\n indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey;\n }\n return result;\n })\n },\n hasGetAll: tables.length > 0 && ('getAll' in trans.objectStore(tables[0])) &&\n !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604)\n };\n }\n function makeIDBKeyRange(range) {\n if (range.type === 3 )\n return null;\n if (range.type === 4 )\n throw new Error(\"Cannot convert never type to IDBKeyRange\");\n var lower = range.lower, upper = range.upper, lowerOpen = range.lowerOpen, upperOpen = range.upperOpen;\n var idbRange = lower === undefined ?\n upper === undefined ?\n null :\n IdbKeyRange.upperBound(upper, !!upperOpen) :\n upper === undefined ?\n IdbKeyRange.lowerBound(lower, !!lowerOpen) :\n IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen);\n return idbRange;\n }\n function createDbCoreTable(tableSchema) {\n var tableName = tableSchema.name;\n function mutate(_a) {\n var trans = _a.trans, type = _a.type, keys$$1 = _a.keys, values = _a.values, range = _a.range, wantResults = _a.wantResults;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var outbound = store.keyPath == null;\n var isAddOrPut = type === \"put\" || type === \"add\";\n if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange')\n throw new Error(\"Invalid operation type: \" + type);\n var length = (keys$$1 || values || { length: 1 }).length;\n if (keys$$1 && values && keys$$1.length !== values.length) {\n throw new Error(\"Given keys array must have same length as given values array.\");\n }\n if (length === 0)\n return resolve({ numFailures: 0, failures: {}, results: [], lastResult: undefined });\n var results = wantResults && __spreadArrays((keys$$1 ?\n keys$$1 :\n getEffectiveKeys(tableSchema.primaryKey, { type: type, keys: keys$$1, values: values })));\n var req;\n var failures = [];\n var numFailures = 0;\n var errorHandler = function (event) {\n ++numFailures;\n preventDefault(event);\n if (results)\n results[event.target._reqno] = undefined;\n failures[event.target._reqno] = event.target.error;\n };\n var setResult = function (_a) {\n var target = _a.target;\n results[target._reqno] = target.result;\n };\n if (type === 'deleteRange') {\n if (range.type === 4 )\n return resolve({ numFailures: numFailures, failures: failures, results: results, lastResult: undefined });\n if (range.type === 3 )\n req = store.clear();\n else\n req = store.delete(makeIDBKeyRange(range));\n }\n else {\n var _a = isAddOrPut ?\n outbound ?\n [values, keys$$1] :\n [values, null] :\n [keys$$1, null], args1 = _a[0], args2 = _a[1];\n if (isAddOrPut) {\n for (var i = 0; i < length; ++i) {\n req = (args2 && args2[i] !== undefined ?\n store[type](args1[i], args2[i]) :\n store[type](args1[i]));\n req._reqno = i;\n if (results && results[i] === undefined) {\n req.onsuccess = setResult;\n }\n req.onerror = errorHandler;\n }\n }\n else {\n for (var i = 0; i < length; ++i) {\n req = store[type](args1[i]);\n req._reqno = i;\n req.onerror = errorHandler;\n }\n }\n }\n var done = function (event) {\n var lastResult = event.target.result;\n if (results)\n results[length - 1] = lastResult;\n resolve({\n numFailures: numFailures,\n failures: failures,\n results: results,\n lastResult: lastResult\n });\n };\n req.onerror = function (event) {\n errorHandler(event);\n done(event);\n };\n req.onsuccess = done;\n });\n }\n function openCursor(_a) {\n var trans = _a.trans, values = _a.values, query = _a.query, reverse = _a.reverse, unique = _a.unique;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var index = query.index, range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ?\n store :\n store.index(index.name);\n var direction = reverse ?\n unique ?\n \"prevunique\" :\n \"prev\" :\n unique ?\n \"nextunique\" :\n \"next\";\n var req = values || !('openKeyCursor' in source) ?\n source.openCursor(makeIDBKeyRange(range), direction) :\n source.openKeyCursor(makeIDBKeyRange(range), direction);\n req.onerror = eventRejectHandler(reject);\n req.onsuccess = wrap(function (ev) {\n var cursor = req.result;\n if (!cursor) {\n resolve(null);\n return;\n }\n cursor.___id = ++_id_counter;\n cursor.done = false;\n var _cursorContinue = cursor.continue.bind(cursor);\n var _cursorContinuePrimaryKey = cursor.continuePrimaryKey;\n if (_cursorContinuePrimaryKey)\n _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor);\n var _cursorAdvance = cursor.advance.bind(cursor);\n var doThrowCursorIsNotStarted = function () { throw new Error(\"Cursor not started\"); };\n var doThrowCursorIsStopped = function () { throw new Error(\"Cursor not stopped\"); };\n cursor.trans = trans;\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted;\n cursor.fail = wrap(reject);\n cursor.next = function () {\n var _this = this;\n var gotOne = 1;\n return this.start(function () { return gotOne-- ? _this.continue() : _this.stop(); }).then(function () { return _this; });\n };\n cursor.start = function (callback) {\n var iterationPromise = new Promise(function (resolveIteration, rejectIteration) {\n resolveIteration = wrap(resolveIteration);\n req.onerror = eventRejectHandler(rejectIteration);\n cursor.fail = rejectIteration;\n cursor.stop = function (value) {\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped;\n resolveIteration(value);\n };\n });\n var guardedCallback = function () {\n if (req.result) {\n try {\n callback();\n }\n catch (err) {\n cursor.fail(err);\n }\n }\n else {\n cursor.done = true;\n cursor.start = function () { throw new Error(\"Cursor behind last entry\"); };\n cursor.stop();\n }\n };\n req.onsuccess = wrap(function (ev) {\n req.onsuccess = guardedCallback;\n guardedCallback();\n });\n cursor.continue = _cursorContinue;\n cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n cursor.advance = _cursorAdvance;\n guardedCallback();\n return iterationPromise;\n };\n resolve(cursor);\n }, reject);\n });\n }\n function query(hasGetAll) {\n return function (request) {\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var trans = request.trans, values = request.values, limit = request.limit, query = request.query;\n var nonInfinitLimit = limit === Infinity ? undefined : limit;\n var index = query.index, range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n if (limit === 0)\n return resolve({ result: [] });\n if (hasGetAll) {\n var req = values ?\n source.getAll(idbKeyRange, nonInfinitLimit) :\n source.getAllKeys(idbKeyRange, nonInfinitLimit);\n req.onsuccess = function (event) { return resolve({ result: event.target.result }); };\n req.onerror = eventRejectHandler(reject);\n }\n else {\n var count_1 = 0;\n var req_1 = values || !('openKeyCursor' in source) ?\n source.openCursor(idbKeyRange) :\n source.openKeyCursor(idbKeyRange);\n var result_1 = [];\n req_1.onsuccess = function (event) {\n var cursor = req_1.result;\n if (!cursor)\n return resolve({ result: result_1 });\n result_1.push(values ? cursor.value : cursor.primaryKey);\n if (++count_1 === limit)\n return resolve({ result: result_1 });\n cursor.continue();\n };\n req_1.onerror = eventRejectHandler(reject);\n }\n });\n };\n }\n return {\n name: tableName,\n schema: tableSchema,\n mutate: mutate,\n getMany: function (_a) {\n var trans = _a.trans, keys$$1 = _a.keys;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var length = keys$$1.length;\n var result = new Array(length);\n var keyCount = 0;\n var callbackCount = 0;\n var valueCount = 0;\n var req;\n var successHandler = function (event) {\n var req = event.target;\n if ((result[req._pos] = req.result) != null)\n ++valueCount;\n if (++callbackCount === keyCount)\n resolve(result);\n };\n var errorHandler = eventRejectHandler(reject);\n for (var i = 0; i < length; ++i) {\n var key = keys$$1[i];\n if (key != null) {\n req = store.get(keys$$1[i]);\n req._pos = i;\n req.onsuccess = successHandler;\n req.onerror = errorHandler;\n ++keyCount;\n }\n }\n if (keyCount === 0)\n resolve(result);\n });\n },\n get: function (_a) {\n var trans = _a.trans, key = _a.key;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var req = store.get(key);\n req.onsuccess = function (event) { return resolve(event.target.result); };\n req.onerror = eventRejectHandler(reject);\n });\n },\n query: query(hasGetAll),\n openCursor: openCursor,\n count: function (_a) {\n var query = _a.query, trans = _a.trans;\n var index = query.index, range = query.range;\n return new Promise(function (resolve, reject) {\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n var req = idbKeyRange ? source.count(idbKeyRange) : source.count();\n req.onsuccess = wrap(function (ev) { return resolve(ev.target.result); });\n req.onerror = eventRejectHandler(reject);\n });\n }\n };\n }\n var _a = extractSchema(db, tmpTrans), schema = _a.schema, hasGetAll = _a.hasGetAll;\n var tables = schema.tables.map(function (tableSchema) { return createDbCoreTable(tableSchema); });\n var tableMap = {};\n tables.forEach(function (table) { return tableMap[table.name] = table; });\n return {\n stack: \"dbcore\",\n transaction: db.transaction.bind(db),\n table: function (name) {\n var result = tableMap[name];\n if (!result)\n throw new Error(\"Table '\" + name + \"' not found\");\n return tableMap[name];\n },\n cmp: cmp,\n MIN_KEY: -Infinity,\n MAX_KEY: getMaxKey(IdbKeyRange),\n schema: schema\n };\n}\n\nfunction createMiddlewareStack(stackImpl, middlewares) {\n return middlewares.reduce(function (down, _a) {\n var create = _a.create;\n return (__assign(__assign({}, down), create(down)));\n }, stackImpl);\n}\nfunction createMiddlewareStacks(middlewares, idbdb, _a, tmpTrans) {\n var IDBKeyRange = _a.IDBKeyRange, indexedDB = _a.indexedDB;\n var dbcore = createMiddlewareStack(createDBCore(idbdb, indexedDB, IDBKeyRange, tmpTrans), middlewares.dbcore);\n return {\n dbcore: dbcore\n };\n}\nfunction generateMiddlewareStacks(db, tmpTrans) {\n var idbdb = tmpTrans.db;\n var stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans);\n db.core = stacks.dbcore;\n db.tables.forEach(function (table) {\n var tableName = table.name;\n if (db.core.schema.tables.some(function (tbl) { return tbl.name === tableName; })) {\n table.core = db.core.table(tableName);\n if (db[tableName] instanceof db.Table) {\n db[tableName].core = table.core;\n }\n }\n });\n}\n\nfunction setApiOnPlace(db, objs, tableNames, dbschema) {\n tableNames.forEach(function (tableName) {\n var schema = dbschema[tableName];\n objs.forEach(function (obj) {\n var propDesc = getPropertyDescriptor(obj, tableName);\n if (!propDesc || (\"value\" in propDesc && propDesc.value === undefined)) {\n if (obj === db.Transaction.prototype || obj instanceof db.Transaction) {\n setProp(obj, tableName, {\n get: function () { return this.table(tableName); },\n set: function (value) {\n defineProperty(this, tableName, { value: value, writable: true, configurable: true, enumerable: true });\n }\n });\n }\n else {\n obj[tableName] = new db.Table(tableName, schema);\n }\n }\n });\n });\n}\nfunction removeTablesApi(db, objs) {\n objs.forEach(function (obj) {\n for (var key in obj) {\n if (obj[key] instanceof db.Table)\n delete obj[key];\n }\n });\n}\nfunction lowerVersionFirst(a, b) {\n return a._cfg.version - b._cfg.version;\n}\nfunction runUpgraders(db, oldVersion, idbUpgradeTrans, reject) {\n var globalSchema = db._dbSchema;\n var trans = db._createTransaction('readwrite', db._storeNames, globalSchema);\n trans.create(idbUpgradeTrans);\n trans._completion.catch(reject);\n var rejectTransaction = trans._reject.bind(trans);\n var transless = PSD.transless || PSD;\n newScope(function () {\n PSD.trans = trans;\n PSD.transless = transless;\n if (oldVersion === 0) {\n keys(globalSchema).forEach(function (tableName) {\n createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes);\n });\n generateMiddlewareStacks(db, idbUpgradeTrans);\n DexiePromise.follow(function () { return db.on.populate.fire(trans); }).catch(rejectTransaction);\n }\n else\n updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans).catch(rejectTransaction);\n });\n}\nfunction updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans) {\n var queue = [];\n var versions = db._versions;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n var anyContentUpgraderHasRun = false;\n var versToRun = versions.filter(function (v) { return v._cfg.version >= oldVersion; });\n versToRun.forEach(function (version) {\n queue.push(function () {\n var oldSchema = globalSchema;\n var newSchema = version._cfg.dbschema;\n adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans);\n adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans);\n globalSchema = db._dbSchema = newSchema;\n var diff = getSchemaDiff(oldSchema, newSchema);\n diff.add.forEach(function (tuple) {\n createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes);\n });\n diff.change.forEach(function (change) {\n if (change.recreate) {\n throw new exceptions.Upgrade(\"Not yet support for changing primary key\");\n }\n else {\n var store_1 = idbUpgradeTrans.objectStore(change.name);\n change.add.forEach(function (idx) { return addIndex(store_1, idx); });\n change.change.forEach(function (idx) {\n store_1.deleteIndex(idx.name);\n addIndex(store_1, idx);\n });\n change.del.forEach(function (idxName) { return store_1.deleteIndex(idxName); });\n }\n });\n var contentUpgrade = version._cfg.contentUpgrade;\n if (contentUpgrade && version._cfg.version > oldVersion) {\n generateMiddlewareStacks(db, idbUpgradeTrans);\n trans._memoizedTables = {};\n anyContentUpgraderHasRun = true;\n var upgradeSchema_1 = shallowClone(newSchema);\n diff.del.forEach(function (table) {\n upgradeSchema_1[table] = oldSchema[table];\n });\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema_1), upgradeSchema_1);\n trans.schema = upgradeSchema_1;\n var contentUpgradeIsAsync_1 = isAsyncFunction(contentUpgrade);\n if (contentUpgradeIsAsync_1) {\n incrementExpectedAwaits();\n }\n var returnValue_1;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue_1 = contentUpgrade(trans);\n if (returnValue_1) {\n if (contentUpgradeIsAsync_1) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue_1.then(decrementor, decrementor);\n }\n }\n });\n return (returnValue_1 && typeof returnValue_1.then === 'function' ?\n DexiePromise.resolve(returnValue_1) : promiseFollowed.then(function () { return returnValue_1; }));\n }\n });\n queue.push(function (idbtrans) {\n if (!anyContentUpgraderHasRun || !hasIEDeleteObjectStoreBug) {\n var newSchema = version._cfg.dbschema;\n deleteRemovedTables(newSchema, idbtrans);\n }\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema);\n trans.schema = db._dbSchema;\n });\n });\n function runQueue() {\n return queue.length ? DexiePromise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) :\n DexiePromise.resolve();\n }\n return runQueue().then(function () {\n createMissingTables(globalSchema, idbUpgradeTrans);\n });\n}\nfunction getSchemaDiff(oldSchema, newSchema) {\n var diff = {\n del: [],\n add: [],\n change: []\n };\n var table;\n for (table in oldSchema) {\n if (!newSchema[table])\n diff.del.push(table);\n }\n for (table in newSchema) {\n var oldDef = oldSchema[table], newDef = newSchema[table];\n if (!oldDef) {\n diff.add.push([table, newDef]);\n }\n else {\n var change = {\n name: table,\n def: newDef,\n recreate: false,\n del: [],\n add: [],\n change: []\n };\n if ((\n '' + (oldDef.primKey.keyPath || '')) !== ('' + (newDef.primKey.keyPath || '')) ||\n (oldDef.primKey.auto !== newDef.primKey.auto && !isIEOrEdge))\n {\n change.recreate = true;\n diff.change.push(change);\n }\n else {\n var oldIndexes = oldDef.idxByName;\n var newIndexes = newDef.idxByName;\n var idxName = void 0;\n for (idxName in oldIndexes) {\n if (!newIndexes[idxName])\n change.del.push(idxName);\n }\n for (idxName in newIndexes) {\n var oldIdx = oldIndexes[idxName], newIdx = newIndexes[idxName];\n if (!oldIdx)\n change.add.push(newIdx);\n else if (oldIdx.src !== newIdx.src)\n change.change.push(newIdx);\n }\n if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) {\n diff.change.push(change);\n }\n }\n }\n }\n return diff;\n}\nfunction createTable(idbtrans, tableName, primKey, indexes) {\n var store = idbtrans.db.createObjectStore(tableName, primKey.keyPath ?\n { keyPath: primKey.keyPath, autoIncrement: primKey.auto } :\n { autoIncrement: primKey.auto });\n indexes.forEach(function (idx) { return addIndex(store, idx); });\n return store;\n}\nfunction createMissingTables(newSchema, idbtrans) {\n keys(newSchema).forEach(function (tableName) {\n if (!idbtrans.db.objectStoreNames.contains(tableName)) {\n createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes);\n }\n });\n}\nfunction deleteRemovedTables(newSchema, idbtrans) {\n for (var i = 0; i < idbtrans.db.objectStoreNames.length; ++i) {\n var storeName = idbtrans.db.objectStoreNames[i];\n if (newSchema[storeName] == null) {\n idbtrans.db.deleteObjectStore(storeName);\n }\n }\n}\nfunction addIndex(store, idx) {\n store.createIndex(idx.name, idx.keyPath, { unique: idx.unique, multiEntry: idx.multi });\n}\nfunction buildGlobalSchema(db, idbdb, tmpTrans) {\n var globalSchema = {};\n var dbStoreNames = slice(idbdb.objectStoreNames, 0);\n dbStoreNames.forEach(function (storeName) {\n var store = tmpTrans.objectStore(storeName);\n var keyPath = store.keyPath;\n var primKey = createIndexSpec(nameFromKeyPath(keyPath), keyPath || \"\", false, false, !!store.autoIncrement, keyPath && typeof keyPath !== \"string\", true);\n var indexes = [];\n for (var j = 0; j < store.indexNames.length; ++j) {\n var idbindex = store.index(store.indexNames[j]);\n keyPath = idbindex.keyPath;\n var index = createIndexSpec(idbindex.name, keyPath, !!idbindex.unique, !!idbindex.multiEntry, false, keyPath && typeof keyPath !== \"string\", false);\n indexes.push(index);\n }\n globalSchema[storeName] = createTableSchema(storeName, primKey, indexes);\n });\n return globalSchema;\n}\nfunction readGlobalSchema(db, idbdb, tmpTrans) {\n db.verno = idbdb.version / 10;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans);\n db._storeNames = slice(idbdb.objectStoreNames, 0);\n setApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema);\n}\nfunction verifyInstalledSchema(db, tmpTrans) {\n var installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans);\n var diff = getSchemaDiff(installedSchema, db._dbSchema);\n return !(diff.add.length || diff.change.some(function (ch) { return ch.add.length || ch.change.length; }));\n}\nfunction adjustToExistingIndexNames(db, schema, idbtrans) {\n var storeNames = idbtrans.db.objectStoreNames;\n for (var i = 0; i < storeNames.length; ++i) {\n var storeName = storeNames[i];\n var store = idbtrans.objectStore(storeName);\n db._hasGetAll = 'getAll' in store;\n for (var j = 0; j < store.indexNames.length; ++j) {\n var indexName = store.indexNames[j];\n var keyPath = store.index(indexName).keyPath;\n var dexieName = typeof keyPath === 'string' ? keyPath : \"[\" + slice(keyPath).join('+') + \"]\";\n if (schema[storeName]) {\n var indexSpec = schema[storeName].idxByName[dexieName];\n if (indexSpec) {\n indexSpec.name = indexName;\n delete schema[storeName].idxByName[dexieName];\n schema[storeName].idxByName[indexName] = indexSpec;\n }\n }\n }\n }\n if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604) {\n db._hasGetAll = false;\n }\n}\nfunction parseIndexSyntax(primKeyAndIndexes) {\n return primKeyAndIndexes.split(',').map(function (index, indexNum) {\n index = index.trim();\n var name = index.replace(/([&*]|\\+\\+)/g, \"\");\n var keyPath = /^\\[/.test(name) ? name.match(/^\\[(.*)\\]$/)[1].split('+') : name;\n return createIndexSpec(name, keyPath || null, /\\&/.test(index), /\\*/.test(index), /\\+\\+/.test(index), isArray(keyPath), indexNum === 0);\n });\n}\n\nvar Version = (function () {\n function Version() {\n }\n Version.prototype._parseStoresSpec = function (stores, outSchema) {\n keys(stores).forEach(function (tableName) {\n if (stores[tableName] !== null) {\n var indexes = parseIndexSyntax(stores[tableName]);\n var primKey = indexes.shift();\n if (primKey.multi)\n throw new exceptions.Schema(\"Primary key cannot be multi-valued\");\n indexes.forEach(function (idx) {\n if (idx.auto)\n throw new exceptions.Schema(\"Only primary key can be marked as autoIncrement (++)\");\n if (!idx.keyPath)\n throw new exceptions.Schema(\"Index must have a name and cannot be an empty string\");\n });\n outSchema[tableName] = createTableSchema(tableName, primKey, indexes);\n }\n });\n };\n Version.prototype.stores = function (stores) {\n var db = this.db;\n this._cfg.storesSource = this._cfg.storesSource ?\n extend(this._cfg.storesSource, stores) :\n stores;\n var versions = db._versions;\n var storesSpec = {};\n var dbschema = {};\n versions.forEach(function (version) {\n extend(storesSpec, version._cfg.storesSource);\n dbschema = (version._cfg.dbschema = {});\n version._parseStoresSpec(storesSpec, dbschema);\n });\n db._dbSchema = dbschema;\n removeTablesApi(db, [db._allTables, db, db.Transaction.prototype]);\n setApiOnPlace(db, [db._allTables, db, db.Transaction.prototype, this._cfg.tables], keys(dbschema), dbschema);\n db._storeNames = keys(dbschema);\n return this;\n };\n Version.prototype.upgrade = function (upgradeFunction) {\n this._cfg.contentUpgrade = upgradeFunction;\n return this;\n };\n return Version;\n}());\n\nfunction createVersionConstructor(db) {\n return makeClassConstructor(Version.prototype, function Version$$1(versionNumber) {\n this.db = db;\n this._cfg = {\n version: versionNumber,\n storesSource: null,\n dbschema: {},\n tables: {},\n contentUpgrade: null\n };\n });\n}\n\nvar databaseEnumerator;\nfunction DatabaseEnumerator(indexedDB) {\n var hasDatabasesNative = indexedDB && typeof indexedDB.databases === 'function';\n var dbNamesTable;\n if (!hasDatabasesNative) {\n var db = new Dexie(DBNAMES_DB, { addons: [] });\n db.version(1).stores({ dbnames: 'name' });\n dbNamesTable = db.table('dbnames');\n }\n return {\n getDatabaseNames: function () {\n return hasDatabasesNative\n ?\n DexiePromise.resolve(indexedDB.databases()).then(function (infos) { return infos\n .map(function (info) { return info.name; })\n .filter(function (name) { return name !== DBNAMES_DB; }); })\n :\n dbNamesTable.toCollection().primaryKeys();\n },\n add: function (name) {\n return !hasDatabasesNative && name !== DBNAMES_DB && dbNamesTable.put({ name: name }).catch(nop);\n },\n remove: function (name) {\n return !hasDatabasesNative && name !== DBNAMES_DB && dbNamesTable.delete(name).catch(nop);\n }\n };\n}\nfunction initDatabaseEnumerator(indexedDB) {\n try {\n databaseEnumerator = DatabaseEnumerator(indexedDB);\n }\n catch (e) { }\n}\n\nfunction vip(fn) {\n return newScope(function () {\n PSD.letThrough = true;\n return fn();\n });\n}\n\nfunction dexieOpen(db) {\n var state = db._state;\n var indexedDB = db._deps.indexedDB;\n if (state.isBeingOpened || db.idbdb)\n return state.dbReadyPromise.then(function () { return state.dbOpenError ?\n rejection(state.dbOpenError) :\n db; });\n debug && (state.openCanceller._stackHolder = getErrorWithStack());\n state.isBeingOpened = true;\n state.dbOpenError = null;\n state.openComplete = false;\n var resolveDbReady = state.dbReadyResolve,\n upgradeTransaction = null;\n return DexiePromise.race([state.openCanceller, new DexiePromise(function (resolve, reject) {\n if (!indexedDB)\n throw new exceptions.MissingAPI(\"indexedDB API not found. If using IE10+, make sure to run your code on a server URL \" +\n \"(not locally). If using old Safari versions, make sure to include indexedDB polyfill.\");\n var dbName = db.name;\n var req = state.autoSchema ?\n indexedDB.open(dbName) :\n indexedDB.open(dbName, Math.round(db.verno * 10));\n if (!req)\n throw new exceptions.MissingAPI(\"IndexedDB API not available\");\n req.onerror = eventRejectHandler(reject);\n req.onblocked = wrap(db._fireOnBlocked);\n req.onupgradeneeded = wrap(function (e) {\n upgradeTransaction = req.transaction;\n if (state.autoSchema && !db._options.allowEmptyDB) {\n req.onerror = preventDefault;\n upgradeTransaction.abort();\n req.result.close();\n var delreq = indexedDB.deleteDatabase(dbName);\n delreq.onsuccess = delreq.onerror = wrap(function () {\n reject(new exceptions.NoSuchDatabase(\"Database \" + dbName + \" doesnt exist\"));\n });\n }\n else {\n upgradeTransaction.onerror = eventRejectHandler(reject);\n var oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion;\n db.idbdb = req.result;\n runUpgraders(db, oldVer / 10, upgradeTransaction, reject);\n }\n }, reject);\n req.onsuccess = wrap(function () {\n upgradeTransaction = null;\n var idbdb = db.idbdb = req.result;\n var objectStoreNames = slice(idbdb.objectStoreNames);\n if (objectStoreNames.length > 0)\n try {\n var tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly');\n if (state.autoSchema)\n readGlobalSchema(db, idbdb, tmpTrans);\n else {\n adjustToExistingIndexNames(db, db._dbSchema, tmpTrans);\n if (!verifyInstalledSchema(db, tmpTrans)) {\n console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.\");\n }\n }\n generateMiddlewareStacks(db, tmpTrans);\n }\n catch (e) {\n }\n connections.push(db);\n idbdb.onversionchange = wrap(function (ev) {\n state.vcFired = true;\n db.on(\"versionchange\").fire(ev);\n });\n databaseEnumerator.add(dbName);\n resolve();\n }, reject);\n })]).then(function () {\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(db.on.ready.fire)).then(function fireRemainders() {\n if (state.onReadyBeingFired.length > 0) {\n var remainders = state.onReadyBeingFired.reduce(promisableChain, nop);\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(remainders)).then(fireRemainders);\n }\n });\n }).finally(function () {\n state.onReadyBeingFired = null;\n }).then(function () {\n state.isBeingOpened = false;\n return db;\n }).catch(function (err) {\n try {\n upgradeTransaction && upgradeTransaction.abort();\n }\n catch (e) { }\n state.isBeingOpened = false;\n db.close();\n state.dbOpenError = err;\n return rejection(state.dbOpenError);\n }).finally(function () {\n state.openComplete = true;\n resolveDbReady();\n });\n}\n\nfunction awaitIterator(iterator) {\n var callNext = function (result) { return iterator.next(result); }, doThrow = function (error) { return iterator.throw(error); }, onSuccess = step(callNext), onError = step(doThrow);\n function step(getNext) {\n return function (val) {\n var next = getNext(val), value = next.value;\n return next.done ? value :\n (!value || typeof value.then !== 'function' ?\n isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) :\n value.then(onSuccess, onError));\n };\n }\n return step(callNext)();\n}\n\nfunction extractTransactionArgs(mode, _tableArgs_, scopeFunc) {\n var i = arguments.length;\n if (i < 2)\n throw new exceptions.InvalidArgument(\"Too few arguments\");\n var args = new Array(i - 1);\n while (--i)\n args[i - 1] = arguments[i];\n scopeFunc = args.pop();\n var tables = flatten(args);\n return [mode, tables, scopeFunc];\n}\nfunction enterTransactionScope(db, mode, storeNames, parentTransaction, scopeFunc) {\n return DexiePromise.resolve().then(function () {\n var transless = PSD.transless || PSD;\n var trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction);\n var zoneProps = {\n trans: trans,\n transless: transless\n };\n if (parentTransaction) {\n trans.idbtrans = parentTransaction.idbtrans;\n }\n else {\n trans.create();\n }\n var scopeFuncIsAsync = isAsyncFunction(scopeFunc);\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n var returnValue;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue = scopeFunc.call(trans, trans);\n if (returnValue) {\n if (scopeFuncIsAsync) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n }\n else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') {\n returnValue = awaitIterator(returnValue);\n }\n }\n }, zoneProps);\n return (returnValue && typeof returnValue.then === 'function' ?\n DexiePromise.resolve(returnValue).then(function (x) { return trans.active ?\n x\n : rejection(new exceptions.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\")); })\n : promiseFollowed.then(function () { return returnValue; })).then(function (x) {\n if (parentTransaction)\n trans._resolve();\n return trans._completion.then(function () { return x; });\n }).catch(function (e) {\n trans._reject(e);\n return rejection(e);\n });\n });\n}\n\nfunction pad(a, value, count) {\n var result = isArray(a) ? a.slice() : [a];\n for (var i = 0; i < count; ++i)\n result.push(value);\n return result;\n}\nfunction createVirtualIndexMiddleware(down) {\n return __assign(__assign({}, down), { table: function (tableName) {\n var table = down.table(tableName);\n var schema = table.schema;\n var indexLookup = {};\n var allVirtualIndexes = [];\n function addVirtualIndexes(keyPath, keyTail, lowLevelIndex) {\n var keyPathAlias = getKeyPathAlias(keyPath);\n var indexList = (indexLookup[keyPathAlias] = indexLookup[keyPathAlias] || []);\n var keyLength = keyPath == null ? 0 : typeof keyPath === 'string' ? 1 : keyPath.length;\n var isVirtual = keyTail > 0;\n var virtualIndex = __assign(__assign({}, lowLevelIndex), { isVirtual: isVirtual, isPrimaryKey: !isVirtual && lowLevelIndex.isPrimaryKey, keyTail: keyTail,\n keyLength: keyLength, extractKey: getKeyExtractor(keyPath), unique: !isVirtual && lowLevelIndex.unique });\n indexList.push(virtualIndex);\n if (!virtualIndex.isPrimaryKey) {\n allVirtualIndexes.push(virtualIndex);\n }\n if (keyLength > 1) {\n var virtualKeyPath = keyLength === 2 ?\n keyPath[0] :\n keyPath.slice(0, keyLength - 1);\n addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex);\n }\n indexList.sort(function (a, b) { return a.keyTail - b.keyTail; });\n return virtualIndex;\n }\n var primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey);\n indexLookup[\":id\"] = [primaryKey];\n for (var _i = 0, _a = schema.indexes; _i < _a.length; _i++) {\n var index = _a[_i];\n addVirtualIndexes(index.keyPath, 0, index);\n }\n function findBestIndex(keyPath) {\n var result = indexLookup[getKeyPathAlias(keyPath)];\n return result && result[0];\n }\n function translateRange(range, keyTail) {\n return {\n type: range.type === 1 ?\n 2 :\n range.type,\n lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail),\n lowerOpen: true,\n upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail),\n upperOpen: true\n };\n }\n function translateRequest(req) {\n var index = req.query.index;\n return index.isVirtual ? __assign(__assign({}, req), { query: {\n index: index,\n range: translateRange(req.query.range, index.keyTail)\n } }) : req;\n }\n var result = __assign(__assign({}, table), { schema: __assign(__assign({}, schema), { primaryKey: primaryKey, indexes: allVirtualIndexes, getIndexByKeyPath: findBestIndex }), count: function (req) {\n return table.count(translateRequest(req));\n },\n query: function (req) {\n return table.query(translateRequest(req));\n },\n openCursor: function (req) {\n var _a = req.query.index, keyTail = _a.keyTail, isVirtual = _a.isVirtual, keyLength = _a.keyLength;\n if (!isVirtual)\n return table.openCursor(req);\n function createVirtualCursor(cursor) {\n function _continue(key) {\n key != null ?\n cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) :\n req.unique ?\n cursor.continue(pad(cursor.key, req.reverse ? down.MIN_KEY : down.MAX_KEY, keyTail)) :\n cursor.continue();\n }\n var virtualCursor = Object.create(cursor, {\n continue: { value: _continue },\n continuePrimaryKey: {\n value: function (key, primaryKey) {\n cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey);\n }\n },\n key: {\n get: function () {\n var key = cursor.key;\n return keyLength === 1 ?\n key[0] :\n key.slice(0, keyLength);\n }\n },\n value: {\n get: function () {\n return cursor.value;\n }\n }\n });\n return virtualCursor;\n }\n return table.openCursor(translateRequest(req))\n .then(function (cursor) { return cursor && createVirtualCursor(cursor); });\n } });\n return result;\n } });\n}\nvar virtualIndexMiddleware = {\n stack: \"dbcore\",\n name: \"VirtualIndexMiddleware\",\n level: 1,\n create: createVirtualIndexMiddleware\n};\n\nvar hooksMiddleware = {\n stack: \"dbcore\",\n name: \"HooksMiddleware\",\n level: 2,\n create: function (downCore) { return (__assign(__assign({}, downCore), { table: function (tableName) {\n var downTable = downCore.table(tableName);\n var primaryKey = downTable.schema.primaryKey;\n var tableMiddleware = __assign(__assign({}, downTable), { mutate: function (req) {\n var dxTrans = PSD.trans;\n var _a = dxTrans.table(tableName).hook, deleting = _a.deleting, creating = _a.creating, updating = _a.updating;\n switch (req.type) {\n case 'add':\n if (creating.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'put':\n if (creating.fire === nop && updating.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'delete':\n if (deleting.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'deleteRange':\n if (deleting.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return deleteRange(req); }, true);\n }\n return downTable.mutate(req);\n function addPutOrDelete(req) {\n var dxTrans = PSD.trans;\n var keys$$1 = req.keys || getEffectiveKeys(primaryKey, req);\n if (!keys$$1)\n throw new Error(\"Keys missing\");\n req = req.type === 'add' || req.type === 'put' ? __assign(__assign({}, req), { keys: keys$$1, wantResults: true }) :\n __assign({}, req);\n if (req.type !== 'delete')\n req.values = __spreadArrays(req.values);\n if (req.keys)\n req.keys = __spreadArrays(req.keys);\n return getExistingValues(downTable, req, keys$$1).then(function (existingValues) {\n var contexts = keys$$1.map(function (key, i) {\n var existingValue = existingValues[i];\n var ctx = { onerror: null, onsuccess: null };\n if (req.type === 'delete') {\n deleting.fire.call(ctx, key, existingValue, dxTrans);\n }\n else if (req.type === 'add' || existingValue === undefined) {\n var generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans);\n if (key == null && generatedPrimaryKey != null) {\n key = generatedPrimaryKey;\n req.keys[i] = key;\n if (!primaryKey.outbound) {\n setByKeyPath(req.values[i], primaryKey.keyPath, key);\n }\n }\n }\n else {\n var objectDiff = getObjectDiff(existingValue, req.values[i]);\n var additionalChanges_1 = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans);\n if (additionalChanges_1) {\n var requestedValue_1 = req.values[i];\n Object.keys(additionalChanges_1).forEach(function (keyPath) {\n if (hasOwn(requestedValue_1, keyPath)) {\n requestedValue_1[keyPath] = additionalChanges_1[keyPath];\n }\n else {\n setByKeyPath(requestedValue_1, keyPath, additionalChanges_1[keyPath]);\n }\n });\n }\n }\n return ctx;\n });\n return downTable.mutate(req).then(function (_a) {\n var failures = _a.failures, results = _a.results, numFailures = _a.numFailures, lastResult = _a.lastResult;\n for (var i = 0; i < keys$$1.length; ++i) {\n var primKey = results ? results[i] : keys$$1[i];\n var ctx = contexts[i];\n if (primKey == null) {\n ctx.onerror && ctx.onerror(failures[i]);\n }\n else {\n ctx.onsuccess && ctx.onsuccess(req.type === 'put' && existingValues[i] ?\n req.values[i] :\n primKey\n );\n }\n }\n return { failures: failures, results: results, numFailures: numFailures, lastResult: lastResult };\n }).catch(function (error) {\n contexts.forEach(function (ctx) { return ctx.onerror && ctx.onerror(error); });\n return Promise.reject(error);\n });\n });\n }\n function deleteRange(req) {\n return deleteNextChunk(req.trans, req.range, 10000);\n }\n function deleteNextChunk(trans, range, limit) {\n return downTable.query({ trans: trans, values: false, query: { index: primaryKey, range: range }, limit: limit })\n .then(function (_a) {\n var result = _a.result;\n return addPutOrDelete({ type: 'delete', keys: result, trans: trans }).then(function (res) {\n if (res.numFailures > 0)\n return Promise.reject(res.failures[0]);\n if (result.length < limit) {\n return { failures: [], numFailures: 0, lastResult: undefined };\n }\n else {\n return deleteNextChunk(trans, __assign(__assign({}, range), { lower: result[result.length - 1], lowerOpen: true }), limit);\n }\n });\n });\n }\n } });\n return tableMiddleware;\n } })); }\n};\n\nvar Dexie = (function () {\n function Dexie(name, options) {\n var _this = this;\n this._middlewares = {};\n this.verno = 0;\n var deps = Dexie.dependencies;\n this._options = options = __assign({\n addons: Dexie.addons, autoOpen: true,\n indexedDB: deps.indexedDB, IDBKeyRange: deps.IDBKeyRange }, options);\n this._deps = {\n indexedDB: options.indexedDB,\n IDBKeyRange: options.IDBKeyRange\n };\n var addons = options.addons;\n this._dbSchema = {};\n this._versions = [];\n this._storeNames = [];\n this._allTables = {};\n this.idbdb = null;\n var state = {\n dbOpenError: null,\n isBeingOpened: false,\n onReadyBeingFired: null,\n openComplete: false,\n dbReadyResolve: nop,\n dbReadyPromise: null,\n cancelOpen: nop,\n openCanceller: null,\n autoSchema: true\n };\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n this._state = state;\n this.name = name;\n this.on = Events(this, \"populate\", \"blocked\", \"versionchange\", { ready: [promisableChain, nop] });\n this.on.ready.subscribe = override(this.on.ready.subscribe, function (subscribe) {\n return function (subscriber, bSticky) {\n Dexie.vip(function () {\n var state = _this._state;\n if (state.openComplete) {\n if (!state.dbOpenError)\n DexiePromise.resolve().then(subscriber);\n if (bSticky)\n subscribe(subscriber);\n }\n else if (state.onReadyBeingFired) {\n state.onReadyBeingFired.push(subscriber);\n if (bSticky)\n subscribe(subscriber);\n }\n else {\n subscribe(subscriber);\n var db_1 = _this;\n if (!bSticky)\n subscribe(function unsubscribe() {\n db_1.on.ready.unsubscribe(subscriber);\n db_1.on.ready.unsubscribe(unsubscribe);\n });\n }\n });\n };\n });\n this.Collection = createCollectionConstructor(this);\n this.Table = createTableConstructor(this);\n this.Transaction = createTransactionConstructor(this);\n this.Version = createVersionConstructor(this);\n this.WhereClause = createWhereClauseConstructor(this);\n this.on(\"versionchange\", function (ev) {\n if (ev.newVersion > 0)\n console.warn(\"Another connection wants to upgrade database '\" + _this.name + \"'. Closing db now to resume the upgrade.\");\n else\n console.warn(\"Another connection wants to delete database '\" + _this.name + \"'. Closing db now to resume the delete request.\");\n _this.close();\n });\n this.on(\"blocked\", function (ev) {\n if (!ev.newVersion || ev.newVersion < ev.oldVersion)\n console.warn(\"Dexie.delete('\" + _this.name + \"') was blocked\");\n else\n console.warn(\"Upgrade '\" + _this.name + \"' blocked by other connection holding version \" + ev.oldVersion / 10);\n });\n this._maxKey = getMaxKey(options.IDBKeyRange);\n this._createTransaction = function (mode, storeNames, dbschema, parentTransaction) { return new _this.Transaction(mode, storeNames, dbschema, parentTransaction); };\n this._fireOnBlocked = function (ev) {\n _this.on(\"blocked\").fire(ev);\n connections\n .filter(function (c) { return c.name === _this.name && c !== _this && !c._state.vcFired; })\n .map(function (c) { return c.on(\"versionchange\").fire(ev); });\n };\n this.use(virtualIndexMiddleware);\n this.use(hooksMiddleware);\n addons.forEach(function (addon) { return addon(_this); });\n }\n Dexie.prototype.version = function (versionNumber) {\n if (isNaN(versionNumber) || versionNumber < 0.1)\n throw new exceptions.Type(\"Given version is not a positive number\");\n versionNumber = Math.round(versionNumber * 10) / 10;\n if (this.idbdb || this._state.isBeingOpened)\n throw new exceptions.Schema(\"Cannot add version when database is open\");\n this.verno = Math.max(this.verno, versionNumber);\n var versions = this._versions;\n var versionInstance = versions.filter(function (v) { return v._cfg.version === versionNumber; })[0];\n if (versionInstance)\n return versionInstance;\n versionInstance = new this.Version(versionNumber);\n versions.push(versionInstance);\n versions.sort(lowerVersionFirst);\n versionInstance.stores({});\n this._state.autoSchema = false;\n return versionInstance;\n };\n Dexie.prototype._whenReady = function (fn) {\n var _this = this;\n return this._state.openComplete || PSD.letThrough ? fn() : new DexiePromise(function (resolve, reject) {\n if (!_this._state.isBeingOpened) {\n if (!_this._options.autoOpen) {\n reject(new exceptions.DatabaseClosed());\n return;\n }\n _this.open().catch(nop);\n }\n _this._state.dbReadyPromise.then(resolve, reject);\n }).then(fn);\n };\n Dexie.prototype.use = function (_a) {\n var stack = _a.stack, create = _a.create, level = _a.level, name = _a.name;\n if (name)\n this.unuse({ stack: stack, name: name });\n var middlewares = this._middlewares[stack] || (this._middlewares[stack] = []);\n middlewares.push({ stack: stack, create: create, level: level == null ? 10 : level, name: name });\n middlewares.sort(function (a, b) { return a.level - b.level; });\n return this;\n };\n Dexie.prototype.unuse = function (_a) {\n var stack = _a.stack, name = _a.name, create = _a.create;\n if (stack && this._middlewares[stack]) {\n this._middlewares[stack] = this._middlewares[stack].filter(function (mw) {\n return create ? mw.create !== create :\n name ? mw.name !== name :\n false;\n });\n }\n return this;\n };\n Dexie.prototype.open = function () {\n return dexieOpen(this);\n };\n Dexie.prototype.close = function () {\n var idx = connections.indexOf(this), state = this._state;\n if (idx >= 0)\n connections.splice(idx, 1);\n if (this.idbdb) {\n try {\n this.idbdb.close();\n }\n catch (e) { }\n this.idbdb = null;\n }\n this._options.autoOpen = false;\n state.dbOpenError = new exceptions.DatabaseClosed();\n if (state.isBeingOpened)\n state.cancelOpen(state.dbOpenError);\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n };\n Dexie.prototype.delete = function () {\n var _this = this;\n var hasArguments = arguments.length > 0;\n var state = this._state;\n return new DexiePromise(function (resolve, reject) {\n var doDelete = function () {\n _this.close();\n var req = _this._deps.indexedDB.deleteDatabase(_this.name);\n req.onsuccess = wrap(function () {\n databaseEnumerator.remove(_this.name);\n resolve();\n });\n req.onerror = eventRejectHandler(reject);\n req.onblocked = _this._fireOnBlocked;\n };\n if (hasArguments)\n throw new exceptions.InvalidArgument(\"Arguments not allowed in db.delete()\");\n if (state.isBeingOpened) {\n state.dbReadyPromise.then(doDelete);\n }\n else {\n doDelete();\n }\n });\n };\n Dexie.prototype.backendDB = function () {\n return this.idbdb;\n };\n Dexie.prototype.isOpen = function () {\n return this.idbdb !== null;\n };\n Dexie.prototype.hasBeenClosed = function () {\n var dbOpenError = this._state.dbOpenError;\n return dbOpenError && (dbOpenError.name === 'DatabaseClosed');\n };\n Dexie.prototype.hasFailed = function () {\n return this._state.dbOpenError !== null;\n };\n Dexie.prototype.dynamicallyOpened = function () {\n return this._state.autoSchema;\n };\n Object.defineProperty(Dexie.prototype, \"tables\", {\n get: function () {\n var _this = this;\n return keys(this._allTables).map(function (name) { return _this._allTables[name]; });\n },\n enumerable: true,\n configurable: true\n });\n Dexie.prototype.transaction = function () {\n var args = extractTransactionArgs.apply(this, arguments);\n return this._transaction.apply(this, args);\n };\n Dexie.prototype._transaction = function (mode, tables, scopeFunc) {\n var _this = this;\n var parentTransaction = PSD.trans;\n if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1)\n parentTransaction = null;\n var onlyIfCompatible = mode.indexOf('?') !== -1;\n mode = mode.replace('!', '').replace('?', '');\n var idbMode, storeNames;\n try {\n storeNames = tables.map(function (table) {\n var storeName = table instanceof _this.Table ? table.name : table;\n if (typeof storeName !== 'string')\n throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");\n return storeName;\n });\n if (mode == \"r\" || mode === READONLY)\n idbMode = READONLY;\n else if (mode == \"rw\" || mode == READWRITE)\n idbMode = READWRITE;\n else\n throw new exceptions.InvalidArgument(\"Invalid transaction mode: \" + mode);\n if (parentTransaction) {\n if (parentTransaction.mode === READONLY && idbMode === READWRITE) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n }\n else\n throw new exceptions.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");\n }\n if (parentTransaction) {\n storeNames.forEach(function (storeName) {\n if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n }\n else\n throw new exceptions.SubTransaction(\"Table \" + storeName +\n \" not included in parent transaction.\");\n }\n });\n }\n if (onlyIfCompatible && parentTransaction && !parentTransaction.active) {\n parentTransaction = null;\n }\n }\n }\n catch (e) {\n return parentTransaction ?\n parentTransaction._promise(null, function (_, reject) { reject(e); }) :\n rejection(e);\n }\n var enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc);\n return (parentTransaction ?\n parentTransaction._promise(idbMode, enterTransaction, \"lock\") :\n PSD.trans ?\n usePSD(PSD.transless, function () { return _this._whenReady(enterTransaction); }) :\n this._whenReady(enterTransaction));\n };\n Dexie.prototype.table = function (tableName) {\n if (!hasOwn(this._allTables, tableName)) {\n throw new exceptions.InvalidTable(\"Table \" + tableName + \" does not exist\");\n }\n return this._allTables[tableName];\n };\n return Dexie;\n}());\n\nvar Dexie$1 = Dexie;\nprops(Dexie$1, __assign(__assign({}, fullNameExceptions), {\n delete: function (databaseName) {\n var db = new Dexie$1(databaseName);\n return db.delete();\n },\n exists: function (name) {\n return new Dexie$1(name, { addons: [] }).open().then(function (db) {\n db.close();\n return true;\n }).catch('NoSuchDatabaseError', function () { return false; });\n },\n getDatabaseNames: function (cb) {\n return databaseEnumerator ?\n databaseEnumerator.getDatabaseNames().then(cb) :\n DexiePromise.resolve([]);\n },\n defineClass: function () {\n function Class(content) {\n extend(this, content);\n }\n return Class;\n },\n ignoreTransaction: function (scopeFunc) {\n return PSD.trans ?\n usePSD(PSD.transless, scopeFunc) :\n scopeFunc();\n },\n vip: vip, async: function (generatorFn) {\n return function () {\n try {\n var rv = awaitIterator(generatorFn.apply(this, arguments));\n if (!rv || typeof rv.then !== 'function')\n return DexiePromise.resolve(rv);\n return rv;\n }\n catch (e) {\n return rejection(e);\n }\n };\n }, spawn: function (generatorFn, args, thiz) {\n try {\n var rv = awaitIterator(generatorFn.apply(thiz, args || []));\n if (!rv || typeof rv.then !== 'function')\n return DexiePromise.resolve(rv);\n return rv;\n }\n catch (e) {\n return rejection(e);\n }\n },\n currentTransaction: {\n get: function () { return PSD.trans || null; }\n }, waitFor: function (promiseOrFunction, optionalTimeout) {\n var promise = DexiePromise.resolve(typeof promiseOrFunction === 'function' ?\n Dexie$1.ignoreTransaction(promiseOrFunction) :\n promiseOrFunction)\n .timeout(optionalTimeout || 60000);\n return PSD.trans ?\n PSD.trans.waitFor(promise) :\n promise;\n },\n Promise: DexiePromise,\n debug: {\n get: function () { return debug; },\n set: function (value) {\n setDebug(value, value === 'dexie' ? function () { return true; } : dexieStackFrameFilter);\n }\n },\n derive: derive, extend: extend, props: props, override: override,\n Events: Events,\n getByKeyPath: getByKeyPath, setByKeyPath: setByKeyPath, delByKeyPath: delByKeyPath, shallowClone: shallowClone, deepClone: deepClone, getObjectDiff: getObjectDiff, asap: asap,\n minKey: minKey,\n addons: [],\n connections: connections,\n errnames: errnames,\n dependencies: (function () {\n try {\n return {\n indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB,\n IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange\n };\n }\n catch (e) {\n return { indexedDB: null, IDBKeyRange: null };\n }\n })(),\n semVer: DEXIE_VERSION, version: DEXIE_VERSION.split('.')\n .map(function (n) { return parseInt(n); })\n .reduce(function (p, c, i) { return p + (c / Math.pow(10, i * 2)); }),\n default: Dexie$1,\n Dexie: Dexie$1 }));\nDexie$1.maxKey = getMaxKey(Dexie$1.dependencies.IDBKeyRange);\n\ninitDatabaseEnumerator(Dexie.dependencies.indexedDB);\nDexiePromise.rejectionMapper = mapError;\nsetDebug(debug, dexieStackFrameFilter);\n\nexport default Dexie;\nexport { Dexie };\n//# sourceMappingURL=dexie.mjs.map\n","import Dexie, { Table } from \"dexie\";\nimport { getLoggedInUser } from \"@openmrs/esm-api\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\n\nexport interface SyncItem {\n id?: number;\n userId: string;\n type: string;\n content: any;\n createdOn: Date;\n descriptor: QueueItemDescriptor;\n lastError?: {\n name?: string;\n message?: string;\n };\n}\n\nexport interface QueueItemDescriptor {\n id?: string;\n dependencies?: Array<{\n id: string;\n type: string;\n }>;\n patientUuid?: string;\n displayName?: string;\n}\n\nexport type ProcessSyncItem<T> = (\n item: T,\n options: SyncProcessOptions<T>\n) => Promise<any>;\n\ninterface SyncResultBag {\n [type: string]: Record<string, any>;\n}\n\ninterface SyncHandler {\n type: string;\n dependsOn: Array<string>;\n process: ProcessSyncItem<unknown>;\n}\n\nclass OfflineDb extends Dexie {\n syncQueue: Table<SyncItem, number>;\n\n constructor() {\n super(\"EsmOffline\");\n\n this.version(3).stores({\n syncQueue: \"++id,userId,type,[userId+type]\",\n });\n\n this.syncQueue = this.table(\"syncQueue\");\n }\n}\n\nconst db = new OfflineDb();\nconst handlers: Record<string, SyncHandler> = {};\n\n/**\n * @internal Temporarily added for esm-offline-tools-app. Please don't use elsewhere.\n */\nexport function getOfflineDb() {\n return db;\n}\n\nexport interface OfflineSynchronizationStore {\n synchronization?: {\n totalCount: number;\n pendingCount: number;\n abortController: AbortController;\n };\n}\n\nconst syncStore = createGlobalStore<OfflineSynchronizationStore>(\n \"offline-synchronization\",\n {}\n);\n\nexport function getOfflineSynchronizationStore() {\n return syncStore;\n}\n\nexport async function runSynchronization() {\n if (syncStore.getState().synchronization) {\n return;\n }\n\n const totalCount = await db.syncQueue.count();\n const promises: Record<string, Promise<void>> = {};\n const handlerQueue = Object.entries(handlers);\n const maxIter = handlerQueue.length;\n const results: SyncResultBag = {};\n const abortController = new AbortController();\n const notifySyncProgress = () => {\n const synchronization = syncStore.getState().synchronization!;\n\n syncStore.setState({\n synchronization: {\n ...synchronization,\n pendingCount: synchronization!.pendingCount - 1,\n },\n });\n };\n\n try {\n syncStore.setState({\n synchronization: {\n totalCount,\n pendingCount: totalCount,\n abortController,\n },\n });\n\n // we try until the queue is depleted, but no more than queue.length tries.\n for (let iter = 0; iter < maxIter && handlerQueue.length > 0; iter++) {\n for (let i = handlerQueue.length; i--; ) {\n const [name, handler] = handlerQueue[i];\n const deps = handler.dependsOn.map((dep) => promises[dep]);\n\n if (deps.every(Boolean)) {\n results[name] = {};\n await Promise.all(deps);\n\n promises[name] = processHandler(\n handler,\n results,\n abortController,\n notifySyncProgress\n );\n handlerQueue.splice(i, 1);\n }\n }\n }\n\n await Promise.allSettled(Object.values(promises));\n } finally {\n syncStore.setState({ synchronization: undefined });\n }\n}\n\nasync function processHandler(\n { type, dependsOn, process }: SyncHandler,\n results: SyncResultBag,\n abortController: AbortController,\n notifySyncProgress: () => void\n) {\n const table = db.syncQueue;\n const items: Array<[number, unknown, QueueItemDescriptor]> = [];\n const contents: Array<unknown> = [];\n const userId = await getUserId();\n\n await table.where({ type, userId }).each((item, cursor) => {\n items.push([cursor.primaryKey, item.content, item.descriptor]);\n contents.push(item.content);\n });\n\n for (let i = 0; i < items.length; i++) {\n const [key, item, { id, dependencies = [] }] = items[i];\n\n try {\n const result = await process(item, {\n abort: abortController,\n index: i,\n items: contents,\n userId,\n dependencies: dependencies.map(({ id, type }) =>\n dependsOn.includes(type) ? results[type][id] : undefined\n ),\n });\n\n if (id !== undefined) {\n results[type][id] = result;\n }\n\n await table.delete(key);\n } catch (e) {\n await table.update(key, {\n lastError: {\n name: e?.name,\n message: e?.message ?? e?.toString(),\n },\n });\n } finally {\n notifySyncProgress();\n }\n }\n}\n\nasync function getUserId() {\n const user = await getLoggedInUser();\n return user?.uuid || \"*\";\n}\n\nexport async function queueSynchronizationItemFor<T>(\n userId: string,\n type: string,\n content: T,\n descriptor?: QueueItemDescriptor\n) {\n const table = db.syncQueue;\n const targetId = descriptor && descriptor.id;\n\n if (targetId !== undefined) {\n // in case of replacement (i.e., used same ID) we just remove the existing item\n await table\n .where({ type, userId })\n .filter((item) => item?.descriptor.id === targetId)\n .delete();\n }\n\n const id = await table.add({\n type,\n content,\n userId,\n descriptor: descriptor || {},\n createdOn: new Date(),\n });\n\n return id;\n}\n\nexport async function queueSynchronizationItem<T>(\n type: string,\n content: T,\n descriptor?: QueueItemDescriptor\n) {\n const userId = await getUserId();\n return await queueSynchronizationItemFor(userId, type, content, descriptor);\n}\n\nexport async function getSynchronizationItemsFor<T>(\n userId: string,\n type: string\n) {\n const table = db.syncQueue;\n const items: Array<T> = [];\n\n await table.where({ type, userId }).each((item) => {\n items.push(item.content);\n });\n\n return items;\n}\n\nexport async function getSynchronizationItems<T>(type: string) {\n const userId = await getUserId();\n return await getSynchronizationItemsFor<T>(userId, type);\n}\n\nexport async function deleteSynchronizationItem(id: number) {\n await db.syncQueue.delete(id);\n}\n\nexport interface SyncProcessOptions<T> {\n abort: AbortController;\n userId: string;\n index: number;\n items: Array<T>;\n dependencies: Array<any>;\n}\n\nexport function setupOfflineSync<T>(\n type: string,\n dependsOn: Array<string>,\n process: ProcessSyncItem<T>\n) {\n handlers[type] = {\n type,\n dependsOn,\n process,\n };\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","import { v4 } from \"uuid\";\n\nexport const offlineUuidPrefix = \"OFFLINE+\";\n\n/** Generates a UUID-like string which is used for uniquely identifying objects while offline. */\nexport function generateOfflineUuid() {\n return offlineUuidPrefix + v4();\n}\n\n/** Checks whether the given string has the format of an offline UUID generated by {@link generateOfflineUuid} */\nexport function isOfflineUuid(uuid: string) {\n return uuid.startsWith(offlineUuidPrefix);\n}\n","import Dexie, { Table } from \"dexie\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\n\nexport interface OfflinePatientDataSyncStore {\n /**\n * For each patient ID of the patients whose data is currently made available offline, provides\n * the current data synchronizaton state.\n */\n offlinePatientDataSyncState: Record<string, OfflinePatientDataSyncState>;\n /**\n * Holds the list of currently registered handlers which deal with patients that should be available offline.\n * The key is a unique identifier which, once defined, should never change as it gives identity to\n * the handler registration.\n */\n handlers: Record<string, OfflinePatientDataSyncHandler>;\n}\n\nexport interface OfflinePatientDataSyncState {\n /**\n * The time when this state snapshot was initially created.\n */\n readonly timestamp: Date;\n /**\n * A list of the data sync handler registration identifiers which are still in the process\n * of synchronizing the patient's data.\n */\n readonly syncingHandlers: Array<string>;\n /**\n * A list of the data sync handler registration identifiers which successfully synchronized the\n * patient's data.\n */\n readonly syncedHandlers: Array<string>;\n /**\n * A list of the data sync handler registration identifiers which failed to synchronize the\n * patient's data.\n */\n readonly failedHandlers: Array<string>;\n /**\n * A set of error messages associated with the identifers of the failed handlers.\n */\n readonly errors: Record<string, string>;\n /**\n * Aborts the process of downloading data.\n * @returns `true` if the cancellation could be triggered (that is, if there were any syncing handlers);\n * `false` if not.\n */\n abort(): boolean;\n}\n\nexport interface OfflinePatientDataSyncHandler {\n /**\n * A name of the handler registration which can be displayed to the user.\n * This is ideally translated.\n */\n readonly displayName: string;\n /**\n * A function which is invoked when a patient is added to the app's offline patient cache.\n * Signals to the handler that the patient's data must be made available offline.\n * @param args Arguments which provide data about the patient to be made available offline.\n * @returns A promise which should resolve if all data could be cached and reject when there was an issue\n * caching the data.\n */\n onOfflinePatientAdded(args: OfflinePatientArgs): Promise<void>;\n}\n\nexport interface OfflinePatientArgs {\n /**\n * The UUID of the patient that should be made available offline.\n */\n patientUuid: string;\n /**\n * An {@link AbortSignal} which notifies about the cancellation of the operation.\n */\n signal: AbortSignal;\n}\n\nconst store = createGlobalStore<OfflinePatientDataSyncStore>(\n \"offline-patients\",\n {\n offlinePatientDataSyncState: {},\n handlers: {},\n }\n);\n\nexport function getOfflinePatientDataStore() {\n return store;\n}\n\n/**\n * Attempts to add the specified patient handler registration to the list of offline patient handlers.\n * @param identifier A key which uniquely identifies the registration.\n * @param handler The patient handler registration to be registered.\n * @returns `true` if the registration was successfully made; `false` if another registration with\n * the same identifier has already been registered before.\n */\nexport function registerOfflinePatientHandler(\n identifier: string,\n handler: OfflinePatientDataSyncHandler\n) {\n const state = store.getState();\n store.setState({\n handlers: { ...state.handlers, [identifier]: handler },\n });\n}\n\n/**\n * Notifies all registered offline patient handlers that a new patient must be made available offline.\n * @param args Arguments which provide data about the patient to be made available offline.\n * @returns A promise which resolves once all registered handlers have finished synchronizing.\n */\nexport async function syncOfflinePatientData(patientUuid: string) {\n const handlers = Object.entries(store.getState().handlers);\n const handlerIdentifiers = handlers.map(([identifier]) => identifier);\n const syncedHandlers: Array<string> = [];\n const failedHandlers: Array<string> = [];\n const errors = {};\n const abortController = new AbortController();\n\n await setPatientDataSyncState(patientUuid, {\n timestamp: new Date(),\n syncingHandlers: handlerIdentifiers,\n syncedHandlers,\n failedHandlers,\n errors,\n abort: () => {\n abortController.abort();\n return true;\n },\n });\n\n await Promise.all(\n handlers.map(async ([identifier, handler]) => {\n try {\n await handler.onOfflinePatientAdded({\n patientUuid,\n signal: abortController.signal,\n });\n // eslint-disable-next-line no-console\n console.debug(\n `Offline patient handler ${identifier} successfully synchronized patient data.`\n );\n\n syncedHandlers.push(identifier);\n } catch (e) {\n console.error(\n `Offline patient handler ${identifier} failed. Error: `,\n e\n );\n\n failedHandlers.push(identifier);\n errors[identifier] = e?.message ?? e?.toString() ?? \"\";\n }\n })\n );\n\n await setPatientDataSyncState(patientUuid, {\n timestamp: new Date(),\n syncingHandlers: [],\n syncedHandlers,\n failedHandlers,\n errors,\n abort: () => false,\n });\n}\n\nasync function setPatientDataSyncState(\n patientUuid: string,\n nextState: OfflinePatientDataSyncState\n) {\n const state = store.getState();\n store.setState({\n offlinePatientDataSyncState: {\n ...state.offlinePatientDataSyncState,\n [patientUuid]: nextState,\n },\n });\n\n const db = new OfflinePatientDataDb();\n const existingEntry = await db.offlinePatientDataSyncStates.get({\n patientUuid,\n });\n const nextEntry: OfflinePatientDataSyncStateEntry = {\n id: existingEntry?.id,\n patientUuid,\n state: {\n timestamp: nextState.timestamp,\n syncedHandlers: nextState.syncedHandlers,\n failedHandlers: [\n ...nextState.failedHandlers,\n ...nextState.syncingHandlers,\n ],\n errors: nextState.errors,\n },\n };\n\n await db.offlinePatientDataSyncStates.put(nextEntry);\n}\n\nexport async function loadPersistedPatientDataSyncState() {\n const db = new OfflinePatientDataDb();\n const persistedStates = await db.offlinePatientDataSyncStates.toArray();\n const nextState = store.getState().offlinePatientDataSyncState;\n\n for (const entry of persistedStates) {\n nextState[entry.patientUuid] = {\n ...entry.state,\n syncingHandlers: [],\n abort: () => false,\n };\n }\n\n store.setState({ offlinePatientDataSyncState: nextState });\n}\n\nclass OfflinePatientDataDb extends Dexie {\n offlinePatientDataSyncStates: Table<OfflinePatientDataSyncStateEntry, number>;\n\n constructor() {\n super(\"EsmOfflinePatientData\");\n\n this.version(1).stores({\n offlinePatientDataSyncStates: \"++id,&patientUuid\",\n });\n\n this.offlinePatientDataSyncStates = this.table(\n \"offlinePatientDataSyncStates\"\n );\n }\n}\n\ntype PersistedOfflinePatientDataSyncState = Omit<\n Omit<OfflinePatientDataSyncState, \"syncingHandlers\">,\n \"abort\"\n>;\n\ninterface OfflinePatientDataSyncStateEntry {\n id?: number;\n patientUuid: string;\n state: PersistedOfflinePatientDataSyncState;\n}\n","const resolveDirectory = require(\"../public-path\").resolveDirectory;\n\nexports.autoPublicPath = function autoPublicPath(rootDirLevel) {\n if (!rootDirLevel) {\n rootDirLevel = 1;\n }\n\n if (typeof __webpack_public_path__ !== \"undefined\") {\n if (typeof __system_context__ === \"undefined\") {\n throw Error(\n \"systemjs-webpack-interop requires webpack@>=5.0.0-beta.15 and output.libraryTarget set to 'system'\"\n );\n }\n\n if (!__system_context__.meta || !__system_context__.meta.url) {\n console.error(\"__system_context__\", __system_context__);\n throw Error(\n \"systemjs-webpack-interop was provided an unknown SystemJS context. Expected context.meta.url, but none was provided\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(\n __system_context__.meta.url,\n rootDirLevel\n );\n }\n};\n","exports.setPublicPath = function setPublicPath(\n systemjsModuleName,\n rootDirectoryLevel\n) {\n if (!rootDirectoryLevel) {\n rootDirectoryLevel = 1;\n }\n if (\n typeof systemjsModuleName !== \"string\" ||\n systemjsModuleName.trim().length === 0\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'\"\n );\n }\n\n if (\n typeof rootDirectoryLevel !== \"number\" ||\n rootDirectoryLevel <= 0 ||\n isNaN(rootDirectoryLevel) ||\n !isInteger(rootDirectoryLevel)\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'\"\n );\n }\n\n var moduleUrl;\n try {\n moduleUrl = window.System.resolve(systemjsModuleName);\n if (!moduleUrl) {\n throw Error();\n }\n } catch (err) {\n throw Error(\n \"systemjs-webpack-interop: There is no such module '\" +\n systemjsModuleName +\n \"' in the SystemJS registry. Did you misspell the name of your module?\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(moduleUrl, rootDirectoryLevel);\n};\n\nfunction resolveDirectory(urlString, rootDirectoryLevel) {\n // Our friend IE11 doesn't support new URL()\n // https://github.com/single-spa/single-spa/issues/612\n // https://gist.github.com/jlong/2428561\n\n var a = document.createElement(\"a\");\n a.href = urlString;\n\n var pathname = a.pathname[0] === \"/\" ? a.pathname : \"/\" + a.pathname;\n var numDirsProcessed = 0,\n index = pathname.length;\n while (numDirsProcessed !== rootDirectoryLevel && index >= 0) {\n var char = pathname[--index];\n if (char === \"/\") {\n numDirsProcessed++;\n }\n }\n\n if (numDirsProcessed !== rootDirectoryLevel) {\n throw Error(\n \"systemjs-webpack-interop: rootDirectoryLevel (\" +\n rootDirectoryLevel +\n \") is greater than the number of directories (\" +\n numDirsProcessed +\n \") in the URL path \" +\n urlString\n );\n }\n\n var finalPath = pathname.slice(0, index + 1);\n\n return a.protocol + \"//\" + a.host + finalPath;\n}\n\nexports.resolveDirectory = resolveDirectory;\n\n// borrowed from https://github.com/parshap/js-is-integer/blob/master/index.js\nvar isInteger =\n Number.isInteger ||\n function isInteger(val) {\n return typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","const autoPublicPath = require(\"./auto-public-path\").autoPublicPath;\n\nautoPublicPath(1);\n","function n(n,t){for(var r in t)n[r]=t[r];return n}export default function(t){var r=[];function u(n){for(var t=[],u=0;u<r.length;u++)r[u]===n?n=null:t.push(r[u]);r=t}function e(u,e,f){t=e?u:n(n({},t),u);for(var i=r,o=0;o<i.length;o++)i[o](t,f)}return t=t||{},{action:function(n){function r(t){e(t,!1,n)}return function(){for(var u=arguments,e=[t],f=0;f<arguments.length;f++)e.push(u[f]);var i=n.apply(this,e);if(null!=i)return i.then?i.then(r):r(i)}},setState:e,subscribe:function(n){return r.push(n),function(){u(n)}},unsubscribe:u,getState:function(){return t}}}\n//# sourceMappingURL=unistore.es.js.map\n","import createStore, { Store } from \"unistore\";\n\ninterface StoreEntity {\n value: Store<any>;\n active: boolean;\n}\n\nconst availableStores: Record<string, StoreEntity> = {};\n\n/**\n * Creates a Unistore [store](https://github.com/developit/unistore#store).\n *\n * @param name A name by which the store can be looked up later.\n * Must be unique across the entire application.\n * @param initialState An object which will be the initial state of the store.\n * @returns The newly created store.\n */\nexport function createGlobalStore<TState>(\n name: string,\n initialState: TState\n): Store<TState> {\n const available = availableStores[name];\n\n if (available) {\n if (available.active) {\n console.error(\n \"Cannot override an existing store. Make sure that stores are only created once.\"\n );\n } else {\n available.value.setState(initialState, true);\n }\n\n available.active = true;\n return available.value;\n } else {\n const store = createStore(initialState);\n\n availableStores[name] = {\n value: store,\n active: true,\n };\n\n return store;\n }\n}\n\n/**\n * Returns the existing [store](https://github.com/developit/unistore#store) named `name`,\n * or creates a new store named `name` if none exists.\n *\n * @param name The name of the store to look up.\n * @param fallbackState The initial value of the new store if no store named `name` exists.\n * @returns The found or newly created store.\n */\nexport function getGlobalStore<TState = any>(\n name: string,\n fallbackState?: TState\n): Store<TState> {\n const available = availableStores[name];\n\n if (!available) {\n const store = createStore(fallbackState);\n availableStores[name] = {\n value: store,\n active: false,\n };\n return store;\n }\n\n return available.value;\n}\n\nexport interface AppState {}\n\n/**\n * @internal\n */\nexport function createAppState(initialState: AppState) {\n return createGlobalStore(\"app\", initialState);\n}\n\n/**\n * @returns The [store](https://github.com/developit/unistore#store) named `app`.\n */\nexport function getAppState() {\n return getGlobalStore<AppState>(\"app\", {});\n}\n\nexport function subscribeTo<T, U>(\n store: Store<T>,\n select: (state: T) => U,\n handle: (subState: U) => void\n) {\n let previous = select(store.getState());\n\n return store.subscribe((state) => {\n const current = select(state);\n\n if (current !== previous) {\n previous = current;\n handle(current);\n }\n });\n}\n","export function update<T extends Record<string, any>>(\n obj: T,\n [property, ...restPropertyPath]: Array<string>,\n value: any\n): T {\n if (!property) {\n return obj;\n } else if (restPropertyPath.length === 0) {\n return { ...obj, [property]: value };\n } else {\n return {\n ...obj,\n [property]: update(obj[property] || {}, restPropertyPath, value),\n };\n }\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__766__;","module.exports = __WEBPACK_EXTERNAL_MODULE__824__;","module.exports = __WEBPACK_EXTERNAL_MODULE__45__;","module.exports = __WEBPACK_EXTERNAL_MODULE__728__;","module.exports = __WEBPACK_EXTERNAL_MODULE__64__;","module.exports = __WEBPACK_EXTERNAL_MODULE__954__;","module.exports = __WEBPACK_EXTERNAL_MODULE__493__;","module.exports = __WEBPACK_EXTERNAL_MODULE__281__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","import React from \"react\";\n\nexport interface ExtensionData {\n extensionSlotName: string;\n extensionSlotModuleName: string;\n extensionId: string;\n}\n\nexport interface ComponentConfig {\n moduleName: string;\n extension?: ExtensionData;\n}\n\n/**\n * Available to all components. Provided by `openmrsComponentDecorator`.\n */\nexport const ComponentContext = React.createContext<ComponentConfig>({\n moduleName: \"\",\n});\n","import React, { MouseEvent, AnchorHTMLAttributes } from \"react\";\nimport { navigate, interpolateUrl } from \"@openmrs/esm-config\";\n\nfunction handleClick(event: MouseEvent, to: string) {\n if (\n !event.metaKey &&\n !event.ctrlKey &&\n !event.shiftKey &&\n event.button == 0\n ) {\n event.preventDefault();\n navigate({ to });\n }\n}\n\n/**\n * @noInheritDoc\n */\nexport interface ConfigurableLinkProps\n extends AnchorHTMLAttributes<HTMLAnchorElement> {\n to: string;\n}\n\n/**\n * A React link component which calls [[navigate]] when clicked\n *\n * @param to The target path or URL. Supports interpolation. See [[navigate]]\n * @param children Inline elements within the link\n * @param otherProps Any other valid props for an <a> tag except `href` and `onClick`\n * @category Navigation\n */\nexport const ConfigurableLink: React.FC<ConfigurableLinkProps> = ({\n to,\n children,\n ...otherProps\n}) => (\n <a\n onClick={(event) => handleClick(event, to)}\n href={interpolateUrl(to)}\n {...otherProps}\n >\n {children}\n </a>\n);\n","import { useEffect, useMemo, useState } from \"react\";\nimport { Store, BoundAction } from \"unistore\";\n\nexport type Actions = Function | { [key: string]: Function };\nexport type BoundActions = { [key: string]: BoundAction };\n\nfunction bindActions<T>(store: Store<T>, actions: Actions) {\n if (typeof actions == \"function\") {\n actions = actions(store);\n }\n\n const bound = {};\n\n for (let i in actions) {\n bound[i] = store.action(actions[i]);\n }\n\n return bound;\n}\n\nexport function createUseStore<T>(store: Store<T>) {\n function useStore(): T;\n function useStore(actions: Actions): T & BoundActions;\n function useStore(actions?: Actions): T & BoundActions;\n function useStore(actions?: Actions) {\n const [state, set] = useState(store.getState());\n useEffect(() => store.subscribe((state) => set(state)), []);\n let boundActions: BoundActions = {};\n\n if (actions) {\n boundActions = useMemo(\n () => bindActions(store, actions),\n [store, actions]\n );\n }\n\n return { ...state, ...boundActions };\n }\n\n return useStore;\n}\n","import { RefObject, useContext, useRef, useEffect } from \"react\";\nimport { renderExtension } from \"@openmrs/esm-extensions\";\nimport { ComponentContext, ExtensionData } from \"./ComponentContext\";\n\nexport function useExtension<TRef extends HTMLElement>(\n state?: Record<string, any>\n): [RefObject<TRef>, ExtensionData | undefined] {\n const ref = useRef<TRef>(null);\n const { extension } = useContext(ComponentContext);\n\n useEffect(() => {\n if (ref.current && extension) {\n return renderExtension(\n ref.current,\n extension.extensionSlotName,\n extension.extensionSlotModuleName,\n extension.extensionId,\n undefined,\n state\n );\n }\n }, [\n extension?.extensionSlotName,\n extension?.extensionId,\n extension?.extensionSlotModuleName,\n ref.current,\n state,\n ]);\n\n return [ref, extension];\n}\n","import React from \"react\";\nimport { ExtensionData } from \"./ComponentContext\";\nimport { useExtension } from \"./useExtension\";\n\nexport interface ExtensionProps {\n state?: Record<string, any>;\n wrap?(\n slot: React.ReactNode,\n extension: ExtensionData\n ): React.ReactElement<any, any> | null;\n}\n\n/**\n * Represents the position in the DOM where each extension within\n * an extension slot is rendered.\n *\n * Renders once for each extension attached to that extension slot.\n *\n * Usage of this component *must* have an ancestor `<ExtensionSlot>`.\n */\nexport const Extension: React.FC<ExtensionProps> = ({ state, wrap }) => {\n const [ref, extension] = useExtension<HTMLDivElement>(state);\n\n // The extension is rendered into the `<slot>`. It is surrounded by a\n // `<div>` with relative positioning in order to allow the UI Editor\n // to absolutely position elements within it.\n const slot = (\n <div\n ref={ref}\n data-extension-id={extension?.extensionId}\n style={{ position: \"relative\" }}\n />\n );\n\n return extension && wrap ? wrap(slot, extension) : slot;\n};\n","import { subscribeTo } from \"@openmrs/esm-state\";\nimport { useEffect, useState } from \"react\";\nimport { Store } from \"unistore\";\n\nexport function useStoreState<T, U>(store: Store<T>, select: (state: T) => U) {\n const [state, setState] = useState<U>(() => select(store.getState()));\n\n useEffect(() => subscribeTo(store, select, setState), [store, select]);\n\n return state;\n}\n","import { useContext, useCallback } from \"react\";\nimport {\n ExtensionSlotConfigObject,\n ExtensionSlotConfigsStore,\n getExtensionSlotsConfigStore,\n} from \"@openmrs/esm-config\";\nimport { ComponentContext } from \"./ComponentContext\";\nimport { useStoreState } from \"./useStoreState\";\n\nconst defaultConfig: ExtensionSlotConfigObject = {\n add: [],\n order: [],\n remove: [],\n};\n\nexport function useExtensionSlotConfig(extensionSlotName: string) {\n const { moduleName } = useContext(ComponentContext);\n const store = getExtensionSlotsConfigStore(moduleName);\n const select = useCallback(\n (s: ExtensionSlotConfigsStore) => s.extensionSlotConfigs[extensionSlotName],\n [extensionSlotName]\n );\n const config = useStoreState(store, select);\n return config || defaultConfig;\n}\n","import { useCallback } from \"react\";\nimport { extensionStore, ExtensionStore } from \"@openmrs/esm-extensions\";\nimport { useStoreState } from \"./useStoreState\";\n\nconst defaultArray: Array<string> = [];\n\n/**\n * Gets the assigned extension ids for the given slot.\n * @param extensionSlotName\n */\nexport function useAttachedExtensionIds(extensionSlotName: string) {\n const select = useCallback(\n (s: ExtensionStore) => s.slots[extensionSlotName]?.attachedIds,\n [extensionSlotName]\n );\n const extensions = useStoreState(extensionStore, select);\n return extensions || defaultArray;\n}\n","import { useEffect, useState } from \"react\";\nimport { getAssignedIds } from \"@openmrs/esm-extensions\";\nimport { useExtensionSlotConfig } from \"./useExtensionSlotConfig\";\nimport { useAttachedExtensionIds } from \"./useAttachedExtensionIds\";\n\n/**\n * Gets the assigned extension ids for a given extension slot name.\n * Does not consider if offline or online.\n * @param extensionSlotName The name of the slot to get the assigned IDs for.\n */\nexport function useAssignedExtensionIds(extensionSlotName: string) {\n const config = useExtensionSlotConfig(extensionSlotName);\n const attachedIds = useAttachedExtensionIds(extensionSlotName);\n const [assignedIds, setAssignedIds] = useState<Array<string>>([]);\n\n useEffect(() => {\n const newAssignedIds = getAssignedIds(\n {\n addedIds: config.add || [],\n removedIds: config.remove || [],\n idOrder: config.order || [],\n },\n attachedIds\n );\n\n if (newAssignedIds.join(\",\") !== assignedIds.join(\",\")) {\n setAssignedIds(newAssignedIds);\n }\n }, [attachedIds, config]);\n\n return assignedIds;\n}\n","import { subscribeConnectivityChanged } from \"@openmrs/esm-globals\";\nimport { useEffect, useState } from \"react\";\n\nexport function useConnectivity() {\n let [isOnline, setIsOnline] = useState(window.navigator.onLine);\n\n useEffect(\n () => subscribeConnectivityChanged(({ online }) => setIsOnline(online)),\n []\n );\n\n return isOnline;\n}\n","import { useMemo } from \"react\";\nimport {\n checkStatusFor,\n ExtensionRegistration,\n extensionStore,\n getExtensionRegistrationFrom,\n} from \"@openmrs/esm-extensions\";\nimport { useAssignedExtensionIds } from \"./useAssignedExtensionIds\";\nimport { useConnectivity } from \"./useConnectivity\";\n\nfunction isValidExtension(\n extension: ExtensionRegistration | undefined\n): extension is ExtensionRegistration {\n return extension !== undefined;\n}\n\n/**\n * We have the following extension modes:\n *\n * - attached (set via code in form of: attach, detach, ...)\n * - configured (set via configuration in form of: added, removed, ...)\n * - assigned (computed from attached and configured)\n * - connected (computed from assigned using connectivity and online / offline)\n */\n\n/**\n * Gets the assigned extension for a given extension slot name.\n * Considers if offline or online.\n * @param extensionSlotName The name of the slot to get the assigned extensions for.\n */\nexport function useConnectedExtensions(extensionSlotName: string) {\n const online = useConnectivity();\n const extensionIdsToRender = useAssignedExtensionIds(extensionSlotName);\n\n const extensions = useMemo(() => {\n const state = extensionStore.getState();\n return extensionIdsToRender\n .map((m) => getExtensionRegistrationFrom(state, m))\n .filter(isValidExtension)\n .filter((m) => checkStatusFor(online, m.online, m.offline));\n }, [extensionIdsToRender, online]);\n\n return extensions;\n}\n","import { useContext, useEffect } from \"react\";\nimport {\n registerExtensionSlot,\n unregisterExtensionSlot,\n} from \"@openmrs/esm-extensions\";\nimport { ComponentContext } from \"./ComponentContext\";\nimport { useConnectedExtensions } from \"./useConnectedExtensions\";\n\nexport function useExtensionSlot(extensionSlotName: string) {\n const { moduleName } = useContext(ComponentContext);\n\n if (!moduleName) {\n throw Error(\n \"ComponentContext has not been provided. This should come from @openmrs/esm-react-utils.\"\n );\n }\n\n useEffect(() => {\n registerExtensionSlot(moduleName, extensionSlotName);\n return () => unregisterExtensionSlot(moduleName, extensionSlotName);\n }, []);\n\n const extensions = useConnectedExtensions(extensionSlotName);\n\n return {\n extensions,\n extensionSlotName,\n extensionSlotModuleName: moduleName,\n };\n}\n","import React, { useRef, useMemo } from \"react\";\nimport { ExtensionRegistration } from \"@openmrs/esm-extensions\";\nimport { ComponentContext } from \"./ComponentContext\";\nimport { Extension } from \"./Extension\";\nimport { useExtensionSlot } from \"./useExtensionSlot\";\n\nfunction defaultSelect(extensions: Array<ExtensionRegistration>) {\n return extensions;\n}\n\nfunction isShallowEqual(prevDeps: any, nextDeps: any) {\n if (prevDeps === nextDeps) {\n return true;\n }\n\n if (!prevDeps && nextDeps) {\n return false;\n }\n\n if (prevDeps && !nextDeps) {\n return false;\n }\n\n if (typeof prevDeps !== \"object\" || typeof nextDeps !== \"object\") {\n return false;\n }\n\n const prev = Object.keys(prevDeps);\n const next = Object.keys(nextDeps);\n\n if (prev.length !== next.length) {\n return false;\n }\n\n for (let i = 0; i < prev.length; i++) {\n const key = prev[i];\n\n if (!(key in nextDeps) || nextDeps[key] !== prevDeps[key]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport interface ExtensionSlotBaseProps {\n extensionSlotName: string;\n select?(\n extensions: Array<ExtensionRegistration>\n ): Array<ExtensionRegistration>;\n state?: Record<string, any>;\n}\n\nexport type ExtensionSlotProps = ExtensionSlotBaseProps &\n React.HTMLAttributes<HTMLDivElement>;\n\nexport const ExtensionSlot: React.FC<ExtensionSlotProps> = ({\n extensionSlotName,\n select = defaultSelect,\n children,\n state,\n style,\n ...divProps\n}: ExtensionSlotProps) => {\n const slotRef = useRef(null);\n const { extensions, extensionSlotModuleName } =\n useExtensionSlot(extensionSlotName);\n const stateRef = useRef(state);\n\n if (!isShallowEqual(stateRef.current, state)) {\n stateRef.current = state;\n }\n\n const content = useMemo(\n () =>\n extensionSlotName &&\n select(extensions).map((extension) => (\n <ComponentContext.Provider\n key={extension.name}\n value={{\n moduleName: extension.moduleName,\n extension: {\n extensionId: extension.name,\n extensionSlotName,\n extensionSlotModuleName,\n },\n }}\n >\n {children ?? <Extension state={stateRef.current} />}\n </ComponentContext.Provider>\n )),\n [select, extensions, extensionSlotName, stateRef.current]\n );\n\n return (\n <div\n ref={slotRef}\n data-extension-slot-name={extensionSlotName}\n data-extension-slot-module-name={extensionSlotModuleName}\n style={{ ...style, position: \"relative\" }}\n {...divProps}\n >\n {content}\n </div>\n );\n};\n","function e(t){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(t)}function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function o(e){for(var o=1;o<arguments.length;o++){var r=null!=arguments[o]?arguments[o]:{};o%2?n(Object(r),!0).forEach((function(n){t(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var r=null;try{r=require(\"react\").createContext()}catch(e){}var a={React:null,ReactDOM:null,rootComponent:null,loadRootComponent:null,renderType:null,errorBoundary:null,errorBoundaryClass:null,domElementGetter:null,parcelCanUpdate:!0,suppressComponentDidCatchWarning:!1,domElements:{},renderResults:{},updateResolves:{}};function i(t){if(\"object\"!==e(t))throw new Error(\"single-spa-react requires a configuration object\");var n=o(o({},a),t);if(!n.React)throw new Error(\"single-spa-react must be passed opts.React\");if(!n.ReactDOM)throw new Error(\"single-spa-react must be passed opts.ReactDOM\");if(!n.rootComponent&&!n.loadRootComponent)throw new Error(\"single-spa-react must be passed opts.rootComponent or opts.loadRootComponent\");if(n.errorBoundary&&\"function\"!=typeof n.errorBoundary)throw Error(\"The errorBoundary opt for single-spa-react must either be omitted or be a function that returns React elements\");!r&&n.React.createContext&&(r=n.React.createContext());var i={bootstrap:u.bind(null,n),mount:c.bind(null,n),unmount:p.bind(null,n)};return n.parcelCanUpdate&&(i.update=s.bind(null,n)),i}function u(e,t){return e.rootComponent?Promise.resolve():e.loadRootComponent(t).then((function(t){e.rootComponent=t}))}function c(e,t){return new Promise((function(n,o){e.suppressComponentDidCatchWarning||!function(e){if(!(e&&\"string\"==typeof e.version&&e.version.indexOf(\".\")>=0))return!1;var t=e.version.slice(0,e.version.indexOf(\".\"));try{return Number(t)>=16}catch(e){return!1}}(e.React)||e.errorBoundary||(e.rootComponent.prototype?e.rootComponent.prototype.componentDidCatch||console.warn(\"single-spa-react: \".concat(t.name||t.appName||t.childAppName,\"'s rootComponent should implement componentDidCatch to avoid accidentally unmounting the entire single-spa application.\")):console.warn(\"single-spa-react: \".concat(t.name||t.appName||t.childAppName,\"'s rootComponent does not implement an error boundary. If using a functional component, consider providing an opts.errorBoundary to singleSpaReact(opts).\")));var r=function(e,t){return t.domElement?function(){return t.domElement}:t.domElementGetter?t.domElementGetter:e.domElementGetter?e.domElementGetter:function(e){var t=e.appName||e.name;if(!t)throw Error(\"single-spa-react was not given an application name as a prop, so it can't make a unique dom element container for the react application\");var n=\"single-spa-application:\".concat(t);return function(){var e=document.getElementById(n);return e||((e=document.createElement(\"div\")).id=n,document.body.appendChild(e)),e}}(t)}(e,t);if(\"function\"!=typeof r)throw new Error(\"single-spa-react: the domElementGetter for react application '\".concat(t.appName||t.name,\"' is not a function\"));var a=l(e,t,(function(){n(this)})),i=function(e,t){var n=e(t);if(!n)throw new Error(\"single-spa-react: domElementGetter function for application '\".concat(t.appName||t.name,\"' did not return a valid dom element. Please pass a valid domElement or domElementGetter via opts or props\"));return n}(r,t),u=function(e){var t=e.opts,n=e.elementToRender,o=e.domElement;if([\"createRoot\",\"unstable_createRoot\",\"createBlockingRoot\",\"unstable_createBlockingRoot\"].indexOf(t.renderType)>=0){var r=t.ReactDOM[t.renderType](o);return r.render(n),r}if(\"hydrate\"===t.renderType)return t.ReactDOM.hydrate(n,o);return t.ReactDOM.render(n,o)}({elementToRender:a,domElement:i,opts:e});e.domElements[t.name]=i,e.renderResults[t.name]=u}))}function p(e,t){return new Promise((function(n){e.unmountFinished=n;var o=e.renderResults[t.name];o&&o.unmount?o.unmount():e.ReactDOM.unmountComponentAtNode(e.domElements[t.name]),delete e.domElements[t.name],delete e.renderResults[t.name]}))}function s(e,t){return new Promise((function(n){e.updateResolves[t.name]||(e.updateResolves[t.name]=[]),e.updateResolves[t.name].push(n);var o=l(e,t,null);e.renderResults[t.name].render(o)}))}function l(e,t,n){var a=e.React.createElement(e.rootComponent,t),i=r?e.React.createElement(r.Provider,{value:t},a):a;function u(e){u.displayName=\"SingleSpaRoot(\".concat(e.name,\")\")}return(e.errorBoundary||t.errorBoundary||e.errorBoundaryClass||t.errorBoundaryClass)&&(e.errorBoundaryClass=e.errorBoundaryClass||t.errorBoundaryClass||function(e,t){function n(t){e.React.Component.apply(this,arguments),this.state={caughtError:null,caughtErrorInfo:null},n.displayName=\"SingleSpaReactErrorBoundary(\".concat(t.name,\")\")}return n.prototype=Object.create(e.React.Component.prototype),n.prototype.render=function(){return this.state.caughtError?(e.errorBoundary||t.errorBoundary)(this.state.caughtError,this.state.caughtErrorInfo,this.props):this.props.children},n.prototype.componentDidCatch=function(e,t){this.setState({caughtError:e,caughtErrorInfo:t})},n}(e,t),i=e.React.createElement(e.errorBoundaryClass,t,i)),i=e.React.createElement(u,o(o({},t),{},{mountFinished:n,updateFinished:function(){e.updateResolves[t.name]&&(e.updateResolves[t.name].forEach((function(e){return e()})),delete e.updateResolves[t.name])},unmountFinished:function(){setTimeout(e.unmountFinished)}}),i),u.prototype=Object.create(e.React.Component.prototype),u.prototype.componentDidMount=function(){this.mounted=!0,setTimeout(this.props.mountFinished)},u.prototype.componentWillUnmount=function(){setTimeout(this.props.unmountFinished)},u.prototype.render=function(){return this.mounted&&setTimeout(this.props.updateFinished),this.props.children},i}export default i;export{r as SingleSpaContext};\n//# sourceMappingURL=single-spa-react.js.map\n","import React, { useEffect, useRef } from \"react\";\nimport _i18n from \"i18next\";\nimport { I18nextProvider } from \"react-i18next\";\nimport {\n ComponentConfig,\n ComponentContext,\n ExtensionData,\n} from \"./ComponentContext\";\n\nconst i18n = (_i18n as any).default || _i18n;\n\nconst defaultOpts = {\n strictMode: true,\n throwErrorsToConsole: true,\n disableTranslations: false,\n};\n\ninterface I18nextLoadNamespaceProps {\n forceUpdate(): void;\n ns: string;\n}\n\nconst I18nextLoadNamespace: React.FC<I18nextLoadNamespaceProps> = (props) => {\n useEffect(() => {\n i18n.on(\"languageChanged\", props.forceUpdate);\n return () => i18n.off(\"languageChanged\", props.forceUpdate);\n }, [props.forceUpdate]);\n\n const loadNamespaceErrRef = useRef(null);\n\n if (loadNamespaceErrRef.current) {\n throw loadNamespaceErrRef.current;\n }\n\n if (!i18n.hasLoadedNamespace(props.ns)) {\n const timeoutId = setTimeout(() => {\n console.warn(\n `openmrsComponentDecorator: the React suspense promise for i18next.loadNamespaces(['${props.ns}']) did not resolve nor reject after three seconds. This could mean you have multiple versions of i18next and haven't made i18next a webpack external in all projects.`\n );\n }, 3000);\n\n throw i18n\n .loadNamespaces([props.ns])\n .then(() => clearTimeout(timeoutId))\n .catch((err) => {\n clearTimeout(timeoutId);\n loadNamespaceErrRef.current = err;\n });\n }\n\n return <>{props.children}</>;\n};\n\nexport interface ComponentDecoratorOptions {\n moduleName: string;\n featureName: string;\n disableTranslations?: boolean;\n strictMode?: boolean;\n}\n\nexport interface OpenmrsReactComponentProps {\n _extensionContext?: ExtensionData;\n}\n\nexport interface OpenmrsReactComponentState {\n caughtError: any;\n caughtErrorInfo: any;\n config: ComponentConfig;\n}\n\nexport function openmrsComponentDecorator(userOpts: ComponentDecoratorOptions) {\n if (\n typeof userOpts !== \"object\" ||\n typeof userOpts.featureName !== \"string\" ||\n typeof userOpts.moduleName !== \"string\"\n ) {\n throw new Error(\"Invalid options\");\n }\n\n const opts = Object.assign({}, defaultOpts, userOpts);\n\n return function decorateComponent(\n Comp: React.ComponentType\n ): React.ComponentType<any> {\n return class OpenmrsReactComponent extends React.Component<\n OpenmrsReactComponentProps,\n OpenmrsReactComponentState\n > {\n static displayName = `OpenmrsReactComponent(${opts.featureName})`;\n\n constructor(props: OpenmrsReactComponentProps) {\n super(props);\n this.state = {\n caughtError: null,\n caughtErrorInfo: null,\n config: {\n moduleName: opts.moduleName,\n extension: props._extensionContext,\n },\n };\n }\n\n componentDidCatch(err: any, info: any) {\n if (info && info.componentStack) {\n err.extra = Object.assign(err.extra || {}, {\n componentStack: info.componentStack,\n });\n }\n\n if (opts.throwErrorsToConsole) {\n setTimeout(() => {\n throw err;\n });\n }\n\n this.setState({\n caughtError: err,\n caughtErrorInfo: info,\n });\n }\n\n render() {\n if (this.state.caughtError) {\n // TO-DO have a UX designed for when a catastrophic error occurs\n return null;\n } else {\n const content = (\n <ComponentContext.Provider value={this.state.config}>\n <React.Suspense fallback={null}>\n {opts.disableTranslations ? (\n <Comp {...this.props} />\n ) : (\n <I18nextLoadNamespace\n ns={opts.moduleName}\n forceUpdate={() => this.forceUpdate()}\n >\n <I18nextProvider i18n={i18n} defaultNS={opts.moduleName}>\n <Comp {...this.props} />\n </I18nextProvider>\n </I18nextLoadNamespace>\n )}\n </React.Suspense>\n </ComponentContext.Provider>\n );\n\n if (opts.strictMode || !React.StrictMode) {\n return content;\n } else {\n return <React.StrictMode>{content}</React.StrictMode>;\n }\n }\n }\n };\n };\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport singleSpaReact from \"single-spa-react\";\nimport {\n openmrsComponentDecorator,\n ComponentDecoratorOptions,\n} from \"./openmrsComponentDecorator\";\n\nexport function getLifecycle<T>(\n Component: React.ComponentType<T>,\n options: ComponentDecoratorOptions\n) {\n return singleSpaReact({\n React,\n ReactDOM,\n rootComponent: openmrsComponentDecorator(options)(Component),\n });\n}\n\nexport function getAsyncLifecycle<T>(\n lazy: () => Promise<{ default: React.ComponentType<T> }>,\n options: ComponentDecoratorOptions\n) {\n return () =>\n lazy().then(({ default: Component }) => getLifecycle(Component, options));\n}\n\nexport function getSyncLifecycle<T>(\n Component: React.ComponentType<T>,\n options: ComponentDecoratorOptions\n) {\n return () => Promise.resolve(getLifecycle(Component, options));\n}\n\n/**\n * @deprecated Use getAsyncLifecycle instead.\n */\nexport const getAsyncExtensionLifecycle = getAsyncLifecycle;\n","import { useEffect } from \"react\";\n\nexport function useBodyScrollLock(active: boolean) {\n useEffect(() => {\n if (active) {\n const original = window.getComputedStyle(document.body).overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = original;\n };\n }\n }, [active]);\n}\n","import { useContext, useEffect, useMemo, useState } from \"react\";\nimport {\n getConfigStore,\n getExtensionConfigStore,\n ConfigStore,\n} from \"@openmrs/esm-config\";\nimport { ComponentContext, ExtensionData } from \"./ComponentContext\";\nimport { ConfigObject } from \"@openmrs/esm-config\";\nimport { Store } from \"unistore\";\n\nconst promises: Record<string, Promise<ConfigObject>> = {};\nconst defaultState = {};\nconst errorMessage = `No ComponentContext has been provided. This should come from \"openmrsComponentDecorator\".\nUsually this is already applied when using \"getAsyncLifecycle\" or \"getSyncLifecycle\".`;\n\nfunction readInitialConfig(store: Store<ConfigStore> | undefined) {\n if (!store) {\n return undefined;\n } else {\n return () => {\n const state = store.getState();\n\n if (state.loaded && state.config) {\n return state.config;\n }\n\n return undefined;\n };\n }\n}\n\nfunction createConfigPromise(store: Store<ConfigStore>) {\n return new Promise<ConfigObject>((resolve) => {\n const unsubscribe = store.subscribe((state) => {\n if (state.loaded && state.config) {\n resolve(state.config);\n unsubscribe();\n }\n });\n });\n}\n\nfunction useConfigStore(store: Store<ConfigStore> | undefined) {\n const [state, setState] = useState(readInitialConfig(store));\n\n useEffect(() => {\n return store?.subscribe((state) => {\n if (state.loaded && state.config) {\n setState(state.config);\n }\n });\n }, [store]);\n\n return state;\n}\n\nfunction useExtensionConfig(extension: ExtensionData | undefined) {\n const store = useMemo(\n () =>\n extension &&\n getExtensionConfigStore(\n extension.extensionSlotModuleName,\n extension.extensionSlotName,\n extension.extensionId\n ),\n [extension]\n );\n const state = useConfigStore(store);\n\n if (!state && extension) {\n const cacheId = `${extension.extensionSlotModuleName}-${extension.extensionSlotName}-${extension.extensionId}`;\n\n if (!promises[cacheId] && store) {\n promises[cacheId] = createConfigPromise(store);\n }\n\n // React will prevent the client component from rendering until the promise resolves\n throw promises[cacheId];\n }\n\n return state || defaultState;\n}\n\nfunction useNormalConfig(moduleName: string) {\n const store = useMemo(() => getConfigStore(moduleName), [moduleName]);\n const cacheId = moduleName;\n const state = useConfigStore(store);\n\n if (!state) {\n if (!promises[cacheId]) {\n promises[cacheId] = createConfigPromise(store);\n }\n\n // React will prevent the client component from rendering until the promise resolves\n throw promises[cacheId];\n }\n\n return state;\n}\n\n/**\n * Use this React Hook to obtain your module's configuration.\n */\nexport function useConfig() {\n // This hook uses the config of the MF defining the component.\n // If the component is used in an extension slot then the slot\n // may override (part of) its configuration.\n const { moduleName, extension } = useContext(ComponentContext);\n\n if (!moduleName && !extension) {\n throw Error(errorMessage);\n }\n\n const normalConfig = useNormalConfig(moduleName);\n const extensionConfig = useExtensionConfig(extension);\n const config = useMemo(\n () => ({\n ...normalConfig,\n ...extensionConfig,\n }),\n [normalConfig, extensionConfig]\n );\n\n return config;\n}\n","import { useEffect, useReducer } from \"react\";\nimport { fetchCurrentPatient, PatientUuid } from \"@openmrs/esm-api\";\n\ntype NullablePatient = fhir.Patient | null;\n\ninterface CurrentPatientState {\n patient: NullablePatient;\n isLoadingPatient: boolean;\n err: Error | null;\n}\n\ninterface LoadPatient {\n type: ActionTypes.loadPatient;\n}\n\ninterface NewPatient {\n type: ActionTypes.newPatient;\n patient: NullablePatient;\n}\n\ninterface PatientLoadError {\n type: ActionTypes.loadError;\n err: Error | null;\n}\n\ntype Action = LoadPatient | NewPatient | PatientLoadError;\n\nenum ActionTypes {\n loadPatient = \"loadPatient\",\n newPatient = \"newPatient\",\n loadError = \"patientLloadErroroadError\",\n}\n\nconst initialState: CurrentPatientState = {\n patient: null,\n isLoadingPatient: true,\n err: null,\n};\n\nfunction getPatientUuidFromUrl(): PatientUuid {\n const match = /\\/patient\\/([a-zA-Z0-9\\-]+)\\/?/.exec(location.pathname);\n return match && match[1];\n}\n\nfunction reducer(\n state: CurrentPatientState,\n action: Action\n): CurrentPatientState {\n switch (action.type) {\n case ActionTypes.loadPatient:\n return {\n ...state,\n patient: null,\n isLoadingPatient: true,\n err: null,\n };\n case ActionTypes.newPatient:\n return {\n ...state,\n patient: action.patient,\n isLoadingPatient: false,\n err: null,\n };\n case ActionTypes.loadError:\n return {\n ...state,\n patient: null,\n isLoadingPatient: false,\n err: action.err,\n };\n default:\n return state;\n }\n}\n\n/* This React hook returns the current patient, as specified by the current route. It returns\n * all the information needed to render a loading state, error state, and normal/success state.\n */\nexport function useCurrentPatient(\n patientUuid = getPatientUuidFromUrl()\n): [boolean, NullablePatient, PatientUuid, Error | null] {\n const [state, dispatch] = useReducer(reducer, initialState);\n\n useEffect(() => {\n let active = true;\n\n if (patientUuid) {\n fetchCurrentPatient(patientUuid).then(\n (patient) =>\n active &&\n dispatch({\n patient: patient.data,\n type: ActionTypes.newPatient,\n }),\n (err) =>\n active &&\n dispatch({\n err,\n type: ActionTypes.loadError,\n })\n );\n dispatch({ type: ActionTypes.loadPatient });\n } else {\n dispatch({ type: ActionTypes.newPatient, patient: null });\n }\n\n return () => {\n active = false;\n };\n }, [patientUuid]);\n\n return [state.isLoadingPatient, state.patient, patientUuid, state.err];\n}\n","import { useMemo } from \"react\";\nimport { useConnectedExtensions } from \"./useConnectedExtensions\";\n\n/**\n * Extract meta data from all extension for a given extension slot.\n * @param extensionSlotName\n */\nexport function useExtensionSlotMeta(extensionSlotName: string) {\n const extensions = useConnectedExtensions(extensionSlotName);\n\n return useMemo(\n () => Object.fromEntries(extensions.map((ext) => [ext.name, ext.meta])),\n [extensions]\n );\n}\n","import { ExtensionStore, extensionStore } from \"@openmrs/esm-extensions\";\nimport { createUseStore } from \"./createUseStore\";\n\nexport const useExtensionStore = createUseStore<ExtensionStore>(extensionStore);\n","import { useState, useCallback } from \"react\";\n\nexport function useForceUpdate() {\n const [, setTick] = useState(0);\n const update = useCallback(() => {\n setTick((tick) => tick + 1);\n }, []);\n return update;\n}\n","import { useEffect, useState } from \"react\";\n\nexport type LayoutType = \"tablet\" | \"phone\" | \"desktop\";\n\nfunction getLayout() {\n let layout: LayoutType = \"tablet\";\n\n document.body.classList.forEach((cls) => {\n switch (cls) {\n case \"omrs-breakpoint-lt-tablet\":\n layout = \"phone\";\n break;\n case \"omrs-breakpoint-gt-tablet\":\n layout = \"desktop\";\n break;\n }\n });\n\n return layout;\n}\n\nexport function useLayoutType() {\n const [type, setType] = useState<LayoutType>(getLayout);\n\n useEffect(() => {\n const handler = () => {\n setType(getLayout());\n };\n window.addEventListener(\"resize\", handler);\n return () => window.removeEventListener(\"resize\", handler);\n }, []);\n\n return type;\n}\n","import { getLocations, Location } from \"@openmrs/esm-api\";\nimport { useState, useEffect } from \"react\";\n\nexport function useLocations() {\n const [locations, setLocations] = useState<Array<Location>>([]);\n\n useEffect(() => {\n const locationSub = getLocations().subscribe(\n (locations) => {\n setLocations(locations);\n },\n (error) => {\n console.error(error);\n }\n );\n return () => locationSub.unsubscribe();\n }, []);\n\n return locations;\n}\n","import { useEffect } from \"react\";\nimport {\n NavigationContext,\n pushNavigationContext,\n} from \"@openmrs/esm-extensions\";\n\n/**\n * @deprecated Don't use this anymore.\n */\nexport function useNavigationContext(context: NavigationContext) {\n useEffect(() => pushNavigationContext(context), []);\n}\n","import { useRef, useEffect } from \"react\";\n\nexport function useOnClickOutside<T extends HTMLElement = HTMLElement>(\n handler: (event: Event) => void,\n active = true\n) {\n const ref = useRef<T>(null);\n\n useEffect(() => {\n if (active) {\n const listener = (event: Event) => {\n const el = ref?.current;\n\n if (el?.contains(event.target as Node)) {\n handler(event);\n }\n };\n\n window.addEventListener(`click`, listener);\n return () => window.removeEventListener(`click`, listener);\n }\n }, [handler, active]);\n\n return ref;\n}\n","import React, { useEffect, useState } from \"react\";\nimport { getCurrentUser, userHasAccess, LoggedInUser } from \"@openmrs/esm-api\";\n\nexport interface UserHasAccessProps {\n privilege: string;\n}\n\nexport const UserHasAccess: React.FC<UserHasAccessProps> = ({\n privilege,\n children,\n}) => {\n const [user, setUser] = useState<LoggedInUser | null>(null);\n\n useEffect(() => {\n const subscription = getCurrentUser({\n includeAuthStatus: false,\n }).subscribe(setUser);\n return () => subscription.unsubscribe();\n }, []);\n\n if (user && userHasAccess(privilege, user)) {\n return <>{children}</>;\n }\n\n return null;\n};\n","import { openmrsObservableFetch, SessionUser } from \"@openmrs/esm-api\";\nimport { useState, useEffect } from \"react\";\n\nexport function useSessionUser() {\n const [sessionUser, setSessionUser] = useState<SessionUser | null>(null);\n\n useEffect(() => {\n if (sessionUser === null) {\n const sub = openmrsObservableFetch(\"/ws/rest/v1/session\").subscribe(\n (user: any) => {\n setSessionUser(user.data);\n }\n );\n\n return () => sub.unsubscribe();\n }\n }, [sessionUser]);\n\n return sessionUser;\n}\n","import { Store } from \"unistore\";\nimport { Actions, BoundActions, createUseStore } from \"./createUseStore\";\n\nexport function useStore<T>(store: Store<T>): T;\nexport function useStore<T>(\n store: Store<T>,\n actions: Actions\n): T & BoundActions;\nexport function useStore<T>(store: Store<T>, actions?: Actions) {\n return createUseStore<T>(store)(actions);\n}\n","import { useState, useEffect } from \"react\";\nimport dayjs from \"dayjs\";\nimport {\n getVisitsForPatient,\n getStartedVisit,\n VisitMode,\n VisitStatus,\n Visit,\n} from \"@openmrs/esm-api\";\n\nexport function useVisit(patientUuid: string) {\n const [currentVisit, setCurrentVisit] = useState<Visit | null>(null);\n const [error, setError] = useState(null);\n\n useEffect(() => {\n const sub = getStartedVisit.subscribe((visit) => {\n if (visit) {\n setCurrentVisit(visit?.visitData ?? null);\n } else {\n setCurrentVisit(null);\n }\n });\n\n return () => sub.unsubscribe();\n }, [patientUuid]);\n\n useEffect(() => {\n const abortController = new AbortController();\n const sub = getVisitsForPatient(patientUuid, abortController).subscribe(\n ({ data }) => {\n const currentVisit = data.results.find(\n (visit) => visit.stopDatetime === null\n );\n\n if (currentVisit) {\n getStartedVisit.next({\n mode: VisitMode.LOADING,\n visitData: currentVisit,\n status: VisitStatus.ONGOING,\n });\n }\n },\n setError\n );\n return () => sub && sub.unsubscribe();\n }, [patientUuid]);\n\n return { currentVisit, error };\n}\n","import { getVisitTypes, VisitType } from \"@openmrs/esm-api\";\nimport { useEffect, useState } from \"react\";\n\nexport function useVisitTypes() {\n const [visitTypes, setVisitTypes] = useState<Array<VisitType>>([]);\n\n useEffect(() => {\n const visitTypesSub = getVisitTypes().subscribe(\n (visitTypes) => {\n setVisitTypes(visitTypes);\n },\n (error) => console.error(error)\n );\n\n return () => visitTypesSub.unsubscribe();\n }, []);\n\n return visitTypes;\n}\n","import { useMemo, useState } from \"react\";\n\nconst defaultResultsPerPage = 10;\n\nexport function usePagination<T>(\n data: Array<T> = [],\n resultsPerPage = defaultResultsPerPage\n) {\n const [page, setPage] = useState(1);\n const totalPages = useMemo(\n () => Math.max(1, Math.ceil(data.length / resultsPerPage)),\n [data.length, resultsPerPage]\n );\n const results = useMemo(() => {\n const lowerBound = (page - 1) * resultsPerPage;\n const upperBound = (page + 0) * resultsPerPage;\n return data.slice(lowerBound, upperBound);\n }, [data, page, resultsPerPage]);\n\n return {\n results,\n totalPages,\n currentPage: page,\n paginated: data.length > resultsPerPage,\n showNextButton: page < totalPages,\n showPreviousButton: page > 1,\n goTo(page: number) {\n setPage(Math.max(1, Math.min(totalPages, page)));\n },\n goToNext() {\n if (page < totalPages) {\n setPage(page + 1);\n }\n },\n goToPrevious() {\n if (page > 1) {\n setPage(page - 1);\n }\n },\n };\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","function n(n,t){for(var r in t)n[r]=t[r];return n}export default function(t){var r=[];function u(n){for(var t=[],u=0;u<r.length;u++)r[u]===n?n=null:t.push(r[u]);r=t}function e(u,e,f){t=e?u:n(n({},t),u);for(var i=r,o=0;o<i.length;o++)i[o](t,f)}return t=t||{},{action:function(n){function r(t){e(t,!1,n)}return function(){for(var u=arguments,e=[t],f=0;f<arguments.length;f++)e.push(u[f]);var i=n.apply(this,e);if(null!=i)return i.then?i.then(r):r(i)}},setState:e,subscribe:function(n){return r.push(n),function(){u(n)}},unsubscribe:u,getState:function(){return t}}}\n//# sourceMappingURL=unistore.es.js.map\n","import createStore, { Store } from \"unistore\";\n\ninterface StoreEntity {\n value: Store<any>;\n active: boolean;\n}\n\nconst availableStores: Record<string, StoreEntity> = {};\n\n/**\n * Creates a Unistore [store](https://github.com/developit/unistore#store).\n *\n * @param name A name by which the store can be looked up later.\n * Must be unique across the entire application.\n * @param initialState An object which will be the initial state of the store.\n * @returns The newly created store.\n */\nexport function createGlobalStore<TState>(\n name: string,\n initialState: TState\n): Store<TState> {\n const available = availableStores[name];\n\n if (available) {\n if (available.active) {\n console.error(\n \"Cannot override an existing store. Make sure that stores are only created once.\"\n );\n } else {\n available.value.setState(initialState, true);\n }\n\n available.active = true;\n return available.value;\n } else {\n const store = createStore(initialState);\n\n availableStores[name] = {\n value: store,\n active: true,\n };\n\n return store;\n }\n}\n\n/**\n * Returns the existing [store](https://github.com/developit/unistore#store) named `name`,\n * or creates a new store named `name` if none exists.\n *\n * @param name The name of the store to look up.\n * @param fallbackState The initial value of the new store if no store named `name` exists.\n * @returns The found or newly created store.\n */\nexport function getGlobalStore<TState = any>(\n name: string,\n fallbackState?: TState\n): Store<TState> {\n const available = availableStores[name];\n\n if (!available) {\n const store = createStore(fallbackState);\n availableStores[name] = {\n value: store,\n active: false,\n };\n return store;\n }\n\n return available.value;\n}\n\nexport interface AppState {}\n\n/**\n * @internal\n */\nexport function createAppState(initialState: AppState) {\n return createGlobalStore(\"app\", initialState);\n}\n\n/**\n * @returns The [store](https://github.com/developit/unistore#store) named `app`.\n */\nexport function getAppState() {\n return getGlobalStore<AppState>(\"app\", {});\n}\n\nexport function subscribeTo<T, U>(\n store: Store<T>,\n select: (state: T) => U,\n handle: (subState: U) => void\n) {\n let previous = select(store.getState());\n\n return store.subscribe((state) => {\n const current = select(state);\n\n if (current !== previous) {\n previous = current;\n handle(current);\n }\n });\n}\n","export function update<T extends Record<string, any>>(\n obj: T,\n [property, ...restPropertyPath]: Array<string>,\n value: any\n): T {\n if (!property) {\n return obj;\n } else if (restPropertyPath.length === 0) {\n return { ...obj, [property]: value };\n } else {\n return {\n ...obj,\n [property]: update(obj[property] || {}, restPropertyPath, value),\n };\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","import createStore, { Store } from \"unistore\";\n\ninterface StoreEntity {\n value: Store<any>;\n active: boolean;\n}\n\nconst availableStores: Record<string, StoreEntity> = {};\n\n/**\n * Creates a Unistore [store](https://github.com/developit/unistore#store).\n *\n * @param name A name by which the store can be looked up later.\n * Must be unique across the entire application.\n * @param initialState An object which will be the initial state of the store.\n * @returns The newly created store.\n */\nexport function createGlobalStore<TState>(\n name: string,\n initialState: TState\n): Store<TState> {\n const available = availableStores[name];\n\n if (available) {\n if (available.active) {\n console.error(\n \"Cannot override an existing store. Make sure that stores are only created once.\"\n );\n } else {\n available.value.setState(initialState, true);\n }\n\n available.active = true;\n return available.value;\n } else {\n const store = createStore(initialState);\n\n availableStores[name] = {\n value: store,\n active: true,\n };\n\n return store;\n }\n}\n\n/**\n * Returns the existing [store](https://github.com/developit/unistore#store) named `name`,\n * or creates a new store named `name` if none exists.\n *\n * @param name The name of the store to look up.\n * @param fallbackState The initial value of the new store if no store named `name` exists.\n * @returns The found or newly created store.\n */\nexport function getGlobalStore<TState = any>(\n name: string,\n fallbackState?: TState\n): Store<TState> {\n const available = availableStores[name];\n\n if (!available) {\n const store = createStore(fallbackState);\n availableStores[name] = {\n value: store,\n active: false,\n };\n return store;\n }\n\n return available.value;\n}\n\nexport interface AppState {}\n\n/**\n * @internal\n */\nexport function createAppState(initialState: AppState) {\n return createGlobalStore(\"app\", initialState);\n}\n\n/**\n * @returns The [store](https://github.com/developit/unistore#store) named `app`.\n */\nexport function getAppState() {\n return getGlobalStore<AppState>(\"app\", {});\n}\n\nexport function subscribeTo<T, U>(\n store: Store<T>,\n select: (state: T) => U,\n handle: (subState: U) => void\n) {\n let previous = select(store.getState());\n\n return store.subscribe((state) => {\n const current = select(state);\n\n if (current !== previous) {\n previous = current;\n handle(current);\n }\n });\n}\n","export function update<T extends Record<string, any>>(\n obj: T,\n [property, ...restPropertyPath]: Array<string>,\n value: any\n): T {\n if (!property) {\n return obj;\n } else if (restPropertyPath.length === 0) {\n return { ...obj, [property]: value };\n } else {\n return {\n ...obj,\n [property]: update(obj[property] || {}, restPropertyPath, value),\n };\n }\n}\n","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 24\\\">\\n <g id=\\\"icon/callend/access_time24px\\\">\\n <path id=\\\"icon/callend/access_time24px\\\" d=\\\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm-.22-13h-.06c-.4 0-.72.32-.72.72v4.72c0 .35.18.68.49.86l4.15 2.49c.34.2.78.1.98-.24.21-.34.1-.79-.25-.99l-3.87-2.3V7.72c0-.4-.32-.72-.72-.72z\\\" />\\n </g>\\n <title>Access time rounded</title>\\n</svg>\";","module.exports = __WEBPACK_EXTERNAL_MODULE__45__;","module.exports = __WEBPACK_EXTERNAL_MODULE__954__;","module.exports = __WEBPACK_EXTERNAL_MODULE__493__;","module.exports = __WEBPACK_EXTERNAL_MODULE__792__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","/* The svg container is a div that contains all the OpenMRS svgs, with\n * an HTML id that can be referenced with the following code:\n * <svg role=\"img\">\n * <use link:href=\"#the-svg-id\"></use>\n * </svg>\n *\n * This approach is known as \"svg sprites\"\n */\nconst svgContainer = document.createElement(\"div\");\nconst appendContainer = () => {\n document.body.appendChild(svgContainer);\n};\nsvgContainer.id = \"omrs-svgs-container\";\nsvgContainer.style.display = \"none\";\n\nif (document.readyState === \"complete\") {\n appendContainer();\n} else {\n window.addEventListener(\"load\", appendContainer);\n}\n\nexport function addSvg(htmlId: string, svgString: string) {\n const domParser = new DOMParser();\n const dom = domParser.parseFromString(svgString, \"text/html\");\n const svgElement = dom.querySelector(\"svg\");\n\n if (svgElement) {\n svgElement.id = htmlId;\n svgContainer.appendChild(svgElement);\n }\n}\n","import React from \"react\";\nimport { render } from \"react-dom\";\nimport { Subject } from \"rxjs\";\nimport {\n InlineNotificationMeta,\n NotificationDescriptor,\n} from \"./notification.component\";\nimport ActiveNotifications from \"./active-notifications.component\";\nimport isEmpty from \"lodash-es/isEmpty\";\n\nconst inlineNotificationsSubject = new Subject<InlineNotificationMeta>();\nlet notificationId = 0;\n\n/**\n * Starts a rendering host for inline notifications. Should only be used by the app shell.\n * Under normal conditions there is no need to use this function.\n * @param target The container target that hosts the inline notifications.\n */\nexport function renderInlineNotifications(target: HTMLElement | null) {\n if (target) {\n render(\n <ActiveNotifications subject={inlineNotificationsSubject} />,\n target\n );\n }\n}\n\nfunction isNotEmpty(description: React.ReactNode) {\n return typeof description === \"string\"\n ? description.trim().length > 0\n : typeof description === \"object\"\n ? !isEmpty(description)\n : false;\n}\n\n/**\n * Displays an inline notification in the UI.\n * @param notification The description of the notification to display.\n */\nexport function showNotification(notification: NotificationDescriptor) {\n if (notification && isNotEmpty(notification.description)) {\n setTimeout(() => {\n // always use in subsequent cycle\n inlineNotificationsSubject.next({\n ...notification,\n id: notificationId++,\n });\n }, 0);\n } else {\n console.error(\n `showNotification must be called with an object having a 'description' property that is a non-empty string or object`\n );\n }\n}\n","import React from \"react\";\nimport { render } from \"react-dom\";\nimport { Subject } from \"rxjs\";\nimport { ToastDescriptor, ToastNotificationMeta } from \"./toast.component\";\nimport ActiveToasts from \"./active-toasts.component\";\nimport isEmpty from \"lodash-es/isEmpty\";\n\nconst toastsSubject = new Subject<ToastNotificationMeta>();\nlet toastId = 0;\n\n/**\n * Starts a rendering host for toast notifications. Should only be used by the app shell.\n * Under normal conditions there is no need to use this function.\n * @param target The container target that hosts the toast notifications.\n */\nexport function renderToasts(target: HTMLElement | null) {\n if (target) {\n render(<ActiveToasts subject={toastsSubject} />, target);\n }\n}\n\nfunction isNotEmpty(description: React.ReactNode) {\n return typeof description === \"string\"\n ? description.trim().length > 0\n : typeof description === \"object\"\n ? !isEmpty(description)\n : false;\n}\n\n/**\n * Displays a toast notification in the UI.\n * @param toast The description of the toast to display.\n */\nexport function showToast(toast: ToastDescriptor) {\n if (toast && isNotEmpty(toast.description)) {\n setTimeout(() => {\n // always use in subsequent cycle\n toastsSubject.next({\n ...toast,\n id: toastId++,\n });\n }, 0);\n } else {\n console.error(\n `showToast must be called with an object having a 'description' property that is a non-empty string or object`\n );\n }\n}\n","import { renderExtension } from \"@openmrs/esm-extensions\";\nimport { createGlobalStore } from \"@openmrs/esm-state\";\n\ntype ModalInstanceState = \"NEW\" | \"MOUNTED\" | \"TO_BE_DELETED\";\n\ninterface ModalInstance {\n container?: HTMLElement;\n state: ModalInstanceState;\n onClose: () => void;\n cleanup?: () => void;\n extensionId: string;\n props: Record<string, any>;\n}\n\ninterface ModalState {\n modalContainer: HTMLElement | null;\n modalStack: Array<ModalInstance>;\n}\n\nconst modalStore = createGlobalStore<ModalState>(\"globalModalState\", {\n modalContainer: null,\n modalStack: [],\n});\n\nfunction htmlToElement(html: string) {\n const template = document.createElement(\"template\");\n template.innerHTML = html;\n return template.content.firstChild as ChildNode;\n}\n\nfunction createModalFrame() {\n const closeButton = htmlToElement(\n `\n <button\n class=\"bx--modal-close\"\n type=\"button\">\n <svg id=\"icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><defs><style>.cls-1{fill:#000000;}.cls-2{fill:none;}</style></defs><title>close</title><polygon class=\"cls-1\" points=\"24 9.4 22.6 8 16 14.6 9.4 8 8 9.4 14.6 16 8 22.6 9.4 24 16 17.4 22.6 24 24 22.6 17.4 16 24 9.4\"/><rect class=\"cls-2\" width=\"32\" height=\"32\"/></svg>\n </button>`.trim()\n ) as HTMLButtonElement;\n\n closeButton.addEventListener(\"click\", closeHighestInstance);\n const outer = document.createElement(\"div\");\n outer.className = \"bx--modal-container\";\n const contentContainer = document.createElement(\"div\");\n\n outer.append(closeButton);\n outer.append(contentContainer);\n\n return { outer, contentContainer };\n}\n\nconst original = window.getComputedStyle(document.body).overflow;\n\nfunction handleModalStateUpdate({ modalStack, modalContainer }: ModalState) {\n if (!modalContainer) return;\n\n if (modalStack.length) {\n // spin up the container if it was hidden previously\n if (!modalContainer.style.visibility) {\n addEventListener(\"keydown\", handleEscKey);\n document.body.style.overflow = \"hidden\";\n modalContainer.style.visibility = \"unset\";\n }\n\n modalStack.forEach((instance, index) => {\n switch (instance.state) {\n case \"NEW\":\n const { outer, contentContainer } = createModalFrame();\n instance.container = outer;\n instance.cleanup = renderExtension(\n contentContainer,\n \"\",\n \"\",\n instance.extensionId,\n undefined,\n instance.props\n );\n instance.state = \"MOUNTED\";\n modalContainer.prepend(outer);\n outer.style.visibility = \"unset\";\n break;\n\n case \"MOUNTED\":\n if (instance.container) {\n instance.container.style.visibility = index ? \"hidden\" : \"unset\";\n }\n break;\n\n case \"TO_BE_DELETED\":\n instance.onClose();\n instance.cleanup?.();\n instance.container?.remove();\n setTimeout(() => {\n modalStore.setState({\n modalContainer,\n modalStack: modalStack.filter((x) => x !== instance),\n });\n }, 0);\n break;\n }\n });\n } else {\n modalContainer.style.removeProperty(\"visibility\");\n document.body.style.overflow = original;\n removeEventListener(\"keydown\", handleEscKey);\n }\n}\n\nexport function renderModals(modalContainer: HTMLElement | null) {\n if (modalContainer) {\n modalStore.subscribe(handleModalStateUpdate);\n\n modalStore.setState({\n ...modalStore.getState(),\n modalContainer,\n });\n }\n}\nfunction openInstance(instance: ModalInstance) {\n const state = modalStore.getState();\n const modalStack = [instance, ...state.modalStack];\n\n modalStore.setState({\n ...state,\n modalStack,\n });\n}\n\nfunction closeInstance(instance: ModalInstance) {\n const state = modalStore.getState();\n const modalStack = state.modalStack.map(\n (x): ModalInstance =>\n x === instance ? { ...x, state: \"TO_BE_DELETED\" } : x\n );\n modalStore.setState({\n ...state,\n modalStack,\n });\n}\n\nfunction closeHighestInstance() {\n const state = modalStore.getState();\n const [top] = state.modalStack;\n\n if (top) {\n closeInstance(top);\n }\n}\n\nfunction handleEscKey(e: KeyboardEvent) {\n if (e.key === \"Escape\") {\n closeHighestInstance();\n }\n}\n\n/**\n * Shows the provided extension component in a modal dialog.\n * @param extensionId The id of the extension to show.\n * @param props The optional props to provide to the extension.\n * @param onClose The optional notification to receive when the modal is closed.\n * @returns The dispose function to force closing the modal dialog.\n */\nexport function showModal(\n extensionId: string,\n props: Record<string, any> = {},\n onClose: () => void = () => {}\n) {\n const close = () => {\n const state = modalStore.getState();\n const item = state.modalStack.find((m) => m.onClose === onClose);\n\n if (item) {\n closeInstance(item);\n }\n };\n\n openInstance({\n state: \"NEW\",\n onClose,\n extensionId,\n props: {\n extensionId,\n close,\n ...props,\n },\n });\n\n return close;\n}\n","import { addSvg } from \"../svg-utils\";\n\nexport function setupLogo() {\n const fullLogo = require(\"./openmrs-logo-full.svg\").default;\n\n addSvg(\"omrs-logo-full-color\", fullLogo);\n addSvg(\"omrs-logo-full-mono\", fullLogo);\n addSvg(\"omrs-logo-full-grey\", fullLogo);\n\n const partialLogo = require(\"./openmrs-logo-partial.svg\").default;\n\n addSvg(\"omrs-logo-partial-color\", partialLogo);\n addSvg(\"omrs-logo-partial-mono\", partialLogo);\n addSvg(\"omrs-logo-partial-grey\", partialLogo);\n\n const iconLogo = require(\"./openmrs-logo-icon.svg\").default;\n\n addSvg(\"omrs-logo-icon-color\", iconLogo);\n addSvg(\"omrs-logo-icon-mono\", iconLogo);\n addSvg(\"omrs-logo-icon-grey\", iconLogo);\n\n const whiteLogo = require(\"./openmrs-logo-white.svg\").default;\n\n addSvg(\"omrs-logo-white\", whiteLogo);\n}\n","import { addSvg } from \"../svg-utils\";\n\nexport function setupIcons() {\n addSvg(\n \"omrs-icon-visibility\",\n require(\"./svgs/visibility_24px_rounded.svg\").default\n );\n addSvg(\"omrs-icon-menu\", require(\"./svgs/menu_24px_rounded.svg\").default);\n addSvg(\"omrs-icon-search\", require(\"./svgs/search_24px_rounded.svg\").default);\n addSvg(\n \"omrs-icon-arrow-back\",\n require(\"./svgs/arrow_back_24px_rounded.svg\").default\n );\n addSvg(\n \"omrs-icon-arrow-forward\",\n require(\"./svgs/arrow_forward_24px.svg\").default\n );\n addSvg(\n \"omrs-icon-arrow-downward\",\n require(\"./svgs/arrow_downward_24px_rounded.svg\").default\n );\n addSvg(\n \"omrs-icon-arrow-upward\",\n require(\"./svgs/arrow_upward_24px_rounded.svg\").default\n );\n addSvg(\n \"omrs-icon-chevron-left\",\n require(\"./svgs/chevron_left_24px_rounded.svg\").default\n );\n addSvg(\n \"omrs-icon-chevron-right\",\n require(\"./svgs/chevron_right_24px_rounded.svg\").default\n );\n addSvg(\n \"omrs-icon-chevron-up\",\n require(\"./svgs/chevron_up_24px_rounded.svg\").default\n );\n addSvg(\n \"omrs-icon-chevron-down\",\n require(\"./svgs/chevron_down-24px_rounded.svg\").default\n );\n addSvg(\n \"omrs-icon-supervised-user-circle\",\n require(\"./svgs/supervised_user_circle_24px_rounded.svg\").default\n );\n addSvg(\"omrs-icon-home\", require(\"./svgs/home_24px_rounded.svg\").default);\n addSvg(\"omrs-icon-close\", require(\"./svgs/close-24px.svg\").default);\n addSvg(\n \"omrs-icon-important-notification\",\n require(\"./svgs/important_notification_24px_rounded.svg\").default\n );\n addSvg(\n \"omrs-icon-calendar\",\n require(\"./svgs/calendar_24px_rounded.svg\").default\n );\n addSvg(\n \"omrs-icon-access-time\",\n require(\"./svgs/access_time-24px_rounded.svg\").default\n );\n addSvg(\"omrs-icon-add\", require(\"./svgs/add_24px_rounded.svg\").default);\n addSvg(\"omrs-icon-remove\", require(\"./svgs/remove-24px_rounded.svg\").default);\n addSvg(\n \"omrs-icon-check-circle\",\n require(\"./svgs/check_circle-24px.svg\").default\n );\n addSvg(\n \"omrs-icon-zoomoutmap\",\n require(\"./svgs/zoom_out_map_24px_rounded.svg\").default\n );\n addSvg(\"omrs-icon-location\", require(\"./svgs/location-24px.svg\").default);\n addSvg(\n \"omrs-icon-download\",\n require(\"./svgs/download_24px_rounded.svg\").default\n );\n}\n","!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&null===(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s)))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||(new Date).getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 0; i < nodes.length; i++) {\n walker = insert(this, walker, nodes[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n static get ANY () {\n return ANY\n }\n constructor (comp, options) {\n options = parseOptions(options)\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n }\n\n parse (comp) {\n const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const m = comp.match(r)\n\n if (!m) {\n throw new TypeError(`Invalid comparator: ${comp}`)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n }\n\n toString () {\n return this.value\n }\n\n test (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n }\n\n intersects (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n return new Range(comp.value, options).test(this.value)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n return new Range(this.value, options).test(comp.semver)\n }\n\n const sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n const sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n const sameSemVer = this.semver.version === comp.semver.version\n const differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n const oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<')\n const oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>')\n\n return (\n sameDirectionIncreasing ||\n sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan ||\n oppositeDirectionsGreaterThan\n )\n }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst {re, t} = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.format()\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range\n .split(/\\s*\\|\\|\\s*/)\n // map the range to a 2d array of comparators\n .map(range => this.parseRange(range.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${range}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0)\n this.set = [first]\n else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.format()\n }\n\n format () {\n this.range = this.set\n .map((comps) => {\n return comps.join(' ').trim()\n })\n .join('||')\n .trim()\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n range = range.trim()\n\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts = Object.keys(this.options).join(',')\n const memoKey = `parseRange:${memoOpts}:${range}`\n const cached = cache.get(memoKey)\n if (cached)\n return cached\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n const rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n // in loose mode, throw out any that are not valid comparators\n .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)\n .map(comp => new Comparator(comp, this.options))\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const l = rangeList.length\n const rangeMap = new Map()\n for (const comp of rangeList) {\n if (isNullSet(comp))\n return [comp]\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has(''))\n rangeMap.delete('')\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace\n} = require('../internal/re')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\nconst replaceTildes = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceTilde(comp, options)\n }).join(' ')\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\nconst replaceCarets = (comp, options) =>\n comp.trim().split(/\\s+/).map((comp) => {\n return replaceCaret(comp, options)\n }).join(' ')\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map((comp) => {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<')\n pr = '-0'\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp.trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return (`${from} ${to}`).trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const parse = require('./parse')\nconst clean = (version, options) => {\n const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\nmodule.exports = clean\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst {re, t} = require('../internal/re')\n\nconst coerce = (version, options) => {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n let match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n let next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null)\n return null\n\n return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const parse = require('./parse')\nconst eq = require('./eq')\n\nconst diff = (version1, version2) => {\n if (eq(version1, version2)) {\n return null\n } else {\n const v1 = parse(version1)\n const v2 = parse(version2)\n const hasPre = v1.prerelease.length || v2.prerelease.length\n const prefix = hasPre ? 'pre' : ''\n const defaultResult = hasPre ? 'prerelease' : ''\n for (const key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\nmodule.exports = diff\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier) => {\n if (typeof (options) === 'string') {\n identifier = options\n options = undefined\n }\n\n try {\n return new SemVer(version, options).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\nmodule.exports = inc\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const {MAX_LENGTH} = require('../internal/constants')\nconst { re, t } = require('../internal/re')\nconst SemVer = require('../classes/semver')\n\nconst parseOptions = require('../internal/parse-options')\nconst parse = (version, options) => {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n const r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nmodule.exports = parse\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n const parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nmodule.exports = {\n re: internalRe.re,\n src: internalRe.src,\n tokens: internalRe.t,\n SEMVER_SPEC_VERSION: require('./internal/constants').SEMVER_SPEC_VERSION,\n SemVer: require('./classes/semver'),\n compareIdentifiers: require('./internal/identifiers').compareIdentifiers,\n rcompareIdentifiers: require('./internal/identifiers').rcompareIdentifiers,\n parse: require('./functions/parse'),\n valid: require('./functions/valid'),\n clean: require('./functions/clean'),\n inc: require('./functions/inc'),\n diff: require('./functions/diff'),\n major: require('./functions/major'),\n minor: require('./functions/minor'),\n patch: require('./functions/patch'),\n prerelease: require('./functions/prerelease'),\n compare: require('./functions/compare'),\n rcompare: require('./functions/rcompare'),\n compareLoose: require('./functions/compare-loose'),\n compareBuild: require('./functions/compare-build'),\n sort: require('./functions/sort'),\n rsort: require('./functions/rsort'),\n gt: require('./functions/gt'),\n lt: require('./functions/lt'),\n eq: require('./functions/eq'),\n neq: require('./functions/neq'),\n gte: require('./functions/gte'),\n lte: require('./functions/lte'),\n cmp: require('./functions/cmp'),\n coerce: require('./functions/coerce'),\n Comparator: require('./classes/comparator'),\n Range: require('./classes/range'),\n satisfies: require('./functions/satisfies'),\n toComparators: require('./ranges/to-comparators'),\n maxSatisfying: require('./ranges/max-satisfying'),\n minSatisfying: require('./ranges/min-satisfying'),\n minVersion: require('./ranges/min-version'),\n validRange: require('./ranges/valid'),\n outside: require('./ranges/outside'),\n gtr: require('./ranges/gtr'),\n ltr: require('./ranges/ltr'),\n intersects: require('./ranges/intersects'),\n simplifyRange: require('./ranges/simplify'),\n subset: require('./ranges/subset'),\n}\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n","// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((options, k) => {\n options[k] = true\n return options\n }, {})\nmodule.exports = parseOptions\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\nmodule.exports = intersects\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n let min = null\n let minSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n range = new Range(range, loose)\n\n let minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let setMin = null\n comparators.forEach((comparator) => {\n // Clone to avoid manipulating the comparator's semver object.\n const compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!setMin || gt(compver, setMin)) {\n setMin = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error(`Unexpected operation: ${comparator.operator}`)\n }\n })\n if (setMin && (!minver || gt(minver, setMin)))\n minver = setMin\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\nmodule.exports = minVersion\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst {ANY} = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let min = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!min)\n min = version\n } else {\n if (prev) {\n set.push([min, prev])\n }\n prev = null\n min = null\n }\n }\n if (min)\n set.push([min, null])\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max)\n ranges.push(min)\n else if (!max && min === v[0])\n ranges.push('*')\n else if (!max)\n ranges.push(`>=${min}`)\n else if (min === v[0])\n ranges.push(`<=${max}`)\n else\n ranges.push(`${min} - ${max}`)\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom)\n return true\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub)\n continue OUTER\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull)\n return false\n }\n return true\n}\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom)\n return true\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY)\n return true\n else if (options.includePrerelease)\n sub = [ new Comparator('>=0.0.0-0') ]\n else\n sub = [ new Comparator('>=0.0.0') ]\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease)\n return true\n else\n dom = [ new Comparator('>=0.0.0') ]\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=')\n gt = higherGT(gt, c, options)\n else if (c.operator === '<' || c.operator === '<=')\n lt = lowerLT(lt, c, options)\n else\n eqSet.add(c.semver)\n }\n\n if (eqSet.size > 1)\n return null\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0)\n return null\n else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))\n return null\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options))\n return null\n\n if (lt && !satisfies(eq, String(lt), options))\n return null\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options))\n return false\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt)\n return false\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))\n return false\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt)\n return false\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))\n return false\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0)\n return false\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0)\n return false\n\n if (lt && hasDomGT && !gt && gtltComp !== 0)\n return false\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre)\n return false\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a)\n return b\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n new Range(range, options).set\n .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\nmodule.exports = validRange\n","module.exports = __WEBPACK_EXTERNAL_MODULE__9688__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","/**\n * Gets the number of days in the year of the given date.\n * @param date The date to compute the days within the year.\n * @returns The number of days.\n */\nexport function daysIntoYear(date: Date) {\n return (\n (Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()) -\n Date.UTC(date.getUTCFullYear(), 0, 0)) /\n 24 /\n 60 /\n 60 /\n 1000\n );\n}\n\n/**\n * Checks if two dates are representing the same day.\n * @param firstDate The first date.\n * @param secondDate The second date.\n * @returns True if both are located on the same day.\n */\nexport function isSameDay(firstDate: Date, secondDate: Date) {\n const firstISO = firstDate.toISOString();\n const secondISO = secondDate.toISOString();\n return (\n firstISO.slice(0, firstISO.indexOf(\"T\")) ===\n secondISO.slice(0, secondISO.indexOf(\"T\"))\n );\n}\n\n/**\n * Gets a human readable age represention of the provided date string.\n * @param dateString The stringified date.\n * @returns A human-readable string version of the age.\n */\nexport function age(dateString: string): string {\n // Based on http://www.gregoryschmidt.ca/writing/patient-age-display-ehr-conventions,\n // which is different from npm packages such as https://www.npmjs.com/package/timeago\n\n // First calculate the age in years\n const today = new Date();\n const birthDate = new Date(dateString);\n const monthDifference = today.getUTCMonth() - birthDate.getUTCMonth();\n const dateDifference = today.getUTCDate() - birthDate.getUTCDate();\n let age = today.getUTCFullYear() - birthDate.getUTCFullYear();\n if (monthDifference < 0 || (monthDifference === 0 && dateDifference < 0)) {\n age--;\n }\n\n // Now calculate the number of months in addition to the year's age\n let monthsAgo = monthDifference >= 0 ? monthDifference : monthDifference + 12;\n if (dateDifference < 0) {\n monthsAgo--;\n }\n const monthsAgoStr = monthsAgo > 0 ? `${monthsAgo} mo` : \"\";\n\n // For patients less than a year old, we calculate the number of days/weeks they have been alive\n let totalDaysAgo = daysIntoYear(today) - daysIntoYear(birthDate);\n if (totalDaysAgo < 0) {\n totalDaysAgo += 365;\n }\n const weeksAgo = Math.floor(totalDaysAgo / 7);\n\n // The \"remainder\" number of days after the weeksAgo number of weeks\n const remainderDaysInWeek = totalDaysAgo - weeksAgo * 7;\n\n // Depending on their age, return a different representation of their age.\n if (age === 0) {\n if (isSameDay(today, birthDate)) {\n return `Today`;\n } else if (weeksAgo < 4) {\n return `${totalDaysAgo} day`;\n } else if (weeksAgo === 0) {\n return `${totalDaysAgo} day`;\n } else if (remainderDaysInWeek > 0) {\n return `${weeksAgo} wk ${remainderDaysInWeek} d`;\n } else {\n return `${weeksAgo} week`;\n }\n } else if (age < 2) {\n return `${monthsAgoStr} ${age} yr`.trim();\n } else if (age < 18) {\n return `${age} yr ${monthsAgoStr}`.trim();\n } else {\n return `${age} years`;\n }\n}\n","import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc\";\nimport isToday from \"dayjs/plugin/isToday\";\n\ndayjs.extend(utc);\ndayjs.extend(isToday);\n\nexport type DateInput = string | number | Date;\n\nconst isoFormat = \"YYYY-MM-DDTHH:mm:ss.SSSZZ\";\n\n/**\n * This function is STRICT on checking whether a date string is the openmrs format.\n * The format should be YYYY-MM-DDTHH:mm:ss.SSSZZ\n */\nexport function isOmrsDateStrict(omrsPayloadString: string): boolean {\n // omrs format 2018-03-19T00:00:00.000+0300\n if (\n omrsPayloadString === null ||\n omrsPayloadString === undefined ||\n omrsPayloadString.trim().length !== 28\n ) {\n return false;\n }\n omrsPayloadString = omrsPayloadString.trim();\n\n // 11th character will always be T\n if (omrsPayloadString[10] !== \"T\") {\n return false;\n }\n\n // checking time format\n if (\n omrsPayloadString[13] !== \":\" ||\n omrsPayloadString[16] !== \":\" ||\n omrsPayloadString[19] !== \".\"\n ) {\n return false;\n }\n\n // checking UTC offset format\n if (!(omrsPayloadString[23] === \"+\" && omrsPayloadString[26] !== \":\")) {\n return false;\n }\n\n return dayjs(omrsPayloadString, isoFormat).isValid();\n}\n\n/**\n *\n * @param date Checks if the provided date is today.\n */\nexport function isOmrsDateToday(date: DateInput) {\n return dayjs(date).isToday();\n}\n\n/**\n * Converts the object to a date object if it is a valid ISO date time string.\n */\nexport function toDateObjectStrict(omrsDateString: string): Date | null {\n if (!isOmrsDateStrict(omrsDateString)) {\n return null;\n }\n\n return dayjs(omrsDateString, isoFormat).toDate();\n}\n\n/**\n * Formats the input as a date time string using the format \"YYYY-MM-DDTHH:mm:ss.SSSZZ\".\n */\nexport function toOmrsIsoString(date: DateInput, toUTC = false): string {\n let d = dayjs(date);\n\n if (toUTC) {\n d = d.utc();\n }\n\n return d.format(isoFormat);\n}\n\n/**\n * Formats the input as a time string using the format \"HH:mm\".\n */\nexport function toOmrsTimeString24(date: DateInput) {\n return dayjs(date).format(\"HH:mm\");\n}\n\n/**\n * Formats the input as a time string using the format \"HH:mm A\".\n */\nexport function toOmrsTimeString(date: DateInput) {\n return dayjs.utc(date).format(\"HH:mm A\");\n}\n\n/**\n * Formats the input as a date string using the format \"DD - MMM - YYYY\".\n */\nexport function toOmrsDayDateFormat(date: DateInput) {\n return toOmrsDateFormat(date, \"DD - MMM - YYYY\");\n}\n\n/**\n * Formats the input as a date string using the format \"DD-MMM\".\n */\nexport function toOmrsYearlessDateFormat(date: DateInput) {\n return toOmrsDateFormat(date, \"DD-MMM\");\n}\n\n/**\n * Formats the input as a date string. By default the format \"YYYY-MMM-DD\" is used.\n */\nexport function toOmrsDateFormat(date: DateInput, format = \"YYYY-MMM-DD\") {\n return dayjs(date).format(format);\n}\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nexport default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _objectSpread from '@babel/runtime/helpers/esm/objectSpread';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }, this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResourceStore).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n return getPath(this.data, path);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread({}, pack, resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread({}, {}, this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Translator).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS;\n\n if (nsSeparator && key.indexOf(nsSeparator) > -1) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, options) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread({}, options, {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread({}, options, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, fallbackValue) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? fallbackValue : res, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n if (usedKey && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread({}, options, {\n interpolation: _objectSpread({}, this.options.interpolation, options.interpolation)\n }));\n var skipOnVariables = options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread({}, this.options.interpolation.defaultVariables, data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && typeof options.context === 'string' && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count);\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context));\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.whitelist = this.options.supportedLngs || false;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isWhitelisted\",\n value: function isWhitelisted(code) {\n this.logger.deprecate('languageUtils.isWhitelisted', 'function \"isWhitelisted\" will be renamed to \"isSupportedCode\" in the next major - please make sure to rename it\\'s usage asap.');\n return this.isSupportedCode(code);\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var rule = this.getRule(code);\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n return this.getSuffixes(code).map(function (suffix) {\n return key + suffix;\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var rule = this.getRule(code);\n\n if (!rule) {\n return [];\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var _this2 = this;\n\n var rule = this.getRule(code);\n\n if (rule) {\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }]);\n\n return PluralResolver;\n}();\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, options);\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n str = str.replace(match[0], todo.safeValue(value));\n todo.regex.lastIndex = 0;\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread({}, inheritedOptions, clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].includes(this.formatSeparator) && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, options);\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Connector).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread({}, options, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n whitelist: false,\n nonExplicitWhitelist: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: false\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.whitelist) {\n if (options.whitelist && options.whitelist.indexOf('cimode') < 0) {\n options.whitelist = options.whitelist.concat(['cimode']);\n }\n\n options.supportedLngs = options.whitelist;\n }\n\n if (options.nonExplicitWhitelist) {\n options.nonExplicitSupportedLngs = options.nonExplicitWhitelist;\n }\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction noop() {}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(I18n).call(this));\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (options.whitelist && !options.supportedLngs) {\n this.logger.deprecate('whitelist', 'option \"whitelist\" will be renamed to \"supportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n if (options.nonExplicitWhitelist && !options.nonExplicitSupportedLngs) {\n this.logger.deprecate('whitelist', 'options \"nonExplicitWhitelist\" will be renamed to \"nonExplicitSupportedLngs\" in the next major - please make sure to rename this option asap.');\n }\n\n this.options = _objectSpread({}, get(), this.options, transformOptions(options));\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, usedCallback);\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var done = function done(err, l) {\n if (l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n return _this5.t(key, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.languages && this.languages.length > 0 ? this.languages[0] : this.language;\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) >= 0 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"createInstance\",\n value: function createInstance() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread({}, this.options, options, {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\nvar i18next = new I18n();\n\nexport default i18next;\n","import _i18n from \"i18next\";\n\nexport function translateFrom(\n moduleName: string,\n key: string,\n fallback?: string\n) {\n const i18n: typeof _i18n = (_i18n as any).default || _i18n;\n return i18n.t(key, {\n ns: moduleName,\n defaultValue: fallback,\n });\n}\n","import * as semver from \"semver\";\n\nfunction normalizeOnlyVersion(version: string) {\n const [major, minor, patch] = version.split(\".\");\n return `${major}.${minor}.${patch}`;\n}\n\nfunction normalizeFullVersion(version: string) {\n const idx = version.indexOf(\"-\");\n const prerelease = idx >= 0;\n\n if (prerelease) {\n const ver = normalizeOnlyVersion(version.substr(0, idx));\n const pre = version.substr(idx + 1);\n return `${ver}-${pre}`;\n }\n\n return normalizeOnlyVersion(version);\n}\n\nexport function isVersionSatisfied(\n requiredVersion: string,\n installedVersion: string\n) {\n const version = normalizeFullVersion(installedVersion);\n\n return semver.satisfies(version, requiredVersion, {\n includePrerelease: true,\n });\n}\n","/**\n * Options for configuring the behavior of the {@link retry} function.\n */\nexport interface RetryOptions {\n /**\n * Determines whether the retry function should retry executing the function after it failed\n * with an error on the current attempt.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n shouldRetry?(attempt: number);\n /**\n * Calculates the next delay (in milliseconds) before a retry attempt.\n * Returning a value for the inital attempt (`0`) delays the initial function invocation.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n getDelay?(attempt: number): number;\n /**\n * Called when invoking the function resulted in an error.\n * Allows running side-effects on errors, e.g. logging.\n * @param e The error thrown by the function.\n * @param attempt The current (zero-based) retry attempt. `0` indicates the initial attempt.\n */\n onError?(e: any, attempt: number): void;\n}\n\n/**\n * Executes the specified function and retries executing on failure with a custom backoff strategy\n * defined by the options.\n *\n * If not configured otherwise, this function uses the following default options:\n * * Retries 5 times beyond the initial attempt.\n * * Uses an exponential backoff starting with an initial delay of 1000ms.\n * @param fn The function to be executed and retried on failure.\n * @param options Additional options which configure the retry behavior.\n * @returns The result of successfully executing `fn`.\n * @throws Rethrows the final error of running `fn` when the function stops retrying.\n */\nexport async function retry<T>(\n fn: () => Promise<T>,\n options: RetryOptions = {}\n) {\n let { shouldRetry, getDelay, onError } = options;\n shouldRetry = shouldRetry ?? ((attempt) => limitAttempts(attempt, 5));\n getDelay = getDelay ?? ((attempt) => getExponentialDelay(attempt, 1000));\n\n let attempt = 0;\n let lastError: any = undefined;\n\n do {\n try {\n await delay(getDelay(attempt));\n return await fn();\n } catch (e) {\n onError?.(e, attempt);\n lastError = e;\n }\n } while (shouldRetry(attempt++));\n\n // If we reach this fn errored and shouldn't retry anymore. Simply rethrow the final error as\n // a means of ending the retry process without a result.\n throw lastError;\n}\n\nfunction limitAttempts(attempt: number, maxAttempts: number) {\n return attempt <= maxAttempts;\n}\n\nfunction getExponentialDelay(\n attempt: number,\n startingDelay: number,\n initialDelay = false\n) {\n const exponent = initialDelay ? attempt + 1 : attempt;\n return startingDelay * Math.pow(2, exponent);\n}\n\nasync function delay(ms: number) {\n if (ms <= 0) {\n return;\n }\n\n return new Promise<void>((res) => setTimeout(res, ms));\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.14.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","const resolveDirectory = require(\"../public-path\").resolveDirectory;\n\nexports.autoPublicPath = function autoPublicPath(rootDirLevel) {\n if (!rootDirLevel) {\n rootDirLevel = 1;\n }\n\n if (typeof __webpack_public_path__ !== \"undefined\") {\n if (typeof __system_context__ === \"undefined\") {\n throw Error(\n \"systemjs-webpack-interop requires webpack@>=5.0.0-beta.15 and output.libraryTarget set to 'system'\"\n );\n }\n\n if (!__system_context__.meta || !__system_context__.meta.url) {\n console.error(\"__system_context__\", __system_context__);\n throw Error(\n \"systemjs-webpack-interop was provided an unknown SystemJS context. Expected context.meta.url, but none was provided\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(\n __system_context__.meta.url,\n rootDirLevel\n );\n }\n};\n","exports.setPublicPath = function setPublicPath(\n systemjsModuleName,\n rootDirectoryLevel\n) {\n if (!rootDirectoryLevel) {\n rootDirectoryLevel = 1;\n }\n if (\n typeof systemjsModuleName !== \"string\" ||\n systemjsModuleName.trim().length === 0\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'\"\n );\n }\n\n if (\n typeof rootDirectoryLevel !== \"number\" ||\n rootDirectoryLevel <= 0 ||\n isNaN(rootDirectoryLevel) ||\n !isInteger(rootDirectoryLevel)\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'\"\n );\n }\n\n var moduleUrl;\n try {\n moduleUrl = window.System.resolve(systemjsModuleName);\n if (!moduleUrl) {\n throw Error();\n }\n } catch (err) {\n throw Error(\n \"systemjs-webpack-interop: There is no such module '\" +\n systemjsModuleName +\n \"' in the SystemJS registry. Did you misspell the name of your module?\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(moduleUrl, rootDirectoryLevel);\n};\n\nfunction resolveDirectory(urlString, rootDirectoryLevel) {\n // Our friend IE11 doesn't support new URL()\n // https://github.com/single-spa/single-spa/issues/612\n // https://gist.github.com/jlong/2428561\n\n var a = document.createElement(\"a\");\n a.href = urlString;\n\n var pathname = a.pathname[0] === \"/\" ? a.pathname : \"/\" + a.pathname;\n var numDirsProcessed = 0,\n index = pathname.length;\n while (numDirsProcessed !== rootDirectoryLevel && index >= 0) {\n var char = pathname[--index];\n if (char === \"/\") {\n numDirsProcessed++;\n }\n }\n\n if (numDirsProcessed !== rootDirectoryLevel) {\n throw Error(\n \"systemjs-webpack-interop: rootDirectoryLevel (\" +\n rootDirectoryLevel +\n \") is greater than the number of directories (\" +\n numDirsProcessed +\n \") in the URL path \" +\n urlString\n );\n }\n\n var finalPath = pathname.slice(0, index + 1);\n\n return a.protocol + \"//\" + a.host + finalPath;\n}\n\nexports.resolveDirectory = resolveDirectory;\n\n// borrowed from https://github.com/parshap/js-is-integer/blob/master/index.js\nvar isInteger =\n Number.isInteger ||\n function isInteger(val) {\n return typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","const autoPublicPath = require(\"./auto-public-path\").autoPublicPath;\n\nautoPublicPath(1);\n"],"names":["object","exports","chars","InvalidCharacterError","message","this","prototype","Error","name","btoa","input","block","charCode","str","String","idx","map","output","charAt","charCodeAt","atob","replace","length","bs","buffer","bc","fromCharCode","indexOf","fhirAPI","adapter","getNext","bundle","process","i","d","data","entry","entries","push","resource","def","defer","nextPage","then","r","t","resolve","err","promise","drain","searchParams","done","fail","search","fetchAll","ret","results","forEach","reject","fetchAllWithReferences","resolveParams","resolvedReferences","queue","next","element","type","resourceType","resolveParam","param","split","targetType","targetElement","reference","referenceID","res","referencedObject","content","module","client","newAdapter","call","M","query","auth","transport","errors","config","pt","refs","url","decorate","cfg","Middleware","$$Attr","$$Method","m","$$Header","h","v","$Errors","Defaults","and","$Basic","$Bearer","$Credentials","$JsonData","headers","GET","POST","PUT","DELETE","PATCH","http","Http","Path","BaseUrl","baseUrl","resourceTypePath","slash","resourceTypeHxPath","resourcePath","resourceHxPath","vreadPath","metaTarget","ReturnHeader","$Paging","conformance","end","document","profile","transaction","history","typeHistory","resourceHistory","read","$WithPatient","vread","create","validate","meta","add","delete","$SearchParams","update","conditionalUpdate","conditionalDelete","$$BundleLinkUrl","prevPage","getBundleByUrl","patch","credentials","mw","args","user","pass","bearer","rel","link","filter","x","relation","copyAttr","from","to","attr","utils","nmw","mw1","mw2","$$Simple","f","fn","value","undefined","path","obj","k","Attribute","Method","method","e","debug","console","log","stack","deff","JSON","stringify","targets","patient","CONTAINED","sync","arg","cache","ref","match","cid","contained","id","_id","abs","absoluteUrl","cacheMatched","assertArray","reduceMap","assertObject","identity","OPERATORS","$gt","$lt","$lte","$gte","$ge","$le","MODIFIERS","$asc","$desc","$exact","$missing","$null","$text","linearizeOne","xs","len","modifier","acc","concat","key","kk","o","vv","reduce","a","vvv","operator","$or","$type","join","linearizeParams","buildSearchParams","p","excludeEncode","encodeURIComponent","_query","params","since","_since","count","_count","core","tkn","chain","new_chain","includes","target","versionId","pth","exp","exps","trim","substring","ch","merge","RTRIM","text","toString","Object","argsArray","Array","slice","arguments","mergeLists","merged","nextMap","apply","relativeUrl","resourceIdToUrl","walk","inner","outer","context","keysToMap","item","postwalk","isNode","Public","clone","merge_recursive","base","extend","typeOf","recursive","argv","result","size","index","sitem","toLowerCase","window","resolveDirectory","rootDirLevel","error","urlString","rootDirectoryLevel","createElement","href","pathname","numDirsProcessed","finalPath","protocol","host","Number","isInteger","__WEBPACK_EXTERNAL_MODULE__824__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","y","__system_context__","definition","defineProperty","enumerable","get","g","globalThis","Function","prop","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","src","scripts","getElementsByTagName","extendStatics","b","setPrototypeOf","__proto__","__extends","__","constructor","isFunction","_enable_super_gross_mode_that_will_cause_bad_things","Promise","hostReportError","setTimeout","empty","closed","useDeprecatedSynchronousErrorHandling","complete","isArray","isObject","UnsubscriptionError","UnsubscriptionErrorImpl","Subscription","unsubscribe","_parentOrParents","_subscriptions","_ctorUnsubscribe","_unsubscribe","_a","remove","flattenUnsubscriptionErrors","sub","teardown","subscription","EMPTY","tmp","subscriptions","subscriptionIndex","splice","errs","rxSubscriber","Math","random","Subscriber","_super","destinationOrNext","_this","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","destination","SafeSubscriber","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","parent","observable","pipeFromArray","fns","prev","Observable","subscribe","_isScalar","_subscribe","lift","source","sink","nextOrObserver","_trySubscribe","observer","closed_1","warn","promiseCtor","getPromiseCtor","pipe","operations","_i","toPromise","global","freeSelf","self","objectProto","nativeObjectToString","symToStringTag","func","getPrototypeOf","transform","funcProto","funcToString","objectCtorString","sessionEndpoint","makeUrl","openmrsBase","openmrsFetch","fetchInit","isOwn","tag","unmasked","proto","Ctor","body","Accept","requestStacktrace","fetch","async","response","ok","status","responseText","parse","redirectAuthFailure","getConfig","enabled","navigate","resolvePromise","responseBody","OpenmrsFetchError","openmrsObservableFetch","abortController","AbortController","signal","hasResponse","abort","super","statusText","fhirBaseUrl","fhir","require","requestObj","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","SubjectSubscription","subject","observers","subscriberIndex","SubjectSubscriber","Subject","hasError","thrownError","AnonymousSubject","copy","asObservable","QueueAction","scheduler","work","schedule","state","delay","flush","execute","_execute","requestAsyncId","AsyncAction","pending","recycleAsyncId","setInterval","clearInterval","errored","errorValue","actions","Action","Scheduler","SchedulerAction","now","Date","QueueScheduler","AsyncScheduler","delegate","active","scheduled","action","shift","isScheduler","NotificationKind","subscribeToArray","array","scheduleArray","fromArray","Notification","kind","hasValue","observe","do","accept","toObservable","pop","createNext","undefinedValueNotification","createError","createComplete","completeNotification","ObserveOnSubscriber","dispatch","notification","scheduleMessage","ObserveOnMessage","ReplaySubject","bufferSize","windowTime","POSITIVE_INFINITY","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","time","max","project","thisArg","TypeError","MapOperator","MapSubscriber","iterator","subscribeTo","obs","isArrayLike","isPromise","iterable","return","SimpleInnerSubscriber","notifyNext","notifyError","notifyComplete","SimpleOuterSubscriber","innerValue","mergeMap","resultSelector","concurrent","ii","MergeMapOperator","MergeMapSubscriber","hasCompleted","_tryNext","_innerSub","ish","innerSubscriber","innerSubscription","noop","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","FilterOperator","predicate","FilterSubscriber","userSubject","lastFetchTimeMillis","getCurrentUser","opts","includeAuthStatus","refetchCurrentUser","setUserLanguage","Boolean","userProperties","defaultLocale","locale","documentElement","getAttribute","setAttribute","catch","sessionId","authenticated","userHasAccess","requiredPrivilege","privileges","find","display","roles","role","getLoggedInUser","rej","getSessionLocation","sessionLocation","setSessionLocation","locationUuid","setupApiModule","defineConfigSchema","_type","Type","_default","_description","_validators","validators","_elements","fetchCurrentPatient","patientUuid","contentOverrides","BehaviorSubject","_value","getValue","configurable","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","take","TakeOperator","total","TakeSubscriber","workspaceItem","newWorkspaceItem","getNewWorkspaceItem","openVisitsNoteWorkspace","componentName","title","component","props","inProgress","validations","workspaceTabs","findIndex","tab","getVisitsForPatient","saveVisit","payload","updateVisit","uuid","getStartedVisit","VisitMode","VisitStatus","toVisitTypeObject","openmrsRestForm","getVisitTypes","toLocationObject","getLocations","backendDependencies","fhir2","__WEBPACK_EXTERNAL_MODULE__685__","escapeString","flags","options","sensitive","stringToRegexp","keys","tokens","strict","_b","start","_c","_d","encode","endsWith","delimiter","route","tokens_1","token","prefix","suffix","pattern","mod","endToken","isEndDelimited","RegExp","char","j","code","prefixes","defaultPattern","tryConsume","mustConsume","nextType","consumeText","name_1","pattern_1","pathToRegexp","groups","parts","store","createGlobalStore","getMatcher","settings","matcher","registerBreadcrumb","breadcrumb","registerBreadcrumbs","breadcrumbs","nextBreadcrumbs","getBreadcrumbs","setState","getState","test","segments","filterBreadcrumbs","list","current","links","previous","reverse","getBreadcrumbsFor","_arity","thisObj","_clone","n","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","_cloneRegExp","refFrom","refTo","deep","copiedValue","valueOf","ignoreCase","multiline","sticky","unicode","_isPlaceholder","f1","_curry1","f2","_curry2","f3","c","val","_isArray","_isString","_isArrayLike","nodeType","_xwrap","_iterableReduce","xf","iter","step","_methodReduce","methodName","symIterator","XWrap","mergeDeepWithKey","mergeDeepRight","lObj","rObj","lVal","rVal","_curry3","_isObject","mergeWithKey","_has","l","__WEBPACK_EXTERNAL_MODULE__645__","getter","__esModule","validator","validationFunction","isBoolean","isNumber","isString","isUuid","configInternalStoreInitialValue","providedConfigs","importMapConfig","schemas","importMapConfigLoaded","devDefaultsAreOn","getAreDevDefaultsOn","configInternalStore","lastValueOfDevDefaultsAreOn","localStorage","getItem","setItem","temporaryConfigStore","configExtensionStore","mountedExtensions","getConfigStore","moduleName","getGlobalStore","getExtensionSlotsConfigStore","extensionSlotConfigs","getExtensionConfigStore","extensionSlotModuleName","attachedExtensionSlotName","extensionId","implementerToolsConfigStore","checkImportMapInterval","System","importMapOverrides","getCurrentPageMap","loadConfigs","getImportMapConfigPromise","configFileModule","import","default","computeModuleConfig","getConfigForModule","computeExtensionSlotConfigs","slotConfigsByModule","allConfigs","mergeConfigs","getProvidedConfigs","slotConfigPerModule","extensions","configBySlotName","slotName","validateExtensionSlotConfig","computeImplementerToolsConfig","getSchemaWithValuesAndSources","configsAndSources","createValuesAndSourcesTree","computeExtensionConfigs","configState","extensionState","extension","extensionStore","slotModuleName","getExtensionConfig","extensionModuleName","schema","validateConfigSchema","provide","sourceName","processConfig","providedConfig","keyPathContext","validateConfig","setDefaults","slotModuleConfig","mergeConfigsFor","configOverride","configure","extensionConfig","_source","isOrdinaryObject","errorPrefix","invalidKeys","every","order","keyPath","updateMessage","startsWith","thisKeyPath","schemaPart","elements","hasObjectSchema","valueType","values","inputConfig","addEventListener","mergeDeepAll","configs","checkType","runValidators","validateDictionary","validateArray","dictionarySchema","arraySchema","ConceptUuid","UUID","validatorResult","valueString","configPart","devDefault","configWithDefaults","conf","objectKey","selectedConfigPart","elementsSchema","reloadImportMapConfig","interpolateUrl","template","openmrsSpaBase","getOpenmrsSpaBase","interpolateString","curr","navigateToUrl","assign","inRange","min","isUrlWithTemplateParameters","allowedTemplateParameters","allowedParams","rx","exec","isUrl","__WEBPACK_EXTERNAL_MODULE__728__","handleApiError","incomingResponseErr","reportError","ensureErrorObject","createErrorHandler","outgoingErr","incomingErr","thing","onerror","dispatchNotificationShown","description","onunhandledrejection","switchTo","_state","pushNavigationContext","slots","storeUpdates","updateExtensionStore","updater","newState","updateConfigExtensionStore","configExtensionRecords","extensionInfo","extensionBySlot","instances","actualSlotName","extensionInstance","createNewExtensionSlotInfo","extensionSlotName","attachedIds","getExtensionNameFromId","extensionName","getExtensionRegistrationFrom","getExtensionRegistration","registerExtension","details","attach","existingSlot","detach","detachAll","getOrder","configuredOrder","getAssignedIds","instance","addedIds","removedIds","idOrder","sort","ai","bi","registerExtensionSlot","updatedSlot","getUpdatedExtensionSlotInfo","unregisterExtensionSlot","existing","getExtensionSlotsForModule","reset","extensionSlot","originalInstance","testOrder","checkStatus","online","offline","checkStatusFor","navigator","onLine","getCustomProps","renderExtension","domElement","renderFunction","additionalProps","extensionRegistration","load","lifecycle","parcel","mountRootParcel","_meta","_extensionContext","getStatus","mountPromise","unmount","connectivityChangedEventName","dispatchConnectivityChanged","dispatchEvent","CustomEvent","detail","subscribeConnectivityChanged","cb","handler","ev","removeEventListener","subscribeConnectivity","precacheStaticDependenciesEventName","dispatchPrecacheStaticDependencies","subscribePrecacheStaticDependencies","notificationShownName","toastShownName","subscribeNotificationShown","subscribeToastShown","setupPaths","apiUrl","spaBase","spaPath","spaEnv","env","spaVersion","BUILD_VERSION","setupUtils","copyText","sel","getSelection","createRange","selectNode","removeAllRanges","addRange","execCommand","__WEBPACK_EXTERNAL_MODULE__766__","_","MessageChannel","port1","onmessage","postMessage","port2","URL","u","s","nn","tn","rn","en","on","un","an","Set","cn","installing","scriptURL","sn","performance","vn","hn","ln","sw","isExternal","originalEvent","mn","isUpdate","wn","waiting","clearTimeout","dn","serviceWorker","controller","gn","ports","getSW","has","w","register","immediate","readyState","yn","pn","bn","once","wasWaitingBeforeRegister","messageSW","messageSkipWaiting","writable","Pn","Map","Sn","set","workboxRegistration","registerOmrsServiceWorker","registerOptions","wb","Workbox","getOmrsServiceWorker","omrsOfflineResponseBodyHttpHeaderName","omrsOfflineResponseStatusHttpHeaderName","omrsOfflineCachingStrategyHttpHeaderName","messageOmrsServiceWorker","success","networkRequestFailedEventName","dispatchNetworkRequestFailed","subscribeNetworkRequestFailed","patchXMLHttpRequest","send","XMLHttpRequest","__assign","__spreadArrays","il","jl","_global","getProto","_hasOwn","hasOwn","setProp","functionOrGetSet","derive","Child","Parent","getOwnPropertyDescriptor","getPropertyDescriptor","_slice","override","origFunc","overridedFactory","assert","asap","setImmediate","arrayToObject","extractor","nameAndValue","getByKeyPath","rv","period","innerObj","substr","setByKeyPath","isFrozen","currentKeyPath","remainingKeyPath","isNaN","parseInt","delByKeyPath","kp","shallowClone","flatten","intrinsicTypeNames","num","intrinsicTypes","intrinsicTypeNameSet","deepClone","any","getValueOf","Uint8Array","getTime","ArrayBuffer","isView","getObjectDiff","prfx","ap","bp","apTypeName","bpTypeName","iteratorSymbol","getIteratorOf","NO_CHAR_ARRAY","getArrayOf","arrayLike","it","isAsyncFunction","setDebug","libraryFilter","NEEDS_THROW_FOR_STACK","getErrorWithStack","prettyStack","exception","numIgnoredFrames","frame","idbDomErrorNames","errorList","defaultTexts","VersionChanged","DatabaseClosed","Abort","TransactionInactive","DexieError","msg","_e","getMultiErrorMessage","failures","ModifyError","successCount","failedKeys","BulkError","_stack","errnames","BaseException","exceptions","fullName","msgOrInner","Syntax","SyntaxError","Range","RangeError","exceptionMap","fullNameExceptions","nop","mirror","pureFunctionChain","callBoth","on1","on2","hookCreatingChain","onsuccess","res2","hookDeletingChain","hookUpdatingChain","modifications","reverseStoppableEventChain","promisableChain","thiz","INTERNAL","globalP","crypto","subtle","nativeP","digest","resolvedNativePromise","nativePromiseProto","resolvedGlobalPromise","nativePromiseThen","NativePromise","patchGlobalPromise","stack_being_generated","schedulePhysicalTick","physicalTick","MutationObserver","hiddenDiv","attributes","asap$1","callback","microtickQueue","needsNewPhysicalTick","isOutsideMicroTick","unhandledErrors","rejectingErrors","currentFulfiller","rejectionMapper","globalPSD","unhandleds","onunhandled","globalError","pgp","finalize","uh","PSD","numScheduledCalls","tickFinalizers","DexiePromise","_listeners","onuncatched","_lib","psd","_PSD","_stackHolder","_prev","_numPrev","handleRejection","executePromiseTask","thenProp","microTaskId","totalEchoes","onFulfilled","onRejected","possibleAwait","cleanup","decrementExpectedAwaits","propagateToListener","Listener","nativeAwaitCompatibleWrap","linkToPreviousPromise","zone","shouldExecuteTick","beginMicroTickScope","_then","propagateAllListeners","endMicroTickScope","ex","reason","_promise","origProp","some","listeners","finalizePhysicalTick","listener","callListener","getStack","stacks","limit","errorName","failure","numPrev","wasRootExec","callbacks","unhandledErrs","finalizers","PromiseReject","wrap","errorCatcher","outerScope","switchToZone","finally","onFinally","timeout","ms","Infinity","handle","Timeout","snapShot","all","onPossibleParallellAsync","remaining","race","newPSD","newScope","usePSD","follow","zoneProps","finalizer","allSettled","possiblePromises","AggregateError","task","awaits","echoes","taskCounter","zoneStack","zoneEchoes","zone_id_counter","props$$1","globalEnv","PromiseProp","nthen","getPatchedPromiseThen","gthen","incrementExpectedAwaits","possiblePromise","rejection","zoneEnterEcho","targetZone","zoneLeaveEcho","bEnteringZone","currentZone","enqueueNativeMicroTask","GlobalPromise_1","targetEnv","GlobalPromise","job","outerZone","origThen","onResolved","UNHANDLEDREJECTION","event","eventData","createEvent","initEvent","PromiseRejectionEvent","defaultPrevented","tempTransaction","db","mode","storeNames","openComplete","letThrough","trans","_createTransaction","_dbSchema","_completion","isBeingOpened","_options","autoOpen","open","dbReadyPromise","DEXIE_VERSION","maxString","minKey","INVALID_KEY_ARGUMENT","STRING_EXPECTED","connections","isIEOrEdge","userAgent","hasIEDeleteObjectStoreBug","hangsOnDeleteLargeKeyRange","dexieStackFrameFilter","DBNAMES_DB","READONLY","READWRITE","combine","filter1","filter2","AnyRange","lower","lowerOpen","upper","upperOpen","workaroundForUndefinedPrimKey","Table","_trans","writeLocked","_tx","tableName","checkTableInTransaction","NotFound","idbtrans","transless","keyOrCrit","where","first","hook","reading","fire","indexOrCrit","WhereClause","keyPaths","equals","compoundIndex","indexes","primKey","ix","compound","_maxKey","idxByName","idb","_deps","indexedDB","cmp","prevIndex","prevFilterFn","multi","filterFunction","toCollection","thenShortcut","offset","numRows","each","toArray","Collection","orderBy","mapToClass","mappedClass","readHook","defineClass","auto","objToAdd","mutate","numFailures","lastResult","keyOrObject","InvalidArgument","modify","put","clear","range","bulkGet","keys$$1","getMany","bulkAdd","objects","keysOrOptions","wantResults","allKeys","numObjects","objectsToAdd","pos","bulkPut","objectsToPut","bulkDelete","numKeys","Events","ctx","evs","eventName","addEventType","chainFunction","defaultFunction","addConfiguredEvents","subscribers","makeClassConstructor","isPlainKeyRange","ignoreLimitFilter","algorithm","or","justLimit","replayFilter","addFilter","addReplayFilter","factory","isLimitFilter","getIndexOrStore","coreSchema","isPrimKey","primaryKey","getIndexByKeyPath","Schema","openCursor","coreTable","keysOnly","dir","unique","coreTrans","set_1","union","cursor","advance","stop","_iterate","iterate","valueMapper","cursorPromise","wrappedFn","continue","advancer","_read","_ctx","table","_write","_addAlgorithm","raw","sortBy","lastPart","lastIndex","getval","sorter","aVal","bVal","valueMapper_1","a_1","offsetLeft","rowsLeft","until","bIncludeStopEntry","last","isMatch","indexName","_ondirectionchange","desc","eachKey","eachUniqueKey","eachPrimaryKey","primaryKeys","uniqueKeys","firstKey","lastKey","distinct","strKey","found","changes","modifyer","anythingModified","outbound","extractKey","Dexie","totalFailures","applyMutateResult","expectedCount","nextChunk","addValues","putValues","putKeys","deleteKeys","origValue","ctx_1","coreRange","simpleCompare","simpleCompareReverse","collectionOrWhereClause","T","collection","emptyCollection","whereClause","rangeEqual","nextCasing","lowerKey","upperNeedle","lowerNeedle","llp","lwrKeyChar","addIgnoreCaseAlgorithm","needles","compare","upperNeedles","lowerNeedles","direction","nextKeySuffix","needlesLen","initDirection","toUpperCase","needleBounds","needle","nb","firstPossibleNeedle","lowestPossibleCasing","casing","between","includeLower","includeUpper","_cmp","above","aboveOrEqual","below","belowOrEqual","startsWithIgnoreCase","equalsIgnoreCase","anyOfIgnoreCase","startsWithAnyOfIgnoreCase","anyOf","_ascending","_descending","notEqual","inAnyRange","includeLowers","includeUppers","noneOf","ranges","ascending","descending","_min","_max","sortDirection","rangeSorter","newRange","rangePos","keyIsBeyondCurrentEntry","keyIsBeforeCurrentEntry","checkKey","startsWithAnyOf","safariMultiStoreFix","getMaxKey","IdbKeyRange","only","eventRejectHandler","preventDefault","stopPropagation","Transaction","_lock","_reculock","lockOwnerFor","_unlock","_blockedFuncs","_locked","fnAndPSD","idbdb","dbOpenError","MissingAPI","OpenFailed","_reject","onabort","oncomplete","_resolve","bWriteLock","ReadOnly","_root","waitFor","promiseLike","root","_waitingFor","_waitingQueue","objectStore","spin","_spinCount","currentWaitPromise","memoizedTables","_memoizedTables","tableSchema","transactionBoundTable","createIndexSpec","nameFromKeyPath","createTableSchema","getKeyExtractor","getEffectiveKeys","req","arrayify","_id_counter","getKeyPathAlias","createDBCore","tmpTrans","makeIDBKeyRange","upperBound","lowerBound","bound","tables","objectStoreNames","autoIncrement","indexByKeyPath","isPrimaryKey","indexNames","multiEntry","hasGetAll","isAddOrPut","errorHandler","_reqno","setResult","args1","args2","keyCount","callbackCount","successHandler","_pos","request","nonInfinitLimit","idbKeyRange","getAll","getAllKeys","count_1","req_1","openKeyCursor","result_1","___id","_cursorContinue","_cursorContinuePrimaryKey","continuePrimaryKey","_cursorAdvance","doThrowCursorIsStopped","gotOne","iterationPromise","resolveIteration","rejectIteration","guardedCallback","tableMap","MIN_KEY","MAX_KEY","generateMiddlewareStacks","middlewares","IDBKeyRange","dbcore","stackImpl","down","_middlewares","tbl","setApiOnPlace","objs","tableNames","dbschema","propDesc","removeTablesApi","lowerVersionFirst","_cfg","version","getSchemaDiff","oldSchema","newSchema","diff","del","change","oldDef","newDef","recreate","oldIndexes","newIndexes","idxName","oldIdx","newIdx","createTable","createObjectStore","addIndex","createIndex","buildGlobalSchema","globalSchema","storeName","idbindex","adjustToExistingIndexNames","_hasGetAll","dexieName","indexSpec","WorkerGlobalScope","databaseEnumerator","Version","_parseStoresSpec","stores","outSchema","indexNum","storesSource","versions","_versions","storesSpec","_allTables","_storeNames","upgrade","upgradeFunction","contentUpgrade","vip","awaitIterator","callNext","onSuccess","onError","throw","extractTransactionArgs","_tableArgs_","scopeFunc","enterTransactionScope","parentTransaction","returnValue","scopeFuncIsAsync","promiseFollowed","decrementor","PrematureCommit","pad","virtualIndexMiddleware","level","indexLookup","allVirtualIndexes","addVirtualIndexes","keyTail","lowLevelIndex","keyPathAlias","indexList","keyLength","isVirtual","virtualIndex","translateRequest","hooksMiddleware","downCore","downTable","dxTrans","deleting","creating","updating","addPutOrDelete","deleteNextChunk","effectiveKeys","existingValues","contexts","existingValue","generatedPrimaryKey","objectDiff","additionalChanges_1","requestedValue_1","verno","deps","dependencies","addons","onReadyBeingFired","dbReadyResolve","cancelOpen","openCanceller","autoSchema","ready","bSticky","db_1","keyRangeGenerator","keyRange","whereCtx","readingHook","wasActive","versionNumber","orCollection","_IDBKeyRange","newVersion","close","oldVersion","_fireOnBlocked","vcFired","use","addon","round","versionInstance","_whenReady","unuse","resolveDbReady","upgradeTransaction","dbName","onblocked","onupgradeneeded","allowEmptyDB","delreq","deleteDatabase","NoSuchDatabase","oldVer","pow","idbUpgradeTrans","rejectTransaction","populate","anyContentUpgraderHasRun","tuple","Upgrade","store_1","deleteIndex","upgradeSchema_1","returnValue_1","contentUpgradeIsAsync_1","deleteObjectStore","runQueue","contains","onversionchange","fireRemainders","remainders","dexieOpen","hasArguments","doDelete","backendDB","isOpen","hasBeenClosed","hasFailed","dynamicallyOpened","_transaction","idbMode","onlyIfCompatible","SubTransaction","enterTransaction","InvalidTable","Dexie$1","databaseName","exists","getDatabaseNames","ignoreTransaction","generatorFn","spawn","currentTransaction","promiseOrFunction","optionalTimeout","mozIndexedDB","webkitIndexedDB","msIndexedDB","webkitIDBKeyRange","semVer","maxKey","dbNamesTable","hasDatabasesNative","databases","dbnames","infos","info","domError","syncQueue","handlers","getOfflineDb","syncStore","getOfflineSynchronizationStore","runSynchronization","synchronization","totalCount","promises","handlerQueue","maxIter","notifySyncProgress","pendingCount","dependsOn","dep","processHandler","items","contents","userId","getUserId","descriptor","lastError","queueSynchronizationItemFor","targetId","createdOn","queueSynchronizationItem","getSynchronizationItemsFor","getSynchronizationItems","deleteSynchronizationItem","setupOfflineSync","getRandomValues","rnds8","rng","msCrypto","byteToHex","buf","rnds","arr","offlineUuidPrefix","generateOfflineUuid","v4","isOfflineUuid","offlinePatientDataSyncState","getOfflinePatientDataStore","registerOfflinePatientHandler","identifier","syncOfflinePatientData","handlerIdentifiers","syncedHandlers","failedHandlers","setPatientDataSyncState","timestamp","syncingHandlers","onOfflinePatientAdded","nextState","OfflinePatientDataDb","existingEntry","offlinePatientDataSyncStates","nextEntry","loadPersistedPatientDataSyncState","persistedStates","availableStores","initialState","available","createStore","fallbackState","createAppState","getAppState","select","property","restPropertyPath","__WEBPACK_EXTERNAL_MODULE__45__","__WEBPACK_EXTERNAL_MODULE__64__","__WEBPACK_EXTERNAL_MODULE__954__","__WEBPACK_EXTERNAL_MODULE__493__","__WEBPACK_EXTERNAL_MODULE__281__","ComponentContext","React","ConfigurableLink","otherProps","onClick","metaKey","ctrlKey","shiftKey","button","createUseStore","useState","useEffect","boundActions","useMemo","useExtension","useRef","useContext","Extension","slot","style","position","useStoreState","defaultConfig","useExtensionSlotConfig","useCallback","defaultArray","useAttachedExtensionIds","useAssignedExtensionIds","assignedIds","setAssignedIds","newAssignedIds","useConnectivity","isOnline","setIsOnline","isValidExtension","useConnectedExtensions","extensionIdsToRender","useExtensionSlot","defaultSelect","ExtensionSlot","divProps","slotRef","stateRef","prevDeps","nextDeps","Provider","getOwnPropertySymbols","getOwnPropertyDescriptors","defineProperties","ReactDOM","rootComponent","loadRootComponent","renderType","errorBoundary","errorBoundaryClass","domElementGetter","parcelCanUpdate","suppressComponentDidCatchWarning","domElements","renderResults","updateResolves","componentDidCatch","appName","childAppName","getElementById","appendChild","elementToRender","render","hydrate","unmountFinished","unmountComponentAtNode","displayName","Component","caughtError","caughtErrorInfo","mountFinished","updateFinished","componentDidMount","mounted","componentWillUnmount","createContext","bootstrap","mount","i18n","_i18n","defaultOpts","strictMode","throwErrorsToConsole","disableTranslations","I18nextLoadNamespace","forceUpdate","off","loadNamespaceErrRef","hasLoadedNamespace","ns","timeoutId","loadNamespaces","openmrsComponentDecorator","userOpts","featureName","Comp","componentStack","extra","fallback","I18nextProvider","defaultNS","getLifecycle","singleSpaReact","getAsyncLifecycle","lazy","getSyncLifecycle","getAsyncExtensionLifecycle","useBodyScrollLock","original","getComputedStyle","overflow","defaultState","createConfigPromise","useConfigStore","useConfig","normalConfig","cacheId","ActionTypes","isLoadingPatient","reducer","loadPatient","newPatient","loadError","useCurrentPatient","useReducer","useExtensionSlotMeta","fromEntries","ext","useExtensionStore","useForceUpdate","setTick","tick","getLayout","layout","classList","cls","useLayoutType","setType","useLocations","locations","setLocations","locationSub","useNavigationContext","useOnClickOutside","el","UserHasAccess","privilege","setUser","useSessionUser","sessionUser","setSessionUser","useStore","useVisit","currentVisit","setCurrentVisit","setError","visit","visitData","stopDatetime","useVisitTypes","visitTypes","setVisitTypes","visitTypesSub","usePagination","resultsPerPage","page","setPage","totalPages","ceil","currentPage","paginated","showNextButton","showPreviousButton","goTo","goToNext","goToPrevious","__webpack_public_path__","__WEBPACK_EXTERNAL_MODULE__792__","svgContainer","appendContainer","addSvg","htmlId","svgString","svgElement","DOMParser","parseFromString","querySelector","modalContainer","modalStack","fullLogo","partialLogo","iconLogo","isToday","format","utc","date","toDate","$L","utcOffset","local","$u","$utils","$offset","init","$d","$y","getUTCFullYear","$M","getUTCMonth","$D","getUTCDate","$W","getUTCDay","$H","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","getTimezoneOffset","$x","$localOffset","isUTC","toISOString","toUTCString","Yallist","walker","head","tail","Node","unshift","removeNode","node","unshiftNode","pushNode","thisp","forEachReverse","getReverse","mapReverse","initial","reduceReverse","toArrayReverse","sliceReverse","deleteCount","nodes","inserted","er","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","doUse","hit","isStale","maxAge","Entry","forEachStep","lc","stale","dispose","noDisposeOnSet","updateAgeOnGet","mL","allowStale","mA","lC","rforEach","dump","dumpLru","peek","expiresAt","prune","ANY","Comparator","comp","parseOptions","loose","semver","re","COMPARATORLOOSE","COMPARATOR","SemVer","intersects","includePrerelease","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","parseRange","isNullSet","isAny","comps","memoKey","cached","hr","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","comparatorTrimReplace","TILDETRIM","tildeTrimReplace","CARETTRIM","caretTrimReplace","compRe","rangeList","parseComparator","replaceGTE0","rangeMap","thisComparators","isSatisfiable","rangeComparators","thisComparator","rangeComparator","testSet","comparators","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","TILDELOOSE","TILDE","pr","replaceCaret","CARETLOOSE","CARET","z","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","fM","fm","fp","fpr","fb","tM","tm","tp","tpr","tb","prerelease","allowed","major","minor","MAX_LENGTH","MAX_SAFE_INTEGER","compareIdentifiers","LOOSE","FULL","build","other","compareMain","comparePre","compareBuild","inc","release","eq","neq","gt","gte","lt","lte","op","rtl","COERCERTL","COERCE","versionA","versionB","version1","version2","v1","v2","hasPre","defaultResult","parsed","internalRe","SEMVER_SPEC_VERSION","rcompareIdentifiers","valid","clean","rcompare","compareLoose","rsort","coerce","satisfies","toComparators","maxSatisfying","minSatisfying","minVersion","validRange","outside","gtr","ltr","simplifyRange","subset","MAX_SAFE_COMPONENT_LENGTH","NODE_DEBUG","numeric","anum","bnum","R","createToken","isGlobal","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","LONETILDE","LONECARET","r1","r2","maxSV","rangeObj","minSV","minver","setMin","comparator","compver","hilo","gtfn","ltefn","ltfn","ecomp","high","low","simplified","simpleSubset","dom","eqSet","gtltComp","higher","hasDomLT","hasDomGT","higherGT","lowerLT","needDomLTPre","needDomGTPre","sawNonNull","OUTER","simpleSub","simpleDom","isSub","__WEBPACK_EXTERNAL_MODULE__9688__","daysIntoYear","UTC","isSameDay","firstDate","secondDate","firstISO","secondISO","age","dateString","today","birthDate","monthDifference","dateDifference","monthsAgo","monthsAgoStr","totalDaysAgo","weeksAgo","floor","remainderDaysInWeek","dayjs","isoFormat","isOmrsDateStrict","omrsPayloadString","isValid","isOmrsDateToday","toDateObjectStrict","omrsDateString","toOmrsIsoString","toUTC","toOmrsTimeString24","toOmrsTimeString","toOmrsDayDateFormat","toOmrsDateFormat","toOmrsYearlessDateFormat","_typeof","_defineProperty","_objectSpread","ownKeys","sym","_classCallCheck","Constructor","_defineProperties","_createClass","protoProps","staticProps","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","consoleLogger","baseLogger","Logger","concreteLogger","logger","bool","_len","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","EventEmitter","events","cloned","_cloned","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","isIE10","ResourceStore","_EventEmitter","keySeparator","lng","silent","addNamespaces","emit","resources","addResource","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","postProcessor","processors","addPostProcessor","translator","processor","checkedLoadedFor","Translator","services","language","interpolation","resolved","nsSeparator","namespaces","interpolator","nestingRegexp","_this2","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValue","isValidLookup","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","fallbackValue","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","defaultVariables","interpolate","na","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","extracted","fallbackNS","needsContextHandling","codes","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","returnNull","returnEmptyString","resourceStore","option","capitalize","string","LanguageUtil","whitelist","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","deprecate","isSupportedCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","createRules","rules","numbers","plurals","PluralResolver","rule","getRule","number","noAbs","simplifyPluralSuffix","returnSuffix","prepend","compatibilityJSON","Interpolator","escapeValue","iOpts","escape","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","missingInterpolationHandler","regex","safeValue","todo","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","formatters","doReduce","elem","Connector","backend","languages","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","addResourceBundle","q","_getLastOfPath2","what","fcName","tried","wait","queueLoad","loadOne","prepareLoading","_this5","initImmediate","nonExplicitWhitelist","preload","pluralSeparator","partialBundledLanguages","tDescription","_format","transformOptions","I18n","modules","external","isInitialized","isClone","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","finish","changeLanguage","usedCallback","append","isLanguageChangingTo","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","fixedT","rest","_this$translator","_this$translator2","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","translateFrom","normalizeOnlyVersion","isVersionSatisfied","requiredVersion","installedVersion","retry","shouldRetry","getDelay","attempt","maxAttempts","startingDelay","initialDelay","exponent","propIsEnumerable","propertyIsEnumerable","toObject","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","symbols","for","A","B","C","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","F","G","H","isReactComponent","I","isPureReactComponent","J","K","L","__self","__source","defaultProps","$$typeof","_owner","O","P","Q","keyPrefix","S","U","V","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Consumer","createFactory","createRef","forwardRef","isValidElement","_ctor","_status","_result","memo","useDebugValue","useImperativeHandle","useLayoutEffect","autoPublicPath"],"sourceRoot":""}
|