{"version":3,"file":"vendors-Bm6KTTZZ.js","sources":["../../node_modules/object-assign/index.js","../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/luxon/build/node/luxon.js","../../node_modules/@bps/utils/dist/libs/date-time/DateSettings.js","../../node_modules/@bps/utils/dist/libs/date-time/types/recurrence.enum.js","../../node_modules/@bps/utils/dist/libs/date-time/types/week-days.enum.js","../../node_modules/@bps/utils/dist/libs/date-time/types/date-time.constants.js","../../node_modules/@bps/utils/dist/libs/date-time/types/date-time.formats.js","../../node_modules/@bps/utils/dist/libs/date-time/types/day-suffixes.enum.js","../../node_modules/@bps/utils/dist/libs/common/common.utils.js","../../node_modules/@bps/utils/dist/libs/common/key-codes.enum.js","../../node_modules/@bps/utils/dist/libs/date-time/DateTime.js","../../node_modules/@bps/utils/dist/libs/date-time/Interval.js","../../node_modules/@bps/utils/dist/libs/date-time/date-time.utils.js","../../node_modules/@bps/utils/dist/libs/date-time/DateInfo.js","../../node_modules/@bps/utils/dist/libs/data-access/useMountedState.js","../../node_modules/@bps/utils/dist/libs/data-access/useAsyncFn.js","../../node_modules/@bps/utils/dist/libs/data-access/useAsync.js","../../node_modules/joi/dist/joi-browser.min.js","../../node_modules/@bps/utils/dist/libs/validation/types/default-validation-messages.enums.js","../../node_modules/@bps/utils/dist/libs/validation/types/validator.constants.js","../../node_modules/@bps/utils/dist/libs/validation/utils/joi.js","../../node_modules/@bps/utils/dist/libs/validation/utils/validation-helper.utils.js","../../node_modules/@bps/utils/dist/libs/validation/utils/parse-schema-array.util.js","../../node_modules/@bps/utils/dist/libs/validation/utils/parse-validation-errors.utils.js","../../node_modules/@bps/utils/dist/libs/validation/validate.js","../../node_modules/@bps/utils/dist/libs/validation/validators/custom.validator.js","../../node_modules/@bps/utils/dist/libs/validation/validators/array.validator.js","../../node_modules/@bps/utils/dist/libs/validation/validators/boolean.validator.js","../../node_modules/@bps/utils/dist/libs/validation/validator-extensions/bp-date-time-validator.extension.js","../../node_modules/@bps/utils/dist/libs/validation/validators/date-time.validator.js","../../node_modules/@bps/utils/dist/libs/validation/validators/number.validator.js","../../node_modules/@bps/utils/dist/libs/validation/types/string-patterns.constants.js","../../node_modules/@bps/utils/dist/libs/validation/validators/string.validator.js","../../node_modules/@bps/utils/dist/libs/validation/Validator.js","../../node_modules/@bps/utils/dist/index.js","../../node_modules/mobx/dist/mobx.esm.js","../../node_modules/@azure/msal-browser/dist/_virtual/_tslib.js","../../node_modules/@azure/msal-common/dist/_virtual/_tslib.js","../../node_modules/@azure/msal-common/dist/utils/Constants.js","../../node_modules/@azure/msal-common/dist/error/AuthError.js","../../node_modules/@azure/msal-common/dist/crypto/ICrypto.js","../../node_modules/@azure/msal-common/dist/error/ClientAuthError.js","../../node_modules/@azure/msal-common/dist/utils/StringUtils.js","../../node_modules/@azure/msal-common/dist/logger/Logger.js","../../node_modules/@azure/msal-common/dist/packageMetadata.js","../../node_modules/@azure/msal-common/dist/authority/AuthorityOptions.js","../../node_modules/@azure/msal-common/dist/error/ClientConfigurationError.js","../../node_modules/@azure/msal-common/dist/request/ScopeSet.js","../../node_modules/@azure/msal-common/dist/account/ClientInfo.js","../../node_modules/@azure/msal-common/dist/authority/AuthorityType.js","../../node_modules/@azure/msal-common/dist/cache/entities/AccountEntity.js","../../node_modules/@azure/msal-common/dist/account/AuthToken.js","../../node_modules/@azure/msal-common/dist/cache/CacheManager.js","../../node_modules/@azure/msal-common/dist/config/ClientConfiguration.js","../../node_modules/@azure/msal-common/dist/error/ServerError.js","../../node_modules/@azure/msal-common/dist/network/ThrottlingUtils.js","../../node_modules/@azure/msal-common/dist/network/NetworkManager.js","../../node_modules/@azure/msal-common/dist/account/CcsCredential.js","../../node_modules/@azure/msal-common/dist/request/RequestValidator.js","../../node_modules/@azure/msal-common/dist/request/RequestParameterBuilder.js","../../node_modules/@azure/msal-common/dist/client/BaseClient.js","../../node_modules/@azure/msal-common/dist/cache/entities/CredentialEntity.js","../../node_modules/@azure/msal-common/dist/cache/entities/IdTokenEntity.js","../../node_modules/@azure/msal-common/dist/utils/TimeUtils.js","../../node_modules/@azure/msal-common/dist/cache/entities/AccessTokenEntity.js","../../node_modules/@azure/msal-common/dist/cache/entities/RefreshTokenEntity.js","../../node_modules/@azure/msal-common/dist/error/InteractionRequiredAuthError.js","../../node_modules/@azure/msal-common/dist/cache/entities/CacheRecord.js","../../node_modules/@azure/msal-common/dist/utils/ProtocolUtils.js","../../node_modules/@azure/msal-common/dist/url/UrlString.js","../../node_modules/@azure/msal-common/dist/telemetry/performance/PerformanceEvent.js","../../node_modules/@azure/msal-common/dist/crypto/PopTokenGenerator.js","../../node_modules/@azure/msal-common/dist/cache/entities/AppMetadataEntity.js","../../node_modules/@azure/msal-common/dist/cache/persistence/TokenCacheContext.js","../../node_modules/@azure/msal-common/dist/response/ResponseHandler.js","../../node_modules/@azure/msal-common/dist/client/AuthorizationCodeClient.js","../../node_modules/@azure/msal-common/dist/client/RefreshTokenClient.js","../../node_modules/@azure/msal-common/dist/client/SilentFlowClient.js","../../node_modules/@azure/msal-common/dist/authority/OpenIdConfigResponse.js","../../node_modules/@azure/msal-common/dist/authority/AuthorityMetadata.js","../../node_modules/@azure/msal-common/dist/authority/ProtocolMode.js","../../node_modules/@azure/msal-common/dist/cache/entities/AuthorityMetadataEntity.js","../../node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryResponse.js","../../node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryErrorResponse.js","../../node_modules/@azure/msal-common/dist/authority/RegionDiscovery.js","../../node_modules/@azure/msal-common/dist/authority/Authority.js","../../node_modules/@azure/msal-common/dist/authority/AuthorityFactory.js","../../node_modules/@azure/msal-common/dist/cache/entities/ServerTelemetryEntity.js","../../node_modules/@azure/msal-common/dist/cache/entities/ThrottlingEntity.js","../../node_modules/@azure/msal-common/dist/network/INetworkModule.js","../../node_modules/@azure/msal-common/dist/error/JoseHeaderError.js","../../node_modules/@azure/msal-common/dist/crypto/JoseHeader.js","../../node_modules/@azure/msal-common/dist/request/AuthenticationHeaderParser.js","../../node_modules/@azure/msal-common/dist/telemetry/server/ServerTelemetryManager.js","../../node_modules/@azure/msal-common/dist/telemetry/performance/PerformanceClient.js","../../node_modules/@azure/msal-common/dist/telemetry/performance/StubPerformanceClient.js","../../node_modules/@azure/msal-browser/dist/error/BrowserAuthError.js","../../node_modules/@azure/msal-browser/dist/utils/BrowserConstants.js","../../node_modules/@azure/msal-browser/dist/error/BrowserConfigurationAuthError.js","../../node_modules/@azure/msal-browser/dist/cache/BrowserStorage.js","../../node_modules/@azure/msal-browser/dist/cache/MemoryStorage.js","../../node_modules/@azure/msal-browser/dist/utils/BrowserProtocolUtils.js","../../node_modules/@azure/msal-browser/dist/cache/BrowserCacheManager.js","../../node_modules/@azure/msal-browser/dist/packageMetadata.js","../../node_modules/@azure/msal-browser/dist/network/FetchClient.js","../../node_modules/@azure/msal-browser/dist/network/XhrClient.js","../../node_modules/@azure/msal-browser/dist/utils/BrowserUtils.js","../../node_modules/@azure/msal-browser/dist/interaction_client/BaseInteractionClient.js","../../node_modules/@azure/msal-browser/dist/interaction_client/StandardInteractionClient.js","../../node_modules/@azure/msal-browser/dist/interaction_handler/InteractionHandler.js","../../node_modules/@azure/msal-browser/dist/interaction_handler/RedirectHandler.js","../../node_modules/@azure/msal-browser/dist/event/EventType.js","../../node_modules/@azure/msal-browser/dist/error/NativeAuthError.js","../../node_modules/@azure/msal-browser/dist/interaction_client/SilentCacheClient.js","../../node_modules/@azure/msal-browser/dist/interaction_client/NativeInteractionClient.js","../../node_modules/@azure/msal-browser/dist/broker/nativeBroker/NativeMessageHandler.js","../../node_modules/@azure/msal-browser/dist/interaction_client/RedirectClient.js","../../node_modules/@azure/msal-browser/dist/interaction_client/PopupClient.js","../../node_modules/@azure/msal-browser/dist/navigation/NavigationClient.js","../../node_modules/@azure/msal-browser/dist/config/Configuration.js","../../node_modules/@azure/msal-browser/dist/interaction_handler/SilentHandler.js","../../node_modules/@azure/msal-browser/dist/interaction_client/SilentIframeClient.js","../../node_modules/@azure/msal-browser/dist/interaction_client/SilentRefreshClient.js","../../node_modules/@azure/msal-browser/dist/event/EventHandler.js","../../node_modules/@azure/msal-browser/dist/utils/MathUtils.js","../../node_modules/@azure/msal-browser/dist/crypto/GuidGenerator.js","../../node_modules/@azure/msal-browser/dist/utils/BrowserStringUtils.js","../../node_modules/@azure/msal-browser/dist/encode/Base64Encode.js","../../node_modules/@azure/msal-browser/dist/encode/Base64Decode.js","../../node_modules/@azure/msal-browser/dist/crypto/PkceGenerator.js","../../node_modules/@azure/msal-browser/dist/crypto/ModernBrowserCrypto.js","../../node_modules/@azure/msal-browser/dist/crypto/MsrBrowserCrypto.js","../../node_modules/@azure/msal-browser/dist/crypto/MsBrowserCrypto.js","../../node_modules/@azure/msal-browser/dist/crypto/BrowserCrypto.js","../../node_modules/@azure/msal-browser/dist/cache/DatabaseStorage.js","../../node_modules/@azure/msal-browser/dist/cache/AsyncMemoryStorage.js","../../node_modules/@azure/msal-browser/dist/cache/CryptoKeyStore.js","../../node_modules/@azure/msal-browser/dist/crypto/CryptoOps.js","../../node_modules/@azure/msal-browser/dist/telemetry/BrowserPerformanceMeasurement.js","../../node_modules/@azure/msal-browser/dist/telemetry/BrowserPerformanceClient.js","../../node_modules/@azure/msal-browser/dist/internals.js","../../node_modules/@azure/msal-browser/dist/cache/TokenCache.js","../../node_modules/@azure/msal-browser/dist/interaction_client/HybridSpaAuthorizationCodeClient.js","../../node_modules/@azure/msal-browser/dist/interaction_client/SilentAuthCodeClient.js","../../node_modules/@azure/msal-browser/dist/app/ClientApplication.js","../../node_modules/@azure/msal-browser/dist/app/PublicClientApplication.js","../../node_modules/@azure/msal-browser/dist/app/IPublicClientApplication.js","../../node_modules/@azure/msal-browser/dist/event/EventMessage.js","../../node_modules/@azure/msal-browser/dist/crypto/SignedHttpRequest.js","../../node_modules/@azure/msal-browser/dist/index.js","../../node_modules/@azure/msal-react/dist/msal-react.esm.js","../../node_modules/@bps/http-client/dist/msal/useMsalProgressStatus.js","../../node_modules/@bps/http-client/dist/msal/authenticator.js","../../node_modules/@bps/http-client/dist/msal/AuthenticationProvider.js","../../node_modules/@bps/http-client/dist/middleware/authorization.middleware.js","../../node_modules/@bps/http-client/dist/errors/utils.js","../../node_modules/axios/dist/browser/axios.cjs","../../node_modules/@bps/http-client/dist/errors/HttpError.js","../../node_modules/@bps/http-client/dist/errors/RequestError.js","../../node_modules/@bps/http-client/dist/errors/ServerError.js","../../node_modules/@bps/http-client/dist/errors/NotFoundError.js","../../node_modules/@bps/http-client/dist/errors/AuthorisationError.js","../../node_modules/@bps/http-client/dist/middleware/default-exception-filter.middleware.js","../../node_modules/@bps/http-client/dist/logger/logger.js","../../node_modules/@bps/http-client/dist/axios-helper/axios-helper.constants.js","../../node_modules/@bps/http-client/dist/axios-helper/axios-helper-base.js","../../node_modules/@bps/http-client/dist/axios-helper/axios-helper.js","../../node_modules/@bps/http-client/dist/errors/ConflictError.js","../../node_modules/@bps/http-client/dist/index.js","../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/react-query/es/core/subscribable.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/react-query/es/core/utils.js","../../node_modules/react-query/es/core/focusManager.js","../../node_modules/react-query/es/core/onlineManager.js","../../node_modules/react-query/es/core/retryer.js","../../node_modules/react-query/es/core/notifyManager.js","../../node_modules/react-query/es/core/logger.js","../../node_modules/react-query/es/core/query.js","../../node_modules/react-query/es/core/queryCache.js","../../node_modules/react-query/es/core/mutation.js","../../node_modules/react-query/es/core/mutationCache.js","../../node_modules/react-query/es/core/infiniteQueryBehavior.js","../../node_modules/react-query/es/core/queryClient.js","../../node_modules/react-query/es/core/queryObserver.js","../../node_modules/react-query/es/core/infiniteQueryObserver.js","../../node_modules/react-query/es/core/mutationObserver.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-query/es/react/reactBatchedUpdates.js","../../node_modules/react-query/es/react/setBatchUpdatesFn.js","../../node_modules/react-query/es/react/logger.js","../../node_modules/react-query/es/react/setLogger.js","../../node_modules/react-query/es/react/QueryClientProvider.js","../../node_modules/react-query/es/react/QueryErrorResetBoundary.js","../../node_modules/react-query/es/react/utils.js","../../node_modules/react-query/es/react/useMutation.js","../../node_modules/react-query/es/react/useBaseQuery.js","../../node_modules/react-query/es/react/useQuery.js","../../node_modules/react-query/es/react/useInfiniteQuery.js","../../node_modules/strict-uri-encode/index.js","../../node_modules/decode-uri-component/index.js","../../node_modules/split-on-first/index.js","../../node_modules/filter-obj/index.js","../../node_modules/query-string/index.js","../../node_modules/history/node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/history/index.js","../../node_modules/react-router/index.js","../../node_modules/react-router-dom/index.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/@fluentui/set-version/lib/setVersion.js","../../node_modules/@fluentui/set-version/lib/index.js","../../node_modules/@fluentui/merge-styles/lib/shadowConfig.js","../../node_modules/@fluentui/merge-styles/lib/extractStyleParts.js","../../node_modules/@fluentui/merge-styles/lib/StyleOptionsState.js","../../node_modules/@fluentui/merge-styles/lib/Stylesheet.js","../../node_modules/@fluentui/merge-styles/lib/transforms/kebabRules.js","../../node_modules/@fluentui/merge-styles/lib/getVendorSettings.js","../../node_modules/@fluentui/merge-styles/lib/transforms/prefixRules.js","../../node_modules/@fluentui/merge-styles/lib/transforms/provideUnits.js","../../node_modules/@fluentui/merge-styles/lib/transforms/rtlifyRules.js","../../node_modules/@fluentui/merge-styles/lib/tokenizeWithParentheses.js","../../node_modules/@fluentui/merge-styles/lib/styleToClassName.js","../../node_modules/@fluentui/merge-styles/lib/mergeStyles.js","../../node_modules/@fluentui/merge-styles/lib/concatStyleSets.js","../../node_modules/@fluentui/merge-styles/lib/mergeStyleSets.js","../../node_modules/@fluentui/merge-styles/lib/concatStyleSetsWithProps.js","../../node_modules/@fluentui/merge-styles/lib/fontFace.js","../../node_modules/@fluentui/merge-styles/lib/keyframes.js","../../node_modules/@fluentui/style-utilities/lib/utilities/buildClassMap.js","../../node_modules/@fluentui/utilities/lib/dom/canUseDOM.js","../../node_modules/@fluentui/utilities/lib/dom/getWindow.js","../../node_modules/@fluentui/utilities/lib/Async.js","../../node_modules/@fluentui/dom-utilities/lib/isVirtualElement.js","../../node_modules/@fluentui/dom-utilities/lib/getVirtualParent.js","../../node_modules/@fluentui/dom-utilities/lib/getParent.js","../../node_modules/@fluentui/dom-utilities/lib/elementContains.js","../../node_modules/@fluentui/dom-utilities/lib/findElementRecursive.js","../../node_modules/@fluentui/dom-utilities/lib/elementContainsAttribute.js","../../node_modules/@fluentui/dom-utilities/lib/getActiveElement.js","../../node_modules/@fluentui/dom-utilities/lib/getChildren.js","../../node_modules/@fluentui/dom-utilities/lib/getEventTarget.js","../../node_modules/@fluentui/dom-utilities/lib/setPortalAttribute.js","../../node_modules/@fluentui/dom-utilities/lib/portalContainsElement.js","../../node_modules/@fluentui/dom-utilities/lib/setVirtualParent.js","../../node_modules/@fluentui/utilities/lib/dom/getDocument.js","../../node_modules/@fluentui/utilities/lib/focus.js","../../node_modules/@fluentui/utilities/lib/dom/getRect.js","../../node_modules/@fluentui/utilities/lib/dom/on.js","../../node_modules/@fluentui/utilities/lib/object.js","../../node_modules/@fluentui/utilities/lib/EventGroup.js","../../node_modules/@fluentui/utilities/lib/scroll.js","../../node_modules/@fluentui/utilities/lib/warn/warn.js","../../node_modules/@fluentui/utilities/lib/warn/warnConditionallyRequiredProps.js","../../node_modules/@fluentui/utilities/lib/BaseComponent.js","../../node_modules/@fluentui/utilities/lib/DelayedRender.js","../../node_modules/@fluentui/utilities/lib/GlobalSettings.js","../../node_modules/@fluentui/utilities/lib/KeyCodes.js","../../node_modules/@fluentui/utilities/lib/Rectangle.js","../../node_modules/@fluentui/utilities/lib/appendFunction.js","../../node_modules/@fluentui/utilities/lib/aria.js","../../node_modules/@fluentui/utilities/lib/array.js","../../node_modules/@fluentui/utilities/lib/sessionStorage.js","../../node_modules/@fluentui/utilities/lib/rtl.js","../../node_modules/@fluentui/utilities/lib/classNamesFunction.js","../../node_modules/@fluentui/utilities/lib/memoize.js","../../node_modules/@fluentui/utilities/lib/componentAs/composeComponentAs.js","../../node_modules/@fluentui/utilities/lib/controlled.js","../../node_modules/@fluentui/utilities/lib/css.js","../../node_modules/@fluentui/utilities/lib/customizations/Customizations.js","../../node_modules/@fluentui/utilities/lib/customizations/CustomizerContext.js","../../node_modules/@fluentui/utilities/lib/customizations/mergeSettings.js","../../node_modules/@fluentui/utilities/lib/customizations/mergeCustomizations.js","../../node_modules/@fluentui/utilities/lib/customizations/Customizer.js","../../node_modules/@fluentui/utilities/lib/hoistStatics.js","../../node_modules/@fluentui/utilities/lib/shadowDom/contexts/MergeStylesDefaultContext.js","../../node_modules/@fluentui/utilities/lib/shadowDom/hooks/useMergeStylesHooks.js","../../node_modules/@fluentui/utilities/lib/shadowDom/contexts/MergeStylesShadowRootContext.js","../../node_modules/@fluentui/utilities/lib/shadowDom/hooks/useMergeStylesShadowRoot.js","../../node_modules/@fluentui/utilities/lib/shadowDom/contexts/MergeStylesShadowRootConsumer.js","../../node_modules/@fluentui/react-window-provider/lib/WindowProvider.js","../../node_modules/@fluentui/utilities/lib/customizations/customizable.js","../../node_modules/@fluentui/utilities/lib/customizations/useCustomizationSettings.js","../../node_modules/@fluentui/utilities/lib/extendComponent.js","../../node_modules/@fluentui/utilities/lib/getId.js","../../node_modules/@fluentui/utilities/lib/properties.js","../../node_modules/@fluentui/utilities/lib/getNativeElementProps.js","../../node_modules/@fluentui/utilities/lib/hoist.js","../../node_modules/@fluentui/utilities/lib/initializeComponentRef.js","../../node_modules/@fluentui/utilities/lib/keyboard.js","../../node_modules/@fluentui/utilities/lib/setFocusVisibility.js","../../node_modules/@fluentui/utilities/lib/useFocusRects.js","../../node_modules/@fluentui/utilities/lib/FocusRectsProvider.js","../../node_modules/@fluentui/utilities/lib/initials.js","../../node_modules/@fluentui/utilities/lib/localStorage.js","../../node_modules/@fluentui/utilities/lib/language.js","../../node_modules/@fluentui/utilities/lib/math.js","../../node_modules/@fluentui/utilities/lib/merge.js","../../node_modules/@fluentui/utilities/lib/mobileDetector.js","../../node_modules/@fluentui/utilities/lib/modalize.js","../../node_modules/@fluentui/utilities/lib/osDetector.js","../../node_modules/@fluentui/utilities/lib/overflow.js","../../node_modules/@fluentui/utilities/lib/renderFunction/composeRenderFunction.js","../../node_modules/@fluentui/utilities/lib/safeRequestAnimationFrame.js","../../node_modules/@fluentui/utilities/lib/selection/Selection.types.js","../../node_modules/@fluentui/utilities/lib/selection/Selection.js","../../node_modules/@fluentui/utilities/lib/string.js","../../node_modules/@fluentui/utilities/lib/styled.js","../../node_modules/@fluentui/utilities/lib/ie11Detector.js","../../node_modules/@fluentui/utilities/lib/getPropsWithDefaults.js","../../node_modules/@fluentui/utilities/lib/createMergedRef.js","../../node_modules/@fluentui/utilities/lib/useIsomorphicLayoutEffect.js","../../node_modules/@fluentui/style-utilities/lib/utilities/icons.js","../../node_modules/@fluentui/theme/lib/utilities/makeSemanticColors.js","../../node_modules/@fluentui/theme/lib/mergeThemes.js","../../node_modules/@fluentui/theme/lib/colors/DefaultPalette.js","../../node_modules/@fluentui/theme/lib/effects/FluentDepths.js","../../node_modules/@fluentui/theme/lib/effects/DefaultEffects.js","../../node_modules/@fluentui/theme/lib/spacing/DefaultSpacing.js","../../node_modules/@fluentui/theme/lib/motion/AnimationStyles.js","../../node_modules/@fluentui/theme/lib/fonts/FluentFonts.js","../../node_modules/@fluentui/theme/lib/fonts/createFontStyles.js","../../node_modules/@fluentui/theme/lib/fonts/DefaultFontStyles.js","../../node_modules/@fluentui/theme/lib/createTheme.js","../../node_modules/@fluentui/style-utilities/lib/styles/CommonStyles.js","../../node_modules/@fluentui/style-utilities/lib/styles/zIndexes.js","../../node_modules/@fluentui/style-utilities/lib/styles/getFocusStyle.js","../../node_modules/@fluentui/style-utilities/lib/styles/hiddenContentStyle.js","../../node_modules/@fluentui/style-utilities/lib/styles/PulsingBeaconAnimationStyles.js","../../node_modules/@fluentui/style-utilities/lib/styles/getGlobalClassNames.js","../../node_modules/@microsoft/load-themed-styles/lib-es6/index.js","../../node_modules/@fluentui/style-utilities/lib/styles/theme.js","../../node_modules/@fluentui/style-utilities/lib/styles/GeneralStyles.js","../../node_modules/@fluentui/style-utilities/lib/styles/getPlaceholderStyles.js","../../node_modules/@fluentui/style-utilities/lib/classNames/AnimationClassNames.js","../../node_modules/@fluentui/style-utilities/lib/cdn.js","../../node_modules/@fluentui/style-utilities/lib/version.js","../../node_modules/@fluentui/style-utilities/lib/index.js","../../node_modules/@fluentui/react/lib/components/ActivityItem/ActivityItem.styles.js","../../node_modules/@fluentui/react/lib/components/ActivityItem/ActivityItem.classNames.js","../../node_modules/@fluentui/react/lib/common/DirectionalHint.js","../../node_modules/@fluentui/react/lib/utilities/positioning/positioning.types.js","../../node_modules/@fluentui/react/lib/utilities/positioning/positioning.js","../../node_modules/@fluentui/react-hooks/lib/useAsync.js","../../node_modules/@fluentui/react-hooks/lib/useConst.js","../../node_modules/@fluentui/react-hooks/lib/useBoolean.js","../../node_modules/@fluentui/react-hooks/lib/useControllableValue.js","../../node_modules/@fluentui/react-hooks/lib/useEventCallback.js","../../node_modules/@fluentui/react-hooks/lib/useId.js","../../node_modules/@fluentui/react-hooks/lib/useMergedRefs.js","../../node_modules/@fluentui/react-hooks/lib/useOnEvent.js","../../node_modules/@fluentui/react-hooks/lib/usePrevious.js","../../node_modules/@fluentui/react-hooks/lib/useRefEffect.js","../../node_modules/@fluentui/react-hooks/lib/useSetTimeout.js","../../node_modules/@fluentui/react-hooks/lib/useTarget.js","../../node_modules/@fluentui/react-hooks/lib/useUnmount.js","../../node_modules/@fluentui/react/lib/components/Popup/Popup.js","../../node_modules/@fluentui/react/lib/utilities/dom.js","../../node_modules/@fluentui/react/lib/components/Callout/CalloutContent.base.js","../../node_modules/@fluentui/react/lib/components/Callout/CalloutContent.styles.js","../../node_modules/@fluentui/react/lib/components/Callout/CalloutContent.js","../../node_modules/@fluentui/react-portal-compat-context/lib/PortalCompatContext.js","../../node_modules/@fluentui/react/lib/components/Fabric/Fabric.base.js","../../node_modules/@fluentui/react/lib/components/Fabric/Fabric.styles.js","../../node_modules/@fluentui/react/lib/components/Fabric/Fabric.js","../../node_modules/@fluentui/react/lib/components/Layer/Layer.notification.js","../../node_modules/@fluentui/react/lib/components/Layer/Layer.base.js","../../node_modules/@fluentui/react/lib/components/Layer/Layer.styles.js","../../node_modules/@fluentui/react/lib/components/Layer/Layer.js","../../node_modules/@fluentui/react/lib/components/Callout/Callout.js","../../node_modules/@fluentui/react/lib/components/FocusTrapZone/FocusTrapZone.js","../../node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.base.js","../../node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.styles.js","../../node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.js","../../node_modules/@fluentui/react/lib/components/Tooltip/Tooltip.types.js","../../node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.types.js","../../node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.base.js","../../node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.styles.js","../../node_modules/@fluentui/react/lib/components/Tooltip/TooltipHost.js","../../node_modules/@fluentui/react/lib/components/Icon/Icon.types.js","../../node_modules/@fluentui/react/lib/components/Image/Image.types.js","../../node_modules/@fluentui/react/lib/components/Image/Image.base.js","../../node_modules/@fluentui/react/lib/components/Image/Image.styles.js","../../node_modules/@fluentui/react/lib/components/Image/Image.js","../../node_modules/@fluentui/react/lib/components/Icon/Icon.styles.js","../../node_modules/@fluentui/react/lib/components/Icon/FontIcon.js","../../node_modules/@fluentui/react/lib/components/Icon/Icon.base.js","../../node_modules/@fluentui/react/lib/components/Icon/Icon.js","../../node_modules/@fluentui/react/lib/components/Icon/ImageIcon.js","../../node_modules/@fluentui/react/lib/components/Persona/Persona.types.js","../../node_modules/@fluentui/react/lib/components/Persona/PersonaConsts.js","../../node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.base.js","../../node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.styles.js","../../node_modules/@fluentui/react/lib/components/Persona/PersonaPresence/PersonaPresence.js","../../node_modules/@fluentui/react/lib/components/Persona/PersonaInitialsColor.js","../../node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.base.js","../../node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.styles.js","../../node_modules/@fluentui/react/lib/components/Persona/PersonaCoin/PersonaCoin.js","../../node_modules/@fluentui/react/lib/components/Persona/Persona.base.js","../../node_modules/@fluentui/react/lib/components/Persona/Persona.styles.js","../../node_modules/@fluentui/react/lib/components/Persona/Persona.js","../../node_modules/@fluentui/react/lib/components/ActivityItem/ActivityItem.js","../../node_modules/@fluentui/react/lib/components/Autofill/Autofill.js","../../node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.types.js","../../node_modules/@fluentui/react-focus/lib/components/FocusZone/FocusZone.js","../../node_modules/@fluentui/react/lib/components/Link/useLink.js","../../node_modules/@fluentui/react/lib/components/Link/Link.base.js","../../node_modules/@fluentui/react/lib/components/Link/Link.styles.js","../../node_modules/@fluentui/react/lib/components/Link/Link.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.types.js","../../node_modules/@fluentui/react/lib/utilities/contextualMenu/contextualMenuUtility.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.base.js","../../node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.classNames.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.cnstyles.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.classNames.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItem.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.js","../../node_modules/@fluentui/react/lib/utilities/keytips/KeytipConstants.js","../../node_modules/@fluentui/react/lib/utilities/keytips/KeytipManager.js","../../node_modules/@fluentui/react/lib/utilities/keytips/KeytipUtils.js","../../node_modules/@fluentui/react/lib/components/KeytipData/useKeytipData.js","../../node_modules/@fluentui/react/lib/components/KeytipData/KeytipData.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.js","../../node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.styles.js","../../node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.base.js","../../node_modules/@fluentui/react/lib/components/Divider/VerticalDivider.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.js","../../node_modules/@fluentui/react/lib/utilities/decorators/BaseDecorator.js","../../node_modules/@fluentui/react/lib/utilities/decorators/withResponsiveMode.js","../../node_modules/@fluentui/react/lib/utilities/hooks/useResponsiveMode.js","../../node_modules/@fluentui/react/lib/utilities/MenuContext/MenuContext.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.base.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.styles.js","../../node_modules/@fluentui/react/lib/components/ContextualMenu/ContextualMenu.js","../../node_modules/@fluentui/react/lib/components/Button/BaseButton.classNames.js","../../node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.classNames.js","../../node_modules/@fluentui/react/lib/components/Button/BaseButton.js","../../node_modules/@fluentui/react/lib/components/Button/BaseButton.styles.js","../../node_modules/@fluentui/react/lib/components/Button/SplitButton/SplitButton.styles.js","../../node_modules/@fluentui/react/lib/components/Button/ButtonThemes.js","../../node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.styles.js","../../node_modules/@fluentui/react/lib/components/Button/DefaultButton/DefaultButton.js","../../node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.styles.js","../../node_modules/@fluentui/react/lib/components/Button/ActionButton/ActionButton.js","../../node_modules/@fluentui/react/lib/components/Button/CompoundButton/CompoundButton.styles.js","../../node_modules/@fluentui/react/lib/components/Button/CompoundButton/CompoundButton.js","../../node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.styles.js","../../node_modules/@fluentui/react/lib/components/Button/IconButton/IconButton.js","../../node_modules/@fluentui/react/lib/components/Button/PrimaryButton/PrimaryButton.js","../../node_modules/@fluentui/react/lib/components/Button/CommandBarButton/CommandBarButton.styles.js","../../node_modules/@fluentui/react/lib/components/Button/CommandBarButton/CommandBarButton.js","../../node_modules/@fluentui/react/lib/components/Button/CommandButton/CommandButton.js","../../node_modules/@fluentui/react/lib/components/ResizeGroup/ResizeGroup.types.js","../../node_modules/@fluentui/react/lib/components/ResizeGroup/ResizeGroup.base.js","../../node_modules/@fluentui/react/lib/components/ResizeGroup/ResizeGroup.js","../../node_modules/@fluentui/react/lib/components/Breadcrumb/Breadcrumb.base.js","../../node_modules/@fluentui/react/lib/components/Breadcrumb/Breadcrumb.styles.js","../../node_modules/@fluentui/react/lib/components/Breadcrumb/Breadcrumb.js","../../node_modules/@fluentui/date-time-utilities/lib/dateValues/dateValues.js","../../node_modules/@fluentui/date-time-utilities/lib/dateValues/timeConstants.js","../../node_modules/@fluentui/date-time-utilities/lib/dateMath/dateMath.js","../../node_modules/@fluentui/date-time-utilities/lib/dateFormatting/dateFormatting.defaults.js","../../node_modules/@fluentui/date-time-utilities/lib/dateGrid/isBeforeMinDate.js","../../node_modules/@fluentui/date-time-utilities/lib/dateGrid/isAfterMaxDate.js","../../node_modules/@fluentui/date-time-utilities/lib/dateGrid/isRestrictedDate.js","../../node_modules/@fluentui/date-time-utilities/lib/dateGrid/findAvailableDate.js","../../node_modules/@fluentui/date-time-utilities/lib/dateGrid/getBoundedDateRange.js","../../node_modules/@fluentui/date-time-utilities/lib/dateGrid/isContiguous.js","../../node_modules/@fluentui/date-time-utilities/lib/dateGrid/getDateRangeTypeToUse.js","../../node_modules/@fluentui/date-time-utilities/lib/dateGrid/getDayGrid.js","../../node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js","../../node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarGridDayCell.js","../../node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarGridRow.js","../../node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarDayGrid.base.js","../../node_modules/@fluentui/react/lib/components/Calendar/Calendar.types.js","../../node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarDayGrid.styles.js","../../node_modules/@fluentui/react/lib/components/CalendarDayGrid/CalendarDayGrid.js","../../node_modules/@fluentui/react/lib/components/Calendar/CalendarDay/CalendarDay.base.js","../../node_modules/@fluentui/react/lib/components/Calendar/CalendarDay/CalendarDay.styles.js","../../node_modules/@fluentui/react/lib/components/Calendar/CalendarDay/CalendarDay.js","../../node_modules/@fluentui/react/lib/components/Calendar/CalendarPicker/CalendarPicker.styles.js","../../node_modules/@fluentui/react/lib/components/Calendar/CalendarMonth/CalendarMonth.styles.js","../../node_modules/@fluentui/react/lib/components/Calendar/CalendarYear/CalendarYear.styles.js","../../node_modules/@fluentui/react/lib/components/Calendar/defaults.js","../../node_modules/@fluentui/react/lib/components/Calendar/CalendarYear/CalendarYear.base.js","../../node_modules/@fluentui/react/lib/components/Calendar/CalendarYear/CalendarYear.js","../../node_modules/@fluentui/react/lib/components/Calendar/CalendarMonth/CalendarMonth.base.js","../../node_modules/@fluentui/react/lib/components/Calendar/CalendarMonth/CalendarMonth.js","../../node_modules/@fluentui/react/lib/components/Calendar/Calendar.base.js","../../node_modules/@fluentui/react/lib/components/Calendar/Calendar.styles.js","../../node_modules/@fluentui/react/lib/components/Calendar/Calendar.js","../../node_modules/@fluentui/react/lib/components/Check/Check.base.js","../../node_modules/@fluentui/react/lib/components/Check/Check.styles.js","../../node_modules/@fluentui/react/lib/components/Check/Check.js","../../node_modules/@fluentui/react/lib/utilities/color/consts.js","../../node_modules/@fluentui/react/lib/utilities/color/hsl2hsv.js","../../node_modules/@fluentui/react/lib/utilities/color/hsv2rgb.js","../../node_modules/@fluentui/react/lib/utilities/color/hsl2rgb.js","../../node_modules/@fluentui/react/lib/utilities/color/cssColor.js","../../node_modules/@fluentui/react/lib/utilities/color/clamp.js","../../node_modules/@fluentui/react/lib/utilities/color/rgb2hex.js","../../node_modules/@fluentui/react/lib/utilities/color/hsv2hex.js","../../node_modules/@fluentui/react/lib/utilities/color/rgb2hsv.js","../../node_modules/@fluentui/react/lib/utilities/color/_rgbaOrHexString.js","../../node_modules/@fluentui/react/lib/utilities/color/getColorFromRGBA.js","../../node_modules/@fluentui/react/lib/utilities/color/getColorFromString.js","../../node_modules/@fluentui/react/lib/utilities/color/getFullColorString.js","../../node_modules/@fluentui/react/lib/utilities/color/updateSV.js","../../node_modules/@fluentui/react/lib/utilities/color/updateH.js","../../node_modules/@fluentui/react/lib/utilities/color/updateA.js","../../node_modules/@fluentui/react/lib/utilities/color/correctRGB.js","../../node_modules/@fluentui/react/lib/utilities/color/correctHex.js","../../node_modules/@fluentui/react/lib/utilities/color/updateT.js","../../node_modules/@fluentui/react/lib/components/Label/Label.base.js","../../node_modules/@fluentui/react/lib/components/Label/Label.styles.js","../../node_modules/@fluentui/react/lib/components/Label/Label.js","../../node_modules/@fluentui/react/lib/components/TextField/TextField.base.js","../../node_modules/@fluentui/react/lib/components/TextField/TextField.styles.js","../../node_modules/@fluentui/react/lib/components/TextField/TextField.js","../../node_modules/@fluentui/react/lib/components/TextField/MaskedTextField/inputMask.js","../../node_modules/@fluentui/react/lib/components/TextField/MaskedTextField/MaskedTextField.js","../../node_modules/@fluentui/react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.base.js","../../node_modules/@fluentui/react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.styles.js","../../node_modules/@fluentui/react/lib/components/ColorPicker/ColorRectangle/ColorRectangle.js","../../node_modules/@fluentui/react/lib/components/ColorPicker/ColorSlider/ColorSlider.base.js","../../node_modules/@fluentui/react/lib/components/ColorPicker/ColorSlider/ColorSlider.styles.js","../../node_modules/@fluentui/react/lib/components/ColorPicker/ColorSlider/ColorSlider.js","../../node_modules/@fluentui/react/lib/components/ColorPicker/ColorPicker.base.js","../../node_modules/@fluentui/react/lib/components/ColorPicker/ColorPicker.styles.js","../../node_modules/@fluentui/react/lib/components/ColorPicker/ColorPicker.js","../../node_modules/@fluentui/react/lib/components/Dialog/DialogContent.types.js","../../node_modules/@fluentui/react/lib/components/Modal/Modal.styles.js","../../node_modules/@fluentui/react/lib/components/Overlay/Overlay.base.js","../../node_modules/@fluentui/react/lib/components/Overlay/Overlay.styles.js","../../node_modules/@fluentui/react/lib/components/Overlay/Overlay.js","../../node_modules/@fluentui/react/lib/utilities/DraggableZone/DraggableZone.styles.js","../../node_modules/@fluentui/react/lib/utilities/DraggableZone/DraggableZone.js","../../node_modules/@fluentui/react/lib/components/Modal/Modal.base.js","../../node_modules/@fluentui/react/lib/components/Modal/Modal.js","../../node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.base.js","../../node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.styles.js","../../node_modules/@fluentui/react/lib/components/Dialog/DialogFooter.js","../../node_modules/@fluentui/react/lib/components/Dialog/DialogContent.base.js","../../node_modules/@fluentui/react/lib/components/Dialog/DialogContent.styles.js","../../node_modules/@fluentui/react/lib/components/Dialog/DialogContent.js","../../node_modules/@fluentui/react/lib/components/Dialog/Dialog.base.js","../../node_modules/@fluentui/react/lib/components/Dialog/Dialog.styles.js","../../node_modules/@fluentui/react/lib/components/Dialog/Dialog.js","../../node_modules/@fluentui/react/lib/utilities/dragdrop/DragDropHelper.js","../../node_modules/@fluentui/react/lib/utilities/selection/SelectionZone.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-0.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-1.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-2.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-3.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-4.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-5.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-6.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-7.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-8.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-9.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-10.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-11.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-12.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-13.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-14.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-15.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-16.js","../../node_modules/@fluentui/font-icons-mdl2/lib/fabric-icons-17.js","../../node_modules/@fluentui/font-icons-mdl2/lib/iconAliases.js","../../node_modules/@fluentui/font-icons-mdl2/lib/version.js","../../node_modules/@fluentui/font-icons-mdl2/lib/index.js","../../node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.types.js","../../node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.base.js","../../node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.styles.js","../../node_modules/@fluentui/react/lib/components/MessageBar/MessageBar.js","../../node_modules/@fluentui/react/lib/components/Nav/Nav.styles.js","../../node_modules/@fluentui/react/lib/components/Nav/Nav.base.js","../../node_modules/@fluentui/react/lib/components/Nav/Nav.js","../../node_modules/@fluentui/react/lib/components/Panel/Panel.types.js","../../node_modules/@fluentui/react/lib/components/Panel/Panel.base.js","../../node_modules/@fluentui/react/lib/components/Panel/Panel.styles.js","../../node_modules/@fluentui/react/lib/components/Panel/Panel.js","../../node_modules/@fluentui/react/lib/utilities/observeResize.js","../../node_modules/@fluentui/react/lib/utilities/useOverflow.js","../../node_modules/@fluentui/react/lib/components/Pivot/PivotItem.js","../../node_modules/@fluentui/react/lib/components/Pivot/Pivot.base.js","../../node_modules/@fluentui/react/lib/components/Pivot/Pivot.styles.js","../../node_modules/@fluentui/react/lib/components/Pivot/Pivot.js","../../node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.styles.js","../../node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.types.js","../../node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.base.js","../../node_modules/@fluentui/react/lib/components/ScrollablePane/ScrollablePane.js","../../node_modules/@fluentui/react/lib/utilities/selectableOption/SelectableOption.js","../../node_modules/@fluentui/react/lib/utilities/selectableOption/SelectableOption.types.js","../../node_modules/@fluentui/react/lib/components/Separator/Separator.base.js","../../node_modules/@fluentui/react/lib/components/Separator/Separator.styles.js","../../node_modules/@fluentui/react/lib/components/Separator/Separator.js","../../node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.styles.js","../../node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.types.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.base.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.styles.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerLine/ShimmerLine.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.base.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.styles.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerGap/ShimmerGap.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.styles.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.base.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerCircle/ShimmerCircle.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.base.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.styles.js","../../node_modules/@fluentui/react/lib/components/Shimmer/ShimmerElementsGroup/ShimmerElementsGroup.js","../../node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.base.js","../../node_modules/@fluentui/react/lib/components/Shimmer/Shimmer.js","../../node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.styles.js","../../node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.types.js","../../node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.base.js","../../node_modules/@fluentui/react/lib/components/SpinButton/SpinButton.js","../../node_modules/@fluentui/react/lib/components/Spinner/Spinner.types.js","../../node_modules/@fluentui/react/lib/components/Spinner/Spinner.base.js","../../node_modules/@fluentui/react/lib/components/Spinner/Spinner.styles.js","../../node_modules/@fluentui/react/lib/components/Spinner/Spinner.js","../../node_modules/@fluentui/foundation-legacy/lib/utilities.js","../../node_modules/@fluentui/foundation-legacy/lib/slots.js","../../node_modules/@fluentui/foundation-legacy/lib/createComponent.js","../../node_modules/@fluentui/react/lib/components/Stack/StackItem/StackItem.styles.js","../../node_modules/@fluentui/react/lib/components/Stack/StackItem/StackItem.js","../../node_modules/@fluentui/react/lib/components/Stack/StackUtils.js","../../node_modules/@fluentui/react/lib/components/Stack/Stack.styles.js","../../node_modules/@fluentui/react/lib/components/Stack/Stack.js","../../node_modules/@fluentui/react/lib/components/Sticky/Sticky.types.js","../../node_modules/@fluentui/react/lib/components/Sticky/util/scroll.js","../../node_modules/@fluentui/react/lib/components/Sticky/util/comparison.js","../../node_modules/@fluentui/react/lib/components/Sticky/Sticky.js","../../node_modules/@fluentui/react/lib/utilities/ThemeProvider/ThemeContext.js","../../node_modules/@fluentui/react/lib/utilities/ThemeProvider/useTheme.js","../../node_modules/@fluentui/react/lib/utilities/ThemeProvider/styleRenderers/mergeStylesRenderer.js","../../node_modules/@fluentui/react/lib/utilities/ThemeProvider/makeStyles.js","../../node_modules/@fluentui/react/lib/utilities/ThemeProvider/useThemeProviderClasses.js","../../node_modules/@fluentui/react/lib/utilities/ThemeProvider/renderThemeProvider.js","../../node_modules/@fluentui/react/lib/utilities/ThemeProvider/useThemeProviderState.js","../../node_modules/@fluentui/react/lib/utilities/ThemeProvider/useThemeProvider.js","../../node_modules/@fluentui/react/lib/utilities/ThemeProvider/ThemeProvider.js","../../node_modules/@fluentui/react/lib/components/Announced/Announced.base.js","../../node_modules/@fluentui/react/lib/components/Announced/Announced.styles.js","../../node_modules/@fluentui/react/lib/components/Announced/Announced.js","../../node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.types.js","../../node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.scss.js","../../node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsItem.js","../../node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsItem.styles.js","../../node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.js","../../node_modules/@fluentui/react/lib/components/pickers/Suggestions/Suggestions.styles.js","../../node_modules/@fluentui/react/lib/components/pickers/Suggestions/SuggestionsController.js","../../node_modules/@fluentui/react/lib/components/pickers/BasePicker.types.js","../../node_modules/@fluentui/react/lib/components/pickers/BasePicker.scss.js","../../node_modules/@fluentui/react/lib/components/pickers/BasePicker.js","../../node_modules/@fluentui/react/lib/components/pickers/BasePicker.styles.js","../../node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItem.styles.js","../../node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItem.js","../../node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItemSuggestion.styles.js","../../node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagItemSuggestion.js","../../node_modules/@fluentui/react/lib/components/pickers/TagPicker/TagPicker.js","../../node_modules/@fluentui/react/lib/components/List/List.types.js","../../node_modules/@fluentui/react/lib/components/List/utils/scroll.js","../../node_modules/@fluentui/react/lib/components/List/List.js","../../node_modules/@bps/fluent-ui/dist/utilities/data-attribute.js","../../node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.base.js","../../node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.styles.js","../../node_modules/@fluentui/react/lib/components/Checkbox/Checkbox.js","../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.base.js","../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.styles.js","../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroupOption/ChoiceGroupOption.js","../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.base.js","../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.styles.js","../../node_modules/@fluentui/react/lib/components/ChoiceGroup/ChoiceGroup.js","../../node_modules/@fluentui/react/lib/components/ComboBox/ComboBox.styles.js","../../node_modules/@fluentui/react/lib/components/ComboBox/ComboBox.classNames.js","../../node_modules/@fluentui/react/lib/components/ComboBox/ComboBox.js","../../node_modules/@fluentui/react/lib/components/DatePicker/defaults.js","../../node_modules/@fluentui/react/lib/components/DatePicker/DatePicker.base.js","../../node_modules/@fluentui/react/lib/components/DatePicker/DatePicker.styles.js","../../node_modules/@fluentui/react/lib/components/DatePicker/DatePicker.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.types.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.types.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupSpacer.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.styles.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsRow.styles.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.styles.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsRowCheck.styles.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupHeader.styles.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupHeader.base.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupHeader.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupShowAll.styles.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupShowAll.base.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupShowAll.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupFooter.styles.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupFooter.base.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupFooter.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupedListSection.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.base.js","../../node_modules/@fluentui/react/lib/components/GroupedList/GroupedList.js","../../node_modules/@fluentui/react/lib/utilities/groupedList/GroupedListUtility.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsRowCheck.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsColumn.base.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsColumn.styles.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsColumn.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.types.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.base.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsHeader.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsRowFields.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsRow.base.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsRow.js","../../node_modules/@fluentui/react/lib/utilities/decorators/withViewport.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.base.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.styles.js","../../node_modules/@fluentui/react/lib/components/DetailsList/DetailsList.js","../../node_modules/@fluentui/react/lib/components/Dropdown/utilities/DropdownSizePosCache.js","../../node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.base.js","../../node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.styles.js","../../node_modules/@fluentui/react/lib/components/Dropdown/Dropdown.js","../../node_modules/@fluentui/react/lib/components/ProgressIndicator/ProgressIndicator.base.js","../../node_modules/@fluentui/react/lib/components/ProgressIndicator/ProgressIndicator.styles.js","../../node_modules/@fluentui/react/lib/components/ProgressIndicator/ProgressIndicator.js","../../node_modules/@fluentui/react/lib/components/SearchBox/SearchBox.base.js","../../node_modules/@fluentui/react/lib/components/SearchBox/SearchBox.styles.js","../../node_modules/@fluentui/react/lib/components/SearchBox/SearchBox.js","../../node_modules/@fluentui/react/lib/components/DetailsList/ShimmeredDetailsList.base.js","../../node_modules/@fluentui/react/lib/components/DetailsList/ShimmeredDetailsList.styles.js","../../node_modules/@fluentui/react/lib/components/DetailsList/ShimmeredDetailsList.js","../../node_modules/@fluentui/react/lib/components/Slider/useSlider.js","../../node_modules/@fluentui/react/lib/components/Slider/Slider.base.js","../../node_modules/@fluentui/react/lib/components/Slider/Slider.styles.js","../../node_modules/@fluentui/react/lib/components/Slider/Slider.js","../../node_modules/@fluentui/react/lib/components/Text/Text.view.js","../../node_modules/@fluentui/react/lib/components/Text/Text.styles.js","../../node_modules/@fluentui/react/lib/components/Text/Text.js","../../node_modules/@fluentui/react/lib/components/Toggle/Toggle.base.js","../../node_modules/@fluentui/react/lib/components/Toggle/Toggle.styles.js","../../node_modules/@fluentui/react/lib/components/Toggle/Toggle.js","../../node_modules/@bps/fluent-ui/dist/utilities/fluent-ui-utils.js","../../node_modules/@bps/fluent-ui/dist/utilities/calendar-strings.js","../../node_modules/@bps/fluent-ui/dist/utilities/canvas-measure.js","../../node_modules/@bps/fluent-ui/dist/utilities/common-styles.js","../../node_modules/@bps/fluent-ui/dist/utilities/transitions.js","../../node_modules/@bps/fluent-ui/dist/utilities/scrolling-options.js","../../node_modules/@bps/fluent-ui/dist/utilities/style-utils.js","../../node_modules/@bps/fluent-ui/dist/api/form-api/form.types.js","../../node_modules/@bps/fluent-ui/dist/api/form-api/utils.js","../../node_modules/@bps/fluent-ui/dist/api/form-api/form-actions.js","../../node_modules/@bps/fluent-ui/dist/api/form-api/form-context.js","../../node_modules/@bps/fluent-ui/dist/api/form-api/form-reducer.js","../../node_modules/@bps/fluent-ui/dist/api/form-api/Form.js","../../node_modules/@bps/fluent-ui/dist/api/form-api/useFormContext.js","../../node_modules/@bps/fluent-ui/dist/api/form-api/useFieldContext.js","../../node_modules/@bps/fluent-ui/dist/api/form-api/useFieldRegister.js","../../node_modules/@bps/fluent-ui/dist/components/MoreLessToggle/MoreLessToggle.js","../../node_modules/@bps/fluent-ui/dist/components/typography/Heading/Heading.js","../../node_modules/@bps/fluent-ui/dist/components/typography/Text.js","../../node_modules/@bps/fluent-ui/dist/components/Badge.js","../../node_modules/@bps/fluent-ui/dist/components/layout-helpers/CenteredBox/CenteredBox.js","../../node_modules/@bps/fluent-ui/dist/components/layout-helpers/HideStack/HideStack.js","../../node_modules/@bps/fluent-ui/dist/components/layout-helpers/Grid/utils.js","../../node_modules/@bps/fluent-ui/dist/components/layout-helpers/Grid/Grid.styles.js","../../node_modules/@bps/fluent-ui/dist/components/layout-helpers/Grid/Grid.js","../../node_modules/@bps/fluent-ui/dist/components/layout-helpers/Grid/GridItem/GridItem.styles.js","../../node_modules/@bps/fluent-ui/dist/components/layout-helpers/Grid/GridItem/GridItem.js","../../node_modules/@bps/fluent-ui/dist/components/FieldItem/FieldItem.types.js","../../node_modules/@bps/fluent-ui/dist/components/FieldItem/FieldItem.styles.js","../../node_modules/@bps/fluent-ui/dist/components/FieldItem/FieldItemError.js","../../node_modules/@bps/fluent-ui/dist/components/FieldItem/FieldItem.js","../../node_modules/@bps/fluent-ui/dist/components/Dropdown/Dropdown.js","../../node_modules/@bps/fluent-ui/dist/components/FontIcon/FontIcon.js","../../node_modules/@bps/fluent-ui/dist/components/SelectableIcon.js","../../node_modules/lodash.debounce/index.js","../../node_modules/@bps/fluent-ui/dist/components/SearchBox/SearchBox.js","../../node_modules/@bps/fluent-ui/dist/components/TextBadge/TextBadge.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/date-time/DateSettings.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/date-time/types/recurrence.enum.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/date-time/types/week-days.enum.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/date-time/types/date-time.constants.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/date-time/types/date-time.formats.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/date-time/types/day-suffixes.enum.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/common/common.utils.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/common/key-codes.enum.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/date-time/DateTime.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/date-time/Interval.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/date-time/date-time.utils.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/date-time/DateInfo.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/data-access/useMountedState.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/data-access/useAsyncFn.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/data-access/useAsync.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/libs/hooks/useDebounce.js","../../node_modules/@bps/fluent-ui/node_modules/@bps/utils/dist/index.js","../../node_modules/@bps/fluent-ui/dist/components/FromNow.js","../../node_modules/@bps/fluent-ui/dist/components/TopBar/TopBar.styles.js","../../node_modules/@bps/fluent-ui/dist/components/TopBar/TopBar.js","../../node_modules/@bps/fluent-ui/dist/components/TopBar/TopBarWrapper.styles.js","../../node_modules/@bps/fluent-ui/dist/components/TopBar/TopBarWrapper.js","../../node_modules/@bps/fluent-ui/dist/components/TopBar/TopBarDefaultHeader.js","../../node_modules/@bps/fluent-ui/dist/components/BestPracticeSvgLogo.js","../../node_modules/@bps/fluent-ui/dist/components/LabeledText/LabeledTextGroup.styles.js","../../node_modules/@bps/fluent-ui/dist/components/LabeledText/LabeledTextGroup.js","../../node_modules/@bps/fluent-ui/dist/components/LabeledText/LabeledText.styles.js","../../node_modules/@bps/fluent-ui/dist/components/LabeledText/LabeledText.js","../../node_modules/@bps/fluent-ui/dist/components/Slider/Slider.styles.js","../../node_modules/@bps/fluent-ui/dist/components/Slider/Slider.js","../../node_modules/@bps/fluent-ui/dist/components/SpinNumberInput/SpinNumberInput.styles.js","../../node_modules/@bps/fluent-ui/dist/components/SpinNumberInput/utils.js","../../node_modules/@bps/fluent-ui/dist/components/SpinNumberInput/SpinNumberInput.js","../../node_modules/@bps/fluent-ui/dist/components/Tile/Tile.styles.js","../../node_modules/@bps/fluent-ui/dist/components/Tile/Tile.js","../../node_modules/@bps/fluent-ui/dist/components/buttons/PillButton.js","../../node_modules/@bps/fluent-ui/dist/components/buttons/ButtonsGroupChoice/ButtonsGroupChoice.styles.js","../../node_modules/@bps/fluent-ui/dist/components/buttons/ButtonsGroupChoice/ButtonsGroupChoiceItem.js","../../node_modules/@bps/fluent-ui/dist/components/buttons/ButtonsGroupChoice/ButtonsGroupChoice.js","../../node_modules/browser-image-compression/dist/browser-image-compression.mjs","../../node_modules/@bps/fluent-ui/dist/components/buttons/CopyToClipboardButton/CopyToClipboardButton.js","../../node_modules/@bps/fluent-ui/dist/components/buttons/SplitButton/SplitButton.styles.js","../../node_modules/@bps/fluent-ui/dist/components/buttons/SplitButton/SplitButton.js","../../node_modules/@bps/fluent-ui/dist/components/Card/Card.styles.js","../../node_modules/@bps/fluent-ui/dist/components/Card/Card.js","../../node_modules/@bps/fluent-ui/dist/components/Card/Card.types.js","../../node_modules/@bps/fluent-ui/dist/components/Card/CollapsibleCard.styles.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/dom-helpers/esm/hasClass.js","../../node_modules/dom-helpers/esm/addClass.js","../../node_modules/dom-helpers/esm/removeClass.js","../../node_modules/react-transition-group/esm/config.js","../../node_modules/react-transition-group/esm/TransitionGroupContext.js","../../node_modules/react-transition-group/esm/utils/reflow.js","../../node_modules/react-transition-group/esm/Transition.js","../../node_modules/react-transition-group/esm/CSSTransition.js","../../node_modules/@bps/fluent-ui/dist/components/Card/CollapsibleCardControlled.js","../../node_modules/@bps/fluent-ui/dist/components/Card/CollapsibleCard.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/GenericSelect/GenericSelect.styles.js","../../node_modules/@bps/fluent-ui/dist/components/buttons/ClearCloseButton.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/GenericSelect/GenericSelectCalloutFooter.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/GenericSelect/utils.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/GenericSelect/GenericSelectField.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/GenericSelect/GenericSelectShowMoreOption.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/GenericSelect/GenericSelectOptionsList.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/GenericSelect/GenericSelectSearchBox.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/GenericSelect/GenericSelect.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/GenericSelect/useFilteredOptions.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatePicker.styles.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatePicker.types.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/utils.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/ReadOnlyInFormatField.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/Suffix.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatePickerInputField.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatePickerTodayLink.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatePicker.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatesRangePicker/YearCarousel.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatesRangePicker/DateRangeCalendar.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatesRangePicker/DatesRangePicker.types.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatesRangePicker/PasteStartDateButton.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatesRangePicker/utils.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatesRangePicker/DatesRangeCallout.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/DatePicker/DatesRangePicker/DatesRangePicker.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/selects/OptionsSelect/OptionsSelect.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/selects/IconSelect/IconSelect.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/selects/TagsSelect/TagsSelectField.styles.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/selects/TagsSelect/TagsSelectField.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/selects/ColourSelect/ColourSelect.styles.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/selects/ColourSelect/ColourSelect.types.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/selects/ColourSelect/ColourSelectField.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/selects/ColourSelect/ColourSelect.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/ChoiceComboBox/ChoiceComboBox.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/TimePicker/TimePicker.styles.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/TimePicker/TimePicker.types.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/TimePicker/TimePickerHelper.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/TimePicker/TimePicker.js","../../node_modules/file-selector/dist/es5/file.js","../../node_modules/file-selector/dist/es5/file-selector.js","../../node_modules/attr-accept/dist/es/index.js","../../node_modules/react-dropzone/dist/es/utils/index.js","../../node_modules/react-dropzone/dist/es/index.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/ProfilePhotoPicker/ProfilePhotoPicker.styles.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/ProfilePhotoPicker/RemoveButton.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/ProfilePhotoPicker/RemoveOverlay.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/ProfilePhotoPicker/UploadingOverlay.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/ProfilePhotoPicker/ProfilePhotoPicker.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/MultiTagPicker/MultiTagPickerItem/MultiTagPickerItem.styles.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/MultiTagPicker/MultiTagPickerItem/MultiTagPickerItem.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/MultiTagPicker/extendPicker.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/MultiTagPicker/withStaticItems.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/MultiTagPicker/MultiTagPicker.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/MultiTagPicker/extendToSinglePicker.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/MultiTagPicker/extendToSingleTagPicker.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/MultiTagPicker/StaticPicker.js","../../node_modules/@bps/fluent-ui/dist/components/pickers/MultiTagPicker/GenericPicker.js","../../node_modules/@bps/fluent-ui/dist/components/CheckboxGroup/CheckboxGroup.styles.js","../../node_modules/@bps/fluent-ui/dist/components/CheckboxGroup/CheckboxGroup.js","../../node_modules/@bps/fluent-ui/dist/components/NoDataTile/NoDataTile.styles.js","../../node_modules/@bps/fluent-ui/dist/components/NoDataTile/NoDataTile.js","../../node_modules/@bps/fluent-ui/dist/components/PivotTabs/PivotTabs.styles.js","../../node_modules/@bps/fluent-ui/dist/components/PivotTabs/PivotTabs.js","../../node_modules/@bps/fluent-ui/dist/components/ResizableOverflowBar/ResizableOverflowBar.styles.js","../../node_modules/lodash/isObject.js","../../node_modules/lodash/_freeGlobal.js","../../node_modules/lodash/_root.js","../../node_modules/lodash/now.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/_Symbol.js","../../node_modules/lodash/_getRawTag.js","../../node_modules/lodash/_objectToString.js","../../node_modules/lodash/_baseGetTag.js","../../node_modules/lodash/isObjectLike.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/debounce.js","../../node_modules/lodash/throttle.js","../../node_modules/react-resize-detector/build/index.esm.js","../../node_modules/@bps/fluent-ui/dist/components/ResizableOverflowBar/ResizableOverflowBar.js","../../node_modules/@bps/fluent-ui/dist/components/StateBlock/StateBlock.styles.js","../../node_modules/@bps/fluent-ui/dist/components/StateBlock/StateBlock.js","../../node_modules/@bps/fluent-ui/dist/components/SideRailMenu/SideRailMenu.styles.js","../../node_modules/@bps/fluent-ui/dist/components/SideRailMenu/SideRailMenuListItem.js","../../node_modules/@bps/fluent-ui/dist/components/SideRailMenu/SideRailMenu.js","../../node_modules/@bps/fluent-ui/dist/components/Lists/utils.js","../../node_modules/@bps/fluent-ui/dist/components/Lists/withBorderStyles/withBorderStyles.styles.js","../../node_modules/@bps/fluent-ui/dist/components/Lists/withBorderStyles/withBorderStyles.js","../../node_modules/@bps/fluent-ui/dist/components/Lists/ShimmeredDetailsList/ShimmeredDetailsList.types.js","../../node_modules/@bps/fluent-ui/dist/components/Lists/ShimmeredDetailsList/ShimmeredDetailsList.js","../../node_modules/@bps/fluent-ui/dist/components/Lists/DetailsLists/DetailsList.js","../../node_modules/@bps/fluent-ui/dist/components/Lists/components/DetailsRow.js","../../node_modules/@bps/fluent-ui/dist/components/Lists/DtoDetailRow.js","../../node_modules/@bps/fluent-ui/dist/components/Lists/NativeList/NativeList.styles.js","../../node_modules/@bps/fluent-ui/dist/components/Lists/NativeList/NativeList.js","../../node_modules/@bps/fluent-ui/dist/theme/defaultTheme.js","../../node_modules/@bps/fluent-ui/dist/theme/scopedSettings.js","../../node_modules/@bps/fluent-ui/dist/components/dialogs/ConfirmDialog.js","../../node_modules/@bps/fluent-ui/dist/components/dialogs/confirm.js","../../node_modules/@bps/fluent-ui/dist/components/hooks/useResizeElementObserver.js","../../node_modules/@bps/fluent-ui/dist/components/Toggle/Toggle.js","../../node_modules/lodash/lodash.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/FilterBar.styles.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/FilterBarActionButtons.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/hooks/useResetPresetsOnChange.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/options/ToggleButtonFilterItem.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/utils.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/options/ButtonsGroupSingleChoiceFilterItem.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/options/DatesRangePickerFilterItem.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/options/SearchBoxFilterItem.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/FilterBarPresets.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/options/DatePickerFilterItem.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/options/ToggleFilterItem.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/options/OptionsSelectFilterItem.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/FilterOption.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/FilterCallout.js","../../node_modules/@bps/fluent-ui/dist/components/FilterBar/FilterBar.js","../../node_modules/@bps/fluent-ui/dist/components/Checkbox/Checkbox.js","../../node_modules/@bps/fluent-ui/dist/components/CenteredLargeSpinner.js","../../node_modules/@bps/fluent-ui/dist/components/Persona.js","../../node_modules/@bps/fluent-ui/dist/components/ProgressIndicator/ProgressIndicator.types.js","../../node_modules/@bps/fluent-ui/dist/components/ProgressIndicator/stat-label/StatLabel.styles.js","../../node_modules/@bps/fluent-ui/dist/components/ProgressIndicator/stat-label/StatLabel.js","../../node_modules/@bps/fluent-ui/dist/components/ProgressIndicator/ProgressIndicator.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/SubmissionForm/ExpSubmissionForm.styles.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/SubmissionForm/ExpSubmissionFormButtons.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/SubmissionForm/ExpSubmissionForm.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/SubmissionForm/fields/exp-submission-form-fields.utils.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/SubmissionForm/fields/ExpDropdownField.js","../../node_modules/@bps/fluent-ui/dist/components/Header/Header.styles.js","../../node_modules/@bps/fluent-ui/dist/components/Header/Logo.js","../../node_modules/@bps/fluent-ui/dist/components/Header/Header.js","../../node_modules/@bps/fluent-ui/dist/components/Accordion/Accordion.styles.js","../../node_modules/@bps/fluent-ui/dist/components/Accordion/AccordionContext.js","../../node_modules/@bps/fluent-ui/dist/components/Accordion/Accordion.js","../../node_modules/@bps/fluent-ui/dist/components/Accordion/AccordionItem/AccordionItem.styles.js","../../node_modules/@bps/fluent-ui/dist/components/Accordion/AccordionItem/AccordionItem.types.js","../../node_modules/@bps/fluent-ui/dist/components/Accordion/AccordionItem/AccordionItem.js","../../node_modules/@bps/fluent-ui/dist/components/BpThemeProvider.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/Paginator/Paginator.styles.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/Paginator/Paginator.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/GridDetailsList.styles.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/components/GridDetailsListNoDataTile.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/GridDetailsList.constants.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/components/GridDetailsListFallback.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/components/GridDetailsListHeaderSelection.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/components/GridDetailsListSort.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/components/GridDetailsListHeaderRow.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/components/GridDetailsListCellSelection.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/components/GridDetailsListMontextualMenu.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/components/GridDetailsListItemsRow.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/components/GridDetailsListRows.js","../../node_modules/@bps/fluent-ui/dist/components/_experimenatal/GridDetailsList/GridDetailsList.js","../../node_modules/@bps/fluent-ui/dist/theme/customIcons.js","../../node_modules/react-query/devtools/index.js","../../node_modules/@microsoft/applicationinsights-shims/dist-es5/Constants.js","../../node_modules/@nevware21/ts-utils/dist-es5/internal/constants.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/safe.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/safe_get.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/base.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/get_own_prop_desc.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/has_own_prop.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/has_own.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/for_each_key.js","../../node_modules/@nevware21/ts-utils/dist-es5/internal/map.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/throw.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/object.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/enum.js","../../node_modules/@nevware21/ts-utils/dist-es5/symbol/well_known.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/as_string.js","../../node_modules/@nevware21/ts-utils/dist-es5/internal/global.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/diagnostics.js","../../node_modules/@nevware21/ts-utils/dist-es5/internal/unwrapFunction.js","../../node_modules/@nevware21/ts-utils/dist-es5/math/min_max.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/slice.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/substring.js","../../node_modules/@nevware21/ts-utils/dist-es5/polyfills/symbol.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/define.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/lazy.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/safe_lazy.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/cache.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/environment.js","../../node_modules/@nevware21/ts-utils/dist-es5/symbol/symbol.js","../../node_modules/@nevware21/ts-utils/dist-es5/iterator/iterator.js","../../node_modules/@nevware21/ts-utils/dist-es5/iterator/forOf.js","../../node_modules/@nevware21/ts-utils/dist-es5/funcs/fnApply.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/append.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/forEach.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/indexOf.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/map.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/slice.js","../../node_modules/@nevware21/ts-utils/dist-es5/array/reduce.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/create.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/set_proto.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/customError.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/date.js","../../node_modules/@nevware21/ts-utils/dist-es5/polyfills/trim.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/trim.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/is_plain_object.js","../../node_modules/@nevware21/ts-utils/dist-es5/object/copy.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/extend.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/length.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/perf.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/split.js","../../node_modules/@nevware21/ts-utils/dist-es5/helpers/get_set_value.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/ends_with.js","../../node_modules/@nevware21/ts-utils/dist-es5/string/index_of.js","../../node_modules/@nevware21/ts-utils/dist-es5/timer/handler.js","../../node_modules/@nevware21/ts-utils/dist-es5/timer/timeout.js","../../node_modules/@microsoft/applicationinsights-shims/dist-es5/TsLibShims.js","../../node_modules/@microsoft/dynamicproto-js/dist-es5/DynamicProto.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/await.js","../../node_modules/@nevware21/ts-async/dist-es5/internal/state.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/event.js","../../node_modules/@nevware21/ts-async/dist-es5/internal/constants.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/base.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/itemProcessor.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/asyncPromise.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/nativePromise.js","../../node_modules/@nevware21/ts-async/dist-es5/promise/promise.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AsyncUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/Constants.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CookieMgr.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/NotificationManager.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CoreUtils.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/W3cTraceParent.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AppInsightsCore.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EventHelpers.js","../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InstrumentHooks.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/RequestResponseHeaders.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/UrlHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/ThrottleMgr.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/ConnectionStringParser.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Envelope.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Event.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Exception.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataPoint.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Metric.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/RemoteDependencyData.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Trace.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageViewPerformance.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Data.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/ContextTagKeys.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/TelemetryItemCreator.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/PartAExtensions.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/DomHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/Offline.js","../../node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js","../../node_modules/@microsoft/applicationinsights-react-js/dist-esm/ReactPlugin.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Timing.js","../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/AnalyticsPlugin.js","../../node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncHelperFuncs.js","../../node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncPlugin.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/EnvelopeCreator.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/SendBuffer.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Serializer.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/Sample.js","../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Sender.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajaxRecord.js","../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajax.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Application.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Device.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Internal.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Location.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Session.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/TelemetryTrace.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/User.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/TelemetryContext.js","../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/PropertiesPlugin.js","../../node_modules/@microsoft/applicationinsights-web/dist-es5/InternalConstants.js","../../node_modules/@microsoft/applicationinsights-web/dist-es5/__DynamicConstants.js","../../node_modules/@microsoft/applicationinsights-web/dist-es5/AISku.js","../../node_modules/mobx-react-lite/es/utils/assertEnvironment.js","../../node_modules/mobx-react-lite/es/utils/observerBatching.js","../../node_modules/mobx-react-lite/es/utils/printDebugValue.js","../../node_modules/mobx-react-lite/es/utils/FinalizationRegistryWrapper.js","../../node_modules/mobx-react-lite/es/utils/reactionCleanupTrackingCommon.js","../../node_modules/mobx-react-lite/es/utils/createReactionCleanupTrackingUsingFinalizationRegister.js","../../node_modules/mobx-react-lite/es/utils/createTimerBasedReactionCleanupTracking.js","../../node_modules/mobx-react-lite/es/utils/reactionCleanupTracking.js","../../node_modules/mobx-react-lite/es/useObserver.js","../../node_modules/mobx-react-lite/es/observer.js","../../node_modules/mobx-react-lite/es/useLocalObservable.js","../../node_modules/mobx-react-lite/es/index.js","../../node_modules/mobx-react/dist/mobxreact.esm.js","../../node_modules/react-use/esm/misc/util.js","../../node_modules/react-use/esm/useToggle.js","../../node_modules/react-use/esm/useTimeoutFn.js","../../node_modules/react-use/esm/useDebounce.js","../../node_modules/react-use/esm/useEffectOnce.js","../../node_modules/react-use/esm/useLocalStorage.js","../../node_modules/react-use/esm/useMount.js","../../node_modules/react-hook-form/dist/index.esm.mjs","../../node_modules/little-state-machine/dist/little-state-machine.es.js","../../node_modules/uuid/dist/esm-browser/rng.js","../../node_modules/uuid/dist/esm-browser/regex.js","../../node_modules/uuid/dist/esm-browser/validate.js","../../node_modules/uuid/dist/esm-browser/stringify.js","../../node_modules/uuid/dist/esm-browser/v4.js","../../node_modules/react-simple-animate/dist/index.js","../../node_modules/@emotion/styled/node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../../node_modules/stylis/src/Enum.js","../../node_modules/stylis/src/Utility.js","../../node_modules/stylis/src/Tokenizer.js","../../node_modules/stylis/src/Parser.js","../../node_modules/stylis/src/Serializer.js","../../node_modules/stylis/src/Middleware.js","../../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../../node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js","../../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../../node_modules/lodash/isUndefined.js","../../node_modules/lodash/isArray.js","../../node_modules/lodash/_isKey.js","../../node_modules/lodash/isFunction.js","../../node_modules/lodash/_coreJsData.js","../../node_modules/lodash/_isMasked.js","../../node_modules/lodash/_toSource.js","../../node_modules/lodash/_baseIsNative.js","../../node_modules/lodash/_getValue.js","../../node_modules/lodash/_getNative.js","../../node_modules/lodash/_nativeCreate.js","../../node_modules/lodash/_hashClear.js","../../node_modules/lodash/_hashDelete.js","../../node_modules/lodash/_hashGet.js","../../node_modules/lodash/_hashHas.js","../../node_modules/lodash/_hashSet.js","../../node_modules/lodash/_Hash.js","../../node_modules/lodash/_listCacheClear.js","../../node_modules/lodash/eq.js","../../node_modules/lodash/_assocIndexOf.js","../../node_modules/lodash/_listCacheDelete.js","../../node_modules/lodash/_listCacheGet.js","../../node_modules/lodash/_listCacheHas.js","../../node_modules/lodash/_listCacheSet.js","../../node_modules/lodash/_ListCache.js","../../node_modules/lodash/_Map.js","../../node_modules/lodash/_mapCacheClear.js","../../node_modules/lodash/_isKeyable.js","../../node_modules/lodash/_getMapData.js","../../node_modules/lodash/_mapCacheDelete.js","../../node_modules/lodash/_mapCacheGet.js","../../node_modules/lodash/_mapCacheHas.js","../../node_modules/lodash/_mapCacheSet.js","../../node_modules/lodash/_MapCache.js","../../node_modules/lodash/memoize.js","../../node_modules/lodash/_memoizeCapped.js","../../node_modules/lodash/_stringToPath.js","../../node_modules/lodash/_arrayMap.js","../../node_modules/lodash/_baseToString.js","../../node_modules/lodash/toString.js","../../node_modules/lodash/_castPath.js","../../node_modules/lodash/_toKey.js","../../node_modules/lodash/_baseGet.js","../../node_modules/lodash/get.js","../../node_modules/dequal/dist/index.mjs","../../node_modules/use-deep-compare-effect/dist/use-deep-compare-effect.esm.js","../../node_modules/@hookform/devtools/dist/index.esm.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../node_modules/react-syntax-highlighter/node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/react-syntax-highlighter/dist/esm/create-element.js","../../node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","../../node_modules/react-syntax-highlighter/dist/esm/highlight.js","../../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/default-style.js","../../node_modules/highlight.js/lib/core.js","../../node_modules/format/format.js","../../node_modules/fault/index.js","../../node_modules/lowlight/lib/core.js","../../node_modules/highlight.js/lib/languages/1c.js","../../node_modules/highlight.js/lib/languages/abnf.js","../../node_modules/highlight.js/lib/languages/accesslog.js","../../node_modules/highlight.js/lib/languages/actionscript.js","../../node_modules/highlight.js/lib/languages/ada.js","../../node_modules/highlight.js/lib/languages/angelscript.js","../../node_modules/highlight.js/lib/languages/apache.js","../../node_modules/highlight.js/lib/languages/applescript.js","../../node_modules/highlight.js/lib/languages/arcade.js","../../node_modules/highlight.js/lib/languages/arduino.js","../../node_modules/highlight.js/lib/languages/armasm.js","../../node_modules/highlight.js/lib/languages/xml.js","../../node_modules/highlight.js/lib/languages/asciidoc.js","../../node_modules/highlight.js/lib/languages/aspectj.js","../../node_modules/highlight.js/lib/languages/autohotkey.js","../../node_modules/highlight.js/lib/languages/autoit.js","../../node_modules/highlight.js/lib/languages/avrasm.js","../../node_modules/highlight.js/lib/languages/awk.js","../../node_modules/highlight.js/lib/languages/axapta.js","../../node_modules/highlight.js/lib/languages/bash.js","../../node_modules/highlight.js/lib/languages/basic.js","../../node_modules/highlight.js/lib/languages/bnf.js","../../node_modules/highlight.js/lib/languages/brainfuck.js","../../node_modules/highlight.js/lib/languages/c-like.js","../../node_modules/highlight.js/lib/languages/c.js","../../node_modules/highlight.js/lib/languages/cal.js","../../node_modules/highlight.js/lib/languages/capnproto.js","../../node_modules/highlight.js/lib/languages/ceylon.js","../../node_modules/highlight.js/lib/languages/clean.js","../../node_modules/highlight.js/lib/languages/clojure.js","../../node_modules/highlight.js/lib/languages/clojure-repl.js","../../node_modules/highlight.js/lib/languages/cmake.js","../../node_modules/highlight.js/lib/languages/coffeescript.js","../../node_modules/highlight.js/lib/languages/coq.js","../../node_modules/highlight.js/lib/languages/cos.js","../../node_modules/highlight.js/lib/languages/cpp.js","../../node_modules/highlight.js/lib/languages/crmsh.js","../../node_modules/highlight.js/lib/languages/crystal.js","../../node_modules/highlight.js/lib/languages/csharp.js","../../node_modules/highlight.js/lib/languages/csp.js","../../node_modules/highlight.js/lib/languages/css.js","../../node_modules/highlight.js/lib/languages/d.js","../../node_modules/highlight.js/lib/languages/markdown.js","../../node_modules/highlight.js/lib/languages/dart.js","../../node_modules/highlight.js/lib/languages/delphi.js","../../node_modules/highlight.js/lib/languages/diff.js","../../node_modules/highlight.js/lib/languages/django.js","../../node_modules/highlight.js/lib/languages/dns.js","../../node_modules/highlight.js/lib/languages/dockerfile.js","../../node_modules/highlight.js/lib/languages/dos.js","../../node_modules/highlight.js/lib/languages/dsconfig.js","../../node_modules/highlight.js/lib/languages/dts.js","../../node_modules/highlight.js/lib/languages/dust.js","../../node_modules/highlight.js/lib/languages/ebnf.js","../../node_modules/highlight.js/lib/languages/elixir.js","../../node_modules/highlight.js/lib/languages/elm.js","../../node_modules/highlight.js/lib/languages/ruby.js","../../node_modules/highlight.js/lib/languages/erb.js","../../node_modules/highlight.js/lib/languages/erlang-repl.js","../../node_modules/highlight.js/lib/languages/erlang.js","../../node_modules/highlight.js/lib/languages/excel.js","../../node_modules/highlight.js/lib/languages/fix.js","../../node_modules/highlight.js/lib/languages/flix.js","../../node_modules/highlight.js/lib/languages/fortran.js","../../node_modules/highlight.js/lib/languages/fsharp.js","../../node_modules/highlight.js/lib/languages/gams.js","../../node_modules/highlight.js/lib/languages/gauss.js","../../node_modules/highlight.js/lib/languages/gcode.js","../../node_modules/highlight.js/lib/languages/gherkin.js","../../node_modules/highlight.js/lib/languages/glsl.js","../../node_modules/highlight.js/lib/languages/gml.js","../../node_modules/highlight.js/lib/languages/go.js","../../node_modules/highlight.js/lib/languages/golo.js","../../node_modules/highlight.js/lib/languages/gradle.js","../../node_modules/highlight.js/lib/languages/groovy.js","../../node_modules/highlight.js/lib/languages/haml.js","../../node_modules/highlight.js/lib/languages/handlebars.js","../../node_modules/highlight.js/lib/languages/haskell.js","../../node_modules/highlight.js/lib/languages/haxe.js","../../node_modules/highlight.js/lib/languages/hsp.js","../../node_modules/highlight.js/lib/languages/htmlbars.js","../../node_modules/highlight.js/lib/languages/http.js","../../node_modules/highlight.js/lib/languages/hy.js","../../node_modules/highlight.js/lib/languages/inform7.js","../../node_modules/highlight.js/lib/languages/ini.js","../../node_modules/highlight.js/lib/languages/irpf90.js","../../node_modules/highlight.js/lib/languages/isbl.js","../../node_modules/highlight.js/lib/languages/java.js","../../node_modules/highlight.js/lib/languages/javascript.js","../../node_modules/highlight.js/lib/languages/jboss-cli.js","../../node_modules/highlight.js/lib/languages/json.js","../../node_modules/highlight.js/lib/languages/julia.js","../../node_modules/highlight.js/lib/languages/julia-repl.js","../../node_modules/highlight.js/lib/languages/kotlin.js","../../node_modules/highlight.js/lib/languages/lasso.js","../../node_modules/highlight.js/lib/languages/latex.js","../../node_modules/highlight.js/lib/languages/ldif.js","../../node_modules/highlight.js/lib/languages/leaf.js","../../node_modules/highlight.js/lib/languages/less.js","../../node_modules/highlight.js/lib/languages/lisp.js","../../node_modules/highlight.js/lib/languages/livecodeserver.js","../../node_modules/highlight.js/lib/languages/livescript.js","../../node_modules/highlight.js/lib/languages/llvm.js","../../node_modules/highlight.js/lib/languages/lsl.js","../../node_modules/highlight.js/lib/languages/lua.js","../../node_modules/highlight.js/lib/languages/makefile.js","../../node_modules/highlight.js/lib/languages/mathematica.js","../../node_modules/highlight.js/lib/languages/matlab.js","../../node_modules/highlight.js/lib/languages/maxima.js","../../node_modules/highlight.js/lib/languages/mel.js","../../node_modules/highlight.js/lib/languages/mercury.js","../../node_modules/highlight.js/lib/languages/mipsasm.js","../../node_modules/highlight.js/lib/languages/mizar.js","../../node_modules/highlight.js/lib/languages/perl.js","../../node_modules/highlight.js/lib/languages/mojolicious.js","../../node_modules/highlight.js/lib/languages/monkey.js","../../node_modules/highlight.js/lib/languages/moonscript.js","../../node_modules/highlight.js/lib/languages/n1ql.js","../../node_modules/highlight.js/lib/languages/nginx.js","../../node_modules/highlight.js/lib/languages/nim.js","../../node_modules/highlight.js/lib/languages/nix.js","../../node_modules/highlight.js/lib/languages/node-repl.js","../../node_modules/highlight.js/lib/languages/nsis.js","../../node_modules/highlight.js/lib/languages/objectivec.js","../../node_modules/highlight.js/lib/languages/ocaml.js","../../node_modules/highlight.js/lib/languages/openscad.js","../../node_modules/highlight.js/lib/languages/oxygene.js","../../node_modules/highlight.js/lib/languages/parser3.js","../../node_modules/highlight.js/lib/languages/pf.js","../../node_modules/highlight.js/lib/languages/pgsql.js","../../node_modules/highlight.js/lib/languages/php.js","../../node_modules/highlight.js/lib/languages/php-template.js","../../node_modules/highlight.js/lib/languages/plaintext.js","../../node_modules/highlight.js/lib/languages/pony.js","../../node_modules/highlight.js/lib/languages/powershell.js","../../node_modules/highlight.js/lib/languages/processing.js","../../node_modules/highlight.js/lib/languages/profile.js","../../node_modules/highlight.js/lib/languages/prolog.js","../../node_modules/highlight.js/lib/languages/properties.js","../../node_modules/highlight.js/lib/languages/protobuf.js","../../node_modules/highlight.js/lib/languages/puppet.js","../../node_modules/highlight.js/lib/languages/purebasic.js","../../node_modules/highlight.js/lib/languages/python.js","../../node_modules/highlight.js/lib/languages/python-repl.js","../../node_modules/highlight.js/lib/languages/q.js","../../node_modules/highlight.js/lib/languages/qml.js","../../node_modules/highlight.js/lib/languages/r.js","../../node_modules/highlight.js/lib/languages/reasonml.js","../../node_modules/highlight.js/lib/languages/rib.js","../../node_modules/highlight.js/lib/languages/roboconf.js","../../node_modules/highlight.js/lib/languages/routeros.js","../../node_modules/highlight.js/lib/languages/rsl.js","../../node_modules/highlight.js/lib/languages/ruleslanguage.js","../../node_modules/highlight.js/lib/languages/rust.js","../../node_modules/highlight.js/lib/languages/sas.js","../../node_modules/highlight.js/lib/languages/scala.js","../../node_modules/highlight.js/lib/languages/scheme.js","../../node_modules/highlight.js/lib/languages/scilab.js","../../node_modules/highlight.js/lib/languages/scss.js","../../node_modules/highlight.js/lib/languages/shell.js","../../node_modules/highlight.js/lib/languages/smali.js","../../node_modules/highlight.js/lib/languages/smalltalk.js","../../node_modules/highlight.js/lib/languages/sml.js","../../node_modules/highlight.js/lib/languages/sqf.js","../../node_modules/highlight.js/lib/languages/sql_more.js","../../node_modules/highlight.js/lib/languages/sql.js","../../node_modules/highlight.js/lib/languages/stan.js","../../node_modules/highlight.js/lib/languages/stata.js","../../node_modules/highlight.js/lib/languages/step21.js","../../node_modules/highlight.js/lib/languages/stylus.js","../../node_modules/highlight.js/lib/languages/subunit.js","../../node_modules/highlight.js/lib/languages/swift.js","../../node_modules/highlight.js/lib/languages/taggerscript.js","../../node_modules/highlight.js/lib/languages/yaml.js","../../node_modules/highlight.js/lib/languages/tap.js","../../node_modules/highlight.js/lib/languages/tcl.js","../../node_modules/highlight.js/lib/languages/thrift.js","../../node_modules/highlight.js/lib/languages/tp.js","../../node_modules/highlight.js/lib/languages/twig.js","../../node_modules/highlight.js/lib/languages/typescript.js","../../node_modules/highlight.js/lib/languages/vala.js","../../node_modules/highlight.js/lib/languages/vbnet.js","../../node_modules/highlight.js/lib/languages/vbscript.js","../../node_modules/highlight.js/lib/languages/vbscript-html.js","../../node_modules/highlight.js/lib/languages/verilog.js","../../node_modules/highlight.js/lib/languages/vhdl.js","../../node_modules/highlight.js/lib/languages/vim.js","../../node_modules/highlight.js/lib/languages/x86asm.js","../../node_modules/highlight.js/lib/languages/xl.js","../../node_modules/highlight.js/lib/languages/xquery.js","../../node_modules/highlight.js/lib/languages/zephir.js","../../node_modules/lowlight/index.js","../../node_modules/react-syntax-highlighter/dist/esm/languages/hljs/supported-languages.js","../../node_modules/react-syntax-highlighter/dist/esm/default-highlight.js","../../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/a11y-dark.js","../../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/stackoverflow-light.js","../../node_modules/@syncfusion/ej2-base/src/util.js","../../node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","../../node_modules/@syncfusion/ej2-base/src/hijri-parser.js","../../node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","../../node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","../../node_modules/@syncfusion/ej2-base/src/observer.js","../../node_modules/@syncfusion/ej2-base/src/internationalization.js","../../node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","../../node_modules/@syncfusion/ej2-base/src/ajax.js","../../node_modules/@syncfusion/ej2-base/src/fetch.js","../../node_modules/@syncfusion/ej2-base/src/browser.js","../../node_modules/@syncfusion/ej2-base/src/event-handler.js","../../node_modules/@syncfusion/ej2-base/src/dom.js","../../node_modules/@syncfusion/ej2-base/src/base.js","../../node_modules/@syncfusion/ej2-base/src/notify-property-change.js","../../node_modules/@syncfusion/ej2-base/src/animation.js","../../node_modules/@syncfusion/ej2-base/src/module-loader.js","../../node_modules/@syncfusion/ej2-base/src/child-property.js","../../node_modules/@syncfusion/ej2-base/src/validate-lic.js","../../node_modules/@syncfusion/ej2-base/src/component.js","../../node_modules/@syncfusion/ej2-base/src/draggable.js","../../node_modules/@syncfusion/ej2-base/src/droppable.js","../../node_modules/@syncfusion/ej2-base/src/keyboard.js","../../node_modules/@syncfusion/ej2-base/src/l10n.js","../../node_modules/@syncfusion/ej2-base/src/touch.js","../../node_modules/@syncfusion/ej2-base/src/template.js","../../node_modules/@syncfusion/ej2-base/src/template-engine.js","../../node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","../../node_modules/@syncfusion/ej2-data/src/query.js","../../node_modules/@syncfusion/ej2-data/src/util.js","../../node_modules/@syncfusion/ej2-data/src/adaptors.js","../../node_modules/@syncfusion/ej2-data/src/manager.js","../../node_modules/@syncfusion/ej2-react-base/src/component-base.js","../../node_modules/@syncfusion/ej2-react-base/src/util.js","../../node_modules/@syncfusion/ej2-react-base/src/complex-base.js","../../node_modules/@syncfusion/ej2-react-base/src/services.js","../../node_modules/@syncfusion/ej2-react-base/src/template.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/diagram/layers-directive.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/diagram/customcursor-directive.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/diagram/connectors-directive.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/diagram/connector-fixeduserhandle-directive.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/diagram/connector-annotation-directive.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/diagram/nodes-directive.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/diagram/node-fixeduserhandle-directive.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/diagram/node-annotation-directive.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/diagram/ports-directive.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/size.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/point.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/path-util.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/rect.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/matrix.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/core/appearance.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/enum/enum.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/diagram-element.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/container.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/text-element.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/canvas.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/basic-shapes.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/path-element.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/image-element.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/native-element.js","../../node_modules/@syncfusion/ej2-popups/src/common/position.js","../../node_modules/@syncfusion/ej2-popups/src/common/collision.js","../../node_modules/@syncfusion/ej2-popups/src/popup/popup.js","../../node_modules/@syncfusion/ej2-popups/src/tooltip/tooltip.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/blazor-tooltip/blazor-Tooltip.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/tooltip.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/port.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/annotation.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/common.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/flow-shapes.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/connector.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/preview.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/node-base.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/html-element.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/fixed-user-handle.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/constraints-util.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/grid.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/swim-lane-util.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/container-interaction.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/actions.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/diff-map.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/tool.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/connector.js","../../node_modules/@syncfusion/ej2-diagrams/src/ruler/ruler.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/ruler/ruler.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/selector.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/umlactivity-shapes.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/keyboard-commands.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/diagram-util.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/icon.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/stack-panel.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/uml-util.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/layoutinfo.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/node.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/dom-util.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/base-util.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/rendering/canvas-renderer.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/rendering/svg-renderer.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/rendering/renderer.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/page-settings.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/service.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/grid-lines.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/ruler-settings.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/data-mapping.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/data-source.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/layout-base.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/connector-editing.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/event-handlers.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/layer.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/command-manager.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/scroller.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/spatial-search/quad.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/spatial-search/spatial-search.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/serialization-settings.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/custom-cursor.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram-settings.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/connectorProperties.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/labelProperties.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/nodeProperties.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/portProperties.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/modelProperties.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/data-binding/data-binding.js","../../node_modules/@syncfusion/ej2-navigations/src/accordion/accordion.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/bpmn.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/line-distribution.js","../../node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/complex-hierarchical-tree.js","../../node_modules/@syncfusion/ej2-diagrams/src/symbol-palette/symbol-palette.js","../../node_modules/@syncfusion/ej2-diagrams/src/overview/overview.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/diagram/diagram.component.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/symbol-palette/palettes-directive.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/symbol-palette/symbolpalette.component.js","../../node_modules/@syncfusion/ej2-react-diagrams/src/overview/overview.component.js","../../node_modules/@stripe/react-stripe-js/dist/react-stripe.esm.js","../../node_modules/@stripe/stripe-js/dist/stripe.esm.js","../../node_modules/compare-versions/lib/esm/utils.js","../../node_modules/compare-versions/lib/esm/compareVersions.js","../../node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../../node_modules/date-fns/esm/toDate/index.js","../../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../../node_modules/date-fns/esm/formatISO/index.js","../../node_modules/json-diff-kit/dist/differ.js","../../node_modules/json-diff-kit/dist/viewer.js","../../node_modules/humanize-duration-ts/dist/index.esm.js","../../node_modules/ajv/dist/compile/codegen/code.js","../../node_modules/ajv/dist/compile/codegen/scope.js","../../node_modules/ajv/dist/compile/codegen/index.js","../../node_modules/ajv/dist/compile/util.js","../../node_modules/ajv/dist/compile/names.js","../../node_modules/ajv/dist/compile/errors.js","../../node_modules/ajv/dist/compile/validate/boolSchema.js","../../node_modules/ajv/dist/compile/rules.js","../../node_modules/ajv/dist/compile/validate/applicability.js","../../node_modules/ajv/dist/compile/validate/dataType.js","../../node_modules/ajv/dist/compile/validate/defaults.js","../../node_modules/ajv/dist/vocabularies/code.js","../../node_modules/ajv/dist/compile/validate/keyword.js","../../node_modules/ajv/dist/compile/validate/subschema.js","../../node_modules/fast-deep-equal/index.js","../../node_modules/json-schema-traverse/index.js","../../node_modules/ajv/dist/compile/resolve.js","../../node_modules/ajv/dist/compile/validate/index.js","../../node_modules/ajv/dist/runtime/validation_error.js","../../node_modules/ajv/dist/compile/ref_error.js","../../node_modules/ajv/dist/compile/index.js","../../node_modules/uri-js/dist/es5/uri.all.js","../../node_modules/ajv/dist/runtime/uri.js","../../node_modules/ajv/dist/core.js","../../node_modules/ajv/dist/vocabularies/core/ref.js","../../node_modules/ajv-draft-04/dist/vocabulary/core.js","../../node_modules/ajv-draft-04/dist/vocabulary/validation/limitNumber.js","../../node_modules/ajv-draft-04/dist/vocabulary/validation/limitNumberExclusive.js","../../node_modules/ajv/dist/vocabularies/validation/multipleOf.js","../../node_modules/ajv/dist/runtime/ucs2length.js","../../node_modules/ajv/dist/vocabularies/validation/limitLength.js","../../node_modules/ajv/dist/vocabularies/validation/pattern.js","../../node_modules/ajv/dist/vocabularies/validation/limitProperties.js","../../node_modules/ajv/dist/vocabularies/validation/required.js","../../node_modules/ajv/dist/vocabularies/validation/limitItems.js","../../node_modules/ajv/dist/runtime/equal.js","../../node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","../../node_modules/ajv/dist/vocabularies/validation/const.js","../../node_modules/ajv/dist/vocabularies/validation/enum.js","../../node_modules/ajv-draft-04/dist/vocabulary/validation/index.js","../../node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","../../node_modules/ajv/dist/vocabularies/applicator/items.js","../../node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","../../node_modules/ajv/dist/vocabularies/applicator/items2020.js","../../node_modules/ajv/dist/vocabularies/applicator/contains.js","../../node_modules/ajv/dist/vocabularies/applicator/dependencies.js","../../node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","../../node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","../../node_modules/ajv/dist/vocabularies/applicator/properties.js","../../node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","../../node_modules/ajv/dist/vocabularies/applicator/not.js","../../node_modules/ajv/dist/vocabularies/applicator/anyOf.js","../../node_modules/ajv/dist/vocabularies/applicator/oneOf.js","../../node_modules/ajv/dist/vocabularies/applicator/allOf.js","../../node_modules/ajv/dist/vocabularies/applicator/if.js","../../node_modules/ajv/dist/vocabularies/applicator/thenElse.js","../../node_modules/ajv/dist/vocabularies/applicator/index.js","../../node_modules/ajv/dist/vocabularies/format/format.js","../../node_modules/ajv/dist/vocabularies/format/index.js","../../node_modules/ajv-draft-04/dist/vocabulary/draft4.js","../../node_modules/ajv/dist/vocabularies/discriminator/types.js","../../node_modules/ajv/dist/vocabularies/discriminator/index.js","../../node_modules/ajv-draft-04/dist/index.js","../../node_modules/@rjsf/utils/lib/isObject.js","../../node_modules/@rjsf/utils/lib/allowAdditionalItems.js","../../node_modules/@rjsf/utils/lib/asNumber.js","../../node_modules/@rjsf/utils/lib/constants.js","../../node_modules/@rjsf/utils/lib/getUiOptions.js","../../node_modules/@rjsf/utils/lib/canExpand.js","../../node_modules/lodash/_overArg.js","../../node_modules/lodash/_getPrototype.js","../../node_modules/lodash/isPlainObject.js","../../node_modules/@rjsf/utils/lib/createErrorHandler.js","../../node_modules/lodash/_stackClear.js","../../node_modules/lodash/_stackDelete.js","../../node_modules/lodash/_stackGet.js","../../node_modules/lodash/_stackHas.js","../../node_modules/lodash/_stackSet.js","../../node_modules/lodash/_Stack.js","../../node_modules/lodash/_setCacheAdd.js","../../node_modules/lodash/_setCacheHas.js","../../node_modules/lodash/_SetCache.js","../../node_modules/lodash/_arraySome.js","../../node_modules/lodash/_cacheHas.js","../../node_modules/lodash/_equalArrays.js","../../node_modules/lodash/_Uint8Array.js","../../node_modules/lodash/_mapToArray.js","../../node_modules/lodash/_setToArray.js","../../node_modules/lodash/_equalByTag.js","../../node_modules/lodash/_arrayPush.js","../../node_modules/lodash/_baseGetAllKeys.js","../../node_modules/lodash/_arrayFilter.js","../../node_modules/lodash/stubArray.js","../../node_modules/lodash/_getSymbols.js","../../node_modules/lodash/_baseTimes.js","../../node_modules/lodash/_baseIsArguments.js","../../node_modules/lodash/isArguments.js","../../node_modules/lodash/stubFalse.js","../../node_modules/lodash/isBuffer.js","../../node_modules/lodash/_isIndex.js","../../node_modules/lodash/isLength.js","../../node_modules/lodash/_baseIsTypedArray.js","../../node_modules/lodash/_baseUnary.js","../../node_modules/lodash/_nodeUtil.js","../../node_modules/lodash/isTypedArray.js","../../node_modules/lodash/_arrayLikeKeys.js","../../node_modules/lodash/_isPrototype.js","../../node_modules/lodash/_nativeKeys.js","../../node_modules/lodash/_baseKeys.js","../../node_modules/lodash/isArrayLike.js","../../node_modules/lodash/keys.js","../../node_modules/lodash/_getAllKeys.js","../../node_modules/lodash/_equalObjects.js","../../node_modules/lodash/_DataView.js","../../node_modules/lodash/_Promise.js","../../node_modules/lodash/_Set.js","../../node_modules/lodash/_WeakMap.js","../../node_modules/lodash/_getTag.js","../../node_modules/lodash/_baseIsEqualDeep.js","../../node_modules/lodash/_baseIsEqual.js","../../node_modules/lodash/isEqualWith.js","../../node_modules/@rjsf/utils/lib/deepEquals.js","../../node_modules/lodash/isEmpty.js","../../node_modules/jsonpointer/jsonpointer.js","../../node_modules/lodash/_arrayEach.js","../../node_modules/lodash/_defineProperty.js","../../node_modules/lodash/_baseAssignValue.js","../../node_modules/lodash/_assignValue.js","../../node_modules/lodash/_copyObject.js","../../node_modules/lodash/_baseAssign.js","../../node_modules/lodash/_nativeKeysIn.js","../../node_modules/lodash/_baseKeysIn.js","../../node_modules/lodash/keysIn.js","../../node_modules/lodash/_baseAssignIn.js","../../node_modules/lodash/_cloneBuffer.js","../../node_modules/lodash/_copyArray.js","../../node_modules/lodash/_copySymbols.js","../../node_modules/lodash/_getSymbolsIn.js","../../node_modules/lodash/_copySymbolsIn.js","../../node_modules/lodash/_getAllKeysIn.js","../../node_modules/lodash/_initCloneArray.js","../../node_modules/lodash/_cloneArrayBuffer.js","../../node_modules/lodash/_cloneDataView.js","../../node_modules/lodash/_cloneRegExp.js","../../node_modules/lodash/_cloneSymbol.js","../../node_modules/lodash/_cloneTypedArray.js","../../node_modules/lodash/_initCloneByTag.js","../../node_modules/lodash/_baseCreate.js","../../node_modules/lodash/_initCloneObject.js","../../node_modules/lodash/_baseIsMap.js","../../node_modules/lodash/isMap.js","../../node_modules/lodash/_baseIsSet.js","../../node_modules/lodash/isSet.js","../../node_modules/lodash/_baseClone.js","../../node_modules/lodash/last.js","../../node_modules/lodash/_baseSlice.js","../../node_modules/lodash/_parent.js","../../node_modules/lodash/_baseUnset.js","../../node_modules/lodash/_customOmitClone.js","../../node_modules/lodash/_isFlattenable.js","../../node_modules/lodash/_baseFlatten.js","../../node_modules/lodash/flatten.js","../../node_modules/lodash/_apply.js","../../node_modules/lodash/_overRest.js","../../node_modules/lodash/constant.js","../../node_modules/lodash/identity.js","../../node_modules/lodash/_baseSetToString.js","../../node_modules/lodash/_shortOut.js","../../node_modules/lodash/_setToString.js","../../node_modules/lodash/_flatRest.js","../../node_modules/lodash/omit.js","../../node_modules/@rjsf/utils/lib/findSchemaDefinition.js","../../node_modules/lodash/_baseHas.js","../../node_modules/lodash/_hasPath.js","../../node_modules/lodash/has.js","../../node_modules/lodash/isNumber.js","../../node_modules/lodash/isString.js","../../node_modules/lodash/_arrayReduce.js","../../node_modules/lodash/_createBaseFor.js","../../node_modules/lodash/_baseFor.js","../../node_modules/lodash/_baseForOwn.js","../../node_modules/lodash/_createBaseEach.js","../../node_modules/lodash/_baseEach.js","../../node_modules/lodash/_baseIsMatch.js","../../node_modules/lodash/_isStrictComparable.js","../../node_modules/lodash/_getMatchData.js","../../node_modules/lodash/_matchesStrictComparable.js","../../node_modules/lodash/_baseMatches.js","../../node_modules/lodash/_baseHasIn.js","../../node_modules/lodash/hasIn.js","../../node_modules/lodash/_baseMatchesProperty.js","../../node_modules/lodash/_baseProperty.js","../../node_modules/lodash/_basePropertyDeep.js","../../node_modules/lodash/property.js","../../node_modules/lodash/_baseIteratee.js","../../node_modules/lodash/_baseReduce.js","../../node_modules/lodash/reduce.js","../../node_modules/lodash/_castFunction.js","../../node_modules/lodash/toFinite.js","../../node_modules/lodash/toInteger.js","../../node_modules/lodash/times.js","../../node_modules/@rjsf/utils/lib/getOptionMatchingSimpleDiscriminator.js","../../node_modules/@rjsf/utils/lib/schema/getMatchingOption.js","../../node_modules/@rjsf/utils/lib/schema/getFirstMatchingOption.js","../../node_modules/lodash/isEqual.js","../../node_modules/lodash/_baseSet.js","../../node_modules/lodash/set.js","../../node_modules/lodash/transform.js","../../node_modules/lodash/_assignMergeValue.js","../../node_modules/lodash/isArrayLikeObject.js","../../node_modules/lodash/_safeGet.js","../../node_modules/lodash/toPlainObject.js","../../node_modules/lodash/_baseMergeDeep.js","../../node_modules/lodash/_baseMerge.js","../../node_modules/lodash/_baseRest.js","../../node_modules/lodash/_isIterateeCall.js","../../node_modules/lodash/_createAssigner.js","../../node_modules/lodash/merge.js","../../node_modules/lodash/flattenDeep.js","../../node_modules/lodash/_baseFindIndex.js","../../node_modules/lodash/_baseIsNaN.js","../../node_modules/lodash/_strictIndexOf.js","../../node_modules/lodash/_baseIndexOf.js","../../node_modules/lodash/_arrayIncludes.js","../../node_modules/lodash/_arrayIncludesWith.js","../../node_modules/lodash/noop.js","../../node_modules/lodash/_createSet.js","../../node_modules/lodash/_baseUniq.js","../../node_modules/lodash/uniq.js","../../node_modules/lodash/cloneDeep.js","../../node_modules/lodash/_baseMap.js","../../node_modules/lodash/_baseSortBy.js","../../node_modules/lodash/_compareAscending.js","../../node_modules/lodash/_compareMultiple.js","../../node_modules/lodash/_baseOrderBy.js","../../node_modules/lodash/sortBy.js","../../node_modules/lodash/uniqWith.js","../../node_modules/lodash/defaults.js","../../node_modules/lodash/_baseIntersection.js","../../node_modules/lodash/_castArrayLikeObject.js","../../node_modules/lodash/intersectionWith.js","../../node_modules/lodash/isBoolean.js","../../node_modules/json-schema-compare/src/index.js","../../node_modules/validate.io-array/lib/index.js","../../node_modules/validate.io-number/lib/index.js","../../node_modules/validate.io-integer/lib/index.js","../../node_modules/validate.io-integer-array/lib/index.js","../../node_modules/validate.io-function/lib/index.js","../../node_modules/compute-gcd/lib/index.js","../../node_modules/compute-lcm/lib/index.js","../../node_modules/lodash/_customDefaultsMerge.js","../../node_modules/lodash/mergeWith.js","../../node_modules/lodash/defaultsDeep.js","../../node_modules/lodash/intersection.js","../../node_modules/lodash/_baseIndexOfWith.js","../../node_modules/lodash/_basePullAll.js","../../node_modules/lodash/pullAll.js","../../node_modules/lodash/forEach.js","../../node_modules/lodash/_baseDifference.js","../../node_modules/lodash/without.js","../../node_modules/json-schema-merge-allof/src/common.js","../../node_modules/json-schema-merge-allof/src/complex-resolvers/properties.js","../../node_modules/json-schema-merge-allof/src/complex-resolvers/items.js","../../node_modules/json-schema-merge-allof/src/index.js","../../node_modules/@rjsf/utils/lib/getDiscriminatorFieldFromSchema.js","../../node_modules/@rjsf/utils/lib/guessType.js","../../node_modules/lodash/union.js","../../node_modules/@rjsf/utils/lib/getSchemaType.js","../../node_modules/@rjsf/utils/lib/mergeSchemas.js","../../node_modules/@rjsf/utils/lib/schema/retrieveSchema.js","../../node_modules/@rjsf/utils/lib/schema/getClosestMatchingOption.js","../../node_modules/@rjsf/utils/lib/isFixedItems.js","../../node_modules/@rjsf/utils/lib/mergeDefaultsWithFormData.js","../../node_modules/@rjsf/utils/lib/mergeObjects.js","../../node_modules/@rjsf/utils/lib/isConstant.js","../../node_modules/@rjsf/utils/lib/schema/isSelect.js","../../node_modules/@rjsf/utils/lib/schema/isMultiSelect.js","../../node_modules/@rjsf/utils/lib/schema/getDefaultFormState.js","../../node_modules/@rjsf/utils/lib/isCustomWidget.js","../../node_modules/@rjsf/utils/lib/schema/isFilesArray.js","../../node_modules/@rjsf/utils/lib/schema/getDisplayLabel.js","../../node_modules/@rjsf/utils/lib/schema/mergeValidationData.js","../../node_modules/@rjsf/utils/lib/schema/sanitizeDataForNewSchema.js","../../node_modules/@rjsf/utils/lib/schema/toIdSchema.js","../../node_modules/@rjsf/utils/lib/schema/toPathSchema.js","../../node_modules/@rjsf/utils/lib/createSchemaUtils.js","../../node_modules/@rjsf/utils/lib/dataURItoBlob.js","../../node_modules/@rjsf/utils/lib/replaceStringParameters.js","../../node_modules/@rjsf/utils/lib/englishStringTranslator.js","../../node_modules/@rjsf/utils/lib/enumOptionsValueForIndex.js","../../node_modules/@rjsf/utils/lib/enumOptionsDeselectValue.js","../../node_modules/@rjsf/utils/lib/enumOptionsIsSelected.js","../../node_modules/@rjsf/utils/lib/enumOptionsIndexForValue.js","../../node_modules/lodash/isNil.js","../../node_modules/@rjsf/utils/lib/enumOptionsSelectValue.js","../../node_modules/@rjsf/utils/lib/ErrorSchemaBuilder.js","../../node_modules/@rjsf/utils/lib/getDateElementProps.js","../../node_modules/@rjsf/utils/lib/rangeSpec.js","../../node_modules/@rjsf/utils/lib/getInputProps.js","../../node_modules/@rjsf/utils/lib/getSubmitButtonOptions.js","../../node_modules/@rjsf/utils/lib/getTemplate.js","../../node_modules/@rjsf/utils/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/@rjsf/utils/node_modules/react-is/index.js","../../node_modules/@rjsf/utils/lib/getWidget.js","../../node_modules/@rjsf/utils/lib/hashForSchema.js","../../node_modules/@rjsf/utils/lib/hasWidget.js","../../node_modules/@rjsf/utils/lib/idGenerators.js","../../node_modules/@rjsf/utils/lib/labelValue.js","../../node_modules/@rjsf/utils/lib/localToUTC.js","../../node_modules/@rjsf/utils/lib/toConstant.js","../../node_modules/@rjsf/utils/lib/optionsList.js","../../node_modules/@rjsf/utils/lib/orderProperties.js","../../node_modules/@rjsf/utils/lib/pad.js","../../node_modules/@rjsf/utils/lib/parseDateString.js","../../node_modules/@rjsf/utils/lib/schemaRequiresTrueValue.js","../../node_modules/@rjsf/utils/lib/shouldRender.js","../../node_modules/@rjsf/utils/lib/toDateString.js","../../node_modules/@rjsf/utils/lib/toErrorList.js","../../node_modules/lodash/toPath.js","../../node_modules/@rjsf/utils/lib/toErrorSchema.js","../../node_modules/@rjsf/utils/lib/unwrapErrorHandler.js","../../node_modules/@rjsf/utils/lib/utcToLocal.js","../../node_modules/@rjsf/utils/lib/validationDataMerge.js","../../node_modules/@rjsf/utils/lib/withIdRefPrefix.js","../../node_modules/@rjsf/utils/lib/enums.js","../../node_modules/lodash/_basePickBy.js","../../node_modules/lodash/_basePick.js","../../node_modules/lodash/pick.js","../../node_modules/nanoid/index.browser.js","../../node_modules/@rjsf/core/lib/components/fields/ArrayField.js","../../node_modules/@rjsf/core/lib/components/fields/BooleanField.js","../../node_modules/@rjsf/core/lib/components/fields/MultiSchemaField.js","../../node_modules/@rjsf/core/lib/components/fields/NumberField.js","../../node_modules/markdown-to-jsx/dist/index.modern.js","../../node_modules/lodash/unset.js","../../node_modules/@rjsf/core/lib/components/fields/ObjectField.js","../../node_modules/@rjsf/core/lib/components/fields/SchemaField.js","../../node_modules/@rjsf/core/lib/components/fields/StringField.js","../../node_modules/@rjsf/core/lib/components/fields/NullField.js","../../node_modules/@rjsf/core/lib/components/fields/index.js","../../node_modules/@rjsf/core/lib/components/templates/ArrayFieldDescriptionTemplate.js","../../node_modules/@rjsf/core/lib/components/templates/ArrayFieldItemTemplate.js","../../node_modules/@rjsf/core/lib/components/templates/ArrayFieldTemplate.js","../../node_modules/@rjsf/core/lib/components/templates/ArrayFieldTitleTemplate.js","../../node_modules/@rjsf/core/lib/components/templates/BaseInputTemplate.js","../../node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/SubmitButton.js","../../node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/IconButton.js","../../node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/AddButton.js","../../node_modules/@rjsf/core/lib/components/templates/ButtonTemplates/index.js","../../node_modules/@rjsf/core/lib/components/templates/DescriptionField.js","../../node_modules/@rjsf/core/lib/components/templates/ErrorList.js","../../node_modules/@rjsf/core/lib/components/templates/FieldTemplate/Label.js","../../node_modules/@rjsf/core/lib/components/templates/FieldTemplate/FieldTemplate.js","../../node_modules/@rjsf/core/lib/components/templates/FieldErrorTemplate.js","../../node_modules/@rjsf/core/lib/components/templates/FieldHelpTemplate.js","../../node_modules/@rjsf/core/lib/components/templates/ObjectFieldTemplate.js","../../node_modules/@rjsf/core/lib/components/templates/TitleField.js","../../node_modules/@rjsf/core/lib/components/templates/UnsupportedField.js","../../node_modules/@rjsf/core/lib/components/templates/WrapIfAdditionalTemplate.js","../../node_modules/@rjsf/core/lib/components/templates/index.js","../../node_modules/@rjsf/core/lib/components/widgets/AltDateWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/AltDateTimeWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/CheckboxWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/CheckboxesWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/ColorWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/DateWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/DateTimeWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/EmailWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/FileWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/HiddenWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/PasswordWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/RadioWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/RangeWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/SelectWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/TextareaWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/TextWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/TimeWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/URLWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/UpDownWidget.js","../../node_modules/@rjsf/core/lib/components/widgets/index.js","../../node_modules/@rjsf/core/lib/getDefaultRegistry.js","../../node_modules/@rjsf/core/lib/components/Form.js","../../node_modules/@rjsf/core/lib/withTheme.js","../../node_modules/@rjsf/fluent-ui/lib/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js","../../node_modules/@rjsf/fluent-ui/lib/AddButton/AddButton.js","../../node_modules/@rjsf/fluent-ui/lib/ArrayFieldTemplate/ArrayFieldTemplate.js","../../node_modules/@rjsf/fluent-ui/lib/BaseInputTemplate/BaseInputTemplate.js","../../node_modules/@rjsf/fluent-ui/lib/DescriptionField/DescriptionField.js","../../node_modules/@rjsf/fluent-ui/lib/ErrorList/ErrorList.js","../../node_modules/@rjsf/fluent-ui/lib/IconButton/IconButton.js","../../node_modules/@rjsf/fluent-ui/lib/FieldErrorTemplate/FieldErrorTemplate.js","../../node_modules/@rjsf/fluent-ui/lib/FieldHelpTemplate/FieldHelpTemplate.js","../../node_modules/@rjsf/fluent-ui/lib/FieldTemplate/FieldTemplate.js","../../node_modules/@rjsf/fluent-ui/lib/ObjectFieldTemplate/ObjectFieldTemplate.js","../../node_modules/@rjsf/fluent-ui/lib/SubmitButton/SubmitButton.js","../../node_modules/@rjsf/fluent-ui/lib/TitleField/TitleField.js","../../node_modules/@rjsf/fluent-ui/lib/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js","../../node_modules/@rjsf/fluent-ui/lib/Templates/Templates.js","../../node_modules/@rjsf/fluent-ui/lib/CheckboxWidget/CheckboxWidget.js","../../node_modules/@rjsf/fluent-ui/lib/FluentLabel/FluentLabel.js","../../node_modules/@rjsf/fluent-ui/lib/CheckboxesWidget/CheckboxesWidget.js","../../node_modules/@rjsf/fluent-ui/lib/ColorWidget/ColorWidget.js","../../node_modules/@rjsf/fluent-ui/lib/DateWidget/DateWidget.js","../../node_modules/@rjsf/fluent-ui/lib/DateTimeWidget/DateTimeWidget.js","../../node_modules/@rjsf/fluent-ui/lib/RadioWidget/RadioWidget.js","../../node_modules/@rjsf/fluent-ui/lib/RangeWidget/RangeWidget.js","../../node_modules/@rjsf/fluent-ui/lib/SelectWidget/SelectWidget.js","../../node_modules/@rjsf/fluent-ui/lib/TextareaWidget/TextareaWidget.js","../../node_modules/@rjsf/fluent-ui/lib/UpDownWidget/UpDownWidget.js","../../node_modules/@rjsf/fluent-ui/lib/Widgets/Widgets.js","../../node_modules/@rjsf/fluent-ui/lib/Theme/Theme.js","../../node_modules/@rjsf/fluent-ui/lib/FuiForm/FuiForm.js","../../node_modules/@rjsf/fluent-ui/lib/index.js","../../node_modules/ajv/dist/vocabularies/core/id.js","../../node_modules/ajv/dist/vocabularies/core/index.js","../../node_modules/ajv/dist/vocabularies/validation/limitNumber.js","../../node_modules/ajv/dist/vocabularies/validation/index.js","../../node_modules/ajv/dist/vocabularies/metadata.js","../../node_modules/ajv/dist/vocabularies/draft7.js","../../node_modules/ajv/dist/ajv.js","../../node_modules/ajv-formats/dist/formats.js","../../node_modules/ajv-formats/dist/limit.js","../../node_modules/ajv-formats/dist/index.js","../../node_modules/@rjsf/validator-ajv8/lib/createAjvInstance.js","../../node_modules/@rjsf/validator-ajv8/lib/processRawValidationErrors.js","../../node_modules/@rjsf/validator-ajv8/lib/validator.js","../../node_modules/@rjsf/validator-ajv8/lib/customizeValidator.js","../../node_modules/@rjsf/validator-ajv8/lib/index.js"],"sourcesContent":["/*\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 v17.0.2\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'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @deprecated For backward compatibility, this forwards to isValidZone, better use `isValidZone()` directly instead.\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return this.isValidZone(s);\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n if (!zone) {\n return false;\n }\n try {\n new Intl.DateTimeFormat(\"en-US\", {\n timeZone: zone\n }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /**\n * The type of zone. `iana` for all instances of `IANAZone`.\n * @override\n * @type {string}\n */\n get type() {\n return \"iana\";\n }\n\n /**\n * The name of this zone (i.e. the IANA zone name).\n * @override\n * @type {string}\n */\n get name() {\n return this.zoneName;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year:\n * Always returns false for all IANA zones.\n * @override\n * @type {boolean}\n */\n get isUniversal() {\n return false;\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, {\n format,\n locale\n }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /**\n * Returns the offset's value as a string\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @override\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n const date = new Date(ts);\n if (isNaN(date)) return NaN;\n const dtf = makeDTF(this.name);\n let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date);\n if (adOrBc === \"BC\") {\n year = -Math.abs(year) + 1;\n }\n\n // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n const adjustedHour = hour === 24 ? 0 : hour;\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @override\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /**\n * Return whether this Zone is valid.\n * @override\n * @type {boolean}\n */\n get isValid() {\n return this.valid;\n }\n}\n\n// todo - remap caching\n\nlet intlLFCache = {};\nfunction getCachedLF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlLFCache[key];\n if (!dtf) {\n dtf = new Intl.ListFormat(locString, opts);\n intlLFCache[key] = dtf;\n }\n return dtf;\n}\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const {\n base,\n ...cacheKeyOpts\n } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else {\n sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale;\n return sysLocaleCache;\n }\n}\nlet weekInfoCache = {};\nfunction getCachedWeekInfo(locString) {\n let data = weekInfoCache[locString];\n if (!data) {\n const locale = new Intl.Locale(locString);\n // browsers currently implement this as a property, but spec says it should be a getter function\n data = \"getWeekInfo\" in locale ? locale.getWeekInfo() : locale.weekInfo;\n weekInfoCache[locString] = data;\n }\n return data;\n}\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n // private subtags and unicode subtags have ordering requirements,\n // and we're not properly parsing this, so just strip out the\n // private ones if they exist.\n const xIndex = localeStr.indexOf(\"-x-\");\n if (xIndex !== -1) {\n localeStr = localeStr.substring(0, xIndex);\n }\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n let selectedStr;\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n selectedStr = localeStr;\n } catch (e) {\n const smaller = localeStr.substring(0, uIndex);\n options = getCachedDTF(smaller).resolvedOptions();\n selectedStr = smaller;\n }\n const {\n numberingSystem,\n calendar\n } = options;\n return [selectedStr, numberingSystem, calendar];\n }\n}\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (outputCalendar || numberingSystem) {\n if (!localeStr.includes(\"-u-\")) {\n localeStr += \"-u\";\n }\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n}\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2009, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\nfunction listStuff(loc, length, englishFn, intlFn) {\n const mode = loc.listingMode();\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return loc.numberingSystem === \"latn\" || !loc.locale || loc.locale.startsWith(\"en\") || new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\";\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n const {\n padTo,\n floor,\n ...otherOpts\n } = opts;\n if (!forceSimple || Object.keys(otherOpts).length > 0) {\n const intlOpts = {\n useGrouping: false,\n ...opts\n };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.originalZone = undefined;\n let z = undefined;\n if (this.opts.timeZone) {\n // Don't apply any workarounds if a timeZone is explicitly provided in opts\n this.dt = dt;\n } else if (dt.zone.type === \"fixed\") {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n const gmtOffset = -1 * (dt.offset / 60);\n const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;\n if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so\n // we manually apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.offset === 0 ? dt : dt.setZone(\"UTC\").plus({\n minutes: dt.offset\n });\n this.originalZone = dt.zone;\n }\n } else if (dt.zone.type === \"system\") {\n this.dt = dt;\n } else if (dt.zone.type === \"iana\") {\n this.dt = dt;\n z = dt.zone.name;\n } else {\n // Custom zones can have any offset / offsetName so we just manually\n // apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.setZone(\"UTC\").plus({\n minutes: dt.offset\n });\n this.originalZone = dt.zone;\n }\n const intlOpts = {\n ...this.opts\n };\n intlOpts.timeZone = intlOpts.timeZone || z;\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n format() {\n if (this.originalZone) {\n // If we have to substitute in the actual zone name, we have to use\n // formatToParts so that the timezone can be replaced.\n return this.formatToParts().map(({\n value\n }) => value).join(\"\");\n }\n return this.dtf.format(this.dt.toJSDate());\n }\n formatToParts() {\n const parts = this.dtf.formatToParts(this.dt.toJSDate());\n if (this.originalZone) {\n return parts.map(part => {\n if (part.type === \"timeZoneName\") {\n const offsetName = this.originalZone.offsetName(this.dt.ts, {\n locale: this.dt.locale,\n format: this.opts.timeZoneName\n });\n return {\n ...part,\n value: offsetName\n };\n } else {\n return part;\n }\n });\n }\n return parts;\n }\n resolvedOptions() {\n return this.dtf.resolvedOptions();\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = {\n style: \"long\",\n ...opts\n };\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\nconst fallbackWeekSettings = {\n firstDay: 1,\n minimalDays: 4,\n weekend: [6, 7]\n};\n\n/**\n * @private\n */\n\nclass Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.weekSettings, opts.defaultToEN);\n }\n static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale;\n // the system locale is useful for human-readable strings but annoying for parsing/formatting known formats\n const localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale());\n const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem;\n const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings;\n return new Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale);\n }\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n static fromObject({\n locale,\n numberingSystem,\n outputCalendar,\n weekSettings\n } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar, weekSettings);\n }\n constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.weekSettings = weekSettings;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n this.weekdaysCache = {\n format: {},\n standalone: {}\n };\n this.monthsCache = {\n format: {},\n standalone: {}\n };\n this.meridiemCache = null;\n this.eraCache = {};\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n return this.fastNumbersCached;\n }\n listingMode() {\n const isActuallyEn = this.isEnglish();\n const hasNoWeirdness = (this.numberingSystem === null || this.numberingSystem === \"latn\") && (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n return isActuallyEn && hasNoWeirdness ? \"en\" : \"intl\";\n }\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(alts.locale || this.specifiedLocale, alts.numberingSystem || this.numberingSystem, alts.outputCalendar || this.outputCalendar, validateWeekSettings(alts.weekSettings) || this.weekSettings, alts.defaultToEN || false);\n }\n }\n redefaultToEN(alts = {}) {\n return this.clone({\n ...alts,\n defaultToEN: true\n });\n }\n redefaultToSystem(alts = {}) {\n return this.clone({\n ...alts,\n defaultToEN: false\n });\n }\n months(length, format = false) {\n return listStuff(this, length, months, () => {\n const intl = format ? {\n month: length,\n day: \"numeric\"\n } : {\n month: length\n },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n weekdays(length, format = false) {\n return listStuff(this, length, weekdays, () => {\n const intl = format ? {\n weekday: length,\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n } : {\n weekday: length\n },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt => this.extract(dt, intl, \"weekday\"));\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n meridiems() {\n return listStuff(this, undefined, () => meridiems, () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = {\n hour: \"numeric\",\n hourCycle: \"h12\"\n };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(dt => this.extract(dt, intl, \"dayperiod\"));\n }\n return this.meridiemCache;\n });\n }\n eras(length) {\n return listStuff(this, length, eras, () => {\n const intl = {\n era: length\n };\n\n // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt => this.extract(dt, intl, \"era\"));\n }\n return this.eraCache[length];\n });\n }\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n listFormatter(opts = {}) {\n return getCachedLF(this.intl, opts);\n }\n isEnglish() {\n return this.locale === \"en\" || this.locale.toLowerCase() === \"en-us\" || new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\");\n }\n getWeekSettings() {\n if (this.weekSettings) {\n return this.weekSettings;\n } else if (!hasLocaleWeekInfo()) {\n return fallbackWeekSettings;\n } else {\n return getCachedWeekInfo(this.locale);\n }\n }\n getStartOfWeek() {\n return this.getWeekSettings().firstDay;\n }\n getMinDaysInFirstWeek() {\n return this.getWeekSettings().minimalDays;\n }\n getWeekendDays() {\n return this.getWeekSettings().weekend;\n }\n equals(other) {\n return this.locale === other.locale && this.numberingSystem === other.numberingSystem && this.outputCalendar === other.outputCalendar;\n }\n toString() {\n return `Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`;\n }\n}\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nclass FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /**\n * The type of zone. `fixed` for all instances of `FixedOffsetZone`.\n * @override\n * @type {string}\n */\n get type() {\n return \"fixed\";\n }\n\n /**\n * The name of this zone.\n * All fixed zones' names always start with \"UTC\" (plus optional offset)\n * @override\n * @type {string}\n */\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /**\n * The IANA name of this zone, i.e. `Etc/UTC` or `Etc/GMT+/-nn`\n *\n * @override\n * @type {string}\n */\n get ianaName() {\n if (this.fixed === 0) {\n return \"Etc/UTC\";\n } else {\n return `Etc/GMT${formatOffset(-this.fixed, \"narrow\")}`;\n }\n }\n\n /**\n * Returns the offset's common name at the specified timestamp.\n *\n * For fixed offset zones this equals to the zone name.\n * @override\n */\n offsetName() {\n return this.name;\n }\n\n /**\n * Returns the offset's value as a string\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year:\n * Always returns true for all fixed offset zones.\n * @override\n * @type {boolean}\n */\n get isUniversal() {\n return true;\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n *\n * For fixed offset zones, this is constant and does not depend on a timestamp.\n * @override\n * @return {number}\n */\n offset() {\n return this.fixed;\n }\n\n /**\n * Return whether this Zone is equal to another zone (i.e. also fixed and same offset)\n * @override\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /**\n * Return whether this Zone is valid:\n * All fixed offset zones are valid.\n * @override\n * @type {boolean}\n */\n get isValid() {\n return true;\n }\n}\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nclass InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n\n/**\n * @private\n */\nfunction normalizeZone(input, defaultZone) {\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"default\") return defaultZone;else if (lowered === \"local\" || lowered === \"system\") return SystemZone.instance;else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && \"offset\" in input && typeof input.offset === \"function\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n\nconst numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\nfunction parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\n// cache of {numberingSystem: {append: regex}}\nlet digitRegexCache = {};\nfunction resetDigitRegexCache() {\n digitRegexCache = {};\n}\nfunction digitRegex({\n numberingSystem\n}, append = \"\") {\n const ns = numberingSystem || \"latn\";\n if (!digitRegexCache[ns]) {\n digitRegexCache[ns] = {};\n }\n if (!digitRegexCache[ns][append]) {\n digitRegexCache[ns][append] = new RegExp(`${numberingSystems[ns]}${append}`);\n }\n return digitRegexCache[ns][append];\n}\n\nlet now = () => Date.now(),\n defaultZone = \"system\",\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n twoDigitCutoffYear = 60,\n throwOnInvalid,\n defaultWeekSettings = null;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nclass Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * Use the value \"system\" to reset this value to the system's time zone.\n * @type {string}\n */\n static set defaultZone(zone) {\n defaultZone = zone;\n }\n\n /**\n * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n * The default value is the system's time zone (the one set on the machine that runs this code).\n * @type {Zone}\n */\n static get defaultZone() {\n return normalizeZone(defaultZone, SystemZone.instance);\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * @typedef {Object} WeekSettings\n * @property {number} firstDay\n * @property {number} minimalDays\n * @property {number[]} weekend\n */\n\n /**\n * @return {WeekSettings|null}\n */\n static get defaultWeekSettings() {\n return defaultWeekSettings;\n }\n\n /**\n * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and\n * how many days are required in the first week of a year.\n * Does not affect existing instances.\n *\n * @param {WeekSettings|null} weekSettings\n */\n static set defaultWeekSettings(weekSettings) {\n defaultWeekSettings = validateWeekSettings(weekSettings);\n }\n\n /**\n * Get the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n * @type {number}\n */\n static get twoDigitCutoffYear() {\n return twoDigitCutoffYear;\n }\n\n /**\n * Set the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n * @type {number}\n * @example Settings.twoDigitCutoffYear = 0 // all 'yy' are interpreted as 20th century\n * @example Settings.twoDigitCutoffYear = 99 // all 'yy' are interpreted as 21st century\n * @example Settings.twoDigitCutoffYear = 50 // '49' -> 2049; '50' -> 1950\n * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50\n * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50\n */\n static set twoDigitCutoffYear(cutoffYear) {\n twoDigitCutoffYear = cutoffYear % 100;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n DateTime.resetCache();\n resetDigitRegexCache();\n }\n}\n\nclass Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\"unit out of range\", `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`);\n}\nfunction dayOfWeek(year, month, day) {\n const d = new Date(Date.UTC(year, month - 1, day));\n if (year < 100 && year >= 0) {\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n const js = d.getUTCDay();\n return js === 0 ? 7 : js;\n}\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return {\n month: month0 + 1,\n day\n };\n}\nfunction isoWeekdayToLocal(isoWeekday, startOfWeek) {\n return (isoWeekday - startOfWeek + 7) % 7 + 1;\n}\n\n/**\n * @private\n */\n\nfunction gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const {\n year,\n month,\n day\n } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek);\n let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7),\n weekYear;\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek);\n } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n return {\n weekYear,\n weekNumber,\n weekday,\n ...timeObject(gregObj)\n };\n}\nfunction weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const {\n weekYear,\n weekNumber,\n weekday\n } = weekData,\n weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek),\n yearInDays = daysInYear(weekYear);\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek,\n year;\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n const {\n month,\n day\n } = uncomputeOrdinal(year, ordinal);\n return {\n year,\n month,\n day,\n ...timeObject(weekData)\n };\n}\nfunction gregorianToOrdinal(gregData) {\n const {\n year,\n month,\n day\n } = gregData;\n const ordinal = computeOrdinal(year, month, day);\n return {\n year,\n ordinal,\n ...timeObject(gregData)\n };\n}\nfunction ordinalToGregorian(ordinalData) {\n const {\n year,\n ordinal\n } = ordinalData;\n const {\n month,\n day\n } = uncomputeOrdinal(year, ordinal);\n return {\n year,\n month,\n day,\n ...timeObject(ordinalData)\n };\n}\n\n/**\n * Check if local week units like localWeekday are used in obj.\n * If so, validates that they are not mixed with ISO week units and then copies them to the normal week unit properties.\n * Modifies obj in-place!\n * @param obj the object values\n */\nfunction usesLocalWeekValues(obj, loc) {\n const hasLocaleWeekData = !isUndefined(obj.localWeekday) || !isUndefined(obj.localWeekNumber) || !isUndefined(obj.localWeekYear);\n if (hasLocaleWeekData) {\n const hasIsoWeekData = !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear);\n if (hasIsoWeekData) {\n throw new ConflictingSpecificationError(\"Cannot mix locale-based week fields with ISO-based week fields\");\n }\n if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday;\n if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber;\n if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear;\n delete obj.localWeekday;\n delete obj.localWeekNumber;\n delete obj.localWeekYear;\n return {\n minDaysInFirstWeek: loc.getMinDaysInFirstWeek(),\n startOfWeek: loc.getStartOfWeek()\n };\n } else {\n return {\n minDaysInFirstWeek: 4,\n startOfWeek: 1\n };\n }\n}\nfunction hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.weekNumber);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\nfunction hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\nfunction hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\nfunction hasInvalidTimeData(obj) {\n const {\n hour,\n minute,\n second,\n millisecond\n } = obj;\n const validHour = integerBetween(hour, 0, 23) || hour === 24 && minute === 0 && second === 0 && millisecond === 0,\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n\n/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\n/**\n * @private\n */\n\n// TYPES\n\nfunction isUndefined(o) {\n return typeof o === \"undefined\";\n}\nfunction isNumber(o) {\n return typeof o === \"number\";\n}\nfunction isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\nfunction isString(o) {\n return typeof o === \"string\";\n}\nfunction isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nfunction hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\nfunction hasLocaleWeekInfo() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.Locale && (\"weekInfo\" in Intl.Locale.prototype || \"getWeekInfo\" in Intl.Locale.prototype);\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nfunction maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\nfunction bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\nfunction pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\nfunction validateWeekSettings(settings) {\n if (settings == null) {\n return null;\n } else if (typeof settings !== \"object\") {\n throw new InvalidArgumentError(\"Week settings must be an object\");\n } else {\n if (!integerBetween(settings.firstDay, 1, 7) || !integerBetween(settings.minimalDays, 1, 7) || !Array.isArray(settings.weekend) || settings.weekend.some(v => !integerBetween(v, 1, 7))) {\n throw new InvalidArgumentError(\"Invalid week settings\");\n }\n return {\n firstDay: settings.firstDay,\n minimalDays: settings.minimalDays,\n weekend: Array.from(settings.weekend)\n };\n }\n}\n\n// NUMBERS AND STRINGS\n\nfunction integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nfunction floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\nfunction padStart(input, n = 2) {\n const isNeg = input < 0;\n let padded;\n if (isNeg) {\n padded = \"-\" + (\"\" + -input).padStart(n, \"0\");\n } else {\n padded = (\"\" + input).padStart(n, \"0\");\n }\n return padded;\n}\nfunction parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\nfunction parseFloating(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseFloat(string);\n }\n}\nfunction parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\nfunction roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nfunction isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\nfunction daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// convert a calendar object to a local timestamp (epoch, but with the offset baked in)\nfunction objToLocalTS(obj) {\n let d = Date.UTC(obj.year, obj.month - 1, obj.day, obj.hour, obj.minute, obj.second, obj.millisecond);\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not\n // so if obj.year is in 99, but obj.day makes it roll over into year 100,\n // the calculations done by Date.UTC are using year 2000 - which is incorrect\n d.setUTCFullYear(obj.year, obj.month - 1, obj.day);\n }\n return +d;\n}\n\n// adapted from moment.js: https://github.com/moment/moment/blob/000ac1800e620f770f4eb31b5ae908f6167b0ab2/src/lib/units/week-calendar-utils.js\nfunction firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) {\n const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek);\n return -fwdlw + minDaysInFirstWeek - 1;\n}\nfunction weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek);\n const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek);\n return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7;\n}\nfunction untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nfunction parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n const modified = {\n timeZoneName: offsetFormat,\n ...intlOpts\n };\n const parsed = new Intl.DateTimeFormat(locale, modified).formatToParts(date).find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n}\n\n// signedOffset('-5', '30') -> -330\nfunction signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nfunction asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue)) throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\nfunction normalizeObject(obj, normalizer) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\n/**\n * Returns the offset's value as a string\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\nfunction formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\nfunction timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\n/**\n * @private\n */\n\nconst monthsLong = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\nconst monthsShort = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nconst monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\nfunction months(length) {\n switch (length) {\n case \"narrow\":\n return [...monthsNarrow];\n case \"short\":\n return [...monthsShort];\n case \"long\":\n return [...monthsLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\nconst weekdaysLong = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"];\nconst weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\nconst weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\nfunction weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [...weekdaysNarrow];\n case \"short\":\n return [...weekdaysShort];\n case \"long\":\n return [...weekdaysLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\nconst meridiems = [\"AM\", \"PM\"];\nconst erasLong = [\"Before Christ\", \"Anno Domini\"];\nconst erasShort = [\"BC\", \"AD\"];\nconst erasNarrow = [\"B\", \"A\"];\nfunction eras(length) {\n switch (length) {\n case \"narrow\":\n return [...erasNarrow];\n case \"short\":\n return [...erasShort];\n case \"long\":\n return [...erasLong];\n default:\n return null;\n }\n}\nfunction meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\nfunction weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\nfunction monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\nfunction eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\nfunction formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow ? singular ? lilUnits[1] : lilUnits[2] || lilUnits[1] : singular ? units[unit][0] : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\nconst macroTokenToFormatOpts = {\n D: DATE_SHORT,\n DD: DATE_MED,\n DDD: DATE_FULL,\n DDDD: DATE_HUGE,\n t: TIME_SIMPLE,\n tt: TIME_WITH_SECONDS,\n ttt: TIME_WITH_SHORT_OFFSET,\n tttt: TIME_WITH_LONG_OFFSET,\n T: TIME_24_SIMPLE,\n TT: TIME_24_WITH_SECONDS,\n TTT: TIME_24_WITH_SHORT_OFFSET,\n TTTT: TIME_24_WITH_LONG_OFFSET,\n f: DATETIME_SHORT,\n ff: DATETIME_MED,\n fff: DATETIME_FULL,\n ffff: DATETIME_HUGE,\n F: DATETIME_SHORT_WITH_SECONDS,\n FF: DATETIME_MED_WITH_SECONDS,\n FFF: DATETIME_FULL_WITH_SECONDS,\n FFFF: DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nclass Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n static parseFormat(fmt) {\n // white-space is always considered a literal in user-provided formats\n // the \" \" token has a special meaning (see unitForToken)\n\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({\n literal: bracketed || /^\\s+$/.test(currentFull),\n val: currentFull\n });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({\n literal: /^\\s+$/.test(currentFull),\n val: currentFull\n });\n }\n currentFull = c;\n current = c;\n }\n }\n if (currentFull.length > 0) {\n splits.push({\n literal: bracketed || /^\\s+$/.test(currentFull),\n val: currentFull\n });\n }\n return splits;\n }\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, {\n ...this.opts,\n ...opts\n });\n return df.format();\n }\n dtFormatter(dt, opts = {}) {\n return this.loc.dtFormatter(dt, {\n ...this.opts,\n ...opts\n });\n }\n formatDateTime(dt, opts) {\n return this.dtFormatter(dt, opts).format();\n }\n formatDateTimeParts(dt, opts) {\n return this.dtFormatter(dt, opts).formatToParts();\n }\n formatInterval(interval, opts) {\n const df = this.dtFormatter(interval.start, opts);\n return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate());\n }\n resolvedOptions(dt, opts) {\n return this.dtFormatter(dt, opts).resolvedOptions();\n }\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n const opts = {\n ...this.opts\n };\n if (p > 0) {\n opts.padTo = p;\n }\n return this.loc.numberFormatter(opts).format(n);\n }\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\",\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () => knownEnglish ? meridiemForDateTime(dt) : string({\n hour: \"numeric\",\n hourCycle: \"h12\"\n }, \"dayperiod\"),\n month = (length, standalone) => knownEnglish ? monthForDateTime(dt, length) : string(standalone ? {\n month: length\n } : {\n month: length,\n day: \"numeric\"\n }, \"month\"),\n weekday = (length, standalone) => knownEnglish ? weekdayForDateTime(dt, length) : string(standalone ? {\n weekday: length\n } : {\n weekday: length,\n month: \"long\",\n day: \"numeric\"\n }, \"weekday\"),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length => knownEnglish ? eraForDateTime(dt, length) : string({\n era: length\n }, \"era\"),\n tokenToString = token => {\n // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // fractional seconds\n case \"uu\":\n return this.num(Math.floor(dt.millisecond / 10), 2);\n case \"uuu\":\n return this.num(Math.floor(dt.millisecond / 100));\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({\n format: \"narrow\",\n allowZ: this.opts.allowZ\n });\n case \"ZZ\":\n // like +06:00\n return formatOffset({\n format: \"short\",\n allowZ: this.opts.allowZ\n });\n case \"ZZZ\":\n // like +0600\n return formatOffset({\n format: \"techie\",\n allowZ: this.opts.allowZ\n });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, {\n format: \"short\",\n locale: this.loc.locale\n });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, {\n format: \"long\",\n locale: this.loc.locale\n });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({\n day: \"numeric\"\n }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({\n day: \"2-digit\"\n }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter ? string({\n month: \"numeric\",\n day: \"numeric\"\n }, \"month\") : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter ? string({\n month: \"2-digit\",\n day: \"numeric\"\n }, \"month\") : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter ? string({\n month: \"numeric\"\n }, \"month\") : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter ? string({\n month: \"2-digit\"\n }, \"month\") : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({\n year: \"numeric\"\n }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter ? string({\n year: \"2-digit\"\n }, \"year\") : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter ? string({\n year: \"numeric\"\n }, \"year\") : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter ? string({\n year: \"numeric\"\n }, \"year\") : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"n\":\n return this.num(dt.localWeekNumber);\n case \"nn\":\n return this.num(dt.localWeekNumber, 2);\n case \"ii\":\n return this.num(dt.localWeekYear.toString().slice(-2), 2);\n case \"iiii\":\n return this.num(dt.localWeekYear, 4);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"w\":\n return \"week\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce((found, {\n literal,\n val\n }) => literal ? found : found.concat(val), []),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nconst ianaRegex = /[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\nfunction combineExtractors(...extractors) {\n return m => extractors.reduce(([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [{\n ...mergedVals,\n ...val\n }, zone || mergedZone, next];\n }, [{}, null, 1]).slice(0, 2);\n}\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/;\nconst isoExtendedZone = `(?:${offsetRegex.source}?(?:\\\\[(${ianaRegex.source})\\\\])?)?`;\nconst isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/;\nconst isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`);\nconst isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`);\nconst isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/;\nconst isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/;\nconst isoOrdinalRegex = /(\\d{4})-?(\\d{3})/;\nconst extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\");\nconst extractISOOrdinalData = simpleParse(\"year\", \"ordinal\");\nconst sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/; // dumbed-down version of the ISO one\nconst sqlTimeRegex = RegExp(`${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`);\nconst sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n return [item, null, cursor + 3];\n}\nfunction extractISOTime(match, cursor) {\n const item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3])\n };\n return [item, null, cursor + 4];\n}\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nconst isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`);\n\n// ISO duration parsing\n\nconst isoDuration = /^-?P(?:(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)Y)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)W)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)D)?(?:T(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)H)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,20}))?S)?)?)$/;\nfunction extractISODuration(match) {\n const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] = match;\n const hasNegativePrefix = s[0] === \"-\";\n const negativeSeconds = secondStr && secondStr[0] === \"-\";\n const maybeNegate = (num, force = false) => num !== undefined && (force || num && hasNegativePrefix) ? -num : num;\n return [{\n years: maybeNegate(parseFloating(yearStr)),\n months: maybeNegate(parseFloating(monthStr)),\n weeks: maybeNegate(parseFloating(weekStr)),\n days: maybeNegate(parseFloating(dayStr)),\n hours: maybeNegate(parseFloating(hourStr)),\n minutes: maybeNegate(parseFloating(minuteStr)),\n seconds: maybeNegate(parseFloating(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds)\n }];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday = weekdayStr.length > 3 ? weekdaysLong.indexOf(weekdayStr) + 1 : weekdaysShort.indexOf(weekdayStr) + 1;\n }\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\nfunction extractRFC2822(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr, obsOffset, milOffset, offHourStr, offMinuteStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n return [result, new FixedOffsetZone(offset)];\n}\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^()]*\\)|[\\n\\t]/g, \" \").replace(/(\\s\\s+)/g, \" \").trim();\n}\n\n// http date\n\nconst rfc1123 = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 = /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\nconst extractISOYmdTimeAndOffset = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset, extractIANAZone);\nconst extractISOWeekTimeAndOffset = combineExtractors(extractISOWeekData, extractISOTime, extractISOOffset, extractIANAZone);\nconst extractISOOrdinalDateAndTime = combineExtractors(extractISOOrdinalData, extractISOTime, extractISOOffset, extractIANAZone);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone);\n\n/*\n * @private\n */\n\nfunction parseISODate(s) {\n return parse(s, [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset], [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime], [isoTimeCombinedRegex, extractISOTimeAndOffset]);\n}\nfunction parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\nfunction parseHTTPDate(s) {\n return parse(s, [rfc1123, extractRFC1123Or850], [rfc850, extractRFC1123Or850], [ascii, extractASCII]);\n}\nfunction parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\nconst extractISOTimeOnly = combineExtractors(extractISOTime);\nfunction parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone);\nfunction parseSQL(s) {\n return parse(s, [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]);\n}\n\nconst INVALID$2 = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: {\n minutes: 60,\n seconds: 60 * 60,\n milliseconds: 60 * 60 * 1000\n },\n minutes: {\n seconds: 60,\n milliseconds: 60 * 1000\n },\n seconds: {\n milliseconds: 1000\n }\n },\n casualMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n },\n ...lowOrderMatrix\n },\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: daysInYearAccurate * 24 / 4,\n minutes: daysInYearAccurate * 24 * 60 / 4,\n seconds: daysInYearAccurate * 24 * 60 * 60 / 4,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000 / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n },\n ...lowOrderMatrix\n };\n\n// units ordered by size\nconst orderedUnits$1 = [\"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\nconst reverseUnits = orderedUnits$1.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone$1(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : {\n ...dur.values,\n ...(alts.values || {})\n },\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,\n matrix: alts.matrix || dur.matrix\n };\n return new Duration(conf);\n}\nfunction durationToMillis(matrix, vals) {\n var _vals$milliseconds;\n let sum = (_vals$milliseconds = vals.milliseconds) != null ? _vals$milliseconds : 0;\n for (const unit of reverseUnits.slice(1)) {\n if (vals[unit]) {\n sum += vals[unit] * matrix[unit][\"milliseconds\"];\n }\n }\n return sum;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n // the logic below assumes the overall value of the duration is positive\n // if this is not the case, factor is used to make it so\n const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1;\n orderedUnits$1.reduceRight((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const previousVal = vals[previous] * factor;\n const conv = matrix[current][previous];\n\n // if (previousVal < 0):\n // lower order unit is negative (e.g. { years: 2, days: -2 })\n // normalize this by reducing the higher order unit by the appropriate amount\n // and increasing the lower order unit\n // this can never make the higher order unit negative, because this function only operates\n // on positive durations, so the amount of time represented by the lower order unit cannot\n // be larger than the higher order unit\n // else:\n // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 })\n // in this case we attempt to convert as much as possible from the lower order unit into\n // the higher order one\n //\n // Math.floor takes care of both of these cases, rounding away from 0\n // if previousVal < 0 it makes the absolute value larger\n // if previousVal >= it makes the absolute value smaller\n const rollUp = Math.floor(previousVal / conv);\n vals[current] += rollUp * factor;\n vals[previous] -= rollUp * conv * factor;\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n\n // try to convert any decimals into smaller units if possible\n // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 }\n orderedUnits$1.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const fraction = vals[previous] % 1;\n vals[previous] -= fraction;\n vals[current] += fraction * matrix[previous][current];\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n// Remove all properties with a value of 0 from an object\nfunction removeZeroes(vals) {\n const newVals = {};\n for (const [key, value] of Object.entries(vals)) {\n if (value !== 0) {\n newVals[key] = value;\n }\n }\n return newVals;\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.\n * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nclass Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n let matrix = accurate ? accurateMatrix : casualMatrix;\n if (config.matrix) {\n matrix = config.matrix;\n }\n\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = matrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject({\n milliseconds: count\n }, opts);\n }\n\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {Object} [opts=[]] - options for creating this Duration\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the custom conversion system to use\n * @return {Duration}\n */\n static fromObject(obj, opts = {}) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(`Duration.fromObject: argument expected to be an object, got ${obj === null ? \"null\" : typeof obj}`);\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit),\n loc: Locale.fromObject(opts),\n conversionAccuracy: opts.conversionAccuracy,\n matrix: opts.matrix\n });\n }\n\n /**\n * Create a Duration from DurationLike.\n *\n * @param {Object | number | Duration} durationLike\n * One of:\n * - object with keys like 'years' and 'hours'.\n * - number representing milliseconds\n * - Duration instance\n * @return {Duration}\n */\n static fromDurationLike(durationLike) {\n if (isNumber(durationLike)) {\n return Duration.fromMillis(durationLike);\n } else if (Duration.isDuration(durationLike)) {\n return durationLike;\n } else if (typeof durationLike === \"object\") {\n return Duration.fromObject(durationLike);\n } else {\n throw new InvalidArgumentError(`Unknown duration argument ${durationLike} of type ${typeof durationLike}`);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the preset conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */\n static fromISOTime(text, opts) {\n const [parsed] = parseISOTimeOnly(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({\n invalid\n });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n if (!normalized) throw new InvalidUnitError(unit);\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return o && o.isLuxonDuration || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `w` for weeks\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * Tokens can be escaped by wrapping with single quotes.\n * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = {\n ...opts,\n floor: opts.round !== false && opts.floor !== false\n };\n return this.isValid ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt) : INVALID$2;\n }\n\n /**\n * Returns a string representation of a Duration with all units included.\n * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options\n * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`.\n * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor.\n * @example\n * ```js\n * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 })\n * dur.toHuman() //=> '1 day, 5 hours, 6 minutes'\n * dur.toHuman({ listStyle: \"long\" }) //=> '1 day, 5 hours, and 6 minutes'\n * dur.toHuman({ unitDisplay: \"short\" }) //=> '1 day, 5 hr, 6 min'\n * ```\n */\n toHuman(opts = {}) {\n if (!this.isValid) return INVALID$2;\n const l = orderedUnits$1.map(unit => {\n const val = this.values[unit];\n if (isUndefined(val)) {\n return null;\n }\n return this.loc.numberFormatter({\n style: \"unit\",\n unitDisplay: \"long\",\n ...opts,\n unit: unit.slice(0, -1)\n }).format(val);\n }).filter(n => n);\n return this.loc.listFormatter({\n type: \"conjunction\",\n style: opts.listStyle || \"narrow\",\n ...opts\n }).format(l);\n }\n\n /**\n * Returns a JavaScript object with this Duration's values.\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject() {\n if (!this.isValid) return {};\n return {\n ...this.values\n };\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0) s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */\n toISOTime(opts = {}) {\n if (!this.isValid) return null;\n const millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n opts = {\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\",\n ...opts,\n includeOffset: false\n };\n const dateTime = DateTime.fromMillis(millis, {\n zone: \"UTC\"\n });\n return dateTime.toISOTime(opts);\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns a string representation of this Duration appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Duration { values: ${JSON.stringify(this.values)} }`;\n } else {\n return `Duration { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n toMillis() {\n if (!this.isValid) return NaN;\n return durationToMillis(this.matrix, this.values);\n }\n\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration),\n result = {};\n for (const k of orderedUnits$1) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n return clone$1(this, {\n values: result\n }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === \"hours\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone$1(this, {\n values: result\n }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n const mixed = {\n ...this.values,\n ...normalizeObject(values, Duration.normalizeUnit)\n };\n return clone$1(this, {\n values: mixed\n });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({\n locale,\n numberingSystem,\n conversionAccuracy,\n matrix\n } = {}) {\n const loc = this.loc.clone({\n locale,\n numberingSystem\n });\n const opts = {\n loc,\n matrix,\n conversionAccuracy\n };\n return clone$1(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * Assuming the overall value of the Duration is positive, this means:\n * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example)\n * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise\n * the overall value would be negative, see third example)\n * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example)\n *\n * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone$1(this, {\n values: vals\n }, true);\n }\n\n /**\n * Rescale units to its largest representation\n * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 }\n * @return {Duration}\n */\n rescale() {\n if (!this.isValid) return this;\n const vals = removeZeroes(this.normalize().shiftToAll().toObject());\n return clone$1(this, {\n values: vals\n }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n if (units.length === 0) {\n return this;\n }\n units = units.map(u => Duration.normalizeUnit(u));\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n for (const k of orderedUnits$1) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n // only keep the integer part for now in the hopes of putting any decimal part\n // into a smaller unit later\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = (own * 1000 - i * 1000) / 1000;\n\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] += key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n normalizeValues(this.matrix, built);\n return clone$1(this, {\n values: built\n }, true);\n }\n\n /**\n * Shift this Duration to all available units.\n * Same as shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\")\n * @return {Duration}\n */\n shiftToAll() {\n if (!this.isValid) return this;\n return this.shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\");\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = this.values[k] === 0 ? 0 : -this.values[k];\n }\n return clone$1(this, {\n values: negated\n }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n for (const u of orderedUnits$1) {\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n }\n}\n\nconst INVALID$1 = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\"end before start\", `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`);\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}.\n * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.\n * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}\n * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.\n */\nclass Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({\n invalid\n });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n const validateError = validateStartEnd(builtStart, builtEnd);\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `/`, `/`, and `/` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return o && o.isLuxonInterval || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime\n * @return {number}\n */\n count(unit = \"milliseconds\", opts) {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit, opts);\n let end;\n if (opts != null && opts.useLocaleWeeks) {\n end = this.end.reconfigure({\n locale: start.locale\n });\n } else {\n end = this.end;\n }\n end = end.startOf(unit, opts);\n return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf());\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({\n start,\n end\n } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...DateTime} dateTimes - the unit of time to count.\n * @return {Array}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes.map(friendlyDateTime).filter(d => this.contains(d)).sort((a, b) => a.toMillis() - b.toMillis()),\n results = [];\n let {\n s\n } = this,\n i = 0;\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {Array}\n */\n splitBy(duration) {\n const dur = Duration.fromDurationLike(duration);\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n let {\n s\n } = this,\n idx = 1,\n next;\n const results = [];\n while (s < this.e) {\n const added = this.start.plus(dur.mapUnits(x => x * idx));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {Array}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Returns true if this Interval fully contains the specified Interval, specifically if the intersect (of this Interval and the other Interval) is equal to the other Interval; false otherwise.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n }, [[], null]);\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{\n time: i.s,\n type: \"s\"\n }, {\n time: i.e,\n type: \"e\"\n }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n start = null;\n }\n }\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {Array}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals)).map(i => this.intersection(i)).filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID$1;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns a string representation of this Interval appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;\n } else {\n return `Interval { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns a localized string representing this Interval. Accepts the same options as the\n * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as\n * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method\n * is browser-specific, but in general it will return an appropriate representation of the\n * Interval in the assigned locale. Defaults to the system's locale if no locale has been\n * specified.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or\n * Intl.DateTimeFormat constructor options.\n * @param {Object} opts - Options to override the configuration of the start DateTime.\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p\n * @return {string}\n */\n toLocaleString(formatOpts = DATE_SHORT, opts = {}) {\n return this.isValid ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this) : INVALID$1;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format\n * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible\n * formatting tool.\n * @param {string} dateFormat - The format string. This string formats the start and end time.\n * See {@link DateTime#toFormat} for details.\n * @param {Object} opts - Options.\n * @param {string} [opts.separator = ' – '] - A separator to place between the start and end\n * representations.\n * @return {string}\n */\n toFormat(dateFormat, {\n separator = \" – \"\n } = {}) {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nclass Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.now().setZone(zone).set({\n month: 12\n });\n return !zone.isUniversal && proto.offset !== proto.set({\n month: 6\n }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone#isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Get the weekday on which the week starts according to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number} the start of the week, 1 for Monday through 7 for Sunday\n */\n static getStartOfWeek({\n locale = null,\n locObj = null\n } = {}) {\n return (locObj || Locale.create(locale)).getStartOfWeek();\n }\n\n /**\n * Get the minimum number of days necessary in a week before it is considered part of the next year according\n * to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number}\n */\n static getMinimumDaysInFirstWeek({\n locale = null,\n locObj = null\n } = {}) {\n return (locObj || Locale.create(locale)).getMinDaysInFirstWeek();\n }\n\n /**\n * Get the weekdays, which are considered the weekend according to the given locale\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday\n */\n static getWeekendWeekdays({\n locale = null,\n locObj = null\n } = {}) {\n // copy the array, because we cache it internally\n return (locObj || Locale.create(locale)).getWeekendDays().slice();\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {Array}\n */\n static months(length = \"long\", {\n locale = null,\n numberingSystem = null,\n locObj = null,\n outputCalendar = \"gregory\"\n } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link Info#months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {Array}\n */\n static monthsFormat(length = \"long\", {\n locale = null,\n numberingSystem = null,\n locObj = null,\n outputCalendar = \"gregory\"\n } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {Array}\n */\n static weekdays(length = \"long\", {\n locale = null,\n numberingSystem = null,\n locObj = null\n } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link Info#weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {Array}\n */\n static weekdaysFormat(length = \"long\", {\n locale = null,\n numberingSystem = null,\n locObj = null\n } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {Array}\n */\n static meridiems({\n locale = null\n } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {Array}\n */\n static eras(length = \"short\", {\n locale = null\n } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `relative`: whether this environment supports relative time formatting\n * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale\n * @example Info.features() //=> { relative: false, localeWeek: true }\n * @return {Object}\n */\n static features() {\n return {\n relative: hasRelative(),\n localeWeek: hasLocaleWeekInfo()\n };\n }\n}\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt => dt.toUTC(0, {\n keepLocalTime: true\n }).startOf(\"day\").valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [[\"years\", (a, b) => b.year - a.year], [\"quarters\", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4], [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12], [\"weeks\", (a, b) => {\n const days = dayDiff(a, b);\n return (days - days % 7) / 7;\n }], [\"days\", dayDiff]];\n const results = {};\n const earlier = cursor;\n let lowestOrder, highWater;\n\n /* This loop tries to diff using larger units first.\n If we overshoot, we backtrack and try the next smaller unit.\n \"cursor\" starts out at the earlier timestamp and moves closer and closer to \"later\"\n as we use smaller and smaller units.\n highWater keeps track of where we would be if we added one more of the smallest unit,\n this is used later to potentially convert any difference smaller than the smallest higher order unit\n into a fraction of that smallest higher order unit\n */\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n results[unit] = differ(cursor, later);\n highWater = earlier.plus(results);\n if (highWater > later) {\n // we overshot the end point, backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n\n // if we are still overshooting now, we need to backtrack again\n // this happens in certain situations when diffing times in different zones,\n // because this calculation ignores time zones\n if (cursor > later) {\n // keep the \"overshot by 1\" around as highWater\n highWater = cursor;\n // backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n }\n } else {\n cursor = highWater;\n }\n }\n }\n return [cursor, results, highWater, lowestOrder];\n}\nfunction diff (earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n const remainingMillis = later - cursor;\n const lowerOrderUnits = units.filter(u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0);\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({\n [lowestOrder]: 1\n });\n }\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n const duration = Duration.fromObject(results, opts);\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts).shiftTo(...lowerOrderUnits).plus(duration);\n } else {\n return duration;\n }\n}\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\nfunction intUnit(regex, post = i => i) {\n return {\n regex,\n deser: ([s]) => post(parseDigits(s))\n };\n}\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `[ ${NBSP}]`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\nfunction stripInsensitivities(s) {\n return s.replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) => strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\nfunction offset(regex, groups) {\n return {\n regex,\n deser: ([, h, m]) => signedOffset(h, m),\n groups\n };\n}\nfunction simple(regex) {\n return {\n regex,\n deser: ([s]) => s\n };\n}\nfunction escapeToken(value) {\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\n/**\n * @param token\n * @param {Locale} loc\n */\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({\n regex: RegExp(escapeToken(t.val)),\n deser: ([s]) => s,\n literal: true\n }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\"), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\"), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n case \"uu\":\n return simple(oneOrTwo);\n case \"uuu\":\n return intUnit(one);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n // this special-case \"token\" represents a place where a macro-token expanded into a white-space literal\n // in this case we accept any non-newline white-space\n case \" \":\n return simple(/[^\\S\\n\\r]/);\n default:\n return literal(t);\n }\n };\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n unit.token = token;\n return unit;\n}\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour12: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n hour24: {\n numeric: \"H\",\n \"2-digit\": \"HH\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n },\n timeZoneName: {\n long: \"ZZZZZ\",\n short: \"ZZZ\"\n }\n};\nfunction tokenForPart(part, formatOpts, resolvedOpts) {\n const {\n type,\n value\n } = part;\n if (type === \"literal\") {\n const isSpace = /^\\s+$/.test(value);\n return {\n literal: !isSpace,\n val: isSpace ? \" \" : value\n };\n }\n const style = formatOpts[type];\n\n // The user might have explicitly specified hour12 or hourCycle\n // if so, respect their decision\n // if not, refer back to the resolvedOpts, which are based on the locale\n let actualType = type;\n if (type === \"hour\") {\n if (formatOpts.hour12 != null) {\n actualType = formatOpts.hour12 ? \"hour12\" : \"hour24\";\n } else if (formatOpts.hourCycle != null) {\n if (formatOpts.hourCycle === \"h11\" || formatOpts.hourCycle === \"h12\") {\n actualType = \"hour12\";\n } else {\n actualType = \"hour24\";\n }\n } else {\n // tokens only differentiate between 24 hours or not,\n // so we do not need to check hourCycle here, which is less supported anyways\n actualType = resolvedOpts.hour12 ? \"hour12\" : \"hour24\";\n }\n }\n let val = partTypeStyleToTokenVal[actualType];\n if (typeof val === \"object\") {\n val = val[style];\n }\n if (val) {\n return {\n literal: false,\n val\n };\n }\n return undefined;\n}\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n let zone = null;\n let specificOffset;\n if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n }\n if (!isUndefined(matches.Z)) {\n if (!zone) {\n zone = new FixedOffsetZone(matches.Z);\n }\n specificOffset = matches.Z;\n }\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n return r;\n }, {});\n return [vals, zone, specificOffset];\n}\nlet dummyDateTimeCache = null;\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n return dummyDateTimeCache;\n}\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n const tokens = formatOptsToTokens(formatOpts, locale);\n if (tokens == null || tokens.includes(undefined)) {\n return token;\n }\n return tokens;\n}\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nclass TokenParser {\n constructor(locale, format) {\n this.locale = locale;\n this.format = format;\n this.tokens = expandMacroTokens(Formatter.parseFormat(format), locale);\n this.units = this.tokens.map(t => unitForToken(t, locale));\n this.disqualifyingUnit = this.units.find(t => t.invalidReason);\n if (!this.disqualifyingUnit) {\n const [regexString, handlers] = buildRegex(this.units);\n this.regex = RegExp(regexString, \"i\");\n this.handlers = handlers;\n }\n }\n explainFromTokens(input) {\n if (!this.isValid) {\n return {\n input,\n tokens: this.tokens,\n invalidReason: this.invalidReason\n };\n } else {\n const [rawMatches, matches] = match(input, this.regex, this.handlers),\n [result, zone, specificOffset] = matches ? dateTimeFromMatches(matches) : [null, null, undefined];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\"Can't include meridiem when specifying 24-hour format\");\n }\n return {\n input,\n tokens: this.tokens,\n regex: this.regex,\n rawMatches,\n matches,\n result,\n zone,\n specificOffset\n };\n }\n }\n get isValid() {\n return !this.disqualifyingUnit;\n }\n get invalidReason() {\n return this.disqualifyingUnit ? this.disqualifyingUnit.invalidReason : null;\n }\n}\nfunction explainFromTokens(locale, input, format) {\n const parser = new TokenParser(locale, format);\n return parser.explainFromTokens(input);\n}\nfunction parseFromTokens(locale, input, format) {\n const {\n result,\n zone,\n specificOffset,\n invalidReason\n } = explainFromTokens(locale, input, format);\n return [result, zone, specificOffset, invalidReason];\n}\nfunction formatOptsToTokens(formatOpts, locale) {\n if (!formatOpts) {\n return null;\n }\n const formatter = Formatter.create(locale, formatOpts);\n const df = formatter.dtFormatter(getDummyDateTime());\n const parts = df.formatToParts();\n const resolvedOpts = df.resolvedOptions();\n return parts.map(p => tokenForPart(p, formatOpts, resolvedOpts));\n}\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedLocalWeekData(dt) {\n if (dt.localWeekData === null) {\n dt.localWeekData = gregorianToWeek(dt.c, dt.loc.getMinDaysInFirstWeek(), dt.loc.getStartOfWeek());\n }\n return dt.localWeekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime({\n ...current,\n ...alts,\n old: current\n });\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n const d = new Date(ts);\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = {\n ...inst.c,\n year,\n month,\n day: Math.min(inst.c.day, daysInMonth(year, month)) + Math.trunc(dur.days) + Math.trunc(dur.weeks) * 7\n },\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n return {\n ts,\n o\n };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {\n const {\n setZone,\n zone\n } = opts;\n if (parsed && Object.keys(parsed).length !== 0 || parsedZone) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(parsed, {\n ...opts,\n zone: interpretationZone,\n specificOffset\n });\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`));\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format) : null;\n}\nfunction toISODate(o, extended) {\n const longFormat = o.c.year > 9999 || o.c.year < 0;\n let c = \"\";\n if (longFormat && o.c.year >= 0) c += \"+\";\n c += padStart(o.c.year, longFormat ? 6 : 4);\n if (extended) {\n c += \"-\";\n c += padStart(o.c.month);\n c += \"-\";\n c += padStart(o.c.day);\n } else {\n c += padStart(o.c.month);\n c += padStart(o.c.day);\n }\n return c;\n}\nfunction toISOTime(o, extended, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone) {\n let c = padStart(o.c.hour);\n if (extended) {\n c += \":\";\n c += padStart(o.c.minute);\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += \":\";\n }\n } else {\n c += padStart(o.c.minute);\n }\n if (o.c.millisecond !== 0 || o.c.second !== 0 || !suppressSeconds) {\n c += padStart(o.c.second);\n if (o.c.millisecond !== 0 || !suppressMilliseconds) {\n c += \".\";\n c += padStart(o.c.millisecond, 3);\n }\n }\n if (includeOffset) {\n if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {\n c += \"Z\";\n } else if (o.o < 0) {\n c += \"-\";\n c += padStart(Math.trunc(-o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(-o.o % 60));\n } else {\n c += \"+\";\n c += padStart(Math.trunc(o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(o.o % 60));\n }\n }\n if (extendedZone) {\n c += \"[\" + o.zone.ianaName + \"]\";\n }\n return c;\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\"weekYear\", \"weekNumber\", \"weekday\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n if (!normalized) throw new InvalidUnitError(unit);\n return normalized;\n}\nfunction normalizeUnitWithLocalWeeks(unit) {\n switch (unit.toLowerCase()) {\n case \"localweekday\":\n case \"localweekdays\":\n return \"localWeekday\";\n case \"localweeknumber\":\n case \"localweeknumbers\":\n return \"localWeekNumber\";\n case \"localweekyear\":\n case \"localweekyears\":\n return \"localWeekYear\";\n default:\n return normalizeUnit(unit);\n }\n}\n\n// cache offsets for zones based on the current timestamp when this function is\n// first called. When we are handling a datetime from components like (year,\n// month, day, hour) in a time zone, we need a guess about what the timezone\n// offset is so that we can convert into a UTC timestamp. One way is to find the\n// offset of now in the zone. The actual date may have a different offset (for\n// example, if we handle a date in June while we're in December in a zone that\n// observes DST), but we can check and adjust that.\n//\n// When handling many dates, calculating the offset for now every time is\n// expensive. It's just a guess, so we can cache the offset to use even if we\n// are right on a time change boundary (we'll just correct in the other\n// direction). Using a timestamp from first read is a slight optimization for\n// handling dates close to the current date, since those dates will usually be\n// in the same offset (we could set the timestamp statically, instead). We use a\n// single timestamp for all zones to make things a bit more predictable.\n//\n// This is safe for quickDT (used by local() and utc()) because we don't fill in\n// higher-order units from tsNow (as we do in fromObject, this requires that\n// offset is calculated from tsNow).\nfunction guessOffsetForZone(zone) {\n if (!zoneOffsetGuessCache[zone]) {\n if (zoneOffsetTs === undefined) {\n zoneOffsetTs = Settings.now();\n }\n zoneOffsetGuessCache[zone] = zone.offset(zoneOffsetTs);\n }\n return zoneOffsetGuessCache[zone];\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, opts) {\n const zone = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n }\n const loc = Locale.fromObject(opts);\n let ts, o;\n\n // assume we have the higher-order units\n if (!isUndefined(obj.year)) {\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n const offsetProvis = guessOffsetForZone(zone);\n [ts, o] = objToTS(obj, offsetProvis, zone);\n } else {\n ts = Settings.now();\n }\n return new DateTime({\n ts,\n zone,\n loc,\n o\n });\n}\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\nfunction lastOpts(argList) {\n let opts = {},\n args;\n if (argList.length > 0 && typeof argList[argList.length - 1] === \"object\") {\n opts = argList[argList.length - 1];\n args = Array.from(argList).slice(0, argList.length - 1);\n } else {\n args = Array.from(argList);\n }\n return [opts, args];\n}\n\n/**\n * Timestamp to use for cached zone offset guesses (exposed for test)\n */\nlet zoneOffsetTs;\n/**\n * Cache for zone offset guesses (exposed for test).\n *\n * This optimizes quickDT via guessOffsetForZone to avoid repeated calls of\n * zone.offset().\n */\nlet zoneOffsetGuessCache = {};\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},\n * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.\n * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nclass DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n let invalid = config.invalid || (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) || (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n // If an offset has been passed and we have not been called from\n // clone(), we can trust it and avoid the offset calculation.\n const ot = isNumber(config.o) && !config.old ? config.o : zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.localWeekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n static now() {\n return new DateTime({});\n }\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local({ zone: \"America/New_York\" }) //~> now, in US east coast time\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12, { locale: \"fr\" }) //~> 2017-03-12T00:00:00, with a French locale\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, { zone: \"utc\" }) //~> 2017-03-12T05:00:00, in UTC\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n return quickDT({\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n }, opts);\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @param {Object} options - configuration options for the DateTime\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @param {string} [options.weekSettings] - the week settings to set on the resulting DateTime instance\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: \"fr\" }) //~> 2017-03-12T05:45:00Z with a French locale\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: \"fr\" }) //~> 2017-03-12T05:45:10.765Z with a French locale\n * @return {DateTime}\n */\n static utc() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n opts.zone = FixedOffsetZone.utcInstance;\n return quickDT({\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n }, opts);\n }\n\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(`fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`);\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.localWeekYear - a week year, according to the locale\n * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale\n * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {Object} opts - options for creating this DateTime\n * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [opts.locale='system\\'s locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: \"en-US\" }).toISODate() //=> '2021-12-26'\n * @return {DateTime}\n */\n static fromObject(obj, opts = {}) {\n obj = obj || {};\n const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n const loc = Locale.fromObject(opts);\n const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks);\n const {\n minDaysInFirstWeek,\n startOfWeek\n } = usesLocalWeekValues(normalized, loc);\n const tsNow = Settings.now(),\n offsetProvis = !isUndefined(opts.specificOffset) ? opts.specificOffset : zoneToUse.offset(tsNow),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\"Can't mix weekYear/weekNumber units with year/month/day or ordinals\");\n }\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n const useWeekData = definiteWeekDef || normalized.weekday && !containsGregor;\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek) : containsOrdinal ? hasInvalidOrdinalData(normalized) : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek) : containsOrdinal ? ordinalToGregorian(normalized) : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\"mismatched weekday\", `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`);\n }\n if (!inst.isValid) {\n return DateTime.invalid(inst.invalid);\n }\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @param {string} [opts.weekSettings] - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens).\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n const {\n locale = null,\n numberingSystem = null\n } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent.\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({\n invalid\n });\n }\n }\n\n /**\n * Check if an object is an instance of DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return o && o.isLuxonDateTime || false;\n }\n\n /**\n * Produce the format string for a set of options\n * @param formatOpts\n * @param localeOpts\n * @returns {string}\n */\n static parseFormatForOpts(formatOpts, localeOpts = {}) {\n const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts));\n return !tokenList ? null : tokenList.map(t => t ? t.val : null).join(\"\");\n }\n\n /**\n * Produce the the fully expanded format token for the locale\n * Does NOT quote characters, so quoted tokens will not round trip correctly\n * @param fmt\n * @param localeOpts\n * @returns {string}\n */\n static expandFormat(fmt, localeOpts = {}) {\n const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts));\n return expanded.map(t => t.val).join(\"\");\n }\n static resetCache() {\n zoneOffsetTs = undefined;\n zoneOffsetGuessCache = {};\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Returns true if this date is on a weekend according to the locale, false otherwise\n * @returns {boolean}\n */\n get isWeekend() {\n return this.isValid && this.loc.getWeekendDays().includes(this.weekday);\n }\n\n /**\n * Get the day of the week according to the locale.\n * 1 is the first day of the week and 7 is the last day of the week.\n * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1,\n * @returns {number}\n */\n get localWeekday() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the week number of the week year according to the locale. Different locales assign week numbers differently,\n * because the week can start on different days of the week (see localWeekday) and because a different number of days\n * is required for a week to count as the first week of a year.\n * @returns {number}\n */\n get localWeekNumber() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the week year according to the locale. Different locales assign week numbers (and therefor week years)\n * differently, see localWeekNumber.\n * @returns {number}\n */\n get localWeekYear() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", {\n locObj: this.loc\n })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", {\n locObj: this.loc\n })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", {\n locObj: this.loc\n })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", {\n locObj: this.loc\n })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.isUniversal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return this.offset > this.set({\n month: 1,\n day: 1\n }).offset || this.offset > this.set({\n month: 5\n }).offset;\n }\n }\n\n /**\n * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC\n * in this DateTime's zone. During DST changes local time can be ambiguous, for example\n * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`.\n * This method will return both possible DateTimes if this DateTime's local time is ambiguous.\n * @returns {DateTime[]}\n */\n getPossibleOffsets() {\n if (!this.isValid || this.isOffsetFixed) {\n return [this];\n }\n const dayMs = 86400000;\n const minuteMs = 60000;\n const localTS = objToLocalTS(this.c);\n const oEarlier = this.zone.offset(localTS - dayMs);\n const oLater = this.zone.offset(localTS + dayMs);\n const o1 = this.zone.offset(localTS - oEarlier * minuteMs);\n const o2 = this.zone.offset(localTS - oLater * minuteMs);\n if (o1 === o2) {\n return [this];\n }\n const ts1 = localTS - o1 * minuteMs;\n const ts2 = localTS - o2 * minuteMs;\n const c1 = tsToObj(ts1, o1);\n const c2 = tsToObj(ts2, o2);\n if (c1.hour === c2.hour && c1.minute === c2.minute && c1.second === c2.second && c1.millisecond === c2.millisecond) {\n return [clone(this, {\n ts: ts1\n }), clone(this, {\n ts: ts2\n })];\n }\n return [this];\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's local week year\n * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52\n * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53\n * @type {number}\n */\n get weeksInLocalWeekYear() {\n return this.isValid ? weeksInWeekYear(this.localWeekYear, this.loc.getMinDaysInFirstWeek(), this.loc.getStartOfWeek()) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOptions(opts = {}) {\n const {\n locale,\n numberingSystem,\n calendar\n } = Formatter.create(this.loc.clone(opts), opts).resolvedOptions(this);\n return {\n locale,\n numberingSystem,\n outputCalendar: calendar\n };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link DateTime#setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, {\n keepLocalTime = false,\n keepCalendarTime = false\n } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, {\n ts: newTS,\n zone\n });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({\n locale,\n numberingSystem,\n outputCalendar\n } = {}) {\n const loc = this.loc.clone({\n locale,\n numberingSystem,\n outputCalendar\n });\n return clone(this, {\n loc\n });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({\n locale\n });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}.\n *\n * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`.\n * They cannot be mixed with ISO-week units like `weekday`.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks);\n const {\n minDaysInFirstWeek,\n startOfWeek\n } = usesLocalWeekValues(normalized, this.loc);\n const settingWeekStuff = !isUndefined(normalized.weekYear) || !isUndefined(normalized.weekNumber) || !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\"Can't mix weekYear/weekNumber units with year/month/day or ordinals\");\n }\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian({\n ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek),\n ...normalized\n }, minDaysInFirstWeek, startOfWeek);\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian({\n ...gregorianToOrdinal(this.c),\n ...normalized\n });\n } else {\n mixed = {\n ...this.toObject(),\n ...normalized\n };\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, {\n ts,\n o\n });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link DateTime#plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit, {\n useLocaleWeeks = false\n } = {}) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n if (useLocaleWeeks) {\n const startOfWeek = this.loc.getStartOfWeek();\n const {\n weekday\n } = this;\n if (weekday < startOfWeek) {\n o.weekNumber = this.weekNumber - 1;\n }\n o.weekday = startOfWeek;\n } else {\n o.weekday = 1;\n }\n }\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit, opts) {\n return this.isValid ? this.plus({\n [unit]: 1\n }).startOf(unit, opts).minus(1) : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt) : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 août 2022'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(formatOpts = DATE_SHORT, opts = {}) {\n return this.isValid ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this) : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this) : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=false] - add the time zone format extension\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO({\n format = \"extended\",\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset = true,\n extendedZone = false\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n const ext = format === \"extended\";\n let c = toISODate(this, ext);\n c += \"T\";\n c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);\n return c;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({\n format = \"extended\"\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, format === \"extended\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n includePrefix = false,\n extendedZone = false,\n format = \"extended\"\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n let c = includePrefix ? \"T\" : \"\";\n return c + toISOTime(this, format === \"extended\", suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({\n includeOffset = true,\n includeZone = false,\n includeOffsetSpace = true\n } = {}) {\n let fmt = \"HH:mm:ss.SSS\";\n if (includeZone || includeOffset) {\n if (includeOffsetSpace) {\n fmt += \" \";\n }\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += \"ZZ\";\n }\n }\n return toTechFormat(this, fmt, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;\n } else {\n return `DateTime { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns the epoch seconds (as a whole number) of this DateTime.\n * @return {number}\n */\n toUnixInteger() {\n return this.isValid ? Math.floor(this.ts / 1000) : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n const base = {\n ...this.c\n };\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\"created by diffing an invalid DateTime\");\n }\n const durOpts = {\n locale: this.locale,\n numberingSystem: this.numberingSystem,\n ...opts\n };\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link DateTime#diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.now(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit, opts) {\n if (!this.isValid) return false;\n const inputMs = otherDateTime.valueOf();\n const adjustedToZone = this.setZone(otherDateTime.zone, {\n keepLocalTime: true\n });\n return adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts);\n }\n\n /**\n * Equality check\n * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return this.isValid && other.isValid && this.valueOf() === other.valueOf() && this.zone.equals(other.zone) && this.loc.equals(other.loc);\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({}, {\n zone: this.zone\n }),\n padding = options.padding ? this < base ? -options.padding : options.padding : 0;\n let units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n let unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(base, this.plus(padding), {\n ...options,\n numeric: \"always\",\n units,\n unit\n });\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n return diffRelative(options.base || DateTime.fromObject({}, {\n zone: this.zone\n }), this, {\n ...options,\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n });\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const {\n locale = null,\n numberingSystem = null\n } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n /**\n * Build a parser for `fmt` using the given locale. This parser can be passed\n * to {@link DateTime.fromFormatParser} to a parse a date in this format. This\n * can be used to optimize cases where many dates need to be parsed in a\n * specific format.\n *\n * @param {String} fmt - the format the string is expected to be in (see\n * description)\n * @param {Object} options - options used to set locale and numberingSystem\n * for parser\n * @returns {TokenParser} - opaque object to be used\n */\n static buildFormatParser(fmt, options = {}) {\n const {\n locale = null,\n numberingSystem = null\n } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return new TokenParser(localeToUse, fmt);\n }\n\n /**\n * Create a DateTime from an input string and format parser.\n *\n * The format parser must have been created with the same locale as this call.\n *\n * @param {String} text - the string to parse\n * @param {TokenParser} formatParser - parser from {@link DateTime.buildFormatParser}\n * @param {Object} opts - options taken by fromFormat()\n * @returns {DateTime}\n */\n static fromFormatParser(text, formatParser, opts = {}) {\n if (isUndefined(text) || isUndefined(formatParser)) {\n throw new InvalidArgumentError(\"fromFormatParser requires an input string and a format parser\");\n }\n const {\n locale = null,\n numberingSystem = null\n } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n if (!localeToUse.equals(formatParser.locale)) {\n throw new InvalidArgumentError(`fromFormatParser called with a locale of ${localeToUse}, ` + `but the format parser was created for ${formatParser.locale}`);\n }\n const {\n result,\n zone,\n specificOffset,\n invalidReason\n } = formatParser.explainFromTokens(text);\n if (invalidReason) {\n return DateTime.invalid(invalidReason);\n } else {\n return parseDataToDateTime(result, zone, opts, `format ${formatParser.format}`, text, specificOffset);\n }\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link DateTime#toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return DATE_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return DATE_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return DATE_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return DATE_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return TIME_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return TIME_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return TIME_24_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return DATETIME_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return DATETIME_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return DATETIME_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return DATETIME_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nfunction friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(`Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`);\n }\n}\n\nconst VERSION = \"3.5.0\";\n\nexports.DateTime = DateTime;\nexports.Duration = Duration;\nexports.FixedOffsetZone = FixedOffsetZone;\nexports.IANAZone = IANAZone;\nexports.Info = Info;\nexports.Interval = Interval;\nexports.InvalidZone = InvalidZone;\nexports.Settings = Settings;\nexports.SystemZone = SystemZone;\nexports.VERSION = VERSION;\nexports.Zone = Zone;\n//# sourceMappingURL=luxon.js.map\n","\"use strict\";var t=require(\"luxon\");exports.DateSettings=class{static get now(){return t.Settings.now}static set now(e){t.Settings.now=e}static get defaultZone(){return t.Settings.defaultZone}static set defaultZone(e){t.Settings.defaultZone=e}static get defaultLocale(){return t.Settings.defaultLocale}static set defaultLocale(e){t.Settings.defaultLocale=e}static get systemTimeZone(){return Intl.DateTimeFormat().resolvedOptions().timeZone}};\n//# sourceMappingURL=DateSettings.js.map\n","\"use strict\";var e;exports.MonthYearRecurrence=void 0,(e=exports.MonthYearRecurrence||(exports.MonthYearRecurrence={}))[e.MonthDay=1]=\"MonthDay\",e[e.DayOfWeek=2]=\"DayOfWeek\",e[e.LastDayOfWeek=3]=\"LastDayOfWeek\";\n//# sourceMappingURL=recurrence.enum.js.map\n","\"use strict\";var a;exports.DaysOfWeek=void 0,(a=exports.DaysOfWeek||(exports.DaysOfWeek={}))[a.Sunday=0]=\"Sunday\",a[a.Monday=1]=\"Monday\",a[a.Tuesday=2]=\"Tuesday\",a[a.Wednesday=3]=\"Wednesday\",a[a.Thursday=4]=\"Thursday\",a[a.Friday=5]=\"Friday\",a[a.Saturday=6]=\"Saturday\";\n//# sourceMappingURL=week-days.enum.js.map\n","\"use strict\";var e=require(\"./week-days.enum.js\");const a=[e.DaysOfWeek.Monday,e.DaysOfWeek.Tuesday,e.DaysOfWeek.Wednesday,e.DaysOfWeek.Thursday,e.DaysOfWeek.Friday,e.DaysOfWeek.Saturday,e.DaysOfWeek.Sunday];exports.ALL_DAYS_OF_WEEK=a,exports.MAXIMUM_DATE_MILLISECOND=864e13;\n//# sourceMappingURL=date-time.constants.js.map\n","\"use strict\";const _=\"dd LLLL yyyy\",T=\"dd/LL/yyyy\",L=\"d LLL yyyy\",A=\"h:mm a\",y=\"hh:mm a\",E=\"HH:mm\",M=\"HH:mm:ss\",O={DAY_DEFAULT_FORMAT:T,DAY_TEXT_MONTH_YEAR_SHORT:L,DAY_TEXT_MONTH_YEAR:_,ISO_DATE:\"yyyy-LL-dd\",SHORT_YEAR_FORMAT:\"dd/LL/yy\",DAY_FORMAT_DD_L_YY:\"dd/L/yy\",DAY_FORMAT_D_L_YY:\"d/L/yy\",DAY_FORMAT_D_LL_YY:\"d/LL/yy\",DAY_FORMAT_DD_L_YYYY:\"dd/L/yyyy\",DAY_FORMAT_D_L_YYYY:\"d/L/yyyy\",DAY_FORMAT_D_LL_YYYY:\"d/LL/yyyy\",DAY_FORMAT_YY_LL_DD:\"yy-LL-dd\",TIME_FORMAT_24:E},D={DEFAULT_TIME_FORMAT:A,LONG_TIME_FORMAT:\"h:mm:ss a\",TIME_FORMAT_24:E,TIME_FORMAT_WITH_SECONDS:M,TIME_FORMAT_WITH_MIDDAY_FULL:y,TIME_FORMAT_H_MM:\"H:mm\",TIME_FORMAT_H_MM_SS:\"H:mm:ss\",TIME_FORMAT_H_M_S_A:\"h:m:s a\",TIME_FORMAT_HH_MM:\"hh mm\",TIME_FORMAT_HH_MM_SS:\"hh mm ss\",TIME_FORMAT_HH:\"hh\"},d={YEAR_MONTH_FORMAT:\"yyyy-LL\",YEAR_FORMAT:\"yyyy\",MONTH_TEXT_FORMAT:\"LLLL yyyy\",DAY_DEFAULT_FORMAT:T,DAY_TEXT_MONTH_YEAR_SHORT:L,DAY_FORMAT_WITH_SHORT_DAY_OF_WEEK:\"ccc, dd/LL/yyyy\",FULL_DATE_WEEKDAY_SHORT_MONTH_AHEAD:\"ccc, LL/dd/yyyy\",DAY_TEXT_MONTH_YEAR_SHORT_ALIGN:\"dd LLL yyyy\",HL7_RESPONSE_DATE_FORMAT:\"yyyyLLddHHmm\",TEST_DATE_FORMAT:\"yyyyLLdd-hmma\",LONG_DATE_FORMAT:\"d LLL yyyy h:mm a\",LONG_DATE_TIME_FORMAT:\"dd/LL/yyyy, h:mm a\",LONG_DATE_TIME_FORMAT_MONTH_AHEAD:\"LL/dd/yyyy, h:mm a\",LONG_DATE_TIME_FORMAT_REVERSED:\"h:mm a dd/LL/yyyy\",DAY_OF_WEEK_STRING:\"cccc\",LONG_DATE_WITH_DAY:\"ccc dd/LL/yyyy\",LOCALIZED_DATE_TIME:\"ffff\",DAY_TEXT_MONTH_YEAR:_,LONG_DATE_WITHOUT_TIME:\"cccc Do LLLL\",MONTH_ONLY:\"LLLL\",DAY_NAME_LONG:\"cccc\",DAY_ONLY_NUMBER:\"d\",SHORT_DAY_AND_MONTH:\"d LLL\",DETAILED_DATE_TIME:\"dd/LL/yyyy 'at' hh:mm:ss a\",FULL_DETAILED_DATE:\"cccc, LLLL dd, yyyy\",MONTH_DAY:\"LLL Do\",LONG_DATE_FORMAT_MONTH_AHEAD_CUT:\"LLL dd, yyyy, hh:mm a\",LONG_DATE_FORMAT_MONTH_AHEAD:\"LLLL dd, yyyy, hh:mm a\",FULL_MONTH_TEXT_MONTH_AHEAD:\"LLL dd, yyyy\",MINUTES_SECONDS_ONLY:\"mm:ss\"},R={SAME_DAY:\"'Today'\",NEXT_DAY:\"'Tomorrow'\",LAST_DAY:\"'Yesterday'\",SAME_ELSE:\"dd/LL/yyyy\",NEXT_WEEK:\"dddd\",LAST_WEEK:\"'Last' dddd\"},Y={SAME_DAY:\"'Today at' h:mm a\",NEXT_DAY:\"'Tomorrow at' h:mm a\",LAST_DAY:\"dd/LL/yyyy 'at' h:mm a\",SAME_ELSE:\"dd/LL/yyyy 'at' h:mm a\",LAST_WEEK:\"dd/LL/yyyy 'at' h:mm a\",NEXT_WEEK:\"dd/LL/yyyy 'at' h:mm a\"},F={DEFAULT_TIME_FORMAT:A,TIME_FORMAT_WITH_MIDDAY_FULL:y,TIME_FORMAT_24:E,TIME_FORMAT_WITH_SECONDS:M},H=Object.values(D),m=Object.values(O);exports.ACCEPTED_DAY_FORMATS=m,exports.ACCEPTED_TIME_FORMATS=H,exports.DATE_FORMATS=d,exports.DEFAULT_CALENDAR_FORMATS=Y,exports.SHORT_CALENDAR_FORMATS=R,exports.TIME_FORMATS=F;\n//# sourceMappingURL=date-time.formats.js.map\n","\"use strict\";var s;exports.DaySuffixes=void 0,(s=exports.DaySuffixes||(exports.DaySuffixes={})).TH=\"th\",s.ST=\"st\",s.RD=\"rd\",s.ND=\"nd\";\n//# sourceMappingURL=day-suffixes.enum.js.map\n","\"use strict\";var e=require(\"../date-time/types/day-suffixes.enum.js\");function t(e){return Array.from(new Set(e))}exports.chunksOf=(e,t)=>{if(t<=0)return[];const r=[];for(let n=0,s=e.length/t;nnew Promise((t=>setTimeout((()=>t()),e??500))),exports.flushPromises=function(e){return new Promise((t=>setTimeout(t,e??0)))},exports.getUniqueObjectsByKeys=e=>{const{array:r,keys:n}=e;return t(r.map((e=>{const t={};return n.forEach((r=>{t[r]=e[r]})),t})).map((e=>r.find((t=>n.every((r=>e[r]===t[r])))))))},exports.groupBy=function(e,t){const r=new Map;return e.forEach((e=>{const n=t(e),s=r.get(n);s?s.push(e):r.set(n,[e])})),Array.from(r.entries())},exports.isDefined=function(e){return void 0!==e},exports.isGUID=e=>new RegExp(/^[a-f0-9]{8}(?:-[a-f0-9]{4}){3}-[a-f0-9]{12}$/).test(e),exports.last=function(e){return e.length?e[e.length-1]:void 0},exports.newGuid=()=>\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return(\"x\"===e?t:3&t|8).toString(16)})),exports.next=(e,t,r)=>{let n=!1;const s=Object.keys(e);r&&s.reverse();for(const r of s){if(n)return e[r];r===t&&(n=!0)}},exports.ordinalNumber=t=>{const r=new Intl.PluralRules(\"en-US\",{type:\"ordinal\"}),n=new Map([[\"one\",e.DaySuffixes.ST],[\"two\",e.DaySuffixes.ND],[\"few\",e.DaySuffixes.RD],[\"other\",e.DaySuffixes.TH]]),s=r.select(t);return`${t}${n.get(s)}`},exports.to2dp=e=>Math.round(100*(e+1e-9))/100,exports.unique=t,exports.upsertItem=function({item:e,array:t,predicate:r}){const n=t.findIndex(r);return-1===n?[...t,e]:t.map(((t,r)=>r===n?e:t))};\n//# sourceMappingURL=common.utils.js.map\n","\"use strict\";var e;exports.IKeyCodes=void 0,(e=exports.IKeyCodes||(exports.IKeyCodes={})).Enter=\"Enter\",e.Space=\"Space\",e.Esc=\"Escape\";\n//# sourceMappingURL=key-codes.enum.js.map\n","\"use strict\";var e=require(\"luxon\");require(\"./types/recurrence.enum.js\"),require(\"./types/week-days.enum.js\"),require(\"./types/date-time.constants.js\");var t=require(\"./types/date-time.formats.js\"),r=require(\"../common/common.utils.js\");require(\"../common/key-codes.enum.js\");const i=e=>{const t=(e??\"\").split(\":\");return{hour:isNaN(Number(t[0]))?0:Number(t[0]),minute:isNaN(Number(t[1]))?0:Number(t[1])}};class a{_dateTime;constructor(e){this._dateTime=e}static now(){return new a(e.DateTime.now())}static today(){return a.now().startOf(\"day\")}static tomorrow(){return a.now().plus({days:1}).startOf(\"day\")}static fromISO(t,r){if(void 0!==t)return new a(e.DateTime.fromISO(t,r))}static fromISOOrNow(e,t){return a.fromISO(e,t)||a.now()}static fromJSDate(t){if(t)return isNaN(Number(t))?new a(e.DateTime.fromISO(\"Invalid date\")):new a(e.DateTime.fromObject({year:t.getFullYear(),month:t.getMonth()+1,day:t.getDate(),hour:t.getHours(),minute:t.getMinutes()}))}static fromJSDateOrNow(e){return a.fromJSDate(e)||a.now()}static fromObject(t){return new a(e.DateTime.fromObject(t))}static fromMillis(t){return new a(e.DateTime.fromMillis(t))}static fromJSDateAndTime(e,t){return a.fromObject({year:e.getFullYear(),month:e.getMonth()+1,day:e.getDate(),...i(t)})}static fromISODateAndTime(e,t,r){const n=a.fromISO(e,r);return a.fromObject({year:n.year,month:n.month,day:n.day,...i(t)})}static fromParsedTimeString(e){if(e)for(let r=0;rthis.startOf(\"day\")}setZone(e){return new a(this._dateTime.setZone(e))}set(e){return new a(this._dateTime.set(e))}plus(e){return new a(this._dateTime.plus(e))}minus(e){return new a(this._dateTime.minus(e))}startOf(e){return new a(this._dateTime.startOf(e))}endOf(e){return new a(this._dateTime.endOf(e))}toISO(e){return this._dateTime.toISO(e)}toISODate(e){return this._dateTime.toISODate(e)}toJSDate(){return new Date(this._dateTime.year,this._dateTime.month-1,this._dateTime.day,this._dateTime.hour,this._dateTime.minute)}toDayDefaultFormat(){return this.toFormat(t.DATE_FORMATS.DAY_DEFAULT_FORMAT)}toTimeInputFormat(){return this.toFormat(t.TIME_FORMATS.TIME_FORMAT_24)}toFormat(e){const t=e.replace(/Do/g,\"[__]\");return this._dateTime.toFormat(t,{locale:\"en-AU\"}).replace(/\\[__\\]/g,(()=>r.ordinalNumber(this.day)))}toString(){return this._dateTime.toString()}valueOf(){return this.toJSDate().getTime()}toMillis(){return this._dateTime.toMillis()}toRelative(){return this._dateTime.toRelative()??void 0}diff(e,t){return this._dateTime.diff(e._dateTime,t)}hasSame(e,t){return this._dateTime.hasSame(e._dateTime,t)}equals(e){return this._dateTime.equals(e._dateTime)}isBetweenInclusive(e,t){return this.valueOf()>=e.valueOf()&&this.valueOf()<=t.valueOf()}static jsDateNow(){return a.now().toJSDate()}static jsDateFromISO(e){if(void 0!==e)return a.fromISO(e).toJSDate()}static jsDateToISODate(e){if(void 0!==e)return a.fromJSDate(e).toISODate()}}Object.defineProperty(exports,\"Duration\",{enumerable:!0,get:function(){return e.Duration}}),exports.DateTime=a;\n//# sourceMappingURL=DateTime.js.map\n","\"use strict\";var t=require(\"luxon\"),e=require(\"./DateTime.js\");class r{_interval;constructor(t){this._interval=t}static fromDateTimes(e,i){return new r(t.Interval.fromDateTimes(e._dateTime,i._dateTime))}get start(){return new e.DateTime(this._interval.start)}splitBy(t){return this._interval.splitBy(t).map((t=>new r(t)))}}exports.Interval=r;\n//# sourceMappingURL=Interval.js.map\n","\"use strict\";var e=require(\"luxon\"),t=require(\"./DateTime.js\"),r=require(\"./types/date-time.formats.js\"),a=require(\"./types/recurrence.enum.js\"),o=require(\"./types/date-time.constants.js\"),s=require(\"./types/week-days.enum.js\"),n=require(\"../common/common.utils.js\");require(\"../common/key-codes.enum.js\");const i={singular:\"day\",plural:\"days\"},u={singular:\"hour\",plural:\"hours\"},m={singular:\"min\",plural:\"mins\"},d=(e,t,r)=>r?t.toMillis()-e.toMillis():e.toMillis()-t.toMillis(),l=e=>Math.floor((e.day+1)/7)+1,D=e=>{const t=e.endOf(\"month\"),r=t.day-e.day;return e.day===t.day||7===r?1:Math.ceil(r/7)};exports.compareDatesOrUndefinedPredicate=(e,r,a)=>{if(!e)return 1;if(!r)return-1;const o=e instanceof t.DateTime?e:t.DateTime.fromJSDate(new Date(e)),s=r instanceof t.DateTime?r:t.DateTime.fromJSDate(new Date(r));return d(o,s,a)},exports.compareDatesPredicate=d,exports.compareISOStrDatesPredicate=(e,r,a)=>d(t.DateTime.fromISOOrNow(e),t.DateTime.fromISOOrNow(r),a),exports.customFormatDuration=(e,t)=>{const{minutes:r,hours:a,days:o}=e.shiftTo(\"minutes\",\"hours\",\"days\");let s=\"\";o>0&&(s=`${o} ${1===o?i.singular:i.plural}`);let n=\"\";a>0&&(n=`${a} ${1===a?u.singular:u.plural}`);let d=\"\";return r>0&&(d=`${t?Math.round(r):r} ${1===r?m.singular:m.plural}`),[s,n,d].filter((e=>!!e)).join(\" \")},exports.dayOfMonth=e=>n.ordinalNumber(e.day),exports.dayOfWeekName=t=>{const r=o.ALL_DAYS_OF_WEEK.indexOf(s.DaysOfWeek.Monday),a=o.ALL_DAYS_OF_WEEK.indexOf(t);if(a>=0){const t=(a-r+7)%7;return e.Info.weekdays()[t]}},exports.formatCalendarDate=(e,a=r.DEFAULT_CALENDAR_FORMATS)=>{const o=e.diff(t.DateTime.today(),\"days\").days;return o<6?e.toFormat(a.SAME_ELSE):o<-1?e.toFormat(a.LAST_WEEK):o<0?e.toFormat(a.LAST_DAY):o<1?e.toFormat(a.SAME_DAY):o<2?e.toFormat(a.NEXT_DAY):o<7?e.toFormat(a.NEXT_WEEK):e.toFormat(a.SAME_ELSE)},exports.getDateTimeFromISOrJSDate=e=>\"string\"==typeof e?t.DateTime.fromISO(e):t.DateTime.fromJSDate(e),exports.getDayOfWeek=e=>{const t=e.weekday;return 7===t?0:t},exports.getDurationFromMinutes=t=>{const r=t?Number(t):0;return e.Duration.fromMillis(60*r*1e3)},exports.getHourAndMinutesFromString=e=>{const t=(e??\"\").split(\":\");return{hour:isNaN(Number(t[0]))?0:Number(t[0]),minute:isNaN(Number(t[1]))?0:Number(t[1])}},exports.getWeekPosition=(e,t)=>{switch(t){case a.MonthYearRecurrence.LastDayOfWeek:return-1*D(e);case a.MonthYearRecurrence.DayOfWeek:return l(e)}},exports.isToday=e=>e.startOf(\"day\").equals(t.DateTime.today()),exports.isWeekDay=e=>e!==s.DaysOfWeek.Saturday&&e!==s.DaysOfWeek.Sunday,exports.nthDayOfMonth=l,exports.nthLastDayOfMonth=D,exports.weekOfMonth=e=>n.ordinalNumber(Math.floor(e.day/7)+1);\n//# sourceMappingURL=date-time.utils.js.map\n","\"use strict\";var t=require(\"luxon\");exports.DateInfo=class{static months(e,s){return t.Info.months(e,s)}static weekdays(e,s){return t.Info.weekdays(e,s)}};\n//# sourceMappingURL=DateInfo.js.map\n","\"use strict\";var e=require(\"react\");exports.useMountedState=()=>{const r=e.useRef(!1),t=e.useCallback((()=>r.current),[]);return e.useEffect((()=>(r.current=!0,()=>{r.current=!1})),[]),t};\n//# sourceMappingURL=useMountedState.js.map\n","\"use strict\";var e=require(\"./useMountedState.js\"),r=require(\"react\");exports.useAsyncFn=(t,s=[],n={isLoading:!1})=>{const u=r.useRef(0),a=e.useMountedState(),[i,o]=r.useState(n),c=r.useCallback(((...e)=>{const r=++u.current;return i.isLoading||o((e=>({...e,isLoading:!0}))),t(...e).then((e=>(a()&&r===u.current&&o({data:e,isLoading:!1}),e)),(e=>(a()&&r===u.current&&o({error:e,isLoading:!1}),e)))}),s);return[i,c]};\n//# sourceMappingURL=useAsyncFn.js.map\n","\"use strict\";var e=require(\"./useAsyncFn.js\"),s=require(\"react\");exports.useAsync=(r,n=[])=>{const[u,c]=e.useAsyncFn(r,n,{isLoading:!0});return s.useEffect((()=>{c()}),[c]),u};\n//# sourceMappingURL=useAsync.js.map\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.joi=t():e.joi=t()}(self,(()=>{return e={7629:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(9474),i=r(1687),o=r(8652),l=r(8160),c=r(3292),u=r(6354),f=r(8901),m=r(9708),h=r(6914),d=r(2294),p=r(6133),g=r(1152),y=r(8863),b=r(2036),v={Base:class{constructor(e){this.type=e,this.$_root=null,this._definition={},this._reset()}_reset(){this._ids=new d.Ids,this._preferences=null,this._refs=new p.Manager,this._cache=null,this._valids=null,this._invalids=null,this._flags={},this._rules=[],this._singleRules=new Map,this.$_terms={},this.$_temp={ruleset:null,whens:{}}}describe(){return s(\"function\"==typeof m.describe,\"Manifest functionality disabled\"),m.describe(this)}allow(...e){return l.verifyFlat(e,\"allow\"),this._values(e,\"_valids\")}alter(e){s(e&&\"object\"==typeof e&&!Array.isArray(e),\"Invalid targets argument\"),s(!this._inRuleset(),\"Cannot set alterations inside a ruleset\");const t=this.clone();t.$_terms.alterations=t.$_terms.alterations||[];for(const r in e){const n=e[r];s(\"function\"==typeof n,\"Alteration adjuster for\",r,\"must be a function\"),t.$_terms.alterations.push({target:r,adjuster:n})}return t.$_temp.ruleset=!1,t}artifact(e){return s(void 0!==e,\"Artifact cannot be undefined\"),s(!this._cache,\"Cannot set an artifact with a rule cache\"),this.$_setFlag(\"artifact\",e)}cast(e){return s(!1===e||\"string\"==typeof e,\"Invalid to value\"),s(!1===e||this._definition.cast[e],\"Type\",this.type,\"does not support casting to\",e),this.$_setFlag(\"cast\",!1===e?void 0:e)}default(e,t){return this._default(\"default\",e,t)}description(e){return s(e&&\"string\"==typeof e,\"Description must be a non-empty string\"),this.$_setFlag(\"description\",e)}empty(e){const t=this.clone();return void 0!==e&&(e=t.$_compile(e,{override:!1})),t.$_setFlag(\"empty\",e,{clone:!1})}error(e){return s(e,\"Missing error\"),s(e instanceof Error||\"function\"==typeof e,\"Must provide a valid Error object or a function\"),this.$_setFlag(\"error\",e)}example(e,t={}){return s(void 0!==e,\"Missing example\"),l.assertOptions(t,[\"override\"]),this._inner(\"examples\",e,{single:!0,override:t.override})}external(e,t){return\"object\"==typeof e&&(s(!t,\"Cannot combine options with description\"),t=e.description,e=e.method),s(\"function\"==typeof e,\"Method must be a function\"),s(void 0===t||t&&\"string\"==typeof t,\"Description must be a non-empty string\"),this._inner(\"externals\",{method:e,description:t},{single:!0})}failover(e,t){return this._default(\"failover\",e,t)}forbidden(){return this.presence(\"forbidden\")}id(e){return e?(s(\"string\"==typeof e,\"id must be a non-empty string\"),s(/^[^\\.]+$/.test(e),\"id cannot contain period character\"),this.$_setFlag(\"id\",e)):this.$_setFlag(\"id\",void 0)}invalid(...e){return this._values(e,\"_invalids\")}label(e){return s(e&&\"string\"==typeof e,\"Label name must be a non-empty string\"),this.$_setFlag(\"label\",e)}meta(e){return s(void 0!==e,\"Meta cannot be undefined\"),this._inner(\"metas\",e,{single:!0})}note(...e){s(e.length,\"Missing notes\");for(const t of e)s(t&&\"string\"==typeof t,\"Notes must be non-empty strings\");return this._inner(\"notes\",e)}only(e=!0){return s(\"boolean\"==typeof e,\"Invalid mode:\",e),this.$_setFlag(\"only\",e)}optional(){return this.presence(\"optional\")}prefs(e){s(e,\"Missing preferences\"),s(void 0===e.context,\"Cannot override context\"),s(void 0===e.externals,\"Cannot override externals\"),s(void 0===e.warnings,\"Cannot override warnings\"),s(void 0===e.debug,\"Cannot override debug\"),l.checkPreferences(e);const t=this.clone();return t._preferences=l.preferences(t._preferences,e),t}presence(e){return s([\"optional\",\"required\",\"forbidden\"].includes(e),\"Unknown presence mode\",e),this.$_setFlag(\"presence\",e)}raw(e=!0){return this.$_setFlag(\"result\",e?\"raw\":void 0)}result(e){return s([\"raw\",\"strip\"].includes(e),\"Unknown result mode\",e),this.$_setFlag(\"result\",e)}required(){return this.presence(\"required\")}strict(e){const t=this.clone(),r=void 0!==e&&!e;return t._preferences=l.preferences(t._preferences,{convert:r}),t}strip(e=!0){return this.$_setFlag(\"result\",e?\"strip\":void 0)}tag(...e){s(e.length,\"Missing tags\");for(const t of e)s(t&&\"string\"==typeof t,\"Tags must be non-empty strings\");return this._inner(\"tags\",e)}unit(e){return s(e&&\"string\"==typeof e,\"Unit name must be a non-empty string\"),this.$_setFlag(\"unit\",e)}valid(...e){l.verifyFlat(e,\"valid\");const t=this.allow(...e);return t.$_setFlag(\"only\",!!t._valids,{clone:!1}),t}when(e,t){const r=this.clone();r.$_terms.whens||(r.$_terms.whens=[]);const n=c.when(r,e,t);if(![\"any\",\"link\"].includes(r.type)){const e=n.is?[n]:n.switch;for(const t of e)s(!t.then||\"any\"===t.then.type||t.then.type===r.type,\"Cannot combine\",r.type,\"with\",t.then&&t.then.type),s(!t.otherwise||\"any\"===t.otherwise.type||t.otherwise.type===r.type,\"Cannot combine\",r.type,\"with\",t.otherwise&&t.otherwise.type)}return r.$_terms.whens.push(n),r.$_mutateRebuild()}cache(e){s(!this._inRuleset(),\"Cannot set caching inside a ruleset\"),s(!this._cache,\"Cannot override schema cache\"),s(void 0===this._flags.artifact,\"Cannot cache a rule with an artifact\");const t=this.clone();return t._cache=e||o.provider.provision(),t.$_temp.ruleset=!1,t}clone(){const e=Object.create(Object.getPrototypeOf(this));return this._assign(e)}concat(e){s(l.isSchema(e),\"Invalid schema object\"),s(\"any\"===this.type||\"any\"===e.type||e.type===this.type,\"Cannot merge type\",this.type,\"with another type:\",e.type),s(!this._inRuleset(),\"Cannot concatenate onto a schema with open ruleset\"),s(!e._inRuleset(),\"Cannot concatenate a schema with open ruleset\");let t=this.clone();if(\"any\"===this.type&&\"any\"!==e.type){const r=e.clone();for(const e of Object.keys(t))\"type\"!==e&&(r[e]=t[e]);t=r}t._ids.concat(e._ids),t._refs.register(e,p.toSibling),t._preferences=t._preferences?l.preferences(t._preferences,e._preferences):e._preferences,t._valids=b.merge(t._valids,e._valids,e._invalids),t._invalids=b.merge(t._invalids,e._invalids,e._valids);for(const r of e._singleRules.keys())t._singleRules.has(r)&&(t._rules=t._rules.filter((e=>e.keep||e.name!==r)),t._singleRules.delete(r));for(const r of e._rules)e._definition.rules[r.method].multi||t._singleRules.set(r.name,r),t._rules.push(r);if(t._flags.empty&&e._flags.empty){t._flags.empty=t._flags.empty.concat(e._flags.empty);const r=Object.assign({},e._flags);delete r.empty,i(t._flags,r)}else if(e._flags.empty){t._flags.empty=e._flags.empty;const r=Object.assign({},e._flags);delete r.empty,i(t._flags,r)}else i(t._flags,e._flags);for(const r in e.$_terms){const s=e.$_terms[r];s?t.$_terms[r]?t.$_terms[r]=t.$_terms[r].concat(s):t.$_terms[r]=s.slice():t.$_terms[r]||(t.$_terms[r]=s)}return this.$_root._tracer&&this.$_root._tracer._combine(t,[this,e]),t.$_mutateRebuild()}extend(e){return s(!e.base,\"Cannot extend type with another base\"),f.type(this,e)}extract(e){return e=Array.isArray(e)?e:e.split(\".\"),this._ids.reach(e)}fork(e,t){s(!this._inRuleset(),\"Cannot fork inside a ruleset\");let r=this;for(let s of[].concat(e))s=Array.isArray(s)?s:s.split(\".\"),r=r._ids.fork(s,t,r);return r.$_temp.ruleset=!1,r}rule(e){const t=this._definition;l.assertOptions(e,Object.keys(t.modifiers)),s(!1!==this.$_temp.ruleset,\"Cannot apply rules to empty ruleset or the last rule added does not support rule properties\");const r=null===this.$_temp.ruleset?this._rules.length-1:this.$_temp.ruleset;s(r>=0&&rt.tailor(e),ref:!1}),t.$_temp.ruleset=!1,t.$_mutateRebuild()}tracer(){return g.location?g.location(this):this}validate(e,t){return y.entry(e,this,t)}validateAsync(e,t){return y.entryAsync(e,this,t)}$_addRule(e){\"string\"==typeof e&&(e={name:e}),s(e&&\"object\"==typeof e,\"Invalid options\"),s(e.name&&\"string\"==typeof e.name,\"Invalid rule name\");for(const t in e)s(\"_\"!==t[0],\"Cannot set private rule properties\");const t=Object.assign({},e);t._resolve=[],t.method=t.method||t.name;const r=this._definition.rules[t.method],n=t.args;s(r,\"Unknown rule\",t.method);const a=this.clone();if(n){s(1===Object.keys(n).length||Object.keys(n).length===this._definition.rules[t.name].args.length,\"Invalid rule definition for\",this.type,t.name);for(const e in n){let i=n[e];if(r.argsByName){const o=r.argsByName.get(e);if(o.ref&&l.isResolvable(i))t._resolve.push(e),a.$_mutateRegister(i);else if(o.normalize&&(i=o.normalize(i),n[e]=i),o.assert){const t=l.validateArg(i,e,o);s(!t,t,\"or reference\")}}void 0!==i?n[e]=i:delete n[e]}}return r.multi||(a._ruleRemove(t.name,{clone:!1}),a._singleRules.set(t.name,t)),!1===a.$_temp.ruleset&&(a.$_temp.ruleset=null),r.priority?a._rules.unshift(t):a._rules.push(t),a}$_compile(e,t){return c.schema(this.$_root,e,t)}$_createError(e,t,r,s,n,a={}){const i=!1!==a.flags?this._flags:{},o=a.messages?h.merge(this._definition.messages,a.messages):this._definition.messages;return new u.Report(e,t,r,i,o,s,n)}$_getFlag(e){return this._flags[e]}$_getRule(e){return this._singleRules.get(e)}$_mapLabels(e){return e=Array.isArray(e)?e:e.split(\".\"),this._ids.labels(e)}$_match(e,t,r,s){(r=Object.assign({},r)).abortEarly=!0,r._externals=!1,t.snapshot();const n=!y.validate(e,this,t,r,s).errors;return t.restore(),n}$_modify(e){return l.assertOptions(e,[\"each\",\"once\",\"ref\",\"schema\"]),d.schema(this,e)||this}$_mutateRebuild(){return s(!this._inRuleset(),\"Cannot add this rule inside a ruleset\"),this._refs.reset(),this._ids.reset(),this.$_modify({each:(e,{source:t,name:r,path:s,key:n})=>{const a=this._definition[t][r]&&this._definition[t][r].register;!1!==a&&this.$_mutateRegister(e,{family:a,key:n})}}),this._definition.rebuild&&this._definition.rebuild(this),this.$_temp.ruleset=!1,this}$_mutateRegister(e,{family:t,key:r}={}){this._refs.register(e,t),this._ids.register(e,{key:r})}$_property(e){return this._definition.properties[e]}$_reach(e){return this._ids.reach(e)}$_rootReferences(){return this._refs.roots()}$_setFlag(e,t,r={}){s(\"_\"===e[0]||!this._inRuleset(),\"Cannot set flag inside a ruleset\");const n=this._definition.flags[e]||{};if(a(t,n.default)&&(t=void 0),a(t,this._flags[e]))return this;const i=!1!==r.clone?this.clone():this;return void 0!==t?(i._flags[e]=t,i.$_mutateRegister(t)):delete i._flags[e],\"_\"!==e[0]&&(i.$_temp.ruleset=!1),i}$_parent(e,...t){return this[e][l.symbols.parent].call(this,...t)}$_validate(e,t,r){return y.validate(e,this,t,r)}_assign(e){e.type=this.type,e.$_root=this.$_root,e.$_temp=Object.assign({},this.$_temp),e.$_temp.whens={},e._ids=this._ids.clone(),e._preferences=this._preferences,e._valids=this._valids&&this._valids.clone(),e._invalids=this._invalids&&this._invalids.clone(),e._rules=this._rules.slice(),e._singleRules=n(this._singleRules,{shallow:!0}),e._refs=this._refs.clone(),e._flags=Object.assign({},this._flags),e._cache=null,e.$_terms={};for(const t in this.$_terms)e.$_terms[t]=this.$_terms[t]?this.$_terms[t].slice():null;e.$_super={};for(const t in this.$_super)e.$_super[t]=this._super[t].bind(e);return e}_bare(){const e=this.clone();e._reset();const t=e._definition.terms;for(const r in t){const s=t[r];e.$_terms[r]=s.init}return e.$_mutateRebuild()}_default(e,t,r={}){return l.assertOptions(r,\"literal\"),s(void 0!==t,\"Missing\",e,\"value\"),s(\"function\"==typeof t||!r.literal,\"Only function value supports literal option\"),\"function\"==typeof t&&r.literal&&(t={[l.symbols.literal]:!0,literal:t}),this.$_setFlag(e,t)}_generate(e,t,r){if(!this.$_terms.whens)return{schema:this};const s=[],n=[];for(let a=0;ac)break}const a=n.join(\", \");if(t.mainstay.tracer.debug(t,\"rule\",\"when\",a),!a)return{schema:this};if(!t.mainstay.tracer.active&&this.$_temp.whens[a])return{schema:this.$_temp.whens[a],id:a};let i=this;this._definition.generate&&(i=this._definition.generate(this,e,t,r));for(const e of s)i=i.concat(e);return this.$_root._tracer&&this.$_root._tracer._combine(i,[this,...s]),this.$_temp.whens[a]=i,{schema:i,id:a}}_inner(e,t,r={}){s(!this._inRuleset(),`Cannot set ${e} inside a ruleset`);const n=this.clone();return n.$_terms[e]&&!r.override||(n.$_terms[e]=[]),r.single?n.$_terms[e].push(t):n.$_terms[e].push(...t),n.$_temp.ruleset=!1,n}_inRuleset(){return null!==this.$_temp.ruleset&&!1!==this.$_temp.ruleset}_ruleRemove(e,t={}){if(!this._singleRules.has(e))return this;const r=!1!==t.clone?this.clone():this;r._singleRules.delete(e);const s=[];for(let t=0;t{\"use strict\";const s=r(375),n=r(8571),a=r(8160),i={max:1e3,supported:new Set([\"undefined\",\"boolean\",\"number\",\"string\"])};t.provider={provision:e=>new i.Cache(e)},i.Cache=class{constructor(e={}){a.assertOptions(e,[\"max\"]),s(void 0===e.max||e.max&&e.max>0&&isFinite(e.max),\"Invalid max cache size\"),this._max=e.max||i.max,this._map=new Map,this._list=new i.List}get length(){return this._map.size}set(e,t){if(null!==e&&!i.supported.has(typeof e))return;let r=this._map.get(e);if(r)return r.value=t,void this._list.first(r);r=this._list.unshift({key:e,value:t}),this._map.set(e,r),this._compact()}get(e){const t=this._map.get(e);if(t)return this._list.first(t),n(t.value)}_compact(){if(this._map.size>this._max){const e=this._list.pop();this._map.delete(e.key)}}},i.List=class{constructor(){this.tail=null,this.head=null}unshift(e){return e.next=null,e.prev=this.head,this.head&&(this.head.next=e),this.head=e,this.tail||(this.tail=e),e}first(e){e!==this.head&&(this._remove(e),this.unshift(e))}pop(){return this._remove(this.tail)}_remove(e){const{next:t,prev:r}=e;return t.prev=r,r&&(r.next=t),e===this.tail&&(this.tail=t),e.prev=null,e.next=null,e}}},8160:(e,t,r)=>{\"use strict\";const s=r(375),n=r(7916),a=r(5934);let i,o;const l={isoDate:/^(?:[-+]\\d{2})?(?:\\d{4}(?!\\d{2}\\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\\1(?:[12]\\d|0[1-9]|3[01]))?|W(?:[0-4]\\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\\d|[12]\\d{2}|3(?:[0-5]\\d|6[1-6])))(?![T]$|[T][\\d]+Z$)(?:[T\\s](?:(?:(?:[01]\\d|2[0-3])(?:(:?)[0-5]\\d)?|24\\:?00)(?:[.,]\\d+(?!:))?)(?:\\2[0-5]\\d(?:[.,]\\d+)?)?(?:[Z]|(?:[+-])(?:[01]\\d|2[0-3])(?::?[0-5]\\d)?)?)?)?$/};t.version=a.version,t.defaults={abortEarly:!0,allowUnknown:!1,artifacts:!1,cache:!0,context:null,convert:!0,dateFormat:\"iso\",errors:{escapeHtml:!1,label:\"path\",language:null,render:!0,stack:!1,wrap:{label:'\"',array:\"[]\"}},externals:!0,messages:{},nonEnumerables:!1,noDefaults:!1,presence:\"optional\",skipFunctions:!1,stripUnknown:!1,warnings:!1},t.symbols={any:Symbol.for(\"@hapi/joi/schema\"),arraySingle:Symbol(\"arraySingle\"),deepDefault:Symbol(\"deepDefault\"),errors:Symbol(\"errors\"),literal:Symbol(\"literal\"),override:Symbol(\"override\"),parent:Symbol(\"parent\"),prefs:Symbol(\"prefs\"),ref:Symbol(\"ref\"),template:Symbol(\"template\"),values:Symbol(\"values\")},t.assertOptions=function(e,t,r=\"Options\"){s(e&&\"object\"==typeof e&&!Array.isArray(e),\"Options must be of type object\");const n=Object.keys(e).filter((e=>!t.includes(e)));s(0===n.length,`${r} contain unknown keys: ${n}`)},t.checkPreferences=function(e){o=o||r(3378);const t=o.preferences.validate(e);if(t.error)throw new n([t.error.details[0].message])},t.compare=function(e,t,r){switch(r){case\"=\":return e===t;case\">\":return e>t;case\"<\":return e=\":return e>=t;case\"<=\":return e<=t}},t.default=function(e,t){return void 0===e?t:e},t.isIsoDate=function(e){return l.isoDate.test(e)},t.isNumber=function(e){return\"number\"==typeof e&&!isNaN(e)},t.isResolvable=function(e){return!!e&&(e[t.symbols.ref]||e[t.symbols.template])},t.isSchema=function(e,r={}){const n=e&&e[t.symbols.any];return!!n&&(s(r.legacy||n.version===t.version,\"Cannot mix different versions of joi schemas\"),!0)},t.isValues=function(e){return e[t.symbols.values]},t.limit=function(e){return Number.isSafeInteger(e)&&e>=0},t.preferences=function(e,s){i=i||r(6914),e=e||{},s=s||{};const n=Object.assign({},e,s);return s.errors&&e.errors&&(n.errors=Object.assign({},e.errors,s.errors),n.errors.wrap=Object.assign({},e.errors.wrap,s.errors.wrap)),s.messages&&(n.messages=i.compile(s.messages,e.messages)),delete n[t.symbols.prefs],n},t.tryWithPath=function(e,t,r={}){try{return e()}catch(e){throw void 0!==e.path?e.path=t+\".\"+e.path:e.path=t,r.append&&(e.message=`${e.message} (${e.path})`),e}},t.validateArg=function(e,r,{assert:s,message:n}){if(t.isSchema(s)){const t=s.validate(e);if(!t.error)return;return t.error.message}if(!s(e))return r?`${r} ${n}`:n},t.verifyFlat=function(e,t){for(const r of e)s(!Array.isArray(r),\"Method no longer accepts array arguments:\",t)}},3292:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8160),a=r(6133),i={};t.schema=function(e,t,r={}){n.assertOptions(r,[\"appendPath\",\"override\"]);try{return i.schema(e,t,r)}catch(e){throw r.appendPath&&void 0!==e.path&&(e.message=`${e.message} (${e.path})`),e}},i.schema=function(e,t,r){s(void 0!==t,\"Invalid undefined schema\"),Array.isArray(t)&&(s(t.length,\"Invalid empty array schema\"),1===t.length&&(t=t[0]));const a=(t,...s)=>!1!==r.override?t.valid(e.override,...s):t.valid(...s);if(i.simple(t))return a(e,t);if(\"function\"==typeof t)return e.custom(t);if(s(\"object\"==typeof t,\"Invalid schema content:\",typeof t),n.isResolvable(t))return a(e,t);if(n.isSchema(t))return t;if(Array.isArray(t)){for(const r of t)if(!i.simple(r))return e.alternatives().try(...t);return a(e,...t)}return t instanceof RegExp?e.string().regex(t):t instanceof Date?a(e.date(),t):(s(Object.getPrototypeOf(t)===Object.getPrototypeOf({}),\"Schema can only contain plain objects\"),e.object().keys(t))},t.ref=function(e,t){return a.isRef(e)?e:a.create(e,t)},t.compile=function(e,r,a={}){n.assertOptions(a,[\"legacy\"]);const o=r&&r[n.symbols.any];if(o)return s(a.legacy||o.version===n.version,\"Cannot mix different versions of joi schemas:\",o.version,n.version),r;if(\"object\"!=typeof r||!a.legacy)return t.schema(e,r,{appendPath:!0});const l=i.walk(r);return l?l.compile(l.root,r):t.schema(e,r,{appendPath:!0})},i.walk=function(e){if(\"object\"!=typeof e)return null;if(Array.isArray(e)){for(const t of e){const e=i.walk(t);if(e)return e}return null}const t=e[n.symbols.any];if(t)return{root:e[t.root],compile:t.compile};s(Object.getPrototypeOf(e)===Object.getPrototypeOf({}),\"Schema can only contain plain objects\");for(const t in e){const r=i.walk(e[t]);if(r)return r}return null},i.simple=function(e){return null===e||[\"boolean\",\"string\",\"number\"].includes(typeof e)},t.when=function(e,r,o){if(void 0===o&&(s(r&&\"object\"==typeof r,\"Missing options\"),o=r,r=a.create(\".\")),Array.isArray(o)&&(o={switch:o}),n.assertOptions(o,[\"is\",\"not\",\"then\",\"otherwise\",\"switch\",\"break\"]),n.isSchema(r))return s(void 0===o.is,'\"is\" can not be used with a schema condition'),s(void 0===o.not,'\"not\" can not be used with a schema condition'),s(void 0===o.switch,'\"switch\" can not be used with a schema condition'),i.condition(e,{is:r,then:o.then,otherwise:o.otherwise,break:o.break});if(s(a.isRef(r)||\"string\"==typeof r,\"Invalid condition:\",r),s(void 0===o.not||void 0===o.is,'Cannot combine \"is\" with \"not\"'),void 0===o.switch){let l=o;void 0!==o.not&&(l={is:o.not,then:o.otherwise,otherwise:o.then,break:o.break});let c=void 0!==l.is?e.$_compile(l.is):e.$_root.invalid(null,!1,0,\"\").required();return s(void 0!==l.then||void 0!==l.otherwise,'options must have at least one of \"then\", \"otherwise\", or \"switch\"'),s(void 0===l.break||void 0===l.then||void 0===l.otherwise,\"Cannot specify then, otherwise, and break all together\"),void 0===o.is||a.isRef(o.is)||n.isSchema(o.is)||(c=c.required()),i.condition(e,{ref:t.ref(r),is:c,then:l.then,otherwise:l.otherwise,break:l.break})}s(Array.isArray(o.switch),'\"switch\" must be an array'),s(void 0===o.is,'Cannot combine \"switch\" with \"is\"'),s(void 0===o.not,'Cannot combine \"switch\" with \"not\"'),s(void 0===o.then,'Cannot combine \"switch\" with \"then\"');const l={ref:t.ref(r),switch:[],break:o.break};for(let t=0;t{\"use strict\";const s=r(5688),n=r(8160),a=r(3328);t.Report=class{constructor(e,r,s,n,a,i,o){if(this.code=e,this.flags=n,this.messages=a,this.path=i.path,this.prefs=o,this.state=i,this.value=r,this.message=null,this.template=null,this.local=s||{},this.local.label=t.label(this.flags,this.state,this.prefs,this.messages),void 0===this.value||this.local.hasOwnProperty(\"value\")||(this.local.value=this.value),this.path.length){const e=this.path[this.path.length-1];\"object\"!=typeof e&&(this.local.key=e)}}_setTemplate(e){if(this.template=e,!this.flags.label&&0===this.path.length){const e=this._template(this.template,\"root\");e&&(this.local.label=e)}}toString(){if(this.message)return this.message;const e=this.code;if(!this.prefs.errors.render)return this.code;const t=this._template(this.template)||this._template(this.prefs.messages)||this._template(this.messages);return void 0===t?`Error code \"${e}\" is not defined, your custom type is missing the correct messages definition`:(this.message=t.render(this.value,this.state,this.prefs,this.local,{errors:this.prefs.errors,messages:[this.prefs.messages,this.messages]}),this.prefs.errors.label||(this.message=this.message.replace(/^\"\" /,\"\").trim()),this.message)}_template(e,r){return t.template(this.value,e,r||this.code,this.state,this.prefs)}},t.path=function(e){let t=\"\";for(const r of e)\"object\"!=typeof r&&(\"string\"==typeof r?(t&&(t+=\".\"),t+=r):t+=`[${r}]`);return t},t.template=function(e,t,r,s,i){if(!t)return;if(a.isTemplate(t))return\"root\"!==r?t:null;let o=i.errors.language;if(n.isResolvable(o)&&(o=o.resolve(e,s,i)),o&&t[o]){if(void 0!==t[o][r])return t[o][r];if(void 0!==t[o][\"*\"])return t[o][\"*\"]}return t[r]?t[r]:t[\"*\"]},t.label=function(e,r,s,n){if(!s.errors.label)return\"\";if(e.label)return e.label;let a=r.path;\"key\"===s.errors.label&&r.path.length>1&&(a=r.path.slice(-1));return t.path(a)||t.template(null,s.messages,\"root\",r,s)||n&&t.template(null,n,\"root\",r,s)||\"value\"},t.process=function(e,r,s){if(!e)return null;const{override:n,message:a,details:i}=t.details(e);if(n)return n;if(s.errors.stack)return new t.ValidationError(a,i,r);const o=Error.stackTraceLimit;Error.stackTraceLimit=0;const l=new t.ValidationError(a,i,r);return Error.stackTraceLimit=o,l},t.details=function(e,t={}){let r=[];const s=[];for(const n of e){if(n instanceof Error){if(!1!==t.override)return{override:n};const e=n.toString();r.push(e),s.push({message:e,type:\"override\",context:{error:n}});continue}const e=n.toString();r.push(e),s.push({message:e,path:n.path.filter((e=>\"object\"!=typeof e)),type:n.code,context:n.local})}return r.length>1&&(r=[...new Set(r)]),{message:r.join(\". \"),details:s}},t.ValidationError=class extends Error{constructor(e,t,r){super(e),this._original=r,this.details=t}static isError(e){return e instanceof t.ValidationError}},t.ValidationError.prototype.isJoi=!0,t.ValidationError.prototype.name=\"ValidationError\",t.ValidationError.prototype.annotate=s.error},8901:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(8160),i=r(6914),o={};t.type=function(e,t){const r=Object.getPrototypeOf(e),l=n(r),c=e._assign(Object.create(l)),u=Object.assign({},t);delete u.base,l._definition=u;const f=r._definition||{};u.messages=i.merge(f.messages,u.messages),u.properties=Object.assign({},f.properties,u.properties),c.type=u.type,u.flags=Object.assign({},f.flags,u.flags);const m=Object.assign({},f.terms);if(u.terms)for(const e in u.terms){const t=u.terms[e];s(void 0===c.$_terms[e],\"Invalid term override for\",u.type,e),c.$_terms[e]=t.init,m[e]=t}u.terms=m,u.args||(u.args=f.args),u.prepare=o.prepare(u.prepare,f.prepare),u.coerce&&(\"function\"==typeof u.coerce&&(u.coerce={method:u.coerce}),u.coerce.from&&!Array.isArray(u.coerce.from)&&(u.coerce={method:u.coerce.method,from:[].concat(u.coerce.from)})),u.coerce=o.coerce(u.coerce,f.coerce),u.validate=o.validate(u.validate,f.validate);const h=Object.assign({},f.rules);if(u.rules)for(const e in u.rules){const t=u.rules[e];s(\"object\"==typeof t,\"Invalid rule definition for\",u.type,e);let r=t.method;if(void 0===r&&(r=function(){return this.$_addRule(e)}),r&&(s(!l[e],\"Rule conflict in\",u.type,e),l[e]=r),s(!h[e],\"Rule conflict in\",u.type,e),h[e]=t,t.alias){const e=[].concat(t.alias);for(const r of e)l[r]=t.method}t.args&&(t.argsByName=new Map,t.args=t.args.map((e=>(\"string\"==typeof e&&(e={name:e}),s(!t.argsByName.has(e.name),\"Duplicated argument name\",e.name),a.isSchema(e.assert)&&(e.assert=e.assert.strict().label(e.name)),t.argsByName.set(e.name,e),e))))}u.rules=h;const d=Object.assign({},f.modifiers);if(u.modifiers)for(const e in u.modifiers){s(!l[e],\"Rule conflict in\",u.type,e);const t=u.modifiers[e];s(\"function\"==typeof t,\"Invalid modifier definition for\",u.type,e);const r=function(t){return this.rule({[e]:t})};l[e]=r,d[e]=t}if(u.modifiers=d,u.overrides){l._super=r,c.$_super={};for(const e in u.overrides)s(r[e],\"Cannot override missing\",e),u.overrides[e][a.symbols.parent]=r[e],c.$_super[e]=r[e].bind(c);Object.assign(l,u.overrides)}u.cast=Object.assign({},f.cast,u.cast);const p=Object.assign({},f.manifest,u.manifest);return p.build=o.build(u.manifest&&u.manifest.build,f.manifest&&f.manifest.build),u.manifest=p,u.rebuild=o.rebuild(u.rebuild,f.rebuild),c},o.build=function(e,t){return e&&t?function(r,s){return t(e(r,s),s)}:e||t},o.coerce=function(e,t){return e&&t?{from:e.from&&t.from?[...new Set([...e.from,...t.from])]:null,method(r,s){let n;if((!t.from||t.from.includes(typeof r))&&(n=t.method(r,s),n)){if(n.errors||void 0===n.value)return n;r=n.value}if(!e.from||e.from.includes(typeof r)){const t=e.method(r,s);if(t)return t}return n}}:e||t},o.prepare=function(e,t){return e&&t?function(r,s){const n=e(r,s);if(n){if(n.errors||void 0===n.value)return n;r=n.value}return t(r,s)||n}:e||t},o.rebuild=function(e,t){return e&&t?function(r){t(r),e(r)}:e||t},o.validate=function(e,t){return e&&t?function(r,s){const n=t(r,s);if(n){if(n.errors&&(!Array.isArray(n.errors)||n.errors.length))return n;r=n.value}return e(r,s)||n}:e||t}},5107:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(8652),i=r(8160),o=r(3292),l=r(6354),c=r(8901),u=r(9708),f=r(6133),m=r(3328),h=r(1152);let d;const p={types:{alternatives:r(4946),any:r(8068),array:r(546),boolean:r(4937),date:r(7500),function:r(390),link:r(8785),number:r(3832),object:r(8966),string:r(7417),symbol:r(8826)},aliases:{alt:\"alternatives\",bool:\"boolean\",func:\"function\"},root:function(){const e={_types:new Set(Object.keys(p.types))};for(const t of e._types)e[t]=function(...e){return s(!e.length||[\"alternatives\",\"link\",\"object\"].includes(t),\"The\",t,\"type does not allow arguments\"),p.generate(this,p.types[t],e)};for(const t of[\"allow\",\"custom\",\"disallow\",\"equal\",\"exist\",\"forbidden\",\"invalid\",\"not\",\"only\",\"optional\",\"options\",\"prefs\",\"preferences\",\"required\",\"strip\",\"valid\",\"when\"])e[t]=function(...e){return this.any()[t](...e)};Object.assign(e,p.methods);for(const t in p.aliases){const r=p.aliases[t];e[t]=e[r]}return e.x=e.expression,h.setup&&h.setup(e),e}};p.methods={ValidationError:l.ValidationError,version:i.version,cache:a.provider,assert(e,t,...r){p.assert(e,t,!0,r)},attempt:(e,t,...r)=>p.assert(e,t,!1,r),build(e){return s(\"function\"==typeof u.build,\"Manifest functionality disabled\"),u.build(this,e)},checkPreferences(e){i.checkPreferences(e)},compile(e,t){return o.compile(this,e,t)},defaults(e){s(\"function\"==typeof e,\"modifier must be a function\");const t=Object.assign({},this);for(const r of t._types){const n=e(t[r]());s(i.isSchema(n),\"modifier must return a valid schema object\"),t[r]=function(...e){return p.generate(this,n,e)}}return t},expression:(...e)=>new m(...e),extend(...e){i.verifyFlat(e,\"extend\"),d=d||r(3378),s(e.length,\"You need to provide at least one extension\"),this.assert(e,d.extensions);const t=Object.assign({},this);t._types=new Set(t._types);for(let r of e){\"function\"==typeof r&&(r=r(t)),this.assert(r,d.extension);const e=p.expandExtension(r,t);for(const r of e){s(void 0===t[r.type]||t._types.has(r.type),\"Cannot override name\",r.type);const e=r.base||this.any(),n=c.type(e,r);t._types.add(r.type),t[r.type]=function(...e){return p.generate(this,n,e)}}}return t},isError:l.ValidationError.isError,isExpression:m.isTemplate,isRef:f.isRef,isSchema:i.isSchema,in:(...e)=>f.in(...e),override:i.symbols.override,ref:(...e)=>f.create(...e),types(){const e={};for(const t of this._types)e[t]=this[t]();for(const t in p.aliases)e[t]=this[t]();return e}},p.assert=function(e,t,r,s){const a=s[0]instanceof Error||\"string\"==typeof s[0]?s[0]:null,o=null!==a?s[1]:s[0],c=t.validate(e,i.preferences({errors:{stack:!0}},o||{}));let u=c.error;if(!u)return c.value;if(a instanceof Error)throw a;const f=r&&\"function\"==typeof u.annotate?u.annotate():u.message;throw u instanceof l.ValidationError==0&&(u=n(u)),u.message=a?`${a} ${f}`:f,u},p.generate=function(e,t,r){return s(e,\"Must be invoked on a Joi instance.\"),t.$_root=e,t._definition.args&&r.length?t._definition.args(t,...r):t},p.expandExtension=function(e,t){if(\"string\"==typeof e.type)return[e];const r=[];for(const s of t._types)if(e.type.test(s)){const n=Object.assign({},e);n.type=s,n.base=t[s](),r.push(n)}return r},e.exports=p.root()},6914:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(3328);t.compile=function(e,t){if(\"string\"==typeof e)return s(!t,\"Cannot set single message string\"),new a(e);if(a.isTemplate(e))return s(!t,\"Cannot set single message template\"),e;s(\"object\"==typeof e&&!Array.isArray(e),\"Invalid message options\"),t=t?n(t):{};for(let r in e){const n=e[r];if(\"root\"===r||a.isTemplate(n)){t[r]=n;continue}if(\"string\"==typeof n){t[r]=new a(n);continue}s(\"object\"==typeof n&&!Array.isArray(n),\"Invalid message for\",r);const i=r;for(r in t[i]=t[i]||{},n){const e=n[r];\"root\"===r||a.isTemplate(e)?t[i][r]=e:(s(\"string\"==typeof e,\"Invalid message for\",r,\"in\",i),t[i][r]=new a(e))}}return t},t.decompile=function(e){const t={};for(let r in e){const s=e[r];if(\"root\"===r){t.root=s;continue}if(a.isTemplate(s)){t[r]=s.describe({compact:!0});continue}const n=r;for(r in t[n]={},s){const e=s[r];\"root\"!==r?t[n][r]=e.describe({compact:!0}):t[n].root=e}}return t},t.merge=function(e,r){if(!e)return t.compile(r);if(!r)return e;if(\"string\"==typeof r)return new a(r);if(a.isTemplate(r))return r;const i=n(e);for(let e in r){const t=r[e];if(\"root\"===e||a.isTemplate(t)){i[e]=t;continue}if(\"string\"==typeof t){i[e]=new a(t);continue}s(\"object\"==typeof t&&!Array.isArray(t),\"Invalid message for\",e);const n=e;for(e in i[n]=i[n]||{},t){const r=t[e];\"root\"===e||a.isTemplate(r)?i[n][e]=r:(s(\"string\"==typeof r,\"Invalid message for\",e,\"in\",n),i[n][e]=new a(r))}}return i}},2294:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8160),a=r(6133),i={};t.Ids=i.Ids=class{constructor(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}clone(){const e=new i.Ids;return e._byId=new Map(this._byId),e._byKey=new Map(this._byKey),e._schemaChain=this._schemaChain,e}concat(e){e._schemaChain&&(this._schemaChain=!0);for(const[t,r]of e._byId.entries())s(!this._byKey.has(t),\"Schema id conflicts with existing key:\",t),this._byId.set(t,r);for(const[t,r]of e._byKey.entries())s(!this._byId.has(t),\"Schema key conflicts with existing id:\",t),this._byKey.set(t,r)}fork(e,t,r){const a=this._collect(e);a.push({schema:r});const o=a.shift();let l={id:o.id,schema:t(o.schema)};s(n.isSchema(l.schema),\"adjuster function failed to return a joi schema type\");for(const e of a)l={id:e.id,schema:i.fork(e.schema,l.id,l.schema)};return l.schema}labels(e,t=[]){const r=e[0],s=this._get(r);if(!s)return[...t,...e].join(\".\");const n=e.slice(1);return t=[...t,s.schema._flags.label||r],n.length?s.schema._ids.labels(n,t):t.join(\".\")}reach(e,t=[]){const r=e[0],n=this._get(r);s(n,\"Schema does not contain path\",[...t,...e].join(\".\"));const a=e.slice(1);return a.length?n.schema._ids.reach(a,[...t,r]):n.schema}register(e,{key:t}={}){if(!e||!n.isSchema(e))return;(e.$_property(\"schemaChain\")||e._ids._schemaChain)&&(this._schemaChain=!0);const r=e._flags.id;if(r){const t=this._byId.get(r);s(!t||t.schema===e,\"Cannot add different schemas with the same id:\",r),s(!this._byKey.has(r),\"Schema id conflicts with existing key:\",r),this._byId.set(r,{schema:e,id:r})}t&&(s(!this._byKey.has(t),\"Schema already contains key:\",t),s(!this._byId.has(t),\"Schema key conflicts with existing id:\",t),this._byKey.set(t,{schema:e,id:t}))}reset(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}_collect(e,t=[],r=[]){const n=e[0],a=this._get(n);s(a,\"Schema does not contain path\",[...t,...e].join(\".\")),r=[a,...r];const i=e.slice(1);return i.length?a.schema._ids._collect(i,[...t,n],r):r}_get(e){return this._byId.get(e)||this._byKey.get(e)}},i.fork=function(e,r,s){const n=t.schema(e,{each:(e,{key:t})=>{if(r===(e._flags.id||t))return s},ref:!1});return n?n.$_mutateRebuild():e},t.schema=function(e,t){let r;for(const s in e._flags){if(\"_\"===s[0])continue;const n=i.scan(e._flags[s],{source:\"flags\",name:s},t);void 0!==n&&(r=r||e.clone(),r._flags[s]=n)}for(let s=0;s{\"use strict\";const s=r(375),n=r(8571),a=r(9621),i=r(8160);let o;const l={symbol:Symbol(\"ref\"),defaults:{adjust:null,in:!1,iterables:null,map:null,separator:\".\",type:\"value\"}};t.create=function(e,t={}){s(\"string\"==typeof e,\"Invalid reference key:\",e),i.assertOptions(t,[\"adjust\",\"ancestor\",\"in\",\"iterables\",\"map\",\"prefix\",\"render\",\"separator\"]),s(!t.prefix||\"object\"==typeof t.prefix,\"options.prefix must be of type object\");const r=Object.assign({},l.defaults,t);delete r.prefix;const n=r.separator,a=l.context(e,n,t.prefix);if(r.type=a.type,e=a.key,\"value\"===r.type)if(a.root&&(s(!n||e[0]!==n,\"Cannot specify relative path with root prefix\"),r.ancestor=\"root\",e||(e=null)),n&&n===e)e=null,r.ancestor=0;else if(void 0!==r.ancestor)s(!n||!e||e[0]!==n,\"Cannot combine prefix with ancestor option\");else{const[t,s]=l.ancestor(e,n);s&&\"\"===(e=e.slice(s))&&(e=null),r.ancestor=t}return r.path=n?null===e?[]:e.split(n):[e],new l.Ref(r)},t.in=function(e,r={}){return t.create(e,{...r,in:!0})},t.isRef=function(e){return!!e&&!!e[i.symbols.ref]},l.Ref=class{constructor(e){s(\"object\"==typeof e,\"Invalid reference construction\"),i.assertOptions(e,[\"adjust\",\"ancestor\",\"in\",\"iterables\",\"map\",\"path\",\"render\",\"separator\",\"type\",\"depth\",\"key\",\"root\",\"display\"]),s([!1,void 0].includes(e.separator)||\"string\"==typeof e.separator&&1===e.separator.length,\"Invalid separator\"),s(!e.adjust||\"function\"==typeof e.adjust,\"options.adjust must be a function\"),s(!e.map||Array.isArray(e.map),\"options.map must be an array\"),s(!e.map||!e.adjust,\"Cannot set both map and adjust options\"),Object.assign(this,l.defaults,e),s(\"value\"===this.type||void 0===this.ancestor,\"Non-value references cannot reference ancestors\"),Array.isArray(this.map)&&(this.map=new Map(this.map)),this.depth=this.path.length,this.key=this.path.length?this.path.join(this.separator):null,this.root=this.path[0],this.updateDisplay()}resolve(e,t,r,n,a={}){return s(!this.in||a.in,\"Invalid in() reference usage\"),\"global\"===this.type?this._resolve(r.context,t,a):\"local\"===this.type?this._resolve(n,t,a):this.ancestor?\"root\"===this.ancestor?this._resolve(t.ancestors[t.ancestors.length-1],t,a):(s(this.ancestor<=t.ancestors.length,\"Invalid reference exceeds the schema root:\",this.display),this._resolve(t.ancestors[this.ancestor-1],t,a)):this._resolve(e,t,a)}_resolve(e,t,r){let s;if(\"value\"===this.type&&t.mainstay.shadow&&!1!==r.shadow&&(s=t.mainstay.shadow.get(this.absolute(t))),void 0===s&&(s=a(e,this.path,{iterables:this.iterables,functions:!0})),this.adjust&&(s=this.adjust(s)),this.map){const e=this.map.get(s);void 0!==e&&(s=e)}return t.mainstay&&t.mainstay.tracer.resolve(t,this,s),s}toString(){return this.display}absolute(e){return[...e.path.slice(0,-this.ancestor),...this.path]}clone(){return new l.Ref(this)}describe(){const e={path:this.path};\"value\"!==this.type&&(e.type=this.type),\".\"!==this.separator&&(e.separator=this.separator),\"value\"===this.type&&1!==this.ancestor&&(e.ancestor=this.ancestor),this.map&&(e.map=[...this.map]);for(const t of[\"adjust\",\"iterables\",\"render\"])null!==this[t]&&void 0!==this[t]&&(e[t]=this[t]);return!1!==this.in&&(e.in=!0),{ref:e}}updateDisplay(){const e=null!==this.key?this.key:\"\";if(\"value\"!==this.type)return void(this.display=`ref:${this.type}:${e}`);if(!this.separator)return void(this.display=`ref:${e}`);if(!this.ancestor)return void(this.display=`ref:${this.separator}${e}`);if(\"root\"===this.ancestor)return void(this.display=`ref:root:${e}`);if(1===this.ancestor)return void(this.display=`ref:${e||\"..\"}`);const t=new Array(this.ancestor+1).fill(this.separator).join(\"\");this.display=`ref:${t}${e||\"\"}`}},l.Ref.prototype[i.symbols.ref]=!0,t.build=function(e){return\"value\"===(e=Object.assign({},l.defaults,e)).type&&void 0===e.ancestor&&(e.ancestor=1),new l.Ref(e)},l.context=function(e,t,r={}){if(e=e.trim(),r){const s=void 0===r.global?\"$\":r.global;if(s!==t&&e.startsWith(s))return{key:e.slice(s.length),type:\"global\"};const n=void 0===r.local?\"#\":r.local;if(n!==t&&e.startsWith(n))return{key:e.slice(n.length),type:\"local\"};const a=void 0===r.root?\"/\":r.root;if(a!==t&&e.startsWith(a))return{key:e.slice(a.length),type:\"value\",root:!0}}return{key:e,type:\"value\"}},l.ancestor=function(e,t){if(!t)return[1,0];if(e[0]!==t)return[1,0];if(e[1]!==t)return[0,1];let r=2;for(;e[r]===t;)++r;return[r-1,r]},t.toSibling=0,t.toParent=1,t.Manager=class{constructor(){this.refs=[]}register(e,s){if(e)if(s=void 0===s?t.toParent:s,Array.isArray(e))for(const t of e)this.register(t,s);else if(i.isSchema(e))for(const t of e._refs.refs)t.ancestor-s>=0&&this.refs.push({ancestor:t.ancestor-s,root:t.root});else t.isRef(e)&&\"value\"===e.type&&e.ancestor-s>=0&&this.refs.push({ancestor:e.ancestor-s,root:e.root}),o=o||r(3328),o.isTemplate(e)&&this.register(e.refs(),s)}get length(){return this.refs.length}clone(){const e=new t.Manager;return e.refs=n(this.refs),e}reset(){this.refs=[]}roots(){return this.refs.filter((e=>!e.ancestor)).map((e=>e.root))}}},3378:(e,t,r)=>{\"use strict\";const s=r(5107),n={};n.wrap=s.string().min(1).max(2).allow(!1),t.preferences=s.object({allowUnknown:s.boolean(),abortEarly:s.boolean(),artifacts:s.boolean(),cache:s.boolean(),context:s.object(),convert:s.boolean(),dateFormat:s.valid(\"date\",\"iso\",\"string\",\"time\",\"utc\"),debug:s.boolean(),errors:{escapeHtml:s.boolean(),label:s.valid(\"path\",\"key\",!1),language:[s.string(),s.object().ref()],render:s.boolean(),stack:s.boolean(),wrap:{label:n.wrap,array:n.wrap,string:n.wrap}},externals:s.boolean(),messages:s.object(),noDefaults:s.boolean(),nonEnumerables:s.boolean(),presence:s.valid(\"required\",\"optional\",\"forbidden\"),skipFunctions:s.boolean(),stripUnknown:s.object({arrays:s.boolean(),objects:s.boolean()}).or(\"arrays\",\"objects\").allow(!0,!1),warnings:s.boolean()}).strict(),n.nameRx=/^[a-zA-Z0-9]\\w*$/,n.rule=s.object({alias:s.array().items(s.string().pattern(n.nameRx)).single(),args:s.array().items(s.string(),s.object({name:s.string().pattern(n.nameRx).required(),ref:s.boolean(),assert:s.alternatives([s.function(),s.object().schema()]).conditional(\"ref\",{is:!0,then:s.required()}),normalize:s.function(),message:s.string().when(\"assert\",{is:s.function(),then:s.required()})})),convert:s.boolean(),manifest:s.boolean(),method:s.function().allow(!1),multi:s.boolean(),validate:s.function()}),t.extension=s.object({type:s.alternatives([s.string(),s.object().regex()]).required(),args:s.function(),cast:s.object().pattern(n.nameRx,s.object({from:s.function().maxArity(1).required(),to:s.function().minArity(1).maxArity(2).required()})),base:s.object().schema().when(\"type\",{is:s.object().regex(),then:s.forbidden()}),coerce:[s.function().maxArity(3),s.object({method:s.function().maxArity(3).required(),from:s.array().items(s.string()).single()})],flags:s.object().pattern(n.nameRx,s.object({setter:s.string(),default:s.any()})),manifest:{build:s.function().arity(2)},messages:[s.object(),s.string()],modifiers:s.object().pattern(n.nameRx,s.function().minArity(1).maxArity(2)),overrides:s.object().pattern(n.nameRx,s.function()),prepare:s.function().maxArity(3),rebuild:s.function().arity(1),rules:s.object().pattern(n.nameRx,n.rule),terms:s.object().pattern(n.nameRx,s.object({init:s.array().allow(null).required(),manifest:s.object().pattern(/.+/,[s.valid(\"schema\",\"single\"),s.object({mapped:s.object({from:s.string().required(),to:s.string().required()}).required()})])})),validate:s.function().maxArity(3)}).strict(),t.extensions=s.array().items(s.object(),s.function().arity(1)).strict(),n.desc={buffer:s.object({buffer:s.string()}),func:s.object({function:s.function().required(),options:{literal:!0}}),override:s.object({override:!0}),ref:s.object({ref:s.object({type:s.valid(\"value\",\"global\",\"local\"),path:s.array().required(),separator:s.string().length(1).allow(!1),ancestor:s.number().min(0).integer().allow(\"root\"),map:s.array().items(s.array().length(2)).min(1),adjust:s.function(),iterables:s.boolean(),in:s.boolean(),render:s.boolean()}).required()}),regex:s.object({regex:s.string().min(3)}),special:s.object({special:s.valid(\"deep\").required()}),template:s.object({template:s.string().required(),options:s.object()}),value:s.object({value:s.alternatives([s.object(),s.array()]).required()})},n.desc.entity=s.alternatives([s.array().items(s.link(\"...\")),s.boolean(),s.function(),s.number(),s.string(),n.desc.buffer,n.desc.func,n.desc.ref,n.desc.regex,n.desc.special,n.desc.template,n.desc.value,s.link(\"/\")]),n.desc.values=s.array().items(null,s.boolean(),s.function(),s.number().allow(1/0,-1/0),s.string().allow(\"\"),s.symbol(),n.desc.buffer,n.desc.func,n.desc.override,n.desc.ref,n.desc.regex,n.desc.template,n.desc.value),n.desc.messages=s.object().pattern(/.+/,[s.string(),n.desc.template,s.object().pattern(/.+/,[s.string(),n.desc.template])]),t.description=s.object({type:s.string().required(),flags:s.object({cast:s.string(),default:s.any(),description:s.string(),empty:s.link(\"/\"),failover:n.desc.entity,id:s.string(),label:s.string(),only:!0,presence:[\"optional\",\"required\",\"forbidden\"],result:[\"raw\",\"strip\"],strip:s.boolean(),unit:s.string()}).unknown(),preferences:{allowUnknown:s.boolean(),abortEarly:s.boolean(),artifacts:s.boolean(),cache:s.boolean(),convert:s.boolean(),dateFormat:[\"date\",\"iso\",\"string\",\"time\",\"utc\"],errors:{escapeHtml:s.boolean(),label:[\"path\",\"key\"],language:[s.string(),n.desc.ref],wrap:{label:n.wrap,array:n.wrap}},externals:s.boolean(),messages:n.desc.messages,noDefaults:s.boolean(),nonEnumerables:s.boolean(),presence:[\"required\",\"optional\",\"forbidden\"],skipFunctions:s.boolean(),stripUnknown:s.object({arrays:s.boolean(),objects:s.boolean()}).or(\"arrays\",\"objects\").allow(!0,!1),warnings:s.boolean()},allow:n.desc.values,invalid:n.desc.values,rules:s.array().min(1).items({name:s.string().required(),args:s.object().min(1),keep:s.boolean(),message:[s.string(),n.desc.messages],warn:s.boolean()}),keys:s.object().pattern(/.*/,s.link(\"/\")),link:n.desc.ref}).pattern(/^[a-z]\\w*$/,s.any())},493:(e,t,r)=>{\"use strict\";const s=r(8571),n=r(9621),a=r(8160),i={value:Symbol(\"value\")};e.exports=i.State=class{constructor(e,t,r){this.path=e,this.ancestors=t,this.mainstay=r.mainstay,this.schemas=r.schemas,this.debug=null}localize(e,t=null,r=null){const s=new i.State(e,t,this);return r&&s.schemas&&(s.schemas=[i.schemas(r),...s.schemas]),s}nest(e,t){const r=new i.State(this.path,this.ancestors,this);return r.schemas=r.schemas&&[i.schemas(e),...r.schemas],r.debug=t,r}shadow(e,t){this.mainstay.shadow=this.mainstay.shadow||new i.Shadow,this.mainstay.shadow.set(this.path,e,t)}snapshot(){this.mainstay.shadow&&(this._snapshot=s(this.mainstay.shadow.node(this.path))),this.mainstay.snapshot()}restore(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.restore()}commit(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.commit()}},i.schemas=function(e){return a.isSchema(e)?{schema:e}:e},i.Shadow=class{constructor(){this._values=null}set(e,t,r){if(!e.length)return;if(\"strip\"===r&&\"number\"==typeof e[e.length-1])return;this._values=this._values||new Map;let s=this._values;for(let t=0;t{\"use strict\";const s=r(375),n=r(8571),a=r(5277),i=r(1447),o=r(8160),l=r(6354),c=r(6133),u={symbol:Symbol(\"template\"),opens:new Array(1e3).join(\"\\0\"),closes:new Array(1e3).join(\"\u0001\"),dateFormat:{date:Date.prototype.toDateString,iso:Date.prototype.toISOString,string:Date.prototype.toString,time:Date.prototype.toTimeString,utc:Date.prototype.toUTCString}};e.exports=u.Template=class{constructor(e,t){if(s(\"string\"==typeof e,\"Template source must be a string\"),s(!e.includes(\"\\0\")&&!e.includes(\"\u0001\"),\"Template source cannot contain reserved control characters\"),this.source=e,this.rendered=e,this._template=null,t){const{functions:e,...r}=t;this._settings=Object.keys(r).length?n(r):void 0,this._functions=e,this._functions&&(s(Object.keys(this._functions).every((e=>\"string\"==typeof e)),\"Functions keys must be strings\"),s(Object.values(this._functions).every((e=>\"function\"==typeof e)),\"Functions values must be functions\"))}else this._settings=void 0,this._functions=void 0;this._parse()}_parse(){if(!this.source.includes(\"{\"))return;const e=u.encode(this.source),t=u.split(e);let r=!1;const s=[],n=t.shift();n&&s.push(n);for(const e of t){const t=\"{\"!==e[0],n=t?\"}\":\"}}\",a=e.indexOf(n);if(-1===a||\"{\"===e[1]){s.push(`{${u.decode(e)}`);continue}let i=e.slice(t?0:1,a);const o=\":\"===i[0];o&&(i=i.slice(1));const l=this._ref(u.decode(i),{raw:t,wrapped:o});s.push(l),\"string\"!=typeof l&&(r=!0);const c=e.slice(a+n.length);c&&s.push(u.decode(c))}r?this._template=s:this.rendered=s.join(\"\")}static date(e,t){return u.dateFormat[t.dateFormat].call(e)}describe(e={}){if(!this._settings&&e.compact)return this.source;const t={template:this.source};return this._settings&&(t.options=this._settings),this._functions&&(t.functions=this._functions),t}static build(e){return new u.Template(e.template,e.options||e.functions?{...e.options,functions:e.functions}:void 0)}isDynamic(){return!!this._template}static isTemplate(e){return!!e&&!!e[o.symbols.template]}refs(){if(!this._template)return;const e=[];for(const t of this._template)\"string\"!=typeof t&&e.push(...t.refs);return e}resolve(e,t,r,s){return this._template&&1===this._template.length?this._part(this._template[0],e,t,r,s,{}):this.render(e,t,r,s)}_part(e,...t){return e.ref?e.ref.resolve(...t):e.formula.evaluate(t)}render(e,t,r,s,n={}){if(!this.isDynamic())return this.rendered;const i=[];for(const o of this._template)if(\"string\"==typeof o)i.push(o);else{const l=this._part(o,e,t,r,s,n),c=u.stringify(l,e,t,r,s,n);if(void 0!==c){const e=o.raw||!1===(n.errors&&n.errors.escapeHtml)?c:a(c);i.push(u.wrap(e,o.wrapped&&r.errors.wrap.label))}}return i.join(\"\")}_ref(e,{raw:t,wrapped:r}){const s=[],n=e=>{const t=c.create(e,this._settings);return s.push(t),e=>{const r=t.resolve(...e);return void 0!==r?r:null}};try{const t=this._functions?{...u.functions,...this._functions}:u.functions;var a=new i.Parser(e,{reference:n,functions:t,constants:u.constants})}catch(t){throw t.message=`Invalid template variable \"${e}\" fails due to: ${t.message}`,t}if(a.single){if(\"reference\"===a.single.type){const e=s[0];return{ref:e,raw:t,refs:s,wrapped:r||\"local\"===e.type&&\"label\"===e.key}}return u.stringify(a.single.value)}return{formula:a,raw:t,refs:s}}toString(){return this.source}},u.Template.prototype[o.symbols.template]=!0,u.Template.prototype.isImmutable=!0,u.encode=function(e){return e.replace(/\\\\(\\{+)/g,((e,t)=>u.opens.slice(0,t.length))).replace(/\\\\(\\}+)/g,((e,t)=>u.closes.slice(0,t.length)))},u.decode=function(e){return e.replace(/\\u0000/g,\"{\").replace(/\\u0001/g,\"}\")},u.split=function(e){const t=[];let r=\"\";for(let s=0;s ${s.toString()}`);e=t}if(!Array.isArray(e))return e.toString();const f=[];for(const i of e)f.push(u.stringify(i,t,r,s,n,{arrayItems:!0,...a}));return u.wrap(f.join(\", \"),!l&&o.array)},u.constants={true:!0,false:!1,null:null,second:1e3,minute:6e4,hour:36e5,day:864e5},u.functions={if:(e,t,r)=>e?t:r,length:e=>\"string\"==typeof e?e.length:e&&\"object\"==typeof e?Array.isArray(e)?e.length:Object.keys(e).length:null,msg(e){const[t,r,s,n,a]=this,i=a.messages;if(!i)return\"\";const o=l.template(t,i[0],e,r,s)||l.template(t,i[1],e,r,s);return o?o.render(t,r,s,n,a):\"\"},number:e=>\"number\"==typeof e?e:\"string\"==typeof e?parseFloat(e):\"boolean\"==typeof e?e?1:0:e instanceof Date?e.getTime():null}},4946:(e,t,r)=>{\"use strict\";const s=r(375),n=r(1687),a=r(8068),i=r(8160),o=r(3292),l=r(6354),c=r(6133),u={};e.exports=a.extend({type:\"alternatives\",flags:{match:{default:\"any\"}},terms:{matches:{init:[],register:c.toSibling}},args:(e,...t)=>1===t.length&&Array.isArray(t[0])?e.try(...t[0]):e.try(...t),validate(e,t){const{schema:r,error:s,state:a,prefs:i}=t;if(r._flags.match){const t=[],o=[];for(let s=0;sl.details(e,{override:!1})))})};if(\"one\"===r._flags.match)return 1===t.length?{value:t[0]}:{errors:s(\"alternatives.one\")};if(t.length!==r.$_terms.matches.length)return{errors:s(\"alternatives.all\",{details:o.map((e=>l.details(e,{override:!1})))})};const c=e=>e.$_terms.matches.some((e=>\"object\"===e.schema.type||\"alternatives\"===e.schema.type&&c(e.schema)));return c(r)?{value:t.reduce(((e,t)=>n(e,t,{mergeArrays:!1})))}:{value:t[t.length-1]}}const o=[];for(let t=0;t\"is\"!==r.path[0]&&\"string\"!=typeof t._flags.label?t.label(e):void 0,ref:!1})}},rebuild(e){e.$_modify({each:t=>{i.isSchema(t)&&\"array\"===t.type&&e.$_setFlag(\"_arrayItems\",!0,{clone:!1})}})},manifest:{build(e,t){if(t.matches)for(const r of t.matches){const{schema:t,ref:s,is:n,not:a,then:i,otherwise:o}=r;e=t?e.try(t):s?e.conditional(s,{is:n,then:i,not:a,otherwise:o,switch:r.switch}):e.conditional(n,{then:i,otherwise:o})}return e}},messages:{\"alternatives.all\":\"{{#label}} does not match all of the required types\",\"alternatives.any\":\"{{#label}} does not match any of the allowed types\",\"alternatives.match\":\"{{#label}} does not match any of the allowed types\",\"alternatives.one\":\"{{#label}} matches more than one allowed type\",\"alternatives.types\":\"{{#label}} must be one of {{#types}}\"}}),u.errors=function(e,{error:t,state:r}){if(!e.length)return{errors:t(\"alternatives.any\")};if(1===e.length)return{errors:e[0].reports};const s=new Set,n=[];for(const{reports:a,schema:i}of e){if(a.length>1)return u.unmatched(e,t);const o=a[0];if(o instanceof l.Report==0)return u.unmatched(e,t);if(o.state.path.length!==r.path.length){n.push({type:i.type,report:o});continue}if(\"any.only\"===o.code){for(const e of o.local.valids)s.add(e);continue}const[c,f]=o.code.split(\".\");\"base\"!==f?n.push({type:i.type,report:o}):\"object.base\"===o.code?s.add(o.local.type):s.add(c)}return n.length?1===n.length?{errors:n[0].report}:u.unmatched(e,t):{errors:t(\"alternatives.types\",{types:[...s]})}},u.unmatched=function(e,t){const r=[];for(const t of e)r.push(...t.reports);return{errors:t(\"alternatives.match\",l.details(r,{override:!1}))}}},8068:(e,t,r)=>{\"use strict\";const s=r(375),n=r(7629),a=r(8160),i=r(6914);e.exports=n.extend({type:\"any\",flags:{only:{default:!1}},terms:{alterations:{init:null},examples:{init:null},externals:{init:null},metas:{init:[]},notes:{init:[]},shared:{init:null},tags:{init:[]},whens:{init:null}},rules:{custom:{method(e,t){return s(\"function\"==typeof e,\"Method must be a function\"),s(void 0===t||t&&\"string\"==typeof t,\"Description must be a non-empty string\"),this.$_addRule({name:\"custom\",args:{method:e,description:t}})},validate(e,t,{method:r}){try{return r(e,t)}catch(e){return t.error(\"any.custom\",{error:e})}},args:[\"method\",\"description\"],multi:!0},messages:{method(e){return this.prefs({messages:e})}},shared:{method(e){s(a.isSchema(e)&&e._flags.id,\"Schema must be a schema with an id\");const t=this.clone();return t.$_terms.shared=t.$_terms.shared||[],t.$_terms.shared.push(e),t.$_mutateRegister(e),t}},warning:{method(e,t){return s(e&&\"string\"==typeof e,\"Invalid warning code\"),this.$_addRule({name:\"warning\",args:{code:e,local:t},warn:!0})},validate:(e,t,{code:r,local:s})=>t.error(r,s),args:[\"code\",\"local\"],multi:!0}},modifiers:{keep(e,t=!0){e.keep=t},message(e,t){e.message=i.compile(t)},warn(e,t=!0){e.warn=t}},manifest:{build(e,t){for(const r in t){const s=t[r];if([\"examples\",\"externals\",\"metas\",\"notes\",\"tags\"].includes(r))for(const t of s)e=e[r.slice(0,-1)](t);else if(\"alterations\"!==r)if(\"whens\"!==r){if(\"shared\"===r)for(const t of s)e=e.shared(t)}else for(const t of s){const{ref:r,is:s,not:n,then:a,otherwise:i,concat:o}=t;e=o?e.concat(o):r?e.when(r,{is:s,not:n,then:a,otherwise:i,switch:t.switch,break:t.break}):e.when(s,{then:a,otherwise:i,break:t.break})}else{const t={};for(const{target:e,adjuster:r}of s)t[e]=r;e=e.alter(t)}}return e}},messages:{\"any.custom\":\"{{#label}} failed custom validation because {{#error.message}}\",\"any.default\":\"{{#label}} threw an error when running default method\",\"any.failover\":\"{{#label}} threw an error when running failover method\",\"any.invalid\":\"{{#label}} contains an invalid value\",\"any.only\":'{{#label}} must be {if(#valids.length == 1, \"\", \"one of \")}{{#valids}}',\"any.ref\":\"{{#label}} {{#arg}} references {{:#ref}} which {{#reason}}\",\"any.required\":\"{{#label}} is required\",\"any.unknown\":\"{{#label}} is not allowed\"}})},546:(e,t,r)=>{\"use strict\";const s=r(375),n=r(9474),a=r(9621),i=r(8068),o=r(8160),l=r(3292),c={};e.exports=i.extend({type:\"array\",flags:{single:{default:!1},sparse:{default:!1}},terms:{items:{init:[],manifest:\"schema\"},ordered:{init:[],manifest:\"schema\"},_exclusions:{init:[]},_inclusions:{init:[]},_requireds:{init:[]}},coerce:{from:\"object\",method(e,{schema:t,state:r,prefs:s}){if(!Array.isArray(e))return;const n=t.$_getRule(\"sort\");return n?c.sort(t,e,n.args.options,r,s):void 0}},validate(e,{schema:t,error:r}){if(!Array.isArray(e)){if(t._flags.single){const t=[e];return t[o.symbols.arraySingle]=!0,{value:t}}return{errors:r(\"array.base\")}}if(t.$_getRule(\"items\")||t.$_terms.externals)return{value:e.slice()}},rules:{has:{method(e){e=this.$_compile(e,{appendPath:!0});const t=this.$_addRule({name:\"has\",args:{schema:e}});return t.$_mutateRegister(e),t},validate(e,{state:t,prefs:r,error:s},{schema:n}){const a=[e,...t.ancestors];for(let s=0;sthis.$_compile(e[r])),r,{append:!0});t.$_terms.items.push(s)}return t.$_mutateRebuild()},validate(e,{schema:t,error:r,state:s,prefs:n,errorsArray:a}){const i=t.$_terms._requireds.slice(),l=t.$_terms.ordered.slice(),u=[...t.$_terms._inclusions,...i],f=!e[o.symbols.arraySingle];delete e[o.symbols.arraySingle];const m=a();let h=e.length;for(let a=0;ao.compare(e.length,r,n)?e:t.error(\"array.\"+s,{limit:a.limit,value:e}),args:[{name:\"limit\",ref:!0,assert:o.limit,message:\"must be a positive integer\"}]},max:{method(e){return this.$_addRule({name:\"max\",method:\"length\",args:{limit:e},operator:\"<=\"})}},min:{method(e){return this.$_addRule({name:\"min\",method:\"length\",args:{limit:e},operator:\">=\"})}},ordered:{method(...e){o.verifyFlat(e,\"ordered\");const t=this.$_addRule(\"items\");for(let r=0;rthis.$_compile(e[r])),r,{append:!0});c.validateSingle(s,t),t.$_mutateRegister(s),t.$_terms.ordered.push(s)}return t.$_mutateRebuild()}},single:{method(e){const t=void 0===e||!!e;return s(!t||!this._flags._arrayItems,\"Cannot specify single rule when array has array items\"),this.$_setFlag(\"single\",t)}},sort:{method(e={}){o.assertOptions(e,[\"by\",\"order\"]);const t={order:e.order||\"ascending\"};return e.by&&(t.by=l.ref(e.by,{ancestor:0}),s(!t.by.ancestor,\"Cannot sort by ancestor\")),this.$_addRule({name:\"sort\",args:{options:t}})},validate(e,{error:t,state:r,prefs:s,schema:n},{options:a}){const{value:i,errors:o}=c.sort(n,e,a,r,s);if(o)return o;for(let r=0;rnew Set(e)}},rebuild(e){e.$_terms._inclusions=[],e.$_terms._exclusions=[],e.$_terms._requireds=[];for(const t of e.$_terms.items)c.validateSingle(t,e),\"required\"===t._flags.presence?e.$_terms._requireds.push(t):\"forbidden\"===t._flags.presence?e.$_terms._exclusions.push(t):e.$_terms._inclusions.push(t);for(const t of e.$_terms.ordered)c.validateSingle(t,e)},manifest:{build:(e,t)=>(t.items&&(e=e.items(...t.items)),t.ordered&&(e=e.ordered(...t.ordered)),e)},messages:{\"array.base\":\"{{#label}} must be an array\",\"array.excludes\":\"{{#label}} contains an excluded value\",\"array.hasKnown\":\"{{#label}} does not contain at least one required match for type {:#patternLabel}\",\"array.hasUnknown\":\"{{#label}} does not contain at least one required match\",\"array.includes\":\"{{#label}} does not match any of the allowed types\",\"array.includesRequiredBoth\":\"{{#label}} does not contain {{#knownMisses}} and {{#unknownMisses}} other required value(s)\",\"array.includesRequiredKnowns\":\"{{#label}} does not contain {{#knownMisses}}\",\"array.includesRequiredUnknowns\":\"{{#label}} does not contain {{#unknownMisses}} required value(s)\",\"array.length\":\"{{#label}} must contain {{#limit}} items\",\"array.max\":\"{{#label}} must contain less than or equal to {{#limit}} items\",\"array.min\":\"{{#label}} must contain at least {{#limit}} items\",\"array.orderedLength\":\"{{#label}} must contain at most {{#limit}} items\",\"array.sort\":\"{{#label}} must be sorted in {#order} order by {{#by}}\",\"array.sort.mismatching\":\"{{#label}} cannot be sorted due to mismatching types\",\"array.sort.unsupported\":\"{{#label}} cannot be sorted due to unsupported type {#type}\",\"array.sparse\":\"{{#label}} must not be a sparse array item\",\"array.unique\":\"{{#label}} contains a duplicate value\"}}),c.fillMissedErrors=function(e,t,r,s,n,a){const i=[];let o=0;for(const e of r){const t=e._flags.label;t?i.push(t):++o}i.length?o?t.push(e.$_createError(\"array.includesRequiredBoth\",s,{knownMisses:i,unknownMisses:o},n,a)):t.push(e.$_createError(\"array.includesRequiredKnowns\",s,{knownMisses:i},n,a)):t.push(e.$_createError(\"array.includesRequiredUnknowns\",s,{unknownMisses:o},n,a))},c.fillOrderedErrors=function(e,t,r,s,n,a){const i=[];for(const e of r)\"required\"===e._flags.presence&&i.push(e);i.length&&c.fillMissedErrors(e,t,i,s,n,a)},c.fillDefault=function(e,t,r,s){const n=[];let a=!0;for(let i=e.length-1;i>=0;--i){const o=e[i],l=[t,...r.ancestors],c=o.$_validate(void 0,r.localize(r.path,l,o),s).value;if(a){if(void 0===c)continue;a=!1}n.unshift(c)}n.length&&t.push(...n)},c.fastSplice=function(e,t){let r=t;for(;r{let f=c.compare(l,u,i,o);if(null!==f)return f;if(r.by&&(l=r.by.resolve(l,s,n),u=r.by.resolve(u,s,n)),f=c.compare(l,u,i,o),null!==f)return f;const m=typeof l;if(m!==typeof u)throw e.$_createError(\"array.sort.mismatching\",t,null,s,n);if(\"number\"!==m&&\"string\"!==m)throw e.$_createError(\"array.sort.unsupported\",t,{type:m},s,n);return\"number\"===m?(l-u)*a:l{\"use strict\";const s=r(375),n=r(8068),a=r(8160),i=r(2036),o={isBool:function(e){return\"boolean\"==typeof e}};e.exports=n.extend({type:\"boolean\",flags:{sensitive:{default:!1}},terms:{falsy:{init:null,manifest:\"values\"},truthy:{init:null,manifest:\"values\"}},coerce(e,{schema:t}){if(\"boolean\"!=typeof e){if(\"string\"==typeof e){const r=t._flags.sensitive?e:e.toLowerCase();e=\"true\"===r||\"false\"!==r&&e}return\"boolean\"!=typeof e&&(e=t.$_terms.truthy&&t.$_terms.truthy.has(e,null,null,!t._flags.sensitive)||(!t.$_terms.falsy||!t.$_terms.falsy.has(e,null,null,!t._flags.sensitive))&&e),{value:e}}},validate(e,{error:t}){if(\"boolean\"!=typeof e)return{value:e,errors:t(\"boolean.base\")}},rules:{truthy:{method(...e){a.verifyFlat(e,\"truthy\");const t=this.clone();t.$_terms.truthy=t.$_terms.truthy||new i;for(let r=0;re?1:0},string:{from:o.isBool,to:(e,t)=>e?\"true\":\"false\"}},manifest:{build:(e,t)=>(t.truthy&&(e=e.truthy(...t.truthy)),t.falsy&&(e=e.falsy(...t.falsy)),e)},messages:{\"boolean.base\":\"{{#label}} must be a boolean\"}})},7500:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8068),a=r(8160),i=r(3328),o={isDate:function(e){return e instanceof Date}};e.exports=n.extend({type:\"date\",coerce:{from:[\"number\",\"string\"],method:(e,{schema:t})=>({value:o.parse(e,t._flags.format)||e})},validate(e,{schema:t,error:r,prefs:s}){if(e instanceof Date&&!isNaN(e.getTime()))return;const n=t._flags.format;return s.convert&&n&&\"string\"==typeof e?{value:e,errors:r(\"date.format\",{format:n})}:{value:e,errors:r(\"date.base\")}},rules:{compare:{method:!1,validate(e,t,{date:r},{name:s,operator:n,args:i}){const o=\"now\"===r?Date.now():r.getTime();return a.compare(e.getTime(),o,n)?e:t.error(\"date.\"+s,{limit:i.date,value:e})},args:[{name:\"date\",ref:!0,normalize:e=>\"now\"===e?e:o.parse(e),assert:e=>null!==e,message:\"must have a valid date format\"}]},format:{method(e){return s([\"iso\",\"javascript\",\"unix\"].includes(e),\"Unknown date format\",e),this.$_setFlag(\"format\",e)}},greater:{method(e){return this.$_addRule({name:\"greater\",method:\"compare\",args:{date:e},operator:\">\"})}},iso:{method(){return this.format(\"iso\")}},less:{method(e){return this.$_addRule({name:\"less\",method:\"compare\",args:{date:e},operator:\"<\"})}},max:{method(e){return this.$_addRule({name:\"max\",method:\"compare\",args:{date:e},operator:\"<=\"})}},min:{method(e){return this.$_addRule({name:\"min\",method:\"compare\",args:{date:e},operator:\">=\"})}},timestamp:{method(e=\"javascript\"){return s([\"javascript\",\"unix\"].includes(e),'\"type\" must be one of \"javascript, unix\"'),this.format(e)}}},cast:{number:{from:o.isDate,to:(e,t)=>e.getTime()},string:{from:o.isDate,to:(e,{prefs:t})=>i.date(e,t)}},messages:{\"date.base\":\"{{#label}} must be a valid date\",\"date.format\":'{{#label}} must be in {msg(\"date.format.\" + #format) || #format} format',\"date.greater\":\"{{#label}} must be greater than {{:#limit}}\",\"date.less\":\"{{#label}} must be less than {{:#limit}}\",\"date.max\":\"{{#label}} must be less than or equal to {{:#limit}}\",\"date.min\":\"{{#label}} must be greater than or equal to {{:#limit}}\",\"date.format.iso\":\"ISO 8601 date\",\"date.format.javascript\":\"timestamp or number of milliseconds\",\"date.format.unix\":\"timestamp or number of seconds\"}}),o.parse=function(e,t){if(e instanceof Date)return e;if(\"string\"!=typeof e&&(isNaN(e)||!isFinite(e)))return null;if(/^\\s*$/.test(e))return null;if(\"iso\"===t)return a.isIsoDate(e)?o.date(e.toString()):null;const r=e;if(\"string\"==typeof e&&/^[+-]?\\d+(\\.\\d+)?$/.test(e)&&(e=parseFloat(e)),t){if(\"javascript\"===t)return o.date(1*e);if(\"unix\"===t)return o.date(1e3*e);if(\"string\"==typeof r)return null}return o.date(e)},o.date=function(e){const t=new Date(e);return isNaN(t.getTime())?null:t}},390:(e,t,r)=>{\"use strict\";const s=r(375),n=r(7824);e.exports=n.extend({type:\"function\",properties:{typeof:\"function\"},rules:{arity:{method(e){return s(Number.isSafeInteger(e)&&e>=0,\"n must be a positive integer\"),this.$_addRule({name:\"arity\",args:{n:e}})},validate:(e,t,{n:r})=>e.length===r?e:t.error(\"function.arity\",{n:r})},class:{method(){return this.$_addRule(\"class\")},validate:(e,t)=>/^\\s*class\\s/.test(e.toString())?e:t.error(\"function.class\",{value:e})},minArity:{method(e){return s(Number.isSafeInteger(e)&&e>0,\"n must be a strict positive integer\"),this.$_addRule({name:\"minArity\",args:{n:e}})},validate:(e,t,{n:r})=>e.length>=r?e:t.error(\"function.minArity\",{n:r})},maxArity:{method(e){return s(Number.isSafeInteger(e)&&e>=0,\"n must be a positive integer\"),this.$_addRule({name:\"maxArity\",args:{n:e}})},validate:(e,t,{n:r})=>e.length<=r?e:t.error(\"function.maxArity\",{n:r})}},messages:{\"function.arity\":\"{{#label}} must have an arity of {{#n}}\",\"function.class\":\"{{#label}} must be a class\",\"function.maxArity\":\"{{#label}} must have an arity lesser or equal to {{#n}}\",\"function.minArity\":\"{{#label}} must have an arity greater or equal to {{#n}}\"}})},7824:(e,t,r)=>{\"use strict\";const s=r(978),n=r(375),a=r(8571),i=r(3652),o=r(8068),l=r(8160),c=r(3292),u=r(6354),f=r(6133),m=r(3328),h={renameDefaults:{alias:!1,multiple:!1,override:!1}};e.exports=o.extend({type:\"_keys\",properties:{typeof:\"object\"},flags:{unknown:{default:void 0}},terms:{dependencies:{init:null},keys:{init:null,manifest:{mapped:{from:\"schema\",to:\"key\"}}},patterns:{init:null},renames:{init:null}},args:(e,t)=>e.keys(t),validate(e,{schema:t,error:r,state:s,prefs:n}){if(!e||typeof e!==t.$_property(\"typeof\")||Array.isArray(e))return{value:e,errors:r(\"object.base\",{type:t.$_property(\"typeof\")})};if(!(t.$_terms.renames||t.$_terms.dependencies||t.$_terms.keys||t.$_terms.patterns||t.$_terms.externals))return;e=h.clone(e,n);const a=[];if(t.$_terms.renames&&!h.rename(t,e,s,n,a))return{value:e,errors:a};if(!t.$_terms.keys&&!t.$_terms.patterns&&!t.$_terms.dependencies)return{value:e,errors:a};const i=new Set(Object.keys(e));if(t.$_terms.keys){const r=[e,...s.ancestors];for(const o of t.$_terms.keys){const t=o.key,l=e[t];i.delete(t);const c=s.localize([...s.path,t],r,o),u=o.schema.$_validate(l,c,n);if(u.errors){if(n.abortEarly)return{value:e,errors:u.errors};void 0!==u.value&&(e[t]=u.value),a.push(...u.errors)}else\"strip\"===o.schema._flags.result||void 0===u.value&&void 0!==l?delete e[t]:void 0!==u.value&&(e[t]=u.value)}}if(i.size||t._flags._hasPatternMatch){const r=h.unknown(t,e,i,a,s,n);if(r)return r}if(t.$_terms.dependencies)for(const r of t.$_terms.dependencies){if(null!==r.key&&!1===h.isPresent(r.options)(r.key.resolve(e,s,n,null,{shadow:!1})))continue;const i=h.dependencies[r.rel](t,r,e,s,n);if(i){const r=t.$_createError(i.code,e,i.context,s,n);if(n.abortEarly)return{value:e,errors:r};a.push(r)}}return{value:e,errors:a}},rules:{and:{method(...e){return l.verifyFlat(e,\"and\"),h.dependency(this,\"and\",null,e)}},append:{method(e){return null==e||0===Object.keys(e).length?this:this.keys(e)}},assert:{method(e,t,r){m.isTemplate(e)||(e=c.ref(e)),n(void 0===r||\"string\"==typeof r,\"Message must be a string\"),t=this.$_compile(t,{appendPath:!0});const s=this.$_addRule({name:\"assert\",args:{subject:e,schema:t,message:r}});return s.$_mutateRegister(e),s.$_mutateRegister(t),s},validate(e,{error:t,prefs:r,state:s},{subject:n,schema:a,message:i}){const o=n.resolve(e,s,r),l=f.isRef(n)?n.absolute(s):[];return a.$_match(o,s.localize(l,[e,...s.ancestors],a),r)?e:t(\"object.assert\",{subject:n,message:i})},args:[\"subject\",\"schema\",\"message\"],multi:!0},instance:{method(e,t){return n(\"function\"==typeof e,\"constructor must be a function\"),t=t||e.name,this.$_addRule({name:\"instance\",args:{constructor:e,name:t}})},validate:(e,t,{constructor:r,name:s})=>e instanceof r?e:t.error(\"object.instance\",{type:s,value:e}),args:[\"constructor\",\"name\"]},keys:{method(e){n(void 0===e||\"object\"==typeof e,\"Object schema must be a valid object\"),n(!l.isSchema(e),\"Object schema cannot be a joi schema\");const t=this.clone();if(e)if(Object.keys(e).length){t.$_terms.keys=t.$_terms.keys?t.$_terms.keys.filter((t=>!e.hasOwnProperty(t.key))):new h.Keys;for(const r in e)l.tryWithPath((()=>t.$_terms.keys.push({key:r,schema:this.$_compile(e[r])})),r)}else t.$_terms.keys=new h.Keys;else t.$_terms.keys=null;return t.$_mutateRebuild()}},length:{method(e){return this.$_addRule({name:\"length\",args:{limit:e},operator:\"=\"})},validate:(e,t,{limit:r},{name:s,operator:n,args:a})=>l.compare(Object.keys(e).length,r,n)?e:t.error(\"object.\"+s,{limit:a.limit,value:e}),args:[{name:\"limit\",ref:!0,assert:l.limit,message:\"must be a positive integer\"}]},max:{method(e){return this.$_addRule({name:\"max\",method:\"length\",args:{limit:e},operator:\"<=\"})}},min:{method(e){return this.$_addRule({name:\"min\",method:\"length\",args:{limit:e},operator:\">=\"})}},nand:{method(...e){return l.verifyFlat(e,\"nand\"),h.dependency(this,\"nand\",null,e)}},or:{method(...e){return l.verifyFlat(e,\"or\"),h.dependency(this,\"or\",null,e)}},oxor:{method(...e){return h.dependency(this,\"oxor\",null,e)}},pattern:{method(e,t,r={}){const s=e instanceof RegExp;s||(e=this.$_compile(e,{appendPath:!0})),n(void 0!==t,\"Invalid rule\"),l.assertOptions(r,[\"fallthrough\",\"matches\"]),s&&n(!e.flags.includes(\"g\")&&!e.flags.includes(\"y\"),\"pattern should not use global or sticky mode\"),t=this.$_compile(t,{appendPath:!0});const a=this.clone();a.$_terms.patterns=a.$_terms.patterns||[];const i={[s?\"regex\":\"schema\"]:e,rule:t};return r.matches&&(i.matches=this.$_compile(r.matches),\"array\"!==i.matches.type&&(i.matches=i.matches.$_root.array().items(i.matches)),a.$_mutateRegister(i.matches),a.$_setFlag(\"_hasPatternMatch\",!0,{clone:!1})),r.fallthrough&&(i.fallthrough=!0),a.$_terms.patterns.push(i),a.$_mutateRegister(t),a}},ref:{method(){return this.$_addRule(\"ref\")},validate:(e,t)=>f.isRef(e)?e:t.error(\"object.refType\",{value:e})},regex:{method(){return this.$_addRule(\"regex\")},validate:(e,t)=>e instanceof RegExp?e:t.error(\"object.regex\",{value:e})},rename:{method(e,t,r={}){n(\"string\"==typeof e||e instanceof RegExp,\"Rename missing the from argument\"),n(\"string\"==typeof t||t instanceof m,\"Invalid rename to argument\"),n(t!==e,\"Cannot rename key to same name:\",e),l.assertOptions(r,[\"alias\",\"ignoreUndefined\",\"override\",\"multiple\"]);const a=this.clone();a.$_terms.renames=a.$_terms.renames||[];for(const t of a.$_terms.renames)n(t.from!==e,\"Cannot rename the same key multiple times\");return t instanceof m&&a.$_mutateRegister(t),a.$_terms.renames.push({from:e,to:t,options:s(h.renameDefaults,r)}),a}},schema:{method(e=\"any\"){return this.$_addRule({name:\"schema\",args:{type:e}})},validate:(e,t,{type:r})=>!l.isSchema(e)||\"any\"!==r&&e.type!==r?t.error(\"object.schema\",{type:r}):e},unknown:{method(e){return this.$_setFlag(\"unknown\",!1!==e)}},with:{method(e,t,r={}){return h.dependency(this,\"with\",e,t,r)}},without:{method(e,t,r={}){return h.dependency(this,\"without\",e,t,r)}},xor:{method(...e){return l.verifyFlat(e,\"xor\"),h.dependency(this,\"xor\",null,e)}}},overrides:{default(e,t){return void 0===e&&(e=l.symbols.deepDefault),this.$_parent(\"default\",e,t)}},rebuild(e){if(e.$_terms.keys){const t=new i.Sorter;for(const r of e.$_terms.keys)l.tryWithPath((()=>t.add(r,{after:r.schema.$_rootReferences(),group:r.key})),r.key);e.$_terms.keys=new h.Keys(...t.nodes)}},manifest:{build(e,t){if(t.keys&&(e=e.keys(t.keys)),t.dependencies)for(const{rel:r,key:s=null,peers:n,options:a}of t.dependencies)e=h.dependency(e,r,s,n,a);if(t.patterns)for(const{regex:r,schema:s,rule:n,fallthrough:a,matches:i}of t.patterns)e=e.pattern(r||s,n,{fallthrough:a,matches:i});if(t.renames)for(const{from:r,to:s,options:n}of t.renames)e=e.rename(r,s,n);return e}},messages:{\"object.and\":\"{{#label}} contains {{#presentWithLabels}} without its required peers {{#missingWithLabels}}\",\"object.assert\":'{{#label}} is invalid because {if(#subject.key, `\"` + #subject.key + `\" failed to ` + (#message || \"pass the assertion test\"), #message || \"the assertion failed\")}',\"object.base\":\"{{#label}} must be of type {{#type}}\",\"object.instance\":\"{{#label}} must be an instance of {{:#type}}\",\"object.length\":'{{#label}} must have {{#limit}} key{if(#limit == 1, \"\", \"s\")}',\"object.max\":'{{#label}} must have less than or equal to {{#limit}} key{if(#limit == 1, \"\", \"s\")}',\"object.min\":'{{#label}} must have at least {{#limit}} key{if(#limit == 1, \"\", \"s\")}',\"object.missing\":\"{{#label}} must contain at least one of {{#peersWithLabels}}\",\"object.nand\":\"{{:#mainWithLabel}} must not exist simultaneously with {{#peersWithLabels}}\",\"object.oxor\":\"{{#label}} contains a conflict between optional exclusive peers {{#peersWithLabels}}\",\"object.pattern.match\":\"{{#label}} keys failed to match pattern requirements\",\"object.refType\":\"{{#label}} must be a Joi reference\",\"object.regex\":\"{{#label}} must be a RegExp object\",\"object.rename.multiple\":\"{{#label}} cannot rename {{:#from}} because multiple renames are disabled and another key was already renamed to {{:#to}}\",\"object.rename.override\":\"{{#label}} cannot rename {{:#from}} because override is disabled and target {{:#to}} exists\",\"object.schema\":\"{{#label}} must be a Joi schema of {{#type}} type\",\"object.unknown\":\"{{#label}} is not allowed\",\"object.with\":\"{{:#mainWithLabel}} missing required peer {{:#peerWithLabel}}\",\"object.without\":\"{{:#mainWithLabel}} conflict with forbidden peer {{:#peerWithLabel}}\",\"object.xor\":\"{{#label}} contains a conflict between exclusive peers {{#peersWithLabels}}\"}}),h.clone=function(e,t){if(\"object\"==typeof e){if(t.nonEnumerables)return a(e,{shallow:!0});const r=Object.create(Object.getPrototypeOf(e));return Object.assign(r,e),r}const r=function(...t){return e.apply(this,t)};return r.prototype=a(e.prototype),Object.defineProperty(r,\"name\",{value:e.name,writable:!1}),Object.defineProperty(r,\"length\",{value:e.length,writable:!1}),Object.assign(r,e),r},h.dependency=function(e,t,r,s,a){n(null===r||\"string\"==typeof r,t,\"key must be a strings\"),a||(a=s.length>1&&\"object\"==typeof s[s.length-1]?s.pop():{}),l.assertOptions(a,[\"separator\",\"isPresent\"]),s=[].concat(s);const i=l.default(a.separator,\".\"),o=[];for(const e of s)n(\"string\"==typeof e,t,\"peers must be strings\"),o.push(c.ref(e,{separator:i,ancestor:0,prefix:!1}));null!==r&&(r=c.ref(r,{separator:i,ancestor:0,prefix:!1}));const u=e.clone();return u.$_terms.dependencies=u.$_terms.dependencies||[],u.$_terms.dependencies.push(new h.Dependency(t,r,o,s,a)),u},h.dependencies={and(e,t,r,s,n){const a=[],i=[],o=t.peers.length,l=h.isPresent(t.options);for(const e of t.peers)!1===l(e.resolve(r,s,n,null,{shadow:!1}))?a.push(e.key):i.push(e.key);if(a.length!==o&&i.length!==o)return{code:\"object.and\",context:{present:i,presentWithLabels:h.keysToLabels(e,i),missing:a,missingWithLabels:h.keysToLabels(e,a)}}},nand(e,t,r,s,n){const a=[],i=h.isPresent(t.options);for(const e of t.peers)i(e.resolve(r,s,n,null,{shadow:!1}))&&a.push(e.key);if(a.length!==t.peers.length)return;const o=t.paths[0],l=t.paths.slice(1);return{code:\"object.nand\",context:{main:o,mainWithLabel:h.keysToLabels(e,o),peers:l,peersWithLabels:h.keysToLabels(e,l)}}},or(e,t,r,s,n){const a=h.isPresent(t.options);for(const e of t.peers)if(a(e.resolve(r,s,n,null,{shadow:!1})))return;return{code:\"object.missing\",context:{peers:t.paths,peersWithLabels:h.keysToLabels(e,t.paths)}}},oxor(e,t,r,s,n){const a=[],i=h.isPresent(t.options);for(const e of t.peers)i(e.resolve(r,s,n,null,{shadow:!1}))&&a.push(e.key);if(!a.length||1===a.length)return;const o={peers:t.paths,peersWithLabels:h.keysToLabels(e,t.paths)};return o.present=a,o.presentWithLabels=h.keysToLabels(e,a),{code:\"object.oxor\",context:o}},with(e,t,r,s,n){const a=h.isPresent(t.options);for(const i of t.peers)if(!1===a(i.resolve(r,s,n,null,{shadow:!1})))return{code:\"object.with\",context:{main:t.key.key,mainWithLabel:h.keysToLabels(e,t.key.key),peer:i.key,peerWithLabel:h.keysToLabels(e,i.key)}}},without(e,t,r,s,n){const a=h.isPresent(t.options);for(const i of t.peers)if(a(i.resolve(r,s,n,null,{shadow:!1})))return{code:\"object.without\",context:{main:t.key.key,mainWithLabel:h.keysToLabels(e,t.key.key),peer:i.key,peerWithLabel:h.keysToLabels(e,i.key)}}},xor(e,t,r,s,n){const a=[],i=h.isPresent(t.options);for(const e of t.peers)i(e.resolve(r,s,n,null,{shadow:!1}))&&a.push(e.key);if(1===a.length)return;const o={peers:t.paths,peersWithLabels:h.keysToLabels(e,t.paths)};return 0===a.length?{code:\"object.missing\",context:o}:(o.present=a,o.presentWithLabels=h.keysToLabels(e,a),{code:\"object.xor\",context:o})}},h.keysToLabels=function(e,t){return Array.isArray(t)?t.map((t=>e.$_mapLabels(t))):e.$_mapLabels(t)},h.isPresent=function(e){return\"function\"==typeof e.isPresent?e.isPresent:e=>void 0!==e},h.rename=function(e,t,r,s,n){const a={};for(const i of e.$_terms.renames){const o=[],l=\"string\"!=typeof i.from;if(l)for(const e in t){if(void 0===t[e]&&i.options.ignoreUndefined)continue;if(e===i.to)continue;const r=i.from.exec(e);r&&o.push({from:e,to:i.to,match:r})}else!Object.prototype.hasOwnProperty.call(t,i.from)||void 0===t[i.from]&&i.options.ignoreUndefined||o.push(i);for(const c of o){const o=c.from;let u=c.to;if(u instanceof m&&(u=u.render(t,r,s,c.match)),o!==u){if(!i.options.multiple&&a[u]&&(n.push(e.$_createError(\"object.rename.multiple\",t,{from:o,to:u,pattern:l},r,s)),s.abortEarly))return!1;if(Object.prototype.hasOwnProperty.call(t,u)&&!i.options.override&&!a[u]&&(n.push(e.$_createError(\"object.rename.override\",t,{from:o,to:u,pattern:l},r,s)),s.abortEarly))return!1;void 0===t[o]?delete t[u]:t[u]=t[o],a[u]=!0,i.options.alias||delete t[o]}}}return!0},h.unknown=function(e,t,r,s,n,a){if(e.$_terms.patterns){let i=!1;const o=e.$_terms.patterns.map((e=>{if(e.matches)return i=!0,[]})),l=[t,...n.ancestors];for(const i of r){const c=t[i],u=[...n.path,i];for(let f=0;f{\"use strict\";const s=r(375),n=r(8068),a=r(8160),i=r(3292),o=r(6354),l={};e.exports=n.extend({type:\"link\",properties:{schemaChain:!0},terms:{link:{init:null,manifest:\"single\",register:!1}},args:(e,t)=>e.ref(t),validate(e,{schema:t,state:r,prefs:n}){s(t.$_terms.link,\"Uninitialized link schema\");const a=l.generate(t,e,r,n),i=t.$_terms.link[0].ref;return a.$_validate(e,r.nest(a,`link:${i.display}:${a.type}`),n)},generate:(e,t,r,s)=>l.generate(e,t,r,s),rules:{ref:{method(e){s(!this.$_terms.link,\"Cannot reinitialize schema\"),e=i.ref(e),s(\"value\"===e.type||\"local\"===e.type,\"Invalid reference type:\",e.type),s(\"local\"===e.type||\"root\"===e.ancestor||e.ancestor>0,\"Link cannot reference itself\");const t=this.clone();return t.$_terms.link=[{ref:e}],t}},relative:{method(e=!0){return this.$_setFlag(\"relative\",e)}}},overrides:{concat(e){s(this.$_terms.link,\"Uninitialized link schema\"),s(a.isSchema(e),\"Invalid schema object\"),s(\"link\"!==e.type,\"Cannot merge type link with another link\");const t=this.clone();return t.$_terms.whens||(t.$_terms.whens=[]),t.$_terms.whens.push({concat:e}),t.$_mutateRebuild()}},manifest:{build:(e,t)=>(s(t.link,\"Invalid link description missing link\"),e.ref(t.link))}}),l.generate=function(e,t,r,s){let n=r.mainstay.links.get(e);if(n)return n._generate(t,r,s).schema;const a=e.$_terms.link[0].ref,{perspective:i,path:o}=l.perspective(a,r);l.assert(i,\"which is outside of schema boundaries\",a,e,r,s);try{n=o.length?i.$_reach(o):i}catch(t){l.assert(!1,\"to non-existing schema\",a,e,r,s)}return l.assert(\"link\"!==n.type,\"which is another link\",a,e,r,s),e._flags.relative||r.mainstay.links.set(e,n),n._generate(t,r,s).schema},l.perspective=function(e,t){if(\"local\"===e.type){for(const{schema:r,key:s}of t.schemas){if((r._flags.id||s)===e.path[0])return{perspective:r,path:e.path.slice(1)};if(r.$_terms.shared)for(const t of r.$_terms.shared)if(t._flags.id===e.path[0])return{perspective:t,path:e.path.slice(1)}}return{perspective:null,path:null}}return\"root\"===e.ancestor?{perspective:t.schemas[t.schemas.length-1].schema,path:e.path}:{perspective:t.schemas[e.ancestor]&&t.schemas[e.ancestor].schema,path:e.path}},l.assert=function(e,t,r,n,a,i){e||s(!1,`\"${o.label(n._flags,a,i)}\" contains link reference \"${r.display}\" ${t}`)}},3832:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8068),a=r(8160),i={numberRx:/^\\s*[+-]?(?:(?:\\d+(?:\\.\\d*)?)|(?:\\.\\d+))(?:e([+-]?\\d+))?\\s*$/i,precisionRx:/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/,exponentialPartRegex:/[eE][+-]?\\d+$/,leadingSignAndZerosRegex:/^[+-]?(0*)?/,dotRegex:/\\./,trailingZerosRegex:/0+$/,decimalPlaces(e){const t=e.toString(),r=t.indexOf(\".\"),s=t.indexOf(\"e\");return(r<0?0:(s<0?t.length:s)-r-1)+(s<0?0:Math.max(0,-parseInt(t.slice(s+1))))}};e.exports=n.extend({type:\"number\",flags:{unsafe:{default:!1}},coerce:{from:\"string\",method(e,{schema:t,error:r}){if(!e.match(i.numberRx))return;e=e.trim();const s={value:parseFloat(e)};if(0===s.value&&(s.value=0),!t._flags.unsafe)if(e.match(/e/i)){if(i.extractSignificantDigits(e)!==i.extractSignificantDigits(String(s.value)))return s.errors=r(\"number.unsafe\"),s}else{const t=s.value.toString();if(t.match(/e/i))return s;if(t!==i.normalizeDecimal(e))return s.errors=r(\"number.unsafe\"),s}return s}},validate(e,{schema:t,error:r,prefs:s}){if(e===1/0||e===-1/0)return{value:e,errors:r(\"number.infinity\")};if(!a.isNumber(e))return{value:e,errors:r(\"number.base\")};const n={value:e};if(s.convert){const e=t.$_getRule(\"precision\");if(e){const t=Math.pow(10,e.args.limit);n.value=Math.round(n.value*t)/t}}return 0===n.value&&(n.value=0),!t._flags.unsafe&&(e>Number.MAX_SAFE_INTEGER||ea.compare(e,r,n)?e:t.error(\"number.\"+s,{limit:i.limit,value:e}),args:[{name:\"limit\",ref:!0,assert:a.isNumber,message:\"must be a number\"}]},greater:{method(e){return this.$_addRule({name:\"greater\",method:\"compare\",args:{limit:e},operator:\">\"})}},integer:{method(){return this.$_addRule(\"integer\")},validate:(e,t)=>Math.trunc(e)-e==0?e:t.error(\"number.integer\")},less:{method(e){return this.$_addRule({name:\"less\",method:\"compare\",args:{limit:e},operator:\"<\"})}},max:{method(e){return this.$_addRule({name:\"max\",method:\"compare\",args:{limit:e},operator:\"<=\"})}},min:{method(e){return this.$_addRule({name:\"min\",method:\"compare\",args:{limit:e},operator:\">=\"})}},multiple:{method(e){const t=\"number\"==typeof e?i.decimalPlaces(e):null,r=Math.pow(10,t);return this.$_addRule({name:\"multiple\",args:{base:e,baseDecimalPlace:t,pfactor:r}})},validate:(e,t,{base:r,baseDecimalPlace:s,pfactor:n},a)=>i.decimalPlaces(e)>s?t.error(\"number.multiple\",{multiple:a.args.base,value:e}):Math.round(n*e)%Math.round(n*r)==0?e:t.error(\"number.multiple\",{multiple:a.args.base,value:e}),args:[{name:\"base\",ref:!0,assert:e=>\"number\"==typeof e&&isFinite(e)&&e>0,message:\"must be a positive number\"},\"baseDecimalPlace\",\"pfactor\"],multi:!0},negative:{method(){return this.sign(\"negative\")}},port:{method(){return this.$_addRule(\"port\")},validate:(e,t)=>Number.isSafeInteger(e)&&e>=0&&e<=65535?e:t.error(\"number.port\")},positive:{method(){return this.sign(\"positive\")}},precision:{method(e){return s(Number.isSafeInteger(e),\"limit must be an integer\"),this.$_addRule({name:\"precision\",args:{limit:e}})},validate(e,t,{limit:r}){const s=e.toString().match(i.precisionRx);return Math.max((s[1]?s[1].length:0)-(s[2]?parseInt(s[2],10):0),0)<=r?e:t.error(\"number.precision\",{limit:r,value:e})},convert:!0},sign:{method(e){return s([\"negative\",\"positive\"].includes(e),\"Invalid sign\",e),this.$_addRule({name:\"sign\",args:{sign:e}})},validate:(e,t,{sign:r})=>\"negative\"===r&&e<0||\"positive\"===r&&e>0?e:t.error(`number.${r}`)},unsafe:{method(e=!0){return s(\"boolean\"==typeof e,\"enabled must be a boolean\"),this.$_setFlag(\"unsafe\",e)}}},cast:{string:{from:e=>\"number\"==typeof e,to:(e,t)=>e.toString()}},messages:{\"number.base\":\"{{#label}} must be a number\",\"number.greater\":\"{{#label}} must be greater than {{#limit}}\",\"number.infinity\":\"{{#label}} cannot be infinity\",\"number.integer\":\"{{#label}} must be an integer\",\"number.less\":\"{{#label}} must be less than {{#limit}}\",\"number.max\":\"{{#label}} must be less than or equal to {{#limit}}\",\"number.min\":\"{{#label}} must be greater than or equal to {{#limit}}\",\"number.multiple\":\"{{#label}} must be a multiple of {{#multiple}}\",\"number.negative\":\"{{#label}} must be a negative number\",\"number.port\":\"{{#label}} must be a valid port\",\"number.positive\":\"{{#label}} must be a positive number\",\"number.precision\":\"{{#label}} must have no more than {{#limit}} decimal places\",\"number.unsafe\":\"{{#label}} must be a safe number\"}}),i.extractSignificantDigits=function(e){return e.replace(i.exponentialPartRegex,\"\").replace(i.dotRegex,\"\").replace(i.trailingZerosRegex,\"\").replace(i.leadingSignAndZerosRegex,\"\")},i.normalizeDecimal=function(e){return(e=e.replace(/^\\+/,\"\").replace(/\\.0*$/,\"\").replace(/^(-?)\\.([^\\.]*)$/,\"$10.$2\").replace(/^(-?)0+([0-9])/,\"$1$2\")).includes(\".\")&&e.endsWith(\"0\")&&(e=e.replace(/0+$/,\"\")),\"-0\"===e?\"0\":e}},8966:(e,t,r)=>{\"use strict\";const s=r(7824);e.exports=s.extend({type:\"object\",cast:{map:{from:e=>e&&\"object\"==typeof e,to:(e,t)=>new Map(Object.entries(e))}}})},7417:(e,t,r)=>{\"use strict\";const s=r(375),n=r(5380),a=r(1745),i=r(9959),o=r(6064),l=r(9926),c=r(5752),u=r(8068),f=r(8160),m={tlds:l instanceof Set&&{tlds:{allow:l,deny:null}},base64Regex:{true:{true:/^(?:[\\w\\-]{2}[\\w\\-]{2})*(?:[\\w\\-]{2}==|[\\w\\-]{3}=)?$/,false:/^(?:[A-Za-z0-9+\\/]{2}[A-Za-z0-9+\\/]{2})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/},false:{true:/^(?:[\\w\\-]{2}[\\w\\-]{2})*(?:[\\w\\-]{2}(==)?|[\\w\\-]{3}=?)?$/,false:/^(?:[A-Za-z0-9+\\/]{2}[A-Za-z0-9+\\/]{2})*(?:[A-Za-z0-9+\\/]{2}(==)?|[A-Za-z0-9+\\/]{3}=?)?$/}},dataUriRegex:/^data:[\\w+.-]+\\/[\\w+.-]+;((charset=[\\w-]+|base64),)?(.*)$/,hexRegex:{withPrefix:/^0x[0-9a-f]+$/i,withOptionalPrefix:/^(?:0x)?[0-9a-f]+$/i,withoutPrefix:/^[0-9a-f]+$/i},ipRegex:i.regex({cidr:\"forbidden\"}).regex,isoDurationRegex:/^P(?!$)(\\d+Y)?(\\d+M)?(\\d+W)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?$/,guidBrackets:{\"{\":\"}\",\"[\":\"]\",\"(\":\")\",\"\":\"\"},guidVersions:{uuidv1:\"1\",uuidv2:\"2\",uuidv3:\"3\",uuidv4:\"4\",uuidv5:\"5\",uuidv6:\"6\",uuidv7:\"7\",uuidv8:\"8\"},guidSeparators:new Set([void 0,!0,!1,\"-\",\":\"]),normalizationForms:[\"NFC\",\"NFD\",\"NFKC\",\"NFKD\"]};e.exports=u.extend({type:\"string\",flags:{insensitive:{default:!1},truncate:{default:!1}},terms:{replacements:{init:null}},coerce:{from:\"string\",method(e,{schema:t,state:r,prefs:s}){const n=t.$_getRule(\"normalize\");n&&(e=e.normalize(n.args.form));const a=t.$_getRule(\"case\");a&&(e=\"upper\"===a.args.direction?e.toLocaleUpperCase():e.toLocaleLowerCase());const i=t.$_getRule(\"trim\");if(i&&i.args.enabled&&(e=e.trim()),t.$_terms.replacements)for(const r of t.$_terms.replacements)e=e.replace(r.pattern,r.replacement);const o=t.$_getRule(\"hex\");if(o&&o.args.options.byteAligned&&e.length%2!=0&&(e=`0${e}`),t.$_getRule(\"isoDate\")){const t=m.isoDate(e);t&&(e=t)}if(t._flags.truncate){const n=t.$_getRule(\"max\");if(n){let a=n.args.limit;if(f.isResolvable(a)&&(a=a.resolve(e,r,s),!f.limit(a)))return{value:e,errors:t.$_createError(\"any.ref\",a,{ref:n.args.limit,arg:\"limit\",reason:\"must be a positive integer\"},r,s)};e=e.slice(0,a)}}return{value:e}}},validate(e,{schema:t,error:r}){if(\"string\"!=typeof e)return{value:e,errors:r(\"string.base\")};if(\"\"===e){const s=t.$_getRule(\"min\");if(s&&0===s.args.limit)return;return{value:e,errors:r(\"string.empty\")}}},rules:{alphanum:{method(){return this.$_addRule(\"alphanum\")},validate:(e,t)=>/^[a-zA-Z0-9]+$/.test(e)?e:t.error(\"string.alphanum\")},base64:{method(e={}){return f.assertOptions(e,[\"paddingRequired\",\"urlSafe\"]),e={urlSafe:!1,paddingRequired:!0,...e},s(\"boolean\"==typeof e.paddingRequired,\"paddingRequired must be boolean\"),s(\"boolean\"==typeof e.urlSafe,\"urlSafe must be boolean\"),this.$_addRule({name:\"base64\",args:{options:e}})},validate:(e,t,{options:r})=>m.base64Regex[r.paddingRequired][r.urlSafe].test(e)?e:t.error(\"string.base64\")},case:{method(e){return s([\"lower\",\"upper\"].includes(e),\"Invalid case:\",e),this.$_addRule({name:\"case\",args:{direction:e}})},validate:(e,t,{direction:r})=>\"lower\"===r&&e===e.toLocaleLowerCase()||\"upper\"===r&&e===e.toLocaleUpperCase()?e:t.error(`string.${r}case`),convert:!0},creditCard:{method(){return this.$_addRule(\"creditCard\")},validate(e,t){let r=e.length,s=0,n=1;for(;r--;){const t=e.charAt(r)*n;s+=t-9*(t>9),n^=3}return s>0&&s%10==0?e:t.error(\"string.creditCard\")}},dataUri:{method(e={}){return f.assertOptions(e,[\"paddingRequired\"]),e={paddingRequired:!0,...e},s(\"boolean\"==typeof e.paddingRequired,\"paddingRequired must be boolean\"),this.$_addRule({name:\"dataUri\",args:{options:e}})},validate(e,t,{options:r}){const s=e.match(m.dataUriRegex);if(s){if(!s[2])return e;if(\"base64\"!==s[2])return e;if(m.base64Regex[r.paddingRequired].false.test(s[3]))return e}return t.error(\"string.dataUri\")}},domain:{method(e){e&&f.assertOptions(e,[\"allowFullyQualified\",\"allowUnicode\",\"maxDomainSegments\",\"minDomainSegments\",\"tlds\"]);const t=m.addressOptions(e);return this.$_addRule({name:\"domain\",args:{options:e},address:t})},validate:(e,t,r,{address:s})=>n.isValid(e,s)?e:t.error(\"string.domain\")},email:{method(e={}){f.assertOptions(e,[\"allowFullyQualified\",\"allowUnicode\",\"ignoreLength\",\"maxDomainSegments\",\"minDomainSegments\",\"multiple\",\"separator\",\"tlds\"]),s(void 0===e.multiple||\"boolean\"==typeof e.multiple,\"multiple option must be an boolean\");const t=m.addressOptions(e),r=new RegExp(`\\\\s*[${e.separator?o(e.separator):\",\"}]\\\\s*`);return this.$_addRule({name:\"email\",args:{options:e},regex:r,address:t})},validate(e,t,{options:r},{regex:s,address:n}){const i=r.multiple?e.split(s):[e],o=[];for(const e of i)a.isValid(e,n)||o.push(e);return o.length?t.error(\"string.email\",{value:e,invalids:o}):e}},guid:{alias:\"uuid\",method(e={}){f.assertOptions(e,[\"version\",\"separator\"]);let t=\"\";if(e.version){const r=[].concat(e.version);s(r.length>=1,\"version must have at least 1 valid version specified\");const n=new Set;for(let e=0;e(\"optional\"===r.prefix?m.hexRegex.withOptionalPrefix:!0===r.prefix?m.hexRegex.withPrefix:m.hexRegex.withoutPrefix).test(e)?r.byteAligned&&e.length%2!=0?t.error(\"string.hexAlign\"):e:t.error(\"string.hex\")},hostname:{method(){return this.$_addRule(\"hostname\")},validate:(e,t)=>n.isValid(e,{minDomainSegments:1})||m.ipRegex.test(e)?e:t.error(\"string.hostname\")},insensitive:{method(){return this.$_setFlag(\"insensitive\",!0)}},ip:{method(e={}){f.assertOptions(e,[\"cidr\",\"version\"]);const{cidr:t,versions:r,regex:s}=i.regex(e),n=e.version?r:void 0;return this.$_addRule({name:\"ip\",args:{options:{cidr:t,version:n}},regex:s})},validate:(e,t,{options:r},{regex:s})=>s.test(e)?e:r.version?t.error(\"string.ipVersion\",{value:e,cidr:r.cidr,version:r.version}):t.error(\"string.ip\",{value:e,cidr:r.cidr})},isoDate:{method(){return this.$_addRule(\"isoDate\")},validate:(e,{error:t})=>m.isoDate(e)?e:t(\"string.isoDate\")},isoDuration:{method(){return this.$_addRule(\"isoDuration\")},validate:(e,t)=>m.isoDurationRegex.test(e)?e:t.error(\"string.isoDuration\")},length:{method(e,t){return m.length(this,\"length\",e,\"=\",t)},validate(e,t,{limit:r,encoding:s},{name:n,operator:a,args:i}){const o=!s&&e.length;return f.compare(o,r,a)?e:t.error(\"string.\"+n,{limit:i.limit,value:e,encoding:s})},args:[{name:\"limit\",ref:!0,assert:f.limit,message:\"must be a positive integer\"},\"encoding\"]},lowercase:{method(){return this.case(\"lower\")}},max:{method(e,t){return m.length(this,\"max\",e,\"<=\",t)},args:[\"limit\",\"encoding\"]},min:{method(e,t){return m.length(this,\"min\",e,\">=\",t)},args:[\"limit\",\"encoding\"]},normalize:{method(e=\"NFC\"){return s(m.normalizationForms.includes(e),\"normalization form must be one of \"+m.normalizationForms.join(\", \")),this.$_addRule({name:\"normalize\",args:{form:e}})},validate:(e,{error:t},{form:r})=>e===e.normalize(r)?e:t(\"string.normalize\",{value:e,form:r}),convert:!0},pattern:{alias:\"regex\",method(e,t={}){s(e instanceof RegExp,\"regex must be a RegExp\"),s(!e.flags.includes(\"g\")&&!e.flags.includes(\"y\"),\"regex should not use global or sticky mode\"),\"string\"==typeof t&&(t={name:t}),f.assertOptions(t,[\"invert\",\"name\"]);const r=[\"string.pattern\",t.invert?\".invert\":\"\",t.name?\".name\":\".base\"].join(\"\");return this.$_addRule({name:\"pattern\",args:{regex:e,options:t},errorCode:r})},validate:(e,t,{regex:r,options:s},{errorCode:n})=>r.test(e)^s.invert?e:t.error(n,{name:s.name,regex:r,value:e}),args:[\"regex\",\"options\"],multi:!0},replace:{method(e,t){\"string\"==typeof e&&(e=new RegExp(o(e),\"g\")),s(e instanceof RegExp,\"pattern must be a RegExp\"),s(\"string\"==typeof t,\"replacement must be a String\");const r=this.clone();return r.$_terms.replacements||(r.$_terms.replacements=[]),r.$_terms.replacements.push({pattern:e,replacement:t}),r}},token:{method(){return this.$_addRule(\"token\")},validate:(e,t)=>/^\\w+$/.test(e)?e:t.error(\"string.token\")},trim:{method(e=!0){return s(\"boolean\"==typeof e,\"enabled must be a boolean\"),this.$_addRule({name:\"trim\",args:{enabled:e}})},validate:(e,t,{enabled:r})=>r&&e!==e.trim()?t.error(\"string.trim\"):e,convert:!0},truncate:{method(e=!0){return s(\"boolean\"==typeof e,\"enabled must be a boolean\"),this.$_setFlag(\"truncate\",e)}},uppercase:{method(){return this.case(\"upper\")}},uri:{method(e={}){f.assertOptions(e,[\"allowRelative\",\"allowQuerySquareBrackets\",\"domain\",\"relativeOnly\",\"scheme\",\"encodeUri\"]),e.domain&&f.assertOptions(e.domain,[\"allowFullyQualified\",\"allowUnicode\",\"maxDomainSegments\",\"minDomainSegments\",\"tlds\"]);const{regex:t,scheme:r}=c.regex(e),s=e.domain?m.addressOptions(e.domain):null;return this.$_addRule({name:\"uri\",args:{options:e},regex:t,domain:s,scheme:r})},validate(e,t,{options:r},{regex:s,domain:a,scheme:i}){if([\"http:/\",\"https:/\"].includes(e))return t.error(\"string.uri\");let o=s.exec(e);if(!o&&t.prefs.convert&&r.encodeUri){const t=encodeURI(e);o=s.exec(t),o&&(e=t)}if(o){const s=o[1]||o[2];return!a||r.allowRelative&&!s||n.isValid(s,a)?e:t.error(\"string.domain\",{value:s})}return r.relativeOnly?t.error(\"string.uriRelativeOnly\"):r.scheme?t.error(\"string.uriCustomScheme\",{scheme:i,value:e}):t.error(\"string.uri\")}}},manifest:{build(e,t){if(t.replacements)for(const{pattern:r,replacement:s}of t.replacements)e=e.replace(r,s);return e}},messages:{\"string.alphanum\":\"{{#label}} must only contain alpha-numeric characters\",\"string.base\":\"{{#label}} must be a string\",\"string.base64\":\"{{#label}} must be a valid base64 string\",\"string.creditCard\":\"{{#label}} must be a credit card\",\"string.dataUri\":\"{{#label}} must be a valid dataUri string\",\"string.domain\":\"{{#label}} must contain a valid domain name\",\"string.email\":\"{{#label}} must be a valid email\",\"string.empty\":\"{{#label}} is not allowed to be empty\",\"string.guid\":\"{{#label}} must be a valid GUID\",\"string.hex\":\"{{#label}} must only contain hexadecimal characters\",\"string.hexAlign\":\"{{#label}} hex decoded representation must be byte aligned\",\"string.hostname\":\"{{#label}} must be a valid hostname\",\"string.ip\":\"{{#label}} must be a valid ip address with a {{#cidr}} CIDR\",\"string.ipVersion\":\"{{#label}} must be a valid ip address of one of the following versions {{#version}} with a {{#cidr}} CIDR\",\"string.isoDate\":\"{{#label}} must be in iso format\",\"string.isoDuration\":\"{{#label}} must be a valid ISO 8601 duration\",\"string.length\":\"{{#label}} length must be {{#limit}} characters long\",\"string.lowercase\":\"{{#label}} must only contain lowercase characters\",\"string.max\":\"{{#label}} length must be less than or equal to {{#limit}} characters long\",\"string.min\":\"{{#label}} length must be at least {{#limit}} characters long\",\"string.normalize\":\"{{#label}} must be unicode normalized in the {{#form}} form\",\"string.token\":\"{{#label}} must only contain alpha-numeric and underscore characters\",\"string.pattern.base\":\"{{#label}} with value {:[.]} fails to match the required pattern: {{#regex}}\",\"string.pattern.name\":\"{{#label}} with value {:[.]} fails to match the {{#name}} pattern\",\"string.pattern.invert.base\":\"{{#label}} with value {:[.]} matches the inverted pattern: {{#regex}}\",\"string.pattern.invert.name\":\"{{#label}} with value {:[.]} matches the inverted {{#name}} pattern\",\"string.trim\":\"{{#label}} must not have leading or trailing whitespace\",\"string.uri\":\"{{#label}} must be a valid uri\",\"string.uriCustomScheme\":\"{{#label}} must be a valid uri with a scheme matching the {{#scheme}} pattern\",\"string.uriRelativeOnly\":\"{{#label}} must be a valid relative uri\",\"string.uppercase\":\"{{#label}} must only contain uppercase characters\"}}),m.addressOptions=function(e){if(!e)return m.tlds||e;if(s(void 0===e.minDomainSegments||Number.isSafeInteger(e.minDomainSegments)&&e.minDomainSegments>0,\"minDomainSegments must be a positive integer\"),s(void 0===e.maxDomainSegments||Number.isSafeInteger(e.maxDomainSegments)&&e.maxDomainSegments>0,\"maxDomainSegments must be a positive integer\"),!1===e.tlds)return e;if(!0===e.tlds||void 0===e.tlds)return s(m.tlds,\"Built-in TLD list disabled\"),Object.assign({},e,m.tlds);s(\"object\"==typeof e.tlds,\"tlds must be true, false, or an object\");const t=e.tlds.deny;if(t)return Array.isArray(t)&&(e=Object.assign({},e,{tlds:{deny:new Set(t)}})),s(e.tlds.deny instanceof Set,\"tlds.deny must be an array, Set, or boolean\"),s(!e.tlds.allow,\"Cannot specify both tlds.allow and tlds.deny lists\"),m.validateTlds(e.tlds.deny,\"tlds.deny\"),e;const r=e.tlds.allow;return r?!0===r?(s(m.tlds,\"Built-in TLD list disabled\"),Object.assign({},e,m.tlds)):(Array.isArray(r)&&(e=Object.assign({},e,{tlds:{allow:new Set(r)}})),s(e.tlds.allow instanceof Set,\"tlds.allow must be an array, Set, or boolean\"),m.validateTlds(e.tlds.allow,\"tlds.allow\"),e):e},m.validateTlds=function(e,t){for(const r of e)s(n.isValid(r,{minDomainSegments:1,maxDomainSegments:1}),`${t} must contain valid top level domain names`)},m.isoDate=function(e){if(!f.isIsoDate(e))return null;/.*T.*[+-]\\d\\d$/.test(e)&&(e+=\"00\");const t=new Date(e);return isNaN(t.getTime())?null:t.toISOString()},m.length=function(e,t,r,n,a){return s(!a||!1,\"Invalid encoding:\",a),e.$_addRule({name:t,method:\"length\",args:{limit:r,encoding:a},operator:n})}},8826:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8068),a={};a.Map=class extends Map{slice(){return new a.Map(this)}},e.exports=n.extend({type:\"symbol\",terms:{map:{init:new a.Map}},coerce:{method(e,{schema:t,error:r}){const s=t.$_terms.map.get(e);return s&&(e=s),t._flags.only&&\"symbol\"!=typeof e?{value:e,errors:r(\"symbol.map\",{map:t.$_terms.map})}:{value:e}}},validate(e,{error:t}){if(\"symbol\"!=typeof e)return{value:e,errors:t(\"symbol.base\")}},rules:{map:{method(e){e&&!e[Symbol.iterator]&&\"object\"==typeof e&&(e=Object.entries(e)),s(e&&e[Symbol.iterator],\"Iterable must be an iterable or object\");const t=this.clone(),r=[];for(const n of e){s(n&&n[Symbol.iterator],\"Entry must be an iterable\");const[e,a]=n;s(\"object\"!=typeof e&&\"function\"!=typeof e&&\"symbol\"!=typeof e,\"Key must not be of type object, function, or Symbol\"),s(\"symbol\"==typeof a,\"Value must be a Symbol\"),t.$_terms.map.set(e,a),r.push(a)}return t.valid(...r)}}},manifest:{build:(e,t)=>(t.map&&(e=e.map(t.map)),e)},messages:{\"symbol.base\":\"{{#label}} must be a symbol\",\"symbol.map\":\"{{#label}} must be one of {{#map}}\"}})},8863:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(738),i=r(9621),o=r(8160),l=r(6354),c=r(493),u={result:Symbol(\"result\")};t.entry=function(e,t,r){let n=o.defaults;r&&(s(void 0===r.warnings,\"Cannot override warnings preference in synchronous validation\"),s(void 0===r.artifacts,\"Cannot override artifacts preference in synchronous validation\"),n=o.preferences(o.defaults,r));const a=u.entry(e,t,n);s(!a.mainstay.externals.length,\"Schema with external rules must use validateAsync()\");const i={value:a.value};return a.error&&(i.error=a.error),a.mainstay.warnings.length&&(i.warning=l.details(a.mainstay.warnings)),a.mainstay.debug&&(i.debug=a.mainstay.debug),a.mainstay.artifacts&&(i.artifacts=a.mainstay.artifacts),i},t.entryAsync=async function(e,t,r){let s=o.defaults;r&&(s=o.preferences(o.defaults,r));const n=u.entry(e,t,s),a=n.mainstay;if(n.error)throw a.debug&&(n.error.debug=a.debug),n.error;if(a.externals.length){let t=n.value;const c=[];for(const n of a.externals){const f=n.state.path,m=\"link\"===n.schema.type?a.links.get(n.schema):null;let h,d,p=t;const g=f.length?[t]:[],y=f.length?i(e,f):e;if(f.length){h=f[f.length-1];let e=t;for(const t of f.slice(0,-1))e=e[t],g.unshift(e);d=g[0],p=d[h]}try{const e=(e,t)=>(m||n.schema).$_createError(e,p,t,n.state,s),i=await n.method(p,{schema:n.schema,linked:m,state:n.state,prefs:r,original:y,error:e,errorsArray:u.errorsArray,warn:(e,t)=>a.warnings.push((m||n.schema).$_createError(e,p,t,n.state,s)),message:(e,t)=>(m||n.schema).$_createError(\"external\",p,t,n.state,s,{messages:e})});if(void 0===i||i===p)continue;if(i instanceof l.Report){if(a.tracer.log(n.schema,n.state,\"rule\",\"external\",\"error\"),c.push(i),s.abortEarly)break;continue}if(Array.isArray(i)&&i[o.symbols.errors]){if(a.tracer.log(n.schema,n.state,\"rule\",\"external\",\"error\"),c.push(...i),s.abortEarly)break;continue}d?(a.tracer.value(n.state,\"rule\",p,i,\"external\"),d[h]=i):(a.tracer.value(n.state,\"rule\",t,i,\"external\"),t=i)}catch(e){throw s.errors.label&&(e.message+=` (${n.label})`),e}}if(n.value=t,c.length)throw n.error=l.process(c,e,s),a.debug&&(n.error.debug=a.debug),n.error}if(!s.warnings&&!s.debug&&!s.artifacts)return n.value;const c={value:n.value};return a.warnings.length&&(c.warning=l.details(a.warnings)),a.debug&&(c.debug=a.debug),a.artifacts&&(c.artifacts=a.artifacts),c},u.Mainstay=class{constructor(e,t,r){this.externals=[],this.warnings=[],this.tracer=e,this.debug=t,this.links=r,this.shadow=null,this.artifacts=null,this._snapshots=[]}snapshot(){this._snapshots.push({externals:this.externals.slice(),warnings:this.warnings.slice()})}restore(){const e=this._snapshots.pop();this.externals=e.externals,this.warnings=e.warnings}commit(){this._snapshots.pop()}},u.entry=function(e,r,s){const{tracer:n,cleanup:a}=u.tracer(r,s),i=s.debug?[]:null,o=r._ids._schemaChain?new Map:null,f=new u.Mainstay(n,i,o),m=r._ids._schemaChain?[{schema:r}]:null,h=new c([],[],{mainstay:f,schemas:m}),d=t.validate(e,r,h,s);a&&r.$_root.untrace();const p=l.process(d.errors,e,s);return{value:d.value,error:p,mainstay:f}},u.tracer=function(e,t){return e.$_root._tracer?{tracer:e.$_root._tracer._register(e)}:t.debug?(s(e.$_root.trace,\"Debug mode not supported\"),{tracer:e.$_root.trace()._register(e),cleanup:!0}):{tracer:u.ignore}},t.validate=function(e,t,r,s,n={}){if(t.$_terms.whens&&(t=t._generate(e,r,s).schema),t._preferences&&(s=u.prefs(t,s)),t._cache&&s.cache){const s=t._cache.get(e);if(r.mainstay.tracer.debug(r,\"validate\",\"cached\",!!s),s)return s}const a=(n,a,i)=>t.$_createError(n,e,a,i||r,s),i={original:e,prefs:s,schema:t,state:r,error:a,errorsArray:u.errorsArray,warn:(e,t,s)=>r.mainstay.warnings.push(a(e,t,s)),message:(n,a)=>t.$_createError(\"custom\",e,a,r,s,{messages:n})};r.mainstay.tracer.entry(t,r);const l=t._definition;if(l.prepare&&void 0!==e&&s.convert){const t=l.prepare(e,i);if(t){if(r.mainstay.tracer.value(r,\"prepare\",e,t.value),t.errors)return u.finalize(t.value,[].concat(t.errors),i);e=t.value}}if(l.coerce&&void 0!==e&&s.convert&&(!l.coerce.from||l.coerce.from.includes(typeof e))){const t=l.coerce.method(e,i);if(t){if(r.mainstay.tracer.value(r,\"coerced\",e,t.value),t.errors)return u.finalize(t.value,[].concat(t.errors),i);e=t.value}}const c=t._flags.empty;c&&c.$_match(u.trim(e,t),r.nest(c),o.defaults)&&(r.mainstay.tracer.value(r,\"empty\",e,void 0),e=void 0);const f=n.presence||t._flags.presence||(t._flags._endedSwitch?null:s.presence);if(void 0===e){if(\"forbidden\"===f)return u.finalize(e,null,i);if(\"required\"===f)return u.finalize(e,[t.$_createError(\"any.required\",e,null,r,s)],i);if(\"optional\"===f){if(t._flags.default!==o.symbols.deepDefault)return u.finalize(e,null,i);r.mainstay.tracer.value(r,\"default\",e,{}),e={}}}else if(\"forbidden\"===f)return u.finalize(e,[t.$_createError(\"any.unknown\",e,null,r,s)],i);const m=[];if(t._valids){const n=t._valids.get(e,r,s,t._flags.insensitive);if(n)return s.convert&&(r.mainstay.tracer.value(r,\"valids\",e,n.value),e=n.value),r.mainstay.tracer.filter(t,r,\"valid\",n),u.finalize(e,null,i);if(t._flags.only){const n=t.$_createError(\"any.only\",e,{valids:t._valids.values({display:!0})},r,s);if(s.abortEarly)return u.finalize(e,[n],i);m.push(n)}}if(t._invalids){const n=t._invalids.get(e,r,s,t._flags.insensitive);if(n){r.mainstay.tracer.filter(t,r,\"invalid\",n);const a=t.$_createError(\"any.invalid\",e,{invalids:t._invalids.values({display:!0})},r,s);if(s.abortEarly)return u.finalize(e,[a],i);m.push(a)}}if(l.validate){const t=l.validate(e,i);if(t&&(r.mainstay.tracer.value(r,\"base\",e,t.value),e=t.value,t.errors)){if(!Array.isArray(t.errors))return m.push(t.errors),u.finalize(e,m,i);if(t.errors.length)return m.push(...t.errors),u.finalize(e,m,i)}}return t._rules.length?u.rules(e,m,i):u.finalize(e,m,i)},u.rules=function(e,t,r){const{schema:s,state:n,prefs:a}=r;for(const i of s._rules){const l=s._definition.rules[i.method];if(l.convert&&a.convert){n.mainstay.tracer.log(s,n,\"rule\",i.name,\"full\");continue}let c,f=i.args;if(i._resolve.length){f=Object.assign({},f);for(const t of i._resolve){const r=l.argsByName.get(t),i=f[t].resolve(e,n,a),u=r.normalize?r.normalize(i):i,m=o.validateArg(u,null,r);if(m){c=s.$_createError(\"any.ref\",i,{arg:t,ref:f[t],reason:m},n,a);break}f[t]=u}}c=c||l.validate(e,r,f,i);const m=u.rule(c,i);if(m.errors){if(n.mainstay.tracer.log(s,n,\"rule\",i.name,\"error\"),i.warn){n.mainstay.warnings.push(...m.errors);continue}if(a.abortEarly)return u.finalize(e,m.errors,r);t.push(...m.errors)}else n.mainstay.tracer.log(s,n,\"rule\",i.name,\"pass\"),n.mainstay.tracer.value(n,\"rule\",e,m.value,i.name),e=m.value}return u.finalize(e,t,r)},u.rule=function(e,t){return e instanceof l.Report?(u.error(e,t),{errors:[e],value:null}):Array.isArray(e)&&e[o.symbols.errors]?(e.forEach((e=>u.error(e,t))),{errors:e,value:null}):{errors:null,value:e}},u.error=function(e,t){return t.message&&e._setTemplate(t.message),e},u.finalize=function(e,t,r){t=t||[];const{schema:n,state:a,prefs:i}=r;if(t.length){const s=u.default(\"failover\",void 0,t,r);void 0!==s&&(a.mainstay.tracer.value(a,\"failover\",e,s),e=s,t=[])}if(t.length&&n._flags.error)if(\"function\"==typeof n._flags.error){t=n._flags.error(t),Array.isArray(t)||(t=[t]);for(const e of t)s(e instanceof Error||e instanceof l.Report,\"error() must return an Error object\")}else t=[n._flags.error];if(void 0===e){const s=u.default(\"default\",e,t,r);a.mainstay.tracer.value(a,\"default\",e,s),e=s}if(n._flags.cast&&void 0!==e){const t=n._definition.cast[n._flags.cast];if(t.from(e)){const s=t.to(e,r);a.mainstay.tracer.value(a,\"cast\",e,s,n._flags.cast),e=s}}if(n.$_terms.externals&&i.externals&&!1!==i._externals)for(const{method:e}of n.$_terms.externals)a.mainstay.externals.push({method:e,schema:n,state:a,label:l.label(n._flags,a,i)});const o={value:e,errors:t.length?t:null};return n._flags.result&&(o.value=\"strip\"===n._flags.result?void 0:r.original,a.mainstay.tracer.value(a,n._flags.result,e,o.value),a.shadow(e,n._flags.result)),n._cache&&!1!==i.cache&&!n._refs.length&&n._cache.set(r.original,o),void 0===e||o.errors||void 0===n._flags.artifact||(a.mainstay.artifacts=a.mainstay.artifacts||new Map,a.mainstay.artifacts.has(n._flags.artifact)||a.mainstay.artifacts.set(n._flags.artifact,[]),a.mainstay.artifacts.get(n._flags.artifact).push(a.path)),o},u.prefs=function(e,t){const r=t===o.defaults;return r&&e._preferences[o.symbols.prefs]?e._preferences[o.symbols.prefs]:(t=o.preferences(t,e._preferences),r&&(e._preferences[o.symbols.prefs]=t),t)},u.default=function(e,t,r,s){const{schema:a,state:i,prefs:l}=s,c=a._flags[e];if(l.noDefaults||void 0===c)return t;if(i.mainstay.tracer.log(a,i,\"rule\",e,\"full\"),!c)return c;if(\"function\"==typeof c){const t=c.length?[n(i.ancestors[0]),s]:[];try{return c(...t)}catch(t){return void r.push(a.$_createError(`any.${e}`,null,{error:t},i,l))}}return\"object\"!=typeof c?c:c[o.symbols.literal]?c.literal:o.isResolvable(c)?c.resolve(t,i,l):n(c)},u.trim=function(e,t){if(\"string\"!=typeof e)return e;const r=t.$_getRule(\"trim\");return r&&r.args.enabled?e.trim():e},u.ignore={active:!1,debug:a,entry:a,filter:a,log:a,resolve:a,value:a},u.errorsArray=function(){const e=[];return e[o.symbols.errors]=!0,e}},2036:(e,t,r)=>{\"use strict\";const s=r(375),n=r(9474),a=r(8160),i={};e.exports=i.Values=class{constructor(e,t){this._values=new Set(e),this._refs=new Set(t),this._lowercase=i.lowercases(e),this._override=!1}get length(){return this._values.size+this._refs.size}add(e,t){a.isResolvable(e)?this._refs.has(e)||(this._refs.add(e),t&&t.register(e)):this.has(e,null,null,!1)||(this._values.add(e),\"string\"==typeof e&&this._lowercase.set(e.toLowerCase(),e))}static merge(e,t,r){if(e=e||new i.Values,t){if(t._override)return t.clone();for(const r of[...t._values,...t._refs])e.add(r)}if(r)for(const t of[...r._values,...r._refs])e.remove(t);return e.length?e:null}remove(e){a.isResolvable(e)?this._refs.delete(e):(this._values.delete(e),\"string\"==typeof e&&this._lowercase.delete(e.toLowerCase()))}has(e,t,r,s){return!!this.get(e,t,r,s)}get(e,t,r,s){if(!this.length)return!1;if(this._values.has(e))return{value:e};if(\"string\"==typeof e&&e&&s){const t=this._lowercase.get(e.toLowerCase());if(t)return{value:t}}if(!this._refs.size&&\"object\"!=typeof e)return!1;if(\"object\"==typeof e)for(const t of this._values)if(n(t,e))return{value:t};if(t)for(const a of this._refs){const i=a.resolve(e,t,r,null,{in:!0});if(void 0===i)continue;const o=a.in&&\"object\"==typeof i?Array.isArray(i)?i:Object.keys(i):[i];for(const t of o)if(typeof t==typeof e)if(s&&e&&\"string\"==typeof e){if(t.toLowerCase()===e.toLowerCase())return{value:t,ref:a}}else if(n(t,e))return{value:t,ref:a}}return!1}override(){this._override=!0}values(e){if(e&&e.display){const e=[];for(const t of[...this._values,...this._refs])void 0!==t&&e.push(t);return e}return Array.from([...this._values,...this._refs])}clone(){const e=new i.Values(this._values,this._refs);return e._override=this._override,e}concat(e){s(!e._override,\"Cannot concat override set of values\");const t=new i.Values([...this._values,...e._values],[...this._refs,...e._refs]);return t._override=this._override,t}describe(){const e=[];this._override&&e.push({override:!0});for(const t of this._values.values())e.push(t&&\"object\"==typeof t?{value:t}:t);for(const t of this._refs.values())e.push(t.describe());return e}},i.Values.prototype[a.symbols.values]=!0,i.Values.prototype.slice=i.Values.prototype.clone,i.lowercases=function(e){const t=new Map;if(e)for(const r of e)\"string\"==typeof r&&t.set(r.toLowerCase(),r);return t}},978:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(1687),i=r(9621),o={};e.exports=function(e,t,r={}){if(s(e&&\"object\"==typeof e,\"Invalid defaults value: must be an object\"),s(!t||!0===t||\"object\"==typeof t,\"Invalid source value: must be true, falsy or an object\"),s(\"object\"==typeof r,\"Invalid options: must be an object\"),!t)return null;if(r.shallow)return o.applyToDefaultsWithShallow(e,t,r);const i=n(e);if(!0===t)return i;const l=void 0!==r.nullOverride&&r.nullOverride;return a(i,t,{nullOverride:l,mergeArrays:!1})},o.applyToDefaultsWithShallow=function(e,t,r){const l=r.shallow;s(Array.isArray(l),\"Invalid keys\");const c=new Map,u=!0===t?null:new Set;for(let r of l){r=Array.isArray(r)?r:r.split(\".\");const s=i(e,r);s&&\"object\"==typeof s?c.set(s,u&&i(t,r)||s):u&&u.add(r)}const f=n(e,{},c);if(!u)return f;for(const e of u)o.reachCopy(f,t,e);const m=void 0!==r.nullOverride&&r.nullOverride;return a(f,t,{nullOverride:m,mergeArrays:!1})},o.reachCopy=function(e,t,r){for(const e of r){if(!(e in t))return;const r=t[e];if(\"object\"!=typeof r||null===r)return;t=r}const s=t;let n=e;for(let e=0;e{\"use strict\";const s=r(7916);e.exports=function(e,...t){if(!e){if(1===t.length&&t[0]instanceof Error)throw t[0];throw new s(t)}}},8571:(e,t,r)=>{\"use strict\";const s=r(9621),n=r(4277),a=r(7043),i={needsProtoHack:new Set([n.set,n.map,n.weakSet,n.weakMap])};e.exports=i.clone=function(e,t={},r=null){if(\"object\"!=typeof e||null===e)return e;let s=i.clone,o=r;if(t.shallow){if(!0!==t.shallow)return i.cloneWithShallow(e,t);s=e=>e}else if(o){const t=o.get(e);if(t)return t}else o=new Map;const l=n.getInternalProto(e);if(l===n.buffer)return!1;if(l===n.date)return new Date(e.getTime());if(l===n.regex)return new RegExp(e);const c=i.base(e,l,t);if(c===e)return e;if(o&&o.set(e,c),l===n.set)for(const r of e)c.add(s(r,t,o));else if(l===n.map)for(const[r,n]of e)c.set(r,s(n,t,o));const u=a.keys(e,t);for(const r of u){if(\"__proto__\"===r)continue;if(l===n.array&&\"length\"===r){c.length=e.length;continue}const a=Object.getOwnPropertyDescriptor(e,r);a?a.get||a.set?Object.defineProperty(c,r,a):a.enumerable?c[r]=s(e[r],t,o):Object.defineProperty(c,r,{enumerable:!1,writable:!0,configurable:!0,value:s(e[r],t,o)}):Object.defineProperty(c,r,{enumerable:!0,writable:!0,configurable:!0,value:s(e[r],t,o)})}return c},i.cloneWithShallow=function(e,t){const r=t.shallow;(t=Object.assign({},t)).shallow=!1;const n=new Map;for(const t of r){const r=s(e,t);\"object\"!=typeof r&&\"function\"!=typeof r||n.set(r,r)}return i.clone(e,t,n)},i.base=function(e,t,r){if(!1===r.prototype)return i.needsProtoHack.has(t)?new t.constructor:t===n.array?[]:{};const s=Object.getPrototypeOf(e);if(s&&s.isImmutable)return e;if(t===n.array){const e=[];return s!==t&&Object.setPrototypeOf(e,s),e}if(i.needsProtoHack.has(t)){const e=new s.constructor;return s!==t&&Object.setPrototypeOf(e,s),e}return Object.create(s)}},9474:(e,t,r)=>{\"use strict\";const s=r(4277),n={mismatched:null};e.exports=function(e,t,r){return r=Object.assign({prototype:!0},r),!!n.isDeepEqual(e,t,r,[])},n.isDeepEqual=function(e,t,r,a){if(e===t)return 0!==e||1/e==1/t;const i=typeof e;if(i!==typeof t)return!1;if(null===e||null===t)return!1;if(\"function\"===i){if(!r.deepFunction||e.toString()!==t.toString())return!1}else if(\"object\"!==i)return e!=e&&t!=t;const o=n.getSharedType(e,t,!!r.prototype);switch(o){case s.buffer:return!1;case s.promise:return e===t;case s.regex:return e.toString()===t.toString();case n.mismatched:return!1}for(let r=a.length-1;r>=0;--r)if(a[r].isSame(e,t))return!0;a.push(new n.SeenEntry(e,t));try{return!!n.isDeepEqualObj(o,e,t,r,a)}finally{a.pop()}},n.getSharedType=function(e,t,r){if(r)return Object.getPrototypeOf(e)!==Object.getPrototypeOf(t)?n.mismatched:s.getInternalProto(e);const a=s.getInternalProto(e);return a!==s.getInternalProto(t)?n.mismatched:a},n.valueOf=function(e){const t=e.valueOf;if(void 0===t)return e;try{return t.call(e)}catch(e){return e}},n.hasOwnEnumerableProperty=function(e,t){return Object.prototype.propertyIsEnumerable.call(e,t)},n.isSetSimpleEqual=function(e,t){for(const r of Set.prototype.values.call(e))if(!Set.prototype.has.call(t,r))return!1;return!0},n.isDeepEqualObj=function(e,t,r,a,i){const{isDeepEqual:o,valueOf:l,hasOwnEnumerableProperty:c}=n,{keys:u,getOwnPropertySymbols:f}=Object;if(e===s.array){if(!a.part){if(t.length!==r.length)return!1;for(let e=0;e{\"use strict\";const s=r(8761);e.exports=class extends Error{constructor(e){super(e.filter((e=>\"\"!==e)).map((e=>\"string\"==typeof e?e:e instanceof Error?e.message:s(e))).join(\" \")||\"Unknown error\"),\"function\"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,t.assert)}}},5277:e=>{\"use strict\";const t={};e.exports=function(e){if(!e)return\"\";let r=\"\";for(let s=0;s=256?\"&#\"+e+\";\":`&#x${e.toString(16).padStart(2,\"0\")};`)},t.isSafe=function(e){return t.safeCharCodes.has(e)},t.namedHtml=new Map([[38,\"&\"],[60,\"<\"],[62,\">\"],[34,\""\"],[160,\" \"],[162,\"¢\"],[163,\"£\"],[164,\"¤\"],[169,\"©\"],[174,\"®\"]]),t.safeCharCodes=function(){const e=new Set;for(let t=32;t<123;++t)(t>=97||t>=65&&t<=90||t>=48&&t<=57||32===t||46===t||44===t||45===t||58===t||95===t)&&e.add(t);return e}()},6064:e=>{\"use strict\";e.exports=function(e){return e.replace(/[\\^\\$\\.\\*\\+\\-\\?\\=\\!\\:\\|\\\\\\/\\(\\)\\[\\]\\{\\}\\,]/g,\"\\\\$&\")}},738:e=>{\"use strict\";e.exports=function(){}},1687:(e,t,r)=>{\"use strict\";const s=r(375),n=r(8571),a=r(7043),i={};e.exports=i.merge=function(e,t,r){if(s(e&&\"object\"==typeof e,\"Invalid target value: must be an object\"),s(null==t||\"object\"==typeof t,\"Invalid source value: must be null, undefined, or an object\"),!t)return e;if(r=Object.assign({nullOverride:!0,mergeArrays:!0},r),Array.isArray(t)){s(Array.isArray(e),\"Cannot merge array onto an object\"),r.mergeArrays||(e.length=0);for(let s=0;s{\"use strict\";const s=r(375),n={};e.exports=function(e,t,r){if(!1===t||null==t)return e;\"string\"==typeof(r=r||{})&&(r={separator:r});const a=Array.isArray(t);s(!a||!r.separator,\"Separator option is not valid for array-based chain\");const i=a?t:t.split(r.separator||\".\");let o=e;for(let e=0;e{\"use strict\";e.exports=function(...e){try{return JSON.stringify(...e)}catch(e){return\"[Cannot display object: \"+e.message+\"]\"}}},4277:(e,t)=>{\"use strict\";const r={};t=e.exports={array:Array.prototype,buffer:!1,date:Date.prototype,error:Error.prototype,generic:Object.prototype,map:Map.prototype,promise:Promise.prototype,regex:RegExp.prototype,set:Set.prototype,weakMap:WeakMap.prototype,weakSet:WeakSet.prototype},r.typeMap=new Map([[\"[object Error]\",t.error],[\"[object Map]\",t.map],[\"[object Promise]\",t.promise],[\"[object Set]\",t.set],[\"[object WeakMap]\",t.weakMap],[\"[object WeakSet]\",t.weakSet]]),t.getInternalProto=function(e){if(Array.isArray(e))return t.array;if(e instanceof Date)return t.date;if(e instanceof RegExp)return t.regex;if(e instanceof Error)return t.error;const s=Object.prototype.toString.call(e);return r.typeMap.get(s)||t.generic}},7043:(e,t)=>{\"use strict\";t.keys=function(e,t={}){return!1!==t.symbols?Reflect.ownKeys(e):Object.getOwnPropertyNames(e)}},3652:(e,t,r)=>{\"use strict\";const s=r(375),n={};t.Sorter=class{constructor(){this._items=[],this.nodes=[]}add(e,t){const r=[].concat((t=t||{}).before||[]),n=[].concat(t.after||[]),a=t.group||\"?\",i=t.sort||0;s(!r.includes(a),`Item cannot come before itself: ${a}`),s(!r.includes(\"?\"),\"Item cannot come before unassociated items\"),s(!n.includes(a),`Item cannot come after itself: ${a}`),s(!n.includes(\"?\"),\"Item cannot come after unassociated items\"),Array.isArray(e)||(e=[e]);for(const t of e){const e={seq:this._items.length,sort:i,before:r,after:n,group:a,node:t};this._items.push(e)}if(!t.manual){const e=this._sort();s(e,\"item\",\"?\"!==a?`added into group ${a}`:\"\",\"created a dependencies error\")}return this.nodes}merge(e){Array.isArray(e)||(e=[e]);for(const t of e)if(t)for(const e of t._items)this._items.push(Object.assign({},e));this._items.sort(n.mergeSort);for(let e=0;ee.sort===t.sort?0:e.sort{\"use strict\";const s=r(443),n=r(2178),a={minDomainSegments:2,nonAsciiRx:/[^\\x00-\\x7f]/,domainControlRx:/[\\x00-\\x20@\\:\\/\\\\#!\\$&\\'\\(\\)\\*\\+,;=\\?]/,tldSegmentRx:/^[a-zA-Z](?:[a-zA-Z0-9\\-]*[a-zA-Z0-9])?$/,domainSegmentRx:/^[a-zA-Z0-9](?:[a-zA-Z0-9\\-]*[a-zA-Z0-9])?$/,URL:s.URL||URL};t.analyze=function(e,t={}){if(!e)return n.code(\"DOMAIN_NON_EMPTY_STRING\");if(\"string\"!=typeof e)throw new Error(\"Invalid input: domain must be a string\");if(e.length>256)return n.code(\"DOMAIN_TOO_LONG\");if(a.nonAsciiRx.test(e)){if(!1===t.allowUnicode)return n.code(\"DOMAIN_INVALID_UNICODE_CHARS\");e=e.normalize(\"NFC\")}if(a.domainControlRx.test(e))return n.code(\"DOMAIN_INVALID_CHARS\");e=a.punycode(e),t.allowFullyQualified&&\".\"===e[e.length-1]&&(e=e.slice(0,-1));const r=t.minDomainSegments||a.minDomainSegments,s=e.split(\".\");if(s.lengtht.maxDomainSegments)return n.code(\"DOMAIN_SEGMENTS_COUNT_MAX\");const i=t.tlds;if(i){const e=s[s.length-1].toLowerCase();if(i.deny&&i.deny.has(e)||i.allow&&!i.allow.has(e))return n.code(\"DOMAIN_FORBIDDEN_TLDS\")}for(let e=0;e63)return n.code(\"DOMAIN_LONG_SEGMENT\");if(e{\"use strict\";const s=r(9848),n=r(5380),a=r(2178),i={nonAsciiRx:/[^\\x00-\\x7f]/,encoder:new(s.TextEncoder||TextEncoder)};t.analyze=function(e,t){return i.email(e,t)},t.isValid=function(e,t){return!i.email(e,t)},i.email=function(e,t={}){if(\"string\"!=typeof e)throw new Error(\"Invalid input: email must be a string\");if(!e)return a.code(\"EMPTY_STRING\");const r=!i.nonAsciiRx.test(e);if(!r){if(!1===t.allowUnicode)return a.code(\"FORBIDDEN_UNICODE\");e=e.normalize(\"NFC\")}const s=e.split(\"@\");if(2!==s.length)return s.length>2?a.code(\"MULTIPLE_AT_CHAR\"):a.code(\"MISSING_AT_CHAR\");const[o,l]=s;if(!o)return a.code(\"EMPTY_LOCAL\");if(!t.ignoreLength){if(e.length>254)return a.code(\"ADDRESS_TOO_LONG\");if(i.encoder.encode(o).length>64)return a.code(\"LOCAL_TOO_LONG\")}return i.local(o,r)||n.analyze(l,t)},i.local=function(e,t){const r=e.split(\".\");for(const e of r){if(!e.length)return a.code(\"EMPTY_LOCAL_SEGMENT\");if(t){if(!i.atextRx.test(e))return a.code(\"INVALID_LOCAL_CHARS\")}else for(const t of e){if(i.atextRx.test(t))continue;const e=i.binary(t);if(!i.atomRx.test(e))return a.code(\"INVALID_LOCAL_CHARS\")}}},i.binary=function(e){return Array.from(i.encoder.encode(e)).map((e=>String.fromCharCode(e))).join(\"\")},i.atextRx=/^[\\w!#\\$%&'\\*\\+\\-/=\\?\\^`\\{\\|\\}~]+$/,i.atomRx=new RegExp([\"(?:[\\\\xc2-\\\\xdf][\\\\x80-\\\\xbf])\",\"(?:\\\\xe0[\\\\xa0-\\\\xbf][\\\\x80-\\\\xbf])|(?:[\\\\xe1-\\\\xec][\\\\x80-\\\\xbf]{2})|(?:\\\\xed[\\\\x80-\\\\x9f][\\\\x80-\\\\xbf])|(?:[\\\\xee-\\\\xef][\\\\x80-\\\\xbf]{2})\",\"(?:\\\\xf0[\\\\x90-\\\\xbf][\\\\x80-\\\\xbf]{2})|(?:[\\\\xf1-\\\\xf3][\\\\x80-\\\\xbf]{3})|(?:\\\\xf4[\\\\x80-\\\\x8f][\\\\x80-\\\\xbf]{2})\"].join(\"|\"))},2178:(e,t)=>{\"use strict\";t.codes={EMPTY_STRING:\"Address must be a non-empty string\",FORBIDDEN_UNICODE:\"Address contains forbidden Unicode characters\",MULTIPLE_AT_CHAR:\"Address cannot contain more than one @ character\",MISSING_AT_CHAR:\"Address must contain one @ character\",EMPTY_LOCAL:\"Address local part cannot be empty\",ADDRESS_TOO_LONG:\"Address too long\",LOCAL_TOO_LONG:\"Address local part too long\",EMPTY_LOCAL_SEGMENT:\"Address local part contains empty dot-separated segment\",INVALID_LOCAL_CHARS:\"Address local part contains invalid character\",DOMAIN_NON_EMPTY_STRING:\"Domain must be a non-empty string\",DOMAIN_TOO_LONG:\"Domain too long\",DOMAIN_INVALID_UNICODE_CHARS:\"Domain contains forbidden Unicode characters\",DOMAIN_INVALID_CHARS:\"Domain contains invalid character\",DOMAIN_INVALID_TLDS_CHARS:\"Domain contains invalid tld character\",DOMAIN_SEGMENTS_COUNT:\"Domain lacks the minimum required number of segments\",DOMAIN_SEGMENTS_COUNT_MAX:\"Domain contains too many segments\",DOMAIN_FORBIDDEN_TLDS:\"Domain uses forbidden TLD\",DOMAIN_EMPTY_SEGMENT:\"Domain contains empty dot-separated segment\",DOMAIN_LONG_SEGMENT:\"Domain contains dot-separated segment that is too long\"},t.code=function(e){return{code:e,error:t.codes[e]}}},9959:(e,t,r)=>{\"use strict\";const s=r(375),n=r(5752);t.regex=function(e={}){s(void 0===e.cidr||\"string\"==typeof e.cidr,\"options.cidr must be a string\");const t=e.cidr?e.cidr.toLowerCase():\"optional\";s([\"required\",\"optional\",\"forbidden\"].includes(t),\"options.cidr must be one of required, optional, forbidden\"),s(void 0===e.version||\"string\"==typeof e.version||Array.isArray(e.version),\"options.version must be a string or an array of string\");let r=e.version||[\"ipv4\",\"ipv6\",\"ipvfuture\"];Array.isArray(r)||(r=[r]),s(r.length>=1,\"options.version must have at least 1 version specified\");for(let e=0;e{if(\"forbidden\"===t)return n.ip[e];const r=`\\\\/${\"ipv4\"===e?n.ip.v4Cidr:n.ip.v6Cidr}`;return\"required\"===t?`${n.ip[e]}${r}`:`${n.ip[e]}(?:${r})?`})).join(\"|\")})`,i=new RegExp(`^${a}$`);return{cidr:t,versions:r,regex:i,raw:a}}},5752:(e,t,r)=>{\"use strict\";const s=r(375),n=r(6064),a={generate:function(){const e={},t=\"\\\\dA-Fa-f\",r=\"[\"+t+\"]\",s=\"\\\\w-\\\\.~\",n=\"!\\\\$&'\\\\(\\\\)\\\\*\\\\+,;=\",a=\"%\"+t,i=s+a+n+\":@\",o=\"[\"+i+\"]\",l=\"(?:0{0,2}\\\\d|0?[1-9]\\\\d|1\\\\d\\\\d|2[0-4]\\\\d|25[0-5])\";e.ipv4address=\"(?:\"+l+\"\\\\.){3}\"+l;const c=r+\"{1,4}\",u=\"(?:\"+c+\":\"+c+\"|\"+e.ipv4address+\")\",f=\"(?:\"+c+\":){6}\"+u,m=\"::(?:\"+c+\":){5}\"+u,h=\"(?:\"+c+\")?::(?:\"+c+\":){4}\"+u,d=\"(?:(?:\"+c+\":){0,1}\"+c+\")?::(?:\"+c+\":){3}\"+u,p=\"(?:(?:\"+c+\":){0,2}\"+c+\")?::(?:\"+c+\":){2}\"+u,g=\"(?:(?:\"+c+\":){0,3}\"+c+\")?::\"+c+\":\"+u,y=\"(?:(?:\"+c+\":){0,4}\"+c+\")?::\"+u,b=\"(?:(?:\"+c+\":){0,5}\"+c+\")?::\"+c,v=\"(?:(?:\"+c+\":){0,6}\"+c+\")?::\";e.ipv4Cidr=\"(?:\\\\d|[1-2]\\\\d|3[0-2])\",e.ipv6Cidr=\"(?:0{0,2}\\\\d|0?[1-9]\\\\d|1[01]\\\\d|12[0-8])\",e.ipv6address=\"(?:\"+f+\"|\"+m+\"|\"+h+\"|\"+d+\"|\"+p+\"|\"+g+\"|\"+y+\"|\"+b+\"|\"+v+\")\",e.ipvFuture=\"v\"+r+\"+\\\\.[\"+s+n+\":]+\",e.scheme=\"[a-zA-Z][a-zA-Z\\\\d+-\\\\.]*\",e.schemeRegex=new RegExp(e.scheme);const _=\"[\"+s+a+n+\":]*\",w=\"[\"+s+a+n+\"]{1,255}\",$=\"(?:\\\\[(?:\"+e.ipv6address+\"|\"+e.ipvFuture+\")\\\\]|\"+e.ipv4address+\"|\"+w+\")\",x=\"(?:\"+_+\"@)?\"+$+\"(?::\\\\d*)?\",j=\"(?:\"+_+\"@)?(\"+$+\")(?::\\\\d*)?\",k=o+\"*\",R=o+\"+\",S=\"(?:\\\\/\"+k+\")*\",A=\"\\\\/(?:\"+R+S+\")?\",O=R+S,E=\"[\"+s+a+n+\"@]+\"+S,D=\"(?:\\\\/\\\\/\\\\/\"+k+S+\")\";return e.hierPart=\"(?:(?:\\\\/\\\\/\"+x+S+\")|\"+A+\"|\"+O+\"|\"+D+\")\",e.hierPartCapture=\"(?:(?:\\\\/\\\\/\"+j+S+\")|\"+A+\"|\"+O+\")\",e.relativeRef=\"(?:(?:\\\\/\\\\/\"+x+S+\")|\"+A+\"|\"+E+\"|)\",e.relativeRefCapture=\"(?:(?:\\\\/\\\\/\"+j+S+\")|\"+A+\"|\"+E+\"|)\",e.query=\"[\"+i+\"\\\\/\\\\?]*(?=#|$)\",e.queryWithSquareBrackets=\"[\"+i+\"\\\\[\\\\]\\\\/\\\\?]*(?=#|$)\",e.fragment=\"[\"+i+\"\\\\/\\\\?]*\",e}};a.rfc3986=a.generate(),t.ip={v4Cidr:a.rfc3986.ipv4Cidr,v6Cidr:a.rfc3986.ipv6Cidr,ipv4:a.rfc3986.ipv4address,ipv6:a.rfc3986.ipv6address,ipvfuture:a.rfc3986.ipvFuture},a.createRegex=function(e){const t=a.rfc3986,r=\"(?:\\\\?\"+(e.allowQuerySquareBrackets?t.queryWithSquareBrackets:t.query)+\")?(?:#\"+t.fragment+\")?\",i=e.domain?t.relativeRefCapture:t.relativeRef;if(e.relativeOnly)return a.wrap(i+r);let o=\"\";if(e.scheme){s(e.scheme instanceof RegExp||\"string\"==typeof e.scheme||Array.isArray(e.scheme),\"scheme must be a RegExp, String, or Array\");const r=[].concat(e.scheme);s(r.length>=1,\"scheme must have at least 1 scheme specified\");const a=[];for(let e=0;e{\"use strict\";const r={operators:[\"!\",\"^\",\"*\",\"/\",\"%\",\"+\",\"-\",\"<\",\"<=\",\">\",\">=\",\"==\",\"!=\",\"&&\",\"||\",\"??\"],operatorCharacters:[\"!\",\"^\",\"*\",\"/\",\"%\",\"+\",\"-\",\"<\",\"=\",\">\",\"&\",\"|\",\"?\"],operatorsOrder:[[\"^\"],[\"*\",\"/\",\"%\"],[\"+\",\"-\"],[\"<\",\"<=\",\">\",\">=\"],[\"==\",\"!=\"],[\"&&\"],[\"||\",\"??\"]],operatorsPrefix:[\"!\",\"n\"],literals:{'\"':'\"',\"`\":\"`\",\"'\":\"'\",\"[\":\"]\"},numberRx:/^(?:[0-9]*(\\.[0-9]*)?){1}$/,tokenRx:/^[\\w\\$\\#\\.\\@\\:\\{\\}]+$/,symbol:Symbol(\"formula\"),settings:Symbol(\"settings\")};t.Parser=class{constructor(e,t={}){if(!t[r.settings]&&t.constants)for(const e in t.constants){const r=t.constants[e];if(null!==r&&![\"boolean\",\"number\",\"string\"].includes(typeof r))throw new Error(`Formula constant ${e} contains invalid ${typeof r} value type`)}this.settings=t[r.settings]?t:Object.assign({[r.settings]:!0,constants:{},functions:{}},t),this.single=null,this._parts=null,this._parse(e)}_parse(e){let s=[],n=\"\",a=0,i=!1;const o=e=>{if(a)throw new Error(\"Formula missing closing parenthesis\");const o=s.length?s[s.length-1]:null;if(i||n||e){if(o&&\"reference\"===o.type&&\")\"===e)return o.type=\"function\",o.value=this._subFormula(n,o.value),void(n=\"\");if(\")\"===e){const e=new t.Parser(n,this.settings);s.push({type:\"segment\",value:e})}else if(i){if(\"]\"===i)return s.push({type:\"reference\",value:n}),void(n=\"\");s.push({type:\"literal\",value:n})}else if(r.operatorCharacters.includes(n))o&&\"operator\"===o.type&&r.operators.includes(o.value+n)?o.value+=n:s.push({type:\"operator\",value:n});else if(n.match(r.numberRx))s.push({type:\"constant\",value:parseFloat(n)});else if(void 0!==this.settings.constants[n])s.push({type:\"constant\",value:this.settings.constants[n]});else{if(!n.match(r.tokenRx))throw new Error(`Formula contains invalid token: ${n}`);s.push({type:\"reference\",value:n})}n=\"\"}};for(const t of e)i?t===i?(o(),i=!1):n+=t:a?\"(\"===t?(n+=t,++a):\")\"===t?(--a,a?n+=t:o(t)):n+=t:t in r.literals?i=r.literals[t]:\"(\"===t?(o(),++a):r.operatorCharacters.includes(t)?(o(),n=t,o()):\" \"!==t?n+=t:o();o(),s=s.map(((e,t)=>\"operator\"!==e.type||\"-\"!==e.value||t&&\"operator\"!==s[t-1].type?e:{type:\"operator\",value:\"n\"}));let l=!1;for(const e of s){if(\"operator\"===e.type){if(r.operatorsPrefix.includes(e.value))continue;if(!l)throw new Error(\"Formula contains an operator in invalid position\");if(!r.operators.includes(e.value))throw new Error(`Formula contains an unknown operator ${e.value}`)}else if(l)throw new Error(\"Formula missing expected operator\");l=!l}if(!l)throw new Error(\"Formula contains invalid trailing operator\");1===s.length&&[\"reference\",\"literal\",\"constant\"].includes(s[0].type)&&(this.single={type:\"reference\"===s[0].type?\"reference\":\"value\",value:s[0].value}),this._parts=s.map((e=>{if(\"operator\"===e.type)return r.operatorsPrefix.includes(e.value)?e:e.value;if(\"reference\"!==e.type)return e.value;if(this.settings.tokenRx&&!this.settings.tokenRx.test(e.value))throw new Error(`Formula contains invalid reference ${e.value}`);return this.settings.reference?this.settings.reference(e.value):r.reference(e.value)}))}_subFormula(e,s){const n=this.settings.functions[s];if(\"function\"!=typeof n)throw new Error(`Formula contains unknown function ${s}`);let a=[];if(e){let t=\"\",n=0,i=!1;const o=()=>{if(!t)throw new Error(`Formula contains function ${s} with invalid arguments ${e}`);a.push(t),t=\"\"};for(let s=0;snew t.Parser(e,this.settings))),function(e){const t=[];for(const r of a)t.push(r.evaluate(e));return n.call(e,...t)}}evaluate(e){const t=this._parts.slice();for(let s=t.length-2;s>=0;--s){const n=t[s];if(n&&\"operator\"===n.type){const a=t[s+1];t.splice(s+1,1);const i=r.evaluate(a,e);t[s]=r.single(n.value,i)}}return r.operatorsOrder.forEach((s=>{for(let n=1;n\":return t>s;case\">=\":return t>=s;case\"==\":return t===s;case\"!=\":return t!==s;case\"&&\":return t&&s;case\"||\":return t||s}return null},r.exists=function(e){return null!=e}},9926:()=>{},5688:()=>{},9708:()=>{},1152:()=>{},443:()=>{},9848:()=>{},5934:e=>{\"use strict\";e.exports=JSON.parse('{\"version\":\"17.13.3\"}')}},t={},function r(s){var n=t[s];if(void 0!==n)return n.exports;var a=t[s]={exports:{}};return e[s](a,a.exports,r),a.exports}(5107);var e,t}));","\"use strict\";var e;exports.DefaultValidationMessages=void 0,(e=exports.DefaultValidationMessages||(exports.DefaultValidationMessages={})).default=\"Invalid\",e.required=\"Required\",e.integer=\"Must be an integer\",e.futureDate=\"Cannot be future date\",e.todayOrLater=\"Must be today or later\",e.futureTime=\"Cannot be future time\",e.later=\"Must be greater than today\",e.email=\"Email has the invalid format\",e.url=\"Website address has the invalid format\",e.lessThan=\"Must be less than {{#limit + 1}}\",e.lessThanOrEqual=\"Must be less than or equal to {{#limit}}\",e.greaterThan=\"Must be greater than {{#limit - 1}}\",e.greaterThanOrEqual=\"Must be at least {{#limit}}\",e.maxArrayLength=\"Must not exceed {{#limit}} item(s)\",e.minArrayLength=\"Must have {{#limit}} item(s) at least\",e.maxLength=\"Must not exceed {{#limit}} characters\",e.requiredLength=\"Must be {{#limit}} characters in length\",e.minLength=\"Must be at least {{#limit}} characters in length\",e.arrayNoDuplicatesAllowed=\"No duplicate values allowed in this collection\";\n//# sourceMappingURL=default-validation-messages.enums.js.map\n","\"use strict\";var e=require(\"./default-validation-messages.enums.js\");const a={\"date.validDateFormat\":e.DefaultValidationMessages.default,\"date.isNotFutureDate\":e.DefaultValidationMessages.futureDate,\"date.isTodayOrGreater\":e.DefaultValidationMessages.todayOrLater,\"date.isDateBeforeDate\":e.DefaultValidationMessages.default,\"date.isDateSameOrBeforeDate\":e.DefaultValidationMessages.default,\"date.isDateAfterDate\":e.DefaultValidationMessages.default,\"date.isDateSameOrAfterDate\":e.DefaultValidationMessages.default,\"date.isDateBeforeField\":e.DefaultValidationMessages.default,\"date.isDateAfterField\":e.DefaultValidationMessages.default,\"date.validTimeFormat\":e.DefaultValidationMessages.default,\"date.areTimesEqualField\":e.DefaultValidationMessages.default,\"date.isBeforeTimeField\":e.DefaultValidationMessages.default,\"date.isAfterTimeField\":e.DefaultValidationMessages.default,\"date.isNotFutureTime\":e.DefaultValidationMessages.futureTime},t={custom:`{#message || '${e.DefaultValidationMessages.default}'}`};exports.baseValidateOptions={abortEarly:!1,allowUnknown:!0,errors:{label:!1}},exports.bpDateMessages=a,exports.defaultMessages=t;\n//# sourceMappingURL=validator.constants.js.map\n","\"use strict\";var s=require(\"joi\");require(\"../types/default-validation-messages.enums.js\");var e=require(\"../types/validator.constants.js\");const a=s.defaults((s=>s.messages(e.defaultMessages)));exports.joi=a;\n//# sourceMappingURL=joi.js.map\n","\"use strict\";exports.getFormValuesFromContext=e=>e.prefs.context.values,exports.getParentValues=e=>e.state.ancestors[0]??e.prefs.context?.parent;\n//# sourceMappingURL=validation-helper.utils.js.map\n","\"use strict\";var r=require(\"joi\");require(\"../types/default-validation-messages.enums.js\");var e=require(\"../types/validator.constants.js\"),t=require(\"./validation-helper.utils.js\");const s=a=>{const o={...a};return Object.keys(a).forEach((i=>{const n=i,l=a[n];var c,u;Array.isArray(l)?o[n]=(u=o[n],r.any().custom(((r,s)=>{const a=t.getParentValues(s),o=t.getFormValuesFromContext(s);for(let r=0;r1)return s.error(\"custom\",{itemErrors:i.details});const r=i.details[0];return r?.context?.itemErrors?s.error(\"custom\",{itemErrors:r.context.itemErrors}):s.error(\"custom\",{message:r.message})}}return s.original})).prefs({abortEarly:!1})):!l||(\"object\"!=typeof(c=l)||\"$\"in c||Array.isArray(c))||(o[n]=s(l))})),o};exports.mergeSchemaArrays=s;\n//# sourceMappingURL=parse-schema-array.util.js.map\n","\"use strict\";exports.parseValidationErrors=(e,r)=>{const t=({parent:e,child:r,parentKey:t},a)=>\"string\"!=typeof a?(Array.isArray(r)?r.length-1({})))]):e[t]=Array.from({length:a+1},(()=>({}))),e[t][a]):(r[a]={},r[a]),a=(e,r)=>r.reduce(((e,r)=>({parent:e.child,parentKey:r,child:e.child?.[r]??t(e,r)})),{parent:e,child:e,parentKey:r[0]}).parent,n=e.flatMap((e=>e.context?.itemErrors?e.context.itemErrors.map((r=>({...r,path:e.path.concat(r.path)}))):e)),s={};return n.forEach((e=>{const{path:t,message:n}=e,h=t[t.length-1],l=\"number\"==typeof h,o=t.length>1,p=r?.errorMessageParser?r.errorMessageParser(n):n;if(l){const e=t[t.length-2];a(s,t.slice(0,t.length-1))[e]=p}else if(o){a(s,t)[h]=p}else s[h]=p})),s};\n//# sourceMappingURL=parse-validation-errors.utils.js.map\n","\"use strict\";var r=require(\"./utils/joi.js\");require(\"./types/default-validation-messages.enums.js\");var e=require(\"./types/validator.constants.js\"),s=require(\"./utils/parse-schema-array.util.js\"),a=require(\"./utils/parse-validation-errors.utils.js\");exports.validate=(t,i,o)=>{const{errorMessageParser:l,validationOptions:u}=o??{},{context:n,...d}=u??{},v=r.joi.object(s.mergeSchemaArrays(i)).validate(t,{context:{values:t,...n},...e.baseValidateOptions,...d});return v.error?a.parseValidationErrors(v.error.details,{errorMessageParser:l}):{}};\n//# sourceMappingURL=validate.js.map\n","\"use strict\";var e=require(\"../utils/joi.js\");require(\"joi\"),require(\"../types/default-validation-messages.enums.js\");var r=require(\"../types/validator.constants.js\"),t=require(\"../utils/validation-helper.utils.js\");const s=e.joi.any();exports.CustomValidator=class{predicate(e){return s.custom(((s,a)=>{const o=t.getParentValues(a),i=t.getFormValuesFromContext(a);if(e.when(a.original,o,i)){const{error:t}=e.then.validate(a.original,{context:{values:i,parent:o},...r.baseValidateOptions,abortEarly:!1});if(t)return t.details.length>1?a.error(\"custom\",{itemErrors:t.details}):a.error(\"custom\",{message:t.details[0].message})}return a.original}))}func(e){return s.custom(((r,s)=>{const a=t.getParentValues(s),o=t.getFormValuesFromContext(s),i=e(r,a,o);return i!==r?s.error(\"custom\",{message:i}):r}))}};\n//# sourceMappingURL=custom.validator.js.map\n","\"use strict\";var e=require(\"../utils/joi.js\"),a=require(\"../types/default-validation-messages.enums.js\");require(\"../types/validator.constants.js\");var r=require(\"../utils/parse-schema-array.util.js\"),s=require(\"./custom.validator.js\");class i extends s.CustomValidator{itemArray(a){return e.joi.array().items(r.mergeSchemaArrays(a))}required(r={message:a.DefaultValidationMessages.required}){return e.joi.array().min(1).required().messages({\"array.min\":r.message,\"any.required\":r.message})}max(r,s={message:a.DefaultValidationMessages.maxArrayLength}){return e.joi.array().max(r).messages({\"array.max\":s.message})}min(r,s={message:a.DefaultValidationMessages.minArrayLength}){return e.joi.array().min(r).messages({\"array.min\":s.message})}unique(r={message:a.DefaultValidationMessages.arrayNoDuplicatesAllowed}){return e.joi.array().unique().messages({\"array.unique\":r.message})}}exports.ArrayValidator=i;\n//# sourceMappingURL=array.validator.js.map\n","\"use strict\";var e=require(\"../utils/joi.js\"),s=require(\"../types/default-validation-messages.enums.js\");require(\"../types/validator.constants.js\");exports.BooleanValidator=class{required(a={message:s.DefaultValidationMessages.required}){return e.joi.boolean().empty([\"\",null]).required().messages({\"any.required\":a.message})}};\n//# sourceMappingURL=boolean.validator.js.map\n","\"use strict\";require(\"luxon\");var e=require(\"../../date-time/DateTime.js\");require(\"../../date-time/types/recurrence.enum.js\"),require(\"../../date-time/types/week-days.enum.js\"),require(\"../../date-time/types/date-time.constants.js\");var a=require(\"../../date-time/types/date-time.formats.js\"),r=require(\"../../date-time/date-time.utils.js\"),t=require(\"../utils/joi.js\");require(\"../types/default-validation-messages.enums.js\");var i=require(\"../types/validator.constants.js\");require(\"joi\");var s=require(\"../utils/validation-helper.utils.js\");const m=t.joi.extend((t=>({type:\"date\",base:t.date(),prepare:e=>({value:\"string\"==typeof e&&\"\"!==e?\"0000\":e}),messages:i.bpDateMessages,rules:{validDateFormat:{args:[{name:\"dateFormat\",assert:e=>\"string\"==typeof e?Object.values(a.DATE_FORMATS).includes(e):e.every((e=>Object.values(a.DATE_FORMATS).includes(e))),message:\"Must be a valid DATE_FORMATS\"}],method(e){return this.$_addRule({name:\"validDateFormat\",args:{dateFormat:e}})},validate:(a,r,t)=>((a,r)=>\"string\"!=typeof a||r.some((r=>e.DateTime.fromFormat(a,r).isValid)))(r.original,\"string\"==typeof t.dateFormat?[t.dateFormat]:t.dateFormat)?{value:a}:r.error(\"date.validDateFormat\")},isNotFutureDate:{validate(a,r){if(!a)return a;const t=\"string\"==typeof a?e.DateTime.fromISO(a):e.DateTime.fromJSDate(a).startOf(\"day\");return e.DateTime.now()!0,message:\"Invalid\"}],method(e){return this.$_addRule({name:\"isDateBeforeDate\",args:{date:e}})},validate(a,r,t){const i=e.DateTime.fromJSDate(r.original),s=t.date instanceof e.DateTime?t.date:e.DateTime.fromJSDate(t.date);return s&&i!0,message:\"Invalid\"}],method(e){return this.$_addRule({name:\"isDateSameOrBeforeDate\",args:{date:e}})},validate(a,r,{date:t}){const i=e.DateTime.fromJSDate(r.original),s=t instanceof e.DateTime?t:e.DateTime.fromJSDate(t);return s&&i<=s?a:r.error(\"date.isDateSameOrBeforeDate\")}},isDateAfterDate:{args:[{name:\"date\",assert:()=>!0,message:\"Invalid\"}],method(e){return this.$_addRule({name:\"isDateAfterDate\",args:{date:e}})},validate(a,r,{date:t}){const i=a&&(\"string\"==typeof a?e.DateTime.fromISO(a):e.DateTime.fromJSDate(a)),s=t instanceof e.DateTime?t:e.DateTime.fromJSDate(t);return!s||!i||i>s?a:r.error(\"date.isDateAfterDate\")}},isDateSameOrAfterDate:{args:[{name:\"date\",assert:()=>!0,message:\"Invalid\"}],method(e){return this.$_addRule({name:\"isDateSameOrAfterDate\",args:{date:e}})},validate(a,r,{date:t}){const i=a&&(\"string\"==typeof a?e.DateTime.fromISO(a):e.DateTime.fromJSDate(a)),s=t instanceof e.DateTime?t:e.DateTime.fromJSDate(t);return!s||!i||i>=s?a:r.error(\"date.isDateSameOrAfterDate\")}},isDateBeforeField:{args:[{name:\"propertyName\",assert:()=>!0,message:\"Invalid\"},{name:\"orSame\",assert:()=>!0,message:\"Invalid\"}],method(e,a){return this.$_addRule({name:\"isDateBeforeField\",args:{propertyName:e,orSame:a}})},validate(a,t,{propertyName:i,orSame:m}){const o=s.getParentValues(t)[i],d=o instanceof e.DateTime?o:r.getDateTimeFromISOrJSDate(o),n=t.original instanceof e.DateTime?t.original:r.getDateTimeFromISOrJSDate(t.original);return m?n&&d&&(n!0,message:\"Invalid\"},{name:\"orSame\",assert:()=>!0,message:\"Invalid\"}],method(e,a){return this.$_addRule({name:\"isDateAfterField\",args:{propertyName:e,orSame:a}})},validate(a,t,{propertyName:i,orSame:m}){const o=s.getParentValues(t),d=o[i],n=d instanceof e.DateTime?d:r.getDateTimeFromISOrJSDate(o[i]),l=t.original instanceof e.DateTime?t.original:r.getDateTimeFromISOrJSDate(t.original);return m?l&&n&&(l>n||l.equals(n))?t.error(\"date.isDateAfterField\"):a:l&&n&&l>n?t.error(\"date.isDateAfterField\"):a}},validTimeFormat:{validate:(r,t)=>!t.original||e.DateTime.fromFormat(t.original,a.TIME_FORMATS.TIME_FORMAT_24).isValid||e.DateTime.fromFormat(t.original,a.TIME_FORMATS.TIME_FORMAT_WITH_SECONDS).isValid?t.original:t.error(\"date.validTimeFormat\")},areTimesEqualField:{args:[{name:\"propertyName\",assert:()=>!0,message:\"Invalid\"}],method(e){return this.$_addRule({name:\"areTimesEqualField\",args:{propertyName:e}})},validate(a,r,{propertyName:t}){const i=s.getParentValues(r),m=e.DateTime.fromParsedTimeString(r.original),o=e.DateTime.fromParsedTimeString(i[t]);return m&&o&&m.equals(o)?r.error(\"date.areTimesEqualField\"):r.original}},isBeforeTimeField:{args:[{name:\"propertyName\",assert:()=>!0,message:\"Invalid\"},{name:\"orSame\",assert:()=>!0,message:\"Invalid\"}],method(e,a){return this.$_addRule({name:\"isBeforeTimeField\",args:{propertyName:e,orSame:a}})},validate(a,r,{propertyName:t,orSame:i}){const m=s.getParentValues(r),o=e.DateTime.fromParsedTimeString(r.original),d=e.DateTime.fromParsedTimeString(m[t]);return i?o&&d&&(o.equals(d)||o!0,message:\"Invalid\"},{name:\"orSame\",assert:()=>!0,message:\"Invalid\"}],method(e,a){return this.$_addRule({name:\"isAfterTimeField\",args:{propertyName:e,orSame:a}})},validate(a,r,{propertyName:t,orSame:i}){const m=s.getParentValues(r),o=e.DateTime.fromParsedTimeString(r.original),d=e.DateTime.fromParsedTimeString(m[t]);return i?o&&d&&(o.equals(d)||o>d)?r.error(\"date.isAfterTimeField\"):r.original:o&&d&&o>d?r.error(\"date.isAfterTimeField\"):r.original}},isNotFutureTime:{validate(a,r){const t=e.DateTime.now(),i=e.DateTime.fromParsedTimeString(r.original);return i&&(i>t?r.error(\"date.isNotFutureTime\"):r.original)}}}})));exports.bpDateTimeExtension=m;\n//# sourceMappingURL=bp-date-time-validator.extension.js.map\n","\"use strict\";var e=require(\"../types/default-validation-messages.enums.js\");require(\"../types/validator.constants.js\");const a=require(\"../validator-extensions/bp-date-time-validator.extension.js\").bpDateTimeExtension.date().empty([\"\",null]);exports.DateTimeValidator=class{required(s={message:e.DefaultValidationMessages.required}){return a.raw(!0).required().raw(!0).messages({\"any.required\":s.message})}validDate(s,t={message:e.DefaultValidationMessages.default}){return a.validDateFormat(s).messages({\"date.validDateFormat\":t.message})}todayOrGreater(s={message:e.DefaultValidationMessages.todayOrLater}){return a.isTodayOrGreater().messages({\"date.isTodayOrGreater\":s.message})}isNotFutureDate(s={message:e.DefaultValidationMessages.futureDate}){return a.isNotFutureDate().messages({\"date.isNotFutureDate\":s.message})}isDateSameOrBeforeDate(s,t={message:e.DefaultValidationMessages.default}){return a.isDateSameOrBeforeDate(s).messages({\"date.isDateSameOrBeforeDate\":t.message})}isDateBeforeDate(s,t={message:e.DefaultValidationMessages.default}){return a.allow(\"\").empty(\"\").isDateBeforeDate(s).messages({\"date.isDateBeforeDate\":t.message})}isDateAfterDate(s,t={message:e.DefaultValidationMessages.default}){return a.isDateAfterDate(s).messages({\"date.isDateAfterDate\":t.message})}isDateSameOrAfterDate(s,t={message:e.DefaultValidationMessages.default}){return a.isDateSameOrAfterDate(s).messages({\"date.isDateSameOrAfterDate\":t.message})}isDateAfterField(s,t,i={message:e.DefaultValidationMessages.default}){return a.isDateAfterField(s,t).messages({\"date.isDateAfterField\":i.message})}isDateBeforeField(s,t,i={message:e.DefaultValidationMessages.default}){return a.isDateBeforeField(s,t).messages({\"date.isDateBeforeField\":i.message})}validTimeFormat(s={message:e.DefaultValidationMessages.default}){return a.allow(\"\").empty(\"\").validTimeFormat().messages({\"date.validTimeFormat\":s.message})}areTimesEqualField(s,t={message:e.DefaultValidationMessages.default}){return a.areTimesEqualField(s).messages({\"date.areTimesEqualField\":t.message})}isBeforeTimeField(s,t,i={message:e.DefaultValidationMessages.default}){return a.isBeforeTimeField(s,t).messages({\"date.isBeforeTimeField\":i.message})}isAfterTimeField(s,t,i={message:e.DefaultValidationMessages.default}){return a.isAfterTimeField(s,t).messages({\"date.isAfterTimeField\":i.message})}isNotFutureTime(s={message:e.DefaultValidationMessages.futureTime}){return a.isNotFutureTime().messages({\"date.isNotFutureTime\":s.message})}};\n//# sourceMappingURL=date-time.validator.js.map\n","\"use strict\";var e=require(\"../utils/joi.js\"),s=require(\"../types/default-validation-messages.enums.js\");require(\"../types/validator.constants.js\");const a=e.joi.number().empty([\"\",null]);exports.NumberValidator=class{required(e={message:s.DefaultValidationMessages.required}){return a.required().min(1).messages({\"any.required\":e.message,\"number.min\":e.message})}lessThan(e,r={message:s.DefaultValidationMessages.lessThan}){return a.max(e-1).messages({\"number.max\":r.message})}lessThanOrEqual(e,r={message:s.DefaultValidationMessages.lessThanOrEqual}){return a.max(e).messages({\"number.max\":r.message})}greaterThan(e,r={message:s.DefaultValidationMessages.greaterThan}){return a.min(e+1).messages({\"number.min\":r.message})}greaterThanOrEqual(e,r={message:s.DefaultValidationMessages.greaterThanOrEqual}){return a.min(e).messages({\"number.min\":r.message})}isInteger(e={message:s.DefaultValidationMessages.integer}){return a.integer().messages({\"number.integer\":e.message})}};\n//# sourceMappingURL=number.validator.js.map\n","\"use strict\";const T=\"(?:https?:\\\\/\\\\/)?\",R=\"(?!https?:\\\\/\\\\/)\",_=\"https?:\\\\/\\\\/\",t=\"(?:www\\\\.)?\",o=\"(?!www\\\\.)\",e=\"www\\\\.\",r={optional:T,forbidden:R,required:_},s={optional:t,forbidden:o,required:e};exports.PHONE_PATTERN=/^[+]?[0-9()\\s]+$/,exports.URL_DOMAIN_PATTERN=\"[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,6}\",exports.URL_FRAGMENT_PATTERN=\"#?(?:[\\\\w]*)\",exports.URL_HTTP_FORBIDDEN_PATTERN=R,exports.URL_HTTP_OPTIONAL_PATTERN=T,exports.URL_HTTP_REQUIRED_PATTERN=_,exports.URL_PATH_PATTERN=\"(?:\\\\/[+~%/\\\\.\\\\w-_]*)?\",exports.URL_PORT_PATTERN=\"(?::[0-9]+)?\",exports.URL_QUERY_PATTERN=\"\\\\??(?:[-+=&;%@\\\\.\\\\w_]*)\",exports.URL_SUBDOMAIN_FORBIDDEN_PATTERN=o,exports.URL_SUBDOMAIN_OPTIONAL_PATTERN=t,exports.URL_SUBDOMAIN_REQUIRED_PATTERN=e,exports.urlProtocolValidationLevels=r,exports.urlSubDomainValidationLevels=s;\n//# sourceMappingURL=string-patterns.constants.js.map\n","\"use strict\";var e=require(\"../utils/joi.js\"),s=require(\"../types/default-validation-messages.enums.js\");require(\"../types/validator.constants.js\");var a=require(\"../types/string-patterns.constants.js\");const t=e.joi.string().empty([null,\"\"]);exports.StringValidator=class{required(e={message:s.DefaultValidationMessages.required}){return t.required().messages({\"any.required\":e.message})}maxLength(e,a={message:s.DefaultValidationMessages.maxLength}){return t.max(e).messages({\"string.max\":a.message})}minLength(e,a={message:s.DefaultValidationMessages.minLength}){return t.min(e).messages({\"string.min\":a.message})}requiredLength(e,a={message:s.DefaultValidationMessages.requiredLength}){return t.length(e).messages({\"string.length\":a.message})}pattern(e,a={message:s.DefaultValidationMessages.default}){return t.pattern(e).messages({\"string.pattern.base\":a.message})}email(e={message:s.DefaultValidationMessages.email}){return t.email({tlds:!1}).messages({\"string.email\":e.message})}url({protocolValidationLevel:e=\"forbidden\",subdomainValidationLevel:r=\"forbidden\",message:n=s.DefaultValidationMessages.url}={}){const i=`^${a.urlProtocolValidationLevels[e]}${a.urlSubDomainValidationLevels[r]}${a.URL_DOMAIN_PATTERN}${a.URL_PORT_PATTERN}${a.URL_PATH_PATTERN}${a.URL_QUERY_PATTERN}${a.URL_FRAGMENT_PATTERN}$`;return t.pattern(new RegExp(i)).messages({\"string.pattern.base\":n})}phone(e={message:s.DefaultValidationMessages.default}){return t.pattern(a.PHONE_PATTERN).messages({\"string.pattern.base\":e.message})}};\n//# sourceMappingURL=string.validator.js.map\n","\"use strict\";var r=require(\"./validate.js\"),a=require(\"./validators/array.validator.js\"),t=require(\"./validators/boolean.validator.js\"),e=require(\"./validators/custom.validator.js\"),i=require(\"./validators/date-time.validator.js\"),s=require(\"./validators/number.validator.js\"),o=require(\"./validators/string.validator.js\");exports.Validator=class{_string=new o.StringValidator;_number=new s.NumberValidator;_date=new i.DateTimeValidator;_boolean=new t.BooleanValidator;_array=new a.ArrayValidator;_custom=new e.CustomValidator;schema;constructor(r){this.schema=r?r(this):{}}array(){return this._array}custom(){return this._custom}string(){return this._string}date(){return this._date}number(){return this._number}boolean(){return this._boolean}validate=(a,t=this.schema,e)=>r.validate(a,t,e)};\n//# sourceMappingURL=Validator.js.map\n","\"use strict\";var e=require(\"./libs/date-time/DateSettings.js\"),t=require(\"./libs/date-time/Interval.js\"),s=require(\"./libs/date-time/types/recurrence.enum.js\"),r=require(\"./libs/date-time/types/week-days.enum.js\"),a=require(\"./libs/date-time/types/date-time.constants.js\"),o=require(\"./libs/date-time/types/date-time.formats.js\"),i=require(\"./libs/date-time/DateTime.js\"),n=require(\"./libs/date-time/date-time.utils.js\"),u=require(\"./libs/date-time/DateInfo.js\"),p=require(\"./libs/common/common.utils.js\"),d=require(\"./libs/common/key-codes.enum.js\"),D=require(\"./libs/data-access/useAsync.js\"),m=require(\"./libs/data-access/useAsyncFn.js\"),x=require(\"./libs/validation/Validator.js\"),l=require(\"./libs/validation/types/default-validation-messages.enums.js\"),c=require(\"./libs/validation/types/validator.constants.js\"),O=require(\"luxon\");exports.DateSettings=e.DateSettings,exports.Interval=t.Interval,Object.defineProperty(exports,\"MonthYearRecurrence\",{enumerable:!0,get:function(){return s.MonthYearRecurrence}}),Object.defineProperty(exports,\"DaysOfWeek\",{enumerable:!0,get:function(){return r.DaysOfWeek}}),exports.ALL_DAYS_OF_WEEK=a.ALL_DAYS_OF_WEEK,exports.MAXIMUM_DATE_MILLISECOND=a.MAXIMUM_DATE_MILLISECOND,exports.ACCEPTED_DAY_FORMATS=o.ACCEPTED_DAY_FORMATS,exports.ACCEPTED_TIME_FORMATS=o.ACCEPTED_TIME_FORMATS,exports.DATE_FORMATS=o.DATE_FORMATS,exports.DEFAULT_CALENDAR_FORMATS=o.DEFAULT_CALENDAR_FORMATS,exports.SHORT_CALENDAR_FORMATS=o.SHORT_CALENDAR_FORMATS,exports.TIME_FORMATS=o.TIME_FORMATS,exports.DateTime=i.DateTime,exports.compareDatesOrUndefinedPredicate=n.compareDatesOrUndefinedPredicate,exports.compareDatesPredicate=n.compareDatesPredicate,exports.compareISOStrDatesPredicate=n.compareISOStrDatesPredicate,exports.customFormatDuration=n.customFormatDuration,exports.dayOfMonth=n.dayOfMonth,exports.dayOfWeekName=n.dayOfWeekName,exports.formatCalendarDate=n.formatCalendarDate,exports.getDateTimeFromISOrJSDate=n.getDateTimeFromISOrJSDate,exports.getDayOfWeek=n.getDayOfWeek,exports.getDurationFromMinutes=n.getDurationFromMinutes,exports.getHourAndMinutesFromString=n.getHourAndMinutesFromString,exports.getWeekPosition=n.getWeekPosition,exports.isToday=n.isToday,exports.isWeekDay=n.isWeekDay,exports.nthDayOfMonth=n.nthDayOfMonth,exports.nthLastDayOfMonth=n.nthLastDayOfMonth,exports.weekOfMonth=n.weekOfMonth,exports.DateInfo=u.DateInfo,exports.chunksOf=p.chunksOf,exports.clone=p.clone,exports.delay=p.delay,exports.flushPromises=p.flushPromises,exports.getUniqueObjectsByKeys=p.getUniqueObjectsByKeys,exports.groupBy=p.groupBy,exports.isDefined=p.isDefined,exports.isGUID=p.isGUID,exports.last=p.last,exports.newGuid=p.newGuid,exports.next=p.next,exports.ordinalNumber=p.ordinalNumber,exports.to2dp=p.to2dp,exports.unique=p.unique,exports.upsertItem=p.upsertItem,Object.defineProperty(exports,\"IKeyCodes\",{enumerable:!0,get:function(){return d.IKeyCodes}}),exports.useAsync=D.useAsync,exports.useAsyncFn=m.useAsyncFn,exports.Validator=x.Validator,Object.defineProperty(exports,\"DefaultValidationMessages\",{enumerable:!0,get:function(){return l.DefaultValidationMessages}}),exports.baseValidateOptions=c.baseValidateOptions,exports.bpDateMessages=c.bpDateMessages,exports.defaultMessages=c.defaultMessages,Object.defineProperty(exports,\"Duration\",{enumerable:!0,get:function(){return O.Duration}});\n//# sourceMappingURL=index.js.map\n","var niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = process.env.NODE_ENV !== \"production\" ? niceErrors : {};\nfunction die(error) {\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 (process.env.NODE_ENV !== \"production\") {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n\n if (typeof window !== \"undefined\") {\n return window;\n }\n\n if (typeof global !== \"undefined\") {\n return global;\n }\n\n if (typeof self !== \"undefined\") {\n return self;\n }\n\n return mockGlobal;\n}\n\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die(process.env.NODE_ENV !== \"production\" ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : \"Proxy not available\");\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if (process.env.NODE_ENV !== \"production\" && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\n\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n\n var proto = Object.getPrototypeOf(value);\n\n if (proto == null) {\n return true;\n }\n\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n} // https://stackoverflow.com/a/37865170\n\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n\n if (!constructor) {\n return false;\n }\n\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\n\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object); // Not supported in IE, so there are not going to be symbol props anyway...\n\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (!symbols.length) {\n return keys;\n }\n\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n} // From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\n\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} :\n/* istanbul ignore next */\nObject.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n} // From Immer utils\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {}; // Note: without polyfill for ownKeys, symbols won't be picked up\n\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _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}\n\nfunction _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}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\n\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\n\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n } // @override must override something\n\n\n if (process.env.NODE_ENV !== \"production\" && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n } // Cannot re-decorate\n\n\n assertNotDecorated(prototype, annotation, key); // Ignore override\n\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\n\nfunction assertNotDecorated(prototype, annotation, key) {\n if (process.env.NODE_ENV !== \"production\" && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overriden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\n\n\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if (process.env.NODE_ENV !== \"production\" && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n } // We need a copy as we will remove annotation from the list once it's applied.\n\n\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"Atom@\" + getNextId() : \"Atom\";\n }\n\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n } // onBecomeObservedListeners\n\n\n var _proto = Atom.prototype;\n\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */\n ;\n\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */\n ;\n\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n\n _proto.toString = function toString() {\n return this.name_;\n };\n\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n\n var atom = new Atom(name); // default `noop` listener will not initialize the hook Set\n\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\n\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\n\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\n\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\n\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n } // something that can be converted and mutated?\n\n\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if (process.env.NODE_ENV !== \"production\" && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\n\nfunction make_(adm, key) {\n // Must not be plain object\n if (process.env.NODE_ENV !== \"production\" && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n } // Must override something\n\n\n if (process.env.NODE_ENV !== \"production\" && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n\n return 0\n /* Cancel */\n ;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\n\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0\n /* Cancel */\n : 1\n /* Break */\n ;\n } // own\n\n\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0\n /* Cancel */\n : 2\n /* Continue */\n ;\n } // prototype\n\n\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1\n /* Break */\n ;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2\n /* Continue */\n ;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\n\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n\n if (process.env.NODE_ENV !== \"production\" && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\n\nfunction createActionDescriptor(adm, annotation, key, descriptor, // provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false, // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\n\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0\n /* Cancel */\n : 2\n /* Continue */\n ;\n } // prototype\n // bound - must annotate protos to support super.flow()\n\n\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0\n /* Cancel */\n ;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1\n /* Break */\n ;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2\n /* Continue */\n ;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\n\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n\n if (process.env.NODE_ENV !== \"production\" && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\n\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound, // provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value; // In case of flow.bound, the descriptor can be from already annotated prototype\n\n if (!isFlow(value)) {\n value = flow(value);\n }\n\n if (bound) {\n var _adm$proxy_;\n\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_); // This is normally set by `flow`, but `bind` returns new function...\n\n value.isMobXFlow = true;\n }\n\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\n\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0\n /* Cancel */\n : 1\n /* Break */\n ;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\n\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n\n if (process.env.NODE_ENV !== \"production\" && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\n\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0\n /* Cancel */\n : 1\n /* Break */\n ;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\n\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n\n if (process.env.NODE_ENV !== \"production\" && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\n\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n } // lone setter -> action setter\n\n\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set); // own\n\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0\n /* Cancel */\n : 2\n /* Continue */\n ;\n } // proto\n\n\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2\n /* Continue */\n ;\n } // function on proto -> autoAction/flow\n\n\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n } // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n\n\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable; // if function respect autoBind option\n\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\n\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n } // lone setter -> action setter\n\n\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n } // other -> observable\n // if function respect autoBind option\n\n\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\"; // Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\n\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\n\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n } // already observable - ignore\n\n\n if (isObservable(v)) {\n return v;\n } // plain object\n\n\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n } // Array\n\n\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n } // Map\n\n\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n } // Set\n\n\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n } // other object - ignore\n\n\n if (typeof v === \"object\" && v !== null) {\n return v;\n } // anything else\n\n\n return observable.box(v, arg2);\n}\n\nObject.assign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n}; // eslint-disable-next-line\n\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\n\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n } // computed(expr, options?)\n\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\");\n /* for generated name */\n\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// mobx versions\n\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false; // we can safely recycle this object\n\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n\n res.isMobxAction = true;\n\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n Object.defineProperty(res, \"name\", tmpNameDescriptor);\n }\n\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation, // true for autoAction\nscope, args) {\n var notifySpy_ = process.env.NODE_ENV !== \"production\" && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n\n currentActionId = runInfo.parentActionId_;\n\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n\n if (process.env.NODE_ENV !== \"production\" && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom, _Symbol$toPrimitive2) {\n _inheritsLoose(ObservableValue, _Atom);\n\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableValue@\" + getNextId() : \"ObservableValue\";\n }\n\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n\n return _this;\n }\n\n var _proto = ObservableValue.prototype;\n\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n\n return value;\n };\n\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n\n this.setNewValue_(newValue);\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n };\n\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n\n if (!change) {\n return globalState.UNCHANGED;\n }\n\n newValue = change.newValue;\n } // apply modifier\n\n\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n\n return registerListener(this, listener);\n };\n\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n\n _proto[_Symbol$toPrimitive2] = function () {\n return this.valueOf();\n };\n\n return ObservableValue;\n}(Atom, _Symbol$toPrimitive);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function (_Symbol$toPrimitive2) {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n // to check for cycles\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n\n if (!options.get) {\n die(31);\n }\n\n this.derivation = options.get;\n this.name_ = options.name || (process.env.NODE_ENV !== \"production\" ? \"ComputedValue@\" + getNextId() : \"ComputedValue\");\n\n if (options.set) {\n this.setter_ = createAction(process.env.NODE_ENV !== \"production\" ? this.name_ + \"-setter\" : \"ComputedValue-setter\", options.set);\n }\n\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n\n var _proto = ComputedValue.prototype;\n\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */\n ;\n\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n\n if (globalState.inBatch === 0 && // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n\n globalState.trackingContext = prevTrackingContext;\n }\n }\n\n var result = this.value_;\n\n if (isCaughtException(result)) {\n throw result.cause;\n }\n\n return result;\n };\n\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n\n this.isRunningSetter_ = true;\n\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended =\n /* see #1208 */\n this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n\n if (changed) {\n this.value_ = newValue;\n\n if (process.env.NODE_ENV !== \"production\" && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n\n return changed;\n };\n\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true; // don't allow state changes during computation\n\n var prev = allowStateChangesStart(false);\n var res;\n\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n\n if (process.env.NODE_ENV !== \"production\" && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n\n firstTime = false;\n prevValue = newValue;\n });\n };\n\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n\n _proto[_Symbol$toPrimitive2] = function () {\n return this.valueOf();\n };\n\n return ComputedValue;\n}(_Symbol$toPrimitive$1);\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\"; // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\"; // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\"; // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\n\nvar TraceMode;\n\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\n\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause; // Empty\n};\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\n\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n\n var obs = derivation.observing_,\n l = obs.length;\n\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n } // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n\n\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n\n var hasObservers = atom.observers_.size > 0; // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if (process.env.NODE_ENV !== \"production\" && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\n\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true); // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\n\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n\n if (derivation.observing_.length !== 0) {\n return;\n }\n\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\n\n\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_; // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n\n if (i0 !== i) {\n observing[i0] = dep;\n }\n\n i0++;\n } // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n\n\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n\n l = prevObserving.length;\n\n while (l--) {\n var _dep = prevObserving[l];\n\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n\n _dep.diffValue_ = 0;\n } // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n\n\n while (i0--) {\n var _dep2 = observing[i0];\n\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n } // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n\n\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\n\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\n\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\n\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n\n\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n\n isolateCalled = true;\n\n if (canMergeGlobalState) {\n var global = getGlobal();\n\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\n\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n} // function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\n\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n } // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n\n}\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n } // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n\n}\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\n\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions(); // the batch is actually about to finish, all unobserving should happen here.\n\n var list = globalState.pendingUnobservations;\n\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_; // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n\n return true;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n\n return false;\n} // function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\n\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n\n observable.lowestObserverState_ = IDerivationState_.STALE_; // Ideally we use for..of here, but the downcompiled version is really slow...\n\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if (process.env.NODE_ENV !== \"production\" && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n\n d.onBecomeStale_();\n }\n\n d.dependenciesState_ = IDerivationState_.STALE_;\n }); // invariantLOS(observable, \"changed end\");\n} // Called by ComputedValue when it recalculate and its value changed\n\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n\n if (process.env.NODE_ENV !== \"production\" && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n }); // invariantLOS(observable, \"confirmed end\");\n} // Used by computed when its dependency changed, but we don't wan't to immediately recompute.\n\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n }); // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1); // prettier-ignore\n\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\n\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"Reaction@\" + getNextId() : \"Reaction\";\n }\n\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n\n var _proto = Reaction.prototype;\n\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */\n ;\n\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n\n try {\n this.onInvalidate_();\n\n if (process.env.NODE_ENV !== \"production\" && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return; // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n\n if (process.env.NODE_ENV !== \"production\" && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n\n endBatch();\n };\n\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n\n var message = process.env.NODE_ENV !== \"production\" ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : \"[mobx] uncaught error in '\" + this + \"'\";\n\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n\n\n if (process.env.NODE_ENV !== \"production\" && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n\n _proto.getDisposer_ = function getDisposer_() {\n var r = this.dispose.bind(this);\n r[$mobx] = this;\n return r;\n };\n\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n\n trace(this, enterBreakPoint);\n };\n\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\n\nvar MAX_REACTION_ITERATIONS = 100;\n\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\n\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n\n reactionScheduler(runReactionsHelper);\n}\n\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0; // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error(process.env.NODE_ENV !== \"production\" ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : \"[mobx] cycle in reaction: \" + allReactions[0]);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n\n globalState.isRunningReactions = false;\n}\n\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return process.env.NODE_ENV !== \"production\" && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n } // dead code elimination can do the rest\n\n\n if (!globalState.spyListeners.length) {\n return;\n }\n\n var listeners = globalState.spyListeners;\n\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n\n var change = _extends({}, event, {\n spyReportStart: true\n });\n\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\"[mobx.spy] Is a no-op in production builds\");\n return function () {};\n } else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\n\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n } // action(\"name\", fn() {})\n\n\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n } // @action\n\n\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n } // action(\"name\") & @action(\"name\")\n\n\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n die(\"Invalid arguments for `action`\");\n }\n };\n\n return res;\n}\n\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\n\nfunction autorun(view, opts) {\n var _opts$name, _opts;\n\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : process.env.NODE_ENV !== \"production\" ? view.name || \"Autorun@\" + getNextId() : \"Autorun\";\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts); // debounced autorun\n\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n\n function reactionRunner() {\n view(reaction);\n }\n\n reaction.schedule_();\n return reaction.getDisposer_();\n}\n\nvar run = function run(f) {\n return f();\n};\n\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\n\nfunction reaction(expression, effect, opts) {\n var _opts$name2;\n\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : process.env.NODE_ENV !== \"production\" ? \"Reaction@\" + getNextId() : \"Reaction\";\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n\n function reactionRunner() {\n isScheduled = false;\n\n if (r.isDisposed_) {\n return;\n }\n\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n\n firstTime = false;\n }\n\n r.schedule_();\n return r.getDisposer_();\n}\n\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\n\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n\n return function () {\n var hookListeners = atom[listenersKey];\n\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\"; // const IF_AVAILABLE = \"ifavailable\"\n\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n\n if (process.env.NODE_ENV !== \"production\" && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n } // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n\n\n var descriptors = getOwnPropertyDescriptors(properties);\n var adm = asObservableObject(target, options)[$mobx];\n startBatch();\n\n try {\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key], // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n } finally {\n endBatch();\n }\n\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\n\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n\n return result;\n}\n\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\n\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n\n return result;\n}\n\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n } // flow(fn)\n\n\n if (process.env.NODE_ENV !== \"production\" && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n\n var generator = arg1;\n var name = generator.name || \"\"; // Implementation based on https://github.com/tj/co/blob/master/index.js\n\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n\n next(ret);\n }\n\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n\n next(ret);\n }\n\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n\n if (ret.done) {\n return resolve(ret.value);\n }\n\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n\n onFulfilled(undefined); // kick off the process\n });\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n } // Finally block can return (or yield) stuff..\n\n\n var _res = gen[\"return\"](undefined); // eat anything that promise would do, it's cancelled!\n\n\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n return promise;\n };\n\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\n\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\n\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n\n target = getAdministration(thing, propOrHandler);\n } else if (process.env.NODE_ENV !== \"production\") {\n return die(\"Expected observable map, object or array as first array\");\n }\n\n if (process.env.NODE_ENV !== \"production\" && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\n\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\n\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n\n if (isObservableObject(value) === false) {\n return false;\n }\n\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if (process.env.NODE_ENV !== \"production\" && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n\n if (property !== undefined) {\n if (process.env.NODE_ENV !== \"production\" && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n\n return false;\n } // For first check, see #701\n\n\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\n\nfunction isObservable(value) {\n if (process.env.NODE_ENV !== \"production\" && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n\n return;\n }\n\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n\n startBatch();\n\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\n\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\n\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\n\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\n\n\nfunction toJS(source, options) {\n if (process.env.NODE_ENV !== \"production\" && options) {\n die(\"toJS no longer supports options\");\n }\n\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (!(process.env.NODE_ENV !== \"production\")) {\n die(\"trace() is not available in production builds\");\n }\n\n var enterBreakPoint = false;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n\n var derivation = getAtomFromArgs(args);\n\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\n\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n\n case 1:\n return getAtom(args[0]);\n\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\n\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n\n startBatch();\n\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n\n return _when(predicate, arg1, arg2 || {});\n}\n\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n\n opts.name = process.env.NODE_ENV !== \"production\" ? opts.name || \"When@\" + getNextId() : \"When\";\n var effectAction = createAction(process.env.NODE_ENV !== \"production\" ? opts.name + \"-effect\" : \"When-effect\", effect); // eslint-disable-next-line\n\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n\n if (cond) {\n r.dispose();\n\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n\n effectAction();\n }\n }, opts);\n return disposer;\n}\n\nfunction whenPromise(predicate, opts) {\n if (process.env.NODE_ENV !== \"production\" && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n\n var cancel;\n var res = new Promise(function (resolve, reject) {\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n} // Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\n\n\nvar objectProxyTraps = {\n has: function has(target, name) {\n if (process.env.NODE_ENV !== \"production\" && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n\n if (!isStringish(name)) {\n return false;\n }\n\n if (process.env.NODE_ENV !== \"production\" && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n } // null (intercepted) -> true (success)\n\n\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n\n if (process.env.NODE_ENV !== \"production\") {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n\n if (!isStringish(name)) {\n return false;\n } // null (intercepted) -> true (success)\n\n\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n\n if (process.env.NODE_ENV !== \"production\") {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n } // null (intercepted) -> true (success)\n\n\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if (process.env.NODE_ENV !== \"production\" && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n\n if (change && !change.type) {\n die(14);\n }\n\n if (!change) {\n break;\n }\n }\n\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n\n if (!listeners) {\n return;\n }\n\n listeners = listeners.slice();\n\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n var adm = asObservableObject(target, options)[$mobx];\n startBatch();\n\n try {\n var _annotations;\n\n if (process.env.NODE_ENV !== \"production\" && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n } // Default to decorators\n\n\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target); // Annotate\n\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n } finally {\n endBatch();\n }\n\n return target;\n} // proto[keysSymbol] = new Set()\n\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n } // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n\n\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n\n var adm = asObservableObject(target, options)[$mobx]; // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n\n startBatch();\n\n try {\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key, // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n } finally {\n endBatch();\n }\n\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\n\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n\n if (name === $mobx) {\n return adm;\n }\n\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, process.env.NODE_ENV !== \"production\" ? name + \"[..]\" : \"ObservableArray[..]\");\n };\n }\n\n var _proto = ObservableArrayAdministration.prototype;\n\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n\n return value;\n };\n\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n\n return values;\n };\n\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n\n return registerListener(this, listener);\n };\n\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n\n var currentLength = this.values_.length;\n\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n\n\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n\n this.lastKnownLength_ += delta;\n\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n\n if (!change) {\n return EMPTY_ARRAY;\n }\n\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n\n if (this.legacyMode_ || process.env.NODE_ENV !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n\n return this.dehanceValues_(res);\n };\n\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount); // The items that that should remain at the end of the array\n\n var oldItems = this.values_.slice(index + deleteCount); // New length is the previous length + addition count - deletion count\n\n this.values_.length += newItems.length - deleteCount;\n\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n\n return res;\n }\n };\n\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null; // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n\n this.atom_.reportChanged();\n\n if (notify) {\n notifyListeners(this, change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n\n this.atom_.reportChanged(); // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n\n if (notify) {\n notifyListeners(this, change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n\n _proto.get_ = function get_(index) {\n if (index < this.values_.length) {\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n }\n\n console.warn(process.env.NODE_ENV !== \"production\" ? \"[mobx] Out of bounds read: \" + index : \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\");\n };\n\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n\n if (!change) {\n return;\n }\n\n newValue = change.newValue;\n }\n\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else if (index === values.length) {\n // add a new item\n this.spliceWithArray_(index, 0, [newValue]);\n } else {\n // out of bounds\n die(17, index, values.length);\n }\n };\n\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n\n if (owned === void 0) {\n owned = false;\n }\n\n assertProxies();\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n\n if (initialValues && initialValues.length) {\n var prev = allowStateChangesStart(true);\n adm.spliceWithArray_(0, 0, initialValues);\n allowStateChangesEnd(prev);\n }\n\n return proxy;\n} // eslint-disable-next-line\n\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n\n var adm = this[$mobx];\n\n switch (arguments.length) {\n case 0:\n return [];\n\n case 1:\n return adm.spliceWithArray_(index);\n\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\n\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc); // map\n\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc); // reduce\n\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\n\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n} // Report and delegate to dehanced array\n\n\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n} // Make sure callbacks recieve correct array arg #2326\n\n\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n} // Make sure callbacks recieve correct array arg #2326\n\n\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_); // #2432 - reduce behavior depends on arguments.length\n\n var callback = arguments[0];\n\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\"; // just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function (_Symbol$iterator2, _Symbol$toStringTag2) {\n // hasMap, not hashMap >-).\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableMap@\" + getNextId() : \"ObservableMap\";\n }\n\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n\n if (!isFunction(Map)) {\n die(18);\n }\n\n this.keysAtom_ = createAtom(process.env.NODE_ENV !== \"production\" ? this.name_ + \".keys()\" : \"ObservableMap.keys()\");\n this.data_ = new Map();\n this.hasMap_ = new Map();\n allowStateChanges(true, function () {\n _this.merge(initialData);\n });\n }\n\n var _proto = ObservableMap.prototype;\n\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n\n _proto.has = function has(key) {\n var _this2 = this;\n\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n\n var entry = this.hasMap_.get(key);\n\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableMap.key?\", false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n\n return entry.get();\n };\n\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n\n if (!change) {\n return this;\n }\n\n value = change.newValue;\n }\n\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n\n return this;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n\n if (!change) {\n return false;\n }\n }\n\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n\n\n transaction(function () {\n var _this3$hasMap_$get;\n\n _this3.keysAtom_.reportChanged();\n\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n\n var observable = _this3.data_.get(key);\n\n observable.setNewValue_(undefined);\n\n _this3.data_[\"delete\"](key);\n });\n\n if (notify) {\n notifyListeners(this, _change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n\n return true;\n }\n\n return false;\n };\n\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n\n\n observable.setNewValue_(newValue);\n\n if (notify) {\n notifyListeners(this, change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n };\n\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n\n var observable = new ObservableValue(newValue, _this4.enhancer_, process.env.NODE_ENV !== \"production\" ? _this4.name_ + \".\" + stringifyKey(key) : \"ObservableMap.key\", false);\n\n _this4.data_.set(key, observable);\n\n newValue = observable.value_; // value might have been changed\n\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n\n\n if (notify) {\n notifyListeners(this, change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n\n return this.dehanceValue_(undefined);\n };\n\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n\n return value;\n };\n\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n\n _proto[_Symbol$iterator2] = function () {\n return this.entries();\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */\n ;\n\n _proto.merge = function merge(other) {\n var _this5 = this;\n\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n\n _proto.clear = function clear() {\n var _this6 = this;\n\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n\n _this6[\"delete\"](key);\n }\n });\n });\n };\n\n _proto.replace = function replace(values) {\n var _this7 = this;\n\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map(); // Used for optimization\n\n var keysReportChangedCalled = false; // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key); // Was the key removed?\n\n\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n\n orderedData.set(key, value);\n }\n }\n } // Merge entries\n\n\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key); // Add or update value\n\n\n _this7.set(_key, _value); // The addition could have been prevent by interceptor\n\n\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n\n orderedData.set(_key, _value2); // Was a new key added?\n\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n } // Check for possible key order change\n\n\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n\n break;\n }\n\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n } // Use correctly ordered map\n\n\n _this7.data_ = orderedData;\n });\n return this;\n };\n\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n\n return registerListener(this, listener);\n };\n\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag2,\n get: function get() {\n return \"Map\";\n }\n }]);\n\n return ObservableMap;\n}(_Symbol$iterator, _Symbol$toStringTag); // eslint-disable-next-line\n\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\n\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function (_Symbol$iterator2, _Symbol$toStringTag2) {\n function ObservableSet(initialData, enhancer, name_) {\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableSet@\" + getNextId() : \"ObservableSet\";\n }\n\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n\n if (!isFunction(Set)) {\n die(22);\n }\n\n this.atom_ = createAtom(this.name_);\n\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n\n if (initialData) {\n this.replace(initialData);\n }\n }\n\n var _proto = ObservableSet.prototype;\n\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n\n return value;\n };\n\n _proto.clear = function clear() {\n var _this = this;\n\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n\n _this[\"delete\"](value);\n }\n });\n });\n };\n\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n\n _proto.add = function add(value) {\n var _this2 = this;\n\n checkIfStateModificationsAreAllowed(this.atom_);\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n\n if (!change) {\n return this;\n } // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this2.data_.add(_this2.enhancer_(value, undefined));\n\n _this2.atom_.reportChanged();\n });\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var notify = hasListeners(this);\n\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportStart(_change);\n }\n\n if (notify) {\n notifyListeners(this, _change);\n }\n\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportEnd();\n }\n }\n\n return this;\n };\n\n _proto[\"delete\"] = function _delete(value) {\n var _this3 = this;\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n\n if (!change) {\n return false;\n }\n }\n\n if (this.has(value)) {\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var notify = hasListeners(this);\n\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportStart(_change2);\n }\n\n transaction(function () {\n _this3.atom_.reportChanged();\n\n _this3.data_[\"delete\"](value);\n });\n\n if (notify) {\n notifyListeners(this, _change2);\n }\n\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportEnd();\n }\n\n return true;\n }\n\n return false;\n };\n\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n\n _proto.keys = function keys() {\n return this.values();\n };\n\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n\n _proto.replace = function replace(other) {\n var _this4 = this;\n\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n\n transaction(function () {\n if (Array.isArray(other)) {\n _this4.clear();\n\n other.forEach(function (value) {\n return _this4.add(value);\n });\n } else if (isES6Set(other)) {\n _this4.clear();\n\n other.forEach(function (value) {\n return _this4.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n\n return registerListener(this, listener);\n };\n\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n\n _proto[_Symbol$iterator2] = function () {\n return this.values();\n };\n\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag2,\n get: function get() {\n return \"Set\";\n }\n }]);\n\n return ObservableSet;\n}(_Symbol$iterator$1, _Symbol$toStringTag$1); // eslint-disable-next-line\n\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_, // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom(process.env.NODE_ENV !== \"production\" ? this.name_ + \".keys\" : \"ObservableObject.keys\"); // Optimization: we use this frequently\n\n this.isPlainObject_ = isPlainObject(this.target_);\n\n if (process.env.NODE_ENV !== \"production\" && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n\n var _proto = ObservableObjectAdministration.prototype;\n\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n } // intercept\n\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n\n if (!change) {\n return null;\n }\n\n newValue = change.newValue;\n }\n\n newValue = observable.prepareNewValue_(newValue); // notify spy & observers\n\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n\n if (notify) {\n notifyListeners(this, _change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n\n return true;\n };\n\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */\n ;\n\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n } // Trap for \"in\"\n ;\n\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableObject.key?\", false);\n this.pendingKeys_.set(key, entry);\n }\n\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */\n ;\n\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n\n if (annotation === false) {\n return;\n }\n\n assertAnnotable(this, annotation, key);\n\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n\n var source = this.target_;\n\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n\n if (outcome === 0\n /* Cancel */\n ) {\n return;\n }\n\n if (outcome === 1\n /* Break */\n ) {\n break;\n }\n }\n\n source = Object.getPrototypeOf(source);\n }\n\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */\n ;\n\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */\n ;\n\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n try {\n startBatch(); // Delete\n\n var deleteOutcome = this.delete_(key);\n\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n } // ADD interceptor\n\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n\n if (!change) {\n return null;\n }\n\n var newValue = change.newValue;\n\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n } // Define\n\n\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n } // Notify\n\n\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n\n return true;\n } // If original descriptor becomes relevant, move this to annotation directly\n ;\n\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n try {\n startBatch(); // Delete\n\n var deleteOutcome = this.delete_(key);\n\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n } // ADD interceptor\n\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n\n if (!change) {\n return null;\n }\n\n value = change.newValue;\n }\n\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n }; // Define\n\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n\n var observable = new ObservableValue(value, enhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\", false);\n this.values_.set(key, observable); // Notify (value possibly changed by ObservableValue)\n\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n\n return true;\n } // If original descriptor becomes relevant, move this to annotation directly\n ;\n\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n try {\n startBatch(); // Delete\n\n var deleteOutcome = this.delete_(key);\n\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n } // ADD interceptor\n\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n\n if (!change) {\n return null;\n }\n }\n\n options.name || (options.name = process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\");\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n }; // Define\n\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n\n this.values_.set(key, new ComputedValue(options)); // Notify\n\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */\n ;\n\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n } // Intercept\n\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n }); // Cancelled\n\n if (!change) {\n return null;\n }\n } // Delete\n\n\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var observable = this.values_.get(key); // Value needed for spies/listeners\n\n var value = undefined; // Optimization: don't pull the value unless we will need it\n\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n } // delete prop (do first, may fail)\n\n\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n } // Allow re-annotating this field\n\n\n if (process.env.NODE_ENV !== \"production\") {\n delete this.appliedAnnotations_[key];\n } // Clear observable\n\n\n if (observable) {\n this.values_[\"delete\"](key); // for computed, value is undefined\n\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n } // Notify: autorun(() => obj[key]), see #1796\n\n\n propagateChanged(observable);\n } // Notify \"keys/entries/values\" observers\n\n\n this.keysAtom_.reportChanged(); // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_); // Notify spies/listeners\n\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change2);\n }\n\n if (notify) {\n notifyListeners(this, _change2);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n ;\n\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n\n return registerListener(this, callback);\n };\n\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n\n if (notify) {\n notifyListeners(this, change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true); // Notify \"keys/entries/values\" observers\n\n this.keysAtom_.reportChanged();\n };\n\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n\n if (process.env.NODE_ENV !== \"production\" && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n\n if (hasProp(target, $mobx)) {\n if (process.env.NODE_ENV !== \"production\" && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n\n return target;\n }\n\n if (process.env.NODE_ENV !== \"production\" && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : process.env.NODE_ENV !== \"production\" ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : \"ObservableObject\";\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\n\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\n\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n\n if (process.env.NODE_ENV !== \"production\") {\n adm.appliedAnnotations_[key] = annotation;\n } // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n\n\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\n\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if (process.env.NODE_ENV !== \"production\" && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n\n\n if (process.env.NODE_ENV !== \"production\" && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overriden by subclass.\");\n }\n}\n\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\n\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0; // Typescript workaround to make sure ObservableArray extends Array\n\nvar StubArray = function StubArray() {};\n\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\n\ninherit(StubArray, Array.prototype); // Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\n\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n\n if (owned === void 0) {\n owned = false;\n }\n\n _this = _StubArray.call(this) || this;\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n\n if (initialValues && initialValues.length) {\n var prev = allowStateChangesStart(true); // @ts-ignore\n\n _this.spliceWithArray(0, 0, initialValues);\n\n allowStateChangesEnd(prev);\n }\n\n return _this;\n }\n\n var _proto = LegacyObservableArray.prototype;\n\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n\n return Array.prototype.concat.apply(this.slice(), //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\n\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\n\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\n\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\n\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n\n return thing[$mobx].atom_;\n }\n\n if (isObservableSet(thing)) {\n return thing[$mobx];\n }\n\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n\n return observable;\n }\n\n\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n\n var _observable = thing[$mobx].values_.get(property);\n\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n\n return _observable;\n }\n\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n\n return named.name_;\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n\n return eq(a, b, depth);\n} // Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\n\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n } // `null` or `undefined` only equal to itself (strict comparison).\n\n\n if (a == null || b == null) {\n return false;\n } // `NaN`s are equivalent, but non-reflexive.\n\n\n if (a !== a) {\n return b !== b;\n } // Exhaust primitive checks\n\n\n var type = typeof a;\n\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n } // Compare `[[Class]]` names.\n\n\n var className = toString.call(a);\n\n if (className !== toString.call(b)) {\n return false;\n }\n\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\": // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n } // An `egal` comparison is performed for other numeric values.\n\n\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n\n break;\n } // Unwrap any wrapped objects.\n\n\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n } // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n\n\n var aCtor = a.constructor,\n bCtor = b.constructor;\n\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n } // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n\n\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n } // Add the first object to the stack of traversed objects.\n\n\n aStack.push(a);\n bStack.push(b); // Recursively compare objects and arrays.\n\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n\n if (length !== b.length) {\n return false;\n } // Deep compare the contents, ignoring non-numeric properties.\n\n\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length; // Ensure that both objects contain the same number of properties before comparing deep equality.\n\n if (Object.keys(b).length !== length) {\n return false;\n }\n\n while (length--) {\n // Deep compare each member\n key = keys[length];\n\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n } // Remove the first object from the stack of traversed objects.\n\n\n aStack.pop();\n bStack.pop();\n return true;\n}\n\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\n\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (// Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get an global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\n\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\nexport { $mobx, FlowCancellationError, ObservableMap, ObservableSet, Reaction, allowStateChanges as _allowStateChanges, runInAction as _allowStateChangesInsideComputed, allowStateReadsEnd as _allowStateReadsEnd, allowStateReadsStart as _allowStateReadsStart, autoAction as _autoAction, _endAction, getAdministration as _getAdministration, getGlobalState as _getGlobalState, interceptReads as _interceptReads, isComputingDerivation as _isComputingDerivation, resetGlobalState as _resetGlobalState, _startAction, action, autorun, comparer, computed, configure, createAtom, apiDefineProperty as defineProperty, entries, extendObservable, flow, flowResult, get, getAtom, getDebugName, getDependencyTree, getObserverTree, has, intercept, isAction, isObservableValue as isBoxedObservable, isComputed, isComputedProp, isFlow, isFlowCancellationError, isObservable, isObservableArray, isObservableMap, isObservableObject, isObservableProp, isObservableSet, keys, makeAutoObservable, makeObservable, observable, observe, onBecomeObserved, onBecomeUnobserved, onReactionError, override, apiOwnKeys as ownKeys, reaction, remove, runInAction, set, spy, toJS, trace, transaction, untracked, values, when };\n//# sourceMappingURL=mobx.esm.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __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\nvar __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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}\n\nexport { __assign, __awaiter, __extends, __generator, __read, __rest, __spread };\n//# sourceMappingURL=_tslib.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __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\nvar __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\nfunction __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\nfunction __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\nfunction __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}\n\nexport { __assign, __awaiter, __extends, __generator, __spreadArrays };\n//# sourceMappingURL=_tslib.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar Constants = {\r\n LIBRARY_NAME: \"MSAL.JS\",\r\n SKU: \"msal.js.common\",\r\n // Prefix for all library cache entries\r\n CACHE_PREFIX: \"msal\",\r\n // default authority\r\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\r\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\r\n DEFAULT_COMMON_TENANT: \"common\",\r\n // ADFS String\r\n ADFS: \"adfs\",\r\n DSTS: \"dstsv2\",\r\n // Default AAD Instance Discovery Endpoint\r\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\r\n // CIAM URL\r\n CIAM_AUTH_URL: \".ciamlogin.com\",\r\n AAD_TENANT_DOMAIN_SUFFIX: \".onmicrosoft.com\",\r\n // Resource delimiter - used for certain cache entries\r\n RESOURCE_DELIM: \"|\",\r\n // Placeholder for non-existent account ids/objects\r\n NO_ACCOUNT: \"NO_ACCOUNT\",\r\n // Claims\r\n CLAIMS: \"claims\",\r\n // Consumer UTID\r\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\r\n // Default scopes\r\n OPENID_SCOPE: \"openid\",\r\n PROFILE_SCOPE: \"profile\",\r\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\r\n EMAIL_SCOPE: \"email\",\r\n // Default response type for authorization code flow\r\n CODE_RESPONSE_TYPE: \"code\",\r\n CODE_GRANT_TYPE: \"authorization_code\",\r\n RT_GRANT_TYPE: \"refresh_token\",\r\n FRAGMENT_RESPONSE_MODE: \"fragment\",\r\n S256_CODE_CHALLENGE_METHOD: \"S256\",\r\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\r\n AUTHORIZATION_PENDING: \"authorization_pending\",\r\n NOT_DEFINED: \"not_defined\",\r\n EMPTY_STRING: \"\",\r\n NOT_APPLICABLE: \"N/A\",\r\n FORWARD_SLASH: \"/\",\r\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\r\n IMDS_VERSION: \"2020-06-01\",\r\n IMDS_TIMEOUT: 2000,\r\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\r\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\r\n REGIONAL_AUTH_NON_MSI_QUERY_STRING: \"allowestsrnonmsi=true\",\r\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"],\r\n TOKEN_RESPONSE_TYPE: \"token\",\r\n ID_TOKEN_RESPONSE_TYPE: \"id_token\",\r\n SHR_NONCE_VALIDITY: 240,\r\n INVALID_INSTANCE: \"invalid_instance\",\r\n};\r\nvar OIDC_DEFAULT_SCOPES = [\r\n Constants.OPENID_SCOPE,\r\n Constants.PROFILE_SCOPE,\r\n Constants.OFFLINE_ACCESS_SCOPE\r\n];\r\nvar OIDC_SCOPES = __spreadArrays(OIDC_DEFAULT_SCOPES, [\r\n Constants.EMAIL_SCOPE\r\n]);\r\n/**\r\n * Request header names\r\n */\r\nvar HeaderNames;\r\n(function (HeaderNames) {\r\n HeaderNames[\"CONTENT_TYPE\"] = \"Content-Type\";\r\n HeaderNames[\"RETRY_AFTER\"] = \"Retry-After\";\r\n HeaderNames[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n HeaderNames[\"WWWAuthenticate\"] = \"WWW-Authenticate\";\r\n HeaderNames[\"AuthenticationInfo\"] = \"Authentication-Info\";\r\n HeaderNames[\"X_MS_REQUEST_ID\"] = \"x-ms-request-id\";\r\n HeaderNames[\"X_MS_HTTP_VERSION\"] = \"x-ms-httpver\";\r\n})(HeaderNames || (HeaderNames = {}));\r\n/**\r\n * Persistent cache keys MSAL which stay while user is logged in.\r\n */\r\nvar PersistentCacheKeys;\r\n(function (PersistentCacheKeys) {\r\n PersistentCacheKeys[\"ID_TOKEN\"] = \"idtoken\";\r\n PersistentCacheKeys[\"CLIENT_INFO\"] = \"client.info\";\r\n PersistentCacheKeys[\"ADAL_ID_TOKEN\"] = \"adal.idtoken\";\r\n PersistentCacheKeys[\"ERROR\"] = \"error\";\r\n PersistentCacheKeys[\"ERROR_DESC\"] = \"error.description\";\r\n PersistentCacheKeys[\"ACTIVE_ACCOUNT\"] = \"active-account\";\r\n PersistentCacheKeys[\"ACTIVE_ACCOUNT_FILTERS\"] = \"active-account-filters\"; // new cache entry for active_account for a more robust version for browser\r\n})(PersistentCacheKeys || (PersistentCacheKeys = {}));\r\n/**\r\n * String constants related to AAD Authority\r\n */\r\nvar AADAuthorityConstants;\r\n(function (AADAuthorityConstants) {\r\n AADAuthorityConstants[\"COMMON\"] = \"common\";\r\n AADAuthorityConstants[\"ORGANIZATIONS\"] = \"organizations\";\r\n AADAuthorityConstants[\"CONSUMERS\"] = \"consumers\";\r\n})(AADAuthorityConstants || (AADAuthorityConstants = {}));\r\n/**\r\n * Keys in the hashParams sent by AAD Server\r\n */\r\nvar AADServerParamKeys;\r\n(function (AADServerParamKeys) {\r\n AADServerParamKeys[\"CLIENT_ID\"] = \"client_id\";\r\n AADServerParamKeys[\"REDIRECT_URI\"] = \"redirect_uri\";\r\n AADServerParamKeys[\"RESPONSE_TYPE\"] = \"response_type\";\r\n AADServerParamKeys[\"RESPONSE_MODE\"] = \"response_mode\";\r\n AADServerParamKeys[\"GRANT_TYPE\"] = \"grant_type\";\r\n AADServerParamKeys[\"CLAIMS\"] = \"claims\";\r\n AADServerParamKeys[\"SCOPE\"] = \"scope\";\r\n AADServerParamKeys[\"ERROR\"] = \"error\";\r\n AADServerParamKeys[\"ERROR_DESCRIPTION\"] = \"error_description\";\r\n AADServerParamKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n AADServerParamKeys[\"ID_TOKEN\"] = \"id_token\";\r\n AADServerParamKeys[\"REFRESH_TOKEN\"] = \"refresh_token\";\r\n AADServerParamKeys[\"EXPIRES_IN\"] = \"expires_in\";\r\n AADServerParamKeys[\"STATE\"] = \"state\";\r\n AADServerParamKeys[\"NONCE\"] = \"nonce\";\r\n AADServerParamKeys[\"PROMPT\"] = \"prompt\";\r\n AADServerParamKeys[\"SESSION_STATE\"] = \"session_state\";\r\n AADServerParamKeys[\"CLIENT_INFO\"] = \"client_info\";\r\n AADServerParamKeys[\"CODE\"] = \"code\";\r\n AADServerParamKeys[\"CODE_CHALLENGE\"] = \"code_challenge\";\r\n AADServerParamKeys[\"CODE_CHALLENGE_METHOD\"] = \"code_challenge_method\";\r\n AADServerParamKeys[\"CODE_VERIFIER\"] = \"code_verifier\";\r\n AADServerParamKeys[\"CLIENT_REQUEST_ID\"] = \"client-request-id\";\r\n AADServerParamKeys[\"X_CLIENT_SKU\"] = \"x-client-SKU\";\r\n AADServerParamKeys[\"X_CLIENT_VER\"] = \"x-client-VER\";\r\n AADServerParamKeys[\"X_CLIENT_OS\"] = \"x-client-OS\";\r\n AADServerParamKeys[\"X_CLIENT_CPU\"] = \"x-client-CPU\";\r\n AADServerParamKeys[\"X_CLIENT_CURR_TELEM\"] = \"x-client-current-telemetry\";\r\n AADServerParamKeys[\"X_CLIENT_LAST_TELEM\"] = \"x-client-last-telemetry\";\r\n AADServerParamKeys[\"X_MS_LIB_CAPABILITY\"] = \"x-ms-lib-capability\";\r\n AADServerParamKeys[\"X_APP_NAME\"] = \"x-app-name\";\r\n AADServerParamKeys[\"X_APP_VER\"] = \"x-app-ver\";\r\n AADServerParamKeys[\"POST_LOGOUT_URI\"] = \"post_logout_redirect_uri\";\r\n AADServerParamKeys[\"ID_TOKEN_HINT\"] = \"id_token_hint\";\r\n AADServerParamKeys[\"DEVICE_CODE\"] = \"device_code\";\r\n AADServerParamKeys[\"CLIENT_SECRET\"] = \"client_secret\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION\"] = \"client_assertion\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION_TYPE\"] = \"client_assertion_type\";\r\n AADServerParamKeys[\"TOKEN_TYPE\"] = \"token_type\";\r\n AADServerParamKeys[\"REQ_CNF\"] = \"req_cnf\";\r\n AADServerParamKeys[\"OBO_ASSERTION\"] = \"assertion\";\r\n AADServerParamKeys[\"REQUESTED_TOKEN_USE\"] = \"requested_token_use\";\r\n AADServerParamKeys[\"ON_BEHALF_OF\"] = \"on_behalf_of\";\r\n AADServerParamKeys[\"FOCI\"] = \"foci\";\r\n AADServerParamKeys[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n AADServerParamKeys[\"RETURN_SPA_CODE\"] = \"return_spa_code\";\r\n AADServerParamKeys[\"NATIVE_BROKER\"] = \"nativebroker\";\r\n AADServerParamKeys[\"LOGOUT_HINT\"] = \"logout_hint\";\r\n})(AADServerParamKeys || (AADServerParamKeys = {}));\r\n/**\r\n * Claims request keys\r\n */\r\nvar ClaimsRequestKeys;\r\n(function (ClaimsRequestKeys) {\r\n ClaimsRequestKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n ClaimsRequestKeys[\"XMS_CC\"] = \"xms_cc\";\r\n})(ClaimsRequestKeys || (ClaimsRequestKeys = {}));\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n */\r\nvar PromptValue = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\",\r\n CREATE: \"create\",\r\n NO_SESSION: \"no_session\"\r\n};\r\n/**\r\n * SSO Types - generated to populate hints\r\n */\r\nvar SSOTypes;\r\n(function (SSOTypes) {\r\n SSOTypes[\"ACCOUNT\"] = \"account\";\r\n SSOTypes[\"SID\"] = \"sid\";\r\n SSOTypes[\"LOGIN_HINT\"] = \"login_hint\";\r\n SSOTypes[\"ID_TOKEN\"] = \"id_token\";\r\n SSOTypes[\"DOMAIN_HINT\"] = \"domain_hint\";\r\n SSOTypes[\"ORGANIZATIONS\"] = \"organizations\";\r\n SSOTypes[\"CONSUMERS\"] = \"consumers\";\r\n SSOTypes[\"ACCOUNT_ID\"] = \"accountIdentifier\";\r\n SSOTypes[\"HOMEACCOUNT_ID\"] = \"homeAccountIdentifier\";\r\n})(SSOTypes || (SSOTypes = {}));\r\n/**\r\n * allowed values for codeVerifier\r\n */\r\nvar CodeChallengeMethodValues = {\r\n PLAIN: \"plain\",\r\n S256: \"S256\"\r\n};\r\n/**\r\n * allowed values for response_mode\r\n */\r\nvar ResponseMode;\r\n(function (ResponseMode) {\r\n ResponseMode[\"QUERY\"] = \"query\";\r\n ResponseMode[\"FRAGMENT\"] = \"fragment\";\r\n ResponseMode[\"FORM_POST\"] = \"form_post\";\r\n})(ResponseMode || (ResponseMode = {}));\r\n/**\r\n * allowed grant_type\r\n */\r\nvar GrantType;\r\n(function (GrantType) {\r\n GrantType[\"IMPLICIT_GRANT\"] = \"implicit\";\r\n GrantType[\"AUTHORIZATION_CODE_GRANT\"] = \"authorization_code\";\r\n GrantType[\"CLIENT_CREDENTIALS_GRANT\"] = \"client_credentials\";\r\n GrantType[\"RESOURCE_OWNER_PASSWORD_GRANT\"] = \"password\";\r\n GrantType[\"REFRESH_TOKEN_GRANT\"] = \"refresh_token\";\r\n GrantType[\"DEVICE_CODE_GRANT\"] = \"device_code\";\r\n GrantType[\"JWT_BEARER\"] = \"urn:ietf:params:oauth:grant-type:jwt-bearer\";\r\n})(GrantType || (GrantType = {}));\r\n/**\r\n * Account types in Cache\r\n */\r\nvar CacheAccountType;\r\n(function (CacheAccountType) {\r\n CacheAccountType[\"MSSTS_ACCOUNT_TYPE\"] = \"MSSTS\";\r\n CacheAccountType[\"ADFS_ACCOUNT_TYPE\"] = \"ADFS\";\r\n CacheAccountType[\"MSAV1_ACCOUNT_TYPE\"] = \"MSA\";\r\n CacheAccountType[\"GENERIC_ACCOUNT_TYPE\"] = \"Generic\"; // NTLM, Kerberos, FBA, Basic etc\r\n})(CacheAccountType || (CacheAccountType = {}));\r\n/**\r\n * Separators used in cache\r\n */\r\nvar Separators;\r\n(function (Separators) {\r\n Separators[\"CACHE_KEY_SEPARATOR\"] = \"-\";\r\n Separators[\"CLIENT_INFO_SEPARATOR\"] = \".\";\r\n})(Separators || (Separators = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CredentialType;\r\n(function (CredentialType) {\r\n CredentialType[\"ID_TOKEN\"] = \"IdToken\";\r\n CredentialType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n CredentialType[\"ACCESS_TOKEN_WITH_AUTH_SCHEME\"] = \"AccessToken_With_AuthScheme\";\r\n CredentialType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n})(CredentialType || (CredentialType = {}));\r\n/**\r\n * Combine all cache types\r\n */\r\nvar CacheType;\r\n(function (CacheType) {\r\n CacheType[CacheType[\"ADFS\"] = 1001] = \"ADFS\";\r\n CacheType[CacheType[\"MSA\"] = 1002] = \"MSA\";\r\n CacheType[CacheType[\"MSSTS\"] = 1003] = \"MSSTS\";\r\n CacheType[CacheType[\"GENERIC\"] = 1004] = \"GENERIC\";\r\n CacheType[CacheType[\"ACCESS_TOKEN\"] = 2001] = \"ACCESS_TOKEN\";\r\n CacheType[CacheType[\"REFRESH_TOKEN\"] = 2002] = \"REFRESH_TOKEN\";\r\n CacheType[CacheType[\"ID_TOKEN\"] = 2003] = \"ID_TOKEN\";\r\n CacheType[CacheType[\"APP_METADATA\"] = 3001] = \"APP_METADATA\";\r\n CacheType[CacheType[\"UNDEFINED\"] = 9999] = \"UNDEFINED\";\r\n})(CacheType || (CacheType = {}));\r\n/**\r\n * More Cache related constants\r\n */\r\nvar APP_METADATA = \"appmetadata\";\r\nvar CLIENT_INFO = \"client_info\";\r\nvar THE_FAMILY_ID = \"1\";\r\nvar AUTHORITY_METADATA_CONSTANTS = {\r\n CACHE_KEY: \"authority-metadata\",\r\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\r\n};\r\nvar AuthorityMetadataSource;\r\n(function (AuthorityMetadataSource) {\r\n AuthorityMetadataSource[\"CONFIG\"] = \"config\";\r\n AuthorityMetadataSource[\"CACHE\"] = \"cache\";\r\n AuthorityMetadataSource[\"NETWORK\"] = \"network\";\r\n AuthorityMetadataSource[\"HARDCODED_VALUES\"] = \"hardcoded_values\";\r\n})(AuthorityMetadataSource || (AuthorityMetadataSource = {}));\r\nvar SERVER_TELEM_CONSTANTS = {\r\n SCHEMA_VERSION: 5,\r\n MAX_CUR_HEADER_BYTES: 80,\r\n MAX_LAST_HEADER_BYTES: 330,\r\n MAX_CACHED_ERRORS: 50,\r\n CACHE_KEY: \"server-telemetry\",\r\n CATEGORY_SEPARATOR: \"|\",\r\n VALUE_SEPARATOR: \",\",\r\n OVERFLOW_TRUE: \"1\",\r\n OVERFLOW_FALSE: \"0\",\r\n UNKNOWN_ERROR: \"unknown_error\"\r\n};\r\n/**\r\n * Type of the authentication request\r\n */\r\nvar AuthenticationScheme;\r\n(function (AuthenticationScheme) {\r\n AuthenticationScheme[\"BEARER\"] = \"Bearer\";\r\n AuthenticationScheme[\"POP\"] = \"pop\";\r\n AuthenticationScheme[\"SSH\"] = \"ssh-cert\";\r\n})(AuthenticationScheme || (AuthenticationScheme = {}));\r\n/**\r\n * Constants related to throttling\r\n */\r\nvar ThrottlingConstants = {\r\n // Default time to throttle RequestThumbprint in seconds\r\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\r\n // Default maximum time to throttle in seconds, overrides what the server sends back\r\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\r\n // Prefix for storing throttling entries\r\n THROTTLING_PREFIX: \"throttling\",\r\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\r\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\r\n};\r\nvar Errors = {\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\r\n};\r\n/**\r\n * Password grant parameters\r\n */\r\nvar PasswordGrantConstants;\r\n(function (PasswordGrantConstants) {\r\n PasswordGrantConstants[\"username\"] = \"username\";\r\n PasswordGrantConstants[\"password\"] = \"password\";\r\n})(PasswordGrantConstants || (PasswordGrantConstants = {}));\r\n/**\r\n * Response codes\r\n */\r\nvar ResponseCodes;\r\n(function (ResponseCodes) {\r\n ResponseCodes[ResponseCodes[\"httpSuccess\"] = 200] = \"httpSuccess\";\r\n ResponseCodes[ResponseCodes[\"httpBadRequest\"] = 400] = \"httpBadRequest\";\r\n})(ResponseCodes || (ResponseCodes = {}));\r\n/**\r\n * Region Discovery Sources\r\n */\r\nvar RegionDiscoverySources;\r\n(function (RegionDiscoverySources) {\r\n RegionDiscoverySources[\"FAILED_AUTO_DETECTION\"] = \"1\";\r\n RegionDiscoverySources[\"INTERNAL_CACHE\"] = \"2\";\r\n RegionDiscoverySources[\"ENVIRONMENT_VARIABLE\"] = \"3\";\r\n RegionDiscoverySources[\"IMDS\"] = \"4\";\r\n})(RegionDiscoverySources || (RegionDiscoverySources = {}));\r\n/**\r\n * Region Discovery Outcomes\r\n */\r\nvar RegionDiscoveryOutcomes;\r\n(function (RegionDiscoveryOutcomes) {\r\n RegionDiscoveryOutcomes[\"CONFIGURED_MATCHES_DETECTED\"] = \"1\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NO_AUTO_DETECTION\"] = \"2\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NOT_DETECTED\"] = \"3\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_SUCCESSFUL\"] = \"4\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_FAILED\"] = \"5\";\r\n})(RegionDiscoveryOutcomes || (RegionDiscoveryOutcomes = {}));\r\nvar CacheOutcome;\r\n(function (CacheOutcome) {\r\n CacheOutcome[\"NO_CACHE_HIT\"] = \"0\";\r\n CacheOutcome[\"FORCE_REFRESH\"] = \"1\";\r\n CacheOutcome[\"NO_CACHED_ACCESS_TOKEN\"] = \"2\";\r\n CacheOutcome[\"CACHED_ACCESS_TOKEN_EXPIRED\"] = \"3\";\r\n CacheOutcome[\"REFRESH_CACHED_ACCESS_TOKEN\"] = \"4\";\r\n})(CacheOutcome || (CacheOutcome = {}));\r\nvar JsonTypes;\r\n(function (JsonTypes) {\r\n JsonTypes[\"Jwt\"] = \"JWT\";\r\n JsonTypes[\"Jwk\"] = \"JWK\";\r\n JsonTypes[\"Pop\"] = \"pop\";\r\n})(JsonTypes || (JsonTypes = {}));\r\nvar ONE_DAY_IN_MS = 86400000;\n\nexport { AADAuthorityConstants, AADServerParamKeys, APP_METADATA, AUTHORITY_METADATA_CONSTANTS, AuthenticationScheme, AuthorityMetadataSource, CLIENT_INFO, CacheAccountType, CacheOutcome, CacheType, ClaimsRequestKeys, CodeChallengeMethodValues, Constants, CredentialType, Errors, GrantType, HeaderNames, JsonTypes, OIDC_DEFAULT_SCOPES, OIDC_SCOPES, ONE_DAY_IN_MS, PasswordGrantConstants, PersistentCacheKeys, PromptValue, RegionDiscoveryOutcomes, RegionDiscoverySources, ResponseCodes, ResponseMode, SERVER_TELEM_CONSTANTS, SSOTypes, Separators, THE_FAMILY_ID, ThrottlingConstants };\n//# sourceMappingURL=Constants.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * AuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar AuthErrorMessage = {\r\n unexpectedError: {\r\n code: \"unexpected_error\",\r\n desc: \"Unexpected error in authentication.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details.\"\r\n }\r\n};\r\n/**\r\n * General error class thrown by the MSAL.js library.\r\n */\r\nvar AuthError = /** @class */ (function (_super) {\r\n __extends(AuthError, _super);\r\n function AuthError(errorCode, errorMessage, suberror) {\r\n var _this = this;\r\n var errorString = errorMessage ? errorCode + \": \" + errorMessage : errorCode;\r\n _this = _super.call(this, errorString) || this;\r\n Object.setPrototypeOf(_this, AuthError.prototype);\r\n _this.errorCode = errorCode || Constants.EMPTY_STRING;\r\n _this.errorMessage = errorMessage || Constants.EMPTY_STRING;\r\n _this.subError = suberror || Constants.EMPTY_STRING;\r\n _this.name = \"AuthError\";\r\n return _this;\r\n }\r\n AuthError.prototype.setCorrelationId = function (correlationId) {\r\n this.correlationId = correlationId;\r\n };\r\n /**\r\n * Creates an error that is thrown when something unexpected happens in the library.\r\n * @param errDesc\r\n */\r\n AuthError.createUnexpectedError = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.unexpectedError.code, AuthErrorMessage.unexpectedError.desc + \": \" + errDesc);\r\n };\r\n /**\r\n * Creates an error for post request failures.\r\n * @param errDesc\r\n * @returns\r\n */\r\n AuthError.createPostRequestFailed = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.postRequestFailed.code, AuthErrorMessage.postRequestFailed.desc + \": \" + errDesc);\r\n };\r\n return AuthError;\r\n}(Error));\n\nexport { AuthError, AuthErrorMessage };\n//# sourceMappingURL=AuthError.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar DEFAULT_CRYPTO_IMPLEMENTATION = {\r\n createNewGuid: function () {\r\n var notImplErr = \"Crypto interface - createNewGuid() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Decode: function () {\r\n var notImplErr = \"Crypto interface - base64Decode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Encode: function () {\r\n var notImplErr = \"Crypto interface - base64Encode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n generatePkceCodes: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - generatePkceCodes() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n getPublicKeyThumbprint: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - getPublicKeyThumbprint() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n removeTokenBindingKey: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - removeTokenBindingKey() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n clearKeystore: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - clearKeystore() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n signJwt: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - signJwt() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n hashString: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - hashString() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\n\nexport { DEFAULT_CRYPTO_IMPLEMENTATION };\n//# sourceMappingURL=ICrypto.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientAuthErrorMessage = {\r\n clientInfoDecodingError: {\r\n code: \"client_info_decoding_error\",\r\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\r\n },\r\n clientInfoEmptyError: {\r\n code: \"client_info_empty_error\",\r\n desc: \"The client info was empty. Please review the trace to determine the root cause.\"\r\n },\r\n tokenParsingError: {\r\n code: \"token_parsing_error\",\r\n desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\r\n },\r\n nullOrEmptyToken: {\r\n code: \"null_or_empty_token\",\r\n desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\r\n },\r\n endpointResolutionError: {\r\n code: \"endpoints_resolution_error\",\r\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\r\n },\r\n networkError: {\r\n code: \"network_error\",\r\n desc: \"Network request failed. Please check network trace to determine root cause.\"\r\n },\r\n unableToGetOpenidConfigError: {\r\n code: \"openid_config_error\",\r\n desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\r\n },\r\n hashNotDeserialized: {\r\n code: \"hash_not_deserialized\",\r\n desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\r\n },\r\n blankGuidGenerated: {\r\n code: \"blank_guid_generated\",\r\n desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\r\n },\r\n invalidStateError: {\r\n code: \"invalid_state\",\r\n desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\r\n },\r\n stateMismatchError: {\r\n code: \"state_mismatch\",\r\n desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\r\n },\r\n stateNotFoundError: {\r\n code: \"state_not_found\",\r\n desc: \"State not found\"\r\n },\r\n nonceMismatchError: {\r\n code: \"nonce_mismatch\",\r\n desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\r\n },\r\n nonceNotFoundError: {\r\n code: \"nonce_not_found\",\r\n desc: \"nonce not found\"\r\n },\r\n authTimeNotFoundError: {\r\n code: \"auth_time_not_found\",\r\n desc: \"Max Age was requested and the ID token is missing the auth_time variable.\" +\r\n \" auth_time is an optional claim and is not enabled by default - it must be enabled.\" +\r\n \" See https://aka.ms/msaljs/optional-claims for more information.\"\r\n },\r\n maxAgeTranspiredError: {\r\n code: \"max_age_transpired\",\r\n desc: \"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.\"\r\n },\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken().\"\r\n },\r\n multipleMatchingTokens: {\r\n code: \"multiple_matching_tokens\",\r\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\r\n \"Call AcquireToken again providing more requirements such as authority or account.\"\r\n },\r\n multipleMatchingAccounts: {\r\n code: \"multiple_matching_accounts\",\r\n desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\r\n },\r\n multipleMatchingAppMetadata: {\r\n code: \"multiple_matching_appMetadata\",\r\n desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\r\n },\r\n tokenRequestCannotBeMade: {\r\n code: \"request_cannot_be_made\",\r\n desc: \"Token request cannot be made without authorization code or refresh token.\"\r\n },\r\n appendEmptyScopeError: {\r\n code: \"cannot_append_empty_scope\",\r\n desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n removeEmptyScopeError: {\r\n code: \"cannot_remove_empty_scope\",\r\n desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n appendScopeSetError: {\r\n code: \"cannot_append_scopeset\",\r\n desc: \"Cannot append ScopeSet due to error.\"\r\n },\r\n emptyInputScopeSetError: {\r\n code: \"empty_input_scopeset\",\r\n desc: \"Empty input ScopeSet cannot be processed.\"\r\n },\r\n DeviceCodePollingCancelled: {\r\n code: \"device_code_polling_cancelled\",\r\n desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\r\n },\r\n DeviceCodeExpired: {\r\n code: \"device_code_expired\",\r\n desc: \"Device code is expired.\"\r\n },\r\n DeviceCodeUnknownError: {\r\n code: \"device_code_unknown_error\",\r\n desc: \"Device code stopped polling for unknown reasons.\"\r\n },\r\n NoAccountInSilentRequest: {\r\n code: \"no_account_in_silent_request\",\r\n desc: \"Please pass an account object, silent flow is not supported without account information\"\r\n },\r\n invalidCacheRecord: {\r\n code: \"invalid_cache_record\",\r\n desc: \"Cache record object was null or undefined.\"\r\n },\r\n invalidCacheEnvironment: {\r\n code: \"invalid_cache_environment\",\r\n desc: \"Invalid environment when attempting to create cache entry\"\r\n },\r\n noAccountFound: {\r\n code: \"no_account_found\",\r\n desc: \"No account found in cache for given key.\"\r\n },\r\n CachePluginError: {\r\n code: \"no cache plugin set on CacheManager\",\r\n desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\r\n },\r\n noCryptoObj: {\r\n code: \"no_crypto_object\",\r\n desc: \"No crypto object detected. This is required for the following operation: \"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n unexpectedAccountType: {\r\n code: \"unexpected_account_type\",\r\n desc: \"Unexpected account type.\"\r\n },\r\n unexpectedCredentialType: {\r\n code: \"unexpected_credential_type\",\r\n desc: \"Unexpected credential type.\"\r\n },\r\n invalidAssertion: {\r\n code: \"invalid_assertion\",\r\n desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\r\n },\r\n invalidClientCredential: {\r\n code: \"invalid_client_credential\",\r\n desc: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\"\r\n },\r\n tokenRefreshRequired: {\r\n code: \"token_refresh_required\",\r\n desc: \"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.\"\r\n },\r\n userTimeoutReached: {\r\n code: \"user_timeout_reached\",\r\n desc: \"User defined timeout for device code polling reached\",\r\n },\r\n tokenClaimsRequired: {\r\n code: \"token_claims_cnf_required_for_signedjwt\",\r\n desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\r\n },\r\n noAuthorizationCodeFromServer: {\r\n code: \"authorization_code_missing_from_server_response\",\r\n desc: \"Server response does not contain an authorization code to proceed\"\r\n },\r\n noAzureRegionDetected: {\r\n code: \"no_azure_region_detected\",\r\n desc: \"No azure region was detected and no fallback was made available\"\r\n },\r\n accessTokenEntityNullError: {\r\n code: \"access_token_entity_null\",\r\n desc: \"Access token entity is null, please check logs and cache to ensure a valid access token is present.\"\r\n },\r\n bindingKeyNotRemovedError: {\r\n code: \"binding_key_not_removed\",\r\n desc: \"Could not remove the credential's binding key from storage.\"\r\n },\r\n logoutNotSupported: {\r\n code: \"end_session_endpoint_not_supported\",\r\n desc: \"Provided authority does not support logout.\"\r\n },\r\n keyIdMissing: {\r\n code: \"key_id_missing\",\r\n desc: \"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key.\"\r\n },\r\n noNetworkConnectivity: {\r\n code: \"no_network_connectivity\",\r\n desc: \"No network connectivity. Check your internet connection.\"\r\n },\r\n userCanceledError: {\r\n code: \"user_canceled\",\r\n desc: \"User canceled the flow.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar ClientAuthError = /** @class */ (function (_super) {\r\n __extends(ClientAuthError, _super);\r\n function ClientAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientAuthError\";\r\n Object.setPrototypeOf(_this, ClientAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when client info object doesn't decode correctly.\r\n * @param caughtError\r\n */\r\n ClientAuthError.createClientInfoDecodingError = function (caughtError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code, ClientAuthErrorMessage.clientInfoDecodingError.desc + \" Failed with error: \" + caughtError);\r\n };\r\n /**\r\n * Creates an error thrown if the client info is empty.\r\n * @param rawClientInfo\r\n */\r\n ClientAuthError.createClientInfoEmptyError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code, \"\" + ClientAuthErrorMessage.clientInfoEmptyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the id token extraction errors out.\r\n * @param err\r\n */\r\n ClientAuthError.createTokenParsingError = function (caughtExtractionError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code, ClientAuthErrorMessage.tokenParsingError.desc + \" Failed with error: \" + caughtExtractionError);\r\n };\r\n /**\r\n * Creates an error thrown when the id token string is null or empty.\r\n * @param invalidRawTokenString\r\n */\r\n ClientAuthError.createTokenNullOrEmptyError = function (invalidRawTokenString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code, ClientAuthErrorMessage.nullOrEmptyToken.desc + \" Raw Token Value: \" + invalidRawTokenString);\r\n };\r\n /**\r\n * Creates an error thrown when the endpoint discovery doesn't complete correctly.\r\n */\r\n ClientAuthError.createEndpointDiscoveryIncompleteError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code, ClientAuthErrorMessage.endpointResolutionError.desc + \" Detail: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the fetch client throws\r\n */\r\n ClientAuthError.createNetworkError = function (endpoint, errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.networkError.code, ClientAuthErrorMessage.networkError.desc + \" | Fetch client threw: \" + errDetail + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\r\n */\r\n ClientAuthError.createUnableToGetOpenidConfigError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code, ClientAuthErrorMessage.unableToGetOpenidConfigError.desc + \" Attempted to retrieve endpoints from: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the hash cannot be deserialized.\r\n * @param hashParamObj\r\n */\r\n ClientAuthError.createHashNotDeserializedError = function (hashParamObj) {\r\n return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code, ClientAuthErrorMessage.hashNotDeserialized.desc + \" Given Object: \" + hashParamObj);\r\n };\r\n /**\r\n * Creates an error thrown when the state cannot be parsed.\r\n * @param invalidState\r\n */\r\n ClientAuthError.createInvalidStateError = function (invalidState, errorString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code, ClientAuthErrorMessage.invalidStateError.desc + \" Invalid State: \" + invalidState + \", Root Err: \" + errorString);\r\n };\r\n /**\r\n * Creates an error thrown when two states do not match.\r\n */\r\n ClientAuthError.createStateMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code, ClientAuthErrorMessage.stateMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state is not present\r\n * @param missingState\r\n */\r\n ClientAuthError.createStateNotFoundError = function (missingState) {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code, ClientAuthErrorMessage.stateNotFoundError.desc + \": \" + missingState);\r\n };\r\n /**\r\n * Creates an error thrown when the nonce does not match.\r\n */\r\n ClientAuthError.createNonceMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code, ClientAuthErrorMessage.nonceMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when max_age was provided in the request, but auth_time is not in the token claims\r\n * @param missingNonce\r\n */\r\n ClientAuthError.createAuthTimeNotFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.authTimeNotFoundError.code, ClientAuthErrorMessage.authTimeNotFoundError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when too much time has elapsed since the last end-user authentication\r\n */\r\n ClientAuthError.createMaxAgeTranspiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.maxAgeTranspiredError.code, ClientAuthErrorMessage.maxAgeTranspiredError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the mnonce is not present\r\n * @param missingNonce\r\n */\r\n ClientAuthError.createNonceNotFoundError = function (missingNonce) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code, ClientAuthErrorMessage.nonceNotFoundError.desc + \": \" + missingNonce);\r\n };\r\n /**\r\n * Throws error when multiple tokens are in cache.\r\n */\r\n ClientAuthError.createMultipleMatchingTokensInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code, ClientAuthErrorMessage.multipleMatchingTokens.desc + \".\");\r\n };\r\n /**\r\n * Throws error when multiple accounts are in cache for the given params\r\n */\r\n ClientAuthError.createMultipleMatchingAccountsInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code, ClientAuthErrorMessage.multipleMatchingAccounts.desc);\r\n };\r\n /**\r\n * Throws error when multiple appMetada are in cache for the given clientId.\r\n */\r\n ClientAuthError.createMultipleMatchingAppMetadataInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code, ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\r\n };\r\n /**\r\n * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\r\n */\r\n ClientAuthError.createTokenRequestCannotBeMadeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createAppendEmptyScopeToSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, ClientAuthErrorMessage.appendEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createRemoveEmptyScopeFromSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, ClientAuthErrorMessage.removeEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append null or empty ScopeSet.\r\n * @param appendError\r\n */\r\n ClientAuthError.createAppendScopeSetError = function (appendError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, ClientAuthErrorMessage.appendScopeSetError.desc + \" Detail Error: \" + appendError);\r\n };\r\n /**\r\n * Throws error if ScopeSet is null or undefined.\r\n * @param givenScopeSet\r\n */\r\n ClientAuthError.createEmptyInputScopeSetError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, \"\" + ClientAuthErrorMessage.emptyInputScopeSetError.desc);\r\n };\r\n /**\r\n * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\r\n */\r\n ClientAuthError.createDeviceCodeCancelledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, \"\" + ClientAuthErrorMessage.DeviceCodePollingCancelled.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeExpiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, \"\" + ClientAuthErrorMessage.DeviceCodeExpired.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeUnknownError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, \"\" + ClientAuthErrorMessage.DeviceCodeUnknownError.desc);\r\n };\r\n /**\r\n * Throws error when silent requests are made without an account object\r\n */\r\n ClientAuthError.createNoAccountInSilentRequestError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, \"\" + ClientAuthErrorMessage.NoAccountInSilentRequest.desc);\r\n };\r\n /**\r\n * Throws error when cache record is null or undefined.\r\n */\r\n ClientAuthError.createNullOrUndefinedCacheRecord = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\r\n };\r\n /**\r\n * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\r\n */\r\n ClientAuthError.createInvalidCacheEnvironmentError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\r\n };\r\n /**\r\n * Throws error when account is not found in cache.\r\n */\r\n ClientAuthError.createNoAccountFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\r\n };\r\n /**\r\n * Throws error if ICachePlugin not set on CacheManager.\r\n */\r\n ClientAuthError.createCachePluginError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, \"\" + ClientAuthErrorMessage.CachePluginError.desc);\r\n };\r\n /**\r\n * Throws error if crypto object not found.\r\n * @param operationName\r\n */\r\n ClientAuthError.createNoCryptoObjectError = function (operationName) {\r\n return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, \"\" + ClientAuthErrorMessage.noCryptoObj.desc + operationName);\r\n };\r\n /**\r\n * Throws error if cache type is invalid.\r\n */\r\n ClientAuthError.createInvalidCacheTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, \"\" + ClientAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected account type.\r\n */\r\n ClientAuthError.createUnexpectedAccountTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, \"\" + ClientAuthErrorMessage.unexpectedAccountType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected credential type.\r\n */\r\n ClientAuthError.createUnexpectedCredentialTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, \"\" + ClientAuthErrorMessage.unexpectedCredentialType.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidAssertionError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, \"\" + ClientAuthErrorMessage.invalidAssertion.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidCredentialError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, \"\" + ClientAuthErrorMessage.invalidClientCredential.desc);\r\n };\r\n /**\r\n * Throws error if token cannot be retrieved from cache due to refresh being required.\r\n */\r\n ClientAuthError.createRefreshRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\r\n };\r\n /**\r\n * Throws error if the user defined timeout is reached.\r\n */\r\n ClientAuthError.createUserTimeoutReachedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\r\n };\r\n /*\r\n * Throws error if token claims are not populated for a signed jwt generation\r\n */\r\n ClientAuthError.createTokenClaimsRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\r\n };\r\n /**\r\n * Throws error when the authorization code is missing from the server response\r\n */\r\n ClientAuthError.createNoAuthCodeInServerResponseError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\r\n };\r\n ClientAuthError.createBindingKeyNotRemovedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.bindingKeyNotRemovedError.code, ClientAuthErrorMessage.bindingKeyNotRemovedError.desc);\r\n };\r\n /**\r\n * Thrown when logout is attempted for an authority that doesnt have an end_session_endpoint\r\n */\r\n ClientAuthError.createLogoutNotSupportedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.logoutNotSupported.code, ClientAuthErrorMessage.logoutNotSupported.desc);\r\n };\r\n /**\r\n * Create an error when kid attribute is missing from a PoP token's cache record\r\n */\r\n ClientAuthError.createKeyIdMissingError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.keyIdMissing.code, ClientAuthErrorMessage.keyIdMissing.desc);\r\n };\r\n /**\r\n * Create an error when the client does not have network connectivity\r\n */\r\n ClientAuthError.createNoNetworkConnectivityError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noNetworkConnectivity.code, ClientAuthErrorMessage.noNetworkConnectivity.desc);\r\n };\r\n /**\r\n * Create an error when the user cancels the flow\r\n */\r\n ClientAuthError.createUserCanceledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userCanceledError.code, ClientAuthErrorMessage.userCanceledError.desc);\r\n };\r\n return ClientAuthError;\r\n}(AuthError));\n\nexport { ClientAuthError, ClientAuthErrorMessage };\n//# sourceMappingURL=ClientAuthError.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar StringUtils = /** @class */ (function () {\r\n function StringUtils() {\r\n }\r\n /**\r\n * decode a JWT\r\n *\r\n * @param authToken\r\n */\r\n StringUtils.decodeAuthToken = function (authToken) {\r\n if (StringUtils.isEmpty(authToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(authToken);\r\n }\r\n var tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n var matches = tokenPartsRegex.exec(authToken);\r\n if (!matches || matches.length < 4) {\r\n throw ClientAuthError.createTokenParsingError(\"Given token is malformed: \" + JSON.stringify(authToken));\r\n }\r\n var crackedToken = {\r\n header: matches[1],\r\n JWSPayload: matches[2],\r\n JWSSig: matches[3]\r\n };\r\n return crackedToken;\r\n };\r\n /**\r\n * Check if a string is empty.\r\n *\r\n * @param str\r\n */\r\n StringUtils.isEmpty = function (str) {\r\n return (typeof str === \"undefined\" || !str || 0 === str.length);\r\n };\r\n /**\r\n * Check if stringified object is empty\r\n * @param strObj\r\n */\r\n StringUtils.isEmptyObj = function (strObj) {\r\n if (strObj && !StringUtils.isEmpty(strObj)) {\r\n try {\r\n var obj = JSON.parse(strObj);\r\n return Object.keys(obj).length === 0;\r\n }\r\n catch (e) { }\r\n }\r\n return true;\r\n };\r\n StringUtils.startsWith = function (str, search) {\r\n return str.indexOf(search) === 0;\r\n };\r\n StringUtils.endsWith = function (str, search) {\r\n return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\r\n };\r\n /**\r\n * Parses string into an object.\r\n *\r\n * @param query\r\n */\r\n StringUtils.queryStringToObject = function (query) {\r\n var obj = {};\r\n var params = query.split(\"&\");\r\n var decode = function (s) { return decodeURIComponent(s.replace(/\\+/g, \" \")); };\r\n params.forEach(function (pair) {\r\n if (pair.trim()) {\r\n var _a = pair.split(/=(.+)/g, 2), key = _a[0], value = _a[1]; // Split on the first occurence of the '=' character\r\n if (key && value) {\r\n obj[decode(key)] = decode(value);\r\n }\r\n }\r\n });\r\n return obj;\r\n };\r\n /**\r\n * Trims entries in an array.\r\n *\r\n * @param arr\r\n */\r\n StringUtils.trimArrayEntries = function (arr) {\r\n return arr.map(function (entry) { return entry.trim(); });\r\n };\r\n /**\r\n * Removes empty strings from array\r\n * @param arr\r\n */\r\n StringUtils.removeEmptyStringsFromArray = function (arr) {\r\n return arr.filter(function (entry) {\r\n return !StringUtils.isEmpty(entry);\r\n });\r\n };\r\n /**\r\n * Attempts to parse a string into JSON\r\n * @param str\r\n */\r\n StringUtils.jsonParseHelper = function (str) {\r\n try {\r\n return JSON.parse(str);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\r\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\r\n * @param input String to match against\r\n */\r\n StringUtils.matchPattern = function (pattern, input) {\r\n /**\r\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\r\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\r\n */\r\n var regex = new RegExp(pattern.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\")); // eslint-disable-line security/detect-non-literal-regexp\r\n return regex.test(input);\r\n };\r\n return StringUtils;\r\n}());\n\nexport { StringUtils };\n//# sourceMappingURL=StringUtils.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Log message level.\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n LogLevel[LogLevel[\"Trace\"] = 4] = \"Trace\";\r\n})(LogLevel || (LogLevel = {}));\r\n/**\r\n * Class which facilitates logging of messages to a specific place.\r\n */\r\nvar Logger = /** @class */ (function () {\r\n function Logger(loggerOptions, packageName, packageVersion) {\r\n // Current log level, defaults to info.\r\n this.level = LogLevel.Info;\r\n var defaultLoggerCallback = function () {\r\n return;\r\n };\r\n var setLoggerOptions = loggerOptions || Logger.createDefaultLoggerOptions();\r\n this.localCallback = setLoggerOptions.loggerCallback || defaultLoggerCallback;\r\n this.piiLoggingEnabled = setLoggerOptions.piiLoggingEnabled || false;\r\n this.level = typeof (setLoggerOptions.logLevel) === \"number\" ? setLoggerOptions.logLevel : LogLevel.Info;\r\n this.correlationId = setLoggerOptions.correlationId || Constants.EMPTY_STRING;\r\n this.packageName = packageName || Constants.EMPTY_STRING;\r\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\r\n }\r\n Logger.createDefaultLoggerOptions = function () {\r\n return {\r\n loggerCallback: function () {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info\r\n };\r\n };\r\n /**\r\n * Create new Logger with existing configurations.\r\n */\r\n Logger.prototype.clone = function (packageName, packageVersion, correlationId) {\r\n return new Logger({ loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level, correlationId: correlationId || this.correlationId }, packageName, packageVersion);\r\n };\r\n /**\r\n * Log message with required options.\r\n */\r\n Logger.prototype.logMessage = function (logMessage, options) {\r\n if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\r\n return;\r\n }\r\n var timestamp = new Date().toUTCString();\r\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\r\n var logHeader;\r\n if (!StringUtils.isEmpty(options.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + options.correlationId + \"]\";\r\n }\r\n else if (!StringUtils.isEmpty(this.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + this.correlationId + \"]\";\r\n }\r\n else {\r\n logHeader = \"[\" + timestamp + \"]\";\r\n }\r\n var log = logHeader + \" : \" + this.packageName + \"@\" + this.packageVersion + \" : \" + LogLevel[options.logLevel] + \" - \" + logMessage;\r\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": Constants.EMPTY_STRING}${options.context ? `:${options.context}` : Constants.EMPTY_STRING}`)(logMessage);\r\n this.executeCallback(options.logLevel, log, options.containsPii || false);\r\n };\r\n /**\r\n * Execute callback with message.\r\n */\r\n Logger.prototype.executeCallback = function (level, message, containsPii) {\r\n if (this.localCallback) {\r\n this.localCallback(level, message, containsPii);\r\n }\r\n };\r\n /**\r\n * Logs error messages.\r\n */\r\n Logger.prototype.error = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs error messages with PII.\r\n */\r\n Logger.prototype.errorPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs warning messages.\r\n */\r\n Logger.prototype.warning = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs warning messages with PII.\r\n */\r\n Logger.prototype.warningPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs info messages.\r\n */\r\n Logger.prototype.info = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs info messages with PII.\r\n */\r\n Logger.prototype.infoPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs verbose messages.\r\n */\r\n Logger.prototype.verbose = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs verbose messages with PII.\r\n */\r\n Logger.prototype.verbosePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs trace messages.\r\n */\r\n Logger.prototype.trace = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs trace messages with PII.\r\n */\r\n Logger.prototype.tracePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Returns whether PII Logging is enabled or not.\r\n */\r\n Logger.prototype.isPiiLoggingEnabled = function () {\r\n return this.piiLoggingEnabled || false;\r\n };\r\n return Logger;\r\n}());\n\nexport { LogLevel, Logger };\n//# sourceMappingURL=Logger.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-common\";\r\nvar version = \"12.1.0\";\n\nexport { name, version };\n//# sourceMappingURL=packageMetadata.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AzureCloudInstance;\r\n(function (AzureCloudInstance) {\r\n // AzureCloudInstance is not specified.\r\n AzureCloudInstance[AzureCloudInstance[\"None\"] = 0] = \"None\";\r\n // Microsoft Azure public cloud\r\n AzureCloudInstance[\"AzurePublic\"] = \"https://login.microsoftonline.com\";\r\n // Microsoft PPE\r\n AzureCloudInstance[\"AzurePpe\"] = \"https://login.windows-ppe.net\";\r\n // Microsoft Chinese national cloud\r\n AzureCloudInstance[\"AzureChina\"] = \"https://login.chinacloudapi.cn\";\r\n // Microsoft German national cloud (\"Black Forest\")\r\n AzureCloudInstance[\"AzureGermany\"] = \"https://login.microsoftonline.de\";\r\n // US Government cloud\r\n AzureCloudInstance[\"AzureUsGovernment\"] = \"https://login.microsoftonline.us\";\r\n})(AzureCloudInstance || (AzureCloudInstance = {}));\n\nexport { AzureCloudInstance };\n//# sourceMappingURL=AuthorityOptions.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { ClientAuthError } from './ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientConfigurationErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientConfigurationErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n claimsRequestParsingError: {\r\n code: \"claims_request_parsing_error\",\r\n desc: \"Could not parse the given claims request object.\"\r\n },\r\n authorityUriInsecure: {\r\n code: \"authority_uri_insecure\",\r\n desc: \"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options\"\r\n },\r\n urlParseError: {\r\n code: \"url_parse_error\",\r\n desc: \"URL could not be parsed into appropriate segments.\"\r\n },\r\n urlEmptyError: {\r\n code: \"empty_url_error\",\r\n desc: \"URL was empty or null.\"\r\n },\r\n emptyScopesError: {\r\n code: \"empty_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.\"\r\n },\r\n nonArrayScopesError: {\r\n code: \"nonarray_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as non-array.\"\r\n },\r\n clientIdSingleScopeError: {\r\n code: \"clientid_input_scopes_error\",\r\n desc: \"Client ID can only be provided as a single scope.\"\r\n },\r\n invalidPrompt: {\r\n code: \"invalid_prompt_value\",\r\n desc: \"Supported prompt values are 'login', 'select_account', 'consent', 'create', 'none' and 'no_session'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest\",\r\n },\r\n invalidClaimsRequest: {\r\n code: \"invalid_claims\",\r\n desc: \"Given claims parameter must be a stringified JSON object.\"\r\n },\r\n tokenRequestEmptyError: {\r\n code: \"token_request_empty\",\r\n desc: \"Token request was empty and not found in cache.\"\r\n },\r\n logoutRequestEmptyError: {\r\n code: \"logout_request_empty\",\r\n desc: \"The logout request was null or undefined.\"\r\n },\r\n invalidCodeChallengeMethod: {\r\n code: \"invalid_code_challenge_method\",\r\n desc: \"code_challenge_method passed is invalid. Valid values are \\\"plain\\\" and \\\"S256\\\".\"\r\n },\r\n invalidCodeChallengeParams: {\r\n code: \"pkce_params_missing\",\r\n desc: \"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request\"\r\n },\r\n invalidCloudDiscoveryMetadata: {\r\n code: \"invalid_cloud_discovery_metadata\",\r\n desc: \"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields\"\r\n },\r\n invalidAuthorityMetadata: {\r\n code: \"invalid_authority_metadata\",\r\n desc: \"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.\"\r\n },\r\n untrustedAuthority: {\r\n code: \"untrusted_authority\",\r\n desc: \"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.\"\r\n },\r\n invalidAzureCloudInstance: {\r\n code: \"invalid_azure_cloud_instance\",\r\n desc: \"Invalid AzureCloudInstance provided. Please refer MSAL JS docs: aks.ms/msaljs/azure_cloud_instance for valid values\"\r\n },\r\n missingSshJwk: {\r\n code: \"missing_ssh_jwk\",\r\n desc: \"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.\"\r\n },\r\n missingSshKid: {\r\n code: \"missing_ssh_kid\",\r\n desc: \"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.\"\r\n },\r\n missingNonceAuthenticationHeader: {\r\n code: \"missing_nonce_authentication_header\",\r\n desc: \"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce.\"\r\n },\r\n invalidAuthenticationHeader: {\r\n code: \"invalid_authentication_header\",\r\n desc: \"Invalid authentication header provided\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in configuration of the MSAL.js library.\r\n */\r\nvar ClientConfigurationError = /** @class */ (function (_super) {\r\n __extends(ClientConfigurationError, _super);\r\n function ClientConfigurationError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientConfigurationError\";\r\n Object.setPrototypeOf(_this, ClientConfigurationError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.redirectUriNotSet.code, ClientConfigurationErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.postLogoutUriNotSet.code, ClientConfigurationErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the claims request could not be successfully parsed\r\n */\r\n ClientConfigurationError.createClaimsRequestParsingError = function (claimsRequestParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.claimsRequestParsingError.code, ClientConfigurationErrorMessage.claimsRequestParsingError.desc + \" Given value: \" + claimsRequestParseError);\r\n };\r\n /**\r\n * Creates an error thrown if authority uri is given an insecure protocol.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createInsecureAuthorityUriError = function (urlString) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.authorityUriInsecure.code, ClientConfigurationErrorMessage.authorityUriInsecure.desc + \" Given URI: \" + urlString);\r\n };\r\n /**\r\n * Creates an error thrown if URL string does not parse into separate segments.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlParseError = function (urlParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlParseError.code, ClientConfigurationErrorMessage.urlParseError.desc + \" Given Error: \" + urlParseError);\r\n };\r\n /**\r\n * Creates an error thrown if URL string is empty or null.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlEmptyError.code, ClientConfigurationErrorMessage.urlEmptyError.desc);\r\n };\r\n /**\r\n * Error thrown when scopes are empty.\r\n * @param scopesValue\r\n */\r\n ClientConfigurationError.createEmptyScopesArrayError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.emptyScopesError.code, \"\" + ClientConfigurationErrorMessage.emptyScopesError.desc);\r\n };\r\n /**\r\n * Error thrown when client id scope is not provided as single scope.\r\n * @param inputScopes\r\n */\r\n ClientConfigurationError.createClientIdSingleScopeError = function (inputScopes) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.clientIdSingleScopeError.code, ClientConfigurationErrorMessage.clientIdSingleScopeError.desc + \" Given Scopes: \" + inputScopes);\r\n };\r\n /**\r\n * Error thrown when prompt is not an allowed type.\r\n * @param promptValue\r\n */\r\n ClientConfigurationError.createInvalidPromptError = function (promptValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidPrompt.code, ClientConfigurationErrorMessage.invalidPrompt.desc + \" Given value: \" + promptValue);\r\n };\r\n /**\r\n * Creates error thrown when claims parameter is not a stringified JSON object\r\n */\r\n ClientConfigurationError.createInvalidClaimsRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidClaimsRequest.code, ClientConfigurationErrorMessage.invalidClaimsRequest.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyLogoutRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.logoutRequestEmptyError.code, ClientConfigurationErrorMessage.logoutRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyTokenRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.tokenRequestEmptyError.code, ClientConfigurationErrorMessage.tokenRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when an invalid code_challenge_method is passed by the user\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeMethodError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeMethod.code, ClientConfigurationErrorMessage.invalidCodeChallengeMethod.desc);\r\n };\r\n /**\r\n * Throws error when both params: code_challenge and code_challenge_method are not passed together\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeParamsError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeParams.code, ClientConfigurationErrorMessage.invalidCodeChallengeParams.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidCloudDiscoveryMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.code, ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidAuthorityMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityMetadata.code, ClientConfigurationErrorMessage.invalidAuthorityMetadata.desc);\r\n };\r\n /**\r\n * Throws error when provided authority is not a member of the trusted host list\r\n */\r\n ClientConfigurationError.createUntrustedAuthorityError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.untrustedAuthority.code, ClientConfigurationErrorMessage.untrustedAuthority.desc);\r\n };\r\n /**\r\n * Throws error when the AzureCloudInstance is set to an invalid value\r\n */\r\n ClientConfigurationError.createInvalidAzureCloudInstanceError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAzureCloudInstance.code, ClientConfigurationErrorMessage.invalidAzureCloudInstance.desc);\r\n };\r\n /**\r\n * Throws an error when the authentication scheme is set to SSH but the SSH public key is omitted from the request\r\n */\r\n ClientConfigurationError.createMissingSshJwkError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingSshJwk.code, ClientConfigurationErrorMessage.missingSshJwk.desc);\r\n };\r\n /**\r\n * Throws an error when the authentication scheme is set to SSH but the SSH public key ID is omitted from the request\r\n */\r\n ClientConfigurationError.createMissingSshKidError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingSshKid.code, ClientConfigurationErrorMessage.missingSshKid.desc);\r\n };\r\n /**\r\n * Throws error when provided headers don't contain a header that a server nonce can be extracted from\r\n */\r\n ClientConfigurationError.createMissingNonceAuthenticationHeadersError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingNonceAuthenticationHeader.code, ClientConfigurationErrorMessage.missingNonceAuthenticationHeader.desc);\r\n };\r\n /**\r\n * Throws error when a provided header is invalid in any way\r\n */\r\n ClientConfigurationError.createInvalidAuthenticationHeaderError = function (invalidHeaderName, details) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthenticationHeader.code, ClientConfigurationErrorMessage.invalidAuthenticationHeader.desc + \". Invalid header: \" + invalidHeaderName + \". Details: \" + details);\r\n };\r\n return ClientConfigurationError;\r\n}(ClientAuthError));\n\nexport { ClientConfigurationError, ClientConfigurationErrorMessage };\n//# sourceMappingURL=ClientConfigurationError.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { Constants, OIDC_SCOPES } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The ScopeSet class creates a set of scopes. Scopes are case-insensitive, unique values, so the Set object in JS makes\r\n * the most sense to implement for this class. All scopes are trimmed and converted to lower case strings in intersection and union functions\r\n * to ensure uniqueness of strings.\r\n */\r\nvar ScopeSet = /** @class */ (function () {\r\n function ScopeSet(inputScopes) {\r\n var _this = this;\r\n // Filter empty string and null/undefined array items\r\n var scopeArr = inputScopes ? StringUtils.trimArrayEntries(__spreadArrays(inputScopes)) : [];\r\n var filteredInput = scopeArr ? StringUtils.removeEmptyStringsFromArray(scopeArr) : [];\r\n // Validate and filter scopes (validate function throws if validation fails)\r\n this.validateInputScopes(filteredInput);\r\n this.scopes = new Set(); // Iterator in constructor not supported by IE11\r\n filteredInput.forEach(function (scope) { return _this.scopes.add(scope); });\r\n }\r\n /**\r\n * Factory method to create ScopeSet from space-delimited string\r\n * @param inputScopeString\r\n * @param appClientId\r\n * @param scopesRequired\r\n */\r\n ScopeSet.fromString = function (inputScopeString) {\r\n var scopeString = inputScopeString || Constants.EMPTY_STRING;\r\n var inputScopes = scopeString.split(\" \");\r\n return new ScopeSet(inputScopes);\r\n };\r\n /**\r\n * Creates the set of scopes to search for in cache lookups\r\n * @param inputScopeString\r\n * @returns\r\n */\r\n ScopeSet.createSearchScopes = function (inputScopeString) {\r\n var scopeSet = new ScopeSet(inputScopeString);\r\n if (!scopeSet.containsOnlyOIDCScopes()) {\r\n scopeSet.removeOIDCScopes();\r\n }\r\n else {\r\n scopeSet.removeScope(Constants.OFFLINE_ACCESS_SCOPE);\r\n }\r\n return scopeSet;\r\n };\r\n /**\r\n * Used to validate the scopes input parameter requested by the developer.\r\n * @param {Array} inputScopes - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {boolean} scopesRequired - Boolean indicating whether the scopes array is required or not\r\n */\r\n ScopeSet.prototype.validateInputScopes = function (inputScopes) {\r\n // Check if scopes are required but not given or is an empty array\r\n if (!inputScopes || inputScopes.length < 1) {\r\n throw ClientConfigurationError.createEmptyScopesArrayError();\r\n }\r\n };\r\n /**\r\n * Check if a given scope is present in this set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.containsScope = function (scope) {\r\n var lowerCaseScopes = this.printScopesLowerCase().split(\" \");\r\n var lowerCaseScopesSet = new ScopeSet(lowerCaseScopes);\r\n // compare lowercase scopes\r\n return !StringUtils.isEmpty(scope) ? lowerCaseScopesSet.scopes.has(scope.toLowerCase()) : false;\r\n };\r\n /**\r\n * Check if a set of scopes is present in this set of scopes.\r\n * @param scopeSet\r\n */\r\n ScopeSet.prototype.containsScopeSet = function (scopeSet) {\r\n var _this = this;\r\n if (!scopeSet || scopeSet.scopes.size <= 0) {\r\n return false;\r\n }\r\n return (this.scopes.size >= scopeSet.scopes.size && scopeSet.asArray().every(function (scope) { return _this.containsScope(scope); }));\r\n };\r\n /**\r\n * Check if set of scopes contains only the defaults\r\n */\r\n ScopeSet.prototype.containsOnlyOIDCScopes = function () {\r\n var _this = this;\r\n var defaultScopeCount = 0;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n if (_this.containsScope(defaultScope)) {\r\n defaultScopeCount += 1;\r\n }\r\n });\r\n return this.scopes.size === defaultScopeCount;\r\n };\r\n /**\r\n * Appends single scope if passed\r\n * @param newScope\r\n */\r\n ScopeSet.prototype.appendScope = function (newScope) {\r\n if (!StringUtils.isEmpty(newScope)) {\r\n this.scopes.add(newScope.trim());\r\n }\r\n };\r\n /**\r\n * Appends multiple scopes if passed\r\n * @param newScopes\r\n */\r\n ScopeSet.prototype.appendScopes = function (newScopes) {\r\n var _this = this;\r\n try {\r\n newScopes.forEach(function (newScope) { return _this.appendScope(newScope); });\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createAppendScopeSetError(e);\r\n }\r\n };\r\n /**\r\n * Removes element from set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.removeScope = function (scope) {\r\n if (StringUtils.isEmpty(scope)) {\r\n throw ClientAuthError.createRemoveEmptyScopeFromSetError(scope);\r\n }\r\n this.scopes.delete(scope.trim());\r\n };\r\n /**\r\n * Removes default scopes from set of scopes\r\n * Primarily used to prevent cache misses if the default scopes are not returned from the server\r\n */\r\n ScopeSet.prototype.removeOIDCScopes = function () {\r\n var _this = this;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n _this.scopes.delete(defaultScope);\r\n });\r\n };\r\n /**\r\n * Combines an array of scopes with the current set of scopes.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.unionScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n var unionScopes = new Set(); // Iterator in constructor not supported in IE11\r\n otherScopes.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n this.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n return unionScopes;\r\n };\r\n /**\r\n * Check if scopes intersect between this set and another.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.intersectingScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n // Do not allow OIDC scopes to be the only intersecting scopes\r\n if (!otherScopes.containsOnlyOIDCScopes()) {\r\n otherScopes.removeOIDCScopes();\r\n }\r\n var unionScopes = this.unionScopeSets(otherScopes);\r\n var sizeOtherScopes = otherScopes.getScopeCount();\r\n var sizeThisScopes = this.getScopeCount();\r\n var sizeUnionScopes = unionScopes.size;\r\n return sizeUnionScopes < (sizeThisScopes + sizeOtherScopes);\r\n };\r\n /**\r\n * Returns size of set of scopes.\r\n */\r\n ScopeSet.prototype.getScopeCount = function () {\r\n return this.scopes.size;\r\n };\r\n /**\r\n * Returns the scopes as an array of string values\r\n */\r\n ScopeSet.prototype.asArray = function () {\r\n var array = [];\r\n this.scopes.forEach(function (val) { return array.push(val); });\r\n return array;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited string\r\n */\r\n ScopeSet.prototype.printScopes = function () {\r\n if (this.scopes) {\r\n var scopeArr = this.asArray();\r\n return scopeArr.join(\" \");\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited lower-case string (used for caching)\r\n */\r\n ScopeSet.prototype.printScopesLowerCase = function () {\r\n return this.printScopes().toLowerCase();\r\n };\r\n return ScopeSet;\r\n}());\n\nexport { ScopeSet };\n//# sourceMappingURL=ScopeSet.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Separators, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Function to build a client info object from server clientInfo string\r\n * @param rawClientInfo\r\n * @param crypto\r\n */\r\nfunction buildClientInfo(rawClientInfo, crypto) {\r\n if (StringUtils.isEmpty(rawClientInfo)) {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n try {\r\n var decodedClientInfo = crypto.base64Decode(rawClientInfo);\r\n return JSON.parse(decodedClientInfo);\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createClientInfoDecodingError(e.message);\r\n }\r\n}\r\n/**\r\n * Function to build a client info object from cached homeAccountId string\r\n * @param homeAccountId\r\n */\r\nfunction buildClientInfoFromHomeAccountId(homeAccountId) {\r\n if (StringUtils.isEmpty(homeAccountId)) {\r\n throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\r\n }\r\n var clientInfoParts = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\r\n return {\r\n uid: clientInfoParts[0],\r\n utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\r\n };\r\n}\n\nexport { buildClientInfo, buildClientInfoFromHomeAccountId };\n//# sourceMappingURL=ClientInfo.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Authority types supported by MSAL.\r\n */\r\nvar AuthorityType;\r\n(function (AuthorityType) {\r\n AuthorityType[AuthorityType[\"Default\"] = 0] = \"Default\";\r\n AuthorityType[AuthorityType[\"Adfs\"] = 1] = \"Adfs\";\r\n AuthorityType[AuthorityType[\"Dsts\"] = 2] = \"Dsts\";\r\n AuthorityType[AuthorityType[\"Ciam\"] = 3] = \"Ciam\";\r\n})(AuthorityType || (AuthorityType = {}));\n\nexport { AuthorityType };\n//# sourceMappingURL=AuthorityType.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { Separators, CacheAccountType, CacheType, Constants } from '../../utils/Constants.js';\nimport { buildClientInfo } from '../../account/ClientInfo.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\nimport { AuthorityType } from '../../authority/AuthorityType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\r\n *\r\n * Key : Value Schema\r\n *\r\n * Key: --\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * localAccountId: Original tenant-specific accountID, usually used for legacy cases\r\n * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\r\n * authorityType: Accounts authority type as a string\r\n * name: Full name for the account, including given name and family name,\r\n * clientInfo: Full base64 encoded client info received from ESTS\r\n * lastModificationTime: last time this entity was modified in the cache\r\n * lastModificationApp:\r\n * idTokenClaims: Object containing claims parsed from ID token\r\n * nativeAccountId: Account identifier on the native device\r\n * }\r\n */\r\nvar AccountEntity = /** @class */ (function () {\r\n function AccountEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n AccountEntity.prototype.generateAccountId = function () {\r\n var accountId = [this.homeAccountId, this.environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate Account Cache Key as per the schema: --\r\n */\r\n AccountEntity.prototype.generateAccountKey = function () {\r\n return AccountEntity.generateAccountCacheKey({\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId\r\n });\r\n };\r\n /**\r\n * returns the type of the cache (in this case account)\r\n */\r\n AccountEntity.prototype.generateType = function () {\r\n switch (this.authorityType) {\r\n case CacheAccountType.ADFS_ACCOUNT_TYPE:\r\n return CacheType.ADFS;\r\n case CacheAccountType.MSAV1_ACCOUNT_TYPE:\r\n return CacheType.MSA;\r\n case CacheAccountType.MSSTS_ACCOUNT_TYPE:\r\n return CacheType.MSSTS;\r\n case CacheAccountType.GENERIC_ACCOUNT_TYPE:\r\n return CacheType.GENERIC;\r\n default: {\r\n throw ClientAuthError.createUnexpectedAccountTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the AccountInfo interface for this account.\r\n */\r\n AccountEntity.prototype.getAccountInfo = function () {\r\n return {\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId,\r\n name: this.name,\r\n idTokenClaims: this.idTokenClaims,\r\n nativeAccountId: this.nativeAccountId\r\n };\r\n };\r\n /**\r\n * Generates account key from interface\r\n * @param accountInterface\r\n */\r\n AccountEntity.generateAccountCacheKey = function (accountInterface) {\r\n var accountKey = [\r\n accountInterface.homeAccountId,\r\n accountInterface.environment || Constants.EMPTY_STRING,\r\n accountInterface.tenantId || Constants.EMPTY_STRING,\r\n ];\r\n return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\r\n * @param clientInfo\r\n * @param authority\r\n * @param idToken\r\n * @param policy\r\n */\r\n AccountEntity.createAccount = function (clientInfo, homeAccountId, idToken, authority, cloudGraphHostName, msGraphHost, environment, nativeAccountId) {\r\n var _a, _b, _c, _d, _e, _f;\r\n var account = new AccountEntity();\r\n account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\r\n account.clientInfo = clientInfo;\r\n account.homeAccountId = homeAccountId;\r\n account.nativeAccountId = nativeAccountId;\r\n var env = environment || (authority && authority.getPreferredCache());\r\n if (!env) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n account.environment = env;\r\n // non AAD scenarios can have empty realm\r\n account.realm = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.tid) || Constants.EMPTY_STRING;\r\n if (idToken) {\r\n account.idTokenClaims = idToken.claims;\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.oid) || ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.sub) || Constants.EMPTY_STRING;\r\n /*\r\n * In B2C scenarios the emails claim is used instead of preferred_username and it is an array.\r\n * In most cases it will contain a single email. This field should not be relied upon if a custom\r\n * policy is configured to return more than 1 email.\r\n */\r\n var preferredUsername = (_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.preferred_username;\r\n var email = ((_e = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _e === void 0 ? void 0 : _e.emails) ? idToken.claims.emails[0] : null;\r\n account.username = preferredUsername || email || Constants.EMPTY_STRING;\r\n account.name = (_f = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _f === void 0 ? void 0 : _f.name;\r\n }\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n return account;\r\n };\r\n /**\r\n * Builds non-AAD/ADFS account.\r\n * @param authority\r\n * @param idToken\r\n */\r\n AccountEntity.createGenericAccount = function (homeAccountId, idToken, authority, cloudGraphHostName, msGraphHost, environment) {\r\n var _a, _b, _c, _d;\r\n var account = new AccountEntity();\r\n account.authorityType = (authority &&\r\n authority.authorityType === AuthorityType.Adfs) ? CacheAccountType.ADFS_ACCOUNT_TYPE : CacheAccountType.GENERIC_ACCOUNT_TYPE;\r\n account.homeAccountId = homeAccountId;\r\n // non AAD scenarios can have empty realm\r\n account.realm = Constants.EMPTY_STRING;\r\n var env = environment || authority && authority.getPreferredCache();\r\n if (!env) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n if (idToken) {\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.oid) || ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.sub) || Constants.EMPTY_STRING;\r\n // upn claim for most ADFS scenarios\r\n account.username = ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.upn) || Constants.EMPTY_STRING;\r\n account.name = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.name) || Constants.EMPTY_STRING;\r\n account.idTokenClaims = idToken === null || idToken === void 0 ? void 0 : idToken.claims;\r\n }\r\n account.environment = env;\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n /*\r\n * add uniqueName to claims\r\n * account.name = idToken.claims.uniqueName;\r\n */\r\n return account;\r\n };\r\n /**\r\n * Generate HomeAccountId from server response\r\n * @param serverClientInfo\r\n * @param authType\r\n */\r\n AccountEntity.generateHomeAccountId = function (serverClientInfo, authType, logger, cryptoObj, idToken) {\r\n var _a;\r\n var accountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.sub) ? idToken.claims.sub : Constants.EMPTY_STRING;\r\n // since ADFS does not have tid and does not set client_info\r\n if (authType === AuthorityType.Adfs || authType === AuthorityType.Dsts) {\r\n return accountId;\r\n }\r\n // for cases where there is clientInfo\r\n if (serverClientInfo) {\r\n try {\r\n var clientInfo = buildClientInfo(serverClientInfo, cryptoObj);\r\n if (!StringUtils.isEmpty(clientInfo.uid) && !StringUtils.isEmpty(clientInfo.utid)) {\r\n return \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid;\r\n }\r\n }\r\n catch (e) { }\r\n }\r\n // default to \"sub\" claim\r\n logger.verbose(\"No client info in response\");\r\n return accountId;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccountEntity.isAccountEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"localAccountId\") &&\r\n entity.hasOwnProperty(\"username\") &&\r\n entity.hasOwnProperty(\"authorityType\"));\r\n };\r\n /**\r\n * Helper function to determine whether 2 accountInfo objects represent the same account\r\n * @param accountA\r\n * @param accountB\r\n * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality\r\n */\r\n AccountEntity.accountInfoIsEqual = function (accountA, accountB, compareClaims) {\r\n if (!accountA || !accountB) {\r\n return false;\r\n }\r\n var claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false\r\n if (compareClaims) {\r\n var accountAClaims = (accountA.idTokenClaims || {});\r\n var accountBClaims = (accountB.idTokenClaims || {});\r\n // issued at timestamp and nonce are expected to change each time a new id token is acquired\r\n claimsMatch = (accountAClaims.iat === accountBClaims.iat) &&\r\n (accountAClaims.nonce === accountBClaims.nonce);\r\n }\r\n return (accountA.homeAccountId === accountB.homeAccountId) &&\r\n (accountA.localAccountId === accountB.localAccountId) &&\r\n (accountA.username === accountB.username) &&\r\n (accountA.tenantId === accountB.tenantId) &&\r\n (accountA.environment === accountB.environment) &&\r\n (accountA.nativeAccountId === accountB.nativeAccountId) &&\r\n claimsMatch;\r\n };\r\n return AccountEntity;\r\n}());\n\nexport { AccountEntity };\n//# sourceMappingURL=AccountEntity.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * JWT Token representation class. Parses token string and generates claims object.\r\n */\r\nvar AuthToken = /** @class */ (function () {\r\n function AuthToken(rawToken, crypto) {\r\n if (StringUtils.isEmpty(rawToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(rawToken);\r\n }\r\n this.rawToken = rawToken;\r\n this.claims = AuthToken.extractTokenClaims(rawToken, crypto);\r\n }\r\n /**\r\n * Extract token by decoding the rawToken\r\n *\r\n * @param encodedToken\r\n */\r\n AuthToken.extractTokenClaims = function (encodedToken, crypto) {\r\n var decodedToken = StringUtils.decodeAuthToken(encodedToken);\r\n // token will be decoded to get the username\r\n try {\r\n var base64TokenPayload = decodedToken.JWSPayload;\r\n // base64Decode() should throw an error if there is an issue\r\n var base64Decoded = crypto.base64Decode(base64TokenPayload);\r\n return JSON.parse(base64Decoded);\r\n }\r\n catch (err) {\r\n throw ClientAuthError.createTokenParsingError(err);\r\n }\r\n };\r\n /**\r\n * Determine if the token's max_age has transpired\r\n */\r\n AuthToken.checkMaxAge = function (authTime, maxAge) {\r\n /*\r\n * per https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest\r\n * To force an immediate re-authentication: If an app requires that a user re-authenticate prior to access,\r\n * provide a value of 0 for the max_age parameter and the AS will force a fresh login.\r\n */\r\n var fiveMinuteSkew = 300000; // five minutes in milliseconds\r\n if ((maxAge === 0) || ((Date.now() - fiveMinuteSkew) > (authTime + maxAge))) {\r\n throw ClientAuthError.createMaxAgeTranspiredError();\r\n }\r\n };\r\n return AuthToken;\r\n}());\n\nexport { AuthToken };\n//# sourceMappingURL=AuthToken.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator, __assign, __extends } from '../_virtual/_tslib.js';\nimport { Separators, CredentialType, AuthenticationScheme, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS } from '../utils/Constants.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from './entities/AccountEntity.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { name, version } from '../packageMetadata.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.\r\n */\r\nvar CacheManager = /** @class */ (function () {\r\n function CacheManager(clientId, cryptoImpl, logger) {\r\n this.clientId = clientId;\r\n this.cryptoImpl = cryptoImpl;\r\n this.commonLogger = logger.clone(name, version);\r\n }\r\n /**\r\n * Returns all accounts in cache\r\n */\r\n CacheManager.prototype.getAllAccounts = function () {\r\n var _this = this;\r\n var allAccountKeys = this.getAccountKeys();\r\n if (allAccountKeys.length < 1) {\r\n return [];\r\n }\r\n var accountEntities = allAccountKeys.reduce(function (accounts, key) {\r\n var entity = _this.getAccount(key);\r\n if (!entity) {\r\n return accounts;\r\n }\r\n accounts.push(entity);\r\n return accounts;\r\n }, []);\r\n if (accountEntities.length < 1) {\r\n return [];\r\n }\r\n else {\r\n var allAccounts = accountEntities.map(function (accountEntity) {\r\n return _this.getAccountInfoFromEntity(accountEntity);\r\n });\r\n return allAccounts;\r\n }\r\n };\r\n /**\r\n * Gets accountInfo object based on provided filters\r\n */\r\n CacheManager.prototype.getAccountInfoFilteredBy = function (accountFilter) {\r\n var allAccounts = this.getAccountsFilteredBy(accountFilter);\r\n if (allAccounts.length > 0) {\r\n return this.getAccountInfoFromEntity(allAccounts[0]);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n CacheManager.prototype.getAccountInfoFromEntity = function (accountEntity) {\r\n var accountInfo = accountEntity.getAccountInfo();\r\n var idToken = this.getIdToken(accountInfo);\r\n if (idToken) {\r\n accountInfo.idToken = idToken.secret;\r\n accountInfo.idTokenClaims = new AuthToken(idToken.secret, this.cryptoImpl).claims;\r\n }\r\n return accountInfo;\r\n };\r\n /**\r\n * saves a cache record\r\n * @param cacheRecord\r\n */\r\n CacheManager.prototype.saveCacheRecord = function (cacheRecord) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!cacheRecord) {\r\n throw ClientAuthError.createNullOrUndefinedCacheRecord();\r\n }\r\n if (!!cacheRecord.account) {\r\n this.setAccount(cacheRecord.account);\r\n }\r\n if (!!cacheRecord.idToken) {\r\n this.setIdTokenCredential(cacheRecord.idToken);\r\n }\r\n if (!!!cacheRecord.accessToken) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.saveAccessToken(cacheRecord.accessToken)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n if (!!cacheRecord.refreshToken) {\r\n this.setRefreshTokenCredential(cacheRecord.refreshToken);\r\n }\r\n if (!!cacheRecord.appMetadata) {\r\n this.setAppMetadata(cacheRecord.appMetadata);\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * saves access token credential\r\n * @param credential\r\n */\r\n CacheManager.prototype.saveAccessToken = function (credential) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var accessTokenFilter, tokenKeys, currentScopes, removedAccessTokens;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n accessTokenFilter = {\r\n clientId: credential.clientId,\r\n credentialType: credential.credentialType,\r\n environment: credential.environment,\r\n homeAccountId: credential.homeAccountId,\r\n realm: credential.realm,\r\n tokenType: credential.tokenType,\r\n requestedClaimsHash: credential.requestedClaimsHash\r\n };\r\n tokenKeys = this.getTokenKeys();\r\n currentScopes = ScopeSet.fromString(credential.target);\r\n removedAccessTokens = [];\r\n tokenKeys.accessToken.forEach(function (key) {\r\n if (!_this.accessTokenKeyMatchesFilter(key, accessTokenFilter, false)) {\r\n return;\r\n }\r\n var tokenEntity = _this.getAccessTokenCredential(key);\r\n if (tokenEntity && _this.credentialMatchesFilter(tokenEntity, accessTokenFilter)) {\r\n var tokenScopeSet = ScopeSet.fromString(tokenEntity.target);\r\n if (tokenScopeSet.intersectingScopeSets(currentScopes)) {\r\n removedAccessTokens.push(_this.removeAccessToken(key));\r\n }\r\n }\r\n });\r\n return [4 /*yield*/, Promise.all(removedAccessTokens)];\r\n case 1:\r\n _a.sent();\r\n this.setAccessTokenCredential(credential);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param homeAccountId\r\n * @param environment\r\n * @param realm\r\n */\r\n CacheManager.prototype.getAccountsFilteredBy = function (accountFilter) {\r\n var _this = this;\r\n var allAccountKeys = this.getAccountKeys();\r\n var matchingAccounts = [];\r\n allAccountKeys.forEach(function (cacheKey) {\r\n if (!_this.isAccountKey(cacheKey, accountFilter.homeAccountId, accountFilter.realm)) {\r\n // Don't parse value if the key doesn't match the account filters\r\n return;\r\n }\r\n var entity = _this.getAccount(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!accountFilter.homeAccountId && !_this.matchHomeAccountId(entity, accountFilter.homeAccountId)) {\r\n return;\r\n }\r\n if (!!accountFilter.localAccountId && !_this.matchLocalAccountId(entity, accountFilter.localAccountId)) {\r\n return;\r\n }\r\n if (!!accountFilter.username && !_this.matchUsername(entity, accountFilter.username)) {\r\n return;\r\n }\r\n if (!!accountFilter.environment && !_this.matchEnvironment(entity, accountFilter.environment)) {\r\n return;\r\n }\r\n if (!!accountFilter.realm && !_this.matchRealm(entity, accountFilter.realm)) {\r\n return;\r\n }\r\n if (!!accountFilter.nativeAccountId && !_this.matchNativeAccountId(entity, accountFilter.nativeAccountId)) {\r\n return;\r\n }\r\n matchingAccounts.push(entity);\r\n });\r\n return matchingAccounts;\r\n };\r\n /**\r\n * Returns true if the given key matches our account key schema. Also matches homeAccountId and/or tenantId if provided\r\n * @param key\r\n * @param homeAccountId\r\n * @param tenantId\r\n * @returns\r\n */\r\n CacheManager.prototype.isAccountKey = function (key, homeAccountId, tenantId) {\r\n if (key.split(Separators.CACHE_KEY_SEPARATOR).length < 3) {\r\n // Account cache keys contain 3 items separated by '-' (each item may also contain '-')\r\n return false;\r\n }\r\n if (homeAccountId && !key.toLowerCase().includes(homeAccountId.toLowerCase())) {\r\n return false;\r\n }\r\n if (tenantId && !key.toLowerCase().includes(tenantId.toLowerCase())) {\r\n return false;\r\n }\r\n // Do not check environment as aliasing can cause false negatives\r\n return true;\r\n };\r\n /**\r\n * Returns true if the given key matches our credential key schema.\r\n * @param key\r\n */\r\n CacheManager.prototype.isCredentialKey = function (key) {\r\n if (key.split(Separators.CACHE_KEY_SEPARATOR).length < 6) {\r\n // Credential cache keys contain 6 items separated by '-' (each item may also contain '-')\r\n return false;\r\n }\r\n var lowerCaseKey = key.toLowerCase();\r\n // Credential keys must indicate what credential type they represent\r\n if (lowerCaseKey.indexOf(CredentialType.ID_TOKEN.toLowerCase()) === -1 &&\r\n lowerCaseKey.indexOf(CredentialType.ACCESS_TOKEN.toLowerCase()) === -1 &&\r\n lowerCaseKey.indexOf(CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()) === -1 &&\r\n lowerCaseKey.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (lowerCaseKey.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) > -1) {\r\n // Refresh tokens must contain the client id or family id\r\n var clientIdValidation = \"\" + CredentialType.REFRESH_TOKEN + Separators.CACHE_KEY_SEPARATOR + this.clientId + Separators.CACHE_KEY_SEPARATOR;\r\n var familyIdValidation = \"\" + CredentialType.REFRESH_TOKEN + Separators.CACHE_KEY_SEPARATOR + THE_FAMILY_ID + Separators.CACHE_KEY_SEPARATOR;\r\n if (lowerCaseKey.indexOf(clientIdValidation.toLowerCase()) === -1 && lowerCaseKey.indexOf(familyIdValidation.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n }\r\n else if (lowerCaseKey.indexOf(this.clientId.toLowerCase()) === -1) {\r\n // Tokens must contain the clientId\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Returns whether or not the given credential entity matches the filter\r\n * @param entity\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.credentialMatchesFilter = function (entity, filter) {\r\n if (!!filter.clientId && !this.matchClientId(entity, filter.clientId)) {\r\n return false;\r\n }\r\n if (!!filter.userAssertionHash && !this.matchUserAssertionHash(entity, filter.userAssertionHash)) {\r\n return false;\r\n }\r\n /*\r\n * homeAccountId can be undefined, and we want to filter out cached items that have a homeAccountId of \"\"\r\n * because we don't want a client_credential request to return a cached token that has a homeAccountId\r\n */\r\n if ((typeof filter.homeAccountId === \"string\") && !this.matchHomeAccountId(entity, filter.homeAccountId)) {\r\n return false;\r\n }\r\n if (!!filter.environment && !this.matchEnvironment(entity, filter.environment)) {\r\n return false;\r\n }\r\n if (!!filter.realm && !this.matchRealm(entity, filter.realm)) {\r\n return false;\r\n }\r\n if (!!filter.credentialType && !this.matchCredentialType(entity, filter.credentialType)) {\r\n return false;\r\n }\r\n if (!!filter.familyId && !this.matchFamilyId(entity, filter.familyId)) {\r\n return false;\r\n }\r\n /*\r\n * idTokens do not have \"target\", target specific refreshTokens do exist for some types of authentication\r\n * Resource specific refresh tokens case will be added when the support is deemed necessary\r\n */\r\n if (!!filter.target && !this.matchTarget(entity, filter.target)) {\r\n return false;\r\n }\r\n // If request OR cached entity has requested Claims Hash, check if they match\r\n if (filter.requestedClaimsHash || entity.requestedClaimsHash) {\r\n // Don't match if either is undefined or they are different\r\n if (entity.requestedClaimsHash !== filter.requestedClaimsHash) {\r\n return false;\r\n }\r\n }\r\n // Access Token with Auth Scheme specific matching\r\n if (entity.credentialType === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME) {\r\n if (!!filter.tokenType && !this.matchTokenType(entity, filter.tokenType)) {\r\n return false;\r\n }\r\n // KeyId (sshKid) in request must match cached SSH certificate keyId because SSH cert is bound to a specific key\r\n if (filter.tokenType === AuthenticationScheme.SSH) {\r\n if (filter.keyId && !this.matchKeyId(entity, filter.keyId)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredBy = function (filter) {\r\n return this.getAppMetadataFilteredByInternal(filter.environment, filter.clientId);\r\n };\r\n /**\r\n * Support function to help match appMetadata\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredByInternal = function (environment, clientId) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingAppMetadata = {};\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-appMetadata type cache entities\r\n if (!_this.isAppMetadata(cacheKey)) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAppMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n return;\r\n }\r\n matchingAppMetadata[cacheKey] = entity;\r\n });\r\n return matchingAppMetadata;\r\n };\r\n /**\r\n * retrieve authorityMetadata that contains a matching alias\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAuthorityMetadataByAlias = function (host) {\r\n var _this = this;\r\n var allCacheKeys = this.getAuthorityMetadataKeys();\r\n var matchedEntity = null;\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-authorityMetadata type cache entities\r\n if (!_this.isAuthorityMetadata(cacheKey) || cacheKey.indexOf(_this.clientId) === -1) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAuthorityMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (entity.aliases.indexOf(host) === -1) {\r\n return;\r\n }\r\n matchedEntity = entity;\r\n });\r\n return matchedEntity;\r\n };\r\n /**\r\n * Removes all accounts and related tokens from cache.\r\n */\r\n CacheManager.prototype.removeAllAccounts = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allAccountKeys, removedAccounts;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n allAccountKeys = this.getAccountKeys();\r\n removedAccounts = [];\r\n allAccountKeys.forEach(function (cacheKey) {\r\n removedAccounts.push(_this.removeAccount(cacheKey));\r\n });\r\n return [4 /*yield*/, Promise.all(removedAccounts)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes the account and related tokens for a given account key\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccount = function (accountKey) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var account;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n account = this.getAccount(accountKey);\r\n if (!account) {\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n return [4 /*yield*/, this.removeAccountContext(account)];\r\n case 1:\r\n _a.sent();\r\n this.removeItem(accountKey);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes credentials associated with the provided account\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccountContext = function (account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allTokenKeys, accountId, removedCredentials;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n allTokenKeys = this.getTokenKeys();\r\n accountId = account.generateAccountId();\r\n removedCredentials = [];\r\n allTokenKeys.idToken.forEach(function (key) {\r\n if (key.indexOf(accountId) === 0) {\r\n _this.removeIdToken(key);\r\n }\r\n });\r\n allTokenKeys.accessToken.forEach(function (key) {\r\n if (key.indexOf(accountId) === 0) {\r\n removedCredentials.push(_this.removeAccessToken(key));\r\n }\r\n });\r\n allTokenKeys.refreshToken.forEach(function (key) {\r\n if (key.indexOf(accountId) === 0) {\r\n _this.removeRefreshToken(key);\r\n }\r\n });\r\n return [4 /*yield*/, Promise.all(removedCredentials)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * returns a boolean if the given credential is removed\r\n * @param credential\r\n */\r\n CacheManager.prototype.removeAccessToken = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var credential, accessTokenWithAuthSchemeEntity, kid;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n credential = this.getAccessTokenCredential(key);\r\n if (!credential) {\r\n return [2 /*return*/];\r\n }\r\n if (!(credential.credentialType.toLowerCase() === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())) return [3 /*break*/, 4];\r\n if (!(credential.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 4];\r\n accessTokenWithAuthSchemeEntity = credential;\r\n kid = accessTokenWithAuthSchemeEntity.keyId;\r\n if (!kid) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.cryptoImpl.removeTokenBindingKey(kid)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n throw ClientAuthError.createBindingKeyNotRemovedError();\r\n case 4: return [2 /*return*/, this.removeItem(key)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes all app metadata objects from cache.\r\n */\r\n CacheManager.prototype.removeAppMetadata = function () {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n allCacheKeys.forEach(function (cacheKey) {\r\n if (_this.isAppMetadata(cacheKey)) {\r\n _this.removeItem(cacheKey);\r\n }\r\n });\r\n return true;\r\n };\r\n /**\r\n * Retrieve the cached credentials into a cacherecord\r\n * @param account\r\n * @param clientId\r\n * @param scopes\r\n * @param environment\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.readCacheRecord = function (account, request, environment) {\r\n var tokenKeys = this.getTokenKeys();\r\n var cachedAccount = this.readAccountFromCache(account);\r\n var cachedIdToken = this.getIdToken(account, tokenKeys);\r\n var cachedAccessToken = this.getAccessToken(account, request, tokenKeys);\r\n var cachedRefreshToken = this.getRefreshToken(account, false, tokenKeys);\r\n var cachedAppMetadata = this.readAppMetadataFromCache(environment);\r\n if (cachedAccount && cachedIdToken) {\r\n cachedAccount.idTokenClaims = new AuthToken(cachedIdToken.secret, this.cryptoImpl).claims;\r\n }\r\n return {\r\n account: cachedAccount,\r\n idToken: cachedIdToken,\r\n accessToken: cachedAccessToken,\r\n refreshToken: cachedRefreshToken,\r\n appMetadata: cachedAppMetadata,\r\n };\r\n };\r\n /**\r\n * Retrieve AccountEntity from cache\r\n * @param account\r\n */\r\n CacheManager.prototype.readAccountFromCache = function (account) {\r\n var accountKey = AccountEntity.generateAccountCacheKey(account);\r\n return this.getAccount(accountKey);\r\n };\r\n /**\r\n * Retrieve IdTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param inputRealm\r\n */\r\n CacheManager.prototype.getIdToken = function (account, tokenKeys) {\r\n this.commonLogger.trace(\"CacheManager - getIdToken called\");\r\n var idTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.ID_TOKEN,\r\n clientId: this.clientId,\r\n realm: account.tenantId,\r\n };\r\n var idTokens = this.getIdTokensByFilter(idTokenFilter, tokenKeys);\r\n var numIdTokens = idTokens.length;\r\n if (numIdTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getIdToken - No token found\");\r\n return null;\r\n }\r\n else if (numIdTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n this.commonLogger.info(\"CacheManager:getIdToken - Returning id token\");\r\n return idTokens[0];\r\n };\r\n /**\r\n * Gets all idTokens matching the given filter\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.getIdTokensByFilter = function (filter, tokenKeys) {\r\n var _this = this;\r\n var idTokenKeys = tokenKeys && tokenKeys.idToken || this.getTokenKeys().idToken;\r\n var idTokens = [];\r\n idTokenKeys.forEach(function (key) {\r\n if (!_this.idTokenKeyMatchesFilter(key, __assign({ clientId: _this.clientId }, filter))) {\r\n return;\r\n }\r\n var idToken = _this.getIdTokenCredential(key);\r\n if (idToken && _this.credentialMatchesFilter(idToken, filter)) {\r\n idTokens.push(idToken);\r\n }\r\n });\r\n return idTokens;\r\n };\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.idTokenKeyMatchesFilter = function (inputKey, filter) {\r\n var key = inputKey.toLowerCase();\r\n if (filter.clientId && key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId && key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Removes idToken from the cache\r\n * @param key\r\n */\r\n CacheManager.prototype.removeIdToken = function (key) {\r\n this.removeItem(key);\r\n };\r\n /**\r\n * Removes refresh token from the cache\r\n * @param key\r\n */\r\n CacheManager.prototype.removeRefreshToken = function (key) {\r\n this.removeItem(key);\r\n };\r\n /**\r\n * Retrieve AccessTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param scopes\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.getAccessToken = function (account, request, tokenKeys) {\r\n var _this = this;\r\n this.commonLogger.trace(\"CacheManager - getAccessToken called\");\r\n var scopes = ScopeSet.createSearchScopes(request.scopes);\r\n var authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;\r\n /*\r\n * Distinguish between Bearer and PoP/SSH token cache types\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n var credentialType = (authScheme && authScheme.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;\r\n var accessTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: credentialType,\r\n clientId: this.clientId,\r\n realm: account.tenantId,\r\n target: scopes,\r\n tokenType: authScheme,\r\n keyId: request.sshKid,\r\n requestedClaimsHash: request.requestedClaimsHash,\r\n };\r\n var accessTokenKeys = tokenKeys && tokenKeys.accessToken || this.getTokenKeys().accessToken;\r\n var accessTokens = [];\r\n accessTokenKeys.forEach(function (key) {\r\n // Validate key\r\n if (_this.accessTokenKeyMatchesFilter(key, accessTokenFilter, true)) {\r\n var accessToken = _this.getAccessTokenCredential(key);\r\n // Validate value\r\n if (accessToken && _this.credentialMatchesFilter(accessToken, accessTokenFilter)) {\r\n accessTokens.push(accessToken);\r\n }\r\n }\r\n });\r\n var numAccessTokens = accessTokens.length;\r\n if (numAccessTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getAccessToken - No token found\");\r\n return null;\r\n }\r\n else if (numAccessTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n this.commonLogger.info(\"CacheManager:getAccessToken - Returning access token\");\r\n return accessTokens[0];\r\n };\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n * @param keyMustContainAllScopes\r\n * @returns\r\n */\r\n CacheManager.prototype.accessTokenKeyMatchesFilter = function (inputKey, filter, keyMustContainAllScopes) {\r\n var key = inputKey.toLowerCase();\r\n if (filter.clientId && key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId && key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.realm && key.indexOf(filter.realm.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.requestedClaimsHash && key.indexOf(filter.requestedClaimsHash.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.target) {\r\n var scopes = filter.target.asArray();\r\n for (var i = 0; i < scopes.length; i++) {\r\n if (keyMustContainAllScopes && !key.includes(scopes[i].toLowerCase())) {\r\n // When performing a cache lookup a missing scope would be a cache miss\r\n return false;\r\n }\r\n else if (!keyMustContainAllScopes && key.includes(scopes[i].toLowerCase())) {\r\n // When performing a cache write, any token with a subset of requested scopes should be replaced\r\n return true;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Gets all access tokens matching the filter\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.getAccessTokensByFilter = function (filter) {\r\n var _this = this;\r\n var tokenKeys = this.getTokenKeys();\r\n var accessTokens = [];\r\n tokenKeys.accessToken.forEach(function (key) {\r\n if (!_this.accessTokenKeyMatchesFilter(key, filter, true)) {\r\n return;\r\n }\r\n var accessToken = _this.getAccessTokenCredential(key);\r\n if (accessToken && _this.credentialMatchesFilter(accessToken, filter)) {\r\n accessTokens.push(accessToken);\r\n }\r\n });\r\n return accessTokens;\r\n };\r\n /**\r\n * Helper to retrieve the appropriate refresh token from cache\r\n * @param clientId\r\n * @param account\r\n * @param familyRT\r\n */\r\n CacheManager.prototype.getRefreshToken = function (account, familyRT, tokenKeys) {\r\n var _this = this;\r\n this.commonLogger.trace(\"CacheManager - getRefreshToken called\");\r\n var id = familyRT ? THE_FAMILY_ID : undefined;\r\n var refreshTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.REFRESH_TOKEN,\r\n clientId: this.clientId,\r\n familyId: id,\r\n };\r\n var refreshTokenKeys = tokenKeys && tokenKeys.refreshToken || this.getTokenKeys().refreshToken;\r\n var refreshTokens = [];\r\n refreshTokenKeys.forEach(function (key) {\r\n // Validate key\r\n if (_this.refreshTokenKeyMatchesFilter(key, refreshTokenFilter)) {\r\n var refreshToken = _this.getRefreshTokenCredential(key);\r\n // Validate value\r\n if (refreshToken && _this.credentialMatchesFilter(refreshToken, refreshTokenFilter)) {\r\n refreshTokens.push(refreshToken);\r\n }\r\n }\r\n });\r\n var numRefreshTokens = refreshTokens.length;\r\n if (numRefreshTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getRefreshToken - No refresh token found.\");\r\n return null;\r\n }\r\n // address the else case after remove functions address environment aliases\r\n this.commonLogger.info(\"CacheManager:getRefreshToken - returning refresh token\");\r\n return refreshTokens[0];\r\n };\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n */\r\n CacheManager.prototype.refreshTokenKeyMatchesFilter = function (inputKey, filter) {\r\n var key = inputKey.toLowerCase();\r\n if (filter.familyId && key.indexOf(filter.familyId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n // If familyId is used, clientId is not in the key\r\n if (!filter.familyId && filter.clientId && key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId && key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Retrieve AppMetadataEntity from cache\r\n */\r\n CacheManager.prototype.readAppMetadataFromCache = function (environment) {\r\n var appMetadataFilter = {\r\n environment: environment,\r\n clientId: this.clientId,\r\n };\r\n var appMetadata = this.getAppMetadataFilteredBy(appMetadataFilter);\r\n var appMetadataEntries = Object.keys(appMetadata).map(function (key) { return appMetadata[key]; });\r\n var numAppMetadata = appMetadataEntries.length;\r\n if (numAppMetadata < 1) {\r\n return null;\r\n }\r\n else if (numAppMetadata > 1) {\r\n throw ClientAuthError.createMultipleMatchingAppMetadataInCacheError();\r\n }\r\n return appMetadataEntries[0];\r\n };\r\n /**\r\n * Return the family_id value associated with FOCI\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.isAppMetadataFOCI = function (environment) {\r\n var appMetadata = this.readAppMetadataFromCache(environment);\r\n return !!(appMetadata && appMetadata.familyId === THE_FAMILY_ID);\r\n };\r\n /**\r\n * helper to match account ids\r\n * @param value\r\n * @param homeAccountId\r\n */\r\n CacheManager.prototype.matchHomeAccountId = function (entity, homeAccountId) {\r\n return !!((typeof entity.homeAccountId === \"string\") && (homeAccountId === entity.homeAccountId));\r\n };\r\n /**\r\n * helper to match account ids\r\n * @param entity\r\n * @param localAccountId\r\n * @returns\r\n */\r\n CacheManager.prototype.matchLocalAccountId = function (entity, localAccountId) {\r\n return !!((typeof entity.localAccountId === \"string\") && (localAccountId === entity.localAccountId));\r\n };\r\n /**\r\n * helper to match usernames\r\n * @param entity\r\n * @param username\r\n * @returns\r\n */\r\n CacheManager.prototype.matchUsername = function (entity, username) {\r\n return !!((typeof entity.username === \"string\") && (username.toLowerCase() === entity.username.toLowerCase()));\r\n };\r\n /**\r\n * helper to match assertion\r\n * @param value\r\n * @param oboAssertion\r\n */\r\n CacheManager.prototype.matchUserAssertionHash = function (entity, userAssertionHash) {\r\n return !!(entity.userAssertionHash && userAssertionHash === entity.userAssertionHash);\r\n };\r\n /**\r\n * helper to match environment\r\n * @param value\r\n * @param environment\r\n */\r\n CacheManager.prototype.matchEnvironment = function (entity, environment) {\r\n var cloudMetadata = this.getAuthorityMetadataByAlias(environment);\r\n if (cloudMetadata && cloudMetadata.aliases.indexOf(entity.environment) > -1) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * helper to match credential type\r\n * @param entity\r\n * @param credentialType\r\n */\r\n CacheManager.prototype.matchCredentialType = function (entity, credentialType) {\r\n return (entity.credentialType && credentialType.toLowerCase() === entity.credentialType.toLowerCase());\r\n };\r\n /**\r\n * helper to match client ids\r\n * @param entity\r\n * @param clientId\r\n */\r\n CacheManager.prototype.matchClientId = function (entity, clientId) {\r\n return !!(entity.clientId && clientId === entity.clientId);\r\n };\r\n /**\r\n * helper to match family ids\r\n * @param entity\r\n * @param familyId\r\n */\r\n CacheManager.prototype.matchFamilyId = function (entity, familyId) {\r\n return !!(entity.familyId && familyId === entity.familyId);\r\n };\r\n /**\r\n * helper to match realm\r\n * @param entity\r\n * @param realm\r\n */\r\n CacheManager.prototype.matchRealm = function (entity, realm) {\r\n return !!(entity.realm && realm === entity.realm);\r\n };\r\n /**\r\n * helper to match nativeAccountId\r\n * @param entity\r\n * @param nativeAccountId\r\n * @returns boolean indicating the match result\r\n */\r\n CacheManager.prototype.matchNativeAccountId = function (entity, nativeAccountId) {\r\n return !!(entity.nativeAccountId && nativeAccountId === entity.nativeAccountId);\r\n };\r\n /**\r\n * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.\r\n * @param entity\r\n * @param target\r\n */\r\n CacheManager.prototype.matchTarget = function (entity, target) {\r\n var isNotAccessTokenCredential = (entity.credentialType !== CredentialType.ACCESS_TOKEN && entity.credentialType !== CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME);\r\n if (isNotAccessTokenCredential || !entity.target) {\r\n return false;\r\n }\r\n var entityScopeSet = ScopeSet.fromString(entity.target);\r\n return entityScopeSet.containsScopeSet(target);\r\n };\r\n /**\r\n * Returns true if the credential's tokenType or Authentication Scheme matches the one in the request, false otherwise\r\n * @param entity\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.matchTokenType = function (entity, tokenType) {\r\n return !!(entity.tokenType && entity.tokenType === tokenType);\r\n };\r\n /**\r\n * Returns true if the credential's keyId matches the one in the request, false otherwise\r\n * @param entity\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.matchKeyId = function (entity, keyId) {\r\n return !!(entity.keyId && entity.keyId === keyId);\r\n };\r\n /**\r\n * returns if a given cache entity is of the type appmetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAppMetadata = function (key) {\r\n return key.indexOf(APP_METADATA) !== -1;\r\n };\r\n /**\r\n * returns if a given cache entity is of the type authoritymetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAuthorityMetadata = function (key) {\r\n return key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) !== -1;\r\n };\r\n /**\r\n * returns cache key used for cloud instance metadata\r\n */\r\n CacheManager.prototype.generateAuthorityMetadataCacheKey = function (authority) {\r\n return AUTHORITY_METADATA_CONSTANTS.CACHE_KEY + \"-\" + this.clientId + \"-\" + authority;\r\n };\r\n /**\r\n * Helper to convert serialized data to object\r\n * @param obj\r\n * @param json\r\n */\r\n CacheManager.toObject = function (obj, json) {\r\n for (var propertyName in json) {\r\n obj[propertyName] = json[propertyName];\r\n }\r\n return obj;\r\n };\r\n return CacheManager;\r\n}());\r\nvar DefaultStorageClass = /** @class */ (function (_super) {\r\n __extends(DefaultStorageClass, _super);\r\n function DefaultStorageClass() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DefaultStorageClass.prototype.setAccount = function () {\r\n var notImplErr = \"Storage interface - setAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccount = function () {\r\n var notImplErr = \"Storage interface - getAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAppMetadata = function () {\r\n var notImplErr = \"Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAppMetadata = function () {\r\n var notImplErr = \"Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadataKeys = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.removeItem = function () {\r\n var notImplErr = \"Storage interface - removeItem() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.containsKey = function () {\r\n var notImplErr = \"Storage interface - containsKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getKeys = function () {\r\n var notImplErr = \"Storage interface - getKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccountKeys = function () {\r\n var notImplErr = \"Storage interface - getAccountKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getTokenKeys = function () {\r\n var notImplErr = \"Storage interface - getTokenKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Storage interface - clear() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n };\r\n DefaultStorageClass.prototype.updateCredentialCacheKey = function () {\r\n var notImplErr = \"Storage interface - updateCredentialCacheKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n return DefaultStorageClass;\r\n}(CacheManager));\n\nexport { CacheManager, DefaultStorageClass };\n//# sourceMappingURL=CacheManager.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __assign, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { Logger, LogLevel } from '../logger/Logger.js';\nimport { Constants } from '../utils/Constants.js';\nimport { version } from '../packageMetadata.js';\nimport { AzureCloudInstance } from '../authority/AuthorityOptions.js';\nimport { DefaultStorageClass } from '../cache/CacheManager.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Token renewal offset default in seconds\r\nvar DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;\r\nvar DEFAULT_SYSTEM_OPTIONS = {\r\n tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,\r\n preventCorsPreflight: false\r\n};\r\nvar DEFAULT_LOGGER_IMPLEMENTATION = {\r\n loggerCallback: function () {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info,\r\n correlationId: Constants.EMPTY_STRING\r\n};\r\nvar DEFAULT_NETWORK_IMPLEMENTATION = {\r\n sendGetRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n sendPostRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\r\nvar DEFAULT_LIBRARY_INFO = {\r\n sku: Constants.SKU,\r\n version: version,\r\n cpu: Constants.EMPTY_STRING,\r\n os: Constants.EMPTY_STRING\r\n};\r\nvar DEFAULT_CLIENT_CREDENTIALS = {\r\n clientSecret: Constants.EMPTY_STRING,\r\n clientAssertion: undefined\r\n};\r\nvar DEFAULT_AZURE_CLOUD_OPTIONS = {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: \"\" + Constants.DEFAULT_COMMON_TENANT\r\n};\r\nvar DEFAULT_TELEMETRY_OPTIONS = {\r\n application: {\r\n appName: \"\",\r\n appVersion: \"\"\r\n }\r\n};\r\n/**\r\n * Function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param Configuration\r\n *\r\n * @returns Configuration\r\n */\r\nfunction buildClientConfiguration(_a) {\r\n var userAuthOptions = _a.authOptions, userSystemOptions = _a.systemOptions, userLoggerOption = _a.loggerOptions, storageImplementation = _a.storageInterface, networkImplementation = _a.networkInterface, cryptoImplementation = _a.cryptoInterface, clientCredentials = _a.clientCredentials, libraryInfo = _a.libraryInfo, telemetry = _a.telemetry, serverTelemetryManager = _a.serverTelemetryManager, persistencePlugin = _a.persistencePlugin, serializableCache = _a.serializableCache;\r\n var loggerOptions = __assign(__assign({}, DEFAULT_LOGGER_IMPLEMENTATION), userLoggerOption);\r\n return {\r\n authOptions: buildAuthOptions(userAuthOptions),\r\n systemOptions: __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), userSystemOptions),\r\n loggerOptions: loggerOptions,\r\n storageInterface: storageImplementation || new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),\r\n networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,\r\n cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,\r\n clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,\r\n libraryInfo: __assign(__assign({}, DEFAULT_LIBRARY_INFO), libraryInfo),\r\n telemetry: __assign(__assign({}, DEFAULT_TELEMETRY_OPTIONS), telemetry),\r\n serverTelemetryManager: serverTelemetryManager || null,\r\n persistencePlugin: persistencePlugin || null,\r\n serializableCache: serializableCache || null,\r\n };\r\n}\r\n/**\r\n * Construct authoptions from the client and platform passed values\r\n * @param authOptions\r\n */\r\nfunction buildAuthOptions(authOptions) {\r\n return __assign({ clientCapabilities: [], azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS, skipAuthorityMetadataCache: false }, authOptions);\r\n}\n\nexport { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration };\n//# sourceMappingURL=ClientConfiguration.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Error thrown when there is an error with the server code, for example, unavailability.\r\n */\r\nvar ServerError = /** @class */ (function (_super) {\r\n __extends(ServerError, _super);\r\n function ServerError(errorCode, errorMessage, subError) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n _this.name = \"ServerError\";\r\n Object.setPrototypeOf(_this, ServerError.prototype);\r\n return _this;\r\n }\r\n return ServerError;\r\n}(AuthError));\n\nexport { ServerError };\n//# sourceMappingURL=ServerError.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { ThrottlingConstants, Constants, HeaderNames } from '../utils/Constants.js';\nimport { ServerError } from '../error/ServerError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingUtils = /** @class */ (function () {\r\n function ThrottlingUtils() {\r\n }\r\n /**\r\n * Prepares a RequestThumbprint to be stored as a key.\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.generateThrottlingStorageKey = function (thumbprint) {\r\n return ThrottlingConstants.THROTTLING_PREFIX + \".\" + JSON.stringify(thumbprint);\r\n };\r\n /**\r\n * Performs necessary throttling checks before a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.preProcess = function (cacheManager, thumbprint) {\r\n var _a;\r\n var key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\r\n var value = cacheManager.getThrottlingCache(key);\r\n if (value) {\r\n if (value.throttleTime < Date.now()) {\r\n cacheManager.removeItem(key);\r\n return;\r\n }\r\n throw new ServerError(((_a = value.errorCodes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || Constants.EMPTY_STRING, value.errorMessage, value.subError);\r\n }\r\n };\r\n /**\r\n * Performs necessary throttling checks after a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n * @param response\r\n */\r\n ThrottlingUtils.postProcess = function (cacheManager, thumbprint, response) {\r\n if (ThrottlingUtils.checkResponseStatus(response) || ThrottlingUtils.checkResponseForRetryAfter(response)) {\r\n var thumbprintValue = {\r\n throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\r\n error: response.body.error,\r\n errorCodes: response.body.error_codes,\r\n errorMessage: response.body.error_description,\r\n subError: response.body.suberror\r\n };\r\n cacheManager.setThrottlingCache(ThrottlingUtils.generateThrottlingStorageKey(thumbprint), thumbprintValue);\r\n }\r\n };\r\n /**\r\n * Checks a NetworkResponse object's status codes against 429 or 5xx\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseStatus = function (response) {\r\n return response.status === 429 || response.status >= 500 && response.status < 600;\r\n };\r\n /**\r\n * Checks a NetworkResponse object's RetryAfter header\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseForRetryAfter = function (response) {\r\n if (response.headers) {\r\n return response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) && (response.status < 200 || response.status >= 300);\r\n }\r\n return false;\r\n };\r\n /**\r\n * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\r\n * @param throttleTime\r\n */\r\n ThrottlingUtils.calculateThrottleTime = function (throttleTime) {\r\n var time = throttleTime <= 0 ? 0 : throttleTime;\r\n var currentSeconds = Date.now() / 1000;\r\n return Math.floor(Math.min(currentSeconds + (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS), currentSeconds + ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS) * 1000);\r\n };\r\n ThrottlingUtils.removeThrottle = function (cacheManager, clientId, request, homeAccountIdentifier) {\r\n var thumbprint = {\r\n clientId: clientId,\r\n authority: request.authority,\r\n scopes: request.scopes,\r\n homeAccountIdentifier: homeAccountIdentifier,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n var key = this.generateThrottlingStorageKey(thumbprint);\r\n cacheManager.removeItem(key);\r\n };\r\n return ThrottlingUtils;\r\n}());\n\nexport { ThrottlingUtils };\n//# sourceMappingURL=ThrottlingUtils.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { ThrottlingUtils } from './ThrottlingUtils.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NetworkManager = /** @class */ (function () {\r\n function NetworkManager(networkClient, cacheManager) {\r\n this.networkClient = networkClient;\r\n this.cacheManager = cacheManager;\r\n }\r\n /**\r\n * Wraps sendPostRequestAsync with necessary preflight and postflight logic\r\n * @param thumbprint\r\n * @param tokenEndpoint\r\n * @param options\r\n */\r\n NetworkManager.prototype.sendPostRequest = function (thumbprint, tokenEndpoint, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkClient.sendPostRequestAsync(tokenEndpoint, options)];\r\n case 2:\r\n response = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n throw e_1;\r\n }\r\n else {\r\n throw ClientAuthError.createNetworkError(tokenEndpoint, e_1);\r\n }\r\n case 4:\r\n ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n return NetworkManager;\r\n}());\n\nexport { NetworkManager };\n//# sourceMappingURL=NetworkManager.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CcsCredentialType;\r\n(function (CcsCredentialType) {\r\n CcsCredentialType[\"HOME_ACCOUNT_ID\"] = \"home_account_id\";\r\n CcsCredentialType[\"UPN\"] = \"UPN\";\r\n})(CcsCredentialType || (CcsCredentialType = {}));\n\nexport { CcsCredentialType };\n//# sourceMappingURL=CcsCredential.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { CodeChallengeMethodValues, PromptValue } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Validates server consumable params from the \"request\" objects\r\n */\r\nvar RequestValidator = /** @class */ (function () {\r\n function RequestValidator() {\r\n }\r\n /**\r\n * Utility to check if the `redirectUri` in the request is a non-null value\r\n * @param redirectUri\r\n */\r\n RequestValidator.validateRedirectUri = function (redirectUri) {\r\n if (StringUtils.isEmpty(redirectUri)) {\r\n throw ClientConfigurationError.createRedirectUriEmptyError();\r\n }\r\n };\r\n /**\r\n * Utility to validate prompt sent by the user in the request\r\n * @param prompt\r\n */\r\n RequestValidator.validatePrompt = function (prompt) {\r\n var promptValues = [];\r\n for (var value in PromptValue) {\r\n promptValues.push(PromptValue[value]);\r\n }\r\n if (promptValues.indexOf(prompt) < 0) {\r\n throw ClientConfigurationError.createInvalidPromptError(prompt);\r\n }\r\n };\r\n RequestValidator.validateClaims = function (claims) {\r\n try {\r\n JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge and code_challenge_method\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n if (StringUtils.isEmpty(codeChallenge) || StringUtils.isEmpty(codeChallengeMethod)) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n else {\r\n this.validateCodeChallengeMethod(codeChallengeMethod);\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge_method\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeMethod = function (codeChallengeMethod) {\r\n if ([\r\n CodeChallengeMethodValues.PLAIN,\r\n CodeChallengeMethodValues.S256\r\n ].indexOf(codeChallengeMethod) < 0) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeMethodError();\r\n }\r\n };\r\n /**\r\n * Removes unnecessary, duplicate, and empty string query parameters from extraQueryParameters\r\n * @param request\r\n */\r\n RequestValidator.sanitizeEQParams = function (eQParams, queryParams) {\r\n if (!eQParams) {\r\n return {};\r\n }\r\n // Remove any query parameters already included in SSO params\r\n queryParams.forEach(function (value, key) {\r\n if (eQParams[key]) {\r\n delete eQParams[key];\r\n }\r\n });\r\n // remove empty string parameters\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n return Object.fromEntries(Object.entries(eQParams).filter(function (_a) {\r\n var value = _a[1];\r\n return value !== \"\";\r\n }));\r\n };\r\n return RequestValidator;\r\n}());\n\nexport { RequestValidator };\n//# sourceMappingURL=RequestValidator.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { AADServerParamKeys, Constants, ResponseMode, OIDC_DEFAULT_SCOPES, SSOTypes, HeaderNames, CLIENT_INFO, ClaimsRequestKeys, PasswordGrantConstants, AuthenticationScheme, ThrottlingConstants } from '../utils/Constants.js';\nimport { ScopeSet } from './ScopeSet.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from './RequestValidator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RequestParameterBuilder = /** @class */ (function () {\r\n function RequestParameterBuilder() {\r\n this.parameters = new Map();\r\n }\r\n /**\r\n * add response_type = code\r\n */\r\n RequestParameterBuilder.prototype.addResponseTypeCode = function () {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));\r\n };\r\n /**\r\n * add response_type = token id_token\r\n */\r\n RequestParameterBuilder.prototype.addResponseTypeForTokenAndIdToken = function () {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.TOKEN_RESPONSE_TYPE + \" \" + Constants.ID_TOKEN_RESPONSE_TYPE));\r\n };\r\n /**\r\n * add response_mode. defaults to query.\r\n * @param responseMode\r\n */\r\n RequestParameterBuilder.prototype.addResponseMode = function (responseMode) {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_MODE, encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY));\r\n };\r\n /**\r\n * Add flag to indicate STS should attempt to use WAM if available\r\n */\r\n RequestParameterBuilder.prototype.addNativeBroker = function () {\r\n this.parameters.set(AADServerParamKeys.NATIVE_BROKER, encodeURIComponent(\"1\"));\r\n };\r\n /**\r\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\r\n * @param scopeSet\r\n * @param addOidcScopes\r\n */\r\n RequestParameterBuilder.prototype.addScopes = function (scopes, addOidcScopes) {\r\n if (addOidcScopes === void 0) { addOidcScopes = true; }\r\n var requestScopes = addOidcScopes ? __spreadArrays(scopes || [], OIDC_DEFAULT_SCOPES) : scopes || [];\r\n var scopeSet = new ScopeSet(requestScopes);\r\n this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\r\n };\r\n /**\r\n * add clientId\r\n * @param clientId\r\n */\r\n RequestParameterBuilder.prototype.addClientId = function (clientId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\r\n };\r\n /**\r\n * add redirect_uri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add post logout redirectUri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addPostLogoutRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add id_token_hint to logout request\r\n * @param idTokenHint\r\n */\r\n RequestParameterBuilder.prototype.addIdTokenHint = function (idTokenHint) {\r\n this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\r\n };\r\n /**\r\n * add domain_hint\r\n * @param domainHint\r\n */\r\n RequestParameterBuilder.prototype.addDomainHint = function (domainHint) {\r\n this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\r\n };\r\n /**\r\n * add login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addLoginHint = function (loginHint) {\r\n this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsUpn = function (loginHint) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"UPN:\" + loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for account object\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsOid = function (clientInfo) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid));\r\n };\r\n /**\r\n * add sid\r\n * @param sid\r\n */\r\n RequestParameterBuilder.prototype.addSid = function (sid) {\r\n this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\r\n };\r\n /**\r\n * add claims\r\n * @param claims\r\n */\r\n RequestParameterBuilder.prototype.addClaims = function (claims, clientCapabilities) {\r\n var mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\r\n RequestValidator.validateClaims(mergedClaims);\r\n this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\r\n };\r\n /**\r\n * add correlationId\r\n * @param correlationId\r\n */\r\n RequestParameterBuilder.prototype.addCorrelationId = function (correlationId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\r\n };\r\n /**\r\n * add library info query params\r\n * @param libraryInfo\r\n */\r\n RequestParameterBuilder.prototype.addLibraryInfo = function (libraryInfo) {\r\n // Telemetry Info\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\r\n if (libraryInfo.os) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\r\n }\r\n if (libraryInfo.cpu) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\r\n }\r\n };\r\n /**\r\n * Add client telemetry parameters\r\n * @param appTelemetry\r\n */\r\n RequestParameterBuilder.prototype.addApplicationTelemetry = function (appTelemetry) {\r\n if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appName) {\r\n this.parameters.set(AADServerParamKeys.X_APP_NAME, appTelemetry.appName);\r\n }\r\n if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appVersion) {\r\n this.parameters.set(AADServerParamKeys.X_APP_VER, appTelemetry.appVersion);\r\n }\r\n };\r\n /**\r\n * add prompt\r\n * @param prompt\r\n */\r\n RequestParameterBuilder.prototype.addPrompt = function (prompt) {\r\n RequestValidator.validatePrompt(prompt);\r\n this.parameters.set(\"\" + AADServerParamKeys.PROMPT, encodeURIComponent(prompt));\r\n };\r\n /**\r\n * add state\r\n * @param state\r\n */\r\n RequestParameterBuilder.prototype.addState = function (state) {\r\n if (!StringUtils.isEmpty(state)) {\r\n this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\r\n }\r\n };\r\n /**\r\n * add nonce\r\n * @param nonce\r\n */\r\n RequestParameterBuilder.prototype.addNonce = function (nonce) {\r\n this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\r\n };\r\n /**\r\n * add code_challenge and code_challenge_method\r\n * - throw if either of them are not passed\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestParameterBuilder.prototype.addCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\r\n if (codeChallenge && codeChallengeMethod) {\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\r\n }\r\n else {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addAuthorizationCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addDeviceCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `refreshToken` passed by the user\r\n * @param refreshToken\r\n */\r\n RequestParameterBuilder.prototype.addRefreshToken = function (refreshToken) {\r\n this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\r\n };\r\n /**\r\n * add the `code_verifier` passed by the user to exchange for a token\r\n * @param codeVerifier\r\n */\r\n RequestParameterBuilder.prototype.addCodeVerifier = function (codeVerifier) {\r\n this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\r\n };\r\n /**\r\n * add client_secret\r\n * @param clientSecret\r\n */\r\n RequestParameterBuilder.prototype.addClientSecret = function (clientSecret) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\r\n };\r\n /**\r\n * add clientAssertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertion = function (clientAssertion) {\r\n if (!StringUtils.isEmpty(clientAssertion)) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\r\n }\r\n };\r\n /**\r\n * add clientAssertionType for confidential client flows\r\n * @param clientAssertionType\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertionType = function (clientAssertionType) {\r\n if (!StringUtils.isEmpty(clientAssertionType)) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\r\n }\r\n };\r\n /**\r\n * add OBO assertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addOboAssertion = function (oboAssertion) {\r\n this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addRequestTokenUse = function (tokenUse) {\r\n this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addGrantType = function (grantType) {\r\n this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\r\n };\r\n /**\r\n * add client info\r\n *\r\n */\r\n RequestParameterBuilder.prototype.addClientInfo = function () {\r\n this.parameters.set(CLIENT_INFO, \"1\");\r\n };\r\n /**\r\n * add extraQueryParams\r\n * @param eQParams\r\n */\r\n RequestParameterBuilder.prototype.addExtraQueryParameters = function (eQParams) {\r\n var _this = this;\r\n var sanitizedEQParams = RequestValidator.sanitizeEQParams(eQParams, this.parameters);\r\n Object.keys(sanitizedEQParams).forEach(function (key) {\r\n _this.parameters.set(key, eQParams[key]);\r\n });\r\n };\r\n RequestParameterBuilder.prototype.addClientCapabilitiesToClaims = function (claims, clientCapabilities) {\r\n var mergedClaims;\r\n // Parse provided claims into JSON object or initialize empty object\r\n if (!claims) {\r\n mergedClaims = {};\r\n }\r\n else {\r\n try {\r\n mergedClaims = JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n }\r\n if (clientCapabilities && clientCapabilities.length > 0) {\r\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)) {\r\n // Add access_token key to claims object\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\r\n }\r\n // Add xms_cc claim with provided clientCapabilities to access_token key\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\r\n values: clientCapabilities\r\n };\r\n }\r\n return JSON.stringify(mergedClaims);\r\n };\r\n /**\r\n * adds `username` for Password Grant flow\r\n * @param username\r\n */\r\n RequestParameterBuilder.prototype.addUsername = function (username) {\r\n this.parameters.set(PasswordGrantConstants.username, encodeURIComponent(username));\r\n };\r\n /**\r\n * adds `password` for Password Grant flow\r\n * @param password\r\n */\r\n RequestParameterBuilder.prototype.addPassword = function (password) {\r\n this.parameters.set(PasswordGrantConstants.password, encodeURIComponent(password));\r\n };\r\n /**\r\n * add pop_jwk to query params\r\n * @param cnfString\r\n */\r\n RequestParameterBuilder.prototype.addPopToken = function (cnfString) {\r\n if (!StringUtils.isEmpty(cnfString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\r\n }\r\n };\r\n /**\r\n * add SSH JWK and key ID to query params\r\n */\r\n RequestParameterBuilder.prototype.addSshJwk = function (sshJwkString) {\r\n if (!StringUtils.isEmpty(sshJwkString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.SSH);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(sshJwkString));\r\n }\r\n };\r\n /**\r\n * add server telemetry fields\r\n * @param serverTelemetryManager\r\n */\r\n RequestParameterBuilder.prototype.addServerTelemetry = function (serverTelemetryManager) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\r\n };\r\n /**\r\n * Adds parameter that indicates to the server that throttling is supported\r\n */\r\n RequestParameterBuilder.prototype.addThrottling = function () {\r\n this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\r\n };\r\n /**\r\n * Adds logout_hint parameter for \"silent\" logout which prevent server account picker\r\n */\r\n RequestParameterBuilder.prototype.addLogoutHint = function (logoutHint) {\r\n this.parameters.set(AADServerParamKeys.LOGOUT_HINT, encodeURIComponent(logoutHint));\r\n };\r\n /**\r\n * Utility to create a URL from the params map\r\n */\r\n RequestParameterBuilder.prototype.createQueryString = function () {\r\n var queryParameterArray = new Array();\r\n this.parameters.forEach(function (value, key) {\r\n queryParameterArray.push(key + \"=\" + value);\r\n });\r\n return queryParameterArray.join(\"&\");\r\n };\r\n return RequestParameterBuilder;\r\n}());\n\nexport { RequestParameterBuilder };\n//# sourceMappingURL=RequestParameterBuilder.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientConfiguration } from '../config/ClientConfiguration.js';\nimport { NetworkManager } from '../network/NetworkManager.js';\nimport { Logger } from '../logger/Logger.js';\nimport { HeaderNames, Constants } from '../utils/Constants.js';\nimport { name, version } from '../packageMetadata.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base application class which will construct requests to send to and handle responses from the Microsoft STS using the authorization code flow.\r\n */\r\nvar BaseClient = /** @class */ (function () {\r\n function BaseClient(configuration, performanceClient) {\r\n // Set the configuration\r\n this.config = buildClientConfiguration(configuration);\r\n // Initialize the logger\r\n this.logger = new Logger(this.config.loggerOptions, name, version);\r\n // Initialize crypto\r\n this.cryptoUtils = this.config.cryptoInterface;\r\n // Initialize storage interface\r\n this.cacheManager = this.config.storageInterface;\r\n // Set the network interface\r\n this.networkClient = this.config.networkInterface;\r\n // Set the NetworkManager\r\n this.networkManager = new NetworkManager(this.networkClient, this.cacheManager);\r\n // Set TelemetryManager\r\n this.serverTelemetryManager = this.config.serverTelemetryManager;\r\n // set Authority\r\n this.authority = this.config.authOptions.authority;\r\n // set performance telemetry client\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Creates default headers for requests to token endpoint\r\n */\r\n BaseClient.prototype.createTokenRequestHeaders = function (ccsCred) {\r\n var headers = {};\r\n headers[HeaderNames.CONTENT_TYPE] = Constants.URL_FORM_CONTENT_TYPE;\r\n if (!this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n var clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n headers[HeaderNames.CCS_HEADER] = \"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid;\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n headers[HeaderNames.CCS_HEADER] = \"UPN: \" + ccsCred.credential;\r\n break;\r\n }\r\n }\r\n return headers;\r\n };\r\n /**\r\n * Http post to token endpoint\r\n * @param tokenEndpoint\r\n * @param queryString\r\n * @param headers\r\n * @param thumbprint\r\n */\r\n BaseClient.prototype.executePostToTokenEndpoint = function (tokenEndpoint, queryString, headers, thumbprint) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.networkManager.sendPostRequest(thumbprint, tokenEndpoint, { body: queryString, headers: headers })];\r\n case 1:\r\n response = _a.sent();\r\n if (this.config.serverTelemetryManager && response.status < 500 && response.status !== 429) {\r\n // Telemetry data successfully logged by server, clear Telemetry cache\r\n this.config.serverTelemetryManager.clearTelemetryCache();\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the authority object of the client. Endpoint discovery must be completed.\r\n * @param updatedAuthority\r\n */\r\n BaseClient.prototype.updateAuthority = function (updatedAuthority) {\r\n if (!updatedAuthority.discoveryComplete()) {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Updated authority has not completed endpoint discovery.\");\r\n }\r\n this.authority = updatedAuthority;\r\n };\r\n /**\r\n * Creates query string for the /token request\r\n * @param request\r\n */\r\n BaseClient.prototype.createTokenQueryParameters = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.tokenQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n return BaseClient;\r\n}());\n\nexport { BaseClient };\n//# sourceMappingURL=BaseClient.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { CredentialType, CacheType, Separators, Constants, AuthenticationScheme } from '../../utils/Constants.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base type for credentials to be stored in the cache: eg: ACCESS_TOKEN, ID_TOKEN etc\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: -------\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * tokenType: Matches the authentication scheme for which the token was issued (i.e. Bearer or pop)\r\n * requestedClaimsHash: Matches the SHA 256 hash of the claims object included in the token request\r\n * userAssertionHash: Matches the SHA 256 hash of the obo_assertion for the OBO flow\r\n * }\r\n */\r\nvar CredentialEntity = /** @class */ (function () {\r\n function CredentialEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n CredentialEntity.prototype.generateAccountId = function () {\r\n return CredentialEntity.generateAccountIdForCacheKey(this.homeAccountId, this.environment);\r\n };\r\n /**\r\n * Generate Credential Id key component as per the schema: --\r\n */\r\n CredentialEntity.prototype.generateCredentialId = function () {\r\n return CredentialEntity.generateCredentialIdForCacheKey(this.credentialType, this.clientId, this.realm, this.familyId);\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.prototype.generateTarget = function () {\r\n return CredentialEntity.generateTargetForCacheKey(this.target);\r\n };\r\n /**\r\n * generates credential key\r\n */\r\n CredentialEntity.prototype.generateCredentialKey = function () {\r\n return CredentialEntity.generateCredentialCacheKey(this.homeAccountId, this.environment, this.credentialType, this.clientId, this.realm, this.target, this.familyId, this.tokenType, this.requestedClaimsHash);\r\n };\r\n /**\r\n * returns the type of the cache (in this case credential)\r\n */\r\n CredentialEntity.prototype.generateType = function () {\r\n switch (this.credentialType) {\r\n case CredentialType.ID_TOKEN:\r\n return CacheType.ID_TOKEN;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n return CacheType.ACCESS_TOKEN;\r\n case CredentialType.REFRESH_TOKEN:\r\n return CacheType.REFRESH_TOKEN;\r\n default: {\r\n throw ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * generates credential key\r\n * -\\-----\r\n */\r\n CredentialEntity.generateCredentialCacheKey = function (homeAccountId, environment, credentialType, clientId, realm, target, familyId, tokenType, requestedClaimsHash) {\r\n var credentialKey = [\r\n this.generateAccountIdForCacheKey(homeAccountId, environment),\r\n this.generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId),\r\n this.generateTargetForCacheKey(target),\r\n this.generateClaimsHashForCacheKey(requestedClaimsHash),\r\n this.generateSchemeForCacheKey(tokenType)\r\n ];\r\n return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * generates Account Id for keys\r\n * @param homeAccountId\r\n * @param environment\r\n */\r\n CredentialEntity.generateAccountIdForCacheKey = function (homeAccountId, environment) {\r\n var accountId = [homeAccountId, environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generates Credential Id for keys\r\n * @param credentialType\r\n * @param realm\r\n * @param clientId\r\n * @param familyId\r\n */\r\n CredentialEntity.generateCredentialIdForCacheKey = function (credentialType, clientId, realm, familyId) {\r\n var clientOrFamilyId = credentialType === CredentialType.REFRESH_TOKEN\r\n ? familyId || clientId\r\n : clientId;\r\n var credentialId = [\r\n credentialType,\r\n clientOrFamilyId,\r\n realm || Constants.EMPTY_STRING,\r\n ];\r\n return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.generateTargetForCacheKey = function (scopes) {\r\n return (scopes || Constants.EMPTY_STRING).toLowerCase();\r\n };\r\n /**\r\n * Generate requested claims key component as per schema: \r\n */\r\n CredentialEntity.generateClaimsHashForCacheKey = function (requestedClaimsHash) {\r\n return (requestedClaimsHash || Constants.EMPTY_STRING).toLowerCase();\r\n };\r\n /**\r\n * Generate scheme key componenet as per schema: \r\n */\r\n CredentialEntity.generateSchemeForCacheKey = function (tokenType) {\r\n /*\r\n * PoP Tokens and SSH certs include scheme in cache key\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n return (tokenType && tokenType.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? tokenType.toLowerCase() : Constants.EMPTY_STRING;\r\n };\r\n return CredentialEntity;\r\n}());\n\nexport { CredentialEntity };\n//# sourceMappingURL=CredentialEntity.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ID_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * }\r\n */\r\nvar IdTokenEntity = /** @class */ (function (_super) {\r\n __extends(IdTokenEntity, _super);\r\n function IdTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create IdTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n IdTokenEntity.createIdTokenEntity = function (homeAccountId, environment, idToken, clientId, tenantId) {\r\n var idTokenEntity = new IdTokenEntity();\r\n idTokenEntity.credentialType = CredentialType.ID_TOKEN;\r\n idTokenEntity.homeAccountId = homeAccountId;\r\n idTokenEntity.environment = environment;\r\n idTokenEntity.clientId = clientId;\r\n idTokenEntity.secret = idToken;\r\n idTokenEntity.realm = tenantId;\r\n return idTokenEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n IdTokenEntity.isIdTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.ID_TOKEN);\r\n };\r\n return IdTokenEntity;\r\n}(CredentialEntity));\n\nexport { IdTokenEntity };\n//# sourceMappingURL=IdTokenEntity.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class which exposes functions for managing date and time operations.\r\n */\r\nvar TimeUtils = /** @class */ (function () {\r\n function TimeUtils() {\r\n }\r\n /**\r\n * return the current time in Unix time (seconds).\r\n */\r\n TimeUtils.nowSeconds = function () {\r\n // Date.getTime() returns in milliseconds.\r\n return Math.round(new Date().getTime() / 1000.0);\r\n };\r\n /**\r\n * check if a token is expired based on given UTC time in seconds.\r\n * @param expiresOn\r\n */\r\n TimeUtils.isTokenExpired = function (expiresOn, offset) {\r\n // check for access token expiry\r\n var expirationSec = Number(expiresOn) || 0;\r\n var offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;\r\n // If current time + offset is greater than token expiration time, then token is expired.\r\n return (offsetCurrentTimeSec > expirationSec);\r\n };\r\n /**\r\n * If the current time is earlier than the time that a token was cached at, we must discard the token\r\n * i.e. The system clock was turned back after acquiring the cached token\r\n * @param cachedAt\r\n * @param offset\r\n */\r\n TimeUtils.wasClockTurnedBack = function (cachedAt) {\r\n var cachedAtSec = Number(cachedAt);\r\n return cachedAtSec > TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Waits for t number of milliseconds\r\n * @param t number\r\n * @param value T\r\n */\r\n TimeUtils.delay = function (t, value) {\r\n return new Promise(function (resolve) { return setTimeout(function () { return resolve(value); }, t); });\r\n };\r\n return TimeUtils;\r\n}());\n\nexport { TimeUtils };\n//# sourceMappingURL=TimeUtils.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType, AuthenticationScheme } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { AuthToken } from '../../account/AuthToken.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ACCESS_TOKEN Credential Type\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * cachedAt: Absolute device time when entry was created in the cache.\r\n * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.\r\n * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.\r\n * keyId: used for POP and SSH tokenTypes\r\n * tokenType: Type of the token issued. Usually \"Bearer\"\r\n * }\r\n */\r\nvar AccessTokenEntity = /** @class */ (function (_super) {\r\n __extends(AccessTokenEntity, _super);\r\n function AccessTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create AccessTokenEntity\r\n * @param homeAccountId\r\n * @param environment\r\n * @param accessToken\r\n * @param clientId\r\n * @param tenantId\r\n * @param scopes\r\n * @param expiresOn\r\n * @param extExpiresOn\r\n */\r\n AccessTokenEntity.createAccessTokenEntity = function (homeAccountId, environment, accessToken, clientId, tenantId, scopes, expiresOn, extExpiresOn, cryptoUtils, refreshOn, tokenType, userAssertionHash, keyId, requestedClaims, requestedClaimsHash) {\r\n var _a, _b;\r\n var atEntity = new AccessTokenEntity();\r\n atEntity.homeAccountId = homeAccountId;\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN;\r\n atEntity.secret = accessToken;\r\n var currentTime = TimeUtils.nowSeconds();\r\n atEntity.cachedAt = currentTime.toString();\r\n /*\r\n * Token expiry time.\r\n * This value should be  calculated based on the current UTC time measured locally and the value  expires_in Represented as a string in JSON.\r\n */\r\n atEntity.expiresOn = expiresOn.toString();\r\n atEntity.extendedExpiresOn = extExpiresOn.toString();\r\n if (refreshOn) {\r\n atEntity.refreshOn = refreshOn.toString();\r\n }\r\n atEntity.environment = environment;\r\n atEntity.clientId = clientId;\r\n atEntity.realm = tenantId;\r\n atEntity.target = scopes;\r\n atEntity.userAssertionHash = userAssertionHash;\r\n atEntity.tokenType = StringUtils.isEmpty(tokenType) ? AuthenticationScheme.BEARER : tokenType;\r\n if (requestedClaims) {\r\n atEntity.requestedClaims = requestedClaims;\r\n atEntity.requestedClaimsHash = requestedClaimsHash;\r\n }\r\n /*\r\n * Create Access Token With Auth Scheme instead of regular access token\r\n * Cast to lower to handle \"bearer\" from ADFS\r\n */\r\n if (((_a = atEntity.tokenType) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== AuthenticationScheme.BEARER.toLowerCase()) {\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n switch (atEntity.tokenType) {\r\n case AuthenticationScheme.POP:\r\n // Make sure keyId is present and add it to credential\r\n var tokenClaims = AuthToken.extractTokenClaims(accessToken, cryptoUtils);\r\n if (!((_b = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _b === void 0 ? void 0 : _b.kid)) {\r\n throw ClientAuthError.createTokenClaimsRequiredError();\r\n }\r\n atEntity.keyId = tokenClaims.cnf.kid;\r\n break;\r\n case AuthenticationScheme.SSH:\r\n atEntity.keyId = keyId;\r\n }\r\n }\r\n return atEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccessTokenEntity.isAccessTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity.hasOwnProperty(\"target\") &&\r\n (entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN || entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME));\r\n };\r\n return AccessTokenEntity;\r\n}(CredentialEntity));\n\nexport { AccessTokenEntity };\n//# sourceMappingURL=AccessTokenEntity.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * REFRESH_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-refreshtoken-clientId--\r\n *\r\n * Value:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * }\r\n */\r\nvar RefreshTokenEntity = /** @class */ (function (_super) {\r\n __extends(RefreshTokenEntity, _super);\r\n function RefreshTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create RefreshTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n RefreshTokenEntity.createRefreshTokenEntity = function (homeAccountId, environment, refreshToken, clientId, familyId, userAssertionHash) {\r\n var rtEntity = new RefreshTokenEntity();\r\n rtEntity.clientId = clientId;\r\n rtEntity.credentialType = CredentialType.REFRESH_TOKEN;\r\n rtEntity.environment = environment;\r\n rtEntity.homeAccountId = homeAccountId;\r\n rtEntity.secret = refreshToken;\r\n rtEntity.userAssertionHash = userAssertionHash;\r\n if (familyId)\r\n rtEntity.familyId = familyId;\r\n return rtEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n RefreshTokenEntity.isRefreshTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.REFRESH_TOKEN);\r\n };\r\n return RefreshTokenEntity;\r\n}(CredentialEntity));\n\nexport { RefreshTokenEntity };\n//# sourceMappingURL=RefreshTokenEntity.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants } from '../utils/Constants.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * InteractionRequiredServerErrorMessage contains string constants used by error codes and messages returned by the server indicating interaction is required\r\n */\r\nvar InteractionRequiredServerErrorMessage = [\r\n \"interaction_required\",\r\n \"consent_required\",\r\n \"login_required\"\r\n];\r\nvar InteractionRequiredAuthSubErrorMessage = [\r\n \"message_only\",\r\n \"additional_action\",\r\n \"basic_action\",\r\n \"user_password_expired\",\r\n \"consent_required\"\r\n];\r\n/**\r\n * Interaction required errors defined by the SDK\r\n */\r\nvar InteractionRequiredAuthErrorMessage = {\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No refresh token found in the cache. Please sign-in.\"\r\n },\r\n native_account_unavailable: {\r\n code: \"native_account_unavailable\",\r\n desc: \"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when user interaction is required.\r\n */\r\nvar InteractionRequiredAuthError = /** @class */ (function (_super) {\r\n __extends(InteractionRequiredAuthError, _super);\r\n function InteractionRequiredAuthError(errorCode, errorMessage, subError, timestamp, traceId, correlationId, claims) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n Object.setPrototypeOf(_this, InteractionRequiredAuthError.prototype);\r\n _this.timestamp = timestamp || Constants.EMPTY_STRING;\r\n _this.traceId = traceId || Constants.EMPTY_STRING;\r\n _this.correlationId = correlationId || Constants.EMPTY_STRING;\r\n _this.claims = claims || Constants.EMPTY_STRING;\r\n _this.name = \"InteractionRequiredAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Helper function used to determine if an error thrown by the server requires interaction to resolve\r\n * @param errorCode\r\n * @param errorString\r\n * @param subError\r\n */\r\n InteractionRequiredAuthError.isInteractionRequiredError = function (errorCode, errorString, subError) {\r\n var isInteractionRequiredErrorCode = !!errorCode && InteractionRequiredServerErrorMessage.indexOf(errorCode) > -1;\r\n var isInteractionRequiredSubError = !!subError && InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\r\n var isInteractionRequiredErrorDesc = !!errorString && InteractionRequiredServerErrorMessage.some(function (irErrorCode) {\r\n return errorString.indexOf(irErrorCode) > -1;\r\n });\r\n return isInteractionRequiredErrorCode || isInteractionRequiredErrorDesc || isInteractionRequiredSubError;\r\n };\r\n /**\r\n * Creates an error thrown when the authorization code required for a token request is null or empty.\r\n */\r\n InteractionRequiredAuthError.createNoTokensFoundError = function () {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.noTokensFoundError.code, InteractionRequiredAuthErrorMessage.noTokensFoundError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the native broker returns ACCOUNT_UNAVAILABLE status, indicating that the account was removed and interactive sign-in is required\r\n * @returns\r\n */\r\n InteractionRequiredAuthError.createNativeAccountUnavailableError = function () {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.native_account_unavailable.code, InteractionRequiredAuthErrorMessage.native_account_unavailable.desc);\r\n };\r\n return InteractionRequiredAuthError;\r\n}(AuthError));\n\nexport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage, InteractionRequiredAuthSubErrorMessage, InteractionRequiredServerErrorMessage };\n//# sourceMappingURL=InteractionRequiredAuthError.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CacheRecord = /** @class */ (function () {\r\n function CacheRecord(accountEntity, idTokenEntity, accessTokenEntity, refreshTokenEntity, appMetadataEntity) {\r\n this.account = accountEntity || null;\r\n this.idToken = idTokenEntity || null;\r\n this.accessToken = accessTokenEntity || null;\r\n this.refreshToken = refreshTokenEntity || null;\r\n this.appMetadata = appMetadataEntity || null;\r\n }\r\n return CacheRecord;\r\n}());\n\nexport { CacheRecord };\n//# sourceMappingURL=CacheRecord.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { StringUtils } from './StringUtils.js';\nimport { Constants } from './Constants.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which provides helpers for OAuth 2.0 protocol specific values\r\n */\r\nvar ProtocolUtils = /** @class */ (function () {\r\n function ProtocolUtils() {\r\n }\r\n /**\r\n * Appends user state with random guid, or returns random guid.\r\n * @param userState\r\n * @param randomGuid\r\n */\r\n ProtocolUtils.setRequestState = function (cryptoObj, userState, meta) {\r\n var libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\r\n return !StringUtils.isEmpty(userState) ? \"\" + libraryState + Constants.RESOURCE_DELIM + userState : libraryState;\r\n };\r\n /**\r\n * Generates the state value used by the common library.\r\n * @param randomGuid\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.generateLibraryState = function (cryptoObj, meta) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\r\n }\r\n // Create a state object containing a unique id and the timestamp of the request creation\r\n var stateObj = {\r\n id: cryptoObj.createNewGuid()\r\n };\r\n if (meta) {\r\n stateObj.meta = meta;\r\n }\r\n var stateString = JSON.stringify(stateObj);\r\n return cryptoObj.base64Encode(stateString);\r\n };\r\n /**\r\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\r\n * @param state\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.parseRequestState = function (cryptoObj, state) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\r\n }\r\n if (StringUtils.isEmpty(state)) {\r\n throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\r\n }\r\n try {\r\n // Split the state between library state and user passed state and decode them separately\r\n var splitState = state.split(Constants.RESOURCE_DELIM);\r\n var libraryState = splitState[0];\r\n var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : Constants.EMPTY_STRING;\r\n var libraryStateString = cryptoObj.base64Decode(libraryState);\r\n var libraryStateObj = JSON.parse(libraryStateString);\r\n return {\r\n userRequestState: !StringUtils.isEmpty(userState) ? userState : Constants.EMPTY_STRING,\r\n libraryState: libraryStateObj\r\n };\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n return ProtocolUtils;\r\n}());\n\nexport { ProtocolUtils };\n//# sourceMappingURL=ProtocolUtils.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { AADAuthorityConstants, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Url object class which can perform various transformations on url strings.\r\n */\r\nvar UrlString = /** @class */ (function () {\r\n function UrlString(url) {\r\n this._urlString = url;\r\n if (StringUtils.isEmpty(this._urlString)) {\r\n // Throws error if url is empty\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n if (StringUtils.isEmpty(this.getHash())) {\r\n this._urlString = UrlString.canonicalizeUri(url);\r\n }\r\n }\r\n Object.defineProperty(UrlString.prototype, \"urlString\", {\r\n get: function () {\r\n return this._urlString;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Ensure urls are lower case and end with a / character.\r\n * @param url\r\n */\r\n UrlString.canonicalizeUri = function (url) {\r\n if (url) {\r\n var lowerCaseUrl = url.toLowerCase();\r\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\r\n }\r\n else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\r\n }\r\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\r\n lowerCaseUrl += \"/\";\r\n }\r\n return lowerCaseUrl;\r\n }\r\n return url;\r\n };\r\n /**\r\n * Throws if urlString passed is not a valid authority URI string.\r\n */\r\n UrlString.prototype.validateAsUri = function () {\r\n // Attempts to parse url for uri components\r\n var components;\r\n try {\r\n components = this.getUrlComponents();\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createUrlParseError(e);\r\n }\r\n // Throw error if URI or path segments are not parseable.\r\n if (!components.HostNameAndPort || !components.PathSegments) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Throw error if uri is insecure.\r\n if (!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\r\n }\r\n };\r\n /**\r\n * Given a url and a query string return the url with provided query string appended\r\n * @param url\r\n * @param queryString\r\n */\r\n UrlString.appendQueryString = function (url, queryString) {\r\n if (StringUtils.isEmpty(queryString)) {\r\n return url;\r\n }\r\n return url.indexOf(\"?\") < 0 ? url + \"?\" + queryString : url + \"&\" + queryString;\r\n };\r\n /**\r\n * Returns a url with the hash removed\r\n * @param url\r\n */\r\n UrlString.removeHashFromUrl = function (url) {\r\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\r\n };\r\n /**\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\r\n UrlString.prototype.replaceTenantPath = function (tenantId) {\r\n var urlObject = this.getUrlComponents();\r\n var pathArray = urlObject.PathSegments;\r\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\r\n pathArray[0] = tenantId;\r\n }\r\n return UrlString.constructAuthorityUriFromObject(urlObject);\r\n };\r\n /**\r\n * Returns the anchor part(#) of the URL\r\n */\r\n UrlString.prototype.getHash = function () {\r\n return UrlString.parseHash(this.urlString);\r\n };\r\n /**\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\r\n UrlString.prototype.getUrlComponents = function () {\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n var regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n // If url string does not match regEx, we throw an error\r\n var match = this.urlString.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Url component object\r\n var urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5],\r\n QueryString: match[7]\r\n };\r\n var pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n pathSegments = pathSegments.filter(function (val) { return val && val.length > 0; }); // remove empty elements\r\n urlComponents.PathSegments = pathSegments;\r\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\r\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);\r\n }\r\n return urlComponents;\r\n };\r\n UrlString.getDomainFromUrl = function (url) {\r\n var regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\r\n var match = url.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + url);\r\n }\r\n return match[2];\r\n };\r\n UrlString.getAbsoluteUrl = function (relativeUrl, baseUrl) {\r\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\r\n var url = new UrlString(baseUrl);\r\n var baseComponents = url.getUrlComponents();\r\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\r\n }\r\n return relativeUrl;\r\n };\r\n /**\r\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\r\n * @param hashString\r\n */\r\n UrlString.parseHash = function (hashString) {\r\n var hashIndex1 = hashString.indexOf(\"#\");\r\n var hashIndex2 = hashString.indexOf(\"#/\");\r\n if (hashIndex2 > -1) {\r\n return hashString.substring(hashIndex2 + 2);\r\n }\r\n else if (hashIndex1 > -1) {\r\n return hashString.substring(hashIndex1 + 1);\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Parses query string from given string. Returns empty string if no query symbol is found.\r\n * @param queryString\r\n */\r\n UrlString.parseQueryString = function (queryString) {\r\n var queryIndex1 = queryString.indexOf(\"?\");\r\n var queryIndex2 = queryString.indexOf(\"/?\");\r\n if (queryIndex2 > -1) {\r\n return queryString.substring(queryIndex2 + 2);\r\n }\r\n else if (queryIndex1 > -1) {\r\n return queryString.substring(queryIndex1 + 1);\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n UrlString.constructAuthorityUriFromObject = function (urlObject) {\r\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\r\n };\r\n /**\r\n * Returns URL hash as server auth code response object.\r\n */\r\n UrlString.getDeserializedHash = function (hash) {\r\n // Check if given hash is empty\r\n if (StringUtils.isEmpty(hash)) {\r\n return {};\r\n }\r\n // Strip the # symbol if present\r\n var parsedHash = UrlString.parseHash(hash);\r\n // If # symbol was not present, above will return empty string, so give original hash value\r\n var deserializedHash = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\r\n // Check if deserialization didn't work\r\n if (!deserializedHash) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\r\n }\r\n return deserializedHash;\r\n };\r\n /**\r\n * Returns URL query string as server auth code response object.\r\n */\r\n UrlString.getDeserializedQueryString = function (query) {\r\n // Check if given query is empty\r\n if (StringUtils.isEmpty(query)) {\r\n return {};\r\n }\r\n // Strip the ? symbol if present\r\n var parsedQueryString = UrlString.parseQueryString(query);\r\n // If ? symbol was not present, above will return empty string, so give original query value\r\n var deserializedQueryString = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedQueryString) ? query : parsedQueryString);\r\n // Check if deserialization didn't work\r\n if (!deserializedQueryString) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedQueryString));\r\n }\r\n return deserializedQueryString;\r\n };\r\n /**\r\n * Check if the hash of the URL string contains known properties\r\n */\r\n UrlString.hashContainsKnownProperties = function (hash) {\r\n if (StringUtils.isEmpty(hash) || hash.indexOf(\"=\") < 0) {\r\n // Hash doesn't contain key/value pairs\r\n return false;\r\n }\r\n var parameters = UrlString.getDeserializedHash(hash);\r\n return !!(parameters.code ||\r\n parameters.error_description ||\r\n parameters.error ||\r\n parameters.state);\r\n };\r\n return UrlString;\r\n}());\n\nexport { UrlString };\n//# sourceMappingURL=UrlString.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Enumeration of operations that are instrumented by have their performance measured by the PerformanceClient.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nvar PerformanceEvents;\r\n(function (PerformanceEvents) {\r\n /**\r\n * acquireTokenByCode API (msal-browser and msal-node).\r\n * Used to acquire tokens by trading an authorization code against the token endpoint.\r\n */\r\n PerformanceEvents[\"AcquireTokenByCode\"] = \"acquireTokenByCode\";\r\n /**\r\n * acquireTokenByRefreshToken API (msal-browser and msal-node).\r\n * Used to renew an access token using a refresh token against the token endpoint.\r\n */\r\n PerformanceEvents[\"AcquireTokenByRefreshToken\"] = \"acquireTokenByRefreshToken\";\r\n /**\r\n * acquireTokenSilent API (msal-browser and msal-node).\r\n * Used to silently acquire a new access token (from the cache or the network).\r\n */\r\n PerformanceEvents[\"AcquireTokenSilent\"] = \"acquireTokenSilent\";\r\n /**\r\n * acquireTokenSilentAsync (msal-browser).\r\n * Internal API for acquireTokenSilent.\r\n */\r\n PerformanceEvents[\"AcquireTokenSilentAsync\"] = \"acquireTokenSilentAsync\";\r\n /**\r\n * acquireTokenPopup (msal-browser).\r\n * Used to acquire a new access token interactively through pop ups\r\n */\r\n PerformanceEvents[\"AcquireTokenPopup\"] = \"acquireTokenPopup\";\r\n /**\r\n * getPublicKeyThumbprint API in CryptoOpts class (msal-browser).\r\n * Used to generate a public/private keypair and generate a public key thumbprint for pop requests.\r\n */\r\n PerformanceEvents[\"CryptoOptsGetPublicKeyThumbprint\"] = \"cryptoOptsGetPublicKeyThumbprint\";\r\n /**\r\n * signJwt API in CryptoOpts class (msal-browser).\r\n * Used to signed a pop token.\r\n */\r\n PerformanceEvents[\"CryptoOptsSignJwt\"] = \"cryptoOptsSignJwt\";\r\n /**\r\n * acquireToken API in the SilentCacheClient class (msal-browser).\r\n * Used to read access tokens from the cache.\r\n */\r\n PerformanceEvents[\"SilentCacheClientAcquireToken\"] = \"silentCacheClientAcquireToken\";\r\n /**\r\n * acquireToken API in the SilentIframeClient class (msal-browser).\r\n * Used to acquire a new set of tokens from the authorize endpoint in a hidden iframe.\r\n */\r\n PerformanceEvents[\"SilentIframeClientAcquireToken\"] = \"silentIframeClientAcquireToken\";\r\n /**\r\n * acquireToken API in SilentRereshClient (msal-browser).\r\n * Used to acquire a new set of tokens from the token endpoint using a refresh token.\r\n */\r\n PerformanceEvents[\"SilentRefreshClientAcquireToken\"] = \"silentRefreshClientAcquireToken\";\r\n /**\r\n * ssoSilent API (msal-browser).\r\n * Used to silently acquire an authorization code and set of tokens using a hidden iframe.\r\n */\r\n PerformanceEvents[\"SsoSilent\"] = \"ssoSilent\";\r\n /**\r\n * getDiscoveredAuthority API in StandardInteractionClient class (msal-browser).\r\n * Used to load authority metadata for a request.\r\n */\r\n PerformanceEvents[\"StandardInteractionClientGetDiscoveredAuthority\"] = \"standardInteractionClientGetDiscoveredAuthority\";\r\n /**\r\n * acquireToken APIs in msal-browser.\r\n * Used to make an /authorize endpoint call with native brokering enabled.\r\n */\r\n PerformanceEvents[\"FetchAccountIdWithNativeBroker\"] = \"fetchAccountIdWithNativeBroker\";\r\n /**\r\n * acquireToken API in NativeInteractionClient class (msal-browser).\r\n * Used to acquire a token from Native component when native brokering is enabled.\r\n */\r\n PerformanceEvents[\"NativeInteractionClientAcquireToken\"] = \"nativeInteractionClientAcquireToken\";\r\n /**\r\n * Time spent creating default headers for requests to token endpoint\r\n */\r\n PerformanceEvents[\"BaseClientCreateTokenRequestHeaders\"] = \"baseClientCreateTokenRequestHeaders\";\r\n /**\r\n * Used to measure the time taken for completing embedded-broker handshake (PW-Broker).\r\n */\r\n PerformanceEvents[\"BrokerHandhshake\"] = \"brokerHandshake\";\r\n /**\r\n * acquireTokenByRefreshToken API in BrokerClientApplication (PW-Broker) .\r\n */\r\n PerformanceEvents[\"AcquireTokenByRefreshTokenInBroker\"] = \"acquireTokenByRefreshTokenInBroker\";\r\n /**\r\n * Time taken for token acquisition by broker\r\n */\r\n PerformanceEvents[\"AcquireTokenByBroker\"] = \"acquireTokenByBroker\";\r\n /**\r\n * Time spent on the network for refresh token acquisition\r\n */\r\n PerformanceEvents[\"RefreshTokenClientExecuteTokenRequest\"] = \"refreshTokenClientExecuteTokenRequest\";\r\n /**\r\n * Time taken for acquiring refresh token , records RT size\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireToken\"] = \"refreshTokenClientAcquireToken\";\r\n /**\r\n * Time taken for acquiring cached refresh token\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireTokenWithCachedRefreshToken\"] = \"refreshTokenClientAcquireTokenWithCachedRefreshToken\";\r\n /**\r\n * acquireTokenByRefreshToken API in RefreshTokenClient (msal-common).\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireTokenByRefreshToken\"] = \"refreshTokenClientAcquireTokenByRefreshToken\";\r\n /**\r\n * Helper function to create token request body in RefreshTokenClient (msal-common).\r\n */\r\n PerformanceEvents[\"RefreshTokenClientCreateTokenRequestBody\"] = \"refreshTokenClientCreateTokenRequestBody\";\r\n /**\r\n * acquireTokenFromCache (msal-browser).\r\n * Internal API for acquiring token from cache\r\n */\r\n PerformanceEvents[\"AcquireTokenFromCache\"] = \"acquireTokenFromCache\";\r\n /**\r\n * acquireTokenBySilentIframe (msal-browser).\r\n * Internal API for acquiring token by silent Iframe\r\n */\r\n PerformanceEvents[\"AcquireTokenBySilentIframe\"] = \"acquireTokenBySilentIframe\";\r\n /**\r\n * Internal API for initializing base request in BaseInteractionClient (msal-browser)\r\n */\r\n PerformanceEvents[\"InitializeBaseRequest\"] = \"initializeBaseRequest\";\r\n /**\r\n * Internal API for initializing silent request in SilentCacheClient (msal-browser)\r\n */\r\n PerformanceEvents[\"InitializeSilentRequest\"] = \"initializeSilentRequest\";\r\n PerformanceEvents[\"InitializeClientApplication\"] = \"initializeClientApplication\";\r\n /**\r\n * Helper function in SilentIframeClient class (msal-browser).\r\n */\r\n PerformanceEvents[\"SilentIframeClientTokenHelper\"] = \"silentIframeClientTokenHelper\";\r\n /**\r\n * SilentHandler\r\n */\r\n PerformanceEvents[\"SilentHandlerInitiateAuthRequest\"] = \"silentHandlerInitiateAuthRequest\";\r\n PerformanceEvents[\"SilentHandlerMonitorIframeForHash\"] = \"silentHandlerMonitorIframeForHash\";\r\n PerformanceEvents[\"SilentHandlerLoadFrame\"] = \"silentHandlerLoadFrame\";\r\n /**\r\n * Helper functions in StandardInteractionClient class (msal-browser)\r\n */\r\n PerformanceEvents[\"StandardInteractionClientCreateAuthCodeClient\"] = \"standardInteractionClientCreateAuthCodeClient\";\r\n PerformanceEvents[\"StandardInteractionClientGetClientConfiguration\"] = \"standardInteractionClientGetClientConfiguration\";\r\n PerformanceEvents[\"StandardInteractionClientInitializeAuthorizationRequest\"] = \"standardInteractionClientInitializeAuthorizationRequest\";\r\n PerformanceEvents[\"StandardInteractionClientInitializeAuthorizationCodeRequest\"] = \"standardInteractionClientInitializeAuthorizationCodeRequest\";\r\n /**\r\n * getAuthCodeUrl API (msal-browser and msal-node).\r\n */\r\n PerformanceEvents[\"GetAuthCodeUrl\"] = \"getAuthCodeUrl\";\r\n /**\r\n * Functions from InteractionHandler (msal-browser)\r\n */\r\n PerformanceEvents[\"HandleCodeResponseFromServer\"] = \"handleCodeResponseFromServer\";\r\n PerformanceEvents[\"HandleCodeResponseFromHash\"] = \"handleCodeResponseFromHash\";\r\n PerformanceEvents[\"UpdateTokenEndpointAuthority\"] = \"updateTokenEndpointAuthority\";\r\n /**\r\n * APIs in Authorization Code Client (msal-common)\r\n */\r\n PerformanceEvents[\"AuthClientAcquireToken\"] = \"authClientAcquireToken\";\r\n PerformanceEvents[\"AuthClientExecuteTokenRequest\"] = \"authClientExecuteTokenRequest\";\r\n PerformanceEvents[\"AuthClientCreateTokenRequestBody\"] = \"authClientCreateTokenRequestBody\";\r\n PerformanceEvents[\"AuthClientCreateQueryString\"] = \"authClientCreateQueryString\";\r\n /**\r\n * Generate functions in PopTokenGenerator (msal-common)\r\n */\r\n PerformanceEvents[\"PopTokenGenerateCnf\"] = \"popTokenGenerateCnf\";\r\n PerformanceEvents[\"PopTokenGenerateKid\"] = \"popTokenGenerateKid\";\r\n /**\r\n * handleServerTokenResponse API in ResponseHandler (msal-common)\r\n */\r\n PerformanceEvents[\"HandleServerTokenResponse\"] = \"handleServerTokenResponse\";\r\n /**\r\n * Authority functions\r\n */\r\n PerformanceEvents[\"AuthorityFactoryCreateDiscoveredInstance\"] = \"authorityFactoryCreateDiscoveredInstance\";\r\n PerformanceEvents[\"AuthorityResolveEndpointsAsync\"] = \"authorityResolveEndpointsAsync\";\r\n PerformanceEvents[\"AuthorityGetCloudDiscoveryMetadataFromNetwork\"] = \"authorityGetCloudDiscoveryMetadataFromNetwork\";\r\n PerformanceEvents[\"AuthorityUpdateCloudDiscoveryMetadata\"] = \"authorityUpdateCloudDiscoveryMetadata\";\r\n PerformanceEvents[\"AuthorityGetEndpointMetadataFromNetwork\"] = \"authorityGetEndpointMetadataFromNetwork\";\r\n PerformanceEvents[\"AuthorityUpdateEndpointMetadata\"] = \"authorityUpdateEndpointMetadata\";\r\n PerformanceEvents[\"AuthorityUpdateMetadataWithRegionalInformation\"] = \"authorityUpdateMetadataWithRegionalInformation\";\r\n /**\r\n * Region Discovery functions\r\n */\r\n PerformanceEvents[\"RegionDiscoveryDetectRegion\"] = \"regionDiscoveryDetectRegion\";\r\n PerformanceEvents[\"RegionDiscoveryGetRegionFromIMDS\"] = \"regionDiscoveryGetRegionFromIMDS\";\r\n PerformanceEvents[\"RegionDiscoveryGetCurrentVersion\"] = \"regionDiscoveryGetCurrentVersion\";\r\n PerformanceEvents[\"AcquireTokenByCodeAsync\"] = \"acquireTokenByCodeAsync\";\r\n PerformanceEvents[\"GetEndpointMetadataFromNetwork\"] = \"getEndpointMetadataFromNetwork\";\r\n PerformanceEvents[\"GetCloudDiscoveryMetadataFromNetworkMeasurement\"] = \"getCloudDiscoveryMetadataFromNetworkMeasurement\";\r\n PerformanceEvents[\"HandleRedirectPromiseMeasurement\"] = \"handleRedirectPromiseMeasurement\";\r\n PerformanceEvents[\"UpdateCloudDiscoveryMetadataMeasurement\"] = \"updateCloudDiscoveryMetadataMeasurement\";\r\n PerformanceEvents[\"UsernamePasswordClientAcquireToken\"] = \"usernamePasswordClientAcquireToken\";\r\n PerformanceEvents[\"NativeMessageHandlerHandshake\"] = \"nativeMessageHandlerHandshake\";\r\n})(PerformanceEvents || (PerformanceEvents = {}));\r\n/**\r\n * State of the performance event.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nvar PerformanceEventStatus;\r\n(function (PerformanceEventStatus) {\r\n PerformanceEventStatus[PerformanceEventStatus[\"NotStarted\"] = 0] = \"NotStarted\";\r\n PerformanceEventStatus[PerformanceEventStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n PerformanceEventStatus[PerformanceEventStatus[\"Completed\"] = 2] = \"Completed\";\r\n})(PerformanceEventStatus || (PerformanceEventStatus = {}));\r\nvar IntFields = new Set([\r\n \"accessTokenSize\",\r\n \"durationMs\",\r\n \"idTokenSize\",\r\n \"matsSilentStatus\",\r\n \"matsHttpStatus\",\r\n \"refreshTokenSize\",\r\n \"queuedTimeMs\",\r\n \"startTimeMs\",\r\n \"status\",\r\n]);\n\nexport { IntFields, PerformanceEventStatus, PerformanceEvents };\n//# sourceMappingURL=PerformanceEvent.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar KeyLocation;\r\n(function (KeyLocation) {\r\n KeyLocation[\"SW\"] = \"sw\";\r\n KeyLocation[\"UHW\"] = \"uhw\";\r\n})(KeyLocation || (KeyLocation = {}));\r\nvar PopTokenGenerator = /** @class */ (function () {\r\n function PopTokenGenerator(cryptoUtils, performanceClient) {\r\n this.cryptoUtils = cryptoUtils;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Generates the req_cnf validated at the RP in the POP protocol for SHR parameters\r\n * and returns an object containing the keyid, the full req_cnf string and the req_cnf string hash\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.generateCnf = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqCnf, reqCnfString, _c;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.PopTokenGenerateKid, request.correlationId);\r\n return [4 /*yield*/, this.generateKid(request)];\r\n case 1:\r\n reqCnf = _d.sent();\r\n reqCnfString = this.cryptoUtils.base64Encode(JSON.stringify(reqCnf));\r\n _c = {\r\n kid: reqCnf.kid,\r\n reqCnfString: reqCnfString\r\n };\r\n return [4 /*yield*/, this.cryptoUtils.hashString(reqCnfString)];\r\n case 2: return [2 /*return*/, (_c.reqCnfHash = _d.sent(),\r\n _c)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates key_id for a SHR token request\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.generateKid = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var kidThumbprint;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.PopTokenGenerateKid, request.correlationId);\r\n return [4 /*yield*/, this.cryptoUtils.getPublicKeyThumbprint(request)];\r\n case 1:\r\n kidThumbprint = _b.sent();\r\n return [2 /*return*/, {\r\n kid: kidThumbprint,\r\n xms_ksl: KeyLocation.SW\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Signs the POP access_token with the local generated key-pair\r\n * @param accessToken\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.signPopToken = function (accessToken, keyId, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.signPayload(accessToken, keyId, request)];\r\n });\r\n });\r\n };\r\n /**\r\n * Utility function to generate the signed JWT for an access_token\r\n * @param payload\r\n * @param kid\r\n * @param request\r\n * @param claims\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.signPayload = function (payload, keyId, request, claims) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var resourceRequestMethod, resourceRequestUri, shrClaims, shrNonce, resourceUrlString, resourceUrlComponents;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n resourceRequestMethod = request.resourceRequestMethod, resourceRequestUri = request.resourceRequestUri, shrClaims = request.shrClaims, shrNonce = request.shrNonce;\r\n resourceUrlString = (resourceRequestUri) ? new UrlString(resourceRequestUri) : undefined;\r\n resourceUrlComponents = resourceUrlString === null || resourceUrlString === void 0 ? void 0 : resourceUrlString.getUrlComponents();\r\n return [4 /*yield*/, this.cryptoUtils.signJwt(__assign({ at: payload, ts: TimeUtils.nowSeconds(), m: resourceRequestMethod === null || resourceRequestMethod === void 0 ? void 0 : resourceRequestMethod.toUpperCase(), u: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.HostNameAndPort, nonce: shrNonce || this.cryptoUtils.createNewGuid(), p: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.AbsolutePath, q: (resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.QueryString) ? [[], resourceUrlComponents.QueryString] : undefined, client_claims: shrClaims || undefined }, claims), keyId, request.correlationId)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return PopTokenGenerator;\r\n}());\n\nexport { PopTokenGenerator };\n//# sourceMappingURL=PopTokenGenerator.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { Separators, APP_METADATA } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * APP_METADATA Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: appmetadata--\r\n *\r\n * Value:\r\n * {\r\n * clientId: client ID of the application\r\n * environment: entity that issued the token, represented as a full host\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * }\r\n */\r\nvar AppMetadataEntity = /** @class */ (function () {\r\n function AppMetadataEntity() {\r\n }\r\n /**\r\n * Generate AppMetadata Cache Key as per the schema: appmetadata--\r\n */\r\n AppMetadataEntity.prototype.generateAppMetadataKey = function () {\r\n return AppMetadataEntity.generateAppMetadataCacheKey(this.environment, this.clientId);\r\n };\r\n /**\r\n * Generate AppMetadata Cache Key\r\n */\r\n AppMetadataEntity.generateAppMetadataCacheKey = function (environment, clientId) {\r\n var appMetaDataKeyArray = [\r\n APP_METADATA,\r\n environment,\r\n clientId,\r\n ];\r\n return appMetaDataKeyArray.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Creates AppMetadataEntity\r\n * @param clientId\r\n * @param environment\r\n * @param familyId\r\n */\r\n AppMetadataEntity.createAppMetadataEntity = function (clientId, environment, familyId) {\r\n var appMetadata = new AppMetadataEntity();\r\n appMetadata.clientId = clientId;\r\n appMetadata.environment = environment;\r\n if (familyId) {\r\n appMetadata.familyId = familyId;\r\n }\r\n return appMetadata;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AppMetadataEntity.isAppMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(APP_METADATA) === 0 &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"environment\"));\r\n };\r\n return AppMetadataEntity;\r\n}());\n\nexport { AppMetadataEntity };\n//# sourceMappingURL=AppMetadataEntity.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class instance helps track the memory changes facilitating\r\n * decisions to read from and write to the persistent cache\r\n */ var TokenCacheContext = /** @class */ (function () {\r\n function TokenCacheContext(tokenCache, hasChanged) {\r\n this.cache = tokenCache;\r\n this.hasChanged = hasChanged;\r\n }\r\n Object.defineProperty(TokenCacheContext.prototype, \"cacheHasChanged\", {\r\n /**\r\n * boolean which indicates the changes in cache\r\n */\r\n get: function () {\r\n return this.hasChanged;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TokenCacheContext.prototype, \"tokenCache\", {\r\n /**\r\n * function to retrieve the token cache\r\n */\r\n get: function () {\r\n return this.cache;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return TokenCacheContext;\r\n}());\n\nexport { TokenCacheContext };\n//# sourceMappingURL=TokenCacheContext.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientInfo } from '../account/ClientInfo.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from '../cache/entities/AccountEntity.js';\nimport { AuthorityType } from '../authority/AuthorityType.js';\nimport { IdTokenEntity } from '../cache/entities/IdTokenEntity.js';\nimport { AccessTokenEntity } from '../cache/entities/AccessTokenEntity.js';\nimport { RefreshTokenEntity } from '../cache/entities/RefreshTokenEntity.js';\nimport { InteractionRequiredAuthError } from '../error/InteractionRequiredAuthError.js';\nimport { CacheRecord } from '../cache/entities/CacheRecord.js';\nimport { ProtocolUtils } from '../utils/ProtocolUtils.js';\nimport { Constants, AuthenticationScheme, THE_FAMILY_ID } from '../utils/Constants.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { AppMetadataEntity } from '../cache/entities/AppMetadataEntity.js';\nimport { TokenCacheContext } from '../cache/persistence/TokenCacheContext.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class that handles response parsing.\r\n */\r\nvar ResponseHandler = /** @class */ (function () {\r\n function ResponseHandler(clientId, cacheStorage, cryptoObj, logger, serializableCache, persistencePlugin, performanceClient) {\r\n this.clientId = clientId;\r\n this.cacheStorage = cacheStorage;\r\n this.cryptoObj = cryptoObj;\r\n this.logger = logger;\r\n this.serializableCache = serializableCache;\r\n this.persistencePlugin = persistencePlugin;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Function which validates server authorization code response.\r\n * @param serverResponseHash\r\n * @param cachedState\r\n * @param cryptoObj\r\n */\r\n ResponseHandler.prototype.validateServerAuthorizationCodeResponse = function (serverResponseHash, cachedState, cryptoObj) {\r\n if (!serverResponseHash.state || !cachedState) {\r\n throw !serverResponseHash.state ? ClientAuthError.createStateNotFoundError(\"Server State\") : ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n if (decodeURIComponent(serverResponseHash.state) !== decodeURIComponent(cachedState)) {\r\n throw ClientAuthError.createStateMismatchError();\r\n }\r\n // Check for error\r\n if (serverResponseHash.error || serverResponseHash.error_description || serverResponseHash.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponseHash.error, serverResponseHash.error_description, serverResponseHash.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror, serverResponseHash.timestamp || Constants.EMPTY_STRING, serverResponseHash.trace_id || Constants.EMPTY_STRING, serverResponseHash.correlation_id || Constants.EMPTY_STRING, serverResponseHash.claims || Constants.EMPTY_STRING);\r\n }\r\n throw new ServerError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n }\r\n if (serverResponseHash.client_info) {\r\n buildClientInfo(serverResponseHash.client_info, cryptoObj);\r\n }\r\n };\r\n /**\r\n * Function which validates server authorization token response.\r\n * @param serverResponse\r\n */\r\n ResponseHandler.prototype.validateTokenResponse = function (serverResponse) {\r\n // Check for error\r\n if (serverResponse.error || serverResponse.error_description || serverResponse.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponse.error, serverResponse.error_description, serverResponse.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponse.error, serverResponse.error_description, serverResponse.suberror, serverResponse.timestamp || Constants.EMPTY_STRING, serverResponse.trace_id || Constants.EMPTY_STRING, serverResponse.correlation_id || Constants.EMPTY_STRING, serverResponse.claims || Constants.EMPTY_STRING);\r\n }\r\n var errString = serverResponse.error_codes + \" - [\" + serverResponse.timestamp + \"]: \" + serverResponse.error_description + \" - Correlation ID: \" + serverResponse.correlation_id + \" - Trace ID: \" + serverResponse.trace_id;\r\n throw new ServerError(serverResponse.error, errString, serverResponse.suberror);\r\n }\r\n };\r\n /**\r\n * Returns a constructed token response based on given string. Also manages the cache updates and cleanups.\r\n * @param serverTokenResponse\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.handleServerTokenResponse = function (serverTokenResponse, authority, reqTimestamp, request, authCodePayload, userAssertionHash, handlingRefreshTokenResponse, forceCacheRefreshTokenResponse, serverRequestId) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj, authTime, requestStateObj, cacheRecord, cacheContext, key, account;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.HandleServerTokenResponse, serverTokenResponse.correlation_id);\r\n if (serverTokenResponse.id_token) {\r\n idTokenObj = new AuthToken(serverTokenResponse.id_token || Constants.EMPTY_STRING, this.cryptoObj);\r\n // token nonce check (TODO: Add a warning if no nonce is given?)\r\n if (authCodePayload && !StringUtils.isEmpty(authCodePayload.nonce)) {\r\n if (idTokenObj.claims.nonce !== authCodePayload.nonce) {\r\n throw ClientAuthError.createNonceMismatchError();\r\n }\r\n }\r\n // token max_age check\r\n if (request.maxAge || (request.maxAge === 0)) {\r\n authTime = idTokenObj.claims.auth_time;\r\n if (!authTime) {\r\n throw ClientAuthError.createAuthTimeNotFoundError();\r\n }\r\n AuthToken.checkMaxAge(authTime, request.maxAge);\r\n }\r\n }\r\n // generate homeAccountId\r\n this.homeAccountIdentifier = AccountEntity.generateHomeAccountId(serverTokenResponse.client_info || Constants.EMPTY_STRING, authority.authorityType, this.logger, this.cryptoObj, idTokenObj);\r\n if (!!authCodePayload && !!authCodePayload.state) {\r\n requestStateObj = ProtocolUtils.parseRequestState(this.cryptoObj, authCodePayload.state);\r\n }\r\n // Add keyId from request to serverTokenResponse if defined\r\n serverTokenResponse.key_id = serverTokenResponse.key_id || request.sshKid || undefined;\r\n cacheRecord = this.generateCacheRecord(serverTokenResponse, authority, reqTimestamp, request, idTokenObj, userAssertionHash, authCodePayload);\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, , 5, 8]);\r\n if (!(this.persistencePlugin && this.serializableCache)) return [3 /*break*/, 3];\r\n this.logger.verbose(\"Persistence enabled, calling beforeCacheAccess\");\r\n cacheContext = new TokenCacheContext(this.serializableCache, true);\r\n return [4 /*yield*/, this.persistencePlugin.beforeCacheAccess(cacheContext)];\r\n case 2:\r\n _b.sent();\r\n _b.label = 3;\r\n case 3:\r\n /*\r\n * When saving a refreshed tokens to the cache, it is expected that the account that was used is present in the cache.\r\n * If not present, we should return null, as it's the case that another application called removeAccount in between\r\n * the calls to getAllAccounts and acquireTokenSilent. We should not overwrite that removal, unless explicitly flagged by\r\n * the developer, as in the case of refresh token flow used in ADAL Node to MSAL Node migration.\r\n */\r\n if (handlingRefreshTokenResponse && !forceCacheRefreshTokenResponse && cacheRecord.account) {\r\n key = cacheRecord.account.generateAccountKey();\r\n account = this.cacheStorage.getAccount(key);\r\n if (!account) {\r\n this.logger.warning(\"Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache\");\r\n return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj, undefined, serverRequestId)];\r\n }\r\n }\r\n return [4 /*yield*/, this.cacheStorage.saveCacheRecord(cacheRecord)];\r\n case 4:\r\n _b.sent();\r\n return [3 /*break*/, 8];\r\n case 5:\r\n if (!(this.persistencePlugin && this.serializableCache && cacheContext)) return [3 /*break*/, 7];\r\n this.logger.verbose(\"Persistence enabled, calling afterCacheAccess\");\r\n return [4 /*yield*/, this.persistencePlugin.afterCacheAccess(cacheContext)];\r\n case 6:\r\n _b.sent();\r\n _b.label = 7;\r\n case 7: return [7 /*endfinally*/];\r\n case 8: return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj, serverTokenResponse, serverRequestId)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates CacheRecord\r\n * @param serverTokenResponse\r\n * @param idTokenObj\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateCacheRecord = function (serverTokenResponse, authority, reqTimestamp, request, idTokenObj, userAssertionHash, authCodePayload) {\r\n var env = authority.getPreferredCache();\r\n if (StringUtils.isEmpty(env)) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n // IdToken: non AAD scenarios can have empty realm\r\n var cachedIdToken;\r\n var cachedAccount;\r\n if (!StringUtils.isEmpty(serverTokenResponse.id_token) && !!idTokenObj) {\r\n cachedIdToken = IdTokenEntity.createIdTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.id_token || Constants.EMPTY_STRING, this.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING);\r\n cachedAccount = this.generateAccountEntity(serverTokenResponse, idTokenObj, authority, authCodePayload);\r\n }\r\n // AccessToken\r\n var cachedAccessToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.access_token)) {\r\n // If scopes not returned in server response, use request scopes\r\n var responseScopes = serverTokenResponse.scope ? ScopeSet.fromString(serverTokenResponse.scope) : new ScopeSet(request.scopes || []);\r\n /*\r\n * Use timestamp calculated before request\r\n * Server may return timestamps as strings, parse to numbers if so.\r\n */\r\n var expiresIn = (typeof serverTokenResponse.expires_in === \"string\" ? parseInt(serverTokenResponse.expires_in, 10) : serverTokenResponse.expires_in) || 0;\r\n var extExpiresIn = (typeof serverTokenResponse.ext_expires_in === \"string\" ? parseInt(serverTokenResponse.ext_expires_in, 10) : serverTokenResponse.ext_expires_in) || 0;\r\n var refreshIn = (typeof serverTokenResponse.refresh_in === \"string\" ? parseInt(serverTokenResponse.refresh_in, 10) : serverTokenResponse.refresh_in) || undefined;\r\n var tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n var extendedTokenExpirationSeconds = tokenExpirationSeconds + extExpiresIn;\r\n var refreshOnSeconds = refreshIn && refreshIn > 0 ? reqTimestamp + refreshIn : undefined;\r\n // non AAD scenarios can have empty realm\r\n cachedAccessToken = AccessTokenEntity.createAccessTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.access_token || Constants.EMPTY_STRING, this.clientId, idTokenObj ? idTokenObj.claims.tid || Constants.EMPTY_STRING : authority.tenant, responseScopes.printScopes(), tokenExpirationSeconds, extendedTokenExpirationSeconds, this.cryptoObj, refreshOnSeconds, serverTokenResponse.token_type, userAssertionHash, serverTokenResponse.key_id, request.claims, request.requestedClaimsHash);\r\n }\r\n // refreshToken\r\n var cachedRefreshToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.refresh_token)) {\r\n cachedRefreshToken = RefreshTokenEntity.createRefreshTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.refresh_token || Constants.EMPTY_STRING, this.clientId, serverTokenResponse.foci, userAssertionHash);\r\n }\r\n // appMetadata\r\n var cachedAppMetadata = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.foci)) {\r\n cachedAppMetadata = AppMetadataEntity.createAppMetadataEntity(this.clientId, env, serverTokenResponse.foci);\r\n }\r\n return new CacheRecord(cachedAccount, cachedIdToken, cachedAccessToken, cachedRefreshToken, cachedAppMetadata);\r\n };\r\n /**\r\n * Generate Account\r\n * @param serverTokenResponse\r\n * @param idToken\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateAccountEntity = function (serverTokenResponse, idToken, authority, authCodePayload) {\r\n var authorityType = authority.authorityType;\r\n var cloudGraphHostName = authCodePayload ? authCodePayload.cloud_graph_host_name : Constants.EMPTY_STRING;\r\n var msGraphhost = authCodePayload ? authCodePayload.msgraph_host : Constants.EMPTY_STRING;\r\n // ADFS does not require client_info in the response\r\n if (authorityType === AuthorityType.Adfs) {\r\n this.logger.verbose(\"Authority type is ADFS, creating ADFS account\");\r\n return AccountEntity.createGenericAccount(this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost);\r\n }\r\n // This fallback applies to B2C as well as they fall under an AAD account type.\r\n if (StringUtils.isEmpty(serverTokenResponse.client_info) && authority.protocolMode === \"AAD\") {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n return serverTokenResponse.client_info ?\r\n AccountEntity.createAccount(serverTokenResponse.client_info, this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost) :\r\n AccountEntity.createGenericAccount(this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost);\r\n };\r\n /**\r\n * Creates an @AuthenticationResult from @CacheRecord , @IdToken , and a boolean that states whether or not the result is from cache.\r\n *\r\n * Optionally takes a state string that is set as-is in the response.\r\n *\r\n * @param cacheRecord\r\n * @param idTokenObj\r\n * @param fromTokenCache\r\n * @param stateString\r\n */\r\n ResponseHandler.generateAuthenticationResult = function (cryptoObj, authority, cacheRecord, fromTokenCache, request, idTokenObj, requestState, serverTokenResponse, requestId) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var accessToken, responseScopes, expiresOn, extExpiresOn, familyId, popTokenGenerator, _d, secret, keyId, uid, tid;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n accessToken = Constants.EMPTY_STRING;\r\n responseScopes = [];\r\n expiresOn = null;\r\n familyId = Constants.EMPTY_STRING;\r\n if (!cacheRecord.accessToken) return [3 /*break*/, 4];\r\n if (!(cacheRecord.accessToken.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(cryptoObj);\r\n _d = cacheRecord.accessToken, secret = _d.secret, keyId = _d.keyId;\r\n if (!keyId) {\r\n throw ClientAuthError.createKeyIdMissingError();\r\n }\r\n return [4 /*yield*/, popTokenGenerator.signPopToken(secret, keyId, request)];\r\n case 1:\r\n accessToken = _e.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n accessToken = cacheRecord.accessToken.secret;\r\n _e.label = 3;\r\n case 3:\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n _e.label = 4;\r\n case 4:\r\n if (cacheRecord.appMetadata) {\r\n familyId = cacheRecord.appMetadata.familyId === THE_FAMILY_ID ? THE_FAMILY_ID : Constants.EMPTY_STRING;\r\n }\r\n uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n // for hybrid + native bridge enablement, send back the native account Id\r\n if ((serverTokenResponse === null || serverTokenResponse === void 0 ? void 0 : serverTokenResponse.spa_accountid) && !!cacheRecord.account) {\r\n cacheRecord.account.nativeAccountId = serverTokenResponse === null || serverTokenResponse === void 0 ? void 0 : serverTokenResponse.spa_accountid;\r\n }\r\n return [2 /*return*/, {\r\n authority: authority.canonicalAuthority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: cacheRecord.account ? cacheRecord.account.getAccountInfo() : null,\r\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n accessToken: accessToken,\r\n fromCache: fromTokenCache,\r\n expiresOn: expiresOn,\r\n correlationId: request.correlationId,\r\n requestId: requestId || Constants.EMPTY_STRING,\r\n extExpiresOn: extExpiresOn,\r\n familyId: familyId,\r\n tokenType: ((_a = cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n state: requestState ? requestState.userRequestState : Constants.EMPTY_STRING,\r\n cloudGraphHostName: ((_b = cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n msGraphHost: ((_c = cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING,\r\n code: serverTokenResponse === null || serverTokenResponse === void 0 ? void 0 : serverTokenResponse.spa_code,\r\n fromNativeBroker: false,\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n return ResponseHandler;\r\n}());\n\nexport { ResponseHandler };\n//# sourceMappingURL=ResponseHandler.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign, __spreadArrays } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { Separators, AADServerParamKeys, AuthenticationScheme, GrantType, PromptValue, HeaderNames } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { buildClientInfo, buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from '../request/RequestValidator.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Oauth2.0 Authorization Code client\r\n */\r\nvar AuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends(AuthorizationCodeClient, _super);\r\n function AuthorizationCodeClient(configuration, performanceClient) {\r\n var _this = _super.call(this, configuration, performanceClient) || this;\r\n // Flag to indicate if client is for hybrid spa auth code redemption\r\n _this.includeRedirectUri = true;\r\n return _this;\r\n }\r\n /**\r\n * Creates the URL of the authorization request letting the user input credentials and consent to the\r\n * application. The URL target the /authorize endpoint of the authority configured in the\r\n * application object.\r\n *\r\n * Once the user inputs their credentials and consents, the authority will send a response to the redirect URI\r\n * sent in the request and should contain an authorization code, which can then be used to acquire tokens via\r\n * acquireToken(AuthorizationCodeRequest)\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.getAuthCodeUrl = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var queryString;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.GetAuthCodeUrl, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthClientCreateQueryString, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeUrlQueryString(request)];\r\n case 1:\r\n queryString = _c.sent();\r\n return [2 /*return*/, UrlString.appendQueryString(this.authority.authorizationEndpoint, queryString)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * API to acquire a token in exchange of 'authorization_code` acquired by the user in the first leg of the\r\n * authorization_code_grant\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.acquireToken = function (request, authCodePayload) {\r\n var _a, _b, _c, _d, _e, _f;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, reqTimestamp, response, requestId, httpVerAuthority, responseHandler;\r\n var _this = this;\r\n return __generator(this, function (_g) {\r\n switch (_g.label) {\r\n case 0:\r\n if (!request || !request.code) {\r\n throw ClientAuthError.createTokenRequestCannotBeMadeError();\r\n }\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientAcquireToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(\"AuthCodeClientAcquireToken\", request.correlationId);\r\n this.logger.info(\"in acquireToken call in auth-code client\");\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.AuthClientExecuteTokenRequest, request.correlationId);\r\n return [4 /*yield*/, this.executeTokenRequest(this.authority, request)];\r\n case 1:\r\n response = _g.sent();\r\n requestId = (_d = response.headers) === null || _d === void 0 ? void 0 : _d[HeaderNames.X_MS_REQUEST_ID];\r\n httpVerAuthority = (_e = response.headers) === null || _e === void 0 ? void 0 : _e[HeaderNames.X_MS_HTTP_VERSION];\r\n if (httpVerAuthority) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n httpVerAuthority: httpVerAuthority\r\n });\r\n }\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin, this.performanceClient);\r\n // Validate response. This function throws a server error if an error is returned by the server.\r\n responseHandler.validateTokenResponse(response.body);\r\n (_f = this.performanceClient) === null || _f === void 0 ? void 0 : _f.setPreQueueTime(PerformanceEvents.HandleServerTokenResponse, request.correlationId);\r\n return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, authCodePayload, undefined, undefined, undefined, requestId).then(function (result) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.logger.verbose(\"Error in fetching token in ACC\", request.correlationId);\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handles the hash fragment response from public client code request. Returns a code response used by\r\n * the client to exchange for a token in acquireToken.\r\n * @param hashFragment\r\n */\r\n AuthorizationCodeClient.prototype.handleFragmentResponse = function (hashFragment, cachedState) {\r\n // Handle responses.\r\n var responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, null, null);\r\n // Deserialize hash fragment response parameters.\r\n var hashUrlString = new UrlString(hashFragment);\r\n // Deserialize hash fragment response parameters.\r\n var serverParams = UrlString.getDeserializedHash(hashUrlString.getHash());\r\n // Get code response\r\n responseHandler.validateServerAuthorizationCodeResponse(serverParams, cachedState, this.cryptoUtils);\r\n // throw when there is no auth code in the response\r\n if (!serverParams.code) {\r\n throw ClientAuthError.createNoAuthCodeInServerResponseError();\r\n }\r\n return __assign(__assign({}, serverParams), { \r\n // Code param is optional in ServerAuthorizationCodeResponse but required in AuthorizationCodePaylod\r\n code: serverParams.code });\r\n };\r\n /**\r\n * Used to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param authorityUri\r\n */\r\n AuthorizationCodeClient.prototype.getLogoutUri = function (logoutRequest) {\r\n // Throw error if logoutRequest is null/undefined\r\n if (!logoutRequest) {\r\n throw ClientConfigurationError.createEmptyLogoutRequestError();\r\n }\r\n var queryString = this.createLogoutUrlQueryString(logoutRequest);\r\n // Construct logout URI\r\n return UrlString.appendQueryString(this.authority.endSessionEndpoint, queryString);\r\n };\r\n /**\r\n * Executes POST request to token endpoint\r\n * @param authority\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.executeTokenRequest = function (authority, request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var queryParametersString, endpoint, requestBody, ccsCredential, clientInfo, headers, thumbprint;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientExecuteTokenRequest, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthClientCreateTokenRequestBody, request.correlationId);\r\n queryParametersString = this.createTokenQueryParameters(request);\r\n endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParametersString);\r\n return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _c.sent();\r\n ccsCredential = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCredential = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n headers = this.createTokenRequestHeaders(ccsCredential || request.ccsCredential);\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a map for all the params to be sent to the service\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createTokenRequestBody = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, clientAssertion, popTokenGenerator, reqCnfData, correlationId, ccsCred, clientInfo, clientInfo;\r\n var _c;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientCreateTokenRequestBody, request.correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n /*\r\n * For hybrid spa flow, there will be a code but no verifier\r\n * In this scenario, don't include redirect uri as auth code will not be bound to redirect URI\r\n */\r\n if (!this.includeRedirectUri) {\r\n // Just validate\r\n RequestValidator.validateRedirectUri(request.redirectUri);\r\n }\r\n else {\r\n // Validate and include redirect uri\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n }\r\n // Add scope array, parameter builder will add default scopes and dedupe\r\n parameterBuilder.addScopes(request.scopes);\r\n // add code: user set, not validated\r\n parameterBuilder.addAuthorizationCode(request.code);\r\n // Add library metadata\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n // add code_verifier if passed\r\n if (request.codeVerifier) {\r\n parameterBuilder.addCodeVerifier(request.codeVerifier);\r\n }\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n parameterBuilder.addGrantType(GrantType.AUTHORIZATION_CODE_GRANT);\r\n parameterBuilder.addClientInfo();\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils, this.performanceClient);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _d.sent();\r\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfString);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n }\r\n _d.label = 3;\r\n case 3:\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n ccsCred = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCred = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n else {\r\n ccsCred = request.ccsCredential;\r\n }\r\n // Adds these as parameters in the request instead of headers to prevent CORS preflight request\r\n if (this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(ccsCred.credential);\r\n break;\r\n }\r\n }\r\n if (request.tokenBodyParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenBodyParameters);\r\n }\r\n // Add hybrid spa parameters if not already provided\r\n if (request.enableSpaAuthorizationCode && (!request.tokenBodyParameters || !request.tokenBodyParameters[AADServerParamKeys.RETURN_SPA_CODE])) {\r\n parameterBuilder.addExtraQueryParameters((_c = {},\r\n _c[AADServerParamKeys.RETURN_SPA_CODE] = \"1\",\r\n _c));\r\n }\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This API validates the `AuthorizationCodeUrlRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createAuthCodeUrlQueryString = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, requestScopes, correlationId, accountSid, accountLoginHintClaim, clientInfo, clientInfo, clientInfo, popTokenGenerator, reqCnfData;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientCreateQueryString, request.correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n requestScopes = __spreadArrays(request.scopes || [], request.extraScopesToConsent || []);\r\n parameterBuilder.addScopes(requestScopes);\r\n // validate the redirectUri (to be a non null value)\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n // add response_mode. If not passed in it defaults to query.\r\n parameterBuilder.addResponseMode(request.responseMode);\r\n // add response_type = code\r\n parameterBuilder.addResponseTypeCode();\r\n // add library info parameters\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n // add client_info=1\r\n parameterBuilder.addClientInfo();\r\n if (request.codeChallenge && request.codeChallengeMethod) {\r\n parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);\r\n }\r\n if (request.prompt) {\r\n parameterBuilder.addPrompt(request.prompt);\r\n }\r\n if (request.domainHint) {\r\n parameterBuilder.addDomainHint(request.domainHint);\r\n }\r\n // Add sid or loginHint with preference for login_hint claim (in request) -> sid -> loginHint (upn/email) -> username of AccountInfo object\r\n if (request.prompt !== PromptValue.SELECT_ACCOUNT) {\r\n // AAD will throw if prompt=select_account is passed with an account hint\r\n if (request.sid && request.prompt === PromptValue.NONE) {\r\n // SessionID is only used in silent calls\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from request\");\r\n parameterBuilder.addSid(request.sid);\r\n }\r\n else if (request.account) {\r\n accountSid = this.extractAccountSid(request.account);\r\n accountLoginHintClaim = this.extractLoginHint(request.account);\r\n // If login_hint claim is present, use it over sid/username\r\n if (accountLoginHintClaim) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: login_hint claim present on account\");\r\n parameterBuilder.addLoginHint(accountLoginHintClaim);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n else if (accountSid && request.prompt === PromptValue.NONE) {\r\n /*\r\n * If account and loginHint are provided, we will check account first for sid before adding loginHint\r\n * SessionId is only used in silent calls\r\n */\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from account\");\r\n parameterBuilder.addSid(accountSid);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n else if (request.account.username) {\r\n // Fallback to account username if provided\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from account\");\r\n parameterBuilder.addLoginHint(request.account.username);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: No account, adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints\");\r\n }\r\n if (request.nonce) {\r\n parameterBuilder.addNonce(request.nonce);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n if (!request.nativeBroker) return [3 /*break*/, 2];\r\n // signal ests that this is a WAM call\r\n parameterBuilder.addNativeBroker();\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _b.sent();\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfHash);\r\n _b.label = 2;\r\n case 2: return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This API validates the `EndSessionRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createLogoutUrlQueryString = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.postLogoutRedirectUri) {\r\n parameterBuilder.addPostLogoutRedirectUri(request.postLogoutRedirectUri);\r\n }\r\n if (request.correlationId) {\r\n parameterBuilder.addCorrelationId(request.correlationId);\r\n }\r\n if (request.idTokenHint) {\r\n parameterBuilder.addIdTokenHint(request.idTokenHint);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (request.logoutHint) {\r\n parameterBuilder.addLogoutHint(request.logoutHint);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Helper to get sid from account. Returns null if idTokenClaims are not present or sid is not present.\r\n * @param account\r\n */\r\n AuthorizationCodeClient.prototype.extractAccountSid = function (account) {\r\n var _a;\r\n return ((_a = account.idTokenClaims) === null || _a === void 0 ? void 0 : _a.sid) || null;\r\n };\r\n AuthorizationCodeClient.prototype.extractLoginHint = function (account) {\r\n var _a;\r\n return ((_a = account.idTokenClaims) === null || _a === void 0 ? void 0 : _a.login_hint) || null;\r\n };\r\n return AuthorizationCodeClient;\r\n}(BaseClient));\n\nexport { AuthorizationCodeClient };\n//# sourceMappingURL=AuthorizationCodeClient.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { AuthenticationScheme, GrantType, HeaderNames, Errors } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage } from '../error/InteractionRequiredAuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * OAuth2.0 refresh token client\r\n */\r\nvar RefreshTokenClient = /** @class */ (function (_super) {\r\n __extends(RefreshTokenClient, _super);\r\n function RefreshTokenClient(configuration, performanceClient) {\r\n return _super.call(this, configuration, performanceClient) || this;\r\n }\r\n RefreshTokenClient.prototype.acquireToken = function (request) {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, reqTimestamp, response, httpVerToken, requestId, responseHandler;\r\n var _this = this;\r\n return __generator(this, function (_h) {\r\n switch (_h.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n this.logger.verbose(\"RefreshTokenClientAcquireToken called\", request.correlationId);\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n case 1:\r\n response = _h.sent();\r\n httpVerToken = (_d = response.headers) === null || _d === void 0 ? void 0 : _d[HeaderNames.X_MS_HTTP_VERSION];\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n refreshTokenSize: ((_e = response.body.refresh_token) === null || _e === void 0 ? void 0 : _e.length) || 0,\r\n });\r\n if (httpVerToken) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n httpVerToken: httpVerToken,\r\n });\r\n }\r\n requestId = (_f = response.headers) === null || _f === void 0 ? void 0 : _f[HeaderNames.X_MS_REQUEST_ID];\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n responseHandler.validateTokenResponse(response.body);\r\n (_g = this.performanceClient) === null || _g === void 0 ? void 0 : _g.setPreQueueTime(PerformanceEvents.HandleServerTokenResponse, request.correlationId);\r\n return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, undefined, undefined, true, request.forceCache, requestId).then(function (result) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.logger.verbose(\"Error in fetching refresh token\", request.correlationId);\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets cached refresh token and attaches to request, then calls acquireToken API\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenByRefreshToken = function (request) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isFOCI, noFamilyRTInCache, clientMismatchErrorWithFamilyRT;\r\n return __generator(this, function (_e) {\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, request.correlationId);\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment);\r\n // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\r\n if (isFOCI) {\r\n try {\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, true)];\r\n }\r\n catch (e) {\r\n noFamilyRTInCache = e instanceof InteractionRequiredAuthError && e.errorCode === InteractionRequiredAuthErrorMessage.noTokensFoundError.code;\r\n clientMismatchErrorWithFamilyRT = e instanceof ServerError && e.errorCode === Errors.INVALID_GRANT_ERROR && e.subError === Errors.CLIENT_MISMATCH_ERROR;\r\n // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\r\n if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n // throw in all other cases\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n // fall back to application refresh token acquisition\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n });\r\n });\r\n };\r\n /**\r\n * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenWithCachedRefreshToken = function (request, foci) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, refreshToken, refreshTokenRequest;\r\n return __generator(this, function (_d) {\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n this.logger.verbose(\"RefreshTokenClientAcquireTokenWithCachedRefreshToken called\", request.correlationId);\r\n refreshToken = this.cacheManager.getRefreshToken(request.account, foci);\r\n if (!refreshToken) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.discardMeasurement();\r\n throw InteractionRequiredAuthError.createNoTokensFoundError();\r\n }\r\n // attach cached RT size to the current measurement\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n refreshTokenRequest = __assign(__assign({}, request), { refreshToken: refreshToken.secret, authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER, ccsCredential: {\r\n credential: request.account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n } });\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n return [2 /*return*/, this.acquireToken(refreshTokenRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Constructs the network message and makes a NW call to the underlying secure token service\r\n * @param request\r\n * @param authority\r\n */\r\n RefreshTokenClient.prototype.executeTokenRequest = function (request, authority) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, queryParametersString, endpoint, requestBody, headers, thumbprint;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n acquireTokenMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientCreateTokenRequestBody, request.correlationId);\r\n queryParametersString = this.createTokenQueryParameters(request);\r\n endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParametersString);\r\n return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _d.sent();\r\n headers = this.createTokenRequestHeaders(request.ccsCredential);\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)\r\n .then(function (result) {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to create the token request body\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.createTokenRequestBody = function (request) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, acquireTokenMeasurement, parameterBuilder, clientAssertion, popTokenGenerator, reqCnfData, clientInfo;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientCreateTokenRequestBody, request.correlationId);\r\n correlationId = request.correlationId;\r\n acquireTokenMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.BaseClientCreateTokenRequestHeaders, correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n parameterBuilder.addScopes(request.scopes);\r\n parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\r\n parameterBuilder.addClientInfo();\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n parameterBuilder.addCorrelationId(correlationId);\r\n parameterBuilder.addRefreshToken(request.refreshToken);\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils, this.performanceClient);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _d.sent();\r\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfString);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n }\r\n _d.label = 3;\r\n case 3:\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (this.config.systemOptions.preventCorsPreflight && request.ccsCredential) {\r\n switch (request.ccsCredential.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.ccsCredential.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(request.ccsCredential.credential);\r\n break;\r\n }\r\n }\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n return RefreshTokenClient;\r\n}(BaseClient));\n\nexport { RefreshTokenClient };\n//# sourceMappingURL=RefreshTokenClient.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { RefreshTokenClient } from './RefreshTokenClient.js';\nimport { ClientAuthError, ClientAuthErrorMessage } from '../error/ClientAuthError.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { CacheOutcome } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentFlowClient = /** @class */ (function (_super) {\r\n __extends(SilentFlowClient, _super);\r\n function SilentFlowClient(configuration, performanceClient) {\r\n return _super.call(this, configuration, performanceClient) || this;\r\n }\r\n /**\r\n * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew\r\n * the given token and returns the renewed token\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1, refreshTokenClient;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.acquireCachedToken(request)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof ClientAuthError && e_1.errorCode === ClientAuthErrorMessage.tokenRefreshRequired.code) {\r\n refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(request)];\r\n }\r\n else {\r\n throw e_1;\r\n }\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves token from cache or throws an error if it must be refreshed.\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireCachedToken = function (request) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var environment, cacheRecord;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n if (request.forceRefresh) {\r\n // Must refresh due to present force_refresh flag.\r\n (_a = this.serverTelemetryManager) === null || _a === void 0 ? void 0 : _a.setCacheOutcome(CacheOutcome.FORCE_REFRESH);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Skipping cache because forceRefresh is true.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n environment = request.authority || this.authority.getPreferredCache();\r\n cacheRecord = this.cacheManager.readCacheRecord(request.account, request, environment);\r\n if (!cacheRecord.accessToken) {\r\n // Must refresh due to non-existent access_token.\r\n (_b = this.serverTelemetryManager) === null || _b === void 0 ? void 0 : _b.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - No access token found in cache for the given properties.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||\r\n TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {\r\n // Must refresh due to expired access_token.\r\n (_c = this.serverTelemetryManager) === null || _c === void 0 ? void 0 : _c.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within \" + this.config.systemOptions.tokenRenewalOffsetSeconds + \" seconds.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (cacheRecord.accessToken.refreshOn && TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {\r\n // Must refresh due to the refresh_in value.\r\n (_d = this.serverTelemetryManager) === null || _d === void 0 ? void 0 : _d.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n if (this.config.serverTelemetryManager) {\r\n this.config.serverTelemetryManager.incrementCacheHits();\r\n }\r\n return [4 /*yield*/, this.generateResultFromCacheRecord(cacheRecord, request)];\r\n case 1: return [2 /*return*/, _e.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to build response object from the CacheRecord\r\n * @param cacheRecord\r\n */\r\n SilentFlowClient.prototype.generateResultFromCacheRecord = function (cacheRecord, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj, authTime;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (cacheRecord.idToken) {\r\n idTokenObj = new AuthToken(cacheRecord.idToken.secret, this.config.cryptoInterface);\r\n }\r\n // token max_age check\r\n if (request.maxAge || (request.maxAge === 0)) {\r\n authTime = idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.auth_time;\r\n if (!authTime) {\r\n throw ClientAuthError.createAuthTimeNotFoundError();\r\n }\r\n AuthToken.checkMaxAge(authTime, request.maxAge);\r\n }\r\n return [4 /*yield*/, ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenObj)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return SilentFlowClient;\r\n}(BaseClient));\n\nexport { SilentFlowClient };\n//# sourceMappingURL=SilentFlowClient.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isOpenIdConfigResponse(response) {\r\n return (response.hasOwnProperty(\"authorization_endpoint\") &&\r\n response.hasOwnProperty(\"token_endpoint\") &&\r\n response.hasOwnProperty(\"issuer\") &&\r\n response.hasOwnProperty(\"jwks_uri\"));\r\n}\n\nexport { isOpenIdConfigResponse };\n//# sourceMappingURL=OpenIdConfigResponse.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar rawMetdataJSON = { \"endpointMetadata\": { \"https://login.microsoftonline.com/common/\": { \"token_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/common/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/common/\": { \"token_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" }, \"https://login.microsoftonline.com/consumers/\": { \"token_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/consumers/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/consumers/\": { \"token_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" }, \"https://login.microsoftonline.com/organizations/\": { \"token_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/organizations/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/organizations/\": { \"token_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" } }, \"instanceDiscoveryMetadata\": { \"https://login.microsoftonline.com/common/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/common/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/common/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.com/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.com/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] } } };\r\nvar EndpointMetadata = rawMetdataJSON.endpointMetadata;\r\nvar InstanceDiscoveryMetadata = rawMetdataJSON.instanceDiscoveryMetadata;\n\nexport { EndpointMetadata, InstanceDiscoveryMetadata, rawMetdataJSON };\n//# sourceMappingURL=AuthorityMetadata.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Protocol modes supported by MSAL.\r\n */\r\nvar ProtocolMode;\r\n(function (ProtocolMode) {\r\n ProtocolMode[\"AAD\"] = \"AAD\";\r\n ProtocolMode[\"OIDC\"] = \"OIDC\";\r\n})(ProtocolMode || (ProtocolMode = {}));\n\nexport { ProtocolMode };\n//# sourceMappingURL=ProtocolMode.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { AUTHORITY_METADATA_CONSTANTS } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityMetadataEntity = /** @class */ (function () {\r\n function AuthorityMetadataEntity() {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n }\r\n /**\r\n * Update the entity with new aliases, preferred_cache and preferred_network values\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateCloudDiscoveryMetadata = function (metadata, fromNetwork) {\r\n this.aliases = metadata.aliases;\r\n this.preferred_cache = metadata.preferred_cache;\r\n this.preferred_network = metadata.preferred_network;\r\n this.aliasesFromNetwork = fromNetwork;\r\n };\r\n /**\r\n * Update the entity with new endpoints\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateEndpointMetadata = function (metadata, fromNetwork) {\r\n this.authorization_endpoint = metadata.authorization_endpoint;\r\n this.token_endpoint = metadata.token_endpoint;\r\n this.end_session_endpoint = metadata.end_session_endpoint;\r\n this.issuer = metadata.issuer;\r\n this.endpointsFromNetwork = fromNetwork;\r\n this.jwks_uri = metadata.jwks_uri;\r\n };\r\n /**\r\n * Save the authority that was used to create this cache entry\r\n * @param authority\r\n */\r\n AuthorityMetadataEntity.prototype.updateCanonicalAuthority = function (authority) {\r\n this.canonical_authority = authority;\r\n };\r\n /**\r\n * Reset the exiresAt value\r\n */\r\n AuthorityMetadataEntity.prototype.resetExpiresAt = function () {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n };\r\n /**\r\n * Returns whether or not the data needs to be refreshed\r\n */\r\n AuthorityMetadataEntity.prototype.isExpired = function () {\r\n return this.expiresAt <= TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AuthorityMetadataEntity.isAuthorityMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) === 0 &&\r\n entity.hasOwnProperty(\"aliases\") &&\r\n entity.hasOwnProperty(\"preferred_cache\") &&\r\n entity.hasOwnProperty(\"preferred_network\") &&\r\n entity.hasOwnProperty(\"canonical_authority\") &&\r\n entity.hasOwnProperty(\"authorization_endpoint\") &&\r\n entity.hasOwnProperty(\"token_endpoint\") &&\r\n entity.hasOwnProperty(\"issuer\") &&\r\n entity.hasOwnProperty(\"aliasesFromNetwork\") &&\r\n entity.hasOwnProperty(\"endpointsFromNetwork\") &&\r\n entity.hasOwnProperty(\"expiresAt\") &&\r\n entity.hasOwnProperty(\"jwks_uri\"));\r\n };\r\n return AuthorityMetadataEntity;\r\n}());\n\nexport { AuthorityMetadataEntity };\n//# sourceMappingURL=AuthorityMetadataEntity.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryResponse(response) {\r\n return (response.hasOwnProperty(\"tenant_discovery_endpoint\") &&\r\n response.hasOwnProperty(\"metadata\"));\r\n}\n\nexport { isCloudInstanceDiscoveryResponse };\n//# sourceMappingURL=CloudInstanceDiscoveryResponse.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryErrorResponse(response) {\r\n return (response.hasOwnProperty(\"error\") &&\r\n response.hasOwnProperty(\"error_description\"));\r\n}\n\nexport { isCloudInstanceDiscoveryErrorResponse };\n//# sourceMappingURL=CloudInstanceDiscoveryErrorResponse.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { RegionDiscoverySources, ResponseCodes, Constants } from '../utils/Constants.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RegionDiscovery = /** @class */ (function () {\r\n function RegionDiscovery(networkInterface, performanceClient, correlationId) {\r\n this.networkInterface = networkInterface;\r\n this.performanceClient = performanceClient;\r\n this.correlationId = correlationId;\r\n }\r\n /**\r\n * Detect the region from the application's environment.\r\n *\r\n * @returns Promise\r\n */\r\n RegionDiscovery.prototype.detectRegion = function (environmentRegion, regionDiscoveryMetadata) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var autodetectedRegionName, options, localIMDSVersionResponse, currentIMDSVersion, currentIMDSVersionResponse;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);\r\n autodetectedRegionName = environmentRegion;\r\n if (!!autodetectedRegionName) return [3 /*break*/, 8];\r\n options = RegionDiscovery.IMDS_OPTIONS;\r\n _e.label = 1;\r\n case 1:\r\n _e.trys.push([1, 6, , 7]);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [4 /*yield*/, this.getRegionFromIMDS(Constants.IMDS_VERSION, options)];\r\n case 2:\r\n localIMDSVersionResponse = _e.sent();\r\n if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = localIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n if (!(localIMDSVersionResponse.status === ResponseCodes.httpBadRequest)) return [3 /*break*/, 5];\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetCurrentVersion, this.correlationId);\r\n return [4 /*yield*/, this.getCurrentVersion(options)];\r\n case 3:\r\n currentIMDSVersion = _e.sent();\r\n if (!currentIMDSVersion) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n }\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [4 /*yield*/, this.getRegionFromIMDS(currentIMDSVersion, options)];\r\n case 4:\r\n currentIMDSVersionResponse = _e.sent();\r\n if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = currentIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n _e.label = 5;\r\n case 5: return [3 /*break*/, 7];\r\n case 6:\r\n _e.sent();\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.ENVIRONMENT_VARIABLE;\r\n _e.label = 9;\r\n case 9:\r\n // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\r\n if (!autodetectedRegionName) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n }\r\n return [2 /*return*/, autodetectedRegionName || null];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Make the call to the IMDS endpoint\r\n *\r\n * @param imdsEndpointUrl\r\n * @returns Promise>\r\n */\r\n RegionDiscovery.prototype.getRegionFromIMDS = function (version, options) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_b) {\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [2 /*return*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?api-version=\" + version + \"&format=text\", options, Constants.IMDS_TIMEOUT)];\r\n });\r\n });\r\n };\r\n /**\r\n * Get the most recent version of the IMDS endpoint available\r\n *\r\n * @returns Promise\r\n */\r\n RegionDiscovery.prototype.getCurrentVersion = function (options) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryGetCurrentVersion, this.correlationId);\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?format=json\", options)];\r\n case 2:\r\n response = _b.sent();\r\n // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\r\n if (response.status === ResponseCodes.httpBadRequest && response.body && response.body[\"newest-versions\"] && response.body[\"newest-versions\"].length > 0) {\r\n return [2 /*return*/, response.body[\"newest-versions\"][0]];\r\n }\r\n return [2 /*return*/, null];\r\n case 3:\r\n _b.sent();\r\n return [2 /*return*/, null];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // Options for the IMDS endpoint request\r\n RegionDiscovery.IMDS_OPTIONS = {\r\n headers: {\r\n Metadata: \"true\",\r\n },\r\n };\r\n return RegionDiscovery;\r\n}());\n\nexport { RegionDiscovery };\n//# sourceMappingURL=RegionDiscovery.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthorityType } from './AuthorityType.js';\nimport { isOpenIdConfigResponse } from './OpenIdConfigResponse.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { Constants, AuthorityMetadataSource, RegionDiscoveryOutcomes } from '../utils/Constants.js';\nimport { EndpointMetadata, InstanceDiscoveryMetadata } from './AuthorityMetadata.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ProtocolMode } from './ProtocolMode.js';\nimport { AuthorityMetadataEntity } from '../cache/entities/AuthorityMetadataEntity.js';\nimport { AzureCloudInstance } from './AuthorityOptions.js';\nimport { isCloudInstanceDiscoveryResponse } from './CloudInstanceDiscoveryResponse.js';\nimport { isCloudInstanceDiscoveryErrorResponse } from './CloudInstanceDiscoveryErrorResponse.js';\nimport { RegionDiscovery } from './RegionDiscovery.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The authority class validates the authority URIs used by the user, and retrieves the OpenID Configuration Data from the\r\n * endpoint. It will store the pertinent config data in this object for use during token calls.\r\n */\r\nvar Authority = /** @class */ (function () {\r\n function Authority(authority, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n this.canonicalAuthority = authority;\r\n this._canonicalAuthority.validateAsUri();\r\n this.networkInterface = networkInterface;\r\n this.cacheManager = cacheManager;\r\n this.authorityOptions = authorityOptions;\r\n this.regionDiscoveryMetadata = { region_used: undefined, region_source: undefined, region_outcome: undefined };\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n this.correlationId = correlationId;\r\n this.regionDiscovery = new RegionDiscovery(networkInterface, this.performanceClient, this.correlationId);\r\n }\r\n Object.defineProperty(Authority.prototype, \"authorityType\", {\r\n // See above for AuthorityType\r\n get: function () {\r\n // CIAM auth url pattern is being standardized as: .ciamlogin.com\r\n if (this.canonicalAuthorityUrlComponents.HostNameAndPort.endsWith(Constants.CIAM_AUTH_URL)) {\r\n return AuthorityType.Ciam;\r\n }\r\n var pathSegments = this.canonicalAuthorityUrlComponents.PathSegments;\r\n if (pathSegments.length) {\r\n switch (pathSegments[0].toLowerCase()) {\r\n case Constants.ADFS:\r\n return AuthorityType.Adfs;\r\n case Constants.DSTS:\r\n return AuthorityType.Dsts;\r\n }\r\n }\r\n return AuthorityType.Default;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"protocolMode\", {\r\n /**\r\n * ProtocolMode enum representing the way endpoints are constructed.\r\n */\r\n get: function () {\r\n return this.authorityOptions.protocolMode;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"options\", {\r\n /**\r\n * Returns authorityOptions which can be used to reinstantiate a new authority instance\r\n */\r\n get: function () {\r\n return this.authorityOptions;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthority\", {\r\n /**\r\n * A URL that is the authority set by the developer\r\n */\r\n get: function () {\r\n return this._canonicalAuthority.urlString;\r\n },\r\n /**\r\n * Sets canonical authority.\r\n */\r\n set: function (url) {\r\n this._canonicalAuthority = new UrlString(url);\r\n this._canonicalAuthority.validateAsUri();\r\n this._canonicalAuthorityUrlComponents = null;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthorityUrlComponents\", {\r\n /**\r\n * Get authority components.\r\n */\r\n get: function () {\r\n if (!this._canonicalAuthorityUrlComponents) {\r\n this._canonicalAuthorityUrlComponents = this._canonicalAuthority.getUrlComponents();\r\n }\r\n return this._canonicalAuthorityUrlComponents;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"hostnameAndPort\", {\r\n /**\r\n * Get hostname and port i.e. login.microsoftonline.com\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tenant\", {\r\n /**\r\n * Get tenant for authority.\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.PathSegments[0];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"authorizationEndpoint\", {\r\n /**\r\n * OAuth /authorize endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.authorization_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tokenEndpoint\", {\r\n /**\r\n * OAuth /token endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"deviceCodeEndpoint\", {\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint.replace(\"/token\", \"/devicecode\"));\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"endSessionEndpoint\", {\r\n /**\r\n * OAuth logout endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n // ROPC policies may not have end_session_endpoint set\r\n if (!this.metadata.end_session_endpoint) {\r\n throw ClientAuthError.createLogoutNotSupportedError();\r\n }\r\n var endpoint = this.replacePath(this.metadata.end_session_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"selfSignedJwtAudience\", {\r\n /**\r\n * OAuth issuer for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.issuer);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"jwksUri\", {\r\n /**\r\n * Jwks_uri for token signing keys\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.jwks_uri);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Replaces tenant in url path with current tenant. Defaults to common.\r\n * @param urlString\r\n */\r\n Authority.prototype.replaceTenant = function (urlString) {\r\n return urlString.replace(/{tenant}|{tenantid}/g, this.tenant);\r\n };\r\n /**\r\n * Replaces path such as tenant or policy with the current tenant or policy.\r\n * @param urlString\r\n */\r\n Authority.prototype.replacePath = function (urlString) {\r\n var endpoint = urlString;\r\n var cachedAuthorityUrl = new UrlString(this.metadata.canonical_authority);\r\n var cachedAuthorityParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n var currentAuthorityParts = this.canonicalAuthorityUrlComponents.PathSegments;\r\n currentAuthorityParts.forEach(function (currentPart, index) {\r\n var cachedPart = cachedAuthorityParts[index];\r\n if (currentPart !== cachedPart) {\r\n endpoint = endpoint.replace(\"/\" + cachedPart + \"/\", \"/\" + currentPart + \"/\");\r\n }\r\n });\r\n return endpoint;\r\n };\r\n Object.defineProperty(Authority.prototype, \"defaultOpenIdConfigurationEndpoint\", {\r\n /**\r\n * The default open id configuration endpoint for any canonical authority.\r\n */\r\n get: function () {\r\n if (this.authorityType === AuthorityType.Adfs ||\r\n this.authorityType === AuthorityType.Dsts ||\r\n this.protocolMode === ProtocolMode.OIDC) {\r\n return this.canonicalAuthority + \".well-known/openid-configuration\";\r\n }\r\n return this.canonicalAuthority + \"v2.0/.well-known/openid-configuration\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Boolean that returns whethr or not tenant discovery has been completed.\r\n */\r\n Authority.prototype.discoveryComplete = function () {\r\n return !!this.metadata;\r\n };\r\n /**\r\n * Perform endpoint discovery to discover aliases, preferred_cache, preferred_network\r\n * and the /authorize, /token and logout endpoints.\r\n */\r\n Authority.prototype.resolveEndpointsAsync = function () {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadataEntity, cloudDiscoverySource, endpointSource, cacheKey;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityResolveEndpointsAsync, this.correlationId);\r\n metadataEntity = this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);\r\n if (!metadataEntity) {\r\n metadataEntity = new AuthorityMetadataEntity();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata, this.correlationId);\r\n return [4 /*yield*/, this.updateCloudDiscoveryMetadata(metadataEntity)];\r\n case 1:\r\n cloudDiscoverySource = _d.sent();\r\n this.canonicalAuthority = this.canonicalAuthority.replace(this.hostnameAndPort, metadataEntity.preferred_network);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.AuthorityUpdateEndpointMetadata, this.correlationId);\r\n return [4 /*yield*/, this.updateEndpointMetadata(metadataEntity)];\r\n case 2:\r\n endpointSource = _d.sent();\r\n if (cloudDiscoverySource !== AuthorityMetadataSource.CACHE && endpointSource !== AuthorityMetadataSource.CACHE) {\r\n // Reset the expiration time unless both values came from a successful cache lookup\r\n metadataEntity.resetExpiresAt();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n cacheKey = this.cacheManager.generateAuthorityMetadataCacheKey(metadataEntity.preferred_cache);\r\n this.cacheManager.setAuthorityMetadata(cacheKey, metadataEntity);\r\n this.metadata = metadataEntity;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Update AuthorityMetadataEntity with new endpoints and return where the information came from\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.updateEndpointMetadata = function (metadataEntity) {\r\n var _a, _b, _c, _d, _e, _f;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata, harcodedMetadata;\r\n return __generator(this, function (_g) {\r\n switch (_g.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateEndpointMetadata, this.correlationId);\r\n metadata = this.getEndpointMetadataFromConfig();\r\n if (metadata) {\r\n metadataEntity.updateEndpointMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.endpointsFromNetwork && !metadataEntity.isExpired()) {\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork, this.correlationId);\r\n return [4 /*yield*/, this.getEndpointMetadataFromNetwork()];\r\n case 1:\r\n metadata = _g.sent();\r\n if (!metadata) return [3 /*break*/, 4];\r\n if (!((_c = this.authorityOptions.azureRegionConfiguration) === null || _c === void 0 ? void 0 : _c.azureRegion)) return [3 /*break*/, 3];\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n return [4 /*yield*/, this.updateMetadataWithRegionalInformation(metadata)];\r\n case 2:\r\n metadata = _g.sent();\r\n _g.label = 3;\r\n case 3:\r\n metadataEntity.updateEndpointMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n case 4:\r\n harcodedMetadata = this.getEndpointMetadataFromHardcodedValues();\r\n if (!(harcodedMetadata && !this.authorityOptions.skipAuthorityMetadataCache)) return [3 /*break*/, 7];\r\n if (!((_e = this.authorityOptions.azureRegionConfiguration) === null || _e === void 0 ? void 0 : _e.azureRegion)) return [3 /*break*/, 6];\r\n (_f = this.performanceClient) === null || _f === void 0 ? void 0 : _f.setPreQueueTime(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n return [4 /*yield*/, this.updateMetadataWithRegionalInformation(harcodedMetadata)];\r\n case 5:\r\n harcodedMetadata = _g.sent();\r\n _g.label = 6;\r\n case 6:\r\n metadataEntity.updateEndpointMetadata(harcodedMetadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.HARDCODED_VALUES];\r\n case 7: throw ClientAuthError.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint);\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Compares the number of url components after the domain to determine if the cached\r\n * authority metadata can be used for the requested authority. Protects against same domain different\r\n * authority such as login.microsoftonline.com/tenant and login.microsoftonline.com/tfp/tenant/policy\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.isAuthoritySameType = function (metadataEntity) {\r\n var cachedAuthorityUrl = new UrlString(metadataEntity.canonical_authority);\r\n var cachedParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n return cachedParts.length === this.canonicalAuthorityUrlComponents.PathSegments.length;\r\n };\r\n /**\r\n * Parse authorityMetadata config option\r\n */\r\n Authority.prototype.getEndpointMetadataFromConfig = function () {\r\n if (this.authorityOptions.authorityMetadata) {\r\n try {\r\n return JSON.parse(this.authorityOptions.authorityMetadata);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Gets OAuth endpoints from the given OpenID configuration endpoint.\r\n *\r\n * @param hasHardcodedMetadata boolean\r\n */\r\n Authority.prototype.getEndpointMetadataFromNetwork = function () {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var options, response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork, this.correlationId);\r\n options = {};\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.\r\n sendGetRequestAsync(this.defaultOpenIdConfigurationEndpoint, options)];\r\n case 2:\r\n response = _b.sent();\r\n return [2 /*return*/, isOpenIdConfigResponse(response.body) ? response.body : null];\r\n case 3:\r\n _b.sent();\r\n return [2 /*return*/, null];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get OAuth endpoints for common authorities.\r\n */\r\n Authority.prototype.getEndpointMetadataFromHardcodedValues = function () {\r\n if (this.canonicalAuthority in EndpointMetadata) {\r\n return EndpointMetadata[this.canonicalAuthority];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Update the retrieved metadata with regional information.\r\n */\r\n Authority.prototype.updateMetadataWithRegionalInformation = function (metadata) {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var autodetectedRegionName, azureRegion;\r\n return __generator(this, function (_h) {\r\n switch (_h.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);\r\n return [4 /*yield*/, this.regionDiscovery.detectRegion((_c = this.authorityOptions.azureRegionConfiguration) === null || _c === void 0 ? void 0 : _c.environmentRegion, this.regionDiscoveryMetadata)];\r\n case 1:\r\n autodetectedRegionName = _h.sent();\r\n azureRegion = ((_d = this.authorityOptions.azureRegionConfiguration) === null || _d === void 0 ? void 0 : _d.azureRegion) === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG\r\n ? autodetectedRegionName\r\n : (_e = this.authorityOptions.azureRegionConfiguration) === null || _e === void 0 ? void 0 : _e.azureRegion;\r\n if (((_f = this.authorityOptions.azureRegionConfiguration) === null || _f === void 0 ? void 0 : _f.azureRegion) === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {\r\n this.regionDiscoveryMetadata.region_outcome = autodetectedRegionName ?\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL :\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;\r\n }\r\n else {\r\n if (autodetectedRegionName) {\r\n this.regionDiscoveryMetadata.region_outcome = (((_g = this.authorityOptions.azureRegionConfiguration) === null || _g === void 0 ? void 0 : _g.azureRegion) === autodetectedRegionName) ?\r\n RegionDiscoveryOutcomes.CONFIGURED_MATCHES_DETECTED :\r\n RegionDiscoveryOutcomes.CONFIGURED_NOT_DETECTED;\r\n }\r\n else {\r\n this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;\r\n }\r\n }\r\n if (azureRegion) {\r\n this.regionDiscoveryMetadata.region_used = azureRegion;\r\n return [2 /*return*/, Authority.replaceWithRegionalInformation(metadata, azureRegion)];\r\n }\r\n return [2 /*return*/, metadata];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the AuthorityMetadataEntity with new aliases, preferred_network and preferred_cache\r\n * and returns where the information was retrieved from\r\n * @param metadataEntity\r\n * @returns AuthorityMetadataSource\r\n */\r\n Authority.prototype.updateCloudDiscoveryMetadata = function (metadataEntity) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata, metadataEntityExpired, harcodedMetadata;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata, this.correlationId);\r\n // attempt to read metadata from the config\r\n this.logger.verbose(\"Attempting to get cloud discovery metadata in the config\");\r\n this.logger.verbosePii(\"Known Authorities: \" + (this.authorityOptions.knownAuthorities || Constants.NOT_APPLICABLE));\r\n this.logger.verbosePii(\"Authority Metadata: \" + (this.authorityOptions.authorityMetadata || Constants.NOT_APPLICABLE));\r\n this.logger.verbosePii(\"Canonical Authority: \" + (metadataEntity.canonical_authority || Constants.NOT_APPLICABLE));\r\n metadata = this.getCloudDiscoveryMetadataFromConfig();\r\n if (metadata) {\r\n this.logger.verbose(\"Found cloud discovery metadata in the config.\");\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n // If the cached metadata came from config but that config was not passed to this instance, we must go to the network\r\n this.logger.verbose(\"Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the cache.\");\r\n metadataEntityExpired = metadataEntity.isExpired();\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.aliasesFromNetwork && !metadataEntityExpired) {\r\n this.logger.verbose(\"Found metadata in the cache.\");\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n else if (metadataEntityExpired) {\r\n this.logger.verbose(\"The metadata entity is expired.\");\r\n }\r\n this.logger.verbose(\"Did not find cloud discovery metadata in the cache... Attempting to get cloud discovery metadata from the network.\");\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork, this.correlationId);\r\n return [4 /*yield*/, this.getCloudDiscoveryMetadataFromNetwork()];\r\n case 1:\r\n metadata = _c.sent();\r\n if (metadata) {\r\n this.logger.verbose(\"cloud discovery metadata was successfully returned from getCloudDiscoveryMetadataFromNetwork()\");\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n }\r\n this.logger.verbose(\"Did not find cloud discovery metadata from the network... Attempting to get cloud discovery metadata from hardcoded values.\");\r\n harcodedMetadata = this.getCloudDiscoveryMetadataFromHarcodedValues();\r\n if (harcodedMetadata && !this.options.skipAuthorityMetadataCache) {\r\n this.logger.verbose(\"Found cloud discovery metadata from hardcoded values.\");\r\n metadataEntity.updateCloudDiscoveryMetadata(harcodedMetadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.HARDCODED_VALUES];\r\n }\r\n // Metadata could not be obtained from the config, cache, network or hardcoded values\r\n this.logger.error(\"Did not find cloud discovery metadata from hardcoded values... Metadata could not be obtained from config, cache, network or hardcoded values. Throwing Untrusted Authority Error.\");\r\n throw ClientConfigurationError.createUntrustedAuthorityError();\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Parse cloudDiscoveryMetadata config or check knownAuthorities\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromConfig = function () {\r\n // CIAM does not support cloud discovery metadata\r\n if (this.authorityType === AuthorityType.Ciam) {\r\n this.logger.verbose(\"CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host.\");\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n // Check if network response was provided in config\r\n if (this.authorityOptions.cloudDiscoveryMetadata) {\r\n this.logger.verbose(\"The cloud discovery metadata has been provided as a network response, in the config.\");\r\n try {\r\n this.logger.verbose(\"Attempting to parse the cloud discovery metadata.\");\r\n var parsedResponse = JSON.parse(this.authorityOptions.cloudDiscoveryMetadata);\r\n var metadata = Authority.getCloudDiscoveryMetadataFromNetworkResponse(parsedResponse.metadata, this.hostnameAndPort);\r\n this.logger.verbose(\"Parsed the cloud discovery metadata.\");\r\n if (metadata) {\r\n this.logger.verbose(\"There is returnable metadata attached to the parsed cloud discovery metadata.\");\r\n return metadata;\r\n }\r\n else {\r\n this.logger.verbose(\"There is no metadata attached to the parsed cloud discovery metadata.\");\r\n }\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error.\");\r\n throw ClientConfigurationError.createInvalidCloudDiscoveryMetadataError();\r\n }\r\n }\r\n // If cloudDiscoveryMetadata is empty or does not contain the host, check knownAuthorities\r\n if (this.isInKnownAuthorities()) {\r\n this.logger.verbose(\"The host is included in knownAuthorities. Creating new cloud discovery metadata from the host.\");\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return null;\r\n };\r\n /**\r\n * Called to get metadata from network if CloudDiscoveryMetadata was not populated by config\r\n *\r\n * @param hasHardcodedMetadata boolean\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromNetwork = function () {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var instanceDiscoveryEndpoint, options, match, response, typedResponseBody, metadata, error_1, typedError;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork, this.correlationId);\r\n instanceDiscoveryEndpoint = \"\" + Constants.AAD_INSTANCE_DISCOVERY_ENDPT + this.canonicalAuthority + \"oauth2/v2.0/authorize\";\r\n options = {};\r\n match = null;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(instanceDiscoveryEndpoint, options)];\r\n case 2:\r\n response = _b.sent();\r\n typedResponseBody = void 0;\r\n metadata = void 0;\r\n if (isCloudInstanceDiscoveryResponse(response.body)) {\r\n typedResponseBody = response.body;\r\n metadata = typedResponseBody.metadata;\r\n this.logger.verbosePii(\"tenant_discovery_endpoint is: \" + typedResponseBody.tenant_discovery_endpoint);\r\n }\r\n else if (isCloudInstanceDiscoveryErrorResponse(response.body)) {\r\n this.logger.warning(\"A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: \" + response.status);\r\n typedResponseBody = response.body;\r\n if (typedResponseBody.error === Constants.INVALID_INSTANCE) {\r\n this.logger.error(\"The CloudInstanceDiscoveryErrorResponse error is invalid_instance.\");\r\n return [2 /*return*/, null];\r\n }\r\n this.logger.warning(\"The CloudInstanceDiscoveryErrorResponse error is \" + typedResponseBody.error);\r\n this.logger.warning(\"The CloudInstanceDiscoveryErrorResponse error description is \" + typedResponseBody.error_description);\r\n this.logger.warning(\"Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []\");\r\n metadata = [];\r\n }\r\n else {\r\n this.logger.error(\"AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse\");\r\n return [2 /*return*/, null];\r\n }\r\n this.logger.verbose(\"Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request.\");\r\n match = Authority.getCloudDiscoveryMetadataFromNetworkResponse(metadata, this.hostnameAndPort);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n error_1 = _b.sent();\r\n if (error_1 instanceof AuthError) {\r\n this.logger.error(\"There was a network error while attempting to get the cloud discovery instance metadata.\\nError: \" + error_1.errorCode + \"\\nError Description: \" + error_1.errorMessage);\r\n }\r\n else {\r\n typedError = error_1;\r\n this.logger.error(\"A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata.\\nError: \" + typedError.name + \"\\nError Description: \" + typedError.message);\r\n }\r\n return [2 /*return*/, null];\r\n case 4:\r\n // Custom Domain scenario, host is trusted because Instance Discovery call succeeded\r\n if (!match) {\r\n this.logger.warning(\"The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request.\");\r\n this.logger.verbose(\"Creating custom Authority for custom domain scenario.\");\r\n match = Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return [2 /*return*/, match];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get cloud discovery metadata for common authorities\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromHarcodedValues = function () {\r\n if (this.canonicalAuthority in InstanceDiscoveryMetadata) {\r\n return InstanceDiscoveryMetadata[this.canonicalAuthority];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Helper function to determine if this host is included in the knownAuthorities config option\r\n */\r\n Authority.prototype.isInKnownAuthorities = function () {\r\n var _this = this;\r\n var matches = this.authorityOptions.knownAuthorities.filter(function (authority) {\r\n return UrlString.getDomainFromUrl(authority).toLowerCase() === _this.hostnameAndPort;\r\n });\r\n return matches.length > 0;\r\n };\r\n /**\r\n * helper function to populate the authority based on azureCloudOptions\r\n * @param authorityString\r\n * @param azureCloudOptions\r\n */\r\n Authority.generateAuthority = function (authorityString, azureCloudOptions) {\r\n var authorityAzureCloudInstance;\r\n if (azureCloudOptions && azureCloudOptions.azureCloudInstance !== AzureCloudInstance.None) {\r\n var tenant = azureCloudOptions.tenant ? azureCloudOptions.tenant : Constants.DEFAULT_COMMON_TENANT;\r\n authorityAzureCloudInstance = azureCloudOptions.azureCloudInstance + \"/\" + tenant + \"/\";\r\n }\r\n return authorityAzureCloudInstance ? authorityAzureCloudInstance : authorityString;\r\n };\r\n /**\r\n * Creates cloud discovery metadata object from a given host\r\n * @param host\r\n */\r\n Authority.createCloudDiscoveryMetadataFromHost = function (host) {\r\n return {\r\n preferred_network: host,\r\n preferred_cache: host,\r\n aliases: [host]\r\n };\r\n };\r\n /**\r\n * Searches instance discovery network response for the entry that contains the host in the aliases list\r\n * @param response\r\n * @param authority\r\n */\r\n Authority.getCloudDiscoveryMetadataFromNetworkResponse = function (response, authority) {\r\n for (var i = 0; i < response.length; i++) {\r\n var metadata = response[i];\r\n if (metadata.aliases.indexOf(authority) > -1) {\r\n return metadata;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * helper function to generate environment from authority object\r\n */\r\n Authority.prototype.getPreferredCache = function () {\r\n if (this.discoveryComplete()) {\r\n return this.metadata.preferred_cache;\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n };\r\n /**\r\n * Returns whether or not the provided host is an alias of this authority instance\r\n * @param host\r\n */\r\n Authority.prototype.isAlias = function (host) {\r\n return this.metadata.aliases.indexOf(host) > -1;\r\n };\r\n /**\r\n * Checks whether the provided host is that of a public cloud authority\r\n *\r\n * @param authority string\r\n * @returns bool\r\n */\r\n Authority.isPublicCloudAuthority = function (host) {\r\n return Constants.KNOWN_PUBLIC_CLOUDS.indexOf(host) >= 0;\r\n };\r\n /**\r\n * Rebuild the authority string with the region\r\n *\r\n * @param host string\r\n * @param region string\r\n */\r\n Authority.buildRegionalAuthorityString = function (host, region, queryString) {\r\n // Create and validate a Url string object with the initial authority string\r\n var authorityUrlInstance = new UrlString(host);\r\n authorityUrlInstance.validateAsUri();\r\n var authorityUrlParts = authorityUrlInstance.getUrlComponents();\r\n var hostNameAndPort = region + \".\" + authorityUrlParts.HostNameAndPort;\r\n if (this.isPublicCloudAuthority(authorityUrlParts.HostNameAndPort)) {\r\n hostNameAndPort = region + \".\" + Constants.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX;\r\n }\r\n // Include the query string portion of the url\r\n var url = UrlString.constructAuthorityUriFromObject(__assign(__assign({}, authorityUrlInstance.getUrlComponents()), { HostNameAndPort: hostNameAndPort })).urlString;\r\n // Add the query string if a query string was provided\r\n if (queryString)\r\n return url + \"?\" + queryString;\r\n return url;\r\n };\r\n /**\r\n * Replace the endpoints in the metadata object with their regional equivalents.\r\n *\r\n * @param metadata OpenIdConfigResponse\r\n * @param azureRegion string\r\n */\r\n Authority.replaceWithRegionalInformation = function (metadata, azureRegion) {\r\n metadata.authorization_endpoint = Authority.buildRegionalAuthorityString(metadata.authorization_endpoint, azureRegion);\r\n // TODO: Enquire on whether we should leave the query string or remove it before releasing the feature\r\n metadata.token_endpoint = Authority.buildRegionalAuthorityString(metadata.token_endpoint, azureRegion, Constants.REGIONAL_AUTH_NON_MSI_QUERY_STRING);\r\n if (metadata.end_session_endpoint) {\r\n metadata.end_session_endpoint = Authority.buildRegionalAuthorityString(metadata.end_session_endpoint, azureRegion);\r\n }\r\n return metadata;\r\n };\r\n /**\r\n * Transform CIAM_AUTHORIY as per the below rules:\r\n * If no path segments found and it is a CIAM authority (hostname ends with .ciamlogin.com), then transform it\r\n *\r\n * NOTE: The transformation path should go away once STS supports CIAM with the format: `tenantIdorDomain.ciamlogin.com`\r\n * `ciamlogin.com` can also change in the future and we should accommodate the same\r\n *\r\n * @param authority\r\n */\r\n Authority.transformCIAMAuthority = function (authority) {\r\n var ciamAuthority = authority;\r\n var authorityUrl = new UrlString(authority);\r\n var authorityUrlComponents = authorityUrl.getUrlComponents();\r\n // check if transformation is needed\r\n if (authorityUrlComponents.PathSegments.length === 0 && (authorityUrlComponents.HostNameAndPort.endsWith(Constants.CIAM_AUTH_URL))) {\r\n var tenantIdOrDomain = authorityUrlComponents.HostNameAndPort.split(\".\")[0];\r\n ciamAuthority = \"\" + ciamAuthority + tenantIdOrDomain + Constants.AAD_TENANT_DOMAIN_SUFFIX;\r\n }\r\n return ciamAuthority;\r\n };\r\n return Authority;\r\n}());\n\nexport { Authority };\n//# sourceMappingURL=Authority.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Authority } from './Authority.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityFactory = /** @class */ (function () {\r\n function AuthorityFactory() {\r\n }\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Also performs endpoint discovery.\r\n *\r\n * @param authorityUri\r\n * @param networkClient\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createDiscoveredInstance = function (authorityUri, networkClient, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authorityUriFinal, acquireTokenAuthority, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n performanceClient === null || performanceClient === void 0 ? void 0 : performanceClient.addQueueMeasurement(PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance, correlationId);\r\n authorityUriFinal = Authority.transformCIAMAuthority(authorityUri);\r\n acquireTokenAuthority = AuthorityFactory.createInstance(authorityUriFinal, networkClient, cacheManager, authorityOptions, logger, performanceClient, correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n performanceClient === null || performanceClient === void 0 ? void 0 : performanceClient.setPreQueueTime(PerformanceEvents.AuthorityResolveEndpointsAsync, correlationId);\r\n return [4 /*yield*/, acquireTokenAuthority.resolveEndpointsAsync()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, acquireTokenAuthority];\r\n case 3:\r\n e_1 = _a.sent();\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(e_1);\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Does not perform endpoint discovery.\r\n *\r\n * @param authorityUrl\r\n * @param networkInterface\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createInstance = function (authorityUrl, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n // Throw error if authority url is empty\r\n if (StringUtils.isEmpty(authorityUrl)) {\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n return new Authority(authorityUrl, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId);\r\n };\r\n return AuthorityFactory;\r\n}());\n\nexport { AuthorityFactory };\n//# sourceMappingURL=AuthorityFactory.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryEntity = /** @class */ (function () {\r\n function ServerTelemetryEntity() {\r\n this.failedRequests = [];\r\n this.errors = [];\r\n this.cacheHits = 0;\r\n }\r\n /**\r\n * validates if a given cache entry is \"Telemetry\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ServerTelemetryEntity.isServerTelemetryEntity = function (key, entity) {\r\n var validateKey = key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity =\r\n entity.hasOwnProperty(\"failedRequests\") &&\r\n entity.hasOwnProperty(\"errors\") &&\r\n entity.hasOwnProperty(\"cacheHits\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ServerTelemetryEntity;\r\n}());\n\nexport { ServerTelemetryEntity };\n//# sourceMappingURL=ServerTelemetryEntity.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { ThrottlingConstants } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingEntity = /** @class */ (function () {\r\n function ThrottlingEntity() {\r\n }\r\n /**\r\n * validates if a given cache entry is \"Throttling\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ThrottlingEntity.isThrottlingEntity = function (key, entity) {\r\n var validateKey = false;\r\n if (key) {\r\n validateKey = key.indexOf(ThrottlingConstants.THROTTLING_PREFIX) === 0;\r\n }\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity = entity.hasOwnProperty(\"throttleTime\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ThrottlingEntity;\r\n}());\n\nexport { ThrottlingEntity };\n//# sourceMappingURL=ThrottlingEntity.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubbedNetworkModule = {\r\n sendGetRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n },\r\n sendPostRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n }\r\n};\n\nexport { StubbedNetworkModule };\n//# sourceMappingURL=INetworkModule.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar JoseHeaderErrorMessage = {\r\n missingKidError: {\r\n code: \"missing_kid_error\",\r\n desc: \"The JOSE Header for the requested JWT, JWS or JWK object requires a keyId to be configured as the 'kid' header claim. No 'kid' value was provided.\"\r\n },\r\n missingAlgError: {\r\n code: \"missing_alg_error\",\r\n desc: \"The JOSE Header for the requested JWT, JWS or JWK object requires an algorithm to be specified as the 'alg' header claim. No 'alg' value was provided.\"\r\n },\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar JoseHeaderError = /** @class */ (function (_super) {\r\n __extends(JoseHeaderError, _super);\r\n function JoseHeaderError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"JoseHeaderError\";\r\n Object.setPrototypeOf(_this, JoseHeaderError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when keyId isn't set on JOSE header.\r\n */\r\n JoseHeaderError.createMissingKidError = function () {\r\n return new JoseHeaderError(JoseHeaderErrorMessage.missingKidError.code, JoseHeaderErrorMessage.missingKidError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when algorithm isn't set on JOSE header.\r\n */\r\n JoseHeaderError.createMissingAlgError = function () {\r\n return new JoseHeaderError(JoseHeaderErrorMessage.missingAlgError.code, JoseHeaderErrorMessage.missingAlgError.desc);\r\n };\r\n return JoseHeaderError;\r\n}(AuthError));\n\nexport { JoseHeaderError, JoseHeaderErrorMessage };\n//# sourceMappingURL=JoseHeaderError.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { JoseHeaderError } from '../error/JoseHeaderError.js';\nimport { JsonTypes } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar JoseHeader = /** @class */ (function () {\r\n function JoseHeader(options) {\r\n this.typ = options.typ;\r\n this.alg = options.alg;\r\n this.kid = options.kid;\r\n }\r\n /**\r\n * Builds SignedHttpRequest formatted JOSE Header from the\r\n * JOSE Header options provided or previously set on the object and returns\r\n * the stringified header object.\r\n * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.\r\n * @param shrHeaderOptions\r\n * @returns\r\n */\r\n JoseHeader.getShrHeaderString = function (shrHeaderOptions) {\r\n // KeyID is required on the SHR header\r\n if (!shrHeaderOptions.kid) {\r\n throw JoseHeaderError.createMissingKidError();\r\n }\r\n // Alg is required on the SHR header\r\n if (!shrHeaderOptions.alg) {\r\n throw JoseHeaderError.createMissingAlgError();\r\n }\r\n var shrHeader = new JoseHeader({\r\n // Access Token PoP headers must have type pop, but the type header can be overriden for special cases\r\n typ: shrHeaderOptions.typ || JsonTypes.Pop,\r\n kid: shrHeaderOptions.kid,\r\n alg: shrHeaderOptions.alg\r\n });\r\n return JSON.stringify(shrHeader);\r\n };\r\n return JoseHeader;\r\n}());\n\nexport { JoseHeader };\n//# sourceMappingURL=JoseHeader.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { HeaderNames, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This is a helper class that parses supported HTTP response authentication headers to extract and return\r\n * header challenge values that can be used outside the basic authorization flows.\r\n */\r\nvar AuthenticationHeaderParser = /** @class */ (function () {\r\n function AuthenticationHeaderParser(headers) {\r\n this.headers = headers;\r\n }\r\n /**\r\n * This method parses the SHR nonce value out of either the Authentication-Info or WWW-Authenticate authentication headers.\r\n * @returns\r\n */\r\n AuthenticationHeaderParser.prototype.getShrNonce = function () {\r\n // Attempt to parse nonce from Authentiacation-Info\r\n var authenticationInfo = this.headers[HeaderNames.AuthenticationInfo];\r\n if (authenticationInfo) {\r\n var authenticationInfoChallenges = this.parseChallenges(authenticationInfo);\r\n if (authenticationInfoChallenges.nextnonce) {\r\n return authenticationInfoChallenges.nextnonce;\r\n }\r\n throw ClientConfigurationError.createInvalidAuthenticationHeaderError(HeaderNames.AuthenticationInfo, \"nextnonce challenge is missing.\");\r\n }\r\n // Attempt to parse nonce from WWW-Authenticate\r\n var wwwAuthenticate = this.headers[HeaderNames.WWWAuthenticate];\r\n if (wwwAuthenticate) {\r\n var wwwAuthenticateChallenges = this.parseChallenges(wwwAuthenticate);\r\n if (wwwAuthenticateChallenges.nonce) {\r\n return wwwAuthenticateChallenges.nonce;\r\n }\r\n throw ClientConfigurationError.createInvalidAuthenticationHeaderError(HeaderNames.WWWAuthenticate, \"nonce challenge is missing.\");\r\n }\r\n // If neither header is present, throw missing headers error\r\n throw ClientConfigurationError.createMissingNonceAuthenticationHeadersError();\r\n };\r\n /**\r\n * Parses an HTTP header's challenge set into a key/value map.\r\n * @param header\r\n * @returns\r\n */\r\n AuthenticationHeaderParser.prototype.parseChallenges = function (header) {\r\n var schemeSeparator = header.indexOf(\" \");\r\n var challenges = header.substr(schemeSeparator + 1).split(\",\");\r\n var challengeMap = {};\r\n challenges.forEach(function (challenge) {\r\n var _a = challenge.split(\"=\"), key = _a[0], value = _a[1];\r\n // Remove escaped quotation marks (', \") from challenge string to keep only the challenge value\r\n challengeMap[key] = unescape(value.replace(/['\"]+/g, Constants.EMPTY_STRING));\r\n });\r\n return challengeMap;\r\n };\r\n return AuthenticationHeaderParser;\r\n}());\n\nexport { AuthenticationHeaderParser };\n//# sourceMappingURL=AuthenticationHeaderParser.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS, CacheOutcome, Constants, Separators } from '../../utils/Constants.js';\nimport { ServerTelemetryEntity } from '../../cache/entities/ServerTelemetryEntity.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryManager = /** @class */ (function () {\r\n function ServerTelemetryManager(telemetryRequest, cacheManager) {\r\n this.cacheOutcome = CacheOutcome.NO_CACHE_HIT;\r\n this.cacheManager = cacheManager;\r\n this.apiId = telemetryRequest.apiId;\r\n this.correlationId = telemetryRequest.correlationId;\r\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\r\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\r\n this.telemetryCacheKey = SERVER_TELEM_CONSTANTS.CACHE_KEY + Separators.CACHE_KEY_SEPARATOR + telemetryRequest.clientId;\r\n }\r\n /**\r\n * API to add MSER Telemetry to request\r\n */\r\n ServerTelemetryManager.prototype.generateCurrentRequestHeaderValue = function () {\r\n var request = \"\" + this.apiId + SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR + this.cacheOutcome;\r\n var platformFields = [this.wrapperSKU, this.wrapperVer].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var regionDiscoveryFields = this.getRegionDiscoveryFields();\r\n var requestWithRegionDiscoveryFields = [request, regionDiscoveryFields].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, requestWithRegionDiscoveryFields, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to add MSER Telemetry for the last failed request\r\n */\r\n ServerTelemetryManager.prototype.generateLastRequestHeaderValue = function () {\r\n var lastRequests = this.getLastRequests();\r\n var maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var failedRequests = lastRequests.failedRequests.slice(0, 2 * maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errors = lastRequests.errors.slice(0, maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errorCount = lastRequests.errors.length;\r\n // Indicate whether this header contains all data or partial data\r\n var overflow = maxErrors < errorCount ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\r\n var platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, lastRequests.cacheHits, failedRequests, errors, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to cache token failures for MSER data capture\r\n * @param error\r\n */\r\n ServerTelemetryManager.prototype.cacheFailedRequest = function (error) {\r\n var lastRequests = this.getLastRequests();\r\n if (lastRequests.errors.length >= SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\r\n // Remove a cached error to make room, first in first out\r\n lastRequests.failedRequests.shift(); // apiId\r\n lastRequests.failedRequests.shift(); // correlationId\r\n lastRequests.errors.shift();\r\n }\r\n lastRequests.failedRequests.push(this.apiId, this.correlationId);\r\n if (!StringUtils.isEmpty(error.subError)) {\r\n lastRequests.errors.push(error.subError);\r\n }\r\n else if (!StringUtils.isEmpty(error.errorCode)) {\r\n lastRequests.errors.push(error.errorCode);\r\n }\r\n else if (!!error && error.toString()) {\r\n lastRequests.errors.push(error.toString());\r\n }\r\n else {\r\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\r\n }\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return;\r\n };\r\n /**\r\n * Update server telemetry cache entry by incrementing cache hit counter\r\n */\r\n ServerTelemetryManager.prototype.incrementCacheHits = function () {\r\n var lastRequests = this.getLastRequests();\r\n lastRequests.cacheHits += 1;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return lastRequests.cacheHits;\r\n };\r\n /**\r\n * Get the server telemetry entity from cache or initialize a new one\r\n */\r\n ServerTelemetryManager.prototype.getLastRequests = function () {\r\n var initialValue = new ServerTelemetryEntity();\r\n var lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey);\r\n return lastRequests || initialValue;\r\n };\r\n /**\r\n * Remove server telemetry cache entry\r\n */\r\n ServerTelemetryManager.prototype.clearTelemetryCache = function () {\r\n var lastRequests = this.getLastRequests();\r\n var numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var errorCount = lastRequests.errors.length;\r\n if (numErrorsFlushed === errorCount) {\r\n // All errors were sent on last request, clear Telemetry cache\r\n this.cacheManager.removeItem(this.telemetryCacheKey);\r\n }\r\n else {\r\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\r\n var serverTelemEntity = new ServerTelemetryEntity();\r\n serverTelemEntity.failedRequests = lastRequests.failedRequests.slice(numErrorsFlushed * 2); // failedRequests contains 2 items for each error\r\n serverTelemEntity.errors = lastRequests.errors.slice(numErrorsFlushed);\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\r\n }\r\n };\r\n /**\r\n * Returns the maximum number of errors that can be flushed to the server in the next network request\r\n * @param serverTelemetryEntity\r\n */\r\n ServerTelemetryManager.maxErrorsToSend = function (serverTelemetryEntity) {\r\n var i;\r\n var maxErrors = 0;\r\n var dataSize = 0;\r\n var errorCount = serverTelemetryEntity.errors.length;\r\n for (i = 0; i < errorCount; i++) {\r\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\r\n var apiId = serverTelemetryEntity.failedRequests[2 * i] || Constants.EMPTY_STRING;\r\n var correlationId = serverTelemetryEntity.failedRequests[2 * i + 1] || Constants.EMPTY_STRING;\r\n var errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\r\n // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\r\n dataSize += apiId.toString().length + correlationId.toString().length + errorCode.length + 3;\r\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\r\n // Adding this entry to the header would still keep header size below the limit\r\n maxErrors += 1;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return maxErrors;\r\n };\r\n /**\r\n * Get the region discovery fields\r\n *\r\n * @returns string\r\n */\r\n ServerTelemetryManager.prototype.getRegionDiscoveryFields = function () {\r\n var regionDiscoveryFields = [];\r\n regionDiscoveryFields.push(this.regionUsed || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionSource || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionOutcome || Constants.EMPTY_STRING);\r\n return regionDiscoveryFields.join(\",\");\r\n };\r\n /**\r\n * Update the region discovery metadata\r\n *\r\n * @param regionDiscoveryMetadata\r\n * @returns void\r\n */\r\n ServerTelemetryManager.prototype.updateRegionDiscoveryMetadata = function (regionDiscoveryMetadata) {\r\n this.regionUsed = regionDiscoveryMetadata.region_used;\r\n this.regionSource = regionDiscoveryMetadata.region_source;\r\n this.regionOutcome = regionDiscoveryMetadata.region_outcome;\r\n };\r\n /**\r\n * Set cache outcome\r\n */\r\n ServerTelemetryManager.prototype.setCacheOutcome = function (cacheOutcome) {\r\n this.cacheOutcome = cacheOutcome;\r\n };\r\n return ServerTelemetryManager;\r\n}());\n\nexport { ServerTelemetryManager };\n//# sourceMappingURL=ServerTelemetryManager.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __assign } from '../../_virtual/_tslib.js';\nimport { IntFields, PerformanceEventStatus } from './PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PerformanceClient = /** @class */ (function () {\r\n /**\r\n * Creates an instance of PerformanceClient,\r\n * an abstract class containing core performance telemetry logic.\r\n *\r\n * @constructor\r\n * @param {string} clientId Client ID of the application\r\n * @param {string} authority Authority used by the application\r\n * @param {Logger} logger Logger used by the application\r\n * @param {string} libraryName Name of the library\r\n * @param {string} libraryVersion Version of the library\r\n */\r\n function PerformanceClient(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry) {\r\n this.authority = authority;\r\n this.libraryName = libraryName;\r\n this.libraryVersion = libraryVersion;\r\n this.applicationTelemetry = applicationTelemetry;\r\n this.clientId = clientId;\r\n this.logger = logger;\r\n this.callbacks = new Map();\r\n this.eventsByCorrelationId = new Map();\r\n this.queueMeasurements = new Map();\r\n this.preQueueTimeByCorrelationId = new Map();\r\n }\r\n /**\r\n * Starts and returns an platform-specific implementation of IPerformanceMeasurement.\r\n * Note: this function can be changed to abstract at the next major version bump.\r\n *\r\n * @param {string} measureName\r\n * @param {string} correlationId\r\n * @returns {IPerformanceMeasurement}\r\n */\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n PerformanceClient.prototype.startPerformanceMeasurement = function (measureName, correlationId) {\r\n return {};\r\n };\r\n /**\r\n * Starts and returns an platform-specific implementation of IPerformanceMeasurement.\r\n * Note: this incorrectly-named function will be removed at the next major version bump.\r\n *\r\n * @param {string} measureName\r\n * @param {string} correlationId\r\n * @returns {IPerformanceMeasurement}\r\n */\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n PerformanceClient.prototype.startPerformanceMeasuremeant = function (measureName, correlationId) {\r\n return {};\r\n };\r\n /**\r\n * Get integral fields.\r\n * Override to change the set.\r\n */\r\n PerformanceClient.prototype.getIntFields = function () {\r\n return IntFields;\r\n };\r\n /**\r\n * Gets map of pre-queue times by correlation Id\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {string} correlationId\r\n * @returns {number}\r\n */\r\n PerformanceClient.prototype.getPreQueueTime = function (eventName, correlationId) {\r\n var preQueueEvent = this.preQueueTimeByCorrelationId.get(correlationId);\r\n if (!preQueueEvent) {\r\n this.logger.trace(\"PerformanceClient.getPreQueueTime: no pre-queue times found for correlationId: \" + correlationId + \", unable to add queue measurement\");\r\n return;\r\n }\r\n else if (preQueueEvent.name !== eventName) {\r\n this.logger.trace(\"PerformanceClient.getPreQueueTime: no pre-queue time found for \" + eventName + \", unable to add queue measurement\");\r\n return;\r\n }\r\n return preQueueEvent.time;\r\n };\r\n /**\r\n * Calculates the difference between current time and time when function was queued.\r\n * Note: It is possible to have 0 as the queue time if the current time and the queued time was the same.\r\n *\r\n * @param {number} preQueueTime\r\n * @param {number} currentTime\r\n * @returns {number}\r\n */\r\n PerformanceClient.prototype.calculateQueuedTime = function (preQueueTime, currentTime) {\r\n if (preQueueTime < 1) {\r\n this.logger.trace(\"PerformanceClient: preQueueTime should be a positive integer and not \" + preQueueTime);\r\n return 0;\r\n }\r\n if (currentTime < 1) {\r\n this.logger.trace(\"PerformanceClient: currentTime should be a positive integer and not \" + currentTime);\r\n return 0;\r\n }\r\n if (currentTime < preQueueTime) {\r\n this.logger.trace(\"PerformanceClient: currentTime is less than preQueueTime, check how time is being retrieved\");\r\n return 0;\r\n }\r\n return currentTime - preQueueTime;\r\n };\r\n /**\r\n * Adds queue measurement time to QueueMeasurements array for given correlation ID.\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @param {?number} queueTime\r\n * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements\r\n * @returns\r\n */\r\n PerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId, queueTime, manuallyCompleted) {\r\n if (!correlationId) {\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: correlationId not provided for \" + eventName + \", cannot add queue measurement\");\r\n return;\r\n }\r\n if (queueTime === 0) {\r\n // Possible for there to be no queue time after calculation\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: queue time provided for \" + eventName + \" is \" + queueTime);\r\n }\r\n else if (!queueTime) {\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: no queue time provided for \" + eventName);\r\n return;\r\n }\r\n var queueMeasurement = { eventName: eventName, queueTime: queueTime, manuallyCompleted: manuallyCompleted };\r\n // Adds to existing correlation Id if present in queueMeasurements\r\n var existingMeasurements = this.queueMeasurements.get(correlationId);\r\n if (existingMeasurements) {\r\n existingMeasurements.push(queueMeasurement);\r\n this.queueMeasurements.set(correlationId, existingMeasurements);\r\n }\r\n else {\r\n // Sets new correlation Id if not present in queueMeasurements\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: adding correlationId \" + correlationId + \" to queue measurements\");\r\n var measurementArray = [queueMeasurement];\r\n this.queueMeasurements.set(correlationId, measurementArray);\r\n }\r\n // Delete processed pre-queue event.\r\n this.preQueueTimeByCorrelationId.delete(correlationId);\r\n };\r\n /**\r\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {?string} [correlationId]\r\n * @returns {InProgressPerformanceEvent}\r\n */\r\n PerformanceClient.prototype.startMeasurement = function (measureName, correlationId) {\r\n var _this = this;\r\n var _a, _b;\r\n // Generate a placeholder correlation if the request does not provide one\r\n var eventCorrelationId = correlationId || this.generateId();\r\n if (!correlationId) {\r\n this.logger.info(\"PerformanceClient: No correlation id provided for \" + measureName + \", generating\", eventCorrelationId);\r\n }\r\n // Duplicate code to address spelling error will be removed at the next major version bump.\r\n this.logger.trace(\"PerformanceClient: Performance measurement started for \" + measureName, eventCorrelationId);\r\n var performanceMeasurement = this.startPerformanceMeasuremeant(measureName, eventCorrelationId);\r\n performanceMeasurement.startMeasurement();\r\n var inProgressEvent = {\r\n eventId: this.generateId(),\r\n status: PerformanceEventStatus.InProgress,\r\n authority: this.authority,\r\n libraryName: this.libraryName,\r\n libraryVersion: this.libraryVersion,\r\n clientId: this.clientId,\r\n name: measureName,\r\n startTimeMs: Date.now(),\r\n correlationId: eventCorrelationId,\r\n appName: (_a = this.applicationTelemetry) === null || _a === void 0 ? void 0 : _a.appName,\r\n appVersion: (_b = this.applicationTelemetry) === null || _b === void 0 ? void 0 : _b.appVersion,\r\n };\r\n // Store in progress events so they can be discarded if not ended properly\r\n this.cacheEventByCorrelationId(inProgressEvent);\r\n // Return the event and functions the caller can use to properly end/flush the measurement\r\n return {\r\n endMeasurement: function (event) {\r\n return _this.endMeasurement(__assign(__assign({}, inProgressEvent), event), performanceMeasurement);\r\n },\r\n discardMeasurement: function () {\r\n return _this.discardMeasurements(inProgressEvent.correlationId);\r\n },\r\n addStaticFields: function (fields) {\r\n return _this.addStaticFields(fields, inProgressEvent.correlationId);\r\n },\r\n increment: function (counters) {\r\n return _this.increment(counters, inProgressEvent.correlationId);\r\n },\r\n measurement: performanceMeasurement,\r\n event: inProgressEvent\r\n };\r\n };\r\n /**\r\n * Stops measuring the performance for an operation. Should only be called directly by PerformanceClient classes,\r\n * as consumers should instead use the function returned by startMeasurement.\r\n * Adds a new field named as \"[event name]DurationMs\" for sub-measurements, completes and emits an event\r\n * otherwise.\r\n *\r\n * @param {PerformanceEvent} event\r\n * @param {IPerformanceMeasurement} measurement\r\n * @returns {(PerformanceEvent | null)}\r\n */\r\n PerformanceClient.prototype.endMeasurement = function (event, measurement) {\r\n var _this = this;\r\n var _a, _b;\r\n var rootEvent = this.eventsByCorrelationId.get(event.correlationId);\r\n if (!rootEvent) {\r\n this.logger.trace(\"PerformanceClient: Measurement not found for \" + event.eventId, event.correlationId);\r\n return null;\r\n }\r\n var isRoot = event.eventId === rootEvent.eventId;\r\n var queueInfo = {\r\n totalQueueTime: 0,\r\n totalQueueCount: 0,\r\n manuallyCompletedCount: 0\r\n };\r\n if (isRoot) {\r\n queueInfo = this.getQueueInfo(event.correlationId);\r\n this.discardCache(rootEvent.correlationId);\r\n }\r\n else {\r\n (_a = rootEvent.incompleteSubMeasurements) === null || _a === void 0 ? void 0 : _a.delete(event.eventId);\r\n }\r\n measurement === null || measurement === void 0 ? void 0 : measurement.endMeasurement();\r\n var durationMs = measurement === null || measurement === void 0 ? void 0 : measurement.flushMeasurement();\r\n // null indicates no measurement was taken (e.g. needed performance APIs not present)\r\n if (!durationMs) {\r\n this.logger.trace(\"PerformanceClient: Performance measurement not taken\", rootEvent.correlationId);\r\n return null;\r\n }\r\n this.logger.trace(\"PerformanceClient: Performance measurement ended for \" + event.name + \": \" + durationMs + \" ms\", event.correlationId);\r\n // Add sub-measurement attribute to root event.\r\n if (!isRoot) {\r\n rootEvent[event.name + \"DurationMs\"] = Math.floor(durationMs);\r\n return __assign({}, rootEvent);\r\n }\r\n var finalEvent = __assign(__assign({}, rootEvent), event);\r\n var incompleteSubsCount = 0;\r\n // Incomplete sub-measurements are discarded. They are likely an instrumentation bug that should be fixed.\r\n (_b = finalEvent.incompleteSubMeasurements) === null || _b === void 0 ? void 0 : _b.forEach(function (subMeasurement) {\r\n _this.logger.trace(\"PerformanceClient: Incomplete submeasurement \" + subMeasurement.name + \" found for \" + event.name, finalEvent.correlationId);\r\n incompleteSubsCount++;\r\n });\r\n finalEvent.incompleteSubMeasurements = undefined;\r\n finalEvent = __assign(__assign({}, finalEvent), { durationMs: Math.round(durationMs), queuedTimeMs: queueInfo.totalQueueTime, queuedCount: queueInfo.totalQueueCount, queuedManuallyCompletedCount: queueInfo.manuallyCompletedCount, status: PerformanceEventStatus.Completed, incompleteSubsCount: incompleteSubsCount });\r\n this.truncateIntegralFields(finalEvent, this.getIntFields());\r\n this.emitEvents([finalEvent], event.correlationId);\r\n return finalEvent;\r\n };\r\n /**\r\n * Saves extra information to be emitted when the measurements are flushed\r\n * @param fields\r\n * @param correlationId\r\n */\r\n PerformanceClient.prototype.addStaticFields = function (fields, correlationId) {\r\n this.logger.trace(\"PerformanceClient: Updating static fields\");\r\n var event = this.eventsByCorrelationId.get(correlationId);\r\n if (event) {\r\n this.eventsByCorrelationId.set(correlationId, __assign(__assign({}, event), fields));\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Event not found for\", correlationId);\r\n }\r\n };\r\n /**\r\n * Increment counters to be emitted when the measurements are flushed\r\n * @param counters {Counters}\r\n * @param correlationId {string} correlation identifier\r\n */\r\n PerformanceClient.prototype.increment = function (counters, correlationId) {\r\n this.logger.trace(\"PerformanceClient: Updating counters\");\r\n var event = this.eventsByCorrelationId.get(correlationId);\r\n if (event) {\r\n for (var counter in counters) {\r\n if (!event.hasOwnProperty(counter)) {\r\n event[counter] = 0;\r\n }\r\n event[counter] += counters[counter];\r\n }\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Event not found for\", correlationId);\r\n }\r\n };\r\n /**\r\n * Upserts event into event cache.\r\n * First key is the correlation id, second key is the event id.\r\n * Allows for events to be grouped by correlation id,\r\n * and to easily allow for properties on them to be updated.\r\n *\r\n * @private\r\n * @param {PerformanceEvent} event\r\n */\r\n PerformanceClient.prototype.cacheEventByCorrelationId = function (event) {\r\n var rootEvent = this.eventsByCorrelationId.get(event.correlationId);\r\n if (rootEvent) {\r\n this.logger.trace(\"PerformanceClient: Performance measurement for \" + event.name + \" added/updated\", event.correlationId);\r\n rootEvent.incompleteSubMeasurements = rootEvent.incompleteSubMeasurements || new Map();\r\n rootEvent.incompleteSubMeasurements.set(event.eventId, { name: event.name, startTimeMs: event.startTimeMs });\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Performance measurement for \" + event.name + \" started\", event.correlationId);\r\n this.eventsByCorrelationId.set(event.correlationId, __assign({}, event));\r\n }\r\n };\r\n PerformanceClient.prototype.getQueueInfo = function (correlationId) {\r\n var queueMeasurementForCorrelationId = this.queueMeasurements.get(correlationId);\r\n if (!queueMeasurementForCorrelationId) {\r\n this.logger.trace(\"PerformanceClient: no queue measurements found for for correlationId: \" + correlationId);\r\n }\r\n var totalQueueTime = 0;\r\n var totalQueueCount = 0;\r\n var manuallyCompletedCount = 0;\r\n queueMeasurementForCorrelationId === null || queueMeasurementForCorrelationId === void 0 ? void 0 : queueMeasurementForCorrelationId.forEach(function (measurement) {\r\n totalQueueTime += measurement.queueTime;\r\n totalQueueCount++;\r\n manuallyCompletedCount += measurement.manuallyCompleted ? 1 : 0;\r\n });\r\n return {\r\n totalQueueTime: totalQueueTime,\r\n totalQueueCount: totalQueueCount,\r\n manuallyCompletedCount: manuallyCompletedCount\r\n };\r\n };\r\n /**\r\n * Removes measurements for a given correlation id.\r\n *\r\n * @param {string} correlationId\r\n */\r\n PerformanceClient.prototype.discardMeasurements = function (correlationId) {\r\n this.logger.trace(\"PerformanceClient: Performance measurements discarded\", correlationId);\r\n this.eventsByCorrelationId.delete(correlationId);\r\n };\r\n /**\r\n * Removes cache for a given correlation id.\r\n *\r\n * @param {string} correlationId correlation identifier\r\n */\r\n PerformanceClient.prototype.discardCache = function (correlationId) {\r\n this.discardMeasurements(correlationId);\r\n this.logger.trace(\"PerformanceClient: QueueMeasurements discarded\", correlationId);\r\n this.queueMeasurements.delete(correlationId);\r\n this.logger.trace(\"PerformanceClient: Pre-queue times discarded\", correlationId);\r\n this.preQueueTimeByCorrelationId.delete(correlationId);\r\n };\r\n /**\r\n * Registers a callback function to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n PerformanceClient.prototype.addPerformanceCallback = function (callback) {\r\n var callbackId = this.generateId();\r\n this.callbacks.set(callbackId, callback);\r\n this.logger.verbose(\"PerformanceClient: Performance callback registered with id: \" + callbackId);\r\n return callbackId;\r\n };\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n PerformanceClient.prototype.removePerformanceCallback = function (callbackId) {\r\n var result = this.callbacks.delete(callbackId);\r\n if (result) {\r\n this.logger.verbose(\"PerformanceClient: Performance callback \" + callbackId + \" removed.\");\r\n }\r\n else {\r\n this.logger.verbose(\"PerformanceClient: Performance callback \" + callbackId + \" not removed.\");\r\n }\r\n return result;\r\n };\r\n /**\r\n * Emits events to all registered callbacks.\r\n *\r\n * @param {PerformanceEvent[]} events\r\n * @param {?string} [correlationId]\r\n */\r\n PerformanceClient.prototype.emitEvents = function (events, correlationId) {\r\n var _this = this;\r\n this.logger.verbose(\"PerformanceClient: Emitting performance events\", correlationId);\r\n this.callbacks.forEach(function (callback, callbackId) {\r\n _this.logger.trace(\"PerformanceClient: Emitting event to callback \" + callbackId, correlationId);\r\n callback.apply(null, [events]);\r\n });\r\n };\r\n /**\r\n * Enforce truncation of integral fields in performance event.\r\n * @param {PerformanceEvent} event performance event to update.\r\n * @param {Set} intFields integral fields.\r\n */\r\n PerformanceClient.prototype.truncateIntegralFields = function (event, intFields) {\r\n intFields.forEach(function (key) {\r\n if (key in event && typeof event[key] === \"number\") {\r\n event[key] = Math.floor(event[key]);\r\n }\r\n });\r\n };\r\n return PerformanceClient;\r\n}());\n\nexport { PerformanceClient };\n//# sourceMappingURL=PerformanceClient.js.map\n","/*! @azure/msal-common v12.1.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { PerformanceClient } from './PerformanceClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubPerformanceMeasurement = /** @class */ (function () {\r\n function StubPerformanceMeasurement() {\r\n }\r\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\r\n StubPerformanceMeasurement.prototype.startMeasurement = function () { };\r\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\r\n StubPerformanceMeasurement.prototype.endMeasurement = function () { };\r\n StubPerformanceMeasurement.prototype.flushMeasurement = function () {\r\n return null;\r\n };\r\n return StubPerformanceMeasurement;\r\n}());\r\nvar StubPerformanceClient = /** @class */ (function (_super) {\r\n __extends(StubPerformanceClient, _super);\r\n function StubPerformanceClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n StubPerformanceClient.prototype.generateId = function () {\r\n return \"callback-id\";\r\n };\r\n StubPerformanceClient.prototype.startPerformanceMeasuremeant = function () {\r\n return new StubPerformanceMeasurement();\r\n };\r\n StubPerformanceClient.prototype.startPerformanceMeasurement = function () {\r\n return new StubPerformanceMeasurement();\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.calculateQueuedTime = function (preQueueTime, currentTime) {\r\n return 0;\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId, queueTime) {\r\n return;\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.setPreQueueTime = function (eventName, correlationId) {\r\n return;\r\n };\r\n return StubPerformanceClient;\r\n}(PerformanceClient));\n\nexport { StubPerformanceClient, StubPerformanceMeasurement };\n//# sourceMappingURL=StubPerformanceClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserAuthErrorMessage = {\r\n pkceNotGenerated: {\r\n code: \"pkce_not_created\",\r\n desc: \"The PKCE code challenge and verifier could not be generated.\"\r\n },\r\n cryptoDoesNotExist: {\r\n code: \"crypto_nonexistent\",\r\n desc: \"The crypto object or function is not available.\"\r\n },\r\n httpMethodNotImplementedError: {\r\n code: \"http_method_not_implemented\",\r\n desc: \"The HTTP method given has not been implemented in this library.\"\r\n },\r\n emptyNavigateUriError: {\r\n code: \"empty_navigate_uri\",\r\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\r\n },\r\n hashEmptyError: {\r\n code: \"hash_empty_error\",\r\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n hashDoesNotContainStateError: {\r\n code: \"no_state_in_hash\",\r\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\r\n },\r\n hashDoesNotContainKnownPropertiesError: {\r\n code: \"hash_does_not_contain_known_properties\",\r\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n unableToParseStateError: {\r\n code: \"unable_to_parse_state\",\r\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\r\n },\r\n stateInteractionTypeMismatchError: {\r\n code: \"state_interaction_type_mismatch\",\r\n desc: \"Hash contains state but the interaction type does not match the caller.\"\r\n },\r\n interactionInProgress: {\r\n code: \"interaction_in_progress\",\r\n desc: \"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n popupWindowError: {\r\n code: \"popup_window_error\",\r\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\r\n },\r\n emptyWindowError: {\r\n code: \"empty_window_error\",\r\n desc: \"window.open returned null or undefined window object.\"\r\n },\r\n userCancelledError: {\r\n code: \"user_cancelled\",\r\n desc: \"User cancelled the flow.\"\r\n },\r\n monitorPopupTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n monitorIframeTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n redirectInIframeError: {\r\n code: \"redirect_in_iframe\",\r\n desc: \"Redirects are not supported for iframed or brokered applications. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\r\n },\r\n blockTokenRequestsInHiddenIframeError: {\r\n code: \"block_iframe_reload\",\r\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n blockAcquireTokenInPopupsError: {\r\n code: \"block_nested_popups\",\r\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\r\n },\r\n iframeClosedPrematurelyError: {\r\n code: \"iframe_closed_prematurely\",\r\n desc: \"The iframe being monitored was closed prematurely.\"\r\n },\r\n silentLogoutUnsupportedError: {\r\n code: \"silent_logout_unsupported\",\r\n desc: \"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.\"\r\n },\r\n noAccountError: {\r\n code: \"no_account_error\",\r\n desc: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\"\r\n },\r\n silentPromptValueError: {\r\n code: \"silent_prompt_value_error\",\r\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.\"\r\n },\r\n noTokenRequestCacheError: {\r\n code: \"no_token_request_cache_error\",\r\n desc: \"No token request found in cache.\"\r\n },\r\n unableToParseTokenRequestCacheError: {\r\n code: \"unable_to_parse_token_request_cache_error\",\r\n desc: \"The cached token request could not be parsed.\"\r\n },\r\n noCachedAuthorityError: {\r\n code: \"no_cached_authority_error\",\r\n desc: \"No cached authority found.\"\r\n },\r\n authRequestNotSet: {\r\n code: \"auth_request_not_set_error\",\r\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n notInBrowserEnvironment: {\r\n code: \"non_browser_environment\",\r\n desc: \"Login and token requests are not supported in non-browser environments.\"\r\n },\r\n databaseNotOpen: {\r\n code: \"database_not_open\",\r\n desc: \"Database is not open!\"\r\n },\r\n noNetworkConnectivity: {\r\n code: \"no_network_connectivity\",\r\n desc: \"No network connectivity. Check your internet connection.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\"\r\n },\r\n getRequestFailed: {\r\n code: \"get_request_failed\",\r\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\r\n },\r\n failedToParseNetworkResponse: {\r\n code: \"failed_to_parse_response\",\r\n desc: \"Failed to parse network response. Check network trace.\"\r\n },\r\n unableToLoadTokenError: {\r\n code: \"unable_to_load_token\",\r\n desc: \"Error loading token to cache.\"\r\n },\r\n signingKeyNotFoundInStorage: {\r\n code: \"crypto_key_not_found\",\r\n desc: \"Cryptographic Key or Keypair not found in browser storage.\"\r\n },\r\n authCodeRequired: {\r\n code: \"auth_code_required\",\r\n desc: \"An authorization code must be provided (as the `code` property on the request) to this flow.\"\r\n },\r\n authCodeOrNativeAccountRequired: {\r\n code: \"auth_code_or_nativeAccountId_required\",\r\n desc: \"An authorization code or nativeAccountId must be provided to this flow.\"\r\n },\r\n spaCodeAndNativeAccountPresent: {\r\n code: \"spa_code_and_nativeAccountId_present\",\r\n desc: \"Request cannot contain both spa code and native account id.\"\r\n },\r\n databaseUnavailable: {\r\n code: \"database_unavailable\",\r\n desc: \"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.\"\r\n },\r\n unableToAcquireTokenFromNativePlatform: {\r\n code: \"unable_to_acquire_token_from_native_platform\",\r\n desc: \"Unable to acquire token from native platform. For a list of possible reasons visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativeHandshakeTimeout: {\r\n code: \"native_handshake_timeout\",\r\n desc: \"Timed out while attempting to establish connection to browser extension\"\r\n },\r\n nativeExtensionNotInstalled: {\r\n code: \"native_extension_not_installed\",\r\n desc: \"Native extension is not installed. If you think this is a mistake call the initialize function.\"\r\n },\r\n nativeConnectionNotEstablished: {\r\n code: \"native_connection_not_established\",\r\n desc: \"Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). For more please visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativeBrokerCalledBeforeInitialize: {\r\n code: \"native_broker_called_before_initialize\",\r\n desc: \"You must call and await the initialize function before attempting to call any other MSAL API when native brokering is enabled. For more please visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativePromptNotSupported: {\r\n code: \"native_prompt_not_supported\",\r\n desc: \"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserAuthError, _super);\r\n function BrowserAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n Object.setPrototypeOf(_this, BrowserAuthError.prototype);\r\n _this.name = \"BrowserAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when PKCE is not implemented.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPkceNotGeneratedError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code, BrowserAuthErrorMessage.pkceNotGenerated.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the crypto object is unavailable.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createCryptoNotAvailableError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code, BrowserAuthErrorMessage.cryptoDoesNotExist.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\r\n * @param method\r\n */\r\n BrowserAuthError.createHttpMethodNotImplementedError = function (method) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code, BrowserAuthErrorMessage.httpMethodNotImplementedError.desc + \" Given Method: \" + method);\r\n };\r\n /**\r\n * Creates an error thrown when the navigation URI is empty.\r\n */\r\n BrowserAuthError.createEmptyNavigationUriError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n * @param hashValue\r\n */\r\n BrowserAuthError.createEmptyHashError = function (hashValue) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, BrowserAuthErrorMessage.hashEmptyError.desc + \" Given Url: \" + hashValue);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createHashDoesNotContainStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value does not contain known properties\r\n */\r\n BrowserAuthError.createHashDoesNotContainKnownPropertiesError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createUnableToParseStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state value in the hash does not match the interaction type of the API attempting to consume it.\r\n */\r\n BrowserAuthError.createStateInteractionTypeMismatchError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\r\n */\r\n BrowserAuthError.createInteractionInProgressError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the popup window could not be opened.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPopupWindowError = function (errDetail) {\r\n var errorMessage = BrowserAuthErrorMessage.popupWindowError.desc;\r\n errorMessage = !StringUtils.isEmpty(errDetail) ? errorMessage + \" Details: \" + errDetail : errorMessage;\r\n return new BrowserAuthError(BrowserAuthErrorMessage.popupWindowError.code, errorMessage);\r\n };\r\n /**\r\n * Creates an error thrown when window.open returns an empty window object.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createEmptyWindowCreatedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the user closes a popup.\r\n */\r\n BrowserAuthError.createUserCancelledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code, BrowserAuthErrorMessage.userCancelledError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\r\n */\r\n BrowserAuthError.createMonitorPopupTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code, BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\r\n */\r\n BrowserAuthError.createMonitorIframeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code, BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when navigateWindow is called inside an iframe or brokered applications.\r\n * @param windowParentCheck\r\n */\r\n BrowserAuthError.createRedirectInIframeError = function (windowParentCheck) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code, BrowserAuthErrorMessage.redirectInIframeError.desc + \" (window.parent !== window) => \" + windowParentCheck);\r\n };\r\n /**\r\n * Creates an error thrown when an auth reload is done inside an iframe.\r\n */\r\n BrowserAuthError.createBlockReloadInHiddenIframeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code, BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a popup attempts to call an acquireToken API\r\n * @returns\r\n */\r\n BrowserAuthError.createBlockAcquireTokenInPopupsError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code, BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\r\n */\r\n BrowserAuthError.createIframeClosedPrematurelyError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the logout API is called on any of the silent interaction clients\r\n */\r\n BrowserAuthError.createSilentLogoutUnsupportedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentLogoutUnsupportedError.code, BrowserAuthErrorMessage.silentLogoutUnsupportedError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\r\n */\r\n BrowserAuthError.createNoAccountError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a given prompt value is invalid for silent requests.\r\n */\r\n BrowserAuthError.createSilentPromptValueError = function (givenPrompt) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, BrowserAuthErrorMessage.silentPromptValueError.desc + \" Given value: \" + givenPrompt);\r\n };\r\n /**\r\n * Creates an error thrown when the cached token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createUnableToParseTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code, BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code, BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\r\n */\r\n BrowserAuthError.createAuthRequestNotSetError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code, BrowserAuthErrorMessage.authRequestNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the authority could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoCachedAuthorityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code, BrowserAuthErrorMessage.noCachedAuthorityError.desc);\r\n };\r\n /**\r\n * Creates an error thrown if cache type is invalid.\r\n */\r\n BrowserAuthError.createInvalidCacheTypeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, \"\" + BrowserAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Create an error thrown when login and token requests are made from a non-browser environment\r\n */\r\n BrowserAuthError.createNonBrowserEnvironmentError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\r\n };\r\n /**\r\n * Create an error thrown when indexDB database is not open\r\n */\r\n BrowserAuthError.createDatabaseNotOpenError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to no internet\r\n */\r\n BrowserAuthError.createNoNetworkConnectivityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createPostRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, BrowserAuthErrorMessage.postRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when get request fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createGetRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, BrowserAuthErrorMessage.getRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when network client fails to parse network response\r\n */\r\n BrowserAuthError.createFailedToParseNetworkResponseError = function (endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, BrowserAuthErrorMessage.failedToParseNetworkResponse.desc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when the necessary information is not available to sideload tokens\r\n */\r\n BrowserAuthError.createUnableToLoadTokenError = function (errorDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToLoadTokenError.code, BrowserAuthErrorMessage.unableToLoadTokenError.desc + \" | \" + errorDetail);\r\n };\r\n /**\r\n * Create an error thrown when the queried cryptographic key is not found in IndexedDB\r\n */\r\n BrowserAuthError.createSigningKeyNotFoundInStorageError = function (keyId) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code, BrowserAuthErrorMessage.signingKeyNotFoundInStorage.desc + \" | No match found for KeyId: \" + keyId);\r\n };\r\n /**\r\n * Create an error when an authorization code is required but not provided\r\n */\r\n BrowserAuthError.createAuthCodeRequiredError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeRequired.code, BrowserAuthErrorMessage.authCodeRequired.desc);\r\n };\r\n /**\r\n * Create an error when an authorization code or native account ID is required but not provided\r\n */\r\n BrowserAuthError.createAuthCodeOrNativeAccountIdRequiredError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.code, BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.desc);\r\n };\r\n /**\r\n * Create an error when both authorization code and native account ID are provided\r\n */\r\n BrowserAuthError.createSpaCodeAndNativeAccountIdPresentError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.spaCodeAndNativeAccountPresent.code, BrowserAuthErrorMessage.spaCodeAndNativeAccountPresent.desc);\r\n };\r\n /**\r\n * Create an error when IndexedDB is unavailable\r\n */\r\n BrowserAuthError.createDatabaseUnavailableError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseUnavailable.code, BrowserAuthErrorMessage.databaseUnavailable.desc);\r\n };\r\n /**\r\n * Create an error when native token acquisition is not possible\r\n */\r\n BrowserAuthError.createUnableToAcquireTokenFromNativePlatformError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.code, BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.desc);\r\n };\r\n /**\r\n * Create an error thrown when Handshake with browser extension times out\r\n */\r\n BrowserAuthError.createNativeHandshakeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeHandshakeTimeout.code, BrowserAuthErrorMessage.nativeHandshakeTimeout.desc);\r\n };\r\n /**\r\n * Create an error thrown when browser extension is not installed\r\n */\r\n BrowserAuthError.createNativeExtensionNotInstalledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeExtensionNotInstalled.code, BrowserAuthErrorMessage.nativeExtensionNotInstalled.desc);\r\n };\r\n /**\r\n * Create an error when native connection has not been established\r\n * @returns\r\n */\r\n BrowserAuthError.createNativeConnectionNotEstablishedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeConnectionNotEstablished.code, BrowserAuthErrorMessage.nativeConnectionNotEstablished.desc);\r\n };\r\n /**\r\n * Create an error thrown when the initialize function hasn't been called\r\n */\r\n BrowserAuthError.createNativeBrokerCalledBeforeInitialize = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.code, BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.desc);\r\n };\r\n /**\r\n * Create an error thrown when requesting a token directly from the native platform with an unsupported prompt parameter e.g. select_account, login or create\r\n * These requests must go through eSTS to ensure eSTS is aware of the new account\r\n */\r\n BrowserAuthError.createNativePromptParameterNotSupportedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativePromptNotSupported.code, BrowserAuthErrorMessage.nativePromptNotSupported.desc);\r\n };\r\n return BrowserAuthError;\r\n}(AuthError));\n\nexport { BrowserAuthError, BrowserAuthErrorMessage };\n//# sourceMappingURL=BrowserAuthError.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { OIDC_DEFAULT_SCOPES } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Constants\r\n */\r\nvar BrowserConstants = {\r\n /**\r\n * Interaction in progress cache value\r\n */\r\n INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\r\n /**\r\n * Invalid grant error code\r\n */\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n /**\r\n * Default popup window width\r\n */\r\n POPUP_WIDTH: 483,\r\n /**\r\n * Default popup window height\r\n */\r\n POPUP_HEIGHT: 600,\r\n /**\r\n * Name of the popup window starts with\r\n */\r\n POPUP_NAME_PREFIX: \"msal\",\r\n /**\r\n * Default popup monitor poll interval in milliseconds\r\n */\r\n DEFAULT_POLL_INTERVAL_MS: 30,\r\n /**\r\n * Msal-browser SKU\r\n */\r\n MSAL_SKU: \"msal.js.browser\",\r\n};\r\nvar NativeConstants = {\r\n CHANNEL_ID: \"53ee284d-920a-4b59-9d30-a60315b26836\",\r\n PREFERRED_EXTENSION_ID: \"ppnbnpeolgkicgegkbkbjmhlideopiji\",\r\n MATS_TELEMETRY: \"MATS\"\r\n};\r\nvar NativeExtensionMethod;\r\n(function (NativeExtensionMethod) {\r\n NativeExtensionMethod[\"HandshakeRequest\"] = \"Handshake\";\r\n NativeExtensionMethod[\"HandshakeResponse\"] = \"HandshakeResponse\";\r\n NativeExtensionMethod[\"GetToken\"] = \"GetToken\";\r\n NativeExtensionMethod[\"Response\"] = \"Response\";\r\n})(NativeExtensionMethod || (NativeExtensionMethod = {}));\r\nvar BrowserCacheLocation;\r\n(function (BrowserCacheLocation) {\r\n BrowserCacheLocation[\"LocalStorage\"] = \"localStorage\";\r\n BrowserCacheLocation[\"SessionStorage\"] = \"sessionStorage\";\r\n BrowserCacheLocation[\"MemoryStorage\"] = \"memoryStorage\";\r\n})(BrowserCacheLocation || (BrowserCacheLocation = {}));\r\n/**\r\n * HTTP Request types supported by MSAL.\r\n */\r\nvar HTTP_REQUEST_TYPE;\r\n(function (HTTP_REQUEST_TYPE) {\r\n HTTP_REQUEST_TYPE[\"GET\"] = \"GET\";\r\n HTTP_REQUEST_TYPE[\"POST\"] = \"POST\";\r\n})(HTTP_REQUEST_TYPE || (HTTP_REQUEST_TYPE = {}));\r\n/**\r\n * Temporary cache keys for MSAL, deleted after any request.\r\n */\r\nvar TemporaryCacheKeys;\r\n(function (TemporaryCacheKeys) {\r\n TemporaryCacheKeys[\"AUTHORITY\"] = \"authority\";\r\n TemporaryCacheKeys[\"ACQUIRE_TOKEN_ACCOUNT\"] = \"acquireToken.account\";\r\n TemporaryCacheKeys[\"SESSION_STATE\"] = \"session.state\";\r\n TemporaryCacheKeys[\"REQUEST_STATE\"] = \"request.state\";\r\n TemporaryCacheKeys[\"NONCE_IDTOKEN\"] = \"nonce.id_token\";\r\n TemporaryCacheKeys[\"ORIGIN_URI\"] = \"request.origin\";\r\n TemporaryCacheKeys[\"RENEW_STATUS\"] = \"token.renew.status\";\r\n TemporaryCacheKeys[\"URL_HASH\"] = \"urlHash\";\r\n TemporaryCacheKeys[\"REQUEST_PARAMS\"] = \"request.params\";\r\n TemporaryCacheKeys[\"SCOPES\"] = \"scopes\";\r\n TemporaryCacheKeys[\"INTERACTION_STATUS_KEY\"] = \"interaction.status\";\r\n TemporaryCacheKeys[\"CCS_CREDENTIAL\"] = \"ccs.credential\";\r\n TemporaryCacheKeys[\"CORRELATION_ID\"] = \"request.correlationId\";\r\n TemporaryCacheKeys[\"NATIVE_REQUEST\"] = \"request.native\";\r\n TemporaryCacheKeys[\"REDIRECT_CONTEXT\"] = \"request.redirect.context\";\r\n})(TemporaryCacheKeys || (TemporaryCacheKeys = {}));\r\nvar StaticCacheKeys;\r\n(function (StaticCacheKeys) {\r\n StaticCacheKeys[\"ACCOUNT_KEYS\"] = \"msal.account.keys\";\r\n StaticCacheKeys[\"TOKEN_KEYS\"] = \"msal.token.keys\";\r\n})(StaticCacheKeys || (StaticCacheKeys = {}));\r\n/**\r\n * Cache keys stored in-memory\r\n */\r\nvar InMemoryCacheKeys;\r\n(function (InMemoryCacheKeys) {\r\n InMemoryCacheKeys[\"WRAPPER_SKU\"] = \"wrapper.sku\";\r\n InMemoryCacheKeys[\"WRAPPER_VER\"] = \"wrapper.version\";\r\n})(InMemoryCacheKeys || (InMemoryCacheKeys = {}));\r\n/**\r\n * API Codes for Telemetry purposes.\r\n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\r\n * 0-99 Silent Flow\r\n * 800-899 Auth Code Flow\r\n */\r\nvar ApiId;\r\n(function (ApiId) {\r\n ApiId[ApiId[\"acquireTokenRedirect\"] = 861] = \"acquireTokenRedirect\";\r\n ApiId[ApiId[\"acquireTokenPopup\"] = 862] = \"acquireTokenPopup\";\r\n ApiId[ApiId[\"ssoSilent\"] = 863] = \"ssoSilent\";\r\n ApiId[ApiId[\"acquireTokenSilent_authCode\"] = 864] = \"acquireTokenSilent_authCode\";\r\n ApiId[ApiId[\"handleRedirectPromise\"] = 865] = \"handleRedirectPromise\";\r\n ApiId[ApiId[\"acquireTokenByCode\"] = 866] = \"acquireTokenByCode\";\r\n ApiId[ApiId[\"acquireTokenSilent_silentFlow\"] = 61] = \"acquireTokenSilent_silentFlow\";\r\n ApiId[ApiId[\"logout\"] = 961] = \"logout\";\r\n ApiId[ApiId[\"logoutPopup\"] = 962] = \"logoutPopup\";\r\n})(ApiId || (ApiId = {}));\r\n/*\r\n * Interaction type of the API - used for state and telemetry\r\n */\r\nvar InteractionType;\r\n(function (InteractionType) {\r\n InteractionType[\"Redirect\"] = \"redirect\";\r\n InteractionType[\"Popup\"] = \"popup\";\r\n InteractionType[\"Silent\"] = \"silent\";\r\n InteractionType[\"None\"] = \"none\";\r\n})(InteractionType || (InteractionType = {}));\r\n/**\r\n * Types of interaction currently in progress.\r\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\r\n */\r\nvar InteractionStatus;\r\n(function (InteractionStatus) {\r\n /**\r\n * Initial status before interaction occurs\r\n */\r\n InteractionStatus[\"Startup\"] = \"startup\";\r\n /**\r\n * Status set when all login calls occuring\r\n */\r\n InteractionStatus[\"Login\"] = \"login\";\r\n /**\r\n * Status set when logout call occuring\r\n */\r\n InteractionStatus[\"Logout\"] = \"logout\";\r\n /**\r\n * Status set for acquireToken calls\r\n */\r\n InteractionStatus[\"AcquireToken\"] = \"acquireToken\";\r\n /**\r\n * Status set for ssoSilent calls\r\n */\r\n InteractionStatus[\"SsoSilent\"] = \"ssoSilent\";\r\n /**\r\n * Status set when handleRedirect in progress\r\n */\r\n InteractionStatus[\"HandleRedirect\"] = \"handleRedirect\";\r\n /**\r\n * Status set when interaction is complete\r\n */\r\n InteractionStatus[\"None\"] = \"none\";\r\n})(InteractionStatus || (InteractionStatus = {}));\r\nvar DEFAULT_REQUEST = {\r\n scopes: OIDC_DEFAULT_SCOPES\r\n};\r\n/**\r\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\r\n */\r\nvar KEY_FORMAT_JWK = \"jwk\";\r\n// Supported wrapper SKUs\r\nvar WrapperSKU;\r\n(function (WrapperSKU) {\r\n WrapperSKU[\"React\"] = \"@azure/msal-react\";\r\n WrapperSKU[\"Angular\"] = \"@azure/msal-angular\";\r\n})(WrapperSKU || (WrapperSKU = {}));\r\n// DatabaseStorage Constants\r\nvar DB_NAME = \"msal.db\";\r\nvar DB_VERSION = 1;\r\nvar DB_TABLE_NAME = DB_NAME + \".keys\";\r\nvar CacheLookupPolicy;\r\n(function (CacheLookupPolicy) {\r\n /*\r\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired\r\n * or cannot be found the refresh token will be used to acquire a new one. Finally, if the refresh token\r\n * is expired acquireTokenSilent will attempt to acquire new access and refresh tokens.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"Default\"] = 0] = \"Default\";\r\n /*\r\n * acquireTokenSilent will only look for access tokens in the cache. It will not attempt to renew access or\r\n * refresh tokens.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"AccessToken\"] = 1] = \"AccessToken\";\r\n /*\r\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired or\r\n * cannot be found, the refresh token will be used to acquire a new one. If the refresh token is expired, it\r\n * will not be renewed and acquireTokenSilent will fail.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"AccessTokenAndRefreshToken\"] = 2] = \"AccessTokenAndRefreshToken\";\r\n /*\r\n * acquireTokenSilent will not attempt to retrieve access tokens from the cache and will instead attempt to\r\n * exchange the cached refresh token for a new access token. If the refresh token is expired, it will not be\r\n * renewed and acquireTokenSilent will fail.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"RefreshToken\"] = 3] = \"RefreshToken\";\r\n /*\r\n * acquireTokenSilent will not look in the cache for the access token. It will go directly to network with the\r\n * cached refresh token. If the refresh token is expired an attempt will be made to renew it. This is equivalent to\r\n * setting \"forceRefresh: true\".\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"RefreshTokenAndNetwork\"] = 4] = \"RefreshTokenAndNetwork\";\r\n /*\r\n * acquireTokenSilent will attempt to renew both access and refresh tokens. It will not look in the cache. This will\r\n * always fail if 3rd party cookies are blocked by the browser.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"Skip\"] = 5] = \"Skip\";\r\n})(CacheLookupPolicy || (CacheLookupPolicy = {}));\n\nexport { ApiId, BrowserCacheLocation, BrowserConstants, CacheLookupPolicy, DB_NAME, DB_TABLE_NAME, DB_VERSION, DEFAULT_REQUEST, HTTP_REQUEST_TYPE, InMemoryCacheKeys, InteractionStatus, InteractionType, KEY_FORMAT_JWK, NativeConstants, NativeExtensionMethod, StaticCacheKeys, TemporaryCacheKeys, WrapperSKU };\n//# sourceMappingURL=BrowserConstants.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserConfigurationAuthErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n storageNotSupportedError: {\r\n code: \"storage_not_supported\",\r\n desc: \"Given storage configuration option was not supported.\"\r\n },\r\n noRedirectCallbacksSet: {\r\n code: \"no_redirect_callbacks\",\r\n desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n invalidCallbackObject: {\r\n code: \"invalid_callback_object\",\r\n desc: \"The object passed for the callback was invalid. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n stubPcaInstanceCalled: {\r\n code: \"stubbed_public_client_application_called\",\r\n desc: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n inMemRedirectUnavailable: {\r\n code: \"in_mem_redirect_unavailable\",\r\n desc: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\"\r\n },\r\n entropyNotProvided: {\r\n code: \"entropy_not_provided\",\r\n desc: \"The available browser crypto interface requires entropy set via system.cryptoOptions.entropy configuration option.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserConfigurationAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserConfigurationAuthError, _super);\r\n function BrowserConfigurationAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"BrowserConfigurationAuthError\";\r\n Object.setPrototypeOf(_this, BrowserConfigurationAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code, BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code, BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when given storage location is not supported.\r\n * @param givenStorageLocation\r\n */\r\n BrowserConfigurationAuthError.createStorageNotSupportedError = function (givenStorageLocation) {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc + \" Given Location: \" + givenStorageLocation);\r\n };\r\n /**\r\n * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\r\n */\r\n BrowserConfigurationAuthError.createRedirectCallbacksNotSetError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when the stub instance of PublicClientApplication is called.\r\n */\r\n BrowserConfigurationAuthError.createStubPcaInstanceCalledError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code, BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\r\n };\r\n /*\r\n * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\r\n */\r\n BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a crypto interface that requires entropy is initialized without entropy\r\n */\r\n BrowserConfigurationAuthError.createEntropyNotProvided = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.entropyNotProvided.code, BrowserConfigurationAuthErrorMessage.entropyNotProvided.desc);\r\n };\r\n return BrowserConfigurationAuthError;\r\n}(AuthError));\n\nexport { BrowserConfigurationAuthError, BrowserConfigurationAuthErrorMessage };\n//# sourceMappingURL=BrowserConfigurationAuthError.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { BrowserCacheLocation } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserStorage = /** @class */ (function () {\r\n function BrowserStorage(cacheLocation) {\r\n this.validateWindowStorage(cacheLocation);\r\n this.windowStorage = window[cacheLocation];\r\n }\r\n BrowserStorage.prototype.validateWindowStorage = function (cacheLocation) {\r\n if (cacheLocation !== BrowserCacheLocation.LocalStorage && cacheLocation !== BrowserCacheLocation.SessionStorage) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n var storageSupported = !!window[cacheLocation];\r\n if (!storageSupported) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n };\r\n BrowserStorage.prototype.getItem = function (key) {\r\n return this.windowStorage.getItem(key);\r\n };\r\n BrowserStorage.prototype.setItem = function (key, value) {\r\n this.windowStorage.setItem(key, value);\r\n };\r\n BrowserStorage.prototype.removeItem = function (key) {\r\n this.windowStorage.removeItem(key);\r\n };\r\n BrowserStorage.prototype.getKeys = function () {\r\n return Object.keys(this.windowStorage);\r\n };\r\n BrowserStorage.prototype.containsKey = function (key) {\r\n return this.windowStorage.hasOwnProperty(key);\r\n };\r\n return BrowserStorage;\r\n}());\n\nexport { BrowserStorage };\n//# sourceMappingURL=BrowserStorage.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MemoryStorage = /** @class */ (function () {\r\n function MemoryStorage() {\r\n this.cache = new Map();\r\n }\r\n MemoryStorage.prototype.getItem = function (key) {\r\n return this.cache.get(key) || null;\r\n };\r\n MemoryStorage.prototype.setItem = function (key, value) {\r\n this.cache.set(key, value);\r\n };\r\n MemoryStorage.prototype.removeItem = function (key) {\r\n this.cache.delete(key);\r\n };\r\n MemoryStorage.prototype.getKeys = function () {\r\n var cacheKeys = [];\r\n this.cache.forEach(function (value, key) {\r\n cacheKeys.push(key);\r\n });\r\n return cacheKeys;\r\n };\r\n MemoryStorage.prototype.containsKey = function (key) {\r\n return this.cache.has(key);\r\n };\r\n MemoryStorage.prototype.clear = function () {\r\n this.cache.clear();\r\n };\r\n return MemoryStorage;\r\n}());\n\nexport { MemoryStorage };\n//# sourceMappingURL=MemoryStorage.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { StringUtils, ProtocolUtils, ClientAuthError, UrlString } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserProtocolUtils = /** @class */ (function () {\r\n function BrowserProtocolUtils() {\r\n }\r\n /**\r\n * Extracts the BrowserStateObject from the state string.\r\n * @param browserCrypto\r\n * @param state\r\n */\r\n BrowserProtocolUtils.extractBrowserRequestState = function (browserCrypto, state) {\r\n if (StringUtils.isEmpty(state)) {\r\n return null;\r\n }\r\n try {\r\n var requestStateObj = ProtocolUtils.parseRequestState(browserCrypto, state);\r\n return requestStateObj.libraryState.meta;\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n /**\r\n * Parses properties of server response from url hash\r\n * @param locationHash Hash from url\r\n */\r\n BrowserProtocolUtils.parseServerResponseFromHash = function (locationHash) {\r\n if (!locationHash) {\r\n return {};\r\n }\r\n var hashUrlString = new UrlString(locationHash);\r\n return UrlString.getDeserializedHash(hashUrlString.getHash());\r\n };\r\n return BrowserProtocolUtils;\r\n}());\n\nexport { BrowserProtocolUtils };\n//# sourceMappingURL=BrowserProtocolUtils.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __spread } from '../_virtual/_tslib.js';\nimport { CredentialType, RefreshTokenEntity, CacheManager, AccessTokenEntity, IdTokenEntity, AccountEntity, ClientAuthError, AppMetadataEntity, ServerTelemetryEntity, AuthorityMetadataEntity, Constants, PersistentCacheKeys, ThrottlingEntity, StringUtils, ProtocolUtils, CcsCredentialType, IdToken, DEFAULT_CRYPTO_IMPLEMENTATION } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserCacheLocation, StaticCacheKeys, InMemoryCacheKeys, TemporaryCacheKeys } from '../utils/BrowserConstants.js';\nimport { BrowserStorage } from './BrowserStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the cache storage interface for MSAL through browser local or session storage.\r\n * Cookies are only used if storeAuthStateInCookie is true, and are only used for\r\n * parameters such as state and nonce, generally.\r\n */\r\nvar BrowserCacheManager = /** @class */ (function (_super) {\r\n __extends(BrowserCacheManager, _super);\r\n function BrowserCacheManager(clientId, cacheConfig, cryptoImpl, logger) {\r\n var _this = _super.call(this, clientId, cryptoImpl, logger) || this;\r\n // Cookie life calculation (hours * minutes * seconds * ms)\r\n _this.COOKIE_LIFE_MULTIPLIER = 24 * 60 * 60 * 1000;\r\n _this.cacheConfig = cacheConfig;\r\n _this.logger = logger;\r\n _this.internalStorage = new MemoryStorage();\r\n _this.browserStorage = _this.setupBrowserStorage(_this.cacheConfig.cacheLocation);\r\n _this.temporaryCacheStorage = _this.setupTemporaryCacheStorage(_this.cacheConfig.temporaryCacheLocation, _this.cacheConfig.cacheLocation);\r\n // Migrate cache entries from older versions of MSAL.\r\n if (cacheConfig.cacheMigrationEnabled) {\r\n _this.migrateCacheEntries();\r\n _this.createKeyMaps();\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured cacheLocation.\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupBrowserStorage = function (cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n return new BrowserStorage(cacheLocation);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n break;\r\n }\r\n }\r\n this.cacheConfig.cacheLocation = BrowserCacheLocation.MemoryStorage;\r\n return new MemoryStorage();\r\n };\r\n /**\r\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured temporaryCacheLocation.\r\n * @param temporaryCacheLocation\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupTemporaryCacheStorage = function (temporaryCacheLocation, cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n /*\r\n * When users do not explicitly choose their own temporaryCacheLocation,\r\n * temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n */\r\n return new BrowserStorage(temporaryCacheLocation || BrowserCacheLocation.SessionStorage);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n return this.internalStorage;\r\n }\r\n case BrowserCacheLocation.MemoryStorage:\r\n default:\r\n return this.internalStorage;\r\n }\r\n };\r\n /**\r\n * Migrate all old cache entries to new schema. No rollback supported.\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntries = function () {\r\n var _this = this;\r\n var idTokenKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ID_TOKEN;\r\n var clientInfoKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.CLIENT_INFO;\r\n var errorKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR;\r\n var errorDescKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR_DESC;\r\n var idTokenValue = this.browserStorage.getItem(idTokenKey);\r\n var clientInfoValue = this.browserStorage.getItem(clientInfoKey);\r\n var errorValue = this.browserStorage.getItem(errorKey);\r\n var errorDescValue = this.browserStorage.getItem(errorDescKey);\r\n var values = [idTokenValue, clientInfoValue, errorValue, errorDescValue];\r\n var keysToMigrate = [PersistentCacheKeys.ID_TOKEN, PersistentCacheKeys.CLIENT_INFO, PersistentCacheKeys.ERROR, PersistentCacheKeys.ERROR_DESC];\r\n keysToMigrate.forEach(function (cacheKey, index) { return _this.migrateCacheEntry(cacheKey, values[index]); });\r\n };\r\n /**\r\n * Utility function to help with migration.\r\n * @param newKey\r\n * @param value\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntry = function (newKey, value) {\r\n if (value) {\r\n this.setTemporaryCache(newKey, value, true);\r\n }\r\n };\r\n /**\r\n * Searches all cache entries for MSAL accounts and creates the account key map\r\n * This is used to migrate users from older versions of MSAL which did not create the map.\r\n * @returns\r\n */\r\n BrowserCacheManager.prototype.createKeyMaps = function () {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager - createKeyMaps called.\");\r\n var accountKeys = this.getItem(StaticCacheKeys.ACCOUNT_KEYS);\r\n var tokenKeys = this.getItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId);\r\n if (accountKeys && tokenKeys) {\r\n this.logger.verbose(\"BrowserCacheManager:createKeyMaps - account and token key maps already exist, skipping migration.\");\r\n // Key maps already exist, no need to iterate through cache\r\n return;\r\n }\r\n var allKeys = this.browserStorage.getKeys();\r\n allKeys.forEach(function (key) {\r\n if (_this.isCredentialKey(key)) {\r\n // Get item, parse, validate and write key to map\r\n var value = _this.getItem(key);\r\n if (value) {\r\n var credObj = _this.validateAndParseJson(value);\r\n if (credObj && credObj.hasOwnProperty(\"credentialType\")) {\r\n switch (credObj[\"credentialType\"]) {\r\n case CredentialType.ID_TOKEN:\r\n if (IdTokenEntity.isIdTokenEntity(credObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - idToken found, saving key to token key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - idToken with key: \" + key + \" found, saving key to token key map\");\r\n var idTokenEntity = CacheManager.toObject(new IdTokenEntity(), credObj);\r\n var newKey = _this.updateCredentialCacheKey(key, idTokenEntity);\r\n _this.addTokenKey(newKey, CredentialType.ID_TOKEN);\r\n return;\r\n }\r\n else {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - key found matching idToken schema with value containing idToken credentialType field but value failed IdTokenEntity validation, skipping.\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - failed idToken validation on key: \" + key);\r\n }\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n if (AccessTokenEntity.isAccessTokenEntity(credObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - accessToken found, saving key to token key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - accessToken with key: \" + key + \" found, saving key to token key map\");\r\n var accessTokenEntity = CacheManager.toObject(new AccessTokenEntity(), credObj);\r\n var newKey = _this.updateCredentialCacheKey(key, accessTokenEntity);\r\n _this.addTokenKey(newKey, CredentialType.ACCESS_TOKEN);\r\n return;\r\n }\r\n else {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - key found matching accessToken schema with value containing accessToken credentialType field but value failed AccessTokenEntity validation, skipping.\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - failed accessToken validation on key: \" + key);\r\n }\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n if (RefreshTokenEntity.isRefreshTokenEntity(credObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - refreshToken found, saving key to token key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - refreshToken with key: \" + key + \" found, saving key to token key map\");\r\n var refreshTokenEntity = CacheManager.toObject(new RefreshTokenEntity(), credObj);\r\n var newKey = _this.updateCredentialCacheKey(key, refreshTokenEntity);\r\n _this.addTokenKey(newKey, CredentialType.REFRESH_TOKEN);\r\n return;\r\n }\r\n else {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - key found matching refreshToken schema with value containing refreshToken credentialType field but value failed RefreshTokenEntity validation, skipping.\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - failed refreshToken validation on key: \" + key);\r\n }\r\n break;\r\n // If credentialType isn't one of our predefined ones, it may not be an MSAL cache value. Ignore.\r\n }\r\n }\r\n }\r\n }\r\n if (_this.isAccountKey(key)) {\r\n var value = _this.getItem(key);\r\n if (value) {\r\n var accountObj = _this.validateAndParseJson(value);\r\n if (accountObj && AccountEntity.isAccountEntity(accountObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - account found, saving key to account key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - account with key: \" + key + \" found, saving key to account key map\");\r\n _this.addAccountKeyToMap(key);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Parses passed value as JSON object, JSON.parse() will throw an error.\r\n * @param input\r\n */\r\n BrowserCacheManager.prototype.validateAndParseJson = function (jsonValue) {\r\n try {\r\n var parsedJson = JSON.parse(jsonValue);\r\n /**\r\n * There are edge cases in which JSON.parse will successfully parse a non-valid JSON object\r\n * (e.g. JSON.parse will parse an escaped string into an unescaped string), so adding a type check\r\n * of the parsed value is necessary in order to be certain that the string represents a valid JSON object.\r\n *\r\n */\r\n return (parsedJson && typeof parsedJson === \"object\") ? parsedJson : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * fetches the entry from the browser storage based off the key\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getItem = function (key) {\r\n return this.browserStorage.getItem(key);\r\n };\r\n /**\r\n * sets the entry in the browser storage\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setItem = function (key, value) {\r\n this.browserStorage.setItem(key, value);\r\n };\r\n /**\r\n * fetch the account entity from the platform cache\r\n * @param accountKey\r\n */\r\n BrowserCacheManager.prototype.getAccount = function (accountKey) {\r\n this.logger.trace(\"BrowserCacheManager.getAccount called\");\r\n var account = this.getItem(accountKey);\r\n if (!account) {\r\n this.removeAccountKeyFromMap(accountKey);\r\n return null;\r\n }\r\n var parsedAccount = this.validateAndParseJson(account);\r\n if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {\r\n this.removeAccountKeyFromMap(accountKey);\r\n return null;\r\n }\r\n return CacheManager.toObject(new AccountEntity(), parsedAccount);\r\n };\r\n /**\r\n * set account entity in the platform cache\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setAccount = function (account) {\r\n this.logger.trace(\"BrowserCacheManager.setAccount called\");\r\n var key = account.generateAccountKey();\r\n this.setItem(key, JSON.stringify(account));\r\n this.addAccountKeyToMap(key);\r\n };\r\n /**\r\n * Returns the array of account keys currently cached\r\n * @returns\r\n */\r\n BrowserCacheManager.prototype.getAccountKeys = function () {\r\n this.logger.trace(\"BrowserCacheManager.getAccountKeys called\");\r\n var accountKeys = this.getItem(StaticCacheKeys.ACCOUNT_KEYS);\r\n if (accountKeys) {\r\n return JSON.parse(accountKeys);\r\n }\r\n this.logger.verbose(\"BrowserCacheManager.getAccountKeys - No account keys found\");\r\n return [];\r\n };\r\n /**\r\n * Add a new account to the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.addAccountKeyToMap = function (key) {\r\n this.logger.trace(\"BrowserCacheManager.addAccountKeyToMap called\");\r\n this.logger.tracePii(\"BrowserCacheManager.addAccountKeyToMap called with key: \" + key);\r\n var accountKeys = this.getAccountKeys();\r\n if (accountKeys.indexOf(key) === -1) {\r\n // Only add key if it does not already exist in the map\r\n accountKeys.push(key);\r\n this.setItem(StaticCacheKeys.ACCOUNT_KEYS, JSON.stringify(accountKeys));\r\n this.logger.verbose(\"BrowserCacheManager.addAccountKeyToMap account key added\");\r\n }\r\n else {\r\n this.logger.verbose(\"BrowserCacheManager.addAccountKeyToMap account key already exists in map\");\r\n }\r\n };\r\n /**\r\n * Remove an account from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeAccountKeyFromMap = function (key) {\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap called\");\r\n this.logger.tracePii(\"BrowserCacheManager.removeAccountKeyFromMap called with key: \" + key);\r\n var accountKeys = this.getAccountKeys();\r\n var removalIndex = accountKeys.indexOf(key);\r\n if (removalIndex > -1) {\r\n accountKeys.splice(removalIndex, 1);\r\n this.setItem(StaticCacheKeys.ACCOUNT_KEYS, JSON.stringify(accountKeys));\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap account key removed\");\r\n }\r\n else {\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap key not found in existing map\");\r\n }\r\n };\r\n /**\r\n * Extends inherited removeAccount function to include removal of the account key from the map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeAccount = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n _super.prototype.removeAccount.call(this, key);\r\n this.removeAccountKeyFromMap(key);\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Removes given idToken from the cache and from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeIdToken = function (key) {\r\n _super.prototype.removeIdToken.call(this, key);\r\n this.removeTokenKey(key, CredentialType.ID_TOKEN);\r\n };\r\n /**\r\n * Removes given accessToken from the cache and from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeAccessToken = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n _super.prototype.removeAccessToken.call(this, key);\r\n this.removeTokenKey(key, CredentialType.ACCESS_TOKEN);\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Removes given refreshToken from the cache and from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeRefreshToken = function (key) {\r\n _super.prototype.removeRefreshToken.call(this, key);\r\n this.removeTokenKey(key, CredentialType.REFRESH_TOKEN);\r\n };\r\n /**\r\n * Gets the keys for the cached tokens associated with this clientId\r\n * @returns\r\n */\r\n BrowserCacheManager.prototype.getTokenKeys = function () {\r\n this.logger.trace(\"BrowserCacheManager.getTokenKeys called\");\r\n var item = this.getItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId);\r\n if (item) {\r\n var tokenKeys = this.validateAndParseJson(item);\r\n if (tokenKeys &&\r\n tokenKeys.hasOwnProperty(\"idToken\") &&\r\n tokenKeys.hasOwnProperty(\"accessToken\") &&\r\n tokenKeys.hasOwnProperty(\"refreshToken\")) {\r\n return tokenKeys;\r\n }\r\n else {\r\n this.logger.error(\"BrowserCacheManager.getTokenKeys - Token keys found but in an unknown format. Returning empty key map.\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"BrowserCacheManager.getTokenKeys - No token keys found\");\r\n }\r\n return {\r\n idToken: [],\r\n accessToken: [],\r\n refreshToken: []\r\n };\r\n };\r\n /**\r\n * Adds the given key to the token key map\r\n * @param key\r\n * @param type\r\n */\r\n BrowserCacheManager.prototype.addTokenKey = function (key, type) {\r\n this.logger.trace(\"BrowserCacheManager addTokenKey called\");\r\n var tokenKeys = this.getTokenKeys();\r\n switch (type) {\r\n case CredentialType.ID_TOKEN:\r\n if (tokenKeys.idToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - idToken added to map\");\r\n tokenKeys.idToken.push(key);\r\n }\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n if (tokenKeys.accessToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - accessToken added to map\");\r\n tokenKeys.accessToken.push(key);\r\n }\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n if (tokenKeys.refreshToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - refreshToken added to map\");\r\n tokenKeys.refreshToken.push(key);\r\n }\r\n break;\r\n default:\r\n this.logger.error(\"BrowserCacheManager:addTokenKey - CredentialType provided invalid. CredentialType: \" + type);\r\n ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n this.setItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId, JSON.stringify(tokenKeys));\r\n };\r\n /**\r\n * Removes the given key from the token key map\r\n * @param key\r\n * @param type\r\n */\r\n BrowserCacheManager.prototype.removeTokenKey = function (key, type) {\r\n this.logger.trace(\"BrowserCacheManager removeTokenKey called\");\r\n var tokenKeys = this.getTokenKeys();\r\n switch (type) {\r\n case CredentialType.ID_TOKEN:\r\n this.logger.infoPii(\"BrowserCacheManager: removeTokenKey - attempting to remove idToken with key: \" + key + \" from map\");\r\n var idRemoval = tokenKeys.idToken.indexOf(key);\r\n if (idRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - idToken removed from map\");\r\n tokenKeys.idToken.splice(idRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - idToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n this.logger.infoPii(\"BrowserCacheManager: removeTokenKey - attempting to remove accessToken with key: \" + key + \" from map\");\r\n var accessRemoval = tokenKeys.accessToken.indexOf(key);\r\n if (accessRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - accessToken removed from map\");\r\n tokenKeys.accessToken.splice(accessRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - accessToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n this.logger.infoPii(\"BrowserCacheManager: removeTokenKey - attempting to remove refreshToken with key: \" + key + \" from map\");\r\n var refreshRemoval = tokenKeys.refreshToken.indexOf(key);\r\n if (refreshRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - refreshToken removed from map\");\r\n tokenKeys.refreshToken.splice(refreshRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - refreshToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n default:\r\n this.logger.error(\"BrowserCacheManager:removeTokenKey - CredentialType provided invalid. CredentialType: \" + type);\r\n ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n this.setItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId, JSON.stringify(tokenKeys));\r\n };\r\n /**\r\n * generates idToken entity from a string\r\n * @param idTokenKey\r\n */\r\n BrowserCacheManager.prototype.getIdTokenCredential = function (idTokenKey) {\r\n var value = this.getItem(idTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n return null;\r\n }\r\n var parsedIdToken = this.validateAndParseJson(value);\r\n if (!parsedIdToken || !IdTokenEntity.isIdTokenEntity(parsedIdToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: cache hit\");\r\n return CacheManager.toObject(new IdTokenEntity(), parsedIdToken);\r\n };\r\n /**\r\n * set IdToken credential to the platform cache\r\n * @param idToken\r\n */\r\n BrowserCacheManager.prototype.setIdTokenCredential = function (idToken) {\r\n this.logger.trace(\"BrowserCacheManager.setIdTokenCredential called\");\r\n var idTokenKey = idToken.generateCredentialKey();\r\n this.setItem(idTokenKey, JSON.stringify(idToken));\r\n this.addTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n };\r\n /**\r\n * generates accessToken entity from a string\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getAccessTokenCredential = function (accessTokenKey) {\r\n var value = this.getItem(accessTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n return null;\r\n }\r\n var parsedAccessToken = this.validateAndParseJson(value);\r\n if (!parsedAccessToken || !AccessTokenEntity.isAccessTokenEntity(parsedAccessToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: cache hit\");\r\n return CacheManager.toObject(new AccessTokenEntity(), parsedAccessToken);\r\n };\r\n /**\r\n * set accessToken credential to the platform cache\r\n * @param accessToken\r\n */\r\n BrowserCacheManager.prototype.setAccessTokenCredential = function (accessToken) {\r\n this.logger.trace(\"BrowserCacheManager.setAccessTokenCredential called\");\r\n var accessTokenKey = accessToken.generateCredentialKey();\r\n this.setItem(accessTokenKey, JSON.stringify(accessToken));\r\n this.addTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n };\r\n /**\r\n * generates refreshToken entity from a string\r\n * @param refreshTokenKey\r\n */\r\n BrowserCacheManager.prototype.getRefreshTokenCredential = function (refreshTokenKey) {\r\n var value = this.getItem(refreshTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n return null;\r\n }\r\n var parsedRefreshToken = this.validateAndParseJson(value);\r\n if (!parsedRefreshToken || !RefreshTokenEntity.isRefreshTokenEntity(parsedRefreshToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: cache hit\");\r\n return CacheManager.toObject(new RefreshTokenEntity(), parsedRefreshToken);\r\n };\r\n /**\r\n * set refreshToken credential to the platform cache\r\n * @param refreshToken\r\n */\r\n BrowserCacheManager.prototype.setRefreshTokenCredential = function (refreshToken) {\r\n this.logger.trace(\"BrowserCacheManager.setRefreshTokenCredential called\");\r\n var refreshTokenKey = refreshToken.generateCredentialKey();\r\n this.setItem(refreshTokenKey, JSON.stringify(refreshToken));\r\n this.addTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n };\r\n /**\r\n * fetch appMetadata entity from the platform cache\r\n * @param appMetadataKey\r\n */\r\n BrowserCacheManager.prototype.getAppMetadata = function (appMetadataKey) {\r\n var value = this.getItem(appMetadataKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !AppMetadataEntity.isAppMetadataEntity(appMetadataKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: cache hit\");\r\n return CacheManager.toObject(new AppMetadataEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set appMetadata entity to the platform cache\r\n * @param appMetadata\r\n */\r\n BrowserCacheManager.prototype.setAppMetadata = function (appMetadata) {\r\n this.logger.trace(\"BrowserCacheManager.setAppMetadata called\");\r\n var appMetadataKey = appMetadata.generateAppMetadataKey();\r\n this.setItem(appMetadataKey, JSON.stringify(appMetadata));\r\n };\r\n /**\r\n * fetch server telemetry entity from the platform cache\r\n * @param serverTelemetryKey\r\n */\r\n BrowserCacheManager.prototype.getServerTelemetry = function (serverTelemetryKey) {\r\n var value = this.getItem(serverTelemetryKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !ServerTelemetryEntity.isServerTelemetryEntity(serverTelemetryKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: cache hit\");\r\n return CacheManager.toObject(new ServerTelemetryEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set server telemetry entity to the platform cache\r\n * @param serverTelemetryKey\r\n * @param serverTelemetry\r\n */\r\n BrowserCacheManager.prototype.setServerTelemetry = function (serverTelemetryKey, serverTelemetry) {\r\n this.logger.trace(\"BrowserCacheManager.setServerTelemetry called\");\r\n this.setItem(serverTelemetryKey, JSON.stringify(serverTelemetry));\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadata = function (key) {\r\n var value = this.internalStorage.getItem(key);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (parsedMetadata && AuthorityMetadataEntity.isAuthorityMetadataEntity(key, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: cache hit\");\r\n return CacheManager.toObject(new AuthorityMetadataEntity(), parsedMetadata);\r\n }\r\n return null;\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadataKeys = function () {\r\n var _this = this;\r\n var allKeys = this.internalStorage.getKeys();\r\n return allKeys.filter(function (key) {\r\n return _this.isAuthorityMetadata(key);\r\n });\r\n };\r\n /**\r\n * Sets wrapper metadata in memory\r\n * @param wrapperSKU\r\n * @param wrapperVersion\r\n */\r\n BrowserCacheManager.prototype.setWrapperMetadata = function (wrapperSKU, wrapperVersion) {\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_SKU, wrapperSKU);\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_VER, wrapperVersion);\r\n };\r\n /**\r\n * Returns wrapper metadata from in-memory storage\r\n */\r\n BrowserCacheManager.prototype.getWrapperMetadata = function () {\r\n var sku = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_SKU) || Constants.EMPTY_STRING;\r\n var version = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_VER) || Constants.EMPTY_STRING;\r\n return [sku, version];\r\n };\r\n /**\r\n *\r\n * @param entity\r\n */\r\n BrowserCacheManager.prototype.setAuthorityMetadata = function (key, entity) {\r\n this.logger.trace(\"BrowserCacheManager.setAuthorityMetadata called\");\r\n this.internalStorage.setItem(key, JSON.stringify(entity));\r\n };\r\n /**\r\n * Gets the active account\r\n */\r\n BrowserCacheManager.prototype.getActiveAccount = function () {\r\n var activeAccountKeyFilters = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS);\r\n var activeAccountValueFilters = this.getItem(activeAccountKeyFilters);\r\n if (!activeAccountValueFilters) {\r\n // if new active account cache type isn't found, it's an old version, so look for that instead\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account filters cache schema found, looking for legacy schema\");\r\n var activeAccountKeyLocal = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\r\n var activeAccountValueLocal = this.getItem(activeAccountKeyLocal);\r\n if (!activeAccountValueLocal) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account found\");\r\n return null;\r\n }\r\n var activeAccount = this.getAccountInfoByFilter({ localAccountId: activeAccountValueLocal })[0] || null;\r\n if (activeAccount) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Legacy active account cache schema found\");\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Adding active account filters cache schema\");\r\n this.setActiveAccount(activeAccount);\r\n return activeAccount;\r\n }\r\n return null;\r\n }\r\n var activeAccountValueObj = this.validateAndParseJson(activeAccountValueFilters);\r\n if (activeAccountValueObj) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Active account filters schema found\");\r\n return this.getAccountInfoByFilter({\r\n homeAccountId: activeAccountValueObj.homeAccountId,\r\n localAccountId: activeAccountValueObj.localAccountId\r\n })[0] || null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account found\");\r\n return null;\r\n };\r\n /**\r\n * Sets the active account's localAccountId in cache\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.setActiveAccount = function (account) {\r\n var activeAccountKey = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS);\r\n var activeAccountKeyLocal = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\r\n if (account) {\r\n this.logger.verbose(\"setActiveAccount: Active account set\");\r\n var activeAccountValue = {\r\n homeAccountId: account.homeAccountId,\r\n localAccountId: account.localAccountId\r\n };\r\n this.browserStorage.setItem(activeAccountKey, JSON.stringify(activeAccountValue));\r\n this.browserStorage.setItem(activeAccountKeyLocal, account.localAccountId);\r\n }\r\n else {\r\n this.logger.verbose(\"setActiveAccount: No account passed, active account not set\");\r\n this.browserStorage.removeItem(activeAccountKey);\r\n this.browserStorage.removeItem(activeAccountKeyLocal);\r\n }\r\n };\r\n /**\r\n * Gets a list of accounts that match all of the filters provided\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.getAccountInfoByFilter = function (accountFilter) {\r\n var allAccounts = this.getAllAccounts();\r\n this.logger.trace(\"BrowserCacheManager.getAccountInfoByFilter: total \" + allAccounts.length + \" accounts found\");\r\n return allAccounts.filter(function (accountObj) {\r\n if (accountFilter.username && accountFilter.username.toLowerCase() !== accountObj.username.toLowerCase()) {\r\n return false;\r\n }\r\n if (accountFilter.homeAccountId && accountFilter.homeAccountId !== accountObj.homeAccountId) {\r\n return false;\r\n }\r\n if (accountFilter.localAccountId && accountFilter.localAccountId !== accountObj.localAccountId) {\r\n return false;\r\n }\r\n if (accountFilter.tenantId && accountFilter.tenantId !== accountObj.tenantId) {\r\n return false;\r\n }\r\n if (accountFilter.environment && accountFilter.environment !== accountObj.environment) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n };\r\n /**\r\n * Checks the cache for accounts matching loginHint or SID\r\n * @param loginHint\r\n * @param sid\r\n */\r\n BrowserCacheManager.prototype.getAccountInfoByHints = function (loginHint, sid) {\r\n var matchingAccounts = this.getAllAccounts().filter(function (accountInfo) {\r\n if (sid) {\r\n var accountSid = accountInfo.idTokenClaims && accountInfo.idTokenClaims[\"sid\"];\r\n return sid === accountSid;\r\n }\r\n if (loginHint) {\r\n return loginHint === accountInfo.username;\r\n }\r\n return false;\r\n });\r\n if (matchingAccounts.length === 1) {\r\n return matchingAccounts[0];\r\n }\r\n else if (matchingAccounts.length > 1) {\r\n throw ClientAuthError.createMultipleMatchingAccountsInCacheError();\r\n }\r\n return null;\r\n };\r\n /**\r\n * fetch throttling entity from the platform cache\r\n * @param throttlingCacheKey\r\n */\r\n BrowserCacheManager.prototype.getThrottlingCache = function (throttlingCacheKey) {\r\n var value = this.getItem(throttlingCacheKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedThrottlingCache = this.validateAndParseJson(value);\r\n if (!parsedThrottlingCache || !ThrottlingEntity.isThrottlingEntity(throttlingCacheKey, parsedThrottlingCache)) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: cache hit\");\r\n return CacheManager.toObject(new ThrottlingEntity(), parsedThrottlingCache);\r\n };\r\n /**\r\n * set throttling entity to the platform cache\r\n * @param throttlingCacheKey\r\n * @param throttlingCache\r\n */\r\n BrowserCacheManager.prototype.setThrottlingCache = function (throttlingCacheKey, throttlingCache) {\r\n this.logger.trace(\"BrowserCacheManager.setThrottlingCache called\");\r\n this.setItem(throttlingCacheKey, JSON.stringify(throttlingCache));\r\n };\r\n /**\r\n * Gets cache item with given key.\r\n * Will retrieve from cookies if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getTemporaryCache = function (cacheKey, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n var itemCookie = this.getItemCookie(key);\r\n if (itemCookie) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies\");\r\n return itemCookie;\r\n }\r\n }\r\n var value = this.temporaryCacheStorage.getItem(key);\r\n if (!value) {\r\n // If temp cache item not found in session/memory, check local storage for items set by old versions\r\n if (this.cacheConfig.cacheLocation === BrowserCacheLocation.LocalStorage) {\r\n var item = this.browserStorage.getItem(key);\r\n if (item) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage\");\r\n return item;\r\n }\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: No cache item found in local storage\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item returned\");\r\n return value;\r\n };\r\n /**\r\n * Sets the cache item with the key and value given.\r\n * Stores in cookie if storeAuthStateInCookie is set to true.\r\n * This can cause cookie overflow if used incorrectly.\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setTemporaryCache = function (cacheKey, value, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n this.temporaryCacheStorage.setItem(key, value);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie\");\r\n this.setItemCookie(key, value);\r\n }\r\n };\r\n /**\r\n * Removes the cache item with the given key.\r\n * Will also clear the cookie item if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeItem = function (key) {\r\n this.browserStorage.removeItem(key);\r\n this.temporaryCacheStorage.removeItem(key);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie\");\r\n this.clearItemCookie(key);\r\n }\r\n };\r\n /**\r\n * Checks whether key is in cache.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.containsKey = function (key) {\r\n return this.browserStorage.containsKey(key) || this.temporaryCacheStorage.containsKey(key);\r\n };\r\n /**\r\n * Gets all keys in window.\r\n */\r\n BrowserCacheManager.prototype.getKeys = function () {\r\n return __spread(this.browserStorage.getKeys(), this.temporaryCacheStorage.getKeys());\r\n };\r\n /**\r\n * Clears all cache entries created by MSAL.\r\n */\r\n BrowserCacheManager.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: \r\n // Removes all accounts and their credentials\r\n return [4 /*yield*/, this.removeAllAccounts()];\r\n case 1:\r\n // Removes all accounts and their credentials\r\n _a.sent();\r\n this.removeAppMetadata();\r\n // Removes all remaining MSAL cache items\r\n this.getKeys().forEach(function (cacheKey) {\r\n // Check if key contains msal prefix; For now, we are clearing all the cache items created by MSAL.js\r\n if ((_this.browserStorage.containsKey(cacheKey) || _this.temporaryCacheStorage.containsKey(cacheKey)) && ((cacheKey.indexOf(Constants.CACHE_PREFIX) !== -1) || (cacheKey.indexOf(_this.clientId) !== -1))) {\r\n _this.removeItem(cacheKey);\r\n }\r\n });\r\n this.internalStorage.clear();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Add value to cookies\r\n * @param cookieName\r\n * @param cookieValue\r\n * @param expires\r\n */\r\n BrowserCacheManager.prototype.setItemCookie = function (cookieName, cookieValue, expires) {\r\n var cookieStr = encodeURIComponent(cookieName) + \"=\" + encodeURIComponent(cookieValue) + \";path=/;SameSite=Lax;\";\r\n if (expires) {\r\n var expireTime = this.getCookieExpirationTime(expires);\r\n cookieStr += \"expires=\" + expireTime + \";\";\r\n }\r\n if (this.cacheConfig.secureCookies) {\r\n cookieStr += \"Secure;\";\r\n }\r\n document.cookie = cookieStr;\r\n };\r\n /**\r\n * Get one item by key from cookies\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.getItemCookie = function (cookieName) {\r\n var name = encodeURIComponent(cookieName) + \"=\";\r\n var cookieList = document.cookie.split(\";\");\r\n for (var i = 0; i < cookieList.length; i++) {\r\n var cookie = cookieList[i];\r\n while (cookie.charAt(0) === \" \") {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(name) === 0) {\r\n return decodeURIComponent(cookie.substring(name.length, cookie.length));\r\n }\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Clear all msal-related cookies currently set in the browser. Should only be used to clear temporary cache items.\r\n */\r\n BrowserCacheManager.prototype.clearMsalCookies = function () {\r\n var _this = this;\r\n var cookiePrefix = Constants.CACHE_PREFIX + \".\" + this.clientId;\r\n var cookieList = document.cookie.split(\";\");\r\n cookieList.forEach(function (cookie) {\r\n while (cookie.charAt(0) === \" \") {\r\n // eslint-disable-next-line no-param-reassign\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(cookiePrefix) === 0) {\r\n var cookieKey = cookie.split(\"=\")[0];\r\n _this.clearItemCookie(cookieKey);\r\n }\r\n });\r\n };\r\n /**\r\n * Clear an item in the cookies by key\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.clearItemCookie = function (cookieName) {\r\n this.setItemCookie(cookieName, Constants.EMPTY_STRING, -1);\r\n };\r\n /**\r\n * Get cookie expiration time\r\n * @param cookieLifeDays\r\n */\r\n BrowserCacheManager.prototype.getCookieExpirationTime = function (cookieLifeDays) {\r\n var today = new Date();\r\n var expr = new Date(today.getTime() + cookieLifeDays * this.COOKIE_LIFE_MULTIPLIER);\r\n return expr.toUTCString();\r\n };\r\n /**\r\n * Gets the cache object referenced by the browser\r\n */\r\n BrowserCacheManager.prototype.getCache = function () {\r\n return this.browserStorage;\r\n };\r\n /**\r\n * interface compat, we cannot overwrite browser cache; Functionality is supported by individual entities in browser\r\n */\r\n BrowserCacheManager.prototype.setCache = function () {\r\n // sets nothing\r\n };\r\n /**\r\n * Prepend msal. to each key; Skip for any JSON object as Key (defined schemas do not need the key appended: AccessToken Keys or the upcoming schema)\r\n * @param key\r\n * @param addInstanceId\r\n */\r\n BrowserCacheManager.prototype.generateCacheKey = function (key) {\r\n var generatedKey = this.validateAndParseJson(key);\r\n if (!generatedKey) {\r\n if (StringUtils.startsWith(key, Constants.CACHE_PREFIX) || StringUtils.startsWith(key, PersistentCacheKeys.ADAL_ID_TOKEN)) {\r\n return key;\r\n }\r\n return Constants.CACHE_PREFIX + \".\" + this.clientId + \".\" + key;\r\n }\r\n return JSON.stringify(key);\r\n };\r\n /**\r\n * Create authorityKey to cache authority\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateAuthorityKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.AUTHORITY + \".\" + stateId);\r\n };\r\n /**\r\n * Create Nonce key to cache nonce\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateNonceKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN + \".\" + stateId);\r\n };\r\n /**\r\n * Creates full cache key for the request state\r\n * @param stateString State string for the request\r\n */\r\n BrowserCacheManager.prototype.generateStateKey = function (stateString) {\r\n // Use the library state id to key temp storage for uniqueness for multiple concurrent requests\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.REQUEST_STATE + \".\" + stateId);\r\n };\r\n /**\r\n * Gets the cached authority based on the cached state. Returns empty if no cached state found.\r\n */\r\n BrowserCacheManager.prototype.getCachedAuthority = function (cachedState) {\r\n var stateCacheKey = this.generateStateKey(cachedState);\r\n var state = this.getTemporaryCache(stateCacheKey);\r\n if (!state) {\r\n return null;\r\n }\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n return this.getTemporaryCache(authorityCacheKey);\r\n };\r\n /**\r\n * Updates account, authority, and state in cache\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.updateCacheEntries = function (state, nonce, authorityInstance, loginHint, account) {\r\n this.logger.trace(\"BrowserCacheManager.updateCacheEntries called\");\r\n // Cache the request state\r\n var stateCacheKey = this.generateStateKey(state);\r\n this.setTemporaryCache(stateCacheKey, state, false);\r\n // Cache the nonce\r\n var nonceCacheKey = this.generateNonceKey(state);\r\n this.setTemporaryCache(nonceCacheKey, nonce, false);\r\n // Cache authorityKey\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n this.setTemporaryCache(authorityCacheKey, authorityInstance, false);\r\n if (account) {\r\n var ccsCredential = {\r\n credential: account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n else if (!StringUtils.isEmpty(loginHint)) {\r\n var ccsCredential = {\r\n credential: loginHint,\r\n type: CcsCredentialType.UPN\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n };\r\n /**\r\n * Reset all temporary cache items\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.resetRequestCache = function (state) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.resetRequestCache called\");\r\n // check state and remove associated cache items\r\n if (!StringUtils.isEmpty(state)) {\r\n this.getKeys().forEach(function (key) {\r\n if (key.indexOf(state) !== -1) {\r\n _this.removeItem(key);\r\n }\r\n });\r\n }\r\n // delete generic interactive request parameters\r\n if (state) {\r\n this.removeItem(this.generateStateKey(state));\r\n this.removeItem(this.generateNonceKey(state));\r\n this.removeItem(this.generateAuthorityKey(state));\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.ORIGIN_URI));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CORRELATION_ID));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CCS_CREDENTIAL));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.NATIVE_REQUEST));\r\n this.setInteractionInProgress(false);\r\n };\r\n /**\r\n * Removes temporary cache for the provided state\r\n * @param stateString\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByState = function (stateString) {\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByState called\");\r\n // Interaction is completed - remove interaction status.\r\n if (stateString) {\r\n var stateKey = this.generateStateKey(stateString);\r\n var cachedState = this.temporaryCacheStorage.getItem(stateKey);\r\n this.logger.infoPii(\"BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: \" + cachedState);\r\n this.resetRequestCache(cachedState || Constants.EMPTY_STRING);\r\n }\r\n this.clearMsalCookies();\r\n };\r\n /**\r\n * Looks in temporary cache for any state values with the provided interactionType and removes all temporary cache items for that state\r\n * Used in scenarios where temp cache needs to be cleaned but state is not known, such as clicking browser back button.\r\n * @param interactionType\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByInteractionType = function (interactionType) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByInteractionType called\");\r\n // Loop through all keys to find state key\r\n this.getKeys().forEach(function (key) {\r\n // If this key is not the state key, move on\r\n if (key.indexOf(TemporaryCacheKeys.REQUEST_STATE) === -1) {\r\n return;\r\n }\r\n // Retrieve state value, return if not a valid value\r\n var stateValue = _this.temporaryCacheStorage.getItem(key);\r\n if (!stateValue) {\r\n return;\r\n }\r\n // Extract state and ensure it matches given InteractionType, then clean request cache\r\n var parsedState = BrowserProtocolUtils.extractBrowserRequestState(_this.cryptoImpl, stateValue);\r\n if (parsedState && parsedState.interactionType === interactionType) {\r\n _this.logger.infoPii(\"BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: \" + stateValue);\r\n _this.resetRequestCache(stateValue);\r\n }\r\n });\r\n this.clearMsalCookies();\r\n this.setInteractionInProgress(false);\r\n };\r\n BrowserCacheManager.prototype.cacheCodeRequest = function (authCodeRequest, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.cacheCodeRequest called\");\r\n var encodedValue = browserCrypto.base64Encode(JSON.stringify(authCodeRequest));\r\n this.setTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, encodedValue, true);\r\n };\r\n /**\r\n * Gets the token exchange parameters from the cache. Throws an error if nothing is found.\r\n */\r\n BrowserCacheManager.prototype.getCachedRequest = function (state, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedRequest called\");\r\n // Get token request from cache and parse as TokenExchangeParameters.\r\n var encodedTokenRequest = this.getTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, true);\r\n if (!encodedTokenRequest) {\r\n throw BrowserAuthError.createNoTokenRequestCacheError();\r\n }\r\n var parsedRequest = this.validateAndParseJson(browserCrypto.base64Decode(encodedTokenRequest));\r\n if (!parsedRequest) {\r\n throw BrowserAuthError.createUnableToParseTokenRequestCacheError();\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n // Get cached authority and use if no authority is cached with request.\r\n if (StringUtils.isEmpty(parsedRequest.authority)) {\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n var cachedAuthority = this.getTemporaryCache(authorityCacheKey);\r\n if (!cachedAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n parsedRequest.authority = cachedAuthority;\r\n }\r\n return parsedRequest;\r\n };\r\n /**\r\n * Gets cached native request for redirect flows\r\n */\r\n BrowserCacheManager.prototype.getCachedNativeRequest = function () {\r\n this.logger.trace(\"BrowserCacheManager.getCachedNativeRequest called\");\r\n var cachedRequest = this.getTemporaryCache(TemporaryCacheKeys.NATIVE_REQUEST, true);\r\n if (!cachedRequest) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedNativeRequest: No cached native request found\");\r\n return null;\r\n }\r\n var parsedRequest = this.validateAndParseJson(cachedRequest);\r\n if (!parsedRequest) {\r\n this.logger.error(\"BrowserCacheManager.getCachedNativeRequest: Unable to parse native request\");\r\n return null;\r\n }\r\n return parsedRequest;\r\n };\r\n BrowserCacheManager.prototype.isInteractionInProgress = function (matchClientId) {\r\n var clientId = this.getInteractionInProgress();\r\n if (matchClientId) {\r\n return clientId === this.clientId;\r\n }\r\n else {\r\n return !!clientId;\r\n }\r\n };\r\n BrowserCacheManager.prototype.getInteractionInProgress = function () {\r\n var key = Constants.CACHE_PREFIX + \".\" + TemporaryCacheKeys.INTERACTION_STATUS_KEY;\r\n return this.getTemporaryCache(key, false);\r\n };\r\n BrowserCacheManager.prototype.setInteractionInProgress = function (inProgress) {\r\n // Ensure we don't overwrite interaction in progress for a different clientId\r\n var key = Constants.CACHE_PREFIX + \".\" + TemporaryCacheKeys.INTERACTION_STATUS_KEY;\r\n if (inProgress) {\r\n if (this.getInteractionInProgress()) {\r\n throw BrowserAuthError.createInteractionInProgressError();\r\n }\r\n else {\r\n // No interaction is in progress\r\n this.setTemporaryCache(key, this.clientId, false);\r\n }\r\n }\r\n else if (!inProgress && this.getInteractionInProgress() === this.clientId) {\r\n this.removeItem(key);\r\n }\r\n };\r\n /**\r\n * Returns username retrieved from ADAL or MSAL v1 idToken\r\n */\r\n BrowserCacheManager.prototype.getLegacyLoginHint = function () {\r\n // Only check for adal/msal token if no SSO params are being used\r\n var adalIdTokenString = this.getTemporaryCache(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n if (adalIdTokenString) {\r\n this.browserStorage.removeItem(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n this.logger.verbose(\"Cached ADAL id token retrieved.\");\r\n }\r\n // Check for cached MSAL v1 id token\r\n var msalIdTokenString = this.getTemporaryCache(PersistentCacheKeys.ID_TOKEN, true);\r\n if (msalIdTokenString) {\r\n this.removeItem(this.generateCacheKey(PersistentCacheKeys.ID_TOKEN));\r\n this.logger.verbose(\"Cached MSAL.js v1 id token retrieved\");\r\n }\r\n var cachedIdTokenString = msalIdTokenString || adalIdTokenString;\r\n if (cachedIdTokenString) {\r\n var cachedIdToken = new IdToken(cachedIdTokenString, this.cryptoImpl);\r\n if (cachedIdToken.claims && cachedIdToken.claims.preferred_username) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 preferred_username as loginHint\");\r\n return cachedIdToken.claims.preferred_username;\r\n }\r\n else if (cachedIdToken.claims && cachedIdToken.claims.upn) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 upn as loginHint\");\r\n return cachedIdToken.claims.upn;\r\n }\r\n else {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, however, no account hint claim found. Enable preferred_username or upn id token claim to get SSO.\");\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Updates a credential's cache key if the current cache key is outdated\r\n */\r\n BrowserCacheManager.prototype.updateCredentialCacheKey = function (currentCacheKey, credential) {\r\n var updatedCacheKey = credential.generateCredentialKey();\r\n if (currentCacheKey !== updatedCacheKey) {\r\n var cacheItem = this.getItem(currentCacheKey);\r\n if (cacheItem) {\r\n this.removeItem(currentCacheKey);\r\n this.setItem(updatedCacheKey, cacheItem);\r\n this.logger.verbose(\"Updated an outdated \" + credential.credentialType + \" cache key\");\r\n return updatedCacheKey;\r\n }\r\n else {\r\n this.logger.error(\"Attempted to update an outdated \" + credential.credentialType + \" cache key but no item matching the outdated key was found in storage\");\r\n }\r\n }\r\n return currentCacheKey;\r\n };\r\n /**\r\n * Returns application id as redirect context during AcquireTokenRedirect flow.\r\n */\r\n BrowserCacheManager.prototype.getRedirectRequestContext = function () {\r\n return this.getTemporaryCache(TemporaryCacheKeys.REDIRECT_CONTEXT, true);\r\n };\r\n /**\r\n * Sets application id as the redirect context during AcquireTokenRedirect flow.\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setRedirectRequestContext = function (value) {\r\n this.setTemporaryCache(TemporaryCacheKeys.REDIRECT_CONTEXT, value, true);\r\n };\r\n return BrowserCacheManager;\r\n}(CacheManager));\r\nvar DEFAULT_BROWSER_CACHE_MANAGER = function (clientId, logger) {\r\n var cacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n cacheMigrationEnabled: false\r\n };\r\n return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger);\r\n};\n\nexport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER };\n//# sourceMappingURL=BrowserCacheManager.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-browser\";\r\nvar version = \"2.36.0\";\n\nexport { name, version };\n//# sourceMappingURL=packageMetadata.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the Fetch API for GET and POST requests. See more here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\r\n */\r\nvar FetchClient = /** @class */ (function () {\r\n function FetchClient() {\r\n }\r\n /**\r\n * Fetch Client for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _b.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.GET,\r\n headers: this.getFetchHeaders(options)\r\n })];\r\n case 1:\r\n response = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n e_1 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createGetRequestFailedError(e_1, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 4: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 5:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Fetch Client for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqBody, response, e_3, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n reqBody = (options && options.body) || Constants.EMPTY_STRING;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.POST,\r\n headers: this.getFetchHeaders(options),\r\n body: reqBody\r\n })];\r\n case 2:\r\n response = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createPostRequestFailedError(e_3, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 4:\r\n _b.trys.push([4, 6, , 7]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 5: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 6:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get Fetch API Headers object from string map\r\n * @param inputHeaders\r\n */\r\n FetchClient.prototype.getFetchHeaders = function (options) {\r\n var headers = new Headers();\r\n if (!(options && options.headers)) {\r\n return headers;\r\n }\r\n var optionsHeaders = options.headers;\r\n Object.keys(optionsHeaders).forEach(function (key) {\r\n headers.append(key, optionsHeaders[key]);\r\n });\r\n return headers;\r\n };\r\n FetchClient.prototype.getHeaderDict = function (headers) {\r\n var headerDict = {};\r\n headers.forEach(function (value, key) {\r\n headerDict[key] = value;\r\n });\r\n return headerDict;\r\n };\r\n return FetchClient;\r\n}());\n\nexport { FetchClient };\n//# sourceMappingURL=FetchClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This client implements the XMLHttpRequest class to send GET and POST requests.\r\n */\r\nvar XhrClient = /** @class */ (function () {\r\n function XhrClient() {\r\n }\r\n /**\r\n * XhrClient for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.GET, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * XhrClient for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.POST, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * Helper for XhrClient requests.\r\n * @param url\r\n * @param method\r\n * @param options\r\n */\r\n XhrClient.prototype.sendRequestAsync = function (url, method, options) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(method, url, /* async: */ true);\r\n _this.setXhrHeaders(xhr, options);\r\n xhr.onload = function () {\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n try {\r\n var jsonResponse = JSON.parse(xhr.responseText);\r\n var networkResponse = {\r\n headers: _this.getHeaderDict(xhr),\r\n body: jsonResponse,\r\n status: xhr.status\r\n };\r\n resolve(networkResponse);\r\n }\r\n catch (e) {\r\n reject(BrowserAuthError.createFailedToParseNetworkResponseError(url));\r\n }\r\n };\r\n xhr.onerror = function () {\r\n if (window.navigator.onLine) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n else {\r\n reject(BrowserAuthError.createNoNetworkConnectivityError());\r\n }\r\n };\r\n if (method === HTTP_REQUEST_TYPE.POST && options && options.body) {\r\n xhr.send(options.body);\r\n }\r\n else if (method === HTTP_REQUEST_TYPE.GET) {\r\n xhr.send();\r\n }\r\n else {\r\n throw BrowserAuthError.createHttpMethodNotImplementedError(method);\r\n }\r\n });\r\n };\r\n /**\r\n * Helper to set XHR headers for request.\r\n * @param xhr\r\n * @param options\r\n */\r\n XhrClient.prototype.setXhrHeaders = function (xhr, options) {\r\n if (options && options.headers) {\r\n var headers_1 = options.headers;\r\n Object.keys(headers_1).forEach(function (key) {\r\n xhr.setRequestHeader(key, headers_1[key]);\r\n });\r\n }\r\n };\r\n /**\r\n * Gets a string map of the headers received in the response.\r\n *\r\n * Algorithm comes from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders\r\n * @param xhr\r\n */\r\n XhrClient.prototype.getHeaderDict = function (xhr) {\r\n var headerString = xhr.getAllResponseHeaders();\r\n var headerArr = headerString.trim().split(/[\\r\\n]+/);\r\n var headerDict = {};\r\n headerArr.forEach(function (value) {\r\n var parts = value.split(\": \");\r\n var headerName = parts.shift();\r\n var headerVal = parts.join(\": \");\r\n if (headerName && headerVal) {\r\n headerDict[headerName] = headerVal;\r\n }\r\n });\r\n return headerDict;\r\n };\r\n return XhrClient;\r\n}());\n\nexport { XhrClient };\n//# sourceMappingURL=XhrClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { Constants, UrlString } from '@azure/msal-common';\nimport { FetchClient } from '../network/FetchClient.js';\nimport { XhrClient } from '../network/XhrClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserConstants, InteractionType } from './BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for browser specific functions\r\n */\r\nvar BrowserUtils = /** @class */ (function () {\r\n function BrowserUtils() {\r\n }\r\n // #region Window Navigation and URL management\r\n /**\r\n * Clears hash from window url.\r\n */\r\n BrowserUtils.clearHash = function (contentWindow) {\r\n // Office.js sets history.replaceState to null\r\n contentWindow.location.hash = Constants.EMPTY_STRING;\r\n if (typeof contentWindow.history.replaceState === \"function\") {\r\n // Full removes \"#\" from url\r\n contentWindow.history.replaceState(null, Constants.EMPTY_STRING, \"\" + contentWindow.location.origin + contentWindow.location.pathname + contentWindow.location.search);\r\n }\r\n };\r\n /**\r\n * Replaces current hash with hash from provided url\r\n */\r\n BrowserUtils.replaceHash = function (url) {\r\n var urlParts = url.split(\"#\");\r\n urlParts.shift(); // Remove part before the hash\r\n window.location.hash = urlParts.length > 0 ? urlParts.join(\"#\") : Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Returns boolean of whether the current window is in an iframe or not.\r\n */\r\n BrowserUtils.isInIframe = function () {\r\n return window.parent !== window;\r\n };\r\n /**\r\n * Returns boolean of whether or not the current window is a popup opened by msal\r\n */\r\n BrowserUtils.isInPopup = function () {\r\n return typeof window !== \"undefined\" && !!window.opener &&\r\n window.opener !== window &&\r\n typeof window.name === \"string\" &&\r\n window.name.indexOf(BrowserConstants.POPUP_NAME_PREFIX + \".\") === 0;\r\n };\r\n // #endregion\r\n /**\r\n * Returns current window URL as redirect uri\r\n */\r\n BrowserUtils.getCurrentUri = function () {\r\n return window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n };\r\n /**\r\n * Gets the homepage url for the current window location.\r\n */\r\n BrowserUtils.getHomepage = function () {\r\n var currentUrl = new UrlString(window.location.href);\r\n var urlComponents = currentUrl.getUrlComponents();\r\n return urlComponents.Protocol + \"//\" + urlComponents.HostNameAndPort + \"/\";\r\n };\r\n /**\r\n * Returns best compatible network client object.\r\n */\r\n BrowserUtils.getBrowserNetworkClient = function () {\r\n if (window.fetch && window.Headers) {\r\n return new FetchClient();\r\n }\r\n else {\r\n return new XhrClient();\r\n }\r\n };\r\n /**\r\n * Throws error if we have completed an auth and are\r\n * attempting another auth request inside an iframe.\r\n */\r\n BrowserUtils.blockReloadInHiddenIframes = function () {\r\n var isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);\r\n // return an error if called from the hidden iframe created by the msal js silent calls\r\n if (isResponseHash && BrowserUtils.isInIframe()) {\r\n throw BrowserAuthError.createBlockReloadInHiddenIframeError();\r\n }\r\n };\r\n /**\r\n * Block redirect operations in iframes unless explicitly allowed\r\n * @param interactionType Interaction type for the request\r\n * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe\r\n */\r\n BrowserUtils.blockRedirectInIframe = function (interactionType, allowRedirectInIframe) {\r\n var isIframedApp = BrowserUtils.isInIframe();\r\n if (interactionType === InteractionType.Redirect && isIframedApp && !allowRedirectInIframe) {\r\n // If we are not in top frame, we shouldn't redirect. This is also handled by the service.\r\n throw BrowserAuthError.createRedirectInIframeError(isIframedApp);\r\n }\r\n };\r\n /**\r\n * Block redirectUri loaded in popup from calling AcquireToken APIs\r\n */\r\n BrowserUtils.blockAcquireTokenInPopups = function () {\r\n // Popups opened by msal popup APIs are given a name that starts with \"msal.\"\r\n if (BrowserUtils.isInPopup()) {\r\n throw BrowserAuthError.createBlockAcquireTokenInPopupsError();\r\n }\r\n };\r\n /**\r\n * Throws error if token requests are made in non-browser environment\r\n * @param isBrowserEnvironment Flag indicating if environment is a browser.\r\n */\r\n BrowserUtils.blockNonBrowserEnvironment = function (isBrowserEnvironment) {\r\n if (!isBrowserEnvironment) {\r\n throw BrowserAuthError.createNonBrowserEnvironmentError();\r\n }\r\n };\r\n /**\r\n * Throws error if native brokering is enabled but initialize hasn't been called\r\n * @param allowNativeBroker\r\n * @param initialized\r\n */\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized = function (allowNativeBroker, initialized) {\r\n if (allowNativeBroker && !initialized) {\r\n throw BrowserAuthError.createNativeBrokerCalledBeforeInitialize();\r\n }\r\n };\r\n /**\r\n * Returns boolean of whether current browser is an Internet Explorer or Edge browser.\r\n */\r\n BrowserUtils.detectIEOrEdge = function () {\r\n var ua = window.navigator.userAgent;\r\n var msie = ua.indexOf(\"MSIE \");\r\n var msie11 = ua.indexOf(\"Trident/\");\r\n var msedge = ua.indexOf(\"Edge/\");\r\n var isIE = msie > 0 || msie11 > 0;\r\n var isEdge = msedge > 0;\r\n return isIE || isEdge;\r\n };\r\n return BrowserUtils;\r\n}());\n\nexport { BrowserUtils };\n//# sourceMappingURL=BrowserUtils.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator, __spread, __assign } from '../_virtual/_tslib.js';\nimport { AccountEntity, PerformanceEvents, AuthenticationScheme, ClientConfigurationError, StringUtils, UrlString, ServerTelemetryManager, AuthorityFactory } from '@azure/msal-common';\nimport { version } from '../packageMetadata.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BaseInteractionClient = /** @class */ (function () {\r\n function BaseInteractionClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) {\r\n this.config = config;\r\n this.browserStorage = storageImpl;\r\n this.browserCrypto = browserCrypto;\r\n this.networkClient = this.config.system.networkClient;\r\n this.eventHandler = eventHandler;\r\n this.navigationClient = navigationClient;\r\n this.nativeMessageHandler = nativeMessageHandler;\r\n this.correlationId = correlationId || this.browserCrypto.createNewGuid();\r\n this.logger = logger.clone(BrowserConstants.MSAL_SKU, version, this.correlationId);\r\n this.performanceClient = performanceClient;\r\n }\r\n BaseInteractionClient.prototype.clearCacheOnLogout = function (account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!account) return [3 /*break*/, 5];\r\n if (AccountEntity.accountInfoIsEqual(account, this.browserStorage.getActiveAccount(), false)) {\r\n this.logger.verbose(\"Setting active account to null\");\r\n this.browserStorage.setActiveAccount(null);\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.browserStorage.removeAccount(AccountEntity.generateAccountCacheKey(account))];\r\n case 2:\r\n _a.sent();\r\n this.logger.verbose(\"Cleared cache items belonging to the account provided in the logout request.\");\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n this.logger.error(\"Account provided in logout request was not found. Local cache unchanged.\");\r\n return [3 /*break*/, 4];\r\n case 4: return [3 /*break*/, 9];\r\n case 5:\r\n _a.trys.push([5, 8, , 9]);\r\n this.logger.verbose(\"No account provided in logout request, clearing all cache items.\", this.correlationId);\r\n // Clear all accounts and tokens\r\n return [4 /*yield*/, this.browserStorage.clear()];\r\n case 6:\r\n // Clear all accounts and tokens\r\n _a.sent();\r\n // Clear any stray keys from IndexedDB\r\n return [4 /*yield*/, this.browserCrypto.clearKeystore()];\r\n case 7:\r\n // Clear any stray keys from IndexedDB\r\n _a.sent();\r\n return [3 /*break*/, 9];\r\n case 8:\r\n _a.sent();\r\n this.logger.error(\"Attempted to clear all MSAL cache items and failed. Local cache unchanged.\");\r\n return [3 /*break*/, 9];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer function for all request APIs\r\n * @param request\r\n */\r\n BaseInteractionClient.prototype.initializeBaseRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, scopes, validatedRequest, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.InitializeBaseRequest, request.correlationId);\r\n this.logger.verbose(\"Initializing BaseAuthRequest\");\r\n authority = request.authority || this.config.auth.authority;\r\n scopes = __spread(((request && request.scopes) || []));\r\n validatedRequest = __assign(__assign({}, request), { correlationId: this.correlationId, authority: authority,\r\n scopes: scopes });\r\n // Set authenticationScheme to BEARER if not explicitly set in the request\r\n if (!validatedRequest.authenticationScheme) {\r\n validatedRequest.authenticationScheme = AuthenticationScheme.BEARER;\r\n this.logger.verbose(\"Authentication Scheme wasn't explicitly set in request, defaulting to \\\"Bearer\\\" request\");\r\n }\r\n else {\r\n if (validatedRequest.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (!request.sshJwk) {\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n if (!request.sshKid) {\r\n throw ClientConfigurationError.createMissingSshKidError();\r\n }\r\n }\r\n this.logger.verbose(\"Authentication Scheme set to \\\"\" + validatedRequest.authenticationScheme + \"\\\" as configured in Auth request\");\r\n }\r\n if (!(request.claims && !StringUtils.isEmpty(request.claims))) return [3 /*break*/, 2];\r\n _a = validatedRequest;\r\n return [4 /*yield*/, this.browserCrypto.hashString(request.claims)];\r\n case 1:\r\n _a.requestedClaimsHash = _b.sent();\r\n _b.label = 2;\r\n case 2: return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * Use to get the redirect uri configured in MSAL or null.\r\n * @param requestRedirectUri\r\n * @returns Redirect URL\r\n *\r\n */\r\n BaseInteractionClient.prototype.getRedirectUri = function (requestRedirectUri) {\r\n this.logger.verbose(\"getRedirectUri called\");\r\n var redirectUri = requestRedirectUri || this.config.auth.redirectUri || BrowserUtils.getCurrentUri();\r\n return UrlString.getAbsoluteUrl(redirectUri, BrowserUtils.getCurrentUri());\r\n };\r\n /**\r\n *\r\n * @param apiId\r\n * @param correlationId\r\n * @param forceRefresh\r\n */\r\n BaseInteractionClient.prototype.initializeServerTelemetryManager = function (apiId, forceRefresh) {\r\n this.logger.verbose(\"initializeServerTelemetryManager called\");\r\n var telemetryPayload = {\r\n clientId: this.config.auth.clientId,\r\n correlationId: this.correlationId,\r\n apiId: apiId,\r\n forceRefresh: forceRefresh || false,\r\n wrapperSKU: this.browserStorage.getWrapperMetadata()[0],\r\n wrapperVer: this.browserStorage.getWrapperMetadata()[1]\r\n };\r\n return new ServerTelemetryManager(telemetryPayload, this.browserStorage);\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n BaseInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authorityOptions;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getDiscoveredAuthority called\");\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata\r\n };\r\n if (!requestAuthority) return [3 /*break*/, 2];\r\n this.logger.verbose(\"Creating discovered authority with request authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(requestAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n this.logger.verbose(\"Creating discovered authority with configured authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(this.config.auth.authority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger)];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return BaseInteractionClient;\r\n}());\n\nexport { BaseInteractionClient };\n//# sourceMappingURL=BaseInteractionClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { UrlString, Constants, PerformanceEvents, AuthorizationCodeClient, Authority, AuthorityFactory, ResponseMode, StringUtils, ProtocolUtils } from '@azure/msal-common';\nimport { BaseInteractionClient } from './BaseInteractionClient.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { version } from '../packageMetadata.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Defines the class structure and helper functions used by the \"standard\", non-brokered auth flows (popup, redirect, silent (RT), silent (iframe))\r\n */\r\nvar StandardInteractionClient = /** @class */ (function (_super) {\r\n __extends(StandardInteractionClient, _super);\r\n function StandardInteractionClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Generates an auth code request tied to the url request.\r\n * @param request\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationCodeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var generatedPkceParams, authCodeRequest;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n this.logger.verbose(\"initializeAuthorizationRequest called\", request.correlationId);\r\n return [4 /*yield*/, this.browserCrypto.generatePkceCodes()];\r\n case 1:\r\n generatedPkceParams = _a.sent();\r\n authCodeRequest = __assign(__assign({}, request), { redirectUri: request.redirectUri, code: Constants.EMPTY_STRING, codeVerifier: generatedPkceParams.verifier });\r\n request.codeChallenge = generatedPkceParams.challenge;\r\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\r\n return [2 /*return*/, authCodeRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer for the logout request.\r\n * @param logoutRequest\r\n */\r\n StandardInteractionClient.prototype.initializeLogoutRequest = function (logoutRequest) {\r\n this.logger.verbose(\"initializeLogoutRequest called\", logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.correlationId);\r\n var validLogoutRequest = __assign({ correlationId: this.correlationId || this.browserCrypto.createNewGuid() }, logoutRequest);\r\n /**\r\n * Set logout_hint to be login_hint from ID Token Claims if present\r\n * and logoutHint attribute wasn't manually set in logout request\r\n */\r\n if (logoutRequest) {\r\n // If logoutHint isn't set and an account was passed in, try to extract logoutHint from ID Token Claims\r\n if (!logoutRequest.logoutHint) {\r\n if (logoutRequest.account) {\r\n var logoutHint = this.getLogoutHintFromIdTokenClaims(logoutRequest.account);\r\n if (logoutHint) {\r\n this.logger.verbose(\"Setting logoutHint to login_hint ID Token Claim value for the account provided\");\r\n validLogoutRequest.logoutHint = logoutHint;\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint was not set and account was not passed into logout request, logoutHint will not be set\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint has already been set in logoutRequest\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint will not be set since no logout request was configured\");\r\n }\r\n /*\r\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\r\n * Otherwise, use passed uri, config, or current page.\r\n */\r\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\r\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri === null) {\r\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\", validLogoutRequest.correlationId);\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not setting post logout redirect uri\", validLogoutRequest.correlationId);\r\n }\r\n return validLogoutRequest;\r\n };\r\n /**\r\n * Parses login_hint ID Token Claim out of AccountInfo object to be used as\r\n * logout_hint in end session request.\r\n * @param account\r\n */\r\n StandardInteractionClient.prototype.getLogoutHintFromIdTokenClaims = function (account) {\r\n var idTokenClaims = account.idTokenClaims;\r\n if (idTokenClaims) {\r\n if (idTokenClaims.login_hint) {\r\n return idTokenClaims.login_hint;\r\n }\r\n else {\r\n this.logger.verbose(\"The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"The provided account does not contain ID Token Claims, logoutHint will not be added to logout request\");\r\n }\r\n return null;\r\n };\r\n /**\r\n * Creates an Authorization Code Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n StandardInteractionClient.prototype.createAuthCodeClient = function (serverTelemetryManager, authorityUrl, requestAzureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.correlationId);\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, requestAzureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new AuthorizationCodeClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a Client Configuration object with the given request authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getClientConfiguration = function (serverTelemetryManager, requestAuthority, requestAzureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var discoveredAuthority, logger;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n this.logger.verbose(\"getClientConfiguration called\", this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n return [4 /*yield*/, this.getDiscoveredAuthority(requestAuthority, requestAzureCloudOptions)];\r\n case 1:\r\n discoveredAuthority = _a.sent();\r\n logger = this.config.system.loggerOptions;\r\n return [2 /*return*/, {\r\n authOptions: {\r\n clientId: this.config.auth.clientId,\r\n authority: discoveredAuthority,\r\n clientCapabilities: this.config.auth.clientCapabilities\r\n },\r\n systemOptions: {\r\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds,\r\n preventCorsPreflight: true\r\n },\r\n loggerOptions: {\r\n loggerCallback: logger.loggerCallback,\r\n piiLoggingEnabled: logger.piiLoggingEnabled,\r\n logLevel: logger.logLevel,\r\n correlationId: this.correlationId\r\n },\r\n cryptoInterface: this.browserCrypto,\r\n networkInterface: this.networkClient,\r\n storageInterface: this.browserStorage,\r\n serverTelemetryManager: serverTelemetryManager,\r\n libraryInfo: {\r\n sku: BrowserConstants.MSAL_SKU,\r\n version: version,\r\n cpu: Constants.EMPTY_STRING,\r\n os: Constants.EMPTY_STRING\r\n },\r\n telemetry: this.config.telemetry\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * @param hash\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.validateAndExtractStateFromHash = function (serverParams, interactionType, requestCorrelationId) {\r\n this.logger.verbose(\"validateAndExtractStateFromHash called\", requestCorrelationId);\r\n if (!serverParams.state) {\r\n throw BrowserAuthError.createHashDoesNotContainStateError();\r\n }\r\n var platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\r\n if (!platformStateObj) {\r\n throw BrowserAuthError.createUnableToParseStateError();\r\n }\r\n if (platformStateObj.interactionType !== interactionType) {\r\n throw BrowserAuthError.createStateInteractionTypeMismatchError();\r\n }\r\n this.logger.verbose(\"Returning state from hash\", requestCorrelationId);\r\n return serverParams.state;\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority, requestAzureCloudOptions) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var getAuthorityMeasurement, authorityOptions, userAuthority, builtAuthority;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n this.logger.verbose(\"getDiscoveredAuthority called\", this.correlationId);\r\n getAuthorityMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache\r\n };\r\n userAuthority = requestAuthority ? requestAuthority : this.config.auth.authority;\r\n builtAuthority = Authority.generateAuthority(userAuthority, requestAzureCloudOptions || this.config.auth.azureCloudOptions);\r\n this.logger.verbose(\"Creating discovered authority with configured authority\", this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance, this.correlationId);\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(builtAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger, this.performanceClient, this.correlationId)\r\n .then(function (result) {\r\n getAuthorityMeasurement.endMeasurement({\r\n success: true,\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n getAuthorityMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n case 1: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\r\n * @param request\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationRequest = function (request, interactionType) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var redirectUri, browserState, state, validatedRequest, _a, account, legacyLoginHint;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.correlationId);\r\n this.logger.verbose(\"initializeAuthorizationRequest called\", this.correlationId);\r\n redirectUri = this.getRedirectUri(request.redirectUri);\r\n browserState = {\r\n interactionType: interactionType\r\n };\r\n state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || Constants.EMPTY_STRING, browserState);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, this.correlationId);\r\n _a = [{}];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1:\r\n validatedRequest = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_b.sent()])), { redirectUri: redirectUri, state: state, nonce: request.nonce || this.browserCrypto.createNewGuid(), responseMode: ResponseMode.FRAGMENT }]);\r\n account = request.account || this.browserStorage.getActiveAccount();\r\n if (account) {\r\n this.logger.verbose(\"Setting validated request account\", this.correlationId);\r\n this.logger.verbosePii(\"Setting validated request account: \" + account.homeAccountId, this.correlationId);\r\n validatedRequest.account = account;\r\n }\r\n // Check for ADAL/MSAL v1 SSO\r\n if (StringUtils.isEmpty(validatedRequest.loginHint) && !account) {\r\n legacyLoginHint = this.browserStorage.getLegacyLoginHint();\r\n if (legacyLoginHint) {\r\n validatedRequest.loginHint = legacyLoginHint;\r\n }\r\n }\r\n return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n return StandardInteractionClient;\r\n}(BaseInteractionClient));\n\nexport { StandardInteractionClient };\n//# sourceMappingURL=StandardInteractionClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, StringUtils, ClientAuthError, ServerError, AuthorityFactory } from '@azure/msal-common';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Abstract class which defines operations for a browser interaction handling class.\r\n */\r\nvar InteractionHandler = /** @class */ (function () {\r\n function InteractionHandler(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {\r\n this.authModule = authCodeModule;\r\n this.browserStorage = storageImpl;\r\n this.authCodeRequest = authCodeRequest;\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Function to handle response parameters from hash.\r\n * @param locationHash\r\n */\r\n InteractionHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromHash, this.authCodeRequest.correlationId);\r\n this.logger.verbose(\"InteractionHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n }\r\n catch (e) {\r\n if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw BrowserAuthError.createUserCancelledError();\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);\r\n return [2 /*return*/, this.handleCodeResponseFromServer(authCodeResponse, state, authority, networkModule)];\r\n });\r\n });\r\n };\r\n /**\r\n * Process auth code response from AAD\r\n * @param authCodeResponse\r\n * @param state\r\n * @param authority\r\n * @param networkModule\r\n * @returns\r\n */\r\n InteractionHandler.prototype.handleCodeResponseFromServer = function (authCodeResponse, state, authority, networkModule, validateNonce) {\r\n if (validateNonce === void 0) { validateNonce = true; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);\r\n this.logger.trace(\"InteractionHandler.handleCodeResponseFromServer called\");\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n // Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)\r\n if (validateNonce) {\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n }\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n // Acquire token with retrieved code.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AuthClientAcquireToken, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates authority based on cloudInstanceHostname\r\n * @param cloudInstanceHostname\r\n * @param authority\r\n * @param networkModule\r\n */\r\n InteractionHandler.prototype.updateTokenEndpointAuthority = function (cloudInstanceHostname, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cloudInstanceAuthorityUri, cloudInstanceAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);\r\n cloudInstanceAuthorityUri = \"https://\" + cloudInstanceHostname + \"/\" + authority.tenant + \"/\";\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options, this.logger, this.performanceClient, this.authCodeRequest.correlationId)];\r\n case 1:\r\n cloudInstanceAuthority = _a.sent();\r\n this.authModule.updateAuthority(cloudInstanceAuthority);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Looks up ccs creds in the cache\r\n */\r\n InteractionHandler.prototype.checkCcsCredentials = function () {\r\n // Look up ccs credential in temp cache\r\n var cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);\r\n if (cachedCcsCred) {\r\n try {\r\n return JSON.parse(cachedCcsCred);\r\n }\r\n catch (e) {\r\n this.authModule.logger.error(\"Cache credential could not be parsed\");\r\n this.authModule.logger.errorPii(\"Cache credential could not be parsed: \" + cachedCcsCred);\r\n }\r\n }\r\n return null;\r\n };\r\n return InteractionHandler;\r\n}());\n\nexport { InteractionHandler };\n//# sourceMappingURL=InteractionHandler.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ClientAuthError, ServerError } from '@azure/msal-common';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, ApiId } from '../utils/BrowserConstants.js';\nimport { InteractionHandler } from './InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectHandler = /** @class */ (function (_super) {\r\n __extends(RedirectHandler, _super);\r\n function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, logger, browserCrypto, performanceClient) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) || this;\r\n _this.browserCrypto = browserCrypto;\r\n return _this;\r\n }\r\n /**\r\n * Redirects window to given URL.\r\n * @param urlNavigate\r\n */\r\n RedirectHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var navigationOptions, navigate;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n if (!!StringUtils.isEmpty(requestUrl)) return [3 /*break*/, 7];\r\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n if (params.redirectStartPage) {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page\");\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n }\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);\r\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\r\n this.logger.infoPii(\"RedirectHandler.initiateAuthRequest: Navigate to: \" + requestUrl);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: params.redirectTimeout,\r\n noHistory: false\r\n };\r\n if (!(typeof params.onRedirectNavigate === \"function\")) return [3 /*break*/, 4];\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n navigate = params.onRedirectNavigate(requestUrl);\r\n if (!(navigate !== false)) return [3 /*break*/, 2];\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 2:\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n return [2 /*return*/];\r\n case 3: return [3 /*break*/, 6];\r\n case 4:\r\n // Navigate window to request URL\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 5:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 6: return [3 /*break*/, 8];\r\n case 7:\r\n // Throw error if request URL is empty.\r\n this.logger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handle authorization code response in the window.\r\n * @param hash\r\n */\r\n RedirectHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n }\r\n catch (e) {\r\n if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw BrowserAuthError.createUserCancelledError();\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n return RedirectHandler;\r\n}(InteractionHandler));\n\nexport { RedirectHandler };\n//# sourceMappingURL=RedirectHandler.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventType;\r\n(function (EventType) {\r\n EventType[\"INITIALIZE_START\"] = \"msal:initializeStart\";\r\n EventType[\"INITIALIZE_END\"] = \"msal:initializeEnd\";\r\n EventType[\"ACCOUNT_ADDED\"] = \"msal:accountAdded\";\r\n EventType[\"ACCOUNT_REMOVED\"] = \"msal:accountRemoved\";\r\n EventType[\"LOGIN_START\"] = \"msal:loginStart\";\r\n EventType[\"LOGIN_SUCCESS\"] = \"msal:loginSuccess\";\r\n EventType[\"LOGIN_FAILURE\"] = \"msal:loginFailure\";\r\n EventType[\"ACQUIRE_TOKEN_START\"] = \"msal:acquireTokenStart\";\r\n EventType[\"ACQUIRE_TOKEN_SUCCESS\"] = \"msal:acquireTokenSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_FAILURE\"] = \"msal:acquireTokenFailure\";\r\n EventType[\"ACQUIRE_TOKEN_NETWORK_START\"] = \"msal:acquireTokenFromNetworkStart\";\r\n EventType[\"SSO_SILENT_START\"] = \"msal:ssoSilentStart\";\r\n EventType[\"SSO_SILENT_SUCCESS\"] = \"msal:ssoSilentSuccess\";\r\n EventType[\"SSO_SILENT_FAILURE\"] = \"msal:ssoSilentFailure\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_START\"] = \"msal:acquireTokenByCodeStart\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_SUCCESS\"] = \"msal:acquireTokenByCodeSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_FAILURE\"] = \"msal:acquireTokenByCodeFailure\";\r\n EventType[\"HANDLE_REDIRECT_START\"] = \"msal:handleRedirectStart\";\r\n EventType[\"HANDLE_REDIRECT_END\"] = \"msal:handleRedirectEnd\";\r\n EventType[\"POPUP_OPENED\"] = \"msal:popupOpened\";\r\n EventType[\"LOGOUT_START\"] = \"msal:logoutStart\";\r\n EventType[\"LOGOUT_SUCCESS\"] = \"msal:logoutSuccess\";\r\n EventType[\"LOGOUT_FAILURE\"] = \"msal:logoutFailure\";\r\n EventType[\"LOGOUT_END\"] = \"msal:logoutEnd\";\r\n})(EventType || (EventType = {}));\n\nexport { EventType };\n//# sourceMappingURL=EventType.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { InteractionRequiredAuthError, AuthError } from '@azure/msal-common';\nimport { BrowserAuthError } from './BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeStatusCode;\r\n(function (NativeStatusCode) {\r\n NativeStatusCode[\"USER_INTERACTION_REQUIRED\"] = \"USER_INTERACTION_REQUIRED\";\r\n NativeStatusCode[\"USER_CANCEL\"] = \"USER_CANCEL\";\r\n NativeStatusCode[\"NO_NETWORK\"] = \"NO_NETWORK\";\r\n NativeStatusCode[\"TRANSIENT_ERROR\"] = \"TRANSIENT_ERROR\";\r\n NativeStatusCode[\"PERSISTENT_ERROR\"] = \"PERSISTENT_ERROR\";\r\n NativeStatusCode[\"DISABLED\"] = \"DISABLED\";\r\n NativeStatusCode[\"ACCOUNT_UNAVAILABLE\"] = \"ACCOUNT_UNAVAILABLE\";\r\n})(NativeStatusCode || (NativeStatusCode = {}));\r\nvar NativeAuthErrorMessage = {\r\n extensionError: {\r\n code: \"ContentError\"\r\n },\r\n userSwitch: {\r\n code: \"user_switch\",\r\n desc: \"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again.\"\r\n },\r\n tokensNotFoundInCache: {\r\n code: \"tokens_not_found_in_internal_memory_cache\",\r\n desc: \"Tokens not cached in MSAL JS internal memory, please make the WAM request\"\r\n }\r\n};\r\nvar NativeAuthError = /** @class */ (function (_super) {\r\n __extends(NativeAuthError, _super);\r\n function NativeAuthError(errorCode, description, ext) {\r\n var _this = _super.call(this, errorCode, description) || this;\r\n Object.setPrototypeOf(_this, NativeAuthError.prototype);\r\n _this.name = \"NativeAuthError\";\r\n _this.ext = ext;\r\n return _this;\r\n }\r\n /**\r\n * These errors should result in a fallback to the 'standard' browser based auth flow.\r\n */\r\n NativeAuthError.prototype.isFatal = function () {\r\n if (this.ext && this.ext.status && (this.ext.status === NativeStatusCode.PERSISTENT_ERROR || this.ext.status === NativeStatusCode.DISABLED)) {\r\n return true;\r\n }\r\n switch (this.errorCode) {\r\n case NativeAuthErrorMessage.extensionError.code:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n };\r\n /**\r\n * Create the appropriate error object based on the WAM status code.\r\n * @param code\r\n * @param description\r\n * @param ext\r\n * @returns\r\n */\r\n NativeAuthError.createError = function (code, description, ext) {\r\n if (ext && ext.status) {\r\n switch (ext.status) {\r\n case NativeStatusCode.ACCOUNT_UNAVAILABLE:\r\n return InteractionRequiredAuthError.createNativeAccountUnavailableError();\r\n case NativeStatusCode.USER_INTERACTION_REQUIRED:\r\n return new InteractionRequiredAuthError(code, description);\r\n case NativeStatusCode.USER_CANCEL:\r\n return BrowserAuthError.createUserCancelledError();\r\n case NativeStatusCode.NO_NETWORK:\r\n return BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n }\r\n return new NativeAuthError(code, description, ext);\r\n };\r\n /**\r\n * Creates user switch error when the user chooses a different account in the native broker prompt\r\n * @returns\r\n */\r\n NativeAuthError.createUserSwitchError = function () {\r\n return new NativeAuthError(NativeAuthErrorMessage.userSwitch.code, NativeAuthErrorMessage.userSwitch.desc);\r\n };\r\n /**\r\n * Creates a tokens not found error when the internal cache look up fails\r\n * @returns NativeAuthError: tokensNotFoundInCache\r\n */\r\n NativeAuthError.createTokensNotFoundInCacheError = function () {\r\n return new NativeAuthError(NativeAuthErrorMessage.tokensNotFoundInCache.code, NativeAuthErrorMessage.tokensNotFoundInCache.desc);\r\n };\r\n return NativeAuthError;\r\n}(AuthError));\n\nexport { NativeAuthError, NativeAuthErrorMessage, NativeStatusCode };\n//# sourceMappingURL=NativeAuthError.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { AuthError, PerformanceEvents, SilentFlowClient } from '@azure/msal-common';\nimport { ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentCacheClient = /** @class */ (function (_super) {\r\n __extends(SilentCacheClient, _super);\r\n function SilentCacheClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Returns unexpired tokens from the cache, if available\r\n * @param silentRequest\r\n */\r\n SilentCacheClient.prototype.acquireToken = function (silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, serverTelemetryManager, silentAuthClient, cachedToken, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentCacheClientAcquireToken, silentRequest.correlationId);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 1:\r\n silentAuthClient = _a.sent();\r\n this.logger.verbose(\"Silent auth client created\");\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, silentAuthClient.acquireCachedToken(silentRequest)];\r\n case 3:\r\n cachedToken = _a.sent();\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: true\r\n });\r\n return [2 /*return*/, cachedToken];\r\n case 4:\r\n error_1 = _a.sent();\r\n if (error_1 instanceof BrowserAuthError && error_1.errorCode === BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code) {\r\n this.logger.verbose(\"Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair.\");\r\n }\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: error_1 instanceof AuthError && error_1.errorCode || undefined,\r\n subErrorCode: error_1 instanceof AuthError && error_1.subError || undefined,\r\n success: false\r\n });\r\n throw error_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentCacheClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates an Silent Flow Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentCacheClient.prototype.createSilentFlowClient = function (serverTelemetryManager, authorityUrl, azureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new SilentFlowClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n SilentCacheClient.prototype.initializeSilentRequest = function (request, account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.InitializeSilentRequest, this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, this.correlationId);\r\n _a = [__assign({}, request)];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_b.sent()])), { account: account, forceRefresh: request.forceRefresh || false }])];\r\n }\r\n });\r\n });\r\n };\r\n return SilentCacheClient;\r\n}(StandardInteractionClient));\n\nexport { SilentCacheClient };\n//# sourceMappingURL=SilentCacheClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __rest, __assign } from '../_virtual/_tslib.js';\nimport { ScopeSet, AuthToken, Constants, AccountEntity, AuthorityType, IdTokenEntity, AccessTokenEntity, PerformanceEvents, TimeUtils, ClientAuthError, AuthenticationScheme, PopTokenGenerator, UrlString, OIDC_DEFAULT_SCOPES, PromptValue } from '@azure/msal-common';\nimport { BaseInteractionClient } from './BaseInteractionClient.js';\nimport { TemporaryCacheKeys, NativeExtensionMethod, NativeConstants, ApiId } from '../utils/BrowserConstants.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { SilentCacheClient } from './SilentCacheClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeInteractionClient = /** @class */ (function (_super) {\r\n __extends(NativeInteractionClient, _super);\r\n function NativeInteractionClient(config, browserStorage, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, provider, accountId, nativeStorageImpl, correlationId) {\r\n var _this = _super.call(this, config, browserStorage, browserCrypto, logger, eventHandler, navigationClient, performanceClient, provider, correlationId) || this;\r\n _this.apiId = apiId;\r\n _this.accountId = accountId;\r\n _this.nativeMessageHandler = provider;\r\n _this.nativeStorageManager = nativeStorageImpl;\r\n _this.silentCacheClient = new SilentCacheClient(config, _this.nativeStorageManager, browserCrypto, logger, eventHandler, navigationClient, performanceClient, provider, correlationId);\r\n return _this;\r\n }\r\n /**\r\n * Acquire token from native platform via browser extension\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeATMeasurement, reqTimestamp, nativeRequest, result, messageBody, response, validatedResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - acquireToken called.\");\r\n nativeATMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.NativeInteractionClientAcquireToken, request.correlationId);\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.initializeNativeRequest(request)];\r\n case 1:\r\n nativeRequest = _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, this.acquireTokensFromCache(this.accountId, nativeRequest)];\r\n case 3:\r\n result = _a.sent();\r\n nativeATMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: false,\r\n fromCache: true\r\n });\r\n return [2 /*return*/, result];\r\n case 4:\r\n _a.sent();\r\n // continue with a native call for any and all errors\r\n this.logger.info(\"MSAL internal Cache does not contain tokens, proceed to make a native call\");\r\n return [3 /*break*/, 5];\r\n case 5:\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: nativeRequest\r\n };\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 6:\r\n response = _a.sent();\r\n validatedResponse = this.validateNativeResponse(response);\r\n return [2 /*return*/, this.handleNativeResponse(validatedResponse, nativeRequest, reqTimestamp)\r\n .then(function (result) {\r\n nativeATMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n nativeATMeasurement.endMeasurement({\r\n success: false,\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n isNativeBroker: true\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates silent flow request\r\n * @param request\r\n * @param cachedAccount\r\n * @returns CommonSilentFlowRequest\r\n */\r\n NativeInteractionClient.prototype.createSilentCacheRequest = function (request, cachedAccount) {\r\n return {\r\n authority: request.authority,\r\n correlationId: this.correlationId,\r\n scopes: ScopeSet.fromString(request.scope).asArray(),\r\n account: cachedAccount,\r\n forceRefresh: false,\r\n };\r\n };\r\n /**\r\n * Fetches the tokens from the cache if un-expired\r\n * @param nativeAccountId\r\n * @param request\r\n * @returns authenticationResult\r\n */\r\n NativeInteractionClient.prototype.acquireTokensFromCache = function (nativeAccountId, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var account, silentRequest, result, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!nativeAccountId) {\r\n this.logger.warning(\"NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided\");\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n account = this.browserStorage.getAccountInfoFilteredBy({ nativeAccountId: nativeAccountId });\r\n if (!account) {\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n silentRequest = this.createSilentCacheRequest(request, account);\r\n return [4 /*yield*/, this.silentCacheClient.acquireToken(silentRequest)];\r\n case 2:\r\n result = _a.sent();\r\n return [2 /*return*/, result];\r\n case 3:\r\n e_2 = _a.sent();\r\n throw e_2;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Acquires a token from native platform then redirects to the redirectUri instead of returning the response\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.acquireTokenRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeRequest, messageBody, response, e_3, navigationOptions, redirectUri;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - acquireTokenRedirect called.\");\r\n return [4 /*yield*/, this.initializeNativeRequest(request)];\r\n case 1:\r\n nativeRequest = _a.sent();\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: nativeRequest\r\n };\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 3:\r\n response = _a.sent();\r\n this.validateNativeResponse(response);\r\n return [3 /*break*/, 5];\r\n case 4:\r\n e_3 = _a.sent();\r\n // Only throw fatal errors here to allow application to fallback to regular redirect. Otherwise proceed and the error will be thrown in handleRedirectPromise\r\n if (e_3 instanceof NativeAuthError && e_3.isFatal()) {\r\n throw e_3;\r\n }\r\n return [3 /*break*/, 5];\r\n case 5:\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.NATIVE_REQUEST, JSON.stringify(nativeRequest), true);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n redirectUri = this.config.auth.navigateToLoginRequestUrl ? window.location.href : this.getRedirectUri(request.redirectUri);\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(redirectUri, navigationOptions)];\r\n case 6:\r\n _a.sent(); // Need to treat this as external to ensure handleRedirectPromise is run again\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * If the previous page called native platform for a token using redirect APIs, send the same request again and return the response\r\n */\r\n NativeInteractionClient.prototype.handleRedirectPromise = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, prompt, request, messageBody, reqTimestamp, response, result, e_4;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - handleRedirectPromise called.\");\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n cachedRequest = this.browserStorage.getCachedNativeRequest();\r\n if (!cachedRequest) {\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n prompt = cachedRequest.prompt, request = __rest(cachedRequest, [\"prompt\"]);\r\n if (prompt) {\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window.\");\r\n }\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.NATIVE_REQUEST));\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: request\r\n };\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise sending message to native broker.\");\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 2:\r\n response = _a.sent();\r\n this.validateNativeResponse(response);\r\n result = this.handleNativeResponse(response, request, reqTimestamp);\r\n this.browserStorage.setInteractionInProgress(false);\r\n return [2 /*return*/, result];\r\n case 3:\r\n e_4 = _a.sent();\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw e_4;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Logout from native platform via browser extension\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.logout = function () {\r\n this.logger.trace(\"NativeInteractionClient - logout called.\");\r\n return Promise.reject(\"Logout not implemented yet\");\r\n };\r\n /**\r\n * Transform response from native platform into AuthenticationResult object which will be returned to the end user\r\n * @param response\r\n * @param request\r\n * @param reqTimestamp\r\n */\r\n NativeInteractionClient.prototype.handleNativeResponse = function (response, request, reqTimestamp) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, authorityPreferredCache, idTokenObj, homeAccountIdentifier, accountEntity, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - handleNativeResponse called.\");\r\n if (response.account.id !== request.accountId) {\r\n // User switch in native broker prompt is not supported. All users must first sign in through web flow to ensure server state is in sync\r\n throw NativeAuthError.createUserSwitchError();\r\n }\r\n return [4 /*yield*/, this.getDiscoveredAuthority(request.authority)];\r\n case 1:\r\n authority = _a.sent();\r\n authorityPreferredCache = authority.getPreferredCache();\r\n idTokenObj = this.createIdTokenObj(response);\r\n homeAccountIdentifier = this.createHomeAccountIdentifier(response, idTokenObj);\r\n accountEntity = this.createAccountEntity(response, homeAccountIdentifier, idTokenObj, authorityPreferredCache);\r\n return [4 /*yield*/, this.generateAuthenticationResult(response, request, idTokenObj, accountEntity, authority.canonicalAuthority, reqTimestamp)];\r\n case 2:\r\n result = _a.sent();\r\n // cache accounts and tokens in the appropriate storage\r\n this.cacheAccount(accountEntity);\r\n this.cacheNativeTokens(response, request, homeAccountIdentifier, idTokenObj, result.accessToken, result.tenantId, reqTimestamp);\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Create an idToken Object (not entity)\r\n * @param response\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.createIdTokenObj = function (response) {\r\n return new AuthToken(response.id_token || Constants.EMPTY_STRING, this.browserCrypto);\r\n };\r\n /**\r\n * creates an homeAccountIdentifier for the account\r\n * @param response\r\n * @param idTokenObj\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.createHomeAccountIdentifier = function (response, idTokenObj) {\r\n // Save account in browser storage\r\n var homeAccountIdentifier = AccountEntity.generateHomeAccountId(response.client_info || Constants.EMPTY_STRING, AuthorityType.Default, this.logger, this.browserCrypto, idTokenObj);\r\n return homeAccountIdentifier;\r\n };\r\n /**\r\n * Creates account entity\r\n * @param response\r\n * @param homeAccountIdentifier\r\n * @param idTokenObj\r\n * @param authority\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.createAccountEntity = function (response, homeAccountIdentifier, idTokenObj, authority) {\r\n return AccountEntity.createAccount(response.client_info, homeAccountIdentifier, idTokenObj, undefined, undefined, undefined, authority, response.account.id);\r\n };\r\n /**\r\n * Helper to generate scopes\r\n * @param response\r\n * @param request\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.generateScopes = function (response, request) {\r\n return response.scope ? ScopeSet.fromString(response.scope) : ScopeSet.fromString(request.scope);\r\n };\r\n /**\r\n * If PoP token is requesred, records the PoP token if returned from the WAM, else generates one in the browser\r\n * @param request\r\n * @param response\r\n */\r\n NativeInteractionClient.prototype.generatePopAccessToken = function (response, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var popTokenGenerator, shrParameters;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!(request.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n /**\r\n * This code prioritizes SHR returned from the native layer. In case of error/SHR not calculated from WAM and the AT\r\n * is still received, SHR is calculated locally\r\n */\r\n // Check if native layer returned an SHR token\r\n if (response.shr) {\r\n this.logger.trace(\"handleNativeServerResponse: SHR is enabled in native layer\");\r\n return [2 /*return*/, response.shr];\r\n }\r\n popTokenGenerator = new PopTokenGenerator(this.browserCrypto);\r\n shrParameters = {\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n shrNonce: request.shrNonce\r\n };\r\n /**\r\n * KeyID must be present in the native request from when the PoP key was generated in order for\r\n * PopTokenGenerator to query the full key for signing\r\n */\r\n if (!request.keyId) {\r\n throw ClientAuthError.createKeyIdMissingError();\r\n }\r\n return [4 /*yield*/, popTokenGenerator.signPopToken(response.access_token, request.keyId, shrParameters)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/, response.access_token];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates authentication result\r\n * @param response\r\n * @param request\r\n * @param idTokenObj\r\n * @param accountEntity\r\n * @param authority\r\n * @param reqTimestamp\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.generateAuthenticationResult = function (response, request, idTokenObj, accountEntity, authority, reqTimestamp) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var mats, responseScopes, accountProperties, uid, tid, responseAccessToken, tokenType, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n mats = this.addTelemetryFromNativeResponse(response);\r\n responseScopes = response.scope ? ScopeSet.fromString(response.scope) : ScopeSet.fromString(request.scope);\r\n accountProperties = response.account.properties || {};\r\n uid = accountProperties[\"UID\"] || idTokenObj.claims.oid || idTokenObj.claims.sub || Constants.EMPTY_STRING;\r\n tid = accountProperties[\"TenantId\"] || idTokenObj.claims.tid || Constants.EMPTY_STRING;\r\n return [4 /*yield*/, this.generatePopAccessToken(response, request)];\r\n case 1:\r\n responseAccessToken = _a.sent();\r\n tokenType = (request.tokenType === AuthenticationScheme.POP) ? AuthenticationScheme.POP : AuthenticationScheme.BEARER;\r\n result = {\r\n authority: authority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes.asArray(),\r\n account: accountEntity.getAccountInfo(),\r\n idToken: response.id_token,\r\n idTokenClaims: idTokenObj.claims,\r\n accessToken: responseAccessToken,\r\n fromCache: mats ? this.isResponseFromCache(mats) : false,\r\n expiresOn: new Date(Number(reqTimestamp + response.expires_in) * 1000),\r\n tokenType: tokenType,\r\n correlationId: this.correlationId,\r\n state: response.state,\r\n fromNativeBroker: true\r\n };\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * cache the account entity in browser storage\r\n * @param accountEntity\r\n */\r\n NativeInteractionClient.prototype.cacheAccount = function (accountEntity) {\r\n var _this = this;\r\n // Store the account info and hence `nativeAccountId` in browser cache\r\n this.browserStorage.setAccount(accountEntity);\r\n // Remove any existing cached tokens for this account in browser storage\r\n this.browserStorage.removeAccountContext(accountEntity).catch(function (e) {\r\n _this.logger.error(\"Error occurred while removing account context from browser storage. \" + e);\r\n });\r\n };\r\n /**\r\n * Stores the access_token and id_token in inmemory storage\r\n * @param response\r\n * @param request\r\n * @param homeAccountIdentifier\r\n * @param idTokenObj\r\n * @param responseAccessToken\r\n * @param tenantId\r\n * @param reqTimestamp\r\n */\r\n NativeInteractionClient.prototype.cacheNativeTokens = function (response, request, homeAccountIdentifier, idTokenObj, responseAccessToken, tenantId, reqTimestamp) {\r\n // cache idToken in inmemory storage\r\n var idTokenEntity = IdTokenEntity.createIdTokenEntity(homeAccountIdentifier, request.authority, response.id_token || Constants.EMPTY_STRING, request.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING);\r\n this.nativeStorageManager.setIdTokenCredential(idTokenEntity);\r\n // cache accessToken in inmemory storage\r\n var expiresIn = (request.tokenType === AuthenticationScheme.POP)\r\n ? Constants.SHR_NONCE_VALIDITY\r\n : (typeof response.expires_in === \"string\"\r\n ? parseInt(response.expires_in, 10)\r\n : response.expires_in) || 0;\r\n var tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n var responseScopes = this.generateScopes(response, request);\r\n var accessTokenEntity = AccessTokenEntity.createAccessTokenEntity(homeAccountIdentifier, request.authority, responseAccessToken, request.clientId, tenantId, responseScopes.printScopes(), tokenExpirationSeconds, 0, this.browserCrypto);\r\n this.nativeStorageManager.setAccessTokenCredential(accessTokenEntity);\r\n };\r\n NativeInteractionClient.prototype.addTelemetryFromNativeResponse = function (response) {\r\n var mats = this.getMATSFromResponse(response);\r\n if (!mats) {\r\n return null;\r\n }\r\n this.performanceClient.addStaticFields({\r\n extensionId: this.nativeMessageHandler.getExtensionId(),\r\n extensionVersion: this.nativeMessageHandler.getExtensionVersion(),\r\n matsBrokerVersion: mats.broker_version,\r\n matsAccountJoinOnStart: mats.account_join_on_start,\r\n matsAccountJoinOnEnd: mats.account_join_on_end,\r\n matsDeviceJoin: mats.device_join,\r\n matsPromptBehavior: mats.prompt_behavior,\r\n matsApiErrorCode: mats.api_error_code,\r\n matsUiVisible: mats.ui_visible,\r\n matsSilentCode: mats.silent_code,\r\n matsSilentBiSubCode: mats.silent_bi_sub_code,\r\n matsSilentMessage: mats.silent_message,\r\n matsSilentStatus: mats.silent_status,\r\n matsHttpStatus: mats.http_status,\r\n matsHttpEventCount: mats.http_event_count\r\n }, this.correlationId);\r\n return mats;\r\n };\r\n /**\r\n * Validates native platform response before processing\r\n * @param response\r\n */\r\n NativeInteractionClient.prototype.validateNativeResponse = function (response) {\r\n if (response.hasOwnProperty(\"access_token\") &&\r\n response.hasOwnProperty(\"id_token\") &&\r\n response.hasOwnProperty(\"client_info\") &&\r\n response.hasOwnProperty(\"account\") &&\r\n response.hasOwnProperty(\"scope\") &&\r\n response.hasOwnProperty(\"expires_in\")) {\r\n return response;\r\n }\r\n else {\r\n throw NativeAuthError.createUnexpectedError(\"Response missing expected properties.\");\r\n }\r\n };\r\n /**\r\n * Gets MATS telemetry from native response\r\n * @param response\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.getMATSFromResponse = function (response) {\r\n if (response.properties.MATS) {\r\n try {\r\n return JSON.parse(response.properties.MATS);\r\n }\r\n catch (e) {\r\n this.logger.error(\"NativeInteractionClient - Error parsing MATS telemetry, returning null instead\");\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns whether or not response came from native cache\r\n * @param response\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.isResponseFromCache = function (mats) {\r\n if (typeof mats.is_cached === \"undefined\") {\r\n this.logger.verbose(\"NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false.\");\r\n return false;\r\n }\r\n return !!mats.is_cached;\r\n };\r\n /**\r\n * Translates developer provided request object into NativeRequest object\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.initializeNativeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, canonicalAuthority, scopes, remainingProperties, scopeSet, getPrompt, validatedRequest, shrParameters, popTokenGenerator, reqCnfData;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - initializeNativeRequest called\");\r\n authority = request.authority || this.config.auth.authority;\r\n canonicalAuthority = new UrlString(authority);\r\n canonicalAuthority.validateAsUri();\r\n scopes = request.scopes, remainingProperties = __rest(request, [\"scopes\"]);\r\n scopeSet = new ScopeSet(scopes || []);\r\n scopeSet.appendScopes(OIDC_DEFAULT_SCOPES);\r\n getPrompt = function () {\r\n // If request is silent, prompt is always none\r\n switch (_this.apiId) {\r\n case ApiId.ssoSilent:\r\n case ApiId.acquireTokenSilent_silentFlow:\r\n _this.logger.trace(\"initializeNativeRequest: silent request sets prompt to none\");\r\n return PromptValue.NONE;\r\n }\r\n // Prompt not provided, request may proceed and native broker decides if it needs to prompt\r\n if (!request.prompt) {\r\n _this.logger.trace(\"initializeNativeRequest: prompt was not provided\");\r\n return undefined;\r\n }\r\n // If request is interactive, check if prompt provided is allowed to go directly to native broker\r\n switch (request.prompt) {\r\n case PromptValue.NONE:\r\n case PromptValue.CONSENT:\r\n case PromptValue.LOGIN:\r\n _this.logger.trace(\"initializeNativeRequest: prompt is compatible with native flow\");\r\n return request.prompt;\r\n default:\r\n _this.logger.trace(\"initializeNativeRequest: prompt = \" + request.prompt + \" is not compatible with native flow\");\r\n throw BrowserAuthError.createNativePromptParameterNotSupportedError();\r\n }\r\n };\r\n validatedRequest = __assign(__assign({}, remainingProperties), { accountId: this.accountId, clientId: this.config.auth.clientId, authority: canonicalAuthority.urlString, scope: scopeSet.printScopes(), redirectUri: this.getRedirectUri(request.redirectUri), prompt: getPrompt(), correlationId: this.correlationId, tokenType: request.authenticationScheme, windowTitleSubstring: document.title, extraParameters: __assign(__assign(__assign({}, request.extraQueryParameters), request.tokenQueryParameters), { telemetry: NativeConstants.MATS_TELEMETRY }), extendedExpiryToken: false // Make this configurable?\r\n });\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n shrParameters = {\r\n resourceRequestUri: request.resourceRequestUri,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n shrClaims: request.shrClaims,\r\n shrNonce: request.shrNonce\r\n };\r\n popTokenGenerator = new PopTokenGenerator(this.browserCrypto);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(shrParameters)];\r\n case 1:\r\n reqCnfData = _a.sent();\r\n // to reduce the URL length, it is recommended to send the hash of the req_cnf instead of the whole string\r\n validatedRequest.reqCnf = reqCnfData.reqCnfHash;\r\n validatedRequest.keyId = reqCnfData.kid;\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n return NativeInteractionClient;\r\n}(BaseInteractionClient));\n\nexport { NativeInteractionClient };\n//# sourceMappingURL=NativeInteractionClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../../_virtual/_tslib.js';\nimport { NativeConstants, NativeExtensionMethod } from '../../utils/BrowserConstants.js';\nimport { AuthError, AuthenticationScheme, PerformanceEvents } from '@azure/msal-common';\nimport { NativeAuthError } from '../../error/NativeAuthError.js';\nimport { BrowserAuthError } from '../../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeMessageHandler = /** @class */ (function () {\r\n function NativeMessageHandler(logger, handshakeTimeoutMs, performanceClient, extensionId) {\r\n this.logger = logger;\r\n this.handshakeTimeoutMs = handshakeTimeoutMs;\r\n this.extensionId = extensionId;\r\n this.resolvers = new Map(); // Used for non-handshake messages\r\n this.handshakeResolvers = new Map(); // Used for handshake messages\r\n this.responseId = 0;\r\n this.messageChannel = new MessageChannel();\r\n this.windowListener = this.onWindowMessage.bind(this); // Window event callback doesn't have access to 'this' unless it's bound\r\n this.performanceClient = performanceClient;\r\n this.handshakeEvent = performanceClient.startMeasurement(PerformanceEvents.NativeMessageHandlerHandshake);\r\n }\r\n /**\r\n * Sends a given message to the extension and resolves with the extension response\r\n * @param body\r\n */\r\n NativeMessageHandler.prototype.sendMessage = function (body) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var req;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"NativeMessageHandler - sendMessage called.\");\r\n req = {\r\n channel: NativeConstants.CHANNEL_ID,\r\n extensionId: this.extensionId,\r\n responseId: this.responseId++,\r\n body: body\r\n };\r\n this.logger.trace(\"NativeMessageHandler - Sending request to browser extension\");\r\n this.logger.tracePii(\"NativeMessageHandler - Sending request to browser extension: \" + JSON.stringify(req));\r\n this.messageChannel.port1.postMessage(req);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n _this.resolvers.set(req.responseId, { resolve: resolve, reject: reject });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns an instance of the MessageHandler that has successfully established a connection with an extension\r\n * @param {Logger} logger\r\n * @param {number} handshakeTimeoutMs\r\n * @param {IPerformanceClient} performanceClient\r\n */\r\n NativeMessageHandler.createProvider = function (logger, handshakeTimeoutMs, performanceClient) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var preferredProvider, backupProvider;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n logger.trace(\"NativeMessageHandler - createProvider called.\");\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 5]);\r\n preferredProvider = new NativeMessageHandler(logger, handshakeTimeoutMs, performanceClient, NativeConstants.PREFERRED_EXTENSION_ID);\r\n return [4 /*yield*/, preferredProvider.sendHandshakeRequest()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, preferredProvider];\r\n case 3:\r\n _a.sent();\r\n backupProvider = new NativeMessageHandler(logger, handshakeTimeoutMs, performanceClient);\r\n return [4 /*yield*/, backupProvider.sendHandshakeRequest()];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/, backupProvider];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Send handshake request helper.\r\n */\r\n NativeMessageHandler.prototype.sendHandshakeRequest = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var req;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"NativeMessageHandler - sendHandshakeRequest called.\");\r\n // Register this event listener before sending handshake\r\n window.addEventListener(\"message\", this.windowListener, false); // false is important, because content script message processing should work first\r\n req = {\r\n channel: NativeConstants.CHANNEL_ID,\r\n extensionId: this.extensionId,\r\n responseId: this.responseId++,\r\n body: {\r\n method: NativeExtensionMethod.HandshakeRequest\r\n }\r\n };\r\n this.handshakeEvent.addStaticFields({\r\n extensionId: this.extensionId,\r\n extensionHandshakeTimeoutMs: this.handshakeTimeoutMs\r\n });\r\n this.messageChannel.port1.onmessage = function (event) {\r\n _this.onChannelMessage(event);\r\n };\r\n window.postMessage(req, window.origin, [this.messageChannel.port2]);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n _this.handshakeResolvers.set(req.responseId, { resolve: resolve, reject: reject });\r\n _this.timeoutId = window.setTimeout(function () {\r\n /*\r\n * Throw an error if neither HandshakeResponse nor original Handshake request are received in a reasonable timeframe.\r\n * This typically suggests an event handler stopped propagation of the Handshake request but did not respond to it on the MessageChannel port\r\n */\r\n window.removeEventListener(\"message\", _this.windowListener, false);\r\n _this.messageChannel.port1.close();\r\n _this.messageChannel.port2.close();\r\n _this.handshakeEvent.endMeasurement({ extensionHandshakeTimedOut: true, success: false });\r\n reject(BrowserAuthError.createNativeHandshakeTimeoutError());\r\n _this.handshakeResolvers.delete(req.responseId);\r\n }, _this.handshakeTimeoutMs); // Use a reasonable timeout in milliseconds here\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Invoked when a message is posted to the window. If a handshake request is received it means the extension is not installed.\r\n * @param event\r\n */\r\n NativeMessageHandler.prototype.onWindowMessage = function (event) {\r\n this.logger.trace(\"NativeMessageHandler - onWindowMessage called\");\r\n // We only accept messages from ourselves\r\n if (event.source !== window) {\r\n return;\r\n }\r\n var request = event.data;\r\n if (!request.channel || request.channel !== NativeConstants.CHANNEL_ID) {\r\n return;\r\n }\r\n if (request.extensionId && request.extensionId !== this.extensionId) {\r\n return;\r\n }\r\n if (request.body.method === NativeExtensionMethod.HandshakeRequest) {\r\n // If we receive this message back it means no extension intercepted the request, meaning no extension supporting handshake protocol is installed\r\n this.logger.verbose(request.extensionId ? \"Extension with id: \" + request.extensionId + \" not installed\" : \"No extension installed\");\r\n clearTimeout(this.timeoutId);\r\n this.messageChannel.port1.close();\r\n this.messageChannel.port2.close();\r\n window.removeEventListener(\"message\", this.windowListener, false);\r\n var handshakeResolver = this.handshakeResolvers.get(request.responseId);\r\n if (handshakeResolver) {\r\n this.handshakeEvent.endMeasurement({ success: false, extensionInstalled: false });\r\n handshakeResolver.reject(BrowserAuthError.createNativeExtensionNotInstalledError());\r\n }\r\n }\r\n };\r\n /**\r\n * Invoked when a message is received from the extension on the MessageChannel port\r\n * @param event\r\n */\r\n NativeMessageHandler.prototype.onChannelMessage = function (event) {\r\n this.logger.trace(\"NativeMessageHandler - onChannelMessage called.\");\r\n var request = event.data;\r\n var resolver = this.resolvers.get(request.responseId);\r\n var handshakeResolver = this.handshakeResolvers.get(request.responseId);\r\n try {\r\n var method = request.body.method;\r\n if (method === NativeExtensionMethod.Response) {\r\n if (!resolver) {\r\n return;\r\n }\r\n var response = request.body.response;\r\n this.logger.trace(\"NativeMessageHandler - Received response from browser extension\");\r\n this.logger.tracePii(\"NativeMessageHandler - Received response from browser extension: \" + JSON.stringify(response));\r\n if (response.status !== \"Success\") {\r\n resolver.reject(NativeAuthError.createError(response.code, response.description, response.ext));\r\n }\r\n else if (response.result) {\r\n if (response.result[\"code\"] && response.result[\"description\"]) {\r\n resolver.reject(NativeAuthError.createError(response.result[\"code\"], response.result[\"description\"], response.result[\"ext\"]));\r\n }\r\n else {\r\n resolver.resolve(response.result);\r\n }\r\n }\r\n else {\r\n throw AuthError.createUnexpectedError(\"Event does not contain result.\");\r\n }\r\n this.resolvers.delete(request.responseId);\r\n }\r\n else if (method === NativeExtensionMethod.HandshakeResponse) {\r\n if (!handshakeResolver) {\r\n return;\r\n }\r\n clearTimeout(this.timeoutId); // Clear setTimeout\r\n window.removeEventListener(\"message\", this.windowListener, false); // Remove 'No extension' listener\r\n this.extensionId = request.extensionId;\r\n this.extensionVersion = request.body.version;\r\n this.logger.verbose(\"NativeMessageHandler - Received HandshakeResponse from extension: \" + this.extensionId);\r\n this.handshakeEvent.endMeasurement({ extensionInstalled: true, success: true });\r\n handshakeResolver.resolve();\r\n this.handshakeResolvers.delete(request.responseId);\r\n }\r\n // Do nothing if method is not Response or HandshakeResponse\r\n }\r\n catch (err) {\r\n this.logger.error(\"Error parsing response from WAM Extension\");\r\n this.logger.errorPii(\"Error parsing response from WAM Extension: \" + err.toString());\r\n this.logger.errorPii(\"Unable to parse \" + event);\r\n if (resolver) {\r\n resolver.reject(err);\r\n }\r\n else if (handshakeResolver) {\r\n handshakeResolver.reject(err);\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the Id for the browser extension this handler is communicating with\r\n * @returns\r\n */\r\n NativeMessageHandler.prototype.getExtensionId = function () {\r\n return this.extensionId;\r\n };\r\n /**\r\n * Returns the version for the browser extension this handler is communicating with\r\n * @returns\r\n */\r\n NativeMessageHandler.prototype.getExtensionVersion = function () {\r\n return this.extensionVersion;\r\n };\r\n /**\r\n * Returns boolean indicating whether or not the request should attempt to use native broker\r\n * @param logger\r\n * @param config\r\n * @param nativeExtensionProvider\r\n * @param authenticationScheme\r\n */\r\n NativeMessageHandler.isNativeAvailable = function (config, logger, nativeExtensionProvider, authenticationScheme) {\r\n logger.trace(\"isNativeAvailable called\");\r\n if (!config.system.allowNativeBroker) {\r\n logger.trace(\"isNativeAvailable: allowNativeBroker is not enabled, returning false\");\r\n // Developer disabled WAM\r\n return false;\r\n }\r\n if (!nativeExtensionProvider) {\r\n logger.trace(\"isNativeAvailable: WAM extension provider is not initialized, returning false\");\r\n // Extension is not available\r\n return false;\r\n }\r\n if (authenticationScheme) {\r\n switch (authenticationScheme) {\r\n case AuthenticationScheme.BEARER:\r\n case AuthenticationScheme.POP:\r\n logger.trace(\"isNativeAvailable: authenticationScheme is supported, returning true\");\r\n return true;\r\n default:\r\n logger.trace(\"isNativeAvailable: authenticationScheme is not supported, returning false\");\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return NativeMessageHandler;\r\n}());\n\nexport { NativeMessageHandler };\n//# sourceMappingURL=NativeMessageHandler.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { UrlString, AuthError, PerformanceEvents, Constants, ThrottlingUtils, ProtocolUtils } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { TemporaryCacheKeys, ApiId, InteractionType } from '../utils/BrowserConstants.js';\nimport { RedirectHandler } from '../interaction_handler/RedirectHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectClient = /** @class */ (function (_super) {\r\n __extends(RedirectClient, _super);\r\n function RedirectClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Redirects the page to the /authorize endpoint of the IDP\r\n * @param request\r\n */\r\n RedirectClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validRequest, serverTelemetryManager, handleBackButton, authCodeRequest, authClient, interactionHandler, navigateUrl, redirectStartPage, e_1;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Redirect)];\r\n case 1:\r\n validRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || Constants.EMPTY_STRING, validRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect);\r\n handleBackButton = function (event) {\r\n // Clear temporary cache if the back button is clicked during the redirect flow.\r\n if (event.persisted) {\r\n _this.logger.verbose(\"Page was restored from back/forward cache. Clearing temporary cache.\");\r\n _this.browserStorage.cleanRequestByState(validRequest.state);\r\n }\r\n };\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 7, , 8]);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 3:\r\n authCodeRequest = _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions)];\r\n case 4:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.browserCrypto, this.performanceClient);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, validRequest), { nativeBroker: NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, request.authenticationScheme) }))];\r\n case 5:\r\n navigateUrl = _a.sent();\r\n redirectStartPage = this.getRedirectStartPage(request.redirectStartPage);\r\n this.logger.verbosePii(\"Redirect start page: \" + redirectStartPage);\r\n // Clear temporary cache if the back button is clicked during the redirect flow.\r\n window.addEventListener(\"pageshow\", handleBackButton);\r\n return [4 /*yield*/, interactionHandler.initiateAuthRequest(navigateUrl, {\r\n navigationClient: this.navigationClient,\r\n redirectTimeout: this.config.system.redirectNavigationTimeout,\r\n redirectStartPage: redirectStartPage,\r\n onRedirectNavigate: request.onRedirectNavigate\r\n })];\r\n case 6: \r\n // Show the UI once the url has been created. Response will come back in the hash, which will be handled in the handleRedirectCallback function.\r\n return [2 /*return*/, _a.sent()];\r\n case 7:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n window.removeEventListener(\"pageshow\", handleBackButton);\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Checks if navigateToLoginRequestUrl is set, and:\r\n * - if true, performs logic to cache and navigate\r\n * - if false, handles hash string and parses response\r\n * @param hash\r\n */\r\n RedirectClient.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, responseHash, state, serverParams, loginRequestUrl, loginRequestUrlNormalized, currentUrlNormalized, handleHashResult, navigationOptions, processHashOnRedirect, homepage, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.handleRedirectPromise);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n responseHash = this.getRedirectResponseHash(hash || window.location.hash);\r\n if (!responseHash) {\r\n // Not a recognized server response hash or hash not associated with a redirect request\r\n this.logger.info(\"handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache.\");\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n state = void 0;\r\n try {\r\n serverParams = UrlString.getDeserializedHash(responseHash);\r\n state = this.validateAndExtractStateFromHash(serverParams, InteractionType.Redirect);\r\n this.logger.verbose(\"State extracted from hash\");\r\n }\r\n catch (e) {\r\n this.logger.info(\"handleRedirectPromise was unable to extract state due to: \" + e);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n loginRequestUrl = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, true) || Constants.EMPTY_STRING;\r\n loginRequestUrlNormalized = UrlString.removeHashFromUrl(loginRequestUrl);\r\n currentUrlNormalized = UrlString.removeHashFromUrl(window.location.href);\r\n if (!(loginRequestUrlNormalized === currentUrlNormalized && this.config.auth.navigateToLoginRequestUrl)) return [3 /*break*/, 3];\r\n // We are on the page we need to navigate to - handle hash\r\n this.logger.verbose(\"Current page is loginRequestUrl, handling hash\");\r\n return [4 /*yield*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 2:\r\n handleHashResult = _a.sent();\r\n if (loginRequestUrl.indexOf(\"#\") > -1) {\r\n // Replace current hash with non-msal hash, if present\r\n BrowserUtils.replaceHash(loginRequestUrl);\r\n }\r\n return [2 /*return*/, handleHashResult];\r\n case 3:\r\n if (!!this.config.auth.navigateToLoginRequestUrl) return [3 /*break*/, 4];\r\n this.logger.verbose(\"NavigateToLoginRequestUrl set to false, handling hash\");\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 4:\r\n if (!(!BrowserUtils.isInIframe() || this.config.system.allowRedirectInIframe)) return [3 /*break*/, 9];\r\n /*\r\n * Returned from authority using redirect - need to perform navigation before processing response\r\n * Cache the hash to be retrieved after the next redirect\r\n */\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.URL_HASH, responseHash, true);\r\n navigationOptions = {\r\n apiId: ApiId.handleRedirectPromise,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: true\r\n };\r\n processHashOnRedirect = true;\r\n if (!(!loginRequestUrl || loginRequestUrl === \"null\")) return [3 /*break*/, 6];\r\n homepage = BrowserUtils.getHomepage();\r\n // Cache the homepage under ORIGIN_URI to ensure cached hash is processed on homepage\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, homepage, true);\r\n this.logger.warning(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(homepage, navigationOptions)];\r\n case 5:\r\n processHashOnRedirect = _a.sent();\r\n return [3 /*break*/, 8];\r\n case 6:\r\n // Navigate to page that initiated the redirect request\r\n this.logger.verbose(\"Navigating to loginRequestUrl: \" + loginRequestUrl);\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(loginRequestUrl, navigationOptions)];\r\n case 7:\r\n processHashOnRedirect = _a.sent();\r\n _a.label = 8;\r\n case 8:\r\n // If navigateInternal implementation returns false, handle the hash now\r\n if (!processHashOnRedirect) {\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n }\r\n _a.label = 9;\r\n case 9: return [2 /*return*/, null];\r\n case 10:\r\n e_2 = _a.sent();\r\n if (e_2 instanceof AuthError) {\r\n e_2.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n throw e_2;\r\n case 11: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets the response hash for a redirect request\r\n * Returns null if interactionType in the state value is not \"redirect\" or the hash does not contain known properties\r\n * @param hash\r\n */\r\n RedirectClient.prototype.getRedirectResponseHash = function (hash) {\r\n this.logger.verbose(\"getRedirectResponseHash called\");\r\n // Get current location hash from window or cache.\r\n var isResponseHash = UrlString.hashContainsKnownProperties(hash);\r\n if (isResponseHash) {\r\n BrowserUtils.clearHash(window);\r\n this.logger.verbose(\"Hash contains known properties, returning response hash\");\r\n return hash;\r\n }\r\n var cachedHash = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.URL_HASH, true);\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.logger.verbose(\"Hash does not contain known properties, returning cached hash\");\r\n return cachedHash;\r\n };\r\n /**\r\n * Checks if hash exists and handles in window.\r\n * @param hash\r\n * @param state\r\n */\r\n RedirectClient.prototype.handleHash = function (hash, state, serverTelemetryManager) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, serverParams, nativeInteractionClient, userRequestState, currentAuthority, authClient, interactionHandler;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cachedRequest = this.browserStorage.getCachedRequest(state, this.browserCrypto);\r\n this.logger.verbose(\"handleHash called, retrieved cached request\");\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenPopup, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.browserStorage, cachedRequest.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, cachedRequest), { state: userRequestState, prompt: undefined // Server should handle the prompt, ideally native broker can do this part silently\r\n })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state);\r\n })];\r\n }\r\n currentAuthority = this.browserStorage.getCachedAuthority(state);\r\n if (!currentAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, cachedRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, currentAuthority)];\r\n case 1:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, cachedRequest);\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.logger, this.browserCrypto, this.performanceClient);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponseFromHash(hash, state, authClient.authority, this.networkClient)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n RedirectClient.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validLogoutRequest, serverTelemetryManager, navigationOptions, authClient, logoutUri, navigate, e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutRedirect called\");\r\n validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logout);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Redirect, logoutRequest);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validLogoutRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n navigationOptions = {\r\n apiId: ApiId.logout,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, validLogoutRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, logoutRequest && logoutRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validLogoutRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Redirect, validLogoutRequest);\r\n if (!(logoutRequest && typeof logoutRequest.onRedirectNavigate === \"function\")) return [3 /*break*/, 7];\r\n navigate = logoutRequest.onRedirectNavigate(logoutUri);\r\n if (!(navigate !== false)) return [3 /*break*/, 5];\r\n this.logger.verbose(\"Logout onRedirectNavigate did not return false, navigating\");\r\n // Ensure interaction is in progress\r\n if (!this.browserStorage.getInteractionInProgress()) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 5:\r\n // Ensure interaction is not in progress\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.logger.verbose(\"Logout onRedirectNavigate returned false, stopping navigation\");\r\n _a.label = 6;\r\n case 6: return [3 /*break*/, 9];\r\n case 7:\r\n // Ensure interaction is in progress\r\n if (!this.browserStorage.getInteractionInProgress()) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 8:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 9: return [3 /*break*/, 11];\r\n case 10:\r\n e_3 = _a.sent();\r\n if (e_3 instanceof AuthError) {\r\n e_3.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Redirect, null, e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n throw e_3;\r\n case 11:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to get the redirectStartPage either from request or use current window\r\n * @param requestStartPage\r\n */\r\n RedirectClient.prototype.getRedirectStartPage = function (requestStartPage) {\r\n var redirectStartPage = requestStartPage || window.location.href;\r\n return UrlString.getAbsoluteUrl(redirectStartPage, BrowserUtils.getCurrentUri());\r\n };\r\n return RedirectClient;\r\n}(StandardInteractionClient));\n\nexport { RedirectClient };\n//# sourceMappingURL=RedirectClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { OIDC_DEFAULT_SCOPES, StringUtils, UrlString, Constants, AuthError, ThrottlingUtils, ProtocolUtils, PerformanceEvents } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserConstants, InteractionType, ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionHandler } from '../interaction_handler/InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PopupClient = /** @class */ (function (_super) {\r\n __extends(PopupClient, _super);\r\n function PopupClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n // Properly sets this reference for the unload event.\r\n _this.unloadWindow = _this.unloadWindow.bind(_this);\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Acquires tokens by opening a popup window to the /authorize endpoint of the authority\r\n * @param request\r\n */\r\n PopupClient.prototype.acquireToken = function (request) {\r\n try {\r\n var popupName = this.generatePopupName(request.scopes || OIDC_DEFAULT_SCOPES, request.authority || this.config.auth.authority);\r\n var popupWindowAttributes = request.popupWindowAttributes || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true, acquiring token\");\r\n // Passes on popup position and dimensions if in request\r\n return this.acquireTokenPopupAsync(request, popupName, popupWindowAttributes);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before acquiring token.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup before acquiring token\");\r\n var popup = this.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes);\r\n return this.acquireTokenPopupAsync(request, popupName, popupWindowAttributes, popup);\r\n }\r\n }\r\n catch (e) {\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n PopupClient.prototype.logout = function (logoutRequest) {\r\n try {\r\n this.logger.verbose(\"logoutPopup called\");\r\n var validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n var popupName = this.generateLogoutPopupName(validLogoutRequest);\r\n var authority = logoutRequest && logoutRequest.authority;\r\n var mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri;\r\n var popupWindowAttributes = (logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.popupWindowAttributes) || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true\");\r\n // Passes on popup position and dimensions if in request\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, undefined, mainWindowRedirectUri);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before logging out.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup\");\r\n var popup = this.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes);\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, popup, mainWindowRedirectUri);\r\n }\r\n }\r\n catch (e) {\r\n // Since this function is synchronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Helper which obtains an access_token for your API via opening a popup window in the user's browser\r\n * @param validRequest\r\n * @param popupName\r\n * @param popup\r\n * @param popupWindowAttributes\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PopupClient.prototype.acquireTokenPopupAsync = function (request, popupName, popupWindowAttributes, popup) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, validRequest, authCodeRequest, authClient, isNativeBroker, fetchNativeAccountIdMeasurement, navigateUrl, interactionHandler, popupParameters, popupWindow, hash, serverParams, state_1, nativeInteractionClient, userRequestState, result, e_1;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenPopupAsync called\");\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenPopup);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Popup)];\r\n case 1:\r\n validRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || Constants.EMPTY_STRING, validRequest.account || null);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 8, , 9]);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 3:\r\n authCodeRequest = _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions)];\r\n case 4:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n isNativeBroker = NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, request.authenticationScheme);\r\n fetchNativeAccountIdMeasurement = void 0;\r\n if (isNativeBroker) {\r\n fetchNativeAccountIdMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.FetchAccountIdWithNativeBroker, request.correlationId);\r\n }\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, validRequest), { nativeBroker: isNativeBroker }))];\r\n case 5:\r\n navigateUrl = _a.sent();\r\n interactionHandler = new InteractionHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.performanceClient);\r\n popupParameters = {\r\n popup: popup,\r\n popupName: popupName,\r\n popupWindowAttributes: popupWindowAttributes\r\n };\r\n popupWindow = this.initiateAuthRequest(navigateUrl, popupParameters);\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, this.monitorPopupForHash(popupWindow)];\r\n case 6:\r\n hash = _a.sent();\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n state_1 = this.validateAndExtractStateFromHash(serverParams, InteractionType.Popup, validRequest.correlationId);\r\n // Remove throttle if it exists\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, authCodeRequest);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n // end measurement for server call with native brokering enabled\r\n if (fetchNativeAccountIdMeasurement) {\r\n fetchNativeAccountIdMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true\r\n });\r\n }\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenPopup, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.nativeStorage, validRequest.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state_1).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, validRequest), { state: userRequestState, prompt: undefined // Server should handle the prompt, ideally native broker can do this part silently\r\n })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state_1);\r\n })];\r\n }\r\n return [4 /*yield*/, interactionHandler.handleCodeResponseFromHash(hash, state_1, authClient.authority, this.networkClient)];\r\n case 7:\r\n result = _a.sent();\r\n return [2 /*return*/, result];\r\n case 8:\r\n e_1 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * @param validRequest\r\n * @param popupName\r\n * @param requestAuthority\r\n * @param popup\r\n * @param mainWindowRedirectUri\r\n * @param popupWindowAttributes\r\n */\r\n PopupClient.prototype.logoutPopupAsync = function (validRequest, popupName, popupWindowAttributes, requestAuthority, popup, mainWindowRedirectUri) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, authClient, logoutUri, popupWindow, navigationOptions, absoluteUrl, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutPopupAsync called\");\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Popup, validRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logoutPopup);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 5, , 6]);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, validRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, requestAuthority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Popup, validRequest);\r\n popupWindow = this.openPopup(logoutUri, { popupName: popupName, popupWindowAttributes: popupWindowAttributes, popup: popup });\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, this.waitForLogoutPopup(popupWindow)];\r\n case 4:\r\n _a.sent();\r\n if (mainWindowRedirectUri) {\r\n navigationOptions = {\r\n apiId: ApiId.logoutPopup,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, BrowserUtils.getCurrentUri());\r\n this.logger.verbose(\"Redirecting main window to url specified in the request\");\r\n this.logger.verbosePii(\"Redirecting main window to: \" + absoluteUrl);\r\n this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\r\n }\r\n else {\r\n this.logger.verbose(\"No main window navigation requested\");\r\n }\r\n return [3 /*break*/, 6];\r\n case 5:\r\n e_2 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_2 instanceof AuthError) {\r\n e_2.setCorrelationId(this.correlationId);\r\n }\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e_2);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n throw e_2;\r\n case 6:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Opens a popup window with given request Url.\r\n * @param requestUrl\r\n */\r\n PopupClient.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n // Check that request url is not empty.\r\n if (!StringUtils.isEmpty(requestUrl)) {\r\n this.logger.infoPii(\"Navigate to: \" + requestUrl);\r\n // Open the popup window to requestUrl.\r\n return this.openPopup(requestUrl, params);\r\n }\r\n else {\r\n // Throw error if request URL is empty.\r\n this.logger.error(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n };\r\n /**\r\n * Monitors a window until it loads a url with the same origin.\r\n * @param popupWindow - window that is being monitored\r\n * @param timeout - timeout for processing hash once popup is redirected back to application\r\n */\r\n PopupClient.prototype.monitorPopupForHash = function (popupWindow) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n /*\r\n * Polling for popups needs to be tick-based,\r\n * since a non-trivial amount of time can be spent on interaction (which should not count against the timeout).\r\n */\r\n var maxTicks = _this.config.system.windowHashTimeout / _this.config.system.pollIntervalMilliseconds;\r\n var ticks = 0;\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - polling started\");\r\n var intervalId = setInterval(function () {\r\n // Window is closed\r\n if (popupWindow.closed) {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - window closed\");\r\n _this.cleanPopup();\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createUserCancelledError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var hash = Constants.EMPTY_STRING;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = popupWindow.location.href;\r\n hash = popupWindow.location.hash;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n return;\r\n }\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - popup window is on same origin as caller\");\r\n /*\r\n * Only run clock when we are on same domain for popups\r\n * as popup operations can take a long time.\r\n */\r\n ticks++;\r\n if (hash) {\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - found hash in url\");\r\n clearInterval(intervalId);\r\n _this.cleanPopup(popupWindow);\r\n if (UrlString.hashContainsKnownProperties(hash)) {\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - hash contains known properties, returning.\");\r\n resolve(hash);\r\n }\r\n else {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - found hash in url but it does not contain known properties. Check that your router is not changing the hash prematurely.\");\r\n _this.logger.errorPii(\"PopupHandler.monitorPopupForHash - hash found: \" + hash);\r\n reject(BrowserAuthError.createHashDoesNotContainKnownPropertiesError());\r\n }\r\n }\r\n else if (ticks > maxTicks) {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - unable to find hash in url, timing out\");\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorPopupTimeoutError());\r\n }\r\n }, _this.config.system.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * Waits for user interaction in logout popup window\r\n * @param popupWindow\r\n * @returns\r\n */\r\n PopupClient.prototype.waitForLogoutPopup = function (popupWindow) {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n _this.logger.verbose(\"PopupHandler.waitForLogoutPopup - polling started\");\r\n var intervalId = setInterval(function () {\r\n // Window is closed\r\n if (popupWindow.closed) {\r\n _this.logger.error(\"PopupHandler.waitForLogoutPopup - window closed\");\r\n _this.cleanPopup();\r\n clearInterval(intervalId);\r\n resolve();\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = popupWindow.location.href;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n return;\r\n }\r\n _this.logger.verbose(\"PopupHandler.waitForLogoutPopup - popup window is on same origin as caller, closing.\");\r\n clearInterval(intervalId);\r\n _this.cleanPopup(popupWindow);\r\n resolve();\r\n }, _this.config.system.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Configures popup window for login.\r\n *\r\n * @param urlNavigate\r\n * @param title\r\n * @param popUpWidth\r\n * @param popUpHeight\r\n * @param popupWindowAttributes\r\n * @ignore\r\n * @hidden\r\n */\r\n PopupClient.prototype.openPopup = function (urlNavigate, popupParams) {\r\n try {\r\n var popupWindow = void 0;\r\n // Popup window passed in, setting url to navigate to\r\n if (popupParams.popup) {\r\n popupWindow = popupParams.popup;\r\n this.logger.verbosePii(\"Navigating popup window to: \" + urlNavigate);\r\n popupWindow.location.assign(urlNavigate);\r\n }\r\n else if (typeof popupParams.popup === \"undefined\") {\r\n // Popup will be undefined if it was not passed in\r\n this.logger.verbosePii(\"Opening popup window to: \" + urlNavigate);\r\n popupWindow = this.openSizedPopup(urlNavigate, popupParams.popupName, popupParams.popupWindowAttributes);\r\n }\r\n // Popup will be null if popups are blocked\r\n if (!popupWindow) {\r\n throw BrowserAuthError.createEmptyWindowCreatedError();\r\n }\r\n if (popupWindow.focus) {\r\n popupWindow.focus();\r\n }\r\n this.currentWindow = popupWindow;\r\n window.addEventListener(\"beforeunload\", this.unloadWindow);\r\n return popupWindow;\r\n }\r\n catch (e) {\r\n this.logger.error(\"error opening popup \" + e.message);\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw BrowserAuthError.createPopupWindowError(e.toString());\r\n }\r\n };\r\n /**\r\n * Helper function to set popup window dimensions and position\r\n * @param urlNavigate\r\n * @param popupName\r\n * @param popupWindowAttributes\r\n * @returns\r\n */\r\n PopupClient.prototype.openSizedPopup = function (urlNavigate, popupName, popupWindowAttributes) {\r\n var _a, _b, _c, _d;\r\n /**\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\r\n var winLeft = window.screenLeft ? window.screenLeft : window.screenX;\r\n var winTop = window.screenTop ? window.screenTop : window.screenY;\r\n /**\r\n * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\r\n var winWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n var winHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n var width = (_a = popupWindowAttributes.popupSize) === null || _a === void 0 ? void 0 : _a.width;\r\n var height = (_b = popupWindowAttributes.popupSize) === null || _b === void 0 ? void 0 : _b.height;\r\n var top = (_c = popupWindowAttributes.popupPosition) === null || _c === void 0 ? void 0 : _c.top;\r\n var left = (_d = popupWindowAttributes.popupPosition) === null || _d === void 0 ? void 0 : _d.left;\r\n if (!width || width < 0 || width > winWidth) {\r\n this.logger.verbose(\"Default popup window width used. Window width not configured or invalid.\");\r\n width = BrowserConstants.POPUP_WIDTH;\r\n }\r\n if (!height || height < 0 || height > winHeight) {\r\n this.logger.verbose(\"Default popup window height used. Window height not configured or invalid.\");\r\n height = BrowserConstants.POPUP_HEIGHT;\r\n }\r\n if (!top || top < 0 || top > winHeight) {\r\n this.logger.verbose(\"Default popup window top position used. Window top not configured or invalid.\");\r\n top = Math.max(0, ((winHeight / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop);\r\n }\r\n if (!left || left < 0 || left > winWidth) {\r\n this.logger.verbose(\"Default popup window left position used. Window left not configured or invalid.\");\r\n left = Math.max(0, ((winWidth / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft);\r\n }\r\n return window.open(urlNavigate, popupName, \"width=\" + width + \", height=\" + height + \", top=\" + top + \", left=\" + left + \", scrollbars=yes\");\r\n };\r\n /**\r\n * Event callback to unload main window.\r\n */\r\n PopupClient.prototype.unloadWindow = function (e) {\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup);\r\n if (this.currentWindow) {\r\n this.currentWindow.close();\r\n }\r\n // Guarantees browser unload will happen, so no other errors will be thrown.\r\n e.preventDefault();\r\n };\r\n /**\r\n * Closes popup, removes any state vars created during popup calls.\r\n * @param popupWindow\r\n */\r\n PopupClient.prototype.cleanPopup = function (popupWindow) {\r\n if (popupWindow) {\r\n // Close window.\r\n popupWindow.close();\r\n }\r\n // Remove window unload function\r\n window.removeEventListener(\"beforeunload\", this.unloadWindow);\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupClient.prototype.generatePopupName = function (scopes, authority) {\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + this.config.auth.clientId + \".\" + scopes.join(\"-\") + \".\" + authority + \".\" + this.correlationId;\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request for logouts\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupClient.prototype.generateLogoutPopupName = function (request) {\r\n var homeAccountId = request.account && request.account.homeAccountId;\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + this.config.auth.clientId + \".\" + homeAccountId + \".\" + this.correlationId;\r\n };\r\n return PopupClient;\r\n}(StandardInteractionClient));\n\nexport { PopupClient };\n//# sourceMappingURL=PopupClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NavigationClient = /** @class */ (function () {\r\n function NavigationClient() {\r\n }\r\n /**\r\n * Navigates to other pages within the same web application\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateInternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Navigates to other pages outside the web application i.e. the Identity Provider\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateExternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Default navigation implementation invoked by the internal and external functions\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.defaultNavigateWindow = function (url, options) {\r\n if (options.noHistory) {\r\n window.location.replace(url);\r\n }\r\n else {\r\n window.location.assign(url);\r\n }\r\n return new Promise(function (resolve) {\r\n setTimeout(function () {\r\n resolve(true);\r\n }, options.timeout);\r\n });\r\n };\r\n return NavigationClient;\r\n}());\n\nexport { NavigationClient };\n//# sourceMappingURL=NavigationClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __assign } from '../_virtual/_tslib.js';\nimport { DEFAULT_SYSTEM_OPTIONS, StubbedNetworkModule, Constants, ProtocolMode, AzureCloudInstance, LogLevel } from '@azure/msal-common';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { BrowserConstants, BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { NavigationClient } from '../navigation/NavigationClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Default timeout for popup windows and iframes in milliseconds\r\nvar DEFAULT_POPUP_TIMEOUT_MS = 60000;\r\nvar DEFAULT_IFRAME_TIMEOUT_MS = 6000;\r\nvar DEFAULT_REDIRECT_TIMEOUT_MS = 30000;\r\nvar DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS = 2000;\r\n/**\r\n * MSAL function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param auth\r\n * @param cache\r\n * @param system\r\n *\r\n * @returns Configuration object\r\n */\r\nfunction buildConfiguration(_a, isBrowserEnvironment) {\r\n var userInputAuth = _a.auth, userInputCache = _a.cache, userInputSystem = _a.system, userInputTelemetry = _a.telemetry;\r\n // Default auth options for browser\r\n var DEFAULT_AUTH_OPTIONS = {\r\n clientId: Constants.EMPTY_STRING,\r\n authority: \"\" + Constants.DEFAULT_AUTHORITY,\r\n knownAuthorities: [],\r\n cloudDiscoveryMetadata: Constants.EMPTY_STRING,\r\n authorityMetadata: Constants.EMPTY_STRING,\r\n redirectUri: Constants.EMPTY_STRING,\r\n postLogoutRedirectUri: Constants.EMPTY_STRING,\r\n navigateToLoginRequestUrl: true,\r\n clientCapabilities: [],\r\n protocolMode: ProtocolMode.AAD,\r\n azureCloudOptions: {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: Constants.EMPTY_STRING\r\n },\r\n skipAuthorityMetadataCache: false,\r\n };\r\n // Default cache options for browser\r\n var DEFAULT_CACHE_OPTIONS = {\r\n cacheLocation: BrowserCacheLocation.SessionStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.SessionStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n // Default cache migration to true if cache location is localStorage since entries are preserved across tabs/windows. Migration has little to no benefit in sessionStorage and memoryStorage\r\n cacheMigrationEnabled: userInputCache && userInputCache.cacheLocation === BrowserCacheLocation.LocalStorage ? true : false\r\n };\r\n // Default logger options for browser\r\n var DEFAULT_LOGGER_OPTIONS = {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n loggerCallback: function () {\r\n // allow users to not set logger call back \r\n },\r\n logLevel: LogLevel.Info,\r\n piiLoggingEnabled: false\r\n };\r\n // Default system options for browser\r\n var DEFAULT_BROWSER_SYSTEM_OPTIONS = __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), { loggerOptions: DEFAULT_LOGGER_OPTIONS, networkClient: isBrowserEnvironment ? BrowserUtils.getBrowserNetworkClient() : StubbedNetworkModule, navigationClient: new NavigationClient(), loadFrameTimeout: 0, \r\n // If loadFrameTimeout is provided, use that as default.\r\n windowHashTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loadFrameTimeout) || DEFAULT_POPUP_TIMEOUT_MS, iframeHashTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loadFrameTimeout) || DEFAULT_IFRAME_TIMEOUT_MS, navigateFrameWait: isBrowserEnvironment && BrowserUtils.detectIEOrEdge() ? 500 : 0, redirectNavigationTimeout: DEFAULT_REDIRECT_TIMEOUT_MS, asyncPopups: false, allowRedirectInIframe: false, allowNativeBroker: false, nativeBrokerHandshakeTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.nativeBrokerHandshakeTimeout) || DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS, pollIntervalMilliseconds: BrowserConstants.DEFAULT_POLL_INTERVAL_MS, cryptoOptions: {\r\n useMsrCrypto: false,\r\n entropy: undefined\r\n } });\r\n var providedSystemOptions = __assign(__assign({}, userInputSystem), { loggerOptions: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loggerOptions) || DEFAULT_LOGGER_OPTIONS });\r\n var DEFAULT_TELEMETRY_OPTIONS = {\r\n application: {\r\n appName: Constants.EMPTY_STRING,\r\n appVersion: Constants.EMPTY_STRING\r\n }\r\n };\r\n var overlayedConfig = {\r\n auth: __assign(__assign({}, DEFAULT_AUTH_OPTIONS), userInputAuth),\r\n cache: __assign(__assign({}, DEFAULT_CACHE_OPTIONS), userInputCache),\r\n system: __assign(__assign({}, DEFAULT_BROWSER_SYSTEM_OPTIONS), providedSystemOptions),\r\n telemetry: __assign(__assign({}, DEFAULT_TELEMETRY_OPTIONS), userInputTelemetry)\r\n };\r\n return overlayedConfig;\r\n}\n\nexport { DEFAULT_IFRAME_TIMEOUT_MS, DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS, DEFAULT_POPUP_TIMEOUT_MS, DEFAULT_REDIRECT_TIMEOUT_MS, buildConfiguration };\n//# sourceMappingURL=Configuration.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, StringUtils, Constants, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DEFAULT_IFRAME_TIMEOUT_MS } from '../config/Configuration.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentHandler = /** @class */ (function (_super) {\r\n __extends(SilentHandler, _super);\r\n function SilentHandler(authCodeModule, storageImpl, authCodeRequest, logger, systemOptions, performanceClient) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) || this;\r\n _this.navigateFrameWait = systemOptions.navigateFrameWait;\r\n _this.pollIntervalMilliseconds = systemOptions.pollIntervalMilliseconds;\r\n return _this;\r\n }\r\n /**\r\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\r\n * @param urlNavigate\r\n * @param userRequestScopes\r\n */\r\n SilentHandler.prototype.initiateAuthRequest = function (requestUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerInitiateAuthRequest, this.authCodeRequest.correlationId);\r\n if (StringUtils.isEmpty(requestUrl)) {\r\n // Throw error if request URL is empty.\r\n this.logger.info(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n if (!this.navigateFrameWait) return [3 /*break*/, 2];\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.loadFrame(requestUrl)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/, this.loadFrameSync(requestUrl)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param iframe\r\n * @param timeout\r\n */\r\n SilentHandler.prototype.monitorIframeForHash = function (iframe, timeout) {\r\n var _this = this;\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, this.authCodeRequest.correlationId);\r\n return new Promise(function (resolve, reject) {\r\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n _this.logger.warning(\"system.loadFrameTimeout or system.iframeHashTimeout set to lower (\" + timeout + \"ms) than the default (\" + DEFAULT_IFRAME_TIMEOUT_MS + \"ms). This may result in timeouts.\");\r\n }\r\n /*\r\n * Polling for iframes can be purely timing based,\r\n * since we don't need to account for interaction.\r\n */\r\n var nowMark = window.performance.now();\r\n var timeoutMark = nowMark + timeout;\r\n var intervalId = setInterval(function () {\r\n if (window.performance.now() > timeoutMark) {\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorIframeTimeoutError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var contentWindow = iframe.contentWindow;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;\r\n }\r\n catch (e) { }\r\n if (StringUtils.isEmpty(href)) {\r\n return;\r\n }\r\n var contentHash = contentWindow ? contentWindow.location.hash : Constants.EMPTY_STRING;\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n // Success case\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n resolve(contentHash);\r\n return;\r\n }\r\n }, _this.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n */\r\n SilentHandler.prototype.loadFrame = function (urlNavigate) {\r\n var _this = this;\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);\r\n /*\r\n * This trick overcomes iframe navigation in IE\r\n * IE does not load the page consistently in iframe\r\n */\r\n return new Promise(function (resolve, reject) {\r\n var frameHandle = _this.createHiddenIframe();\r\n setTimeout(function () {\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe\");\r\n return;\r\n }\r\n frameHandle.src = urlNavigate;\r\n resolve(frameHandle);\r\n }, _this.navigateFrameWait);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n * @param urlNavigate\r\n * @param frameName\r\n * @param logger\r\n */\r\n SilentHandler.prototype.loadFrameSync = function (urlNavigate) {\r\n var frameHandle = this.createHiddenIframe();\r\n frameHandle.src = urlNavigate;\r\n return frameHandle;\r\n };\r\n /**\r\n * @hidden\r\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.createHiddenIframe = function () {\r\n var authFrame = document.createElement(\"iframe\");\r\n authFrame.style.visibility = \"hidden\";\r\n authFrame.style.position = \"absolute\";\r\n authFrame.style.width = authFrame.style.height = \"0\";\r\n authFrame.style.border = \"0\";\r\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\r\n return authFrame;\r\n };\r\n /**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.removeHiddenIframe = function (iframe) {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n };\r\n return SilentHandler;\r\n}(InteractionHandler));\n\nexport { SilentHandler };\n//# sourceMappingURL=SilentHandler.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthError, PerformanceEvents, Constants, StringUtils, PromptValue, UrlString, ProtocolUtils } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType } from '../utils/BrowserConstants.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentIframeClient = /** @class */ (function (_super) {\r\n __extends(SilentIframeClient, _super);\r\n function SilentIframeClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.apiId = apiId;\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Acquires a token silently by opening a hidden iframe to the /authorize endpoint with prompt=none or prompt=no_session\r\n * @param request\r\n */\r\n SilentIframeClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, silentRequest, serverTelemetryManager, authClient, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n this.logger.verbose(\"acquireTokenByIframe called\");\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n // Check that we have some SSO data\r\n if (StringUtils.isEmpty(request.loginHint) && StringUtils.isEmpty(request.sid) && (!request.account || StringUtils.isEmpty(request.account.username))) {\r\n this.logger.warning(\"No user hint provided. The authorization server may need more information to complete this request.\");\r\n }\r\n // Check that prompt is set to none or no_session, throw error if it is set to anything else.\r\n if (request.prompt && (request.prompt !== PromptValue.NONE) && (request.prompt !== PromptValue.NO_SESSION)) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw BrowserAuthError.createSilentPromptValueError(request.prompt);\r\n }\r\n // Create silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(__assign(__assign({}, request), { prompt: request.prompt || PromptValue.NONE }), InteractionType.Silent)];\r\n case 1:\r\n silentRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 5, , 6]);\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentIframeClientTokenHelper, request.correlationId);\r\n return [4 /*yield*/, this.silentTokenHelper(authClient, silentRequest).then(function (result) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: false,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })];\r\n case 4: return [2 /*return*/, _a.sent()];\r\n case 5:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: e_1 instanceof AuthError && e_1.errorCode || undefined,\r\n subErrorCode: e_1 instanceof AuthError && e_1.subError || undefined,\r\n success: false\r\n });\r\n throw e_1;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentIframeClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Helper which acquires an authorization code silently using a hidden iframe from given url\r\n * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.\r\n * @param navigateUrl\r\n * @param userRequestScopes\r\n */\r\n SilentIframeClient.prototype.silentTokenHelper = function (authClient, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authCodeRequest, navigateUrl, silentHandler, msalFrame, hash, serverParams, state, nativeInteractionClient, userRequestState;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientTokenHelper, silentRequest.correlationId);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, silentRequest.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(silentRequest)];\r\n case 1:\r\n authCodeRequest = _a.sent();\r\n // Create authorize request url\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.GetAuthCodeUrl, silentRequest.correlationId);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, silentRequest), { nativeBroker: NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, silentRequest.authenticationScheme) }))];\r\n case 2:\r\n navigateUrl = _a.sent();\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.config.system, this.performanceClient);\r\n // Get the frame handle for the silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerInitiateAuthRequest, silentRequest.correlationId);\r\n return [4 /*yield*/, silentHandler.initiateAuthRequest(navigateUrl)];\r\n case 3:\r\n msalFrame = _a.sent();\r\n // Monitor the window for the hash. Return the string value and close the popup when the hash is received. Default timeout is 60 seconds.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerMonitorIframeForHash, silentRequest.correlationId);\r\n return [4 /*yield*/, silentHandler.monitorIframeForHash(msalFrame, this.config.system.iframeHashTimeout)];\r\n case 4:\r\n hash = _a.sent();\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n state = this.validateAndExtractStateFromHash(serverParams, InteractionType.Silent, authCodeRequest.correlationId);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.apiId, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.browserStorage, this.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, silentRequest), { state: userRequestState, prompt: silentRequest.prompt || PromptValue.NONE })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state);\r\n })];\r\n }\r\n // Handle response from hash string\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.HandleCodeResponseFromHash, silentRequest.correlationId);\r\n return [2 /*return*/, silentHandler.handleCodeResponseFromHash(hash, state, authClient.authority, this.networkClient)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentIframeClient;\r\n}(StandardInteractionClient));\n\nexport { SilentIframeClient };\n//# sourceMappingURL=SilentIframeClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { PerformanceEvents, AuthError, RefreshTokenClient } from '@azure/msal-common';\nimport { ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentRefreshClient = /** @class */ (function (_super) {\r\n __extends(SilentRefreshClient, _super);\r\n function SilentRefreshClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Exchanges the refresh token for new tokens\r\n * @param request\r\n */\r\n SilentRefreshClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, _a, acquireTokenMeasurement, serverTelemetryManager, refreshTokenClient;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentRefreshClientAcquireToken, request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, request.correlationId);\r\n _a = [__assign({}, request)];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1:\r\n silentRequest = __assign.apply(void 0, _a.concat([_b.sent()]));\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentRefreshClientAcquireToken, silentRequest.correlationId);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 2:\r\n refreshTokenClient = _b.sent();\r\n this.logger.verbose(\"Refresh token client created\");\r\n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, request.correlationId);\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(silentRequest)\r\n .then(function (result) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: result.fromCache,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })\r\n .catch(function (e) {\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(_this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n throw e;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentRefreshClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates a Refresh Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentRefreshClient.prototype.createRefreshTokenClient = function (serverTelemetryManager, authorityUrl, azureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new RefreshTokenClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentRefreshClient;\r\n}(StandardInteractionClient));\n\nexport { SilentRefreshClient };\n//# sourceMappingURL=SilentRefreshClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { AccountEntity, CacheManager } from '@azure/msal-common';\nimport { EventType } from './EventType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventHandler = /** @class */ (function () {\r\n function EventHandler(logger, browserCrypto) {\r\n this.eventCallbacks = new Map();\r\n this.logger = logger;\r\n this.browserCrypto = browserCrypto;\r\n this.listeningToStorageEvents = false;\r\n this.handleAccountCacheChange = this.handleAccountCacheChange.bind(this);\r\n }\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n EventHandler.prototype.addEventCallback = function (callback) {\r\n if (typeof window !== \"undefined\") {\r\n var callbackId = this.browserCrypto.createNewGuid();\r\n this.eventCallbacks.set(callbackId, callback);\r\n this.logger.verbose(\"Event callback registered with id: \" + callbackId);\r\n return callbackId;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n EventHandler.prototype.removeEventCallback = function (callbackId) {\r\n this.eventCallbacks.delete(callbackId);\r\n this.logger.verbose(\"Event callback \" + callbackId + \" removed.\");\r\n };\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n EventHandler.prototype.enableAccountStorageEvents = function () {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (!this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Adding account storage listener.\");\r\n this.listeningToStorageEvents = true;\r\n window.addEventListener(\"storage\", this.handleAccountCacheChange);\r\n }\r\n else {\r\n this.logger.verbose(\"Account storage listener already registered.\");\r\n }\r\n };\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n EventHandler.prototype.disableAccountStorageEvents = function () {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Removing account storage listener.\");\r\n window.removeEventListener(\"storage\", this.handleAccountCacheChange);\r\n this.listeningToStorageEvents = false;\r\n }\r\n else {\r\n this.logger.verbose(\"No account storage listener registered.\");\r\n }\r\n };\r\n /**\r\n * Emits events by calling callback with event message\r\n * @param eventType\r\n * @param interactionType\r\n * @param payload\r\n * @param error\r\n */\r\n EventHandler.prototype.emitEvent = function (eventType, interactionType, payload, error) {\r\n var _this = this;\r\n if (typeof window !== \"undefined\") {\r\n var message_1 = {\r\n eventType: eventType,\r\n interactionType: interactionType || null,\r\n payload: payload || null,\r\n error: error || null,\r\n timestamp: Date.now()\r\n };\r\n this.logger.info(\"Emitting event: \" + eventType);\r\n this.eventCallbacks.forEach(function (callback, callbackId) {\r\n _this.logger.verbose(\"Emitting event to callback \" + callbackId + \": \" + eventType);\r\n callback.apply(null, [message_1]);\r\n });\r\n }\r\n };\r\n /**\r\n * Emit account added/removed events when cached accounts are changed in a different tab or frame\r\n */\r\n EventHandler.prototype.handleAccountCacheChange = function (e) {\r\n try {\r\n var cacheValue = e.newValue || e.oldValue;\r\n if (!cacheValue) {\r\n return;\r\n }\r\n var parsedValue = JSON.parse(cacheValue);\r\n if (typeof parsedValue !== \"object\" || !AccountEntity.isAccountEntity(parsedValue)) {\r\n return;\r\n }\r\n var accountEntity = CacheManager.toObject(new AccountEntity(), parsedValue);\r\n var accountInfo = accountEntity.getAccountInfo();\r\n if (!e.oldValue && e.newValue) {\r\n this.logger.info(\"Account was added to cache in a different window\");\r\n this.emitEvent(EventType.ACCOUNT_ADDED, undefined, accountInfo);\r\n }\r\n else if (!e.newValue && e.oldValue) {\r\n this.logger.info(\"Account was removed from cache in a different window\");\r\n this.emitEvent(EventType.ACCOUNT_REMOVED, undefined, accountInfo);\r\n }\r\n }\r\n catch (e) {\r\n return;\r\n }\r\n };\r\n return EventHandler;\r\n}());\n\nexport { EventHandler };\n//# sourceMappingURL=EventHandler.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for math specific functions in browser.\r\n */\r\nvar MathUtils = /** @class */ (function () {\r\n function MathUtils() {\r\n }\r\n /**\r\n * Decimal to Hex\r\n *\r\n * @param num\r\n */\r\n MathUtils.decimalToHex = function (num) {\r\n var hex = num.toString(16);\r\n while (hex.length < 2) {\r\n hex = \"0\" + hex;\r\n }\r\n return hex;\r\n };\r\n return MathUtils;\r\n}());\n\nexport { MathUtils };\n//# sourceMappingURL=MathUtils.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { MathUtils } from '../utils/MathUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar GuidGenerator = /** @class */ (function () {\r\n function GuidGenerator(cryptoObj) {\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /*\r\n * RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\r\n * pseudo-random numbers.\r\n * The algorithm is as follows:\r\n * Set the two most significant bits (bits 6 and 7) of the\r\n * clock_seq_hi_and_reserved to zero and one, respectively.\r\n * Set the four most significant bits (bits 12 through 15) of the\r\n * time_hi_and_version field to the 4-bit version number from\r\n * Section 4.1.3. Version4\r\n * Set all the other bits to randomly (or pseudo-randomly) chosen\r\n * values.\r\n * UUID = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\r\n * time-low = 4hexOctet\r\n * time-mid = 2hexOctet\r\n * time-high-and-version = 2hexOctet\r\n * clock-seq-and-reserved = hexOctet:\r\n * clock-seq-low = hexOctet\r\n * node = 6hexOctet\r\n * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\r\n * y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\r\n * y values are 8, 9, A, B\r\n */\r\n GuidGenerator.prototype.generateGuid = function () {\r\n try {\r\n var buffer = new Uint8Array(16);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // buffer[6] and buffer[7] represents the time_hi_and_version field. We will set the four most significant bits (4 through 7) of buffer[6] to represent decimal number 4 (UUID version number).\r\n buffer[6] |= 0x40; // buffer[6] | 01000000 will set the 6 bit to 1.\r\n buffer[6] &= 0x4f; // buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\r\n // buffer[8] represents the clock_seq_hi_and_reserved field. We will set the two most significant bits (6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.\r\n buffer[8] |= 0x80; // buffer[8] | 10000000 will set the 7 bit to 1.\r\n buffer[8] &= 0xbf; // buffer[8] & 10111111 will set the 6 bit to 0.\r\n return MathUtils.decimalToHex(buffer[0]) + MathUtils.decimalToHex(buffer[1])\r\n + MathUtils.decimalToHex(buffer[2]) + MathUtils.decimalToHex(buffer[3])\r\n + \"-\" + MathUtils.decimalToHex(buffer[4]) + MathUtils.decimalToHex(buffer[5])\r\n + \"-\" + MathUtils.decimalToHex(buffer[6]) + MathUtils.decimalToHex(buffer[7])\r\n + \"-\" + MathUtils.decimalToHex(buffer[8]) + MathUtils.decimalToHex(buffer[9])\r\n + \"-\" + MathUtils.decimalToHex(buffer[10]) + MathUtils.decimalToHex(buffer[11])\r\n + MathUtils.decimalToHex(buffer[12]) + MathUtils.decimalToHex(buffer[13])\r\n + MathUtils.decimalToHex(buffer[14]) + MathUtils.decimalToHex(buffer[15]);\r\n }\r\n catch (err) {\r\n var guidHolder = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\r\n var hex = \"0123456789abcdef\";\r\n var r = 0;\r\n var guidResponse = Constants.EMPTY_STRING;\r\n for (var i = 0; i < 36; i++) {\r\n if (guidHolder[i] !== \"-\" && guidHolder[i] !== \"4\") {\r\n // each x and y needs to be random\r\n r = Math.random() * 16 | 0;\r\n }\r\n if (guidHolder[i] === \"x\") {\r\n guidResponse += hex[r];\r\n }\r\n else if (guidHolder[i] === \"y\") {\r\n // clock-seq-and-reserved first hex is filtered and remaining hex values are random\r\n r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\r\n r |= 0x8; // set pos 3 to 1 as 1???\r\n guidResponse += hex[r];\r\n }\r\n else {\r\n guidResponse += guidHolder[i];\r\n }\r\n }\r\n return guidResponse;\r\n }\r\n };\r\n /**\r\n * verifies if a string is GUID\r\n * @param guid\r\n */\r\n GuidGenerator.prototype.isGuid = function (guid) {\r\n var regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n return regexGuid.test(guid);\r\n };\r\n return GuidGenerator;\r\n}());\n\nexport { GuidGenerator };\n//# sourceMappingURL=GuidGenerator.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility functions for strings in a browser. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar BrowserStringUtils = /** @class */ (function () {\r\n function BrowserStringUtils() {\r\n }\r\n /**\r\n * Converts string to Uint8Array\r\n * @param sDOMStr\r\n */\r\n BrowserStringUtils.stringToUtf8Arr = function (sDOMStr) {\r\n var nChr;\r\n var nArrLen = 0;\r\n var nStrLen = sDOMStr.length;\r\n /* mapping... */\r\n for (var nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\r\n nChr = sDOMStr.charCodeAt(nMapIdx);\r\n nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;\r\n }\r\n var aBytes = new Uint8Array(nArrLen);\r\n /* transcription... */\r\n for (var nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {\r\n nChr = sDOMStr.charCodeAt(nChrIdx);\r\n if (nChr < 128) {\r\n /* one byte */\r\n aBytes[nIdx++] = nChr;\r\n }\r\n else if (nChr < 0x800) {\r\n /* two bytes */\r\n aBytes[nIdx++] = 192 + (nChr >>> 6);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x10000) {\r\n /* three bytes */\r\n aBytes[nIdx++] = 224 + (nChr >>> 12);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x200000) {\r\n /* four bytes */\r\n aBytes[nIdx++] = 240 + (nChr >>> 18);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x4000000) {\r\n /* five bytes */\r\n aBytes[nIdx++] = 248 + (nChr >>> 24);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else /* if (nChr <= 0x7fffffff) */ {\r\n /* six bytes */\r\n aBytes[nIdx++] = 252 + (nChr >>> 30);\r\n aBytes[nIdx++] = 128 + (nChr >>> 24 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Converst string to ArrayBuffer\r\n * @param dataString\r\n */\r\n BrowserStringUtils.stringToArrayBuffer = function (dataString) {\r\n var data = new ArrayBuffer(dataString.length);\r\n var dataView = new Uint8Array(data);\r\n for (var i = 0; i < dataString.length; i++) {\r\n dataView[i] = dataString.charCodeAt(i);\r\n }\r\n return data;\r\n };\r\n /**\r\n * Converts Uint8Array to a string\r\n * @param aBytes\r\n */\r\n BrowserStringUtils.utf8ArrToString = function (aBytes) {\r\n var sView = Constants.EMPTY_STRING;\r\n for (var nPart = void 0, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nPart = aBytes[nIdx];\r\n sView += String.fromCharCode(nPart > 251 && nPart < 254 && nIdx + 5 < nLen ? /* six bytes */\r\n /* (nPart - 252 << 30) may be not so safe in ECMAScript! So...: */\r\n (nPart - 252) * 1073741824 + (aBytes[++nIdx] - 128 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen ? /* five bytes */\r\n (nPart - 248 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen ? /* four bytes */\r\n (nPart - 240 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen ? /* three bytes */\r\n (nPart - 224 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen ? /* two bytes */\r\n (nPart - 192 << 6) + aBytes[++nIdx] - 128\r\n : /* nPart < 127 ? */ /* one byte */\r\n nPart);\r\n }\r\n return sView;\r\n };\r\n /**\r\n * Returns stringified jwk.\r\n * @param jwk\r\n */\r\n BrowserStringUtils.getSortedObjectString = function (obj) {\r\n return JSON.stringify(obj, Object.keys(obj).sort());\r\n };\r\n return BrowserStringUtils;\r\n}());\n\nexport { BrowserStringUtils };\n//# sourceMappingURL=BrowserStringUtils.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to encode plaintext to base64 encoded string. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Encode = /** @class */ (function () {\r\n function Base64Encode() {\r\n }\r\n /**\r\n * Returns URL Safe b64 encoded string from a plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.urlEncode = function (input) {\r\n return encodeURIComponent(this.encode(input)\r\n .replace(/=/g, Constants.EMPTY_STRING)\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\"));\r\n };\r\n /**\r\n * Returns URL Safe b64 encoded string from an int8Array.\r\n * @param inputArr\r\n */\r\n Base64Encode.prototype.urlEncodeArr = function (inputArr) {\r\n return this.base64EncArr(inputArr)\r\n .replace(/=/g, Constants.EMPTY_STRING)\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\");\r\n };\r\n /**\r\n * Returns b64 encoded string from plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.encode = function (input) {\r\n var inputUtf8Arr = BrowserStringUtils.stringToUtf8Arr(input);\r\n return this.base64EncArr(inputUtf8Arr);\r\n };\r\n /**\r\n * Base64 encode byte array\r\n * @param aBytes\r\n */\r\n Base64Encode.prototype.base64EncArr = function (aBytes) {\r\n var eqLen = (3 - (aBytes.length % 3)) % 3;\r\n var sB64Enc = Constants.EMPTY_STRING;\r\n for (var nMod3 = void 0, nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nMod3 = nIdx % 3;\r\n /* Uncomment the following line in order to split the output in lines 76-character long: */\r\n /*\r\n *if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += \"\\r\\n\"; }\r\n */\r\n nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);\r\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\r\n sB64Enc += String.fromCharCode(this.uint6ToB64(nUint24 >>> 18 & 63), this.uint6ToB64(nUint24 >>> 12 & 63), this.uint6ToB64(nUint24 >>> 6 & 63), this.uint6ToB64(nUint24 & 63));\r\n nUint24 = 0;\r\n }\r\n }\r\n return eqLen === 0 ? sB64Enc : sB64Enc.substring(0, sB64Enc.length - eqLen) + (eqLen === 1 ? \"=\" : \"==\");\r\n };\r\n /**\r\n * Base64 string to array encoding helper\r\n * @param nUint6\r\n */\r\n Base64Encode.prototype.uint6ToB64 = function (nUint6) {\r\n return nUint6 < 26 ?\r\n nUint6 + 65\r\n : nUint6 < 52 ?\r\n nUint6 + 71\r\n : nUint6 < 62 ?\r\n nUint6 - 4\r\n : nUint6 === 62 ?\r\n 43\r\n : nUint6 === 63 ?\r\n 47\r\n :\r\n 65;\r\n };\r\n return Base64Encode;\r\n}());\n\nexport { Base64Encode };\n//# sourceMappingURL=Base64Encode.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Decode = /** @class */ (function () {\r\n function Base64Decode() {\r\n }\r\n /**\r\n * Returns a URL-safe plaintext decoded string from b64 encoded input.\r\n * @param input\r\n */\r\n Base64Decode.prototype.decode = function (input) {\r\n var encodedString = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n switch (encodedString.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n encodedString += \"==\";\r\n break;\r\n case 3:\r\n encodedString += \"=\";\r\n break;\r\n default:\r\n throw new Error(\"Invalid base64 string\");\r\n }\r\n var inputUtf8Arr = this.base64DecToArr(encodedString);\r\n return BrowserStringUtils.utf8ArrToString(inputUtf8Arr);\r\n };\r\n /**\r\n * Decodes base64 into Uint8Array\r\n * @param base64String\r\n * @param nBlockSize\r\n */\r\n Base64Decode.prototype.base64DecToArr = function (base64String, nBlockSize) {\r\n var sB64Enc = base64String.replace(/[^A-Za-z0-9\\+\\/]/g, Constants.EMPTY_STRING);\r\n var nInLen = sB64Enc.length;\r\n var nOutLen = nBlockSize ? Math.ceil((nInLen * 3 + 1 >>> 2) / nBlockSize) * nBlockSize : nInLen * 3 + 1 >>> 2;\r\n var aBytes = new Uint8Array(nOutLen);\r\n for (var nMod3 = void 0, nMod4 = void 0, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {\r\n nMod4 = nInIdx & 3;\r\n nUint24 |= this.b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;\r\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\r\n for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {\r\n aBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;\r\n }\r\n nUint24 = 0;\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Base64 string to array decoding helper\r\n * @param charNum\r\n */\r\n Base64Decode.prototype.b64ToUint6 = function (charNum) {\r\n return charNum > 64 && charNum < 91 ?\r\n charNum - 65\r\n : charNum > 96 && charNum < 123 ?\r\n charNum - 71\r\n : charNum > 47 && charNum < 58 ?\r\n charNum + 4\r\n : charNum === 43 ?\r\n 62\r\n : charNum === 47 ?\r\n 63\r\n :\r\n 0;\r\n };\r\n return Base64Decode;\r\n}());\n\nexport { Base64Decode };\n//# sourceMappingURL=Base64Decode.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Constant byte array length\r\nvar RANDOM_BYTE_ARR_LENGTH = 32;\r\n/**\r\n * Class which exposes APIs to generate PKCE codes and code verifiers.\r\n */\r\nvar PkceGenerator = /** @class */ (function () {\r\n function PkceGenerator(cryptoObj) {\r\n this.base64Encode = new Base64Encode();\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /**\r\n * Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636\r\n */\r\n PkceGenerator.prototype.generateCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var codeVerifier, codeChallenge;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n codeVerifier = this.generateCodeVerifier();\r\n return [4 /*yield*/, this.generateCodeChallengeFromVerifier(codeVerifier)];\r\n case 1:\r\n codeChallenge = _a.sent();\r\n return [2 /*return*/, {\r\n verifier: codeVerifier,\r\n challenge: codeChallenge\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a random 32 byte buffer and returns the base64\r\n * encoded string to be used as a PKCE Code Verifier\r\n */\r\n PkceGenerator.prototype.generateCodeVerifier = function () {\r\n try {\r\n // Generate random values as utf-8\r\n var buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // encode verifier as base64\r\n var pkceCodeVerifierB64 = this.base64Encode.urlEncodeArr(buffer);\r\n return pkceCodeVerifierB64;\r\n }\r\n catch (e) {\r\n throw BrowserAuthError.createPkceNotGeneratedError(e);\r\n }\r\n };\r\n /**\r\n * Creates a base64 encoded PKCE Code Challenge string from the\r\n * hash created from the PKCE Code Verifier supplied\r\n */\r\n PkceGenerator.prototype.generateCodeChallengeFromVerifier = function (pkceCodeVerifier) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pkceHashedCodeVerifier, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.cryptoObj.sha256Digest(pkceCodeVerifier)];\r\n case 1:\r\n pkceHashedCodeVerifier = _a.sent();\r\n // encode hash as base64\r\n return [2 /*return*/, this.base64Encode.urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier))];\r\n case 2:\r\n e_1 = _a.sent();\r\n throw BrowserAuthError.createPkceNotGeneratedError(e_1);\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return PkceGenerator;\r\n}());\n\nexport { PkceGenerator };\n//# sourceMappingURL=PkceGenerator.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ModernBrowserCrypto = /** @class */ (function () {\r\n function ModernBrowserCrypto() {\r\n }\r\n ModernBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window.crypto.getRandomValues(dataBuffer);\r\n };\r\n ModernBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.generateKey(algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.importKey(KEY_FORMAT_JWK, keyData, algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.sign(algorithm, key, data)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.digest(algorithm, data)];\r\n });\r\n });\r\n };\r\n return ModernBrowserCrypto;\r\n}());\n\nexport { ModernBrowserCrypto };\n//# sourceMappingURL=ModernBrowserCrypto.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __spread, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MsrBrowserCrypto = /** @class */ (function () {\r\n function MsrBrowserCrypto() {\r\n }\r\n MsrBrowserCrypto.prototype.initPrng = function (entropy) {\r\n // Turn into array, as initPrng seems to not always like Uint8Array (even though it should support both)\r\n return window.msrCrypto.initPrng(__spread(entropy));\r\n };\r\n MsrBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window.msrCrypto.getRandomValues(dataBuffer);\r\n };\r\n MsrBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.generateKey(algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.importKey(KEY_FORMAT_JWK, keyData, algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.sign(algorithm, key, data)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.digest(algorithm, data)];\r\n });\r\n });\r\n };\r\n return MsrBrowserCrypto;\r\n}());\n\nexport { MsrBrowserCrypto };\n//# sourceMappingURL=MsrBrowserCrypto.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Constants } from '@azure/msal-common';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MsBrowserCrypto = /** @class */ (function () {\r\n function MsBrowserCrypto() {\r\n }\r\n MsBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window[\"msCrypto\"].getRandomValues(dataBuffer);\r\n };\r\n MsBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msGenerateKey = window[\"msCrypto\"].subtle.generateKey(algorithm, extractable, keyUsages);\r\n msGenerateKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msGenerateKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msExportKey = window[\"msCrypto\"].subtle.exportKey(KEY_FORMAT_JWK, key);\r\n msExportKey.addEventListener(\"complete\", function (e) {\r\n var resultBuffer = e.target.result;\r\n var resultString = BrowserStringUtils.utf8ArrToString(new Uint8Array(resultBuffer))\r\n .replace(/\\r/g, Constants.EMPTY_STRING)\r\n .replace(/\\n/g, Constants.EMPTY_STRING)\r\n .replace(/\\t/g, Constants.EMPTY_STRING)\r\n .split(\" \").join(Constants.EMPTY_STRING)\r\n .replace(\"\\u0000\", Constants.EMPTY_STRING);\r\n try {\r\n resolve(JSON.parse(resultString));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n });\r\n msExportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyString, keyBuffer;\r\n return __generator(this, function (_a) {\r\n keyString = BrowserStringUtils.getSortedObjectString(keyData);\r\n keyBuffer = BrowserStringUtils.stringToArrayBuffer(keyString);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msImportKey = window[\"msCrypto\"].subtle.importKey(KEY_FORMAT_JWK, keyBuffer, algorithm, extractable, keyUsages);\r\n msImportKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msImportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msSign = window[\"msCrypto\"].subtle.sign(algorithm, key, data);\r\n msSign.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msSign.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var digestOperation = window[\"msCrypto\"].subtle.digest(algorithm, data.buffer);\r\n digestOperation.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n digestOperation.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n return MsBrowserCrypto;\r\n}());\n\nexport { MsBrowserCrypto };\n//# sourceMappingURL=MsBrowserCrypto.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { ModernBrowserCrypto } from './ModernBrowserCrypto.js';\nimport { MsrBrowserCrypto } from './MsrBrowserCrypto.js';\nimport { MsBrowserCrypto } from './MsBrowserCrypto.js';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams\r\n */\r\n// RSA KeyGen Algorithm\r\nvar PKCS1_V15_KEYGEN_ALG = \"RSASSA-PKCS1-v1_5\";\r\n// SHA-256 hashing algorithm\r\nvar S256_HASH_ALG = \"SHA-256\";\r\n// MOD length for PoP tokens\r\nvar MODULUS_LENGTH = 2048;\r\n// Public Exponent\r\nvar PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);\r\n/**\r\n * This class implements functions used by the browser library to perform cryptography operations such as\r\n * hashing and encoding. It also has helper functions to validate the availability of specific APIs.\r\n */\r\nvar BrowserCrypto = /** @class */ (function () {\r\n function BrowserCrypto(logger, cryptoOptions) {\r\n var _a, _b;\r\n this.logger = logger;\r\n this.cryptoOptions = cryptoOptions;\r\n if (this.hasBrowserCrypto()) {\r\n // Use standard modern web crypto if available\r\n this.logger.verbose(\"BrowserCrypto: modern crypto interface available\");\r\n this.subtleCrypto = new ModernBrowserCrypto();\r\n }\r\n else if (this.hasIECrypto()) {\r\n // For IE11, use msCrypto interface\r\n this.logger.verbose(\"BrowserCrypto: MS crypto interface available\");\r\n this.subtleCrypto = new MsBrowserCrypto();\r\n }\r\n else if (this.hasMsrCrypto() && ((_a = this.cryptoOptions) === null || _a === void 0 ? void 0 : _a.useMsrCrypto)) {\r\n // For other browsers, use MSR Crypto if found\r\n this.logger.verbose(\"BrowserCrypto: MSR crypto interface available\");\r\n this.subtleCrypto = new MsrBrowserCrypto();\r\n }\r\n else {\r\n if (this.hasMsrCrypto()) {\r\n this.logger.info(\"BrowserCrypto: MSR Crypto interface available but system.cryptoOptions.useMsrCrypto not enabled\");\r\n }\r\n this.logger.error(\"BrowserCrypto: No crypto interfaces available.\");\r\n throw BrowserAuthError.createCryptoNotAvailableError(\"Browser crypto, msCrypto, or msrCrypto interfaces not available.\");\r\n }\r\n // Mainly needed for MSR Crypto: https://github.com/microsoft/MSR-JavaScript-Crypto#random-number-generator-prng\r\n if (this.subtleCrypto.initPrng) {\r\n this.logger.verbose(\"BrowserCrypto: Interface requires entropy\");\r\n if (!((_b = this.cryptoOptions) === null || _b === void 0 ? void 0 : _b.entropy)) {\r\n this.logger.error(\"BrowserCrypto: Interface requires entropy but none provided.\");\r\n throw BrowserConfigurationAuthError.createEntropyNotProvided();\r\n }\r\n this.logger.verbose(\"BrowserCrypto: Entropy provided\");\r\n this.subtleCrypto.initPrng(this.cryptoOptions.entropy);\r\n }\r\n this.keygenAlgorithmOptions = {\r\n name: PKCS1_V15_KEYGEN_ALG,\r\n hash: S256_HASH_ALG,\r\n modulusLength: MODULUS_LENGTH,\r\n publicExponent: PUBLIC_EXPONENT\r\n };\r\n }\r\n /**\r\n * Check whether IE crypto or other browser cryptography is available.\r\n */\r\n BrowserCrypto.prototype.hasIECrypto = function () {\r\n return \"msCrypto\" in window;\r\n };\r\n /**\r\n * Check whether browser crypto is available.\r\n */\r\n BrowserCrypto.prototype.hasBrowserCrypto = function () {\r\n return \"crypto\" in window;\r\n };\r\n /**\r\n * Check whether MSR crypto polyfill is available\r\n */\r\n BrowserCrypto.prototype.hasMsrCrypto = function () {\r\n return \"msrCrypto\" in window;\r\n };\r\n /**\r\n * Returns a sha-256 hash of the given dataString as an ArrayBuffer.\r\n * @param dataString\r\n */\r\n BrowserCrypto.prototype.sha256Digest = function (dataString) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n data = BrowserStringUtils.stringToUtf8Arr(dataString);\r\n // MSR Crypto wants object with name property, instead of string\r\n return [2 /*return*/, this.subtleCrypto.digest({ name: S256_HASH_ALG }, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * Populates buffer with cryptographically random values.\r\n * @param dataBuffer\r\n */\r\n BrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return this.subtleCrypto.getRandomValues(dataBuffer);\r\n };\r\n /**\r\n * Generates a keypair based on current keygen algorithm config.\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.generateKeyPair = function (extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.generateKey(this.keygenAlgorithmOptions, extractable, usages)];\r\n });\r\n });\r\n };\r\n /**\r\n * Export key as Json Web Key (JWK)\r\n * @param key\r\n * @param format\r\n */\r\n BrowserCrypto.prototype.exportJwk = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.exportKey(key)];\r\n });\r\n });\r\n };\r\n /**\r\n * Imports key as Json Web Key (JWK), can set extractable and usages.\r\n * @param key\r\n * @param format\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.importJwk = function (key, extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.importKey(key, this.keygenAlgorithmOptions, extractable, usages)];\r\n });\r\n });\r\n };\r\n /**\r\n * Signs given data with given key\r\n * @param key\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.sign = function (key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.sign(this.keygenAlgorithmOptions, key, data)];\r\n });\r\n });\r\n };\r\n return BrowserCrypto;\r\n}());\n\nexport { BrowserCrypto };\n//# sourceMappingURL=BrowserCrypto.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DB_NAME, DB_VERSION, DB_TABLE_NAME } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API\r\n */\r\nvar DatabaseStorage = /** @class */ (function () {\r\n function DatabaseStorage() {\r\n this.dbName = DB_NAME;\r\n this.version = DB_VERSION;\r\n this.tableName = DB_TABLE_NAME;\r\n this.dbOpen = false;\r\n }\r\n /**\r\n * Opens IndexedDB instance.\r\n */\r\n DatabaseStorage.prototype.open = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var openDB = window.indexedDB.open(_this.dbName, _this.version);\r\n openDB.addEventListener(\"upgradeneeded\", function (e) {\r\n var event = e;\r\n event.target.result.createObjectStore(_this.tableName);\r\n });\r\n openDB.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.db = event.target.result;\r\n _this.dbOpen = true;\r\n resolve();\r\n });\r\n openDB.addEventListener(\"error\", function () { return reject(BrowserAuthError.createDatabaseUnavailableError()); });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Closes the connection to IndexedDB database when all pending transactions\r\n * complete.\r\n */\r\n DatabaseStorage.prototype.closeConnection = function () {\r\n var db = this.db;\r\n if (db && this.dbOpen) {\r\n db.close();\r\n this.dbOpen = false;\r\n }\r\n };\r\n /**\r\n * Opens database if it's not already open\r\n */\r\n DatabaseStorage.prototype.validateDbIsOpen = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!!this.dbOpen) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.open()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves item from IndexedDB instance.\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.getItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGet = objectStore.get(key);\r\n dbGet.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result);\r\n });\r\n dbGet.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Adds item to IndexedDB under given key\r\n * @param key\r\n * @param payload\r\n */\r\n DatabaseStorage.prototype.setItem = function (key, payload) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbPut = objectStore.put(payload, key);\r\n dbPut.addEventListener(\"success\", function () {\r\n _this.closeConnection();\r\n resolve();\r\n });\r\n dbPut.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes item from IndexedDB under given key\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.removeItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbDelete = objectStore.delete(key);\r\n dbDelete.addEventListener(\"success\", function () {\r\n _this.closeConnection();\r\n resolve();\r\n });\r\n dbDelete.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get all the keys from the storage object as an iterable array of strings.\r\n */\r\n DatabaseStorage.prototype.getKeys = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGetKeys = objectStore.getAllKeys();\r\n dbGetKeys.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result);\r\n });\r\n dbGetKeys.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * Checks whether there is an object under the search key in the object store\r\n */\r\n DatabaseStorage.prototype.containsKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbContainsKey = objectStore.count(key);\r\n dbContainsKey.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result === 1);\r\n });\r\n dbContainsKey.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Deletes the MSAL database. The database is deleted rather than cleared to make it possible\r\n * for client applications to downgrade to a previous MSAL version without worrying about forward compatibility issues\r\n * with IndexedDB database versions.\r\n */\r\n DatabaseStorage.prototype.deleteDatabase = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n // Check if database being deleted exists\r\n if (this.db && this.dbOpen) {\r\n this.closeConnection();\r\n }\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var deleteDbRequest = window.indexedDB.deleteDatabase(DB_NAME);\r\n deleteDbRequest.addEventListener(\"success\", function () { return resolve(true); });\r\n deleteDbRequest.addEventListener(\"blocked\", function () { return resolve(true); });\r\n deleteDbRequest.addEventListener(\"error\", function () { return reject(false); });\r\n })];\r\n });\r\n });\r\n };\r\n return DatabaseStorage;\r\n}());\n\nexport { DatabaseStorage };\n//# sourceMappingURL=DatabaseStorage.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { DatabaseStorage } from './DatabaseStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class allows MSAL to store artifacts asynchronously using the DatabaseStorage IndexedDB wrapper,\r\n * backed up with the more volatile MemoryStorage object for cases in which IndexedDB may be unavailable.\r\n */\r\nvar AsyncMemoryStorage = /** @class */ (function () {\r\n function AsyncMemoryStorage(logger, storeName) {\r\n this.inMemoryCache = new MemoryStorage();\r\n this.indexedDBCache = new DatabaseStorage();\r\n this.logger = logger;\r\n this.storeName = storeName;\r\n }\r\n AsyncMemoryStorage.prototype.handleDatabaseAccessError = function (error) {\r\n if (error instanceof BrowserAuthError && error.errorCode === BrowserAuthErrorMessage.databaseUnavailable.code) {\r\n this.logger.error(\"Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.\");\r\n }\r\n else {\r\n throw error;\r\n }\r\n };\r\n /**\r\n * Get the item matching the given key. Tries in-memory cache first, then in the asynchronous\r\n * storage object if item isn't found in-memory.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.getItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var item, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n item = this.inMemoryCache.getItem(key);\r\n if (!!item) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"Queried item not found in in-memory cache, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.getItem(key)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_1 = _a.sent();\r\n this.handleDatabaseAccessError(e_1);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, item];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Sets the item in the in-memory cache and then tries to set it in the asynchronous\r\n * storage object with the given key.\r\n * @param key\r\n * @param value\r\n */\r\n AsyncMemoryStorage.prototype.setItem = function (key, value) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.inMemoryCache.setItem(key, value);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.indexedDBCache.setItem(key, value)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_2 = _a.sent();\r\n this.handleDatabaseAccessError(e_2);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes the item matching the key from the in-memory cache, then tries to remove it from the asynchronous storage object.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.removeItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.inMemoryCache.removeItem(key);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.indexedDBCache.removeItem(key)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _a.sent();\r\n this.handleDatabaseAccessError(e_3);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get all the keys from the in-memory cache as an iterable array of strings. If no keys are found, query the keys in the\r\n * asynchronous storage object.\r\n */\r\n AsyncMemoryStorage.prototype.getKeys = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cacheKeys, e_4;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cacheKeys = this.inMemoryCache.getKeys();\r\n if (!(cacheKeys.length === 0)) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"In-memory cache is empty, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.getKeys()];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_4 = _a.sent();\r\n this.handleDatabaseAccessError(e_4);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, cacheKeys];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns true or false if the given key is present in the cache.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.containsKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var containsKey, e_5;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n containsKey = this.inMemoryCache.containsKey(key);\r\n if (!!containsKey) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"Key not found in in-memory cache, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.containsKey(key)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_5 = _a.sent();\r\n this.handleDatabaseAccessError(e_5);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, containsKey];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Clears in-memory Map\r\n */\r\n AsyncMemoryStorage.prototype.clearInMemory = function () {\r\n // InMemory cache is a Map instance, clear is straightforward\r\n this.logger.verbose(\"Deleting in-memory keystore \" + this.storeName);\r\n this.inMemoryCache.clear();\r\n this.logger.verbose(\"In-memory keystore \" + this.storeName + \" deleted\");\r\n };\r\n /**\r\n * Tries to delete the IndexedDB database\r\n * @returns\r\n */\r\n AsyncMemoryStorage.prototype.clearPersistent = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var dbDeleted, e_6;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n this.logger.verbose(\"Deleting persistent keystore\");\r\n return [4 /*yield*/, this.indexedDBCache.deleteDatabase()];\r\n case 1:\r\n dbDeleted = _a.sent();\r\n if (dbDeleted) {\r\n this.logger.verbose(\"Persistent keystore deleted\");\r\n }\r\n return [2 /*return*/, dbDeleted];\r\n case 2:\r\n e_6 = _a.sent();\r\n this.handleDatabaseAccessError(e_6);\r\n return [2 /*return*/, false];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return AsyncMemoryStorage;\r\n}());\n\nexport { AsyncMemoryStorage };\n//# sourceMappingURL=AsyncMemoryStorage.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AsyncMemoryStorage } from './AsyncMemoryStorage.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CryptoKeyStoreNames;\r\n(function (CryptoKeyStoreNames) {\r\n CryptoKeyStoreNames[\"asymmetricKeys\"] = \"asymmetricKeys\";\r\n CryptoKeyStoreNames[\"symmetricKeys\"] = \"symmetricKeys\";\r\n})(CryptoKeyStoreNames || (CryptoKeyStoreNames = {}));\r\n/**\r\n * MSAL CryptoKeyStore DB Version 2\r\n */\r\nvar CryptoKeyStore = /** @class */ (function () {\r\n function CryptoKeyStore(logger) {\r\n this.logger = logger;\r\n this.asymmetricKeys = new AsyncMemoryStorage(this.logger, CryptoKeyStoreNames.asymmetricKeys);\r\n this.symmetricKeys = new AsyncMemoryStorage(this.logger, CryptoKeyStoreNames.symmetricKeys);\r\n }\r\n CryptoKeyStore.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Delete in-memory keystores\r\n this.asymmetricKeys.clearInMemory();\r\n this.symmetricKeys.clearInMemory();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.asymmetricKeys.clearPersistent()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, true];\r\n case 3:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof Error) {\r\n this.logger.error(\"Clearing keystore failed with error: \" + e_1.message);\r\n }\r\n else {\r\n this.logger.error(\"Clearing keystore failed with unknown error\");\r\n }\r\n return [2 /*return*/, false];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return CryptoKeyStore;\r\n}());\n\nexport { CryptoKeyStore, CryptoKeyStoreNames };\n//# sourceMappingURL=CryptoKeyStore.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, JoseHeader } from '@azure/msal-common';\nimport { GuidGenerator } from './GuidGenerator.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\nimport { Base64Decode } from '../encode/Base64Decode.js';\nimport { PkceGenerator } from './PkceGenerator.js';\nimport { BrowserCrypto } from './BrowserCrypto.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { CryptoKeyStore } from '../cache/CryptoKeyStore.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and\r\n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\r\n */\r\nvar CryptoOps = /** @class */ (function () {\r\n function CryptoOps(logger, performanceClient, cryptoConfig) {\r\n this.logger = logger;\r\n // Browser crypto needs to be validated first before any other classes can be set.\r\n this.browserCrypto = new BrowserCrypto(this.logger, cryptoConfig);\r\n this.b64Encode = new Base64Encode();\r\n this.b64Decode = new Base64Decode();\r\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\r\n this.pkceGenerator = new PkceGenerator(this.browserCrypto);\r\n this.cache = new CryptoKeyStore(this.logger);\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Creates a new random GUID - used to populate state and nonce.\r\n * @returns string (GUID)\r\n */\r\n CryptoOps.prototype.createNewGuid = function () {\r\n return this.guidGenerator.generateGuid();\r\n };\r\n /**\r\n * Encodes input string to base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Encode = function (input) {\r\n return this.b64Encode.encode(input);\r\n };\r\n /**\r\n * Decodes input string from base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Decode = function (input) {\r\n return this.b64Decode.decode(input);\r\n };\r\n /**\r\n * Generates PKCE codes used in Authorization Code Flow.\r\n */\r\n CryptoOps.prototype.generatePkceCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.pkceGenerator.generateCodes()];\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a keypair, stores it and returns a thumbprint\r\n * @param request\r\n */\r\n CryptoOps.prototype.getPublicKeyThumbprint = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var publicKeyThumbMeasurement, keyPair, publicKeyJwk, pubKeyThumprintObj, publicJwkString, publicJwkHash, privateKeyJwk, unextractablePrivateKey;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n publicKeyThumbMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.CryptoOptsGetPublicKeyThumbprint, request.correlationId);\r\n return [4 /*yield*/, this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES)];\r\n case 1:\r\n keyPair = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _b.sent();\r\n pubKeyThumprintObj = {\r\n e: publicKeyJwk.e,\r\n kty: publicKeyJwk.kty,\r\n n: publicKeyJwk.n\r\n };\r\n publicJwkString = BrowserStringUtils.getSortedObjectString(pubKeyThumprintObj);\r\n return [4 /*yield*/, this.hashString(publicJwkString)];\r\n case 3:\r\n publicJwkHash = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.privateKey)];\r\n case 4:\r\n privateKeyJwk = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.importJwk(privateKeyJwk, false, [\"sign\"])];\r\n case 5:\r\n unextractablePrivateKey = _b.sent();\r\n // Store Keypair data in keystore\r\n return [4 /*yield*/, this.cache.asymmetricKeys.setItem(publicJwkHash, {\r\n privateKey: unextractablePrivateKey,\r\n publicKey: keyPair.publicKey,\r\n requestMethod: request.resourceRequestMethod,\r\n requestUri: request.resourceRequestUri\r\n })];\r\n case 6:\r\n // Store Keypair data in keystore\r\n _b.sent();\r\n if (publicKeyThumbMeasurement) {\r\n publicKeyThumbMeasurement.endMeasurement({\r\n success: true\r\n });\r\n }\r\n return [2 /*return*/, publicJwkHash];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes cryptographic keypair from key store matching the keyId passed in\r\n * @param kid\r\n */\r\n CryptoOps.prototype.removeTokenBindingKey = function (kid) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyFound;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.asymmetricKeys.removeItem(kid)];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, this.cache.asymmetricKeys.containsKey(kid)];\r\n case 2:\r\n keyFound = _a.sent();\r\n return [2 /*return*/, !keyFound];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes all cryptographic keys from IndexedDB storage\r\n */\r\n CryptoOps.prototype.clearKeystore = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.clear()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Signs the given object as a jwt payload with private key retrieved by given kid.\r\n * @param payload\r\n * @param kid\r\n */\r\n CryptoOps.prototype.signJwt = function (payload, kid, correlationId) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var signJwtMeasurement, cachedKeyPair, publicKeyJwk, publicKeyJwkString, encodedKeyIdThumbprint, shrHeader, encodedShrHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature, signedJwt;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n signJwtMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.CryptoOptsSignJwt, correlationId);\r\n return [4 /*yield*/, this.cache.asymmetricKeys.getItem(kid)];\r\n case 1:\r\n cachedKeyPair = _b.sent();\r\n if (!cachedKeyPair) {\r\n throw BrowserAuthError.createSigningKeyNotFoundInStorageError(kid);\r\n }\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(cachedKeyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _b.sent();\r\n publicKeyJwkString = BrowserStringUtils.getSortedObjectString(publicKeyJwk);\r\n encodedKeyIdThumbprint = this.b64Encode.urlEncode(JSON.stringify({ kid: kid }));\r\n shrHeader = JoseHeader.getShrHeaderString({ kid: encodedKeyIdThumbprint, alg: publicKeyJwk.alg });\r\n encodedShrHeader = this.b64Encode.urlEncode(shrHeader);\r\n // Generate payload\r\n payload.cnf = {\r\n jwk: JSON.parse(publicKeyJwkString)\r\n };\r\n encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));\r\n tokenString = encodedShrHeader + \".\" + encodedPayload;\r\n tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);\r\n return [4 /*yield*/, this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer)];\r\n case 3:\r\n signatureBuffer = _b.sent();\r\n encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));\r\n signedJwt = tokenString + \".\" + encodedSignature;\r\n if (signJwtMeasurement) {\r\n signJwtMeasurement.endMeasurement({\r\n success: true\r\n });\r\n }\r\n return [2 /*return*/, signedJwt];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns the SHA-256 hash of an input string\r\n * @param plainText\r\n */\r\n CryptoOps.prototype.hashString = function (plainText) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var hashBuffer, hashBytes;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.browserCrypto.sha256Digest(plainText)];\r\n case 1:\r\n hashBuffer = _a.sent();\r\n hashBytes = new Uint8Array(hashBuffer);\r\n return [2 /*return*/, this.b64Encode.urlEncodeArr(hashBytes)];\r\n }\r\n });\r\n });\r\n };\r\n CryptoOps.POP_KEY_USAGES = [\"sign\", \"verify\"];\r\n CryptoOps.EXTRACTABLE = true;\r\n return CryptoOps;\r\n}());\n\nexport { CryptoOps };\n//# sourceMappingURL=CryptoOps.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserPerformanceMeasurement = /** @class */ (function () {\r\n function BrowserPerformanceMeasurement(name, correlationId) {\r\n this.correlationId = correlationId;\r\n this.measureName = BrowserPerformanceMeasurement.makeMeasureName(name, correlationId);\r\n this.startMark = BrowserPerformanceMeasurement.makeStartMark(name, correlationId);\r\n this.endMark = BrowserPerformanceMeasurement.makeEndMark(name, correlationId);\r\n }\r\n BrowserPerformanceMeasurement.makeMeasureName = function (name, correlationId) {\r\n return \"msal.measure.\" + name + \".\" + correlationId;\r\n };\r\n BrowserPerformanceMeasurement.makeStartMark = function (name, correlationId) {\r\n return \"msal.start.\" + name + \".\" + correlationId;\r\n };\r\n BrowserPerformanceMeasurement.makeEndMark = function (name, correlationId) {\r\n return \"msal.end.\" + name + \".\" + correlationId;\r\n };\r\n BrowserPerformanceMeasurement.supportsBrowserPerformance = function () {\r\n return typeof window !== \"undefined\" &&\r\n typeof window.performance !== \"undefined\" &&\r\n typeof window.performance.mark === \"function\" &&\r\n typeof window.performance.measure === \"function\" &&\r\n typeof window.performance.clearMarks === \"function\" &&\r\n typeof window.performance.clearMeasures === \"function\" &&\r\n typeof window.performance.getEntriesByName === \"function\";\r\n };\r\n /**\r\n * Flush browser marks and measurements.\r\n * @param {string} correlationId\r\n * @param {SubMeasurement} measurements\r\n */\r\n BrowserPerformanceMeasurement.flushMeasurements = function (correlationId, measurements) {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n measurements.forEach(function (measurement) {\r\n var measureName = BrowserPerformanceMeasurement.makeMeasureName(measurement.name, correlationId);\r\n var entriesForMeasurement = window.performance.getEntriesByName(measureName, \"measure\");\r\n if (entriesForMeasurement.length > 0) {\r\n window.performance.clearMeasures(measureName);\r\n window.performance.clearMarks(BrowserPerformanceMeasurement.makeStartMark(measureName, correlationId));\r\n window.performance.clearMarks(BrowserPerformanceMeasurement.makeEndMark(measureName, correlationId));\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // Silently catch and return null\r\n }\r\n }\r\n };\r\n BrowserPerformanceMeasurement.prototype.startMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.startMark);\r\n }\r\n catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n };\r\n BrowserPerformanceMeasurement.prototype.endMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.endMark);\r\n window.performance.measure(this.measureName, this.startMark, this.endMark);\r\n }\r\n catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n };\r\n BrowserPerformanceMeasurement.prototype.flushMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n var entriesForMeasurement = window.performance.getEntriesByName(this.measureName, \"measure\");\r\n if (entriesForMeasurement.length > 0) {\r\n var durationMs = entriesForMeasurement[0].duration;\r\n window.performance.clearMeasures(this.measureName);\r\n window.performance.clearMarks(this.startMark);\r\n window.performance.clearMarks(this.endMark);\r\n return durationMs;\r\n }\r\n }\r\n catch (e) {\r\n // Silently catch and return null\r\n }\r\n }\r\n return null;\r\n };\r\n return BrowserPerformanceMeasurement;\r\n}());\n\nexport { BrowserPerformanceMeasurement };\n//# sourceMappingURL=BrowserPerformanceMeasurement.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __assign } from '../_virtual/_tslib.js';\nimport { PerformanceClient } from '@azure/msal-common';\nimport { BrowserCrypto } from '../crypto/BrowserCrypto.js';\nimport { GuidGenerator } from '../crypto/GuidGenerator.js';\nimport { BrowserPerformanceMeasurement } from './BrowserPerformanceMeasurement.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserPerformanceClient = /** @class */ (function (_super) {\r\n __extends(BrowserPerformanceClient, _super);\r\n function BrowserPerformanceClient(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry, cryptoOptions) {\r\n var _this = _super.call(this, clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry) || this;\r\n _this.browserCrypto = new BrowserCrypto(_this.logger, cryptoOptions);\r\n _this.guidGenerator = new GuidGenerator(_this.browserCrypto);\r\n return _this;\r\n }\r\n BrowserPerformanceClient.prototype.startPerformanceMeasuremeant = function (measureName, correlationId) {\r\n return new BrowserPerformanceMeasurement(measureName, correlationId);\r\n };\r\n BrowserPerformanceClient.prototype.generateId = function () {\r\n return this.guidGenerator.generateGuid();\r\n };\r\n BrowserPerformanceClient.prototype.getPageVisibility = function () {\r\n var _a;\r\n return ((_a = document.visibilityState) === null || _a === void 0 ? void 0 : _a.toString()) || null;\r\n };\r\n BrowserPerformanceClient.prototype.deleteIncompleteSubMeasurements = function (inProgressEvent) {\r\n var rootEvent = this.eventsByCorrelationId.get(inProgressEvent.event.correlationId);\r\n var isRootEvent = rootEvent && rootEvent.eventId === inProgressEvent.event.eventId;\r\n var incompleteMeasurements = [];\r\n if (isRootEvent && (rootEvent === null || rootEvent === void 0 ? void 0 : rootEvent.incompleteSubMeasurements)) {\r\n rootEvent.incompleteSubMeasurements.forEach(function (subMeasurement) {\r\n incompleteMeasurements.push(__assign({}, subMeasurement));\r\n });\r\n }\r\n // Clean up remaining marks for incomplete sub-measurements\r\n if (incompleteMeasurements.length > 0) {\r\n BrowserPerformanceMeasurement.flushMeasurements(inProgressEvent.event.correlationId, incompleteMeasurements);\r\n }\r\n };\r\n BrowserPerformanceClient.prototype.supportsBrowserPerformanceNow = function () {\r\n return typeof window !== \"undefined\" &&\r\n typeof window.performance !== \"undefined\" &&\r\n typeof window.performance.now === \"function\";\r\n };\r\n /**\r\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\r\n * Also captures browser page visibilityState.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {?string} [correlationId]\r\n * @returns {((event?: Partial) => PerformanceEvent| null)}\r\n */\r\n BrowserPerformanceClient.prototype.startMeasurement = function (measureName, correlationId) {\r\n var _this = this;\r\n // Capture page visibilityState and then invoke start/end measurement\r\n var startPageVisibility = this.getPageVisibility();\r\n var inProgressEvent = _super.prototype.startMeasurement.call(this, measureName, correlationId);\r\n return __assign(__assign({}, inProgressEvent), { endMeasurement: function (event) {\r\n var res = inProgressEvent.endMeasurement(__assign({ startPageVisibility: startPageVisibility, endPageVisibility: _this.getPageVisibility() }, event));\r\n _this.deleteIncompleteSubMeasurements(inProgressEvent);\r\n return res;\r\n }, discardMeasurement: function () {\r\n inProgressEvent.discardMeasurement();\r\n _this.deleteIncompleteSubMeasurements(inProgressEvent);\r\n inProgressEvent.measurement.flushMeasurement();\r\n } });\r\n };\r\n /**\r\n * Adds pre-queue time to preQueueTimeByCorrelationId map.\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @returns\r\n */\r\n BrowserPerformanceClient.prototype.setPreQueueTime = function (eventName, correlationId) {\r\n if (!this.supportsBrowserPerformanceNow()) {\r\n this.logger.trace(\"BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for \" + eventName);\r\n return;\r\n }\r\n if (!correlationId) {\r\n this.logger.trace(\"BrowserPerformanceClient: correlationId for \" + eventName + \" not provided, unable to set telemetry queue time\");\r\n return;\r\n }\r\n var preQueueEvent = this.preQueueTimeByCorrelationId.get(correlationId);\r\n /**\r\n * Manually complete queue measurement if there is an incomplete pre-queue event.\r\n * Incomplete pre-queue events are instrumentation bugs that should be fixed.\r\n */\r\n if (preQueueEvent) {\r\n this.logger.trace(\"BrowserPerformanceClient: Incomplete pre-queue \" + preQueueEvent.name + \" found\", correlationId);\r\n this.addQueueMeasurement(preQueueEvent.name, correlationId, undefined, true);\r\n }\r\n this.preQueueTimeByCorrelationId.set(correlationId, { name: eventName, time: window.performance.now() });\r\n };\r\n /**\r\n * Calculates and adds queue time measurement for given performance event.\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @param {?number} queueTime\r\n * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements\r\n * @returns\r\n */\r\n BrowserPerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId, queueTime, manuallyCompleted) {\r\n if (!this.supportsBrowserPerformanceNow()) {\r\n this.logger.trace(\"BrowserPerformanceClient: window performance API not available, unable to add queue measurement for \" + eventName);\r\n return;\r\n }\r\n if (!correlationId) {\r\n this.logger.trace(\"BrowserPerformanceClient: correlationId for \" + eventName + \" not provided, unable to add queue measurement\");\r\n return;\r\n }\r\n var preQueueTime = _super.prototype.getPreQueueTime.call(this, eventName, correlationId);\r\n if (!preQueueTime) {\r\n return;\r\n }\r\n var currentTime = window.performance.now();\r\n var resQueueTime = queueTime || _super.prototype.calculateQueuedTime.call(this, preQueueTime, currentTime);\r\n return _super.prototype.addQueueMeasurement.call(this, eventName, correlationId, resQueueTime, manuallyCompleted);\r\n };\r\n return BrowserPerformanceClient;\r\n}(PerformanceClient));\n\nexport { BrowserPerformanceClient };\n//# sourceMappingURL=BrowserPerformanceClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nexport { BrowserCacheManager } from './cache/BrowserCacheManager.js';\nexport { StandardInteractionClient } from './interaction_client/StandardInteractionClient.js';\nexport { RedirectClient } from './interaction_client/RedirectClient.js';\nexport { PopupClient } from './interaction_client/PopupClient.js';\nexport { SilentIframeClient } from './interaction_client/SilentIframeClient.js';\nexport { SilentCacheClient } from './interaction_client/SilentCacheClient.js';\nexport { SilentRefreshClient } from './interaction_client/SilentRefreshClient.js';\nexport { NativeInteractionClient } from './interaction_client/NativeInteractionClient.js';\nexport { RedirectHandler } from './interaction_handler/RedirectHandler.js';\nexport { EventHandler } from './event/EventHandler.js';\nexport { NativeMessageHandler } from './broker/nativeBroker/NativeMessageHandler.js';\nexport { BrowserConstants, TemporaryCacheKeys } from './utils/BrowserConstants.js';\nexport { CryptoOps } from './crypto/CryptoOps.js';\nexport { NativeAuthError } from './error/NativeAuthError.js';\nexport { BrowserPerformanceClient } from './telemetry/BrowserPerformanceClient.js';\nexport { BrowserPerformanceMeasurement } from './telemetry/BrowserPerformanceMeasurement.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n//# sourceMappingURL=internals.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { AuthToken, CacheRecord, Authority, AccountEntity, IdTokenEntity, ScopeSet, AccessTokenEntity, RefreshTokenEntity, Constants } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Token cache manager\r\n */\r\nvar TokenCache = /** @class */ (function () {\r\n function TokenCache(configuration, storage, logger, cryptoObj) {\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n this.config = configuration;\r\n this.storage = storage;\r\n this.logger = logger;\r\n this.cryptoObj = cryptoObj;\r\n }\r\n // Move getAllAccounts here and cache utility APIs\r\n /**\r\n * API to load tokens to msal-browser cache.\r\n * @param request\r\n * @param response\r\n * @param options\r\n * @returns `AuthenticationResult` for the response that was loaded.\r\n */\r\n TokenCache.prototype.loadExternalTokens = function (request, response, options) {\r\n this.logger.info(\"TokenCache - loadExternalTokens called\");\r\n if (!response.id_token) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please ensure server response includes id token.\");\r\n }\r\n var idToken = new AuthToken(response.id_token, this.cryptoObj);\r\n var cacheRecord;\r\n var authority;\r\n if (request.account) {\r\n var cacheRecordAccount = this.loadAccount(idToken, request.account.environment, undefined, undefined, request.account.homeAccountId);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment));\r\n }\r\n else if (request.authority) {\r\n var authorityUrl = Authority.generateAuthority(request.authority, request.azureCloudOptions);\r\n var authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache,\r\n };\r\n authority = new Authority(authorityUrl, this.config.system.networkClient, this.storage, authorityOptions, this.logger);\r\n // \"clientInfo\" from options takes precedence over \"clientInfo\" in response\r\n if (options.clientInfo) {\r\n this.logger.trace(\"TokenCache - homeAccountId from options\");\r\n var cacheRecordAccount = this.loadAccount(idToken, authority.hostnameAndPort, options.clientInfo, authority.authorityType);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));\r\n }\r\n else if (response.client_info) {\r\n this.logger.trace(\"TokenCache - homeAccountId from response\");\r\n var cacheRecordAccount = this.loadAccount(idToken, authority.hostnameAndPort, response.client_info, authority.authorityType);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide clientInfo in the response or options.\");\r\n }\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide a request with an account or a request with authority.\");\r\n }\r\n return this.generateAuthenticationResult(request, idToken, cacheRecord, authority);\r\n };\r\n /**\r\n * Helper function to load account to msal-browser cache\r\n * @param idToken\r\n * @param environment\r\n * @param clientInfo\r\n * @param authorityType\r\n * @param requestHomeAccountId\r\n * @returns `AccountEntity`\r\n */\r\n TokenCache.prototype.loadAccount = function (idToken, environment, clientInfo, authorityType, requestHomeAccountId) {\r\n var homeAccountId;\r\n if (requestHomeAccountId) {\r\n homeAccountId = requestHomeAccountId;\r\n }\r\n else if (authorityType !== undefined && clientInfo) {\r\n homeAccountId = AccountEntity.generateHomeAccountId(clientInfo, authorityType, this.logger, this.cryptoObj, idToken);\r\n }\r\n if (!homeAccountId) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Unexpected missing homeAccountId\");\r\n }\r\n var accountEntity = clientInfo ?\r\n AccountEntity.createAccount(clientInfo, homeAccountId, idToken, undefined, undefined, undefined, environment) :\r\n AccountEntity.createGenericAccount(homeAccountId, idToken, undefined, undefined, undefined, environment);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading account\");\r\n this.storage.setAccount(accountEntity);\r\n return accountEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load id tokens to msal-browser cache\r\n * @param idToken\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @returns `IdTokenEntity`\r\n */\r\n TokenCache.prototype.loadIdToken = function (idToken, homeAccountId, environment, tenantId) {\r\n var idTokenEntity = IdTokenEntity.createIdTokenEntity(homeAccountId, environment, idToken.rawToken, this.config.auth.clientId, tenantId);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading id token\");\r\n this.storage.setIdTokenCredential(idTokenEntity);\r\n return idTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load access tokens to msal-browser cache\r\n * @param request\r\n * @param response\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @returns `AccessTokenEntity`\r\n */\r\n TokenCache.prototype.loadAccessToken = function (request, response, homeAccountId, environment, tenantId, options) {\r\n if (!response.access_token) {\r\n this.logger.verbose(\"TokenCache - No access token provided for caching\");\r\n return null;\r\n }\r\n if (!response.expires_in) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please ensure server response includes expires_in value.\");\r\n }\r\n if (!options.extendedExpiresOn) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide an extendedExpiresOn value in the options.\");\r\n }\r\n var scopes = new ScopeSet(request.scopes).printScopes();\r\n var expiresOn = options.expiresOn || (response.expires_in + new Date().getTime() / 1000);\r\n var extendedExpiresOn = options.extendedExpiresOn;\r\n var accessTokenEntity = AccessTokenEntity.createAccessTokenEntity(homeAccountId, environment, response.access_token, this.config.auth.clientId, tenantId, scopes, expiresOn, extendedExpiresOn, this.cryptoObj);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading access token\");\r\n this.storage.setAccessTokenCredential(accessTokenEntity);\r\n return accessTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load refresh tokens to msal-browser cache\r\n * @param request\r\n * @param response\r\n * @param homeAccountId\r\n * @param environment\r\n * @returns `RefreshTokenEntity`\r\n */\r\n TokenCache.prototype.loadRefreshToken = function (request, response, homeAccountId, environment) {\r\n if (!response.refresh_token) {\r\n this.logger.verbose(\"TokenCache - No refresh token provided for caching\");\r\n return null;\r\n }\r\n var refreshTokenEntity = RefreshTokenEntity.createRefreshTokenEntity(homeAccountId, environment, response.refresh_token, this.config.auth.clientId);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading refresh token\");\r\n this.storage.setRefreshTokenCredential(refreshTokenEntity);\r\n return refreshTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to generate an `AuthenticationResult` for the result.\r\n * @param request\r\n * @param idTokenObj\r\n * @param cacheRecord\r\n * @param authority\r\n * @returns `AuthenticationResult`\r\n */\r\n TokenCache.prototype.generateAuthenticationResult = function (request, idTokenObj, cacheRecord, authority) {\r\n var _a, _b, _c;\r\n var accessToken = Constants.EMPTY_STRING;\r\n var responseScopes = [];\r\n var expiresOn = null;\r\n var extExpiresOn;\r\n if (cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.accessToken) {\r\n accessToken = cacheRecord.accessToken.secret;\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n }\r\n var uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n var tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n return {\r\n authority: authority ? authority.canonicalAuthority : Constants.EMPTY_STRING,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: (cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) ? cacheRecord.account.getAccountInfo() : null,\r\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n accessToken: accessToken,\r\n fromCache: true,\r\n expiresOn: expiresOn,\r\n correlationId: request.correlationId || Constants.EMPTY_STRING,\r\n requestId: Constants.EMPTY_STRING,\r\n extExpiresOn: extExpiresOn,\r\n familyId: Constants.EMPTY_STRING,\r\n tokenType: ((_a = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n state: Constants.EMPTY_STRING,\r\n cloudGraphHostName: ((_b = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n msGraphHost: ((_c = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING,\r\n code: undefined,\r\n fromNativeBroker: false\r\n };\r\n };\r\n return TokenCache;\r\n}());\n\nexport { TokenCache };\n//# sourceMappingURL=TokenCache.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthorizationCodeClient } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar HybridSpaAuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends(HybridSpaAuthorizationCodeClient, _super);\r\n function HybridSpaAuthorizationCodeClient(config) {\r\n var _this = _super.call(this, config) || this;\r\n _this.includeRedirectUri = false;\r\n return _this;\r\n }\r\n return HybridSpaAuthorizationCodeClient;\r\n}(AuthorizationCodeClient));\n\nexport { HybridSpaAuthorizationCodeClient };\n//# sourceMappingURL=HybridSpaAuthorizationCodeClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthError, PerformanceEvents, Constants } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType } from '../utils/BrowserConstants.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\nimport { HybridSpaAuthorizationCodeClient } from './HybridSpaAuthorizationCodeClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentAuthCodeClient = /** @class */ (function (_super) {\r\n __extends(SilentAuthCodeClient, _super);\r\n function SilentAuthCodeClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.apiId = apiId;\r\n return _this;\r\n }\r\n /**\r\n * Acquires a token silently by redeeming an authorization code against the /token endpoint\r\n * @param request\r\n */\r\n SilentAuthCodeClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, authCodeRequest, clientConfig, authClient, silentHandler, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"SilentAuthCodeClient.acquireToken called\");\r\n // Auth code payload is required\r\n if (!request.code) {\r\n throw BrowserAuthError.createAuthCodeRequiredError();\r\n }\r\n // Create silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Silent)];\r\n case 1:\r\n silentRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n authCodeRequest = __assign(__assign({}, silentRequest), { code: request.code });\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, request.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, silentRequest.authority)];\r\n case 3:\r\n clientConfig = _a.sent();\r\n authClient = new HybridSpaAuthorizationCodeClient(clientConfig);\r\n this.logger.verbose(\"Auth code client created\");\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.config.system, this.performanceClient);\r\n // Handle auth code parameters from request\r\n return [2 /*return*/, silentHandler.handleCodeResponseFromServer({\r\n code: request.code,\r\n msgraph_host: request.msGraphHost,\r\n cloud_graph_host_name: request.cloudGraphHostName,\r\n cloud_instance_host_name: request.cloudInstanceHostName\r\n }, silentRequest.state, authClient.authority, this.networkClient, false)];\r\n case 4:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n throw e_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentAuthCodeClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n return SilentAuthCodeClient;\r\n}(StandardInteractionClient));\n\nexport { SilentAuthCodeClient };\n//# sourceMappingURL=SilentAuthCodeClient.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { CryptoOps } from '../crypto/CryptoOps.js';\nimport { PerformanceEvents, Constants, InteractionRequiredAuthError, AuthError, ClientAuthError, PromptValue, Logger, StubPerformanceClient, DEFAULT_CRYPTO_IMPLEMENTATION } from '@azure/msal-common';\nimport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER } from '../cache/BrowserCacheManager.js';\nimport { buildConfiguration } from '../config/Configuration.js';\nimport { InteractionType, ApiId, TemporaryCacheKeys, CacheLookupPolicy, BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { name, version } from '../packageMetadata.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { EventHandler } from '../event/EventHandler.js';\nimport { PopupClient } from '../interaction_client/PopupClient.js';\nimport { RedirectClient } from '../interaction_client/RedirectClient.js';\nimport { SilentIframeClient } from '../interaction_client/SilentIframeClient.js';\nimport { SilentRefreshClient } from '../interaction_client/SilentRefreshClient.js';\nimport { TokenCache } from '../cache/TokenCache.js';\nimport { NativeInteractionClient } from '../interaction_client/NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { SilentCacheClient } from '../interaction_client/SilentCacheClient.js';\nimport { SilentAuthCodeClient } from '../interaction_client/SilentAuthCodeClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserPerformanceClient } from '../telemetry/BrowserPerformanceClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ClientApplication = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration Object for the MSAL PublicClientApplication instance\r\n */\r\n function ClientApplication(configuration) {\r\n /*\r\n * If loaded in an environment where window is not available,\r\n * set internal flag to false so that further requests fail.\r\n * This is to support server-side rendering environments.\r\n */\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n // Set the configuration.\r\n this.config = buildConfiguration(configuration, this.isBrowserEnvironment);\r\n this.initialized = false;\r\n // Initialize logger\r\n this.logger = new Logger(this.config.system.loggerOptions, name, version);\r\n // Initialize the network module class.\r\n this.networkClient = this.config.system.networkClient;\r\n // Initialize the navigation client class.\r\n this.navigationClient = this.config.system.navigationClient;\r\n // Initialize redirectResponse Map\r\n this.redirectResponse = new Map();\r\n // Initial hybrid spa map\r\n this.hybridAuthCodeResponses = new Map();\r\n // Initialize performance client\r\n this.performanceClient = this.isBrowserEnvironment ?\r\n new BrowserPerformanceClient(this.config.auth.clientId, this.config.auth.authority, this.logger, name, version, this.config.telemetry.application, this.config.system.cryptoOptions) :\r\n new StubPerformanceClient(this.config.auth.clientId, this.config.auth.authority, this.logger, name, version, this.config.telemetry.application);\r\n // Initialize the crypto class.\r\n this.browserCrypto = this.isBrowserEnvironment ? new CryptoOps(this.logger, this.performanceClient, this.config.system.cryptoOptions) : DEFAULT_CRYPTO_IMPLEMENTATION;\r\n this.eventHandler = new EventHandler(this.logger, this.browserCrypto);\r\n // Initialize the browser storage class.\r\n this.browserStorage = this.isBrowserEnvironment ?\r\n new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger) :\r\n DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger);\r\n // initialize in memory storage for native flows\r\n var nativeCacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n cacheMigrationEnabled: false\r\n };\r\n this.nativeInternalStorage = new BrowserCacheManager(this.config.auth.clientId, nativeCacheOptions, this.browserCrypto, this.logger);\r\n // Initialize the token cache\r\n this.tokenCache = new TokenCache(this.config, this.browserStorage, this.logger, this.browserCrypto);\r\n // Register listener functions\r\n this.trackPageVisibilityWithMeasurement = this.trackPageVisibilityWithMeasurement.bind(this);\r\n }\r\n /**\r\n * Initializer function to perform async startup tasks such as connecting to WAM extension\r\n */\r\n ClientApplication.prototype.initialize = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allowNativeBroker, initMeasurement, _a, e_1;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.logger.trace(\"initialize called\");\r\n if (this.initialized) {\r\n this.logger.info(\"initialize has already been called, exiting early.\");\r\n return [2 /*return*/];\r\n }\r\n allowNativeBroker = this.config.system.allowNativeBroker;\r\n initMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.InitializeClientApplication);\r\n this.eventHandler.emitEvent(EventType.INITIALIZE_START);\r\n if (!allowNativeBroker) return [3 /*break*/, 4];\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n _a = this;\r\n return [4 /*yield*/, NativeMessageHandler.createProvider(this.logger, this.config.system.nativeBrokerHandshakeTimeout, this.performanceClient)];\r\n case 2:\r\n _a.nativeExtensionProvider = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _b.sent();\r\n this.logger.verbose(e_1);\r\n return [3 /*break*/, 4];\r\n case 4:\r\n this.initialized = true;\r\n this.eventHandler.emitEvent(EventType.INITIALIZE_END);\r\n initMeasurement.endMeasurement({ allowNativeBroker: allowNativeBroker, success: true });\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #region Redirect Flow\r\n /**\r\n * Event handler function which allows users to fire events after the PublicClientApplication object\r\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\r\n * auth flows.\r\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\r\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\r\n */\r\n ClientApplication.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var loggedInAccounts, redirectResponseKey, response, request, redirectResponse, nativeClient, correlationId, redirectClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.verbose(\"handleRedirectPromise called\");\r\n // Block token acquisition before initialize has been called if native brokering is enabled\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized(this.config.system.allowNativeBroker, this.initialized);\r\n loggedInAccounts = this.getAllAccounts();\r\n if (this.isBrowserEnvironment) {\r\n redirectResponseKey = hash || Constants.EMPTY_STRING;\r\n response = this.redirectResponse.get(redirectResponseKey);\r\n if (typeof response === \"undefined\") {\r\n this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_START, InteractionType.Redirect);\r\n this.logger.verbose(\"handleRedirectPromise has been called for the first time, storing the promise\");\r\n request = this.browserStorage.getCachedNativeRequest();\r\n redirectResponse = void 0;\r\n if (request && NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider) && this.nativeExtensionProvider && !hash) {\r\n this.logger.trace(\"handleRedirectPromise - acquiring token from native platform\");\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.handleRedirectPromise, this.performanceClient, this.nativeExtensionProvider, request.accountId, this.nativeInternalStorage, request.correlationId);\r\n redirectResponse = nativeClient.handleRedirectPromise();\r\n }\r\n else {\r\n this.logger.trace(\"handleRedirectPromise - acquiring token from web flow\");\r\n correlationId = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, true) || Constants.EMPTY_STRING;\r\n redirectClient = this.createRedirectClient(correlationId);\r\n redirectResponse = redirectClient.handleRedirectPromise(hash);\r\n }\r\n response = redirectResponse.then(function (result) {\r\n if (result) {\r\n // Emit login event if number of accounts change\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, login success\");\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, acquire token success\");\r\n }\r\n }\r\n _this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n return result;\r\n }).catch(function (e) {\r\n // Emit login event if there is an account\r\n if (loggedInAccounts.length > 0) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n _this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n throw e;\r\n });\r\n this.redirectResponse.set(redirectResponseKey, response);\r\n }\r\n else {\r\n this.logger.verbose(\"handleRedirectPromise has been called previously, returning the result from the first call\");\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n this.logger.verbose(\"handleRedirectPromise returns null, not browser environment\");\r\n return [2 /*return*/, null];\r\n });\r\n });\r\n };\r\n /**\r\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\r\n * the page, so any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n ClientApplication.prototype.acquireTokenRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, isLoggedIn, result, nativeClient, redirectClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"acquireTokenRedirect called\", correlationId);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n isLoggedIn = this.getAllAccounts().length > 0;\r\n if (isLoggedIn) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Redirect, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Redirect, request);\r\n }\r\n if (this.nativeExtensionProvider && this.canUseNative(request)) {\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenRedirect, this.performanceClient, this.nativeExtensionProvider, this.getNativeAccountId(request), this.nativeInternalStorage, request.correlationId);\r\n result = nativeClient.acquireTokenRedirect(request).catch(function (e) {\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var redirectClient = _this.createRedirectClient(request.correlationId);\r\n return redirectClient.acquireToken(request);\r\n }\r\n else if (e instanceof InteractionRequiredAuthError) {\r\n _this.logger.verbose(\"acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow\");\r\n var redirectClient = _this.createRedirectClient(request.correlationId);\r\n return redirectClient.acquireToken(request);\r\n }\r\n _this.browserStorage.setInteractionInProgress(false);\r\n throw e;\r\n });\r\n }\r\n else {\r\n redirectClient = this.createRedirectClient(request.correlationId);\r\n result = redirectClient.acquireToken(request);\r\n }\r\n return [2 /*return*/, result.catch(function (e) {\r\n // If logged in, emit acquire token events\r\n if (isLoggedIn) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n throw e;\r\n })];\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Popup Flow\r\n /**\r\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenPopup = function (request) {\r\n var _this = this;\r\n var correlationId = this.getRequestCorrelationId(request);\r\n var atPopupMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenPopup, correlationId);\r\n try {\r\n this.logger.verbose(\"acquireTokenPopup called\", correlationId);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n // If logged in, emit acquire token events\r\n var loggedInAccounts = this.getAllAccounts();\r\n if (loggedInAccounts.length > 0) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Popup, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Popup, request);\r\n }\r\n var result;\r\n if (this.canUseNative(request)) {\r\n result = this.acquireTokenNative(request, ApiId.acquireTokenPopup).then(function (response) {\r\n _this.browserStorage.setInteractionInProgress(false);\r\n atPopupMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (e) {\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var popupClient = _this.createPopupClient(request.correlationId);\r\n return popupClient.acquireToken(request);\r\n }\r\n else if (e instanceof InteractionRequiredAuthError) {\r\n _this.logger.verbose(\"acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow\");\r\n var popupClient = _this.createPopupClient(request.correlationId);\r\n return popupClient.acquireToken(request);\r\n }\r\n _this.browserStorage.setInteractionInProgress(false);\r\n throw e;\r\n });\r\n }\r\n else {\r\n var popupClient = this.createPopupClient(request.correlationId);\r\n result = popupClient.acquireToken(request);\r\n }\r\n return result.then(function (result) {\r\n /*\r\n * If logged in, emit acquire token events\r\n */\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n atPopupMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atPopupMeasurement.endMeasurement({\r\n success: true,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n }).catch(function (e) {\r\n if (loggedInAccounts.length > 0) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Popup, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Popup, null, e);\r\n }\r\n atPopupMeasurement.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n });\r\n };\r\n ClientApplication.prototype.trackPageVisibilityWithMeasurement = function () {\r\n var measurement = this.ssoSilentMeasurement || this.acquireTokenByCodeAsyncMeasurement;\r\n if (!measurement) {\r\n return;\r\n }\r\n this.logger.info(\"Perf: Visibility change detected in \", measurement.event.name);\r\n measurement.increment({\r\n visibilityChangeCount: 1,\r\n });\r\n };\r\n // #endregion\r\n // #region Silent Flow\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\r\n * - Any browser using a form of Intelligent Tracking Prevention\r\n * - If there is not an established session with the service\r\n *\r\n * In these cases, the request must be done inside a popup or full frame redirect.\r\n *\r\n * For the cases where interaction is required, you cannot send a request with prompt=none.\r\n *\r\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\r\n * you session on the server still exists.\r\n * @param request {@link SsoSilentRequest}\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.ssoSilent = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, validRequest, result, silentIframeClient;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n validRequest = __assign(__assign({}, request), { \r\n // will be PromptValue.NONE or PromptValue.NO_SESSION\r\n prompt: request.prompt, correlationId: correlationId });\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.ssoSilentMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SsoSilent, correlationId);\r\n (_a = this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n this.logger.verbose(\"ssoSilent called\", correlationId);\r\n this.eventHandler.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, validRequest);\r\n if (this.canUseNative(validRequest)) {\r\n result = this.acquireTokenNative(validRequest, ApiId.ssoSilent).catch(function (e) {\r\n // If native token acquisition fails for availability reasons fallback to standard flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var silentIframeClient = _this.createSilentIframeClient(validRequest.correlationId);\r\n return silentIframeClient.acquireToken(validRequest);\r\n }\r\n throw e;\r\n });\r\n }\r\n else {\r\n silentIframeClient = this.createSilentIframeClient(validRequest.correlationId);\r\n result = silentIframeClient.acquireToken(validRequest);\r\n }\r\n return [2 /*return*/, result.then(function (response) {\r\n var _a, _b;\r\n _this.eventHandler.emitEvent(EventType.SSO_SILENT_SUCCESS, InteractionType.Silent, response);\r\n (_a = _this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.addStaticFields({\r\n accessTokenSize: response.accessToken.length,\r\n idTokenSize: response.idToken.length\r\n });\r\n (_b = _this.ssoSilentMeasurement) === null || _b === void 0 ? void 0 : _b.endMeasurement({\r\n success: true,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (e) {\r\n var _a;\r\n _this.eventHandler.emitEvent(EventType.SSO_SILENT_FAILURE, InteractionType.Silent, null, e);\r\n (_a = _this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n throw e;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibilityWithMeasurement);\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * This function redeems an authorization code (passed as code) from the eSTS token endpoint.\r\n * This authorization code should be acquired server-side using a confidential client to acquire a spa_code.\r\n * This API is not indended for normal authorization code acquisition and redemption.\r\n *\r\n * Redemption of this authorization code will not require PKCE, as it was acquired by a confidential client.\r\n *\r\n * @param request {@link AuthorizationCodeRequest}\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenByCode = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, atbcMeasurement, hybridAuthCode_1, response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.trace(\"acquireTokenByCode called\", correlationId);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_START, InteractionType.Silent, request);\r\n atbcMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCode, request.correlationId);\r\n try {\r\n if (request.code && request.nativeAccountId) {\r\n // Throw error in case server returns both spa_code and spa_accountid in exchange for auth code.\r\n throw BrowserAuthError.createSpaCodeAndNativeAccountIdPresentError();\r\n }\r\n else if (request.code) {\r\n hybridAuthCode_1 = request.code;\r\n response = this.hybridAuthCodeResponses.get(hybridAuthCode_1);\r\n if (!response) {\r\n this.logger.verbose(\"Initiating new acquireTokenByCode request\", correlationId);\r\n response = this.acquireTokenByCodeAsync(__assign(__assign({}, request), { correlationId: correlationId }))\r\n .then(function (result) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_SUCCESS, InteractionType.Silent, result);\r\n _this.hybridAuthCodeResponses.delete(hybridAuthCode_1);\r\n atbcMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atbcMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: result.fromNativeBroker,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.hybridAuthCodeResponses.delete(hybridAuthCode_1);\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE, InteractionType.Silent, null, error);\r\n atbcMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n });\r\n this.hybridAuthCodeResponses.set(hybridAuthCode_1, response);\r\n }\r\n else {\r\n this.logger.verbose(\"Existing acquireTokenByCode request found\", request.correlationId);\r\n atbcMeasurement.discardMeasurement();\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n else if (request.nativeAccountId) {\r\n if (this.canUseNative(request, request.nativeAccountId)) {\r\n return [2 /*return*/, this.acquireTokenNative(request, ApiId.acquireTokenByCode, request.nativeAccountId).catch(function (e) {\r\n // If native token acquisition fails for availability reasons fallback to standard flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n }\r\n throw e;\r\n })];\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToAcquireTokenFromNativePlatformError();\r\n }\r\n }\r\n else {\r\n throw BrowserAuthError.createAuthCodeOrNativeAccountIdRequiredError();\r\n }\r\n }\r\n catch (e) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE, InteractionType.Silent, null, e);\r\n atbcMeasurement.endMeasurement({\r\n errorCode: e instanceof AuthError && e.errorCode || undefined,\r\n subErrorCode: e instanceof AuthError && e.subError || undefined,\r\n success: false\r\n });\r\n throw e;\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a SilentAuthCodeClient to redeem an authorization code.\r\n * @param request\r\n * @returns Result of the operation to redeem the authorization code\r\n */\r\n ClientApplication.prototype.acquireTokenByCodeAsync = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentAuthCodeClient, silentTokenResult;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.logger.trace(\"acquireTokenByCodeAsync called\", request.correlationId);\r\n this.acquireTokenByCodeAsyncMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCodeAsync, request.correlationId);\r\n (_a = this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n silentAuthCodeClient = this.createSilentAuthCodeClient(request.correlationId);\r\n return [4 /*yield*/, silentAuthCodeClient.acquireToken(request).then(function (response) {\r\n var _a;\r\n (_a = _this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n success: true,\r\n fromCache: response.fromCache,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (tokenRenewalError) {\r\n var _a;\r\n (_a = _this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: tokenRenewalError.errorCode,\r\n subErrorCode: tokenRenewalError.subError,\r\n success: false\r\n });\r\n throw tokenRenewalError;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibilityWithMeasurement);\r\n })];\r\n case 1:\r\n silentTokenResult = _b.sent();\r\n return [2 /*return*/, silentTokenResult];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token from the cache\r\n * @param silentCacheClient SilentCacheClient\r\n * @param commonRequest CommonSilentFlowRequest\r\n * @param silentRequest SilentRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenFromCache = function (silentCacheClient, commonRequest, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenFromCache, commonRequest.correlationId);\r\n switch (silentRequest.cacheLookupPolicy) {\r\n case CacheLookupPolicy.Default:\r\n case CacheLookupPolicy.AccessToken:\r\n case CacheLookupPolicy.AccessTokenAndRefreshToken:\r\n return [2 /*return*/, silentCacheClient.acquireToken(commonRequest)];\r\n default:\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token via a refresh token\r\n * @param commonRequest CommonSilentFlowRequest\r\n * @param silentRequest SilentRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenByRefreshToken = function (commonRequest, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRefreshClient;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenByRefreshToken, commonRequest.correlationId);\r\n switch (silentRequest.cacheLookupPolicy) {\r\n case CacheLookupPolicy.Default:\r\n case CacheLookupPolicy.AccessTokenAndRefreshToken:\r\n case CacheLookupPolicy.RefreshToken:\r\n case CacheLookupPolicy.RefreshTokenAndNetwork:\r\n silentRefreshClient = this.createSilentRefreshClient(commonRequest.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentRefreshClientAcquireToken, commonRequest.correlationId);\r\n return [2 /*return*/, silentRefreshClient.acquireToken(commonRequest)];\r\n default:\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token via an iframe\r\n * @param request CommonSilentFlowRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenBySilentIframe = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentIframeClient;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenBySilentIframe, request.correlationId);\r\n silentIframeClient = this.createSilentIframeClient(request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n return [2 /*return*/, silentIframeClient.acquireToken(request)];\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Logout\r\n /**\r\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\r\n * @param logoutRequest\r\n * @deprecated\r\n */\r\n ClientApplication.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.logger.warning(\"logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.\", correlationId);\r\n return [2 /*return*/, this.logoutRedirect(__assign({ correlationId: correlationId }, logoutRequest))];\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutRedirect = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, redirectClient;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n redirectClient = this.createRedirectClient(correlationId);\r\n return [2 /*return*/, redirectClient.logout(logoutRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutPopup = function (logoutRequest) {\r\n try {\r\n var correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n var popupClient = this.createPopupClient(correlationId);\r\n return popupClient.logout(logoutRequest);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n };\r\n // #endregion\r\n // #region Account APIs\r\n /**\r\n * Returns all accounts that MSAL currently has data for.\r\n * (the account object is created at the time of successful login)\r\n * or empty array when no accounts are found\r\n * @returns Array of account objects in cache\r\n */\r\n ClientApplication.prototype.getAllAccounts = function () {\r\n this.logger.verbose(\"getAllAccounts called\");\r\n return this.isBrowserEnvironment ? this.browserStorage.getAllAccounts() : [];\r\n };\r\n /**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param username\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByUsername = function (username) {\r\n this.logger.trace(\"getAccountByUsername called\");\r\n if (!username) {\r\n this.logger.warning(\"getAccountByUsername: No username provided\");\r\n return null;\r\n }\r\n var account = this.browserStorage.getAccountInfoFilteredBy({ username: username });\r\n if (account) {\r\n this.logger.verbose(\"getAccountByUsername: Account matching username found, returning\");\r\n this.logger.verbosePii(\"getAccountByUsername: Returning signed-in accounts matching username: \" + username);\r\n return account;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByUsername: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByHomeId = function (homeAccountId) {\r\n this.logger.trace(\"getAccountByHomeId called\");\r\n if (!homeAccountId) {\r\n this.logger.warning(\"getAccountByHomeId: No homeAccountId provided\");\r\n return null;\r\n }\r\n var account = this.browserStorage.getAccountInfoFilteredBy({ homeAccountId: homeAccountId });\r\n if (account) {\r\n this.logger.verbose(\"getAccountByHomeId: Account matching homeAccountId found, returning\");\r\n this.logger.verbosePii(\"getAccountByHomeId: Returning signed-in accounts matching homeAccountId: \" + homeAccountId);\r\n return account;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByHomeId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByLocalId = function (localAccountId) {\r\n this.logger.trace(\"getAccountByLocalId called\");\r\n if (!localAccountId) {\r\n this.logger.warning(\"getAccountByLocalId: No localAccountId provided\");\r\n return null;\r\n }\r\n var account = this.browserStorage.getAccountInfoFilteredBy({ localAccountId: localAccountId });\r\n if (account) {\r\n this.logger.verbose(\"getAccountByLocalId: Account matching localAccountId found, returning\");\r\n this.logger.verbosePii(\"getAccountByLocalId: Returning signed-in accounts matching localAccountId: \" + localAccountId);\r\n return account;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByLocalId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\n ClientApplication.prototype.setActiveAccount = function (account) {\r\n this.browserStorage.setActiveAccount(account);\r\n };\r\n /**\r\n * Gets the currently active account\r\n */\r\n ClientApplication.prototype.getActiveAccount = function () {\r\n return this.browserStorage.getActiveAccount();\r\n };\r\n // #endregion\r\n // #region Helpers\r\n /**\r\n * Helper to validate app environment before making an auth request\r\n *\r\n * @protected\r\n * @param {InteractionType} interactionType What kind of interaction is being used\r\n * @param {boolean} [setInteractionInProgress=true] Whether to set interaction in progress temp cache flag\r\n */\r\n ClientApplication.prototype.preflightBrowserEnvironmentCheck = function (interactionType, setInteractionInProgress) {\r\n if (setInteractionInProgress === void 0) { setInteractionInProgress = true; }\r\n this.logger.verbose(\"preflightBrowserEnvironmentCheck started\");\r\n // Block request if not in browser environment\r\n BrowserUtils.blockNonBrowserEnvironment(this.isBrowserEnvironment);\r\n // Block redirects if in an iframe\r\n BrowserUtils.blockRedirectInIframe(interactionType, this.config.system.allowRedirectInIframe);\r\n // Block auth requests inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Block redirectUri opened in a popup from calling MSAL APIs\r\n BrowserUtils.blockAcquireTokenInPopups();\r\n // Block token acquisition before initialize has been called if native brokering is enabled\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized(this.config.system.allowNativeBroker, this.initialized);\r\n // Block redirects if memory storage is enabled but storeAuthStateInCookie is not\r\n if (interactionType === InteractionType.Redirect &&\r\n this.config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&\r\n !this.config.cache.storeAuthStateInCookie) {\r\n throw BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError();\r\n }\r\n if (interactionType === InteractionType.Redirect || interactionType === InteractionType.Popup) {\r\n this.preflightInteractiveRequest(setInteractionInProgress);\r\n }\r\n };\r\n /**\r\n * Preflight check for interactive requests\r\n *\r\n * @protected\r\n * @param {boolean} setInteractionInProgress Whether to set interaction in progress temp cache flag\r\n */\r\n ClientApplication.prototype.preflightInteractiveRequest = function (setInteractionInProgress) {\r\n this.logger.verbose(\"preflightInteractiveRequest called, validating app environment\");\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Set interaction in progress temporary cache or throw if alread set.\r\n if (setInteractionInProgress) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n };\r\n /**\r\n * Acquire a token from native device (e.g. WAM)\r\n * @param request\r\n */\r\n ClientApplication.prototype.acquireTokenNative = function (request, apiId, accountId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeClient;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"acquireTokenNative called\");\r\n if (!this.nativeExtensionProvider) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, apiId, this.performanceClient, this.nativeExtensionProvider, accountId || this.getNativeAccountId(request), this.nativeInternalStorage, request.correlationId);\r\n return [2 /*return*/, nativeClient.acquireToken(request)];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns boolean indicating if this request can use the native broker\r\n * @param request\r\n */\r\n ClientApplication.prototype.canUseNative = function (request, accountId) {\r\n this.logger.trace(\"canUseNative called\");\r\n if (!NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider, request.authenticationScheme)) {\r\n this.logger.trace(\"canUseNative: isNativeAvailable returned false, returning false\");\r\n return false;\r\n }\r\n if (request.prompt) {\r\n switch (request.prompt) {\r\n case PromptValue.NONE:\r\n case PromptValue.CONSENT:\r\n case PromptValue.LOGIN:\r\n this.logger.trace(\"canUseNative: prompt is compatible with native flow\");\r\n break;\r\n default:\r\n this.logger.trace(\"canUseNative: prompt = \" + request.prompt + \" is not compatible with native flow, returning false\");\r\n return false;\r\n }\r\n }\r\n if (!accountId && !this.getNativeAccountId(request)) {\r\n this.logger.trace(\"canUseNative: nativeAccountId is not available, returning false\");\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Get the native accountId from the account\r\n * @param request\r\n * @returns\r\n */\r\n ClientApplication.prototype.getNativeAccountId = function (request) {\r\n var account = request.account || this.browserStorage.getAccountInfoByHints(request.loginHint, request.sid) || this.getActiveAccount();\r\n return account && account.nativeAccountId || \"\";\r\n };\r\n /**\r\n * Returns new instance of the Popup Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createPopupClient = function (correlationId) {\r\n return new PopupClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Redirect Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createRedirectClient = function (correlationId) {\r\n return new RedirectClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Iframe Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createSilentIframeClient = function (correlationId) {\r\n return new SilentIframeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.ssoSilent, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Cache Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentCacheClient = function (correlationId) {\r\n return new SilentCacheClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Refresh Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentRefreshClient = function (correlationId) {\r\n return new SilentRefreshClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent AuthCode Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentAuthCodeClient = function (correlationId) {\r\n return new SilentAuthCodeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenByCode, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n ClientApplication.prototype.addEventCallback = function (callback) {\r\n return this.eventHandler.addEventCallback(callback);\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n ClientApplication.prototype.removeEventCallback = function (callbackId) {\r\n this.eventHandler.removeEventCallback(callbackId);\r\n };\r\n /**\r\n * Registers a callback to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n ClientApplication.prototype.addPerformanceCallback = function (callback) {\r\n return this.performanceClient.addPerformanceCallback(callback);\r\n };\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n ClientApplication.prototype.removePerformanceCallback = function (callbackId) {\r\n return this.performanceClient.removePerformanceCallback(callbackId);\r\n };\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n ClientApplication.prototype.enableAccountStorageEvents = function () {\r\n this.eventHandler.enableAccountStorageEvents();\r\n };\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n ClientApplication.prototype.disableAccountStorageEvents = function () {\r\n this.eventHandler.disableAccountStorageEvents();\r\n };\r\n /**\r\n * Gets the token cache for the application.\r\n */\r\n ClientApplication.prototype.getTokenCache = function () {\r\n return this.tokenCache;\r\n };\r\n /**\r\n * Returns the logger instance\r\n */\r\n ClientApplication.prototype.getLogger = function () {\r\n return this.logger;\r\n };\r\n /**\r\n * Replaces the default logger set in configurations with new Logger with new configurations\r\n * @param logger Logger instance\r\n */\r\n ClientApplication.prototype.setLogger = function (logger) {\r\n this.logger = logger;\r\n };\r\n /**\r\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\r\n * @param sku\r\n * @param version\r\n */\r\n ClientApplication.prototype.initializeWrapperLibrary = function (sku, version) {\r\n // Validate the SKU passed in is one we expect\r\n this.browserStorage.setWrapperMetadata(sku, version);\r\n };\r\n /**\r\n * Sets navigation client\r\n * @param navigationClient\r\n */\r\n ClientApplication.prototype.setNavigationClient = function (navigationClient) {\r\n this.navigationClient = navigationClient;\r\n };\r\n /**\r\n * Returns the configuration object\r\n */\r\n ClientApplication.prototype.getConfiguration = function () {\r\n return this.config;\r\n };\r\n /**\r\n * Generates a correlation id for a request if none is provided.\r\n *\r\n * @protected\r\n * @param {?Partial} [request]\r\n * @returns {string}\r\n */\r\n ClientApplication.prototype.getRequestCorrelationId = function (request) {\r\n if (request === null || request === void 0 ? void 0 : request.correlationId) {\r\n return request.correlationId;\r\n }\r\n if (this.isBrowserEnvironment) {\r\n return this.browserCrypto.createNewGuid();\r\n }\r\n /*\r\n * Included for fallback for non-browser environments,\r\n * and to ensure this method always returns a string.\r\n */\r\n return Constants.EMPTY_STRING;\r\n };\r\n return ClientApplication;\r\n}());\n\nexport { ClientApplication };\n//# sourceMappingURL=ClientApplication.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, Constants, ServerError, InteractionRequiredAuthError } from '@azure/msal-common';\nimport { DEFAULT_REQUEST, InteractionType, CacheLookupPolicy, ApiId, BrowserConstants } from '../utils/BrowserConstants.js';\nimport { ClientApplication } from './ClientApplication.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\r\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\r\n */\r\nvar PublicClientApplication = /** @class */ (function (_super) {\r\n __extends(PublicClientApplication, _super);\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration object for the MSAL PublicClientApplication instance\r\n */\r\n function PublicClientApplication(configuration) {\r\n var _this = _super.call(this, configuration) || this;\r\n _this.astsAsyncMeasurement = undefined;\r\n _this.activeSilentTokenRequests = new Map();\r\n // Register listener functions\r\n _this.trackPageVisibility = _this.trackPageVisibility.bind(_this);\r\n return _this;\r\n }\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\r\n * any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n PublicClientApplication.prototype.loginRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"loginRedirect called\", correlationId);\r\n return [2 /*return*/, this.acquireTokenRedirect(__assign({ correlationId: correlationId }, (request || DEFAULT_REQUEST)))];\r\n });\r\n });\r\n };\r\n /**\r\n * Use when initiating the login process via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PublicClientApplication.prototype.loginPopup = function (request) {\r\n var correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"loginPopup called\", correlationId);\r\n return this.acquireTokenPopup(__assign({ correlationId: correlationId }, (request || DEFAULT_REQUEST)));\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Returns currently processing promise if parallel requests are made.\r\n *\r\n * @param {@link (SilentRequest:type)}\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n */\r\n PublicClientApplication.prototype.acquireTokenSilent = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, atsMeasurement, account, thumbprint, silentRequestKey, cachedResponse, response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n atsMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenSilent, correlationId);\r\n atsMeasurement.addStaticFields({\r\n cacheLookupPolicy: request.cacheLookupPolicy\r\n });\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.verbose(\"acquireTokenSilent called\", correlationId);\r\n account = request.account || this.getActiveAccount();\r\n if (!account) {\r\n throw BrowserAuthError.createNoAccountError();\r\n }\r\n thumbprint = {\r\n clientId: this.config.auth.clientId,\r\n authority: request.authority || Constants.EMPTY_STRING,\r\n scopes: request.scopes,\r\n homeAccountIdentifier: account.homeAccountId,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n silentRequestKey = JSON.stringify(thumbprint);\r\n cachedResponse = this.activeSilentTokenRequests.get(silentRequestKey);\r\n if (typeof cachedResponse === \"undefined\") {\r\n this.logger.verbose(\"acquireTokenSilent called for the first time, storing active request\", correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenSilentAsync, correlationId);\r\n response = this.acquireTokenSilentAsync(__assign(__assign({}, request), { correlationId: correlationId }), account)\r\n .then(function (result) {\r\n _this.activeSilentTokenRequests.delete(silentRequestKey);\r\n atsMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atsMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: result.fromCache,\r\n isNativeBroker: result.fromNativeBroker,\r\n cacheLookupPolicy: request.cacheLookupPolicy,\r\n requestId: result.requestId,\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.activeSilentTokenRequests.delete(silentRequestKey);\r\n atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n });\r\n this.activeSilentTokenRequests.set(silentRequestKey, response);\r\n return [2 /*return*/, response];\r\n }\r\n else {\r\n this.logger.verbose(\"acquireTokenSilent has been called previously, returning the result from the first call\", correlationId);\r\n // Discard measurements for memoized calls, as they are usually only a couple of ms and will artificially deflate metrics\r\n atsMeasurement.discardMeasurement();\r\n return [2 /*return*/, cachedResponse];\r\n }\r\n });\r\n });\r\n };\r\n PublicClientApplication.prototype.trackPageVisibility = function () {\r\n if (!this.astsAsyncMeasurement) {\r\n return;\r\n }\r\n this.logger.info(\"Perf: Visibility change detected\");\r\n this.astsAsyncMeasurement.increment({\r\n visibilityChangeCount: 1,\r\n });\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Will use cached token if available, otherwise will attempt to acquire a new token from the network via refresh token.\r\n * @param {@link (SilentRequest:type)}\r\n * @param {@link (AccountInfo:type)}\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse}\r\n */\r\n PublicClientApplication.prototype.acquireTokenSilentAsync = function (request, account) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var result, silentRequest, silentCacheClient, silentRequest_1, requestWithCLP_1;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);\r\n this.astsAsyncMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);\r\n (_a = this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibility);\r\n if (!(NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider, request.authenticationScheme) && account.nativeAccountId)) return [3 /*break*/, 1];\r\n this.logger.verbose(\"acquireTokenSilent - attempting to acquire token from native platform\");\r\n silentRequest = __assign(__assign({}, request), { account: account });\r\n result = this.acquireTokenNative(silentRequest, ApiId.acquireTokenSilent_silentFlow).catch(function (e) { return __awaiter(_this, void 0, void 0, function () {\r\n var silentIframeClient;\r\n return __generator(this, function (_a) {\r\n // If native token acquisition fails for availability reasons fallback to web flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n this.logger.verbose(\"acquireTokenSilent - native platform unavailable, falling back to web flow\");\r\n this.nativeExtensionProvider = undefined; // Prevent future requests from continuing to attempt\r\n silentIframeClient = this.createSilentIframeClient(request.correlationId);\r\n return [2 /*return*/, silentIframeClient.acquireToken(request)];\r\n }\r\n throw e;\r\n });\r\n }); });\r\n return [3 /*break*/, 3];\r\n case 1:\r\n this.logger.verbose(\"acquireTokenSilent - attempting to acquire token from web flow\");\r\n silentCacheClient = this.createSilentCacheClient(request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeSilentRequest, request.correlationId);\r\n return [4 /*yield*/, silentCacheClient.initializeSilentRequest(request, account)];\r\n case 2:\r\n silentRequest_1 = _b.sent();\r\n requestWithCLP_1 = __assign(__assign({}, request), { \r\n // set the request's CacheLookupPolicy to Default if it was not optionally passed in\r\n cacheLookupPolicy: request.cacheLookupPolicy || CacheLookupPolicy.Default });\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenFromCache, silentRequest_1.correlationId);\r\n result = this.acquireTokenFromCache(silentCacheClient, silentRequest_1, requestWithCLP_1).catch(function (cacheError) {\r\n if (requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.AccessToken) {\r\n throw cacheError;\r\n }\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_NETWORK_START, InteractionType.Silent, silentRequest_1);\r\n _this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenByRefreshToken, silentRequest_1.correlationId);\r\n return _this.acquireTokenByRefreshToken(silentRequest_1, requestWithCLP_1).catch(function (refreshTokenError) {\r\n var isServerError = refreshTokenError instanceof ServerError;\r\n var isInteractionRequiredError = refreshTokenError instanceof InteractionRequiredAuthError;\r\n var isInvalidGrantError = (refreshTokenError.errorCode === BrowserConstants.INVALID_GRANT_ERROR);\r\n if ((!isServerError ||\r\n !isInvalidGrantError ||\r\n isInteractionRequiredError ||\r\n requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.AccessTokenAndRefreshToken ||\r\n requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.RefreshToken)\r\n && (requestWithCLP_1.cacheLookupPolicy !== CacheLookupPolicy.Skip)) {\r\n throw refreshTokenError;\r\n }\r\n _this.logger.verbose(\"Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.\", request.correlationId);\r\n _this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenBySilentIframe, silentRequest_1.correlationId);\r\n return _this.acquireTokenBySilentIframe(silentRequest_1);\r\n });\r\n });\r\n _b.label = 3;\r\n case 3: return [2 /*return*/, result.then(function (response) {\r\n var _a;\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, response);\r\n (_a = _this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n success: true,\r\n fromCache: response.fromCache,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (tokenRenewalError) {\r\n var _a;\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Silent, null, tokenRenewalError);\r\n (_a = _this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: tokenRenewalError.errorCode,\r\n subErrorCode: tokenRenewalError.subError,\r\n success: false\r\n });\r\n throw tokenRenewalError;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibility);\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n return PublicClientApplication;\r\n}(ClientApplication));\n\nexport { PublicClientApplication };\n//# sourceMappingURL=PublicClientApplication.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar stubbedPublicClientApplication = {\r\n initialize: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n acquireTokenPopup: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n acquireTokenRedirect: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n acquireTokenSilent: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n acquireTokenByCode: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n getAllAccounts: function () {\r\n return [];\r\n },\r\n getAccountByHomeId: function () {\r\n return null;\r\n },\r\n getAccountByUsername: function () {\r\n return null;\r\n },\r\n getAccountByLocalId: function () {\r\n return null;\r\n },\r\n handleRedirectPromise: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n loginPopup: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n loginRedirect: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n logout: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n logoutRedirect: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n logoutPopup: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n ssoSilent: function () {\r\n return Promise.reject(BrowserConfigurationAuthError.createStubPcaInstanceCalledError());\r\n },\r\n addEventCallback: function () {\r\n return null;\r\n },\r\n removeEventCallback: function () {\r\n return;\r\n },\r\n addPerformanceCallback: function () {\r\n return \"\";\r\n },\r\n removePerformanceCallback: function () {\r\n return false;\r\n },\r\n enableAccountStorageEvents: function () {\r\n return;\r\n },\r\n disableAccountStorageEvents: function () {\r\n return;\r\n },\r\n getTokenCache: function () {\r\n throw BrowserConfigurationAuthError.createStubPcaInstanceCalledError();\r\n },\r\n getLogger: function () {\r\n throw BrowserConfigurationAuthError.createStubPcaInstanceCalledError();\r\n },\r\n setLogger: function () {\r\n return;\r\n },\r\n setActiveAccount: function () {\r\n return;\r\n },\r\n getActiveAccount: function () {\r\n return null;\r\n },\r\n initializeWrapperLibrary: function () {\r\n return;\r\n },\r\n setNavigationClient: function () {\r\n return;\r\n },\r\n getConfiguration: function () {\r\n throw BrowserConfigurationAuthError.createStubPcaInstanceCalledError();\r\n }\r\n};\n\nexport { stubbedPublicClientApplication };\n//# sourceMappingURL=IPublicClientApplication.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { EventType } from './EventType.js';\nimport { InteractionType, InteractionStatus } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventMessageUtils = /** @class */ (function () {\r\n function EventMessageUtils() {\r\n }\r\n /**\r\n * Gets interaction status from event message\r\n * @param message\r\n * @param currentStatus\r\n */\r\n EventMessageUtils.getInteractionStatusFromEvent = function (message, currentStatus) {\r\n switch (message.eventType) {\r\n case EventType.LOGIN_START:\r\n return InteractionStatus.Login;\r\n case EventType.SSO_SILENT_START:\r\n return InteractionStatus.SsoSilent;\r\n case EventType.ACQUIRE_TOKEN_START:\r\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\r\n return InteractionStatus.AcquireToken;\r\n }\r\n break;\r\n case EventType.HANDLE_REDIRECT_START:\r\n return InteractionStatus.HandleRedirect;\r\n case EventType.LOGOUT_START:\r\n return InteractionStatus.Logout;\r\n case EventType.SSO_SILENT_SUCCESS:\r\n case EventType.SSO_SILENT_FAILURE:\r\n if (currentStatus && currentStatus !== InteractionStatus.SsoSilent) {\r\n // Prevent this event from clearing any status other than ssoSilent\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.LOGOUT_END:\r\n if (currentStatus && currentStatus !== InteractionStatus.Logout) {\r\n // Prevent this event from clearing any status other than logout\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.HANDLE_REDIRECT_END:\r\n if (currentStatus && currentStatus !== InteractionStatus.HandleRedirect) {\r\n // Prevent this event from clearing any status other than handleRedirect\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.LOGIN_SUCCESS:\r\n case EventType.LOGIN_FAILURE:\r\n case EventType.ACQUIRE_TOKEN_SUCCESS:\r\n case EventType.ACQUIRE_TOKEN_FAILURE:\r\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\r\n if (currentStatus && currentStatus !== InteractionStatus.Login && currentStatus !== InteractionStatus.AcquireToken) {\r\n // Prevent this event from clearing any status other than login or acquireToken\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n }\r\n break;\r\n }\r\n return null;\r\n };\r\n return EventMessageUtils;\r\n}());\n\nexport { EventMessageUtils };\n//# sourceMappingURL=EventMessage.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { CryptoOps } from './CryptoOps.js';\nimport { Logger, PopTokenGenerator } from '@azure/msal-common';\nimport { name, version } from '../packageMetadata.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SignedHttpRequest = /** @class */ (function () {\r\n function SignedHttpRequest(shrParameters, shrOptions) {\r\n var loggerOptions = (shrOptions && shrOptions.loggerOptions) || {};\r\n this.logger = new Logger(loggerOptions, name, version);\r\n this.cryptoOps = new CryptoOps(this.logger);\r\n this.popTokenGenerator = new PopTokenGenerator(this.cryptoOps);\r\n this.shrParameters = shrParameters;\r\n }\r\n /**\r\n * Generates and caches a keypair for the given request options.\r\n * @returns Public key digest, which should be sent to the token issuer.\r\n */\r\n SignedHttpRequest.prototype.generatePublicKeyThumbprint = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var kid;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.popTokenGenerator.generateKid(this.shrParameters)];\r\n case 1:\r\n kid = (_a.sent()).kid;\r\n return [2 /*return*/, kid];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a signed http request for the given payload with the given key.\r\n * @param payload Payload to sign (e.g. access token)\r\n * @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)\r\n * @param claims Additional claims to include/override in the signed JWT\r\n * @returns Pop token signed with the corresponding private key\r\n */\r\n SignedHttpRequest.prototype.signRequest = function (payload, publicKeyThumbprint, claims) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.popTokenGenerator.signPayload(payload, publicKeyThumbprint, this.shrParameters, claims)];\r\n });\r\n });\r\n };\r\n /**\r\n * Removes cached keys from browser for given public key thumbprint\r\n * @param publicKeyThumbprint Public key digest (from generatePublicKeyThumbprint API)\r\n * @returns If keys are properly deleted\r\n */\r\n SignedHttpRequest.prototype.removeKeys = function (publicKeyThumbprint) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cryptoOps.removeTokenBindingKey(publicKeyThumbprint)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return SignedHttpRequest;\r\n}());\n\nexport { SignedHttpRequest };\n//# sourceMappingURL=SignedHttpRequest.js.map\n","/*! @azure/msal-browser v2.36.0 2023-04-18 */\n'use strict';\nimport * as internals from './internals.js';\nexport { internals };\nexport { PublicClientApplication } from './app/PublicClientApplication.js';\nexport { DEFAULT_IFRAME_TIMEOUT_MS } from './config/Configuration.js';\nexport { ApiId, BrowserCacheLocation, CacheLookupPolicy, InteractionStatus, InteractionType, WrapperSKU } from './utils/BrowserConstants.js';\nexport { BrowserUtils } from './utils/BrowserUtils.js';\nexport { BrowserAuthError, BrowserAuthErrorMessage } from './error/BrowserAuthError.js';\nexport { BrowserConfigurationAuthError, BrowserConfigurationAuthErrorMessage } from './error/BrowserConfigurationAuthError.js';\nexport { stubbedPublicClientApplication } from './app/IPublicClientApplication.js';\nexport { NavigationClient } from './navigation/NavigationClient.js';\nexport { EventMessageUtils } from './event/EventMessage.js';\nexport { EventType } from './event/EventType.js';\nexport { SignedHttpRequest } from './crypto/SignedHttpRequest.js';\nexport { AccountEntity, AuthError, AuthErrorMessage, AuthenticationHeaderParser, AuthenticationScheme, AzureCloudInstance, ClientAuthError, ClientAuthErrorMessage, ClientConfigurationError, ClientConfigurationErrorMessage, InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage, LogLevel, Logger, OIDC_DEFAULT_SCOPES, PerformanceEvents, ProtocolMode, ServerError, StringUtils, UrlString } from '@azure/msal-common';\nexport { version } from './packageMetadata.js';\n//# sourceMappingURL=index.js.map\n","import React__default, { createContext, useEffect, useMemo, useReducer, useContext, useState, useRef, useCallback } from 'react';\nimport { stubbedPublicClientApplication, InteractionStatus, Logger, WrapperSKU, EventMessageUtils, AccountEntity, AuthError, InteractionType, InteractionRequiredAuthError, EventType, OIDC_DEFAULT_SCOPES } from '@azure/msal-browser';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/*\r\n * Stubbed context implementation\r\n * Only used when there is no provider, which is an unsupported scenario\r\n */\n\nconst defaultMsalContext = {\n instance: stubbedPublicClientApplication,\n inProgress: InteractionStatus.None,\n accounts: [],\n logger: /*#__PURE__*/new Logger({})\n};\nconst MsalContext = /*#__PURE__*/createContext(defaultMsalContext);\nconst MsalConsumer = MsalContext.Consumer;\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\nfunction getChildrenOrFunction(children, args) {\n if (typeof children === \"function\") {\n return children(args);\n }\n\n return children;\n}\n/**\r\n * Helper function to determine whether 2 arrays are equal\r\n * Used to avoid unnecessary state updates\r\n * @param arrayA\r\n * @param arrayB\r\n */\n\nfunction accountArraysAreEqual(arrayA, arrayB) {\n if (arrayA.length !== arrayB.length) {\n return false;\n }\n\n const comparisonArray = [...arrayB];\n return arrayA.every(elementA => {\n const elementB = comparisonArray.shift();\n\n if (!elementA || !elementB) {\n return false;\n }\n\n return elementA.homeAccountId === elementB.homeAccountId && elementA.localAccountId === elementB.localAccountId && elementA.username === elementB.username;\n });\n}\nfunction getAccountByIdentifiers(allAccounts, accountIdentifiers) {\n if (allAccounts.length > 0 && (accountIdentifiers.homeAccountId || accountIdentifiers.localAccountId || accountIdentifiers.username)) {\n const matchedAccounts = allAccounts.filter(accountObj => {\n if (accountIdentifiers.username && accountIdentifiers.username.toLowerCase() !== accountObj.username.toLowerCase()) {\n return false;\n }\n\n if (accountIdentifiers.homeAccountId && accountIdentifiers.homeAccountId.toLowerCase() !== accountObj.homeAccountId.toLowerCase()) {\n return false;\n }\n\n if (accountIdentifiers.localAccountId && accountIdentifiers.localAccountId.toLowerCase() !== accountObj.localAccountId.toLowerCase()) {\n return false;\n }\n\n return true;\n });\n return matchedAccounts[0] || null;\n } else {\n return null;\n }\n}\n\n/* eslint-disable header/header */\nconst name = \"@azure/msal-react\";\nconst version = \"1.5.6\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\nvar MsalProviderActionType;\n\n(function (MsalProviderActionType) {\n MsalProviderActionType[\"UNBLOCK_INPROGRESS\"] = \"UNBLOCK_INPROGRESS\";\n MsalProviderActionType[\"EVENT\"] = \"EVENT\";\n})(MsalProviderActionType || (MsalProviderActionType = {}));\n/**\r\n * Returns the next inProgress and accounts state based on event message\r\n * @param previousState\r\n * @param action\r\n */\n\n\nconst reducer = (previousState, action) => {\n const {\n type,\n payload\n } = action;\n let newInProgress = previousState.inProgress;\n\n switch (type) {\n case MsalProviderActionType.UNBLOCK_INPROGRESS:\n if (previousState.inProgress === InteractionStatus.Startup) {\n newInProgress = InteractionStatus.None;\n payload.logger.info(\"MsalProvider - handleRedirectPromise resolved, setting inProgress to 'none'\");\n }\n\n break;\n\n case MsalProviderActionType.EVENT:\n const message = payload.message;\n const status = EventMessageUtils.getInteractionStatusFromEvent(message, previousState.inProgress);\n\n if (status) {\n payload.logger.info(`MsalProvider - ${message.eventType} results in setting inProgress from ${previousState.inProgress} to ${status}`);\n newInProgress = status;\n }\n\n break;\n\n default:\n throw new Error(`Unknown action type: ${type}`);\n }\n\n const currentAccounts = payload.instance.getAllAccounts();\n\n if (newInProgress !== previousState.inProgress && !accountArraysAreEqual(currentAccounts, previousState.accounts)) {\n // Both inProgress and accounts changed\n return { ...previousState,\n inProgress: newInProgress,\n accounts: currentAccounts\n };\n } else if (newInProgress !== previousState.inProgress) {\n // Only only inProgress changed\n return { ...previousState,\n inProgress: newInProgress\n };\n } else if (!accountArraysAreEqual(currentAccounts, previousState.accounts)) {\n // Only accounts changed\n return { ...previousState,\n accounts: currentAccounts\n };\n } else {\n // Nothing changed\n return previousState;\n }\n};\n/**\r\n * MSAL context provider component. This must be rendered above any other components that use MSAL.\r\n */\n\n\nfunction MsalProvider(_ref) {\n let {\n instance,\n children\n } = _ref;\n useEffect(() => {\n instance.initializeWrapperLibrary(WrapperSKU.React, version);\n }, [instance]); // Create a logger instance for msal-react with the same options as PublicClientApplication\n\n const logger = useMemo(() => {\n return instance.getLogger().clone(name, version);\n }, [instance]);\n const [state, updateState] = useReducer(reducer, undefined, () => {\n // Lazy initialization of the initial state\n return {\n inProgress: InteractionStatus.Startup,\n accounts: instance.getAllAccounts()\n };\n });\n useEffect(() => {\n const callbackId = instance.addEventCallback(message => {\n updateState({\n payload: {\n instance,\n logger,\n message\n },\n type: MsalProviderActionType.EVENT\n });\n });\n logger.verbose(`MsalProvider - Registered event callback with id: ${callbackId}`);\n instance.initialize().then(() => {\n instance.handleRedirectPromise().catch(() => {\n // Errors should be handled by listening to the LOGIN_FAILURE event\n return;\n }).finally(() => {\n /*\r\n * If handleRedirectPromise returns a cached promise the necessary events may not be fired\r\n * This is a fallback to prevent inProgress from getting stuck in 'startup'\r\n */\n updateState({\n payload: {\n instance,\n logger\n },\n type: MsalProviderActionType.UNBLOCK_INPROGRESS\n });\n });\n });\n return () => {\n // Remove callback when component unmounts or accounts change\n if (callbackId) {\n logger.verbose(`MsalProvider - Removing event callback ${callbackId}`);\n instance.removeEventCallback(callbackId);\n }\n };\n }, [instance, logger]);\n const contextValue = {\n instance,\n inProgress: state.inProgress,\n accounts: state.accounts,\n logger\n };\n return React__default.createElement(MsalContext.Provider, {\n value: contextValue\n }, children);\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * Returns Msal Context values\r\n */\n\nconst useMsal = () => useContext(MsalContext);\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n\nfunction isAuthenticated(allAccounts, matchAccount) {\n if (matchAccount && (matchAccount.username || matchAccount.homeAccountId || matchAccount.localAccountId)) {\n return !!getAccountByIdentifiers(allAccounts, matchAccount);\n }\n\n return allAccounts.length > 0;\n}\n/**\r\n * Returns whether or not a user is currently signed-in. Optionally provide 1 or more accountIdentifiers to determine if a specific user is signed-in\r\n * @param matchAccount\r\n */\n\n\nfunction useIsAuthenticated(matchAccount) {\n const {\n accounts: allAccounts,\n inProgress\n } = useMsal();\n const [hasAuthenticated, setHasAuthenticated] = useState(() => {\n if (inProgress === InteractionStatus.Startup) {\n return false;\n }\n\n return isAuthenticated(allAccounts, matchAccount);\n });\n useEffect(() => {\n setHasAuthenticated(isAuthenticated(allAccounts, matchAccount));\n }, [allAccounts, matchAccount]);\n return hasAuthenticated;\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * Renders child components if user is authenticated\r\n * @param props\r\n */\n\nfunction AuthenticatedTemplate(_ref) {\n let {\n username,\n homeAccountId,\n localAccountId,\n children\n } = _ref;\n const context = useMsal();\n const accountIdentifier = useMemo(() => {\n return {\n username,\n homeAccountId,\n localAccountId\n };\n }, [username, homeAccountId, localAccountId]);\n const isAuthenticated = useIsAuthenticated(accountIdentifier);\n\n if (isAuthenticated && context.inProgress !== InteractionStatus.Startup) {\n return React__default.createElement(React__default.Fragment, null, getChildrenOrFunction(children, context));\n }\n\n return null;\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * Renders child components if user is unauthenticated\r\n * @param props\r\n */\n\nfunction UnauthenticatedTemplate(_ref) {\n let {\n username,\n homeAccountId,\n localAccountId,\n children\n } = _ref;\n const context = useMsal();\n const accountIdentifier = useMemo(() => {\n return {\n username,\n homeAccountId,\n localAccountId\n };\n }, [username, homeAccountId, localAccountId]);\n const isAuthenticated = useIsAuthenticated(accountIdentifier);\n\n if (!isAuthenticated && context.inProgress !== InteractionStatus.Startup && context.inProgress !== InteractionStatus.HandleRedirect) {\n return React__default.createElement(React__default.Fragment, null, getChildrenOrFunction(children, context));\n }\n\n return null;\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n\nfunction getAccount(instance, accountIdentifiers) {\n if (!accountIdentifiers || !accountIdentifiers.homeAccountId && !accountIdentifiers.localAccountId && !accountIdentifiers.username) {\n // If no account identifiers are provided, return active account\n return instance.getActiveAccount();\n }\n\n return getAccountByIdentifiers(instance.getAllAccounts(), accountIdentifiers);\n}\n/**\r\n * Given 1 or more accountIdentifiers, returns the Account object if the user is signed-in\r\n * @param accountIdentifiers\r\n */\n\n\nfunction useAccount(accountIdentifiers) {\n const {\n instance,\n inProgress,\n logger\n } = useMsal();\n const [account, setAccount] = useState(() => getAccount(instance, accountIdentifiers));\n useEffect(() => {\n setAccount(currentAccount => {\n const nextAccount = getAccount(instance, accountIdentifiers);\n\n if (!AccountEntity.accountInfoIsEqual(currentAccount, nextAccount, true)) {\n logger.info(\"useAccount - Updating account\");\n return nextAccount;\n }\n\n return currentAccount;\n });\n }, [inProgress, accountIdentifiers, instance, logger]);\n return account;\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\nconst ReactAuthErrorMessage = {\n invalidInteractionType: {\n code: \"invalid_interaction_type\",\n desc: \"The provided interaction type is invalid.\"\n },\n unableToFallbackToInteraction: {\n code: \"unable_to_fallback_to_interaction\",\n desc: \"Interaction is required but another interaction is already in progress. Please try again when the current interaction is complete.\"\n }\n};\nclass ReactAuthError extends AuthError {\n constructor(errorCode, errorMessage) {\n super(errorCode, errorMessage);\n Object.setPrototypeOf(this, ReactAuthError.prototype);\n this.name = \"ReactAuthError\";\n }\n\n static createInvalidInteractionTypeError() {\n return new ReactAuthError(ReactAuthErrorMessage.invalidInteractionType.code, ReactAuthErrorMessage.invalidInteractionType.desc);\n }\n\n static createUnableToFallbackToInteractionError() {\n return new ReactAuthError(ReactAuthErrorMessage.unableToFallbackToInteraction.code, ReactAuthErrorMessage.unableToFallbackToInteraction.desc);\n }\n\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * If a user is not currently signed in this hook invokes a login. Failed logins can be retried using the login callback returned.\r\n * If a user is currently signed in this hook attempts to acquire a token. Subsequent token requests can use the acquireToken callback returned.\r\n * Optionally provide a request object to be used in the login/acquireToken call.\r\n * Optionally provide a specific user that should be logged in.\r\n * @param interactionType\r\n * @param authenticationRequest\r\n * @param accountIdentifiers\r\n */\n\nfunction useMsalAuthentication(interactionType, authenticationRequest, accountIdentifiers) {\n const {\n instance,\n inProgress,\n logger\n } = useMsal();\n const isAuthenticated = useIsAuthenticated(accountIdentifiers);\n const account = useAccount(accountIdentifiers);\n const [[result, error], setResponse] = useState([null, null]); // Used to prevent state updates after unmount\n\n const mounted = useRef(true);\n useEffect(() => {\n return () => {\n mounted.current = false;\n };\n }, []); // Boolean used to check if interaction is in progress in acquireTokenSilent fallback. Use Ref instead of state to prevent acquireToken function from being regenerated on each change to interactionInProgress value\n\n const interactionInProgress = useRef(inProgress !== InteractionStatus.None);\n useEffect(() => {\n interactionInProgress.current = inProgress !== InteractionStatus.None;\n }, [inProgress]); // Flag used to control when the hook calls login/acquireToken\n\n const shouldAcquireToken = useRef(true);\n useEffect(() => {\n if (!!error) {\n // Errors should be handled by consuming component\n shouldAcquireToken.current = false;\n return;\n }\n\n if (!!result) {\n // Token has already been acquired, consuming component/application is responsible for renewing\n shouldAcquireToken.current = false;\n return;\n }\n }, [error, result]);\n const login = useCallback(async (callbackInteractionType, callbackRequest) => {\n const loginType = callbackInteractionType || interactionType;\n const loginRequest = callbackRequest || authenticationRequest;\n\n switch (loginType) {\n case InteractionType.Popup:\n logger.verbose(\"useMsalAuthentication - Calling loginPopup\");\n return instance.loginPopup(loginRequest);\n\n case InteractionType.Redirect:\n // This promise is not expected to resolve due to full frame redirect\n logger.verbose(\"useMsalAuthentication - Calling loginRedirect\");\n return instance.loginRedirect(loginRequest).then(null);\n\n case InteractionType.Silent:\n logger.verbose(\"useMsalAuthentication - Calling ssoSilent\");\n return instance.ssoSilent(loginRequest);\n\n default:\n throw ReactAuthError.createInvalidInteractionTypeError();\n }\n }, [instance, interactionType, authenticationRequest, logger]);\n const acquireToken = useCallback(async (callbackInteractionType, callbackRequest) => {\n const fallbackInteractionType = callbackInteractionType || interactionType;\n let tokenRequest;\n\n if (callbackRequest) {\n logger.trace(\"useMsalAuthentication - acquireToken - Using request provided in the callback\");\n tokenRequest = { ...callbackRequest\n };\n } else if (authenticationRequest) {\n logger.trace(\"useMsalAuthentication - acquireToken - Using request provided in the hook\");\n tokenRequest = { ...authenticationRequest,\n scopes: authenticationRequest.scopes || OIDC_DEFAULT_SCOPES\n };\n } else {\n logger.trace(\"useMsalAuthentication - acquireToken - No request object provided, using default request.\");\n tokenRequest = {\n scopes: OIDC_DEFAULT_SCOPES\n };\n }\n\n if (!tokenRequest.account && account) {\n logger.trace(\"useMsalAuthentication - acquireToken - Attaching account to request\");\n tokenRequest.account = account;\n }\n\n const getToken = async () => {\n logger.verbose(\"useMsalAuthentication - Calling acquireTokenSilent\");\n return instance.acquireTokenSilent(tokenRequest).catch(async e => {\n if (e instanceof InteractionRequiredAuthError) {\n if (!interactionInProgress.current) {\n logger.error(\"useMsalAuthentication - Interaction required, falling back to interaction\");\n return login(fallbackInteractionType, tokenRequest);\n } else {\n logger.error(\"useMsalAuthentication - Interaction required but is already in progress. Please try again, if needed, after interaction completes.\");\n throw ReactAuthError.createUnableToFallbackToInteractionError();\n }\n }\n\n throw e;\n });\n };\n\n return getToken().then(response => {\n if (mounted.current) {\n setResponse([response, null]);\n }\n\n return response;\n }).catch(e => {\n if (mounted.current) {\n setResponse([null, e]);\n }\n\n throw e;\n });\n }, [instance, interactionType, authenticationRequest, logger, account, login]);\n useEffect(() => {\n const callbackId = instance.addEventCallback(message => {\n switch (message.eventType) {\n case EventType.LOGIN_SUCCESS:\n case EventType.SSO_SILENT_SUCCESS:\n if (message.payload) {\n setResponse([message.payload, null]);\n }\n\n break;\n\n case EventType.LOGIN_FAILURE:\n case EventType.SSO_SILENT_FAILURE:\n if (message.error) {\n setResponse([null, message.error]);\n }\n\n break;\n }\n });\n logger.verbose(`useMsalAuthentication - Registered event callback with id: ${callbackId}`);\n return () => {\n if (callbackId) {\n logger.verbose(`useMsalAuthentication - Removing event callback ${callbackId}`);\n instance.removeEventCallback(callbackId);\n }\n };\n }, [instance, logger]);\n useEffect(() => {\n if (shouldAcquireToken.current && inProgress === InteractionStatus.None) {\n shouldAcquireToken.current = false;\n\n if (!isAuthenticated) {\n logger.info(\"useMsalAuthentication - No user is authenticated, attempting to login\");\n login().catch(() => {\n // Errors are saved in state above\n return;\n });\n } else if (account) {\n logger.info(\"useMsalAuthentication - User is authenticated, attempting to acquire token\");\n acquireToken().catch(() => {\n // Errors are saved in state above\n return;\n });\n }\n }\n }, [isAuthenticated, account, inProgress, login, acquireToken, logger]);\n return {\n login,\n acquireToken,\n result,\n error\n };\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * Attempts to authenticate user if not already authenticated, then renders child components\r\n * @param props\r\n */\n\nfunction MsalAuthenticationTemplate(_ref) {\n let {\n interactionType,\n username,\n homeAccountId,\n localAccountId,\n authenticationRequest,\n loadingComponent: LoadingComponent,\n errorComponent: ErrorComponent,\n children\n } = _ref;\n const accountIdentifier = useMemo(() => {\n return {\n username,\n homeAccountId,\n localAccountId\n };\n }, [username, homeAccountId, localAccountId]);\n const context = useMsal();\n const msalAuthResult = useMsalAuthentication(interactionType, authenticationRequest, accountIdentifier);\n const isAuthenticated = useIsAuthenticated(accountIdentifier);\n\n if (msalAuthResult.error && context.inProgress === InteractionStatus.None) {\n if (!!ErrorComponent) {\n return React__default.createElement(ErrorComponent, Object.assign({}, msalAuthResult));\n }\n\n throw msalAuthResult.error;\n }\n\n if (isAuthenticated) {\n return React__default.createElement(React__default.Fragment, null, getChildrenOrFunction(children, msalAuthResult));\n }\n\n if (!!LoadingComponent && context.inProgress !== InteractionStatus.None) {\n return React__default.createElement(LoadingComponent, Object.assign({}, context));\n }\n\n return null;\n}\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n/**\r\n * Higher order component wraps provided component with msal by injecting msal context values into the component's props\r\n * @param Component\r\n */\n\nconst withMsal = Component => {\n const ComponentWithMsal = props => {\n const msal = useMsal();\n return React__default.createElement(Component, Object.assign({}, props, {\n msalContext: msal\n }));\n };\n\n const componentName = Component.displayName || Component.name || \"Component\";\n ComponentWithMsal.displayName = `withMsal(${componentName})`;\n return ComponentWithMsal;\n};\n\nexport { AuthenticatedTemplate, MsalAuthenticationTemplate, MsalConsumer, MsalContext, MsalProvider, UnauthenticatedTemplate, useAccount, useIsAuthenticated, useMsal, useMsalAuthentication, version, withMsal };\n//# sourceMappingURL=msal-react.esm.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var t,e=require(\"@azure/msal-browser\"),r=require(\"@azure/msal-react\");exports.InteractionStatusText=void 0,(t=exports.InteractionStatusText||(exports.InteractionStatusText={})).Startup=\"Initialising...\",t.Checking=\"Checking your login details...\",t.Login=\"Logging in...\",t.Logout=\"Logging out...\";exports.useMsalProgressStatus=()=>{const{inProgress:t}=r.useMsal();switch(t){case e.InteractionStatus.Startup:case e.InteractionStatus.HandleRedirect:return exports.InteractionStatusText.Startup;case e.InteractionStatus.AcquireToken:case e.InteractionStatus.SsoSilent:return exports.InteractionStatusText.Checking;case e.InteractionStatus.Login:return exports.InteractionStatusText.Login;case e.InteractionStatus.Logout:return exports.InteractionStatusText.Logout;case e.InteractionStatus.None:default:return null}};\n//# sourceMappingURL=useMsalProgressStatus.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e=require(\"@azure/msal-browser\");let r,t,o,c;const n=(r,t)=>(r=>{switch(r){case e.LogLevel.Warning:return console.warn;case e.LogLevel.Error:return console.error;case e.LogLevel.Trace:case e.LogLevel.Verbose:return console.debug;case e.LogLevel.Info:default:return console.log}})(r)(t),a=()=>{if(t)return t;throw new Error(\"MSAL has not been configured. Call `configure` first.\")},s=async()=>{const e=a(),r=e.getActiveAccount();if(r)return r;const t=e.getAllAccounts();if(t.length)return t[0];const o=await e.handleRedirectPromise();return o?.account?o.account:void 0};exports.getAccessToken=async(r=!1,t)=>{const n=e=>{if(r)throw t&&t(u),new Error(e)},i=await s();if(!i)return n(\"Could not acquire an access token - there is no logged in account\");const u=a();try{return(await u.acquireTokenSilent({...o,account:i}))?.accessToken??n(\"Failed to acquire an access token\")}catch(n){if(!(n instanceof e.AuthError))throw n;t&&t(u);const a=await u.handleRedirectPromise();if(a?.accessToken)return a.accessToken;r&&(e.InteractionRequiredAuthError.isInteractionRequiredError(n.errorCode,n.errorMessage,n.subError)?await u.acquireTokenRedirect(o):await u.logoutRedirect(c))}},exports.getActiveAccount=s,exports.getAppInstance=a,exports.getMsalInstance=a=>{const{scopes:s,cacheLocation:i,logLevel:u,postAuthenticateRedirectUrl:l,redirectUri:g,extraQueryParameters:d,...h}=a;return r={auth:{redirectUri:g||l,postLogoutRedirectUri:l||g,navigateToLoginRequestUrl:!0,...h},cache:{cacheLocation:i??e.BrowserCacheLocation.LocalStorage},system:{loggerOptions:{loggerCallback:n,logLevel:u??e.LogLevel.Warning}}},o={scopes:s,authenticationScheme:e.AuthenticationScheme.BEARER,redirectUri:g||l||void 0,extraQueryParameters:d},c={postLogoutRedirectUri:l||g||void 0,extraQueryParameters:{client_id:r.auth.clientId}},t=new e.PublicClientApplication(r),t},exports.login=async e=>{const{resetInteractionInProgressStatus:r,...t}=e||{},c=a();if(r){c.browserStorage.isInteractionInProgress(!0)&&c.browserStorage.setInteractionInProgress(!1)}return await c.handleRedirectPromise(),c.loginRedirect({...o,...t})},exports.logout=async e=>{const r=a();await r.logoutRedirect({...c,...e||{}})};\n//# sourceMappingURL=authenticator.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e=require(\"react/jsx-runtime\"),r=require(\"./authenticator.js\"),t=require(\"./useMsalProgressStatus.js\"),s=require(\"@azure/msal-browser\"),n=require(\"@azure/msal-react\"),i=require(\"react\");const o=({renderSpinner:r,renderError:o,config:a,children:c})=>{const{login:u,error:l}=n.useMsalAuthentication(s.InteractionType.Silent,a),{accounts:d,inProgress:g,instance:h}=n.useMsal(),v=t.useMsalProgressStatus();return i.useEffect((()=>{(l||g===s.InteractionStatus.None)&&u(s.InteractionType.Redirect,a)}),[l]),i.useEffect((()=>{d.length&&h.setActiveAccount(d[0])}),[d]),v||!d.length?r(v??t.InteractionStatusText.Login):l&&o?o(l?.errorMessage??l.message,l?.errorCode):e.jsx(e.Fragment,{children:c},void 0)};exports.AuthenticationProvider=t=>{const s=r.getMsalInstance(t.config);return e.jsx(n.MsalProvider,{instance:s,children:e.jsx(o,{...t},void 0)},void 0)},exports.AuthenticationProviderBase=o;\n//# sourceMappingURL=AuthenticationProvider.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0}),require(\"../msal/useMsalProgressStatus.js\");var e=require(\"../msal/authenticator.js\");require(\"react/jsx-runtime\"),require(\"@azure/msal-browser\"),require(\"@azure/msal-react\"),require(\"react\");exports.AuthorizationMiddleware=class{noAuthHeader;constructor(e){this.noAuthHeader=e}onFulfilled=async r=>{if(this.noAuthHeader&&\"object\"==typeof r.headers&&r.headers.hasOwnProperty(this.noAuthHeader))return delete r.headers[this.noAuthHeader],r;const t=await e.getAccessToken(!0);return r.headers&&t&&(r.headers.Authorization=`Bearer ${t}`),r}};\n//# sourceMappingURL=authorization.middleware.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});exports.getErrorDetails=e=>{if(\"object\"==typeof e&&null!==e){return Object.keys(e).map((t=>e[t])).join(\"/n\")}return e};\n//# sourceMappingURL=utils.js.map\n","// Axios v1.6.8 Copyright (c) 2024 Matt Zabriskie and contributors\n'use strict';\n\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n};\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n};\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n };\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n};\n\nconst noop = () => {};\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n};\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz';\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n};\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0];\n }\n\n return str;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n };\n\n return visit(obj, 0);\n};\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nvar utils$1 = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils$1.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils$1.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype$1 = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype$1, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype$1);\n\n utils$1.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\n// eslint-disable-next-line strict\nvar httpAdapter = null;\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils$1.isPlainObject(thing) || utils$1.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils$1.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils$1.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils$1.toFlatObject(utils$1, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils$1.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils$1.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils$1.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils$1.isSpecCompliantForm(formData);\n\n if (!utils$1.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils$1.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils$1.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils$1.isArrayBuffer(value) || utils$1.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils$1.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils$1.isArray(value) && isFlatArray(value)) ||\n ((utils$1.isFileList(value) || utils$1.endsWith(key, '[]')) && (arr = utils$1.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils$1.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils$1.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils$1.forEach(value, function each(el, key) {\n const result = !(utils$1.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils$1.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils$1.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode$1(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode$1);\n } : encode$1;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils$1.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils$1.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nvar InterceptorManager$1 = InterceptorManager;\n\nvar transitionalDefaults = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\nvar URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n\nvar FormData$1 = typeof FormData !== 'undefined' ? FormData : null;\n\nvar Blob$1 = typeof Blob !== 'undefined' ? Blob : null;\n\nvar platform$1 = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams$1,\n FormData: FormData$1,\n Blob: Blob$1\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nvar utils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hasBrowserEnv: hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv: hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv: hasStandardBrowserEnv\n});\n\nvar platform = {\n ...utils,\n ...platform$1\n};\n\nfunction toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils$1.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils$1.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils$1.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils$1.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils$1.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils$1.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils$1.isFormData(formData) && utils$1.isFunction(formData.entries)) {\n const obj = {};\n\n utils$1.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils$1.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils$1.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils$1.isObject(data);\n\n if (isObjectPayload && utils$1.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils$1.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils$1.isArrayBuffer(data) ||\n utils$1.isBuffer(data) ||\n utils$1.isStream(data) ||\n utils$1.isFile(data) ||\n utils$1.isBlob(data)\n ) {\n return data;\n }\n if (utils$1.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils$1.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils$1.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils$1.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils$1.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nvar defaults$1 = defaults;\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils$1.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nvar parseHeaders = rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils$1.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils$1.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils$1.isString(value)) return;\n\n if (utils$1.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils$1.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils$1.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils$1.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils$1.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils$1.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if(utils$1.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils$1.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils$1.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils$1.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils$1.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils$1.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils$1.forEach(this, (value, header) => {\n const key = utils$1.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils$1.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils$1.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils$1.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils$1.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils$1.freezeMethods(AxiosHeaders);\n\nvar AxiosHeaders$1 = AxiosHeaders;\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n const config = this || defaults$1;\n const context = response || config;\n const headers = AxiosHeaders$1.from(context.headers);\n let data = context.data;\n\n utils$1.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils$1.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\nvar cookies = platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils$1.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils$1.isString(path) && cookie.push('path=' + path);\n\n utils$1.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\nvar isURLSameOrigin = platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils$1.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nvar xhrAdapter = isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders$1.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils$1.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders$1.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils$1.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils$1.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils$1.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n};\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n};\n\nutils$1.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils$1.isFunction(adapter) || adapter === null || adapter === false;\n\nvar adapters = {\n getAdapter: (adapters) => {\n adapters = utils$1.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n};\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders$1.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders$1.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders$1.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {\n return utils$1.merge.call({caseless}, target, source);\n } else if (utils$1.isPlainObject(source)) {\n return utils$1.merge({}, source);\n } else if (utils$1.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils$1.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils$1.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils$1.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n\nconst VERSION = \"1.6.8\";\n\nconst validators$1 = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators$1[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators$1.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nvar validator = {\n assertOptions,\n validators: validators$1\n};\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager$1(),\n response: new InterceptorManager$1()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack;\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils$1.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils$1.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils$1.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders$1.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils$1.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils$1.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nvar Axios$1 = Axios;\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nvar CancelToken$1 = CancelToken;\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n return utils$1.isObject(payload) && (payload.isAxiosError === true);\n}\n\nconst HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nvar HttpStatusCode$1 = HttpStatusCode;\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios$1(defaultConfig);\n const instance = bind(Axios$1.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils$1.extend(instance, Axios$1.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils$1.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults$1);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios$1;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken$1;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders$1;\n\naxios.formToJSON = thing => formDataToJSON(utils$1.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode$1;\n\naxios.default = axios;\n\nmodule.exports = axios;\n//# sourceMappingURL=axios.cjs.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var t=require(\"./utils.js\"),e=require(\"axios\");class r extends e.AxiosError{httpStatusCode;detail;traceId;constructor(e,r,s,i){super(r),this.httpStatusCode=e,this.message=r,this.traceId=i,this.detail=t.getErrorDetails(s)}}exports.HttpError=r;\n//# sourceMappingURL=HttpError.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var r=require(\"./HttpError.js\"),e=require(\"axios\");class t extends r.HttpError{constructor(r,t){const o=r?\"A validation error occurred.\":\"A request error occurred.\";super(e.HttpStatusCode.BadRequest,o,r,t)}}exports.RequestError=t;\n//# sourceMappingURL=RequestError.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var r=require(\"./HttpError.js\");class e extends r.HttpError{constructor(r,e,t){super(r,\"Service is not available.\",e,t)}}exports.ServerError=e;\n//# sourceMappingURL=ServerError.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var r=require(\"./HttpError.js\"),e=require(\"axios\");class t extends r.HttpError{constructor(r,t){super(e.HttpStatusCode.NotFound,\"Resource not found.\",r,t)}}exports.NotFoundError=t;\n//# sourceMappingURL=NotFoundError.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var r=require(\"./HttpError.js\");class t extends r.HttpError{constructor(r,t,e){super(r,\"An authorisation error occurred: you are not permitted to perform this action.\",t,e)}}exports.AuthorisationError=t;\n//# sourceMappingURL=AuthorisationError.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var r=require(\"../errors/HttpError.js\"),e=require(\"../errors/RequestError.js\"),t=require(\"../errors/ServerError.js\"),s=require(\"../errors/NotFoundError.js\"),o=require(\"../errors/AuthorisationError.js\"),a=require(\"axios\");exports.DefaultExceptionFilterMiddleware=class{traceId;constructor(r){this.traceId=r}onRejected=u=>{if(u.response?.status){if(u.response?.status>=a.HttpStatusCode.InternalServerError)throw new t.ServerError(u.response?.status,u.response?.data,this.traceId);if(u.response.status===a.HttpStatusCode.NotFound)throw new s.NotFoundError(u.response?.data,this.traceId);if(u.response.status===a.HttpStatusCode.BadRequest)return Promise.reject(new e.RequestError(u.response?.data,this.traceId));if(u.response.status===a.HttpStatusCode.Unauthorized||u.response.status===a.HttpStatusCode.Forbidden)return Promise.reject(new o.AuthorisationError(u.response?.status,u.response?.data,this.traceId));throw new r.HttpError(u.response?.status,u.response?.statusText,u.response?.data,this.traceId)}throw u}};\n//# sourceMappingURL=default-exception-filter.middleware.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});exports.Logger=class{constructor(e){this.applicationName=e??\"@bps/http-client\"}applicationName;info=(e,...o)=>{console.info(`[${this.applicationName}] ${e}`,...o)};warn=(e,...o)=>{console.warn(`[${this.applicationName}] ${e}`,...o)};debug=(e,...o)=>{console.debug(`[${this.applicationName}] ${e}`,...o)};error=(e,o,...a)=>{console.error(o,`[${this.applicationName}] ${e}`,...a)}};\n//# sourceMappingURL=logger.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});exports.CONTENT_TYPE=\"application/json\",exports.CONTENT_TYPE_HEADER=\"Content-Type\";\n//# sourceMappingURL=axios-helper.constants.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e=require(\"../logger/logger.js\"),s=require(\"./axios-helper.constants.js\");function t(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var i=t(require(\"axios\"));exports.AxiosHelperBase=class{endpoints;middlewares;logger;_axios=i.default;constructor(s,t,i=new e.Logger){this.endpoints=s,this.middlewares=t,this.logger=i,this.logger.info(\"AxiosHelper initialized.\")}initialize=()=>{const e={};for(const s in this.endpoints)e[s]=this.axiosInstanceCreator()(this.endpoints[s],s);return e};axiosInstanceCreator=()=>(e,t)=>{const i=this._axios.create(Object.assign({headers:{Accept:s.CONTENT_TYPE,[s.CONTENT_TYPE_HEADER]:s.CONTENT_TYPE},responseType:\"json\"},e));return(this.middlewares?.request??[]).map((e=>i.interceptors.request.use(e.onFulfilled,e.onRejected))),(this.middlewares?.respond??[])?.map((e=>i.interceptors.response.use(e.onFulfilled,e.onRejected))),this.logger.info(`Axios ${t} instance created.`),i}};\n//# sourceMappingURL=axios-helper-base.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var e=require(\"../middleware/authorization.middleware.js\"),r=require(\"../middleware/default-exception-filter.middleware.js\"),t=require(\"./axios-helper-base.js\");class s extends t.AxiosHelperBase{constructor(t,s,i){const d=[new e.AuthorizationMiddleware(i?.noAuthHeader),...s?.request??[]];super(t,{respond:[new r.DefaultExceptionFilterMiddleware(i?.traceId),...s?.respond??[]],request:d})}}exports.AxiosHelper=s;\n//# sourceMappingURL=axios-helper.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var r=require(\"./HttpError.js\");class e extends r.HttpError{constructor(r,e,t){super(r,\"Data conflict error occurred.\",e,t)}}exports.ConflictError=e;\n//# sourceMappingURL=ConflictError.js.map\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var r=require(\"./msal/useMsalProgressStatus.js\"),e=require(\"./msal/authenticator.js\"),t=require(\"./msal/AuthenticationProvider.js\"),o=require(\"./axios-helper/axios-helper.js\"),s=require(\"./axios-helper/axios-helper-base.js\"),i=require(\"axios\"),a=require(\"./axios-helper/axios-helper.constants.js\"),u=require(\"./middleware/authorization.middleware.js\"),n=require(\"./middleware/default-exception-filter.middleware.js\"),p=require(\"./logger/logger.js\"),l=require(\"./errors/HttpError.js\"),x=require(\"./errors/ConflictError.js\"),c=require(\"./errors/RequestError.js\"),E=require(\"./errors/ServerError.js\"),d=require(\"./errors/utils.js\"),g=require(\"./errors/NotFoundError.js\"),A=require(\"./errors/AuthorisationError.js\"),j=require(\"@azure/msal-react\");Object.defineProperty(exports,\"InteractionStatusText\",{enumerable:!0,get:function(){return r.InteractionStatusText}}),exports.useMsalProgressStatus=r.useMsalProgressStatus,exports.getAccessToken=e.getAccessToken,exports.getActiveAccount=e.getActiveAccount,exports.getAppInstance=e.getAppInstance,exports.getMsalInstance=e.getMsalInstance,exports.login=e.login,exports.logout=e.logout,exports.AuthenticationProvider=t.AuthenticationProvider,exports.AuthenticationProviderBase=t.AuthenticationProviderBase,exports.AxiosHelper=o.AxiosHelper,exports.AxiosHelperBase=s.AxiosHelperBase,Object.defineProperty(exports,\"AxiosError\",{enumerable:!0,get:function(){return i.AxiosError}}),Object.defineProperty(exports,\"HttpStatusCode\",{enumerable:!0,get:function(){return i.HttpStatusCode}}),exports.CONTENT_TYPE=a.CONTENT_TYPE,exports.CONTENT_TYPE_HEADER=a.CONTENT_TYPE_HEADER,exports.AuthorizationMiddleware=u.AuthorizationMiddleware,exports.DefaultExceptionFilterMiddleware=n.DefaultExceptionFilterMiddleware,exports.Logger=p.Logger,exports.HttpError=l.HttpError,exports.ConflictError=x.ConflictError,exports.RequestError=c.RequestError,exports.ServerError=E.ServerError,exports.getErrorDetails=d.getErrorDetails,exports.NotFoundError=g.NotFoundError,exports.AuthorisationError=A.AuthorisationError,Object.keys(j).forEach((function(r){\"default\"===r||exports.hasOwnProperty(r)||Object.defineProperty(exports,r,{enumerable:!0,get:function(){return j[r]}})}));\n//# sourceMappingURL=index.js.map\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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export var Subscribable = /*#__PURE__*/function () {\n function Subscribable() {\n this.listeners = [];\n }\n\n var _proto = Subscribable.prototype;\n\n _proto.subscribe = function subscribe(listener) {\n var _this = this;\n\n var callback = listener || function () {\n return undefined;\n };\n\n this.listeners.push(callback);\n this.onSubscribe();\n return function () {\n _this.listeners = _this.listeners.filter(function (x) {\n return x !== callback;\n });\n\n _this.onUnsubscribe();\n };\n };\n\n _proto.hasListeners = function hasListeners() {\n return this.listeners.length > 0;\n };\n\n _proto.onSubscribe = function onSubscribe() {// Do nothing\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {// Do nothing\n };\n\n return Subscribable;\n}();","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// TYPES\n// UTILS\nexport var isServer = typeof window === 'undefined';\nexport function noop() {\n return undefined;\n}\nexport function functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nexport function isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nexport function ensureQueryKeyArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function difference(array1, array2) {\n return array1.filter(function (x) {\n return array2.indexOf(x) === -1;\n });\n}\nexport function replaceAt(array, index, value) {\n var copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nexport function timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nexport function parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n queryKey: arg1,\n queryFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n queryKey: arg1\n });\n}\nexport function parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return _extends({}, arg3, {\n mutationKey: arg1,\n mutationFn: arg2\n });\n }\n\n return _extends({}, arg2, {\n mutationKey: arg1\n });\n }\n\n if (typeof arg1 === 'function') {\n return _extends({}, arg2, {\n mutationFn: arg1\n });\n }\n\n return _extends({}, arg1);\n}\nexport function parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [_extends({}, arg2, {\n queryKey: arg1\n }), arg3] : [arg1 || {}, arg2];\n}\nexport function parseMutationFilterArgs(arg1, arg2) {\n return isQueryKey(arg1) ? _extends({}, arg2, {\n mutationKey: arg1\n }) : arg1;\n}\nexport function mapQueryStatusFilter(active, inactive) {\n if (active === true && inactive === true || active == null && inactive == null) {\n return 'all';\n } else if (active === false && inactive === false) {\n return 'none';\n } else {\n // At this point, active|inactive can only be true|false or false|true\n // so, when only one value is provided, the missing one has to be the negated value\n var isActive = active != null ? active : !inactive;\n return isActive ? 'active' : 'inactive';\n }\n}\nexport function matchQuery(filters, query) {\n var active = filters.active,\n exact = filters.exact,\n fetching = filters.fetching,\n inactive = filters.inactive,\n predicate = filters.predicate,\n queryKey = filters.queryKey,\n stale = filters.stale;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n var queryStatusFilter = mapQueryStatusFilter(active, inactive);\n\n if (queryStatusFilter === 'none') {\n return false;\n } else if (queryStatusFilter !== 'all') {\n var isActive = query.isActive();\n\n if (queryStatusFilter === 'active' && !isActive) {\n return false;\n }\n\n if (queryStatusFilter === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetching === 'boolean' && query.isFetching() !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nexport function matchMutation(filters, mutation) {\n var exact = filters.exact,\n fetching = filters.fetching,\n predicate = filters.predicate,\n mutationKey = filters.mutationKey;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nexport function hashQueryKeyByOptions(queryKey, options) {\n var hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n */\n\nexport function hashQueryKey(queryKey) {\n var asArray = ensureQueryKeyArray(queryKey);\n return stableValueHash(asArray);\n}\n/**\n * Hashes the value into a stable hash.\n */\n\nexport function stableValueHash(value) {\n return JSON.stringify(value, function (_, val) {\n return isPlainObject(val) ? Object.keys(val).sort().reduce(function (result, key) {\n result[key] = val[key];\n return result;\n }, {}) : val;\n });\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nexport function partialMatchKey(a, b) {\n return partialDeepEqual(ensureQueryKeyArray(a), ensureQueryKeyArray(b));\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nexport function partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(function (key) {\n return !partialDeepEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nexport function replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n var array = Array.isArray(a) && Array.isArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n var aSize = array ? a.length : Object.keys(a).length;\n var bItems = array ? b : Object.keys(b);\n var bSize = bItems.length;\n var copy = array ? [] : {};\n var equalItems = 0;\n\n for (var i = 0; i < bSize; i++) {\n var key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nexport function shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (var key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nexport function isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n var ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n var prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nexport function isQueryKey(value) {\n return typeof value === 'string' || Array.isArray(value);\n}\nexport function isError(value) {\n return value instanceof Error;\n}\nexport function sleep(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nexport function scheduleMicrotask(callback) {\n Promise.resolve().then(callback).catch(function (error) {\n return setTimeout(function () {\n throw error;\n });\n });\n}\nexport function getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var FocusManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(FocusManager, _Subscribable);\n\n function FocusManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onFocus) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onFocus();\n }; // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = FocusManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (focused) {\n if (typeof focused === 'boolean') {\n _this2.setFocused(focused);\n } else {\n _this2.onFocus();\n }\n });\n };\n\n _proto.setFocused = function setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n };\n\n _proto.onFocus = function onFocus() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isFocused = function isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n };\n\n return FocusManager;\n}(Subscribable);\nexport var focusManager = new FocusManager();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { Subscribable } from './subscribable';\nimport { isServer } from './utils';\nexport var OnlineManager = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(OnlineManager, _Subscribable);\n\n function OnlineManager() {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n\n _this.setup = function (onOnline) {\n var _window;\n\n if (!isServer && ((_window = window) == null ? void 0 : _window.addEventListener)) {\n var listener = function listener() {\n return onOnline();\n }; // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return function () {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n };\n\n return _this;\n }\n\n var _proto = OnlineManager.prototype;\n\n _proto.onSubscribe = function onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n };\n\n _proto.setEventListener = function setEventListener(setup) {\n var _this$cleanup2,\n _this2 = this;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(function (online) {\n if (typeof online === 'boolean') {\n _this2.setOnline(online);\n } else {\n _this2.onOnline();\n }\n });\n };\n\n _proto.setOnline = function setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n };\n\n _proto.onOnline = function onOnline() {\n this.listeners.forEach(function (listener) {\n listener();\n });\n };\n\n _proto.isOnline = function isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n };\n\n return OnlineManager;\n}(Subscribable);\nexport var onlineManager = new OnlineManager();","import { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { sleep } from './utils';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * Math.pow(2, failureCount), 30000);\n}\n\nexport function isCancelable(value) {\n return typeof (value == null ? void 0 : value.cancel) === 'function';\n}\nexport var CancelledError = function CancelledError(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n};\nexport function isCancelledError(value) {\n return value instanceof CancelledError;\n} // CLASS\n\nexport var Retryer = function Retryer(config) {\n var _this = this;\n\n var cancelRetry = false;\n var cancelFn;\n var continueFn;\n var promiseResolve;\n var promiseReject;\n this.abort = config.abort;\n\n this.cancel = function (cancelOptions) {\n return cancelFn == null ? void 0 : cancelFn(cancelOptions);\n };\n\n this.cancelRetry = function () {\n cancelRetry = true;\n };\n\n this.continueRetry = function () {\n cancelRetry = false;\n };\n\n this.continue = function () {\n return continueFn == null ? void 0 : continueFn();\n };\n\n this.failureCount = 0;\n this.isPaused = false;\n this.isResolved = false;\n this.isTransportCancelable = false;\n this.promise = new Promise(function (outerResolve, outerReject) {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n var resolve = function resolve(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n var reject = function reject(value) {\n if (!_this.isResolved) {\n _this.isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n var pause = function pause() {\n return new Promise(function (continueResolve) {\n continueFn = continueResolve;\n _this.isPaused = true;\n config.onPause == null ? void 0 : config.onPause();\n }).then(function () {\n continueFn = undefined;\n _this.isPaused = false;\n config.onContinue == null ? void 0 : config.onContinue();\n });\n }; // Create loop function\n\n\n var run = function run() {\n // Do nothing if already resolved\n if (_this.isResolved) {\n return;\n }\n\n var promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n } // Create callback to cancel this fetch\n\n\n cancelFn = function cancelFn(cancelOptions) {\n if (!_this.isResolved) {\n reject(new CancelledError(cancelOptions));\n _this.abort == null ? void 0 : _this.abort(); // Cancel transport if supported\n\n if (isCancelable(promiseOrValue)) {\n try {\n promiseOrValue.cancel();\n } catch (_unused) {}\n }\n }\n }; // Check if the transport layer support cancellation\n\n\n _this.isTransportCancelable = isCancelable(promiseOrValue);\n Promise.resolve(promiseOrValue).then(resolve).catch(function (error) {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (_this.isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n var retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n var retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n var delay = typeof retryDelay === 'function' ? retryDelay(_this.failureCount, error) : retryDelay;\n var shouldRetry = retry === true || typeof retry === 'number' && _this.failureCount < retry || typeof retry === 'function' && retry(_this.failureCount, error);\n\n if (cancelRetry || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n _this.failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(_this.failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(function () {\n if (!focusManager.isFocused() || !onlineManager.isOnline()) {\n return pause();\n }\n }).then(function () {\n if (cancelRetry) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n run();\n};","import { scheduleMicrotask } from './utils'; // TYPES\n\n// CLASS\nexport var NotifyManager = /*#__PURE__*/function () {\n function NotifyManager() {\n this.queue = [];\n this.transactions = 0;\n\n this.notifyFn = function (callback) {\n callback();\n };\n\n this.batchNotifyFn = function (callback) {\n callback();\n };\n }\n\n var _proto = NotifyManager.prototype;\n\n _proto.batch = function batch(callback) {\n var result;\n this.transactions++;\n\n try {\n result = callback();\n } finally {\n this.transactions--;\n\n if (!this.transactions) {\n this.flush();\n }\n }\n\n return result;\n };\n\n _proto.schedule = function schedule(callback) {\n var _this = this;\n\n if (this.transactions) {\n this.queue.push(callback);\n } else {\n scheduleMicrotask(function () {\n _this.notifyFn(callback);\n });\n }\n }\n /**\n * All calls to the wrapped function will be batched.\n */\n ;\n\n _proto.batchCalls = function batchCalls(callback) {\n var _this2 = this;\n\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this2.schedule(function () {\n callback.apply(void 0, args);\n });\n };\n };\n\n _proto.flush = function flush() {\n var _this3 = this;\n\n var queue = this.queue;\n this.queue = [];\n\n if (queue.length) {\n scheduleMicrotask(function () {\n _this3.batchNotifyFn(function () {\n queue.forEach(function (callback) {\n _this3.notifyFn(callback);\n });\n });\n });\n }\n }\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n ;\n\n _proto.setNotifyFunction = function setNotifyFunction(fn) {\n this.notifyFn = fn;\n }\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n ;\n\n _proto.setBatchNotifyFunction = function setBatchNotifyFunction(fn) {\n this.batchNotifyFn = fn;\n };\n\n return NotifyManager;\n}(); // SINGLETON\n\nexport var notifyManager = new NotifyManager();","// TYPES\n// FUNCTIONS\nvar logger = console;\nexport function getLogger() {\n return logger;\n}\nexport function setLogger(newLogger) {\n logger = newLogger;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getAbortController, functionalUpdate, isValidTimeout, noop, replaceEqualDeep, timeUntilStale, ensureQueryKeyArray } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { getLogger } from './logger';\nimport { Retryer, isCancelledError } from './retryer'; // TYPES\n\n// CLASS\nexport var Query = /*#__PURE__*/function () {\n function Query(config) {\n this.abortSignalConsumed = false;\n this.hadObservers = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || this.getDefaultState(this.options);\n this.state = this.initialState;\n this.meta = config.meta;\n this.scheduleGc();\n }\n\n var _proto = Query.prototype;\n\n _proto.setOptions = function setOptions(options) {\n var _this$options$cacheTi;\n\n this.options = _extends({}, this.defaultOptions, options);\n this.meta = options == null ? void 0 : options.meta; // Default to 5 minutes if not cache time is set\n\n this.cacheTime = Math.max(this.cacheTime || 0, (_this$options$cacheTi = this.options.cacheTime) != null ? _this$options$cacheTi : 5 * 60 * 1000);\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.scheduleGc = function scheduleGc() {\n var _this = this;\n\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(function () {\n _this.optionalRemove();\n }, this.cacheTime);\n }\n };\n\n _proto.clearGcTimeout = function clearGcTimeout() {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n };\n\n _proto.optionalRemove = function optionalRemove() {\n if (!this.observers.length) {\n if (this.state.isFetching) {\n if (this.hadObservers) {\n this.scheduleGc();\n }\n } else {\n this.cache.remove(this);\n }\n }\n };\n\n _proto.setData = function setData(updater, options) {\n var _this$options$isDataE, _this$options;\n\n var prevData = this.state.data; // Get the new data\n\n var data = functionalUpdate(updater, prevData); // Use prev data if an isDataEqual function is defined and returns `true`\n\n if ((_this$options$isDataE = (_this$options = this.options).isDataEqual) == null ? void 0 : _this$options$isDataE.call(_this$options, prevData, data)) {\n data = prevData;\n } else if (this.options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n data = replaceEqualDeep(prevData, data);\n } // Set data and mark it as cached\n\n\n this.dispatch({\n data: data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt\n });\n return data;\n };\n\n _proto.setState = function setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state: state,\n setStateOptions: setStateOptions\n });\n };\n\n _proto.cancel = function cancel(options) {\n var _this$retryer;\n\n var promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n };\n\n _proto.destroy = function destroy() {\n this.clearGcTimeout();\n this.cancel({\n silent: true\n });\n };\n\n _proto.reset = function reset() {\n this.destroy();\n this.setState(this.initialState);\n };\n\n _proto.isActive = function isActive() {\n return this.observers.some(function (observer) {\n return observer.options.enabled !== false;\n });\n };\n\n _proto.isFetching = function isFetching() {\n return this.state.isFetching;\n };\n\n _proto.isStale = function isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(function (observer) {\n return observer.getCurrentResult().isStale;\n });\n };\n\n _proto.isStaleByTime = function isStaleByTime(staleTime) {\n if (staleTime === void 0) {\n staleTime = 0;\n }\n\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n };\n\n _proto.onFocus = function onFocus() {\n var _this$retryer2;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnWindowFocus();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n };\n\n _proto.onOnline = function onOnline() {\n var _this$retryer3;\n\n var observer = this.observers.find(function (x) {\n return x.shouldFetchOnReconnect();\n });\n\n if (observer) {\n observer.refetch();\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n this.hadObservers = true; // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.retryer.isTransportCancelable || this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n if (this.cacheTime) {\n this.scheduleGc();\n } else {\n this.cache.remove(this);\n }\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer: observer\n });\n }\n };\n\n _proto.getObserversCount = function getObserversCount() {\n return this.observers.length;\n };\n\n _proto.invalidate = function invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n };\n\n _proto.fetch = function fetch(options, fetchOptions) {\n var _this2 = this,\n _this$options$behavio,\n _context$fetchOptions,\n _abortController$abor;\n\n if (this.state.isFetching) {\n if (this.state.dataUpdatedAt && (fetchOptions == null ? void 0 : fetchOptions.cancelRefetch)) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n var observer = this.observers.find(function (x) {\n return x.options.queryFn;\n });\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n var queryKey = ensureQueryKeyArray(this.queryKey);\n var abortController = getAbortController(); // Create query function context\n\n var queryFnContext = {\n queryKey: queryKey,\n pageParam: undefined,\n meta: this.meta\n };\n Object.defineProperty(queryFnContext, 'signal', {\n enumerable: true,\n get: function get() {\n if (abortController) {\n _this2.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n }); // Create fetch function\n\n var fetchFn = function fetchFn() {\n if (!_this2.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n _this2.abortSignalConsumed = false;\n return _this2.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n var context = {\n fetchOptions: fetchOptions,\n options: this.options,\n queryKey: queryKey,\n state: this.state,\n fetchFn: fetchFn,\n meta: this.meta\n };\n\n if ((_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch) {\n var _this$options$behavio2;\n\n (_this$options$behavio2 = this.options.behavior) == null ? void 0 : _this$options$behavio2.onFetch(context);\n } // Store state in case the current fetch needs to be reverted\n\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (!this.state.isFetching || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n } // Try to fetch the data\n\n\n this.retryer = new Retryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : (_abortController$abor = abortController.abort) == null ? void 0 : _abortController$abor.bind(abortController),\n onSuccess: function onSuccess(data) {\n _this2.setData(data); // Notify cache callback\n\n\n _this2.cache.config.onSuccess == null ? void 0 : _this2.cache.config.onSuccess(data, _this2); // Remove query after fetching if cache time is 0\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onError: function onError(error) {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n _this2.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n // Notify cache callback\n _this2.cache.config.onError == null ? void 0 : _this2.cache.config.onError(error, _this2); // Log error\n\n getLogger().error(error);\n } // Remove query after fetching if cache time is 0\n\n\n if (_this2.cacheTime === 0) {\n _this2.optionalRemove();\n }\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay\n });\n this.promise = this.retryer.promise;\n return this.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = this.reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onQueryUpdate(action);\n });\n\n _this3.cache.notify({\n query: _this3,\n type: 'queryUpdated',\n action: action\n });\n });\n };\n\n _proto.getDefaultState = function getDefaultState(options) {\n var data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n var hasInitialData = typeof options.initialData !== 'undefined';\n var initialDataUpdatedAt = hasInitialData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n var hasData = typeof data !== 'undefined';\n return {\n data: data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchMeta: null,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: hasData ? 'success' : 'idle'\n };\n };\n\n _proto.reducer = function reducer(state, action) {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n fetchFailureCount: state.fetchFailureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'fetch':\n return _extends({}, state, {\n fetchFailureCount: 0,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n isFetching: true,\n isPaused: false\n }, !state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n fetchFailureCount: 0,\n isFetching: false,\n isInvalidated: false,\n isPaused: false,\n status: 'success'\n });\n\n case 'error':\n var error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return _extends({}, this.revertState);\n }\n\n return _extends({}, state, {\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n isFetching: false,\n isPaused: false,\n status: 'error'\n });\n\n case 'invalidate':\n return _extends({}, state, {\n isInvalidated: true\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n };\n\n return Query;\n}();","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { hashQueryKeyByOptions, matchQuery, parseFilterArgs } from './utils';\nimport { Query } from './query';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var QueryCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryCache, _Subscribable);\n\n function QueryCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.queries = [];\n _this.queriesMap = {};\n return _this;\n }\n\n var _proto = QueryCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var _options$queryHash;\n\n var queryKey = options.queryKey;\n var queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n var query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n queryKey: queryKey,\n queryHash: queryHash,\n options: client.defaultQueryOptions(options),\n state: state,\n defaultOptions: client.getQueryDefaults(queryKey),\n meta: options.meta\n });\n this.add(query);\n }\n\n return query;\n };\n\n _proto.add = function add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'queryAdded',\n query: query\n });\n }\n };\n\n _proto.remove = function remove(query) {\n var queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(function (x) {\n return x !== query;\n });\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'queryRemoved',\n query: query\n });\n }\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.queries.forEach(function (query) {\n _this2.remove(query);\n });\n });\n };\n\n _proto.get = function get(queryHash) {\n return this.queriesMap[queryHash];\n };\n\n _proto.getAll = function getAll() {\n return this.queries;\n };\n\n _proto.find = function find(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(function (query) {\n return matchQuery(filters, query);\n });\n };\n\n _proto.findAll = function findAll(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n return Object.keys(filters).length > 0 ? this.queries.filter(function (query) {\n return matchQuery(filters, query);\n }) : this.queries;\n };\n\n _proto.notify = function notify(event) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(event);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n var _this4 = this;\n\n notifyManager.batch(function () {\n _this4.queries.forEach(function (query) {\n query.onFocus();\n });\n });\n };\n\n _proto.onOnline = function onOnline() {\n var _this5 = this;\n\n notifyManager.batch(function () {\n _this5.queries.forEach(function (query) {\n query.onOnline();\n });\n });\n };\n\n return QueryCache;\n}(Subscribable);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { getLogger } from './logger';\nimport { notifyManager } from './notifyManager';\nimport { Retryer } from './retryer';\nimport { noop } from './utils'; // TYPES\n\n// CLASS\nexport var Mutation = /*#__PURE__*/function () {\n function Mutation(config) {\n this.options = _extends({}, config.defaultOptions, config.options);\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.meta = config.meta;\n }\n\n var _proto = Mutation.prototype;\n\n _proto.setState = function setState(state) {\n this.dispatch({\n type: 'setState',\n state: state\n });\n };\n\n _proto.addObserver = function addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer);\n }\n };\n\n _proto.removeObserver = function removeObserver(observer) {\n this.observers = this.observers.filter(function (x) {\n return x !== observer;\n });\n };\n\n _proto.cancel = function cancel() {\n if (this.retryer) {\n this.retryer.cancel();\n return this.retryer.promise.then(noop).catch(noop);\n }\n\n return Promise.resolve();\n };\n\n _proto.continue = function _continue() {\n if (this.retryer) {\n this.retryer.continue();\n return this.retryer.promise;\n }\n\n return this.execute();\n };\n\n _proto.execute = function execute() {\n var _this = this;\n\n var data;\n var restored = this.state.status === 'loading';\n var promise = Promise.resolve();\n\n if (!restored) {\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n });\n promise = promise.then(function () {\n // Notify cache callback\n _this.mutationCache.config.onMutate == null ? void 0 : _this.mutationCache.config.onMutate(_this.state.variables, _this);\n }).then(function () {\n return _this.options.onMutate == null ? void 0 : _this.options.onMutate(_this.state.variables);\n }).then(function (context) {\n if (context !== _this.state.context) {\n _this.dispatch({\n type: 'loading',\n context: context,\n variables: _this.state.variables\n });\n }\n });\n }\n\n return promise.then(function () {\n return _this.executeMutation();\n }).then(function (result) {\n data = result; // Notify cache callback\n\n _this.mutationCache.config.onSuccess == null ? void 0 : _this.mutationCache.config.onSuccess(data, _this.state.variables, _this.state.context, _this);\n }).then(function () {\n return _this.options.onSuccess == null ? void 0 : _this.options.onSuccess(data, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(data, null, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'success',\n data: data\n });\n\n return data;\n }).catch(function (error) {\n // Notify cache callback\n _this.mutationCache.config.onError == null ? void 0 : _this.mutationCache.config.onError(error, _this.state.variables, _this.state.context, _this); // Log error\n\n getLogger().error(error);\n return Promise.resolve().then(function () {\n return _this.options.onError == null ? void 0 : _this.options.onError(error, _this.state.variables, _this.state.context);\n }).then(function () {\n return _this.options.onSettled == null ? void 0 : _this.options.onSettled(undefined, error, _this.state.variables, _this.state.context);\n }).then(function () {\n _this.dispatch({\n type: 'error',\n error: error\n });\n\n throw error;\n });\n });\n };\n\n _proto.executeMutation = function executeMutation() {\n var _this2 = this,\n _this$options$retry;\n\n this.retryer = new Retryer({\n fn: function fn() {\n if (!_this2.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return _this2.options.mutationFn(_this2.state.variables);\n },\n onFail: function onFail() {\n _this2.dispatch({\n type: 'failed'\n });\n },\n onPause: function onPause() {\n _this2.dispatch({\n type: 'pause'\n });\n },\n onContinue: function onContinue() {\n _this2.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay\n });\n return this.retryer.promise;\n };\n\n _proto.dispatch = function dispatch(action) {\n var _this3 = this;\n\n this.state = reducer(this.state, action);\n notifyManager.batch(function () {\n _this3.observers.forEach(function (observer) {\n observer.onMutationUpdate(action);\n });\n\n _this3.mutationCache.notify(_this3);\n });\n };\n\n return Mutation;\n}();\nexport function getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nfunction reducer(state, action) {\n switch (action.type) {\n case 'failed':\n return _extends({}, state, {\n failureCount: state.failureCount + 1\n });\n\n case 'pause':\n return _extends({}, state, {\n isPaused: true\n });\n\n case 'continue':\n return _extends({}, state, {\n isPaused: false\n });\n\n case 'loading':\n return _extends({}, state, {\n context: action.context,\n data: undefined,\n error: null,\n isPaused: false,\n status: 'loading',\n variables: action.variables\n });\n\n case 'success':\n return _extends({}, state, {\n data: action.data,\n error: null,\n status: 'success',\n isPaused: false\n });\n\n case 'error':\n return _extends({}, state, {\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n isPaused: false,\n status: 'error'\n });\n\n case 'setState':\n return _extends({}, state, action.state);\n\n default:\n return state;\n }\n}","import _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { notifyManager } from './notifyManager';\nimport { Mutation } from './mutation';\nimport { matchMutation, noop } from './utils';\nimport { Subscribable } from './subscribable'; // TYPES\n\n// CLASS\nexport var MutationCache = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationCache, _Subscribable);\n\n function MutationCache(config) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.config = config || {};\n _this.mutations = [];\n _this.mutationId = 0;\n return _this;\n }\n\n var _proto = MutationCache.prototype;\n\n _proto.build = function build(client, options, state) {\n var mutation = new Mutation({\n mutationCache: this,\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state: state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined,\n meta: options.meta\n });\n this.add(mutation);\n return mutation;\n };\n\n _proto.add = function add(mutation) {\n this.mutations.push(mutation);\n this.notify(mutation);\n };\n\n _proto.remove = function remove(mutation) {\n this.mutations = this.mutations.filter(function (x) {\n return x !== mutation;\n });\n mutation.cancel();\n this.notify(mutation);\n };\n\n _proto.clear = function clear() {\n var _this2 = this;\n\n notifyManager.batch(function () {\n _this2.mutations.forEach(function (mutation) {\n _this2.remove(mutation);\n });\n });\n };\n\n _proto.getAll = function getAll() {\n return this.mutations;\n };\n\n _proto.find = function find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.findAll = function findAll(filters) {\n return this.mutations.filter(function (mutation) {\n return matchMutation(filters, mutation);\n });\n };\n\n _proto.notify = function notify(mutation) {\n var _this3 = this;\n\n notifyManager.batch(function () {\n _this3.listeners.forEach(function (listener) {\n listener(mutation);\n });\n });\n };\n\n _proto.onFocus = function onFocus() {\n this.resumePausedMutations();\n };\n\n _proto.onOnline = function onOnline() {\n this.resumePausedMutations();\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n var pausedMutations = this.mutations.filter(function (x) {\n return x.state.isPaused;\n });\n return notifyManager.batch(function () {\n return pausedMutations.reduce(function (promise, mutation) {\n return promise.then(function () {\n return mutation.continue().catch(noop);\n });\n }, Promise.resolve());\n });\n };\n\n return MutationCache;\n}(Subscribable);","import { isCancelable } from './retryer';\nimport { getAbortController } from './utils';\nexport function infiniteQueryBehavior() {\n return {\n onFetch: function onFetch(context) {\n context.fetchFn = function () {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n var refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n var fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n var pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n var isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n var isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n var oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n var oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n var abortController = getAbortController();\n var abortSignal = abortController == null ? void 0 : abortController.signal;\n var newPageParams = oldPageParams;\n var cancelled = false; // Get query function\n\n var queryFn = context.options.queryFn || function () {\n return Promise.reject('Missing queryFn');\n };\n\n var buildNewPages = function buildNewPages(pages, param, page, previous) {\n newPageParams = previous ? [param].concat(newPageParams) : [].concat(newPageParams, [param]);\n return previous ? [page].concat(pages) : [].concat(pages, [page]);\n }; // Create function to fetch a page\n\n\n var fetchPage = function fetchPage(pages, manual, param, previous) {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n var queryFnContext = {\n queryKey: context.queryKey,\n signal: abortSignal,\n pageParam: param,\n meta: context.meta\n };\n var queryFnResult = queryFn(queryFnContext);\n var promise = Promise.resolve(queryFnResult).then(function (page) {\n return buildNewPages(pages, param, page, previous);\n });\n\n if (isCancelable(queryFnResult)) {\n var promiseAsAny = promise;\n promiseAsAny.cancel = queryFnResult.cancel;\n }\n\n return promise;\n };\n\n var promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n var manual = typeof pageParam !== 'undefined';\n var param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n var _manual = typeof pageParam !== 'undefined';\n\n var _param = _manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n\n promise = fetchPage(oldPages, _manual, _param, true);\n } // Refetch pages\n else {\n (function () {\n newPageParams = [];\n var manual = typeof context.options.getNextPageParam === 'undefined';\n var shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n var _loop = function _loop(i) {\n promise = promise.then(function (pages) {\n var shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n var _param2 = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n\n return fetchPage(pages, manual, _param2);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n };\n\n for (var i = 1; i < oldPages.length; i++) {\n _loop(i);\n }\n })();\n }\n\n var finalPromise = promise.then(function (pages) {\n return {\n pages: pages,\n pageParams: newPageParams\n };\n });\n var finalPromiseAsAny = finalPromise;\n\n finalPromiseAsAny.cancel = function () {\n cancelled = true;\n abortController == null ? void 0 : abortController.abort();\n\n if (isCancelable(promise)) {\n promise.cancel();\n }\n };\n\n return finalPromise;\n };\n }\n };\n}\nexport function getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nexport function getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n var nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nexport function hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n var previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { hashQueryKey, noop, parseFilterArgs, parseQueryArgs, partialMatchKey, hashQueryKeyByOptions } from './utils';\nimport { QueryCache } from './queryCache';\nimport { MutationCache } from './mutationCache';\nimport { focusManager } from './focusManager';\nimport { onlineManager } from './onlineManager';\nimport { notifyManager } from './notifyManager';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior';\n// CLASS\nexport var QueryClient = /*#__PURE__*/function () {\n function QueryClient(config) {\n if (config === void 0) {\n config = {};\n }\n\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n }\n\n var _proto = QueryClient.prototype;\n\n _proto.mount = function mount() {\n var _this = this;\n\n this.unsubscribeFocus = focusManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onFocus();\n\n _this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(function () {\n if (focusManager.isFocused() && onlineManager.isOnline()) {\n _this.mutationCache.onOnline();\n\n _this.queryCache.onOnline();\n }\n });\n };\n\n _proto.unmount = function unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n };\n\n _proto.isFetching = function isFetching(arg1, arg2) {\n var _parseFilterArgs = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs[0];\n\n filters.fetching = true;\n return this.queryCache.findAll(filters).length;\n };\n\n _proto.isMutating = function isMutating(filters) {\n return this.mutationCache.findAll(_extends({}, filters, {\n fetching: true\n })).length;\n };\n\n _proto.getQueryData = function getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n };\n\n _proto.getQueriesData = function getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref) {\n var queryKey = _ref.queryKey,\n state = _ref.state;\n var data = state.data;\n return [queryKey, data];\n });\n };\n\n _proto.setQueryData = function setQueryData(queryKey, updater, options) {\n var parsedOptions = parseQueryArgs(queryKey);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(updater, options);\n };\n\n _proto.setQueriesData = function setQueriesData(queryKeyOrFilters, updater, options) {\n var _this2 = this;\n\n return notifyManager.batch(function () {\n return _this2.getQueryCache().findAll(queryKeyOrFilters).map(function (_ref2) {\n var queryKey = _ref2.queryKey;\n return [queryKey, _this2.setQueryData(queryKey, updater, options)];\n });\n });\n };\n\n _proto.getQueryState = function getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n };\n\n _proto.removeQueries = function removeQueries(arg1, arg2) {\n var _parseFilterArgs2 = parseFilterArgs(arg1, arg2),\n filters = _parseFilterArgs2[0];\n\n var queryCache = this.queryCache;\n notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n queryCache.remove(query);\n });\n });\n };\n\n _proto.resetQueries = function resetQueries(arg1, arg2, arg3) {\n var _this3 = this;\n\n var _parseFilterArgs3 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs3[0],\n options = _parseFilterArgs3[1];\n\n var queryCache = this.queryCache;\n\n var refetchFilters = _extends({}, filters, {\n active: true\n });\n\n return notifyManager.batch(function () {\n queryCache.findAll(filters).forEach(function (query) {\n query.reset();\n });\n return _this3.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.cancelQueries = function cancelQueries(arg1, arg2, arg3) {\n var _this4 = this;\n\n var _parseFilterArgs4 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs4[0],\n _parseFilterArgs4$ = _parseFilterArgs4[1],\n cancelOptions = _parseFilterArgs4$ === void 0 ? {} : _parseFilterArgs4$;\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n var promises = notifyManager.batch(function () {\n return _this4.queryCache.findAll(filters).map(function (query) {\n return query.cancel(cancelOptions);\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.invalidateQueries = function invalidateQueries(arg1, arg2, arg3) {\n var _ref3,\n _filters$refetchActiv,\n _filters$refetchInact,\n _this5 = this;\n\n var _parseFilterArgs5 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs5[0],\n options = _parseFilterArgs5[1];\n\n var refetchFilters = _extends({}, filters, {\n // if filters.refetchActive is not provided and filters.active is explicitly false,\n // e.g. invalidateQueries({ active: false }), we don't want to refetch active queries\n active: (_ref3 = (_filters$refetchActiv = filters.refetchActive) != null ? _filters$refetchActiv : filters.active) != null ? _ref3 : true,\n inactive: (_filters$refetchInact = filters.refetchInactive) != null ? _filters$refetchInact : false\n });\n\n return notifyManager.batch(function () {\n _this5.queryCache.findAll(filters).forEach(function (query) {\n query.invalidate();\n });\n\n return _this5.refetchQueries(refetchFilters, options);\n });\n };\n\n _proto.refetchQueries = function refetchQueries(arg1, arg2, arg3) {\n var _this6 = this;\n\n var _parseFilterArgs6 = parseFilterArgs(arg1, arg2, arg3),\n filters = _parseFilterArgs6[0],\n options = _parseFilterArgs6[1];\n\n var promises = notifyManager.batch(function () {\n return _this6.queryCache.findAll(filters).map(function (query) {\n return query.fetch(undefined, _extends({}, options, {\n meta: {\n refetchPage: filters == null ? void 0 : filters.refetchPage\n }\n }));\n });\n });\n var promise = Promise.all(promises).then(noop);\n\n if (!(options == null ? void 0 : options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.fetchQuery = function fetchQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n var defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n var query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n };\n\n _proto.prefetchQuery = function prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.fetchInfiniteQuery = function fetchInfiniteQuery(arg1, arg2, arg3) {\n var parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n };\n\n _proto.prefetchInfiniteQuery = function prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n };\n\n _proto.cancelMutations = function cancelMutations() {\n var _this7 = this;\n\n var promises = notifyManager.batch(function () {\n return _this7.mutationCache.getAll().map(function (mutation) {\n return mutation.cancel();\n });\n });\n return Promise.all(promises).then(noop).catch(noop);\n };\n\n _proto.resumePausedMutations = function resumePausedMutations() {\n return this.getMutationCache().resumePausedMutations();\n };\n\n _proto.executeMutation = function executeMutation(options) {\n return this.mutationCache.build(this, options).execute();\n };\n\n _proto.getQueryCache = function getQueryCache() {\n return this.queryCache;\n };\n\n _proto.getMutationCache = function getMutationCache() {\n return this.mutationCache;\n };\n\n _proto.getDefaultOptions = function getDefaultOptions() {\n return this.defaultOptions;\n };\n\n _proto.setDefaultOptions = function setDefaultOptions(options) {\n this.defaultOptions = options;\n };\n\n _proto.setQueryDefaults = function setQueryDefaults(queryKey, options) {\n var result = this.queryDefaults.find(function (x) {\n return hashQueryKey(queryKey) === hashQueryKey(x.queryKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey: queryKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getQueryDefaults = function getQueryDefaults(queryKey) {\n var _this$queryDefaults$f;\n\n return queryKey ? (_this$queryDefaults$f = this.queryDefaults.find(function (x) {\n return partialMatchKey(queryKey, x.queryKey);\n })) == null ? void 0 : _this$queryDefaults$f.defaultOptions : undefined;\n };\n\n _proto.setMutationDefaults = function setMutationDefaults(mutationKey, options) {\n var result = this.mutationDefaults.find(function (x) {\n return hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey);\n });\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey: mutationKey,\n defaultOptions: options\n });\n }\n };\n\n _proto.getMutationDefaults = function getMutationDefaults(mutationKey) {\n var _this$mutationDefault;\n\n return mutationKey ? (_this$mutationDefault = this.mutationDefaults.find(function (x) {\n return partialMatchKey(mutationKey, x.mutationKey);\n })) == null ? void 0 : _this$mutationDefault.defaultOptions : undefined;\n };\n\n _proto.defaultQueryOptions = function defaultQueryOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n var defaultedOptions = _extends({}, this.defaultOptions.queries, this.getQueryDefaults(options == null ? void 0 : options.queryKey), options, {\n _defaulted: true\n });\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n }\n\n return defaultedOptions;\n };\n\n _proto.defaultQueryObserverOptions = function defaultQueryObserverOptions(options) {\n return this.defaultQueryOptions(options);\n };\n\n _proto.defaultMutationOptions = function defaultMutationOptions(options) {\n if (options == null ? void 0 : options._defaulted) {\n return options;\n }\n\n return _extends({}, this.defaultOptions.mutations, this.getMutationDefaults(options == null ? void 0 : options.mutationKey), options, {\n _defaulted: true\n });\n };\n\n _proto.clear = function clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n };\n\n return QueryClient;\n}();","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { isServer, isValidTimeout, noop, replaceEqualDeep, shallowEqualObjects, timeUntilStale } from './utils';\nimport { notifyManager } from './notifyManager';\nimport { focusManager } from './focusManager';\nimport { Subscribable } from './subscribable';\nimport { getLogger } from './logger';\nimport { isCancelledError } from './retryer';\nexport var QueryObserver = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(QueryObserver, _Subscribable);\n\n function QueryObserver(client, options) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.client = client;\n _this.options = options;\n _this.trackedProps = [];\n _this.selectError = null;\n\n _this.bindMethods();\n\n _this.setOptions(options);\n\n return _this;\n }\n\n var _proto = QueryObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n };\n\n _proto.onSubscribe = function onSubscribe() {\n if (this.listeners.length === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.listeners.length) {\n this.destroy();\n }\n };\n\n _proto.shouldFetchOnReconnect = function shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n };\n\n _proto.shouldFetchOnWindowFocus = function shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n };\n\n _proto.destroy = function destroy() {\n this.listeners = [];\n this.clearTimers();\n this.currentQuery.removeObserver(this);\n };\n\n _proto.setOptions = function setOptions(options, notifyOptions) {\n var prevOptions = this.options;\n var prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryObserverOptions(options);\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n var mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n var nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n };\n\n _proto.getOptimisticResult = function getOptimisticResult(options) {\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return this.createResult(query, defaultedOptions);\n };\n\n _proto.getCurrentResult = function getCurrentResult() {\n return this.currentResult;\n };\n\n _proto.trackResult = function trackResult(result, defaultedOptions) {\n var _this2 = this;\n\n var trackedResult = {};\n\n var trackProp = function trackProp(key) {\n if (!_this2.trackedProps.includes(key)) {\n _this2.trackedProps.push(key);\n }\n };\n\n Object.keys(result).forEach(function (key) {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: function get() {\n trackProp(key);\n return result[key];\n }\n });\n });\n\n if (defaultedOptions.useErrorBoundary || defaultedOptions.suspense) {\n trackProp('error');\n }\n\n return trackedResult;\n };\n\n _proto.getNextResult = function getNextResult(options) {\n var _this3 = this;\n\n return new Promise(function (resolve, reject) {\n var unsubscribe = _this3.subscribe(function (result) {\n if (!result.isFetching) {\n unsubscribe();\n\n if (result.isError && (options == null ? void 0 : options.throwOnError)) {\n reject(result.error);\n } else {\n resolve(result);\n }\n }\n });\n });\n };\n\n _proto.getCurrentQuery = function getCurrentQuery() {\n return this.currentQuery;\n };\n\n _proto.remove = function remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n };\n\n _proto.refetch = function refetch(options) {\n return this.fetch(_extends({}, options, {\n meta: {\n refetchPage: options == null ? void 0 : options.refetchPage\n }\n }));\n };\n\n _proto.fetchOptimistic = function fetchOptimistic(options) {\n var _this4 = this;\n\n var defaultedOptions = this.client.defaultQueryObserverOptions(options);\n var query = this.client.getQueryCache().build(this.client, defaultedOptions);\n return query.fetch().then(function () {\n return _this4.createResult(query, defaultedOptions);\n });\n };\n\n _proto.fetch = function fetch(fetchOptions) {\n var _this5 = this;\n\n return this.executeFetch(fetchOptions).then(function () {\n _this5.updateResult();\n\n return _this5.currentResult;\n });\n };\n\n _proto.executeFetch = function executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n var promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions == null ? void 0 : fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n };\n\n _proto.updateStaleTimeout = function updateStaleTimeout() {\n var _this6 = this;\n\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n var time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n var timeout = time + 1;\n this.staleTimeoutId = setTimeout(function () {\n if (!_this6.currentResult.isStale) {\n _this6.updateResult();\n }\n }, timeout);\n };\n\n _proto.computeRefetchInterval = function computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n };\n\n _proto.updateRefetchInterval = function updateRefetchInterval(nextInterval) {\n var _this7 = this;\n\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(function () {\n if (_this7.options.refetchIntervalInBackground || focusManager.isFocused()) {\n _this7.executeFetch();\n }\n }, this.currentRefetchInterval);\n };\n\n _proto.updateTimers = function updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n };\n\n _proto.clearTimers = function clearTimers() {\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n };\n\n _proto.clearStaleTimeout = function clearStaleTimeout() {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n };\n\n _proto.clearRefetchInterval = function clearRefetchInterval() {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n };\n\n _proto.createResult = function createResult(query, options) {\n var prevQuery = this.currentQuery;\n var prevOptions = this.options;\n var prevResult = this.currentResult;\n var prevResultState = this.currentResultState;\n var prevResultOptions = this.currentResultOptions;\n var queryChange = query !== prevQuery;\n var queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n var prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n var state = query.state;\n var dataUpdatedAt = state.dataUpdatedAt,\n error = state.error,\n errorUpdatedAt = state.errorUpdatedAt,\n isFetching = state.isFetching,\n status = state.status;\n var isPreviousData = false;\n var isPlaceholderData = false;\n var data; // Optimistically set result in fetching state if needed\n\n if (options.optimisticResults) {\n var mounted = this.hasListeners();\n var fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n var fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n isFetching = true;\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdateCount && (prevQueryResult == null ? void 0 : prevQueryResult.isSuccess) && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n\n if (options.structuralSharing !== false) {\n data = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, data);\n }\n\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && (status === 'loading' || status === 'idle')) {\n var placeholderData; // Memoize placeholder data\n\n if ((prevResult == null ? void 0 : prevResult.isPlaceholderData) && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n\n if (options.structuralSharing !== false) {\n placeholderData = replaceEqualDeep(prevResult == null ? void 0 : prevResult.data, placeholderData);\n }\n\n this.selectError = null;\n } catch (selectError) {\n getLogger().error(selectError);\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = placeholderData;\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n var result = {\n status: status,\n isLoading: status === 'loading',\n isSuccess: status === 'success',\n isError: status === 'error',\n isIdle: status === 'idle',\n data: data,\n dataUpdatedAt: dataUpdatedAt,\n error: error,\n errorUpdatedAt: errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching: isFetching,\n isRefetching: isFetching && status !== 'loading',\n isLoadingError: status === 'error' && state.dataUpdatedAt === 0,\n isPlaceholderData: isPlaceholderData,\n isPreviousData: isPreviousData,\n isRefetchError: status === 'error' && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n };\n\n _proto.shouldNotifyListeners = function shouldNotifyListeners(result, prevResult) {\n if (!prevResult) {\n return true;\n }\n\n var _this$options = this.options,\n notifyOnChangeProps = _this$options.notifyOnChangeProps,\n notifyOnChangePropsExclusions = _this$options.notifyOnChangePropsExclusions;\n\n if (!notifyOnChangeProps && !notifyOnChangePropsExclusions) {\n return true;\n }\n\n if (notifyOnChangeProps === 'tracked' && !this.trackedProps.length) {\n return true;\n }\n\n var includedProps = notifyOnChangeProps === 'tracked' ? this.trackedProps : notifyOnChangeProps;\n return Object.keys(result).some(function (key) {\n var typedKey = key;\n var changed = result[typedKey] !== prevResult[typedKey];\n var isIncluded = includedProps == null ? void 0 : includedProps.some(function (x) {\n return x === key;\n });\n var isExcluded = notifyOnChangePropsExclusions == null ? void 0 : notifyOnChangePropsExclusions.some(function (x) {\n return x === key;\n });\n return changed && !isExcluded && (!includedProps || isIncluded);\n });\n };\n\n _proto.updateResult = function updateResult(notifyOptions) {\n var prevResult = this.currentResult;\n this.currentResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify if something has changed\n\n if (shallowEqualObjects(this.currentResult, prevResult)) {\n return;\n } // Determine which callbacks to trigger\n\n\n var defaultNotifyOptions = {\n cache: true\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && this.shouldNotifyListeners(this.currentResult, prevResult)) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify(_extends({}, defaultNotifyOptions, notifyOptions));\n };\n\n _proto.updateQuery = function updateQuery() {\n var query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n var prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n };\n\n _proto.onQueryUpdate = function onQueryUpdate(action) {\n var notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n };\n\n _proto.notify = function notify(notifyOptions) {\n var _this8 = this;\n\n notifyManager.batch(function () {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n _this8.options.onSuccess == null ? void 0 : _this8.options.onSuccess(_this8.currentResult.data);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(_this8.currentResult.data, null);\n } else if (notifyOptions.onError) {\n _this8.options.onError == null ? void 0 : _this8.options.onError(_this8.currentResult.error);\n _this8.options.onSettled == null ? void 0 : _this8.options.onSettled(undefined, _this8.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n _this8.listeners.forEach(function (listener) {\n listener(_this8.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n _this8.client.getQueryCache().notify({\n query: _this8.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n };\n\n return QueryObserver;\n}(Subscribable);\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n var value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { QueryObserver } from './queryObserver';\nimport { hasNextPage, hasPreviousPage, infiniteQueryBehavior } from './infiniteQueryBehavior';\nexport var InfiniteQueryObserver = /*#__PURE__*/function (_QueryObserver) {\n _inheritsLoose(InfiniteQueryObserver, _QueryObserver);\n\n // Type override\n // Type override\n // Type override\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n function InfiniteQueryObserver(client, options) {\n return _QueryObserver.call(this, client, options) || this;\n }\n\n var _proto = InfiniteQueryObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n _QueryObserver.prototype.bindMethods.call(this);\n\n this.fetchNextPage = this.fetchNextPage.bind(this);\n this.fetchPreviousPage = this.fetchPreviousPage.bind(this);\n };\n\n _proto.setOptions = function setOptions(options, notifyOptions) {\n _QueryObserver.prototype.setOptions.call(this, _extends({}, options, {\n behavior: infiniteQueryBehavior()\n }), notifyOptions);\n };\n\n _proto.getOptimisticResult = function getOptimisticResult(options) {\n options.behavior = infiniteQueryBehavior();\n return _QueryObserver.prototype.getOptimisticResult.call(this, options);\n };\n\n _proto.fetchNextPage = function fetchNextPage(options) {\n var _options$cancelRefetc;\n\n return this.fetch({\n // TODO consider removing `?? true` in future breaking change, to be consistent with `refetch` API (see https://github.com/tannerlinsley/react-query/issues/2617)\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n throwOnError: options == null ? void 0 : options.throwOnError,\n meta: {\n fetchMore: {\n direction: 'forward',\n pageParam: options == null ? void 0 : options.pageParam\n }\n }\n });\n };\n\n _proto.fetchPreviousPage = function fetchPreviousPage(options) {\n var _options$cancelRefetc2;\n\n return this.fetch({\n // TODO consider removing `?? true` in future breaking change, to be consistent with `refetch` API (see https://github.com/tannerlinsley/react-query/issues/2617)\n cancelRefetch: (_options$cancelRefetc2 = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc2 : true,\n throwOnError: options == null ? void 0 : options.throwOnError,\n meta: {\n fetchMore: {\n direction: 'backward',\n pageParam: options == null ? void 0 : options.pageParam\n }\n }\n });\n };\n\n _proto.createResult = function createResult(query, options) {\n var _state$data, _state$data2, _state$fetchMeta, _state$fetchMeta$fetc, _state$fetchMeta2, _state$fetchMeta2$fet;\n\n var state = query.state;\n\n var result = _QueryObserver.prototype.createResult.call(this, query, options);\n\n return _extends({}, result, {\n fetchNextPage: this.fetchNextPage,\n fetchPreviousPage: this.fetchPreviousPage,\n hasNextPage: hasNextPage(options, (_state$data = state.data) == null ? void 0 : _state$data.pages),\n hasPreviousPage: hasPreviousPage(options, (_state$data2 = state.data) == null ? void 0 : _state$data2.pages),\n isFetchingNextPage: state.isFetching && ((_state$fetchMeta = state.fetchMeta) == null ? void 0 : (_state$fetchMeta$fetc = _state$fetchMeta.fetchMore) == null ? void 0 : _state$fetchMeta$fetc.direction) === 'forward',\n isFetchingPreviousPage: state.isFetching && ((_state$fetchMeta2 = state.fetchMeta) == null ? void 0 : (_state$fetchMeta2$fet = _state$fetchMeta2.fetchMore) == null ? void 0 : _state$fetchMeta2$fet.direction) === 'backward'\n });\n };\n\n return InfiniteQueryObserver;\n}(QueryObserver);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport { getDefaultState } from './mutation';\nimport { notifyManager } from './notifyManager';\nimport { Subscribable } from './subscribable';\n// CLASS\nexport var MutationObserver = /*#__PURE__*/function (_Subscribable) {\n _inheritsLoose(MutationObserver, _Subscribable);\n\n function MutationObserver(client, options) {\n var _this;\n\n _this = _Subscribable.call(this) || this;\n _this.client = client;\n\n _this.setOptions(options);\n\n _this.bindMethods();\n\n _this.updateResult();\n\n return _this;\n }\n\n var _proto = MutationObserver.prototype;\n\n _proto.bindMethods = function bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n };\n\n _proto.setOptions = function setOptions(options) {\n this.options = this.client.defaultMutationOptions(options);\n };\n\n _proto.onUnsubscribe = function onUnsubscribe() {\n if (!this.listeners.length) {\n var _this$currentMutation;\n\n (_this$currentMutation = this.currentMutation) == null ? void 0 : _this$currentMutation.removeObserver(this);\n }\n };\n\n _proto.onMutationUpdate = function onMutationUpdate(action) {\n this.updateResult(); // Determine which callbacks to trigger\n\n var notifyOptions = {\n listeners: true\n };\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error') {\n notifyOptions.onError = true;\n }\n\n this.notify(notifyOptions);\n };\n\n _proto.getCurrentResult = function getCurrentResult() {\n return this.currentResult;\n };\n\n _proto.reset = function reset() {\n this.currentMutation = undefined;\n this.updateResult();\n this.notify({\n listeners: true\n });\n };\n\n _proto.mutate = function mutate(variables, options) {\n this.mutateOptions = options;\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this);\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, _extends({}, this.options, {\n variables: typeof variables !== 'undefined' ? variables : this.options.variables\n }));\n this.currentMutation.addObserver(this);\n return this.currentMutation.execute();\n };\n\n _proto.updateResult = function updateResult() {\n var state = this.currentMutation ? this.currentMutation.state : getDefaultState();\n\n var result = _extends({}, state, {\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset\n });\n\n this.currentResult = result;\n };\n\n _proto.notify = function notify(options) {\n var _this2 = this;\n\n notifyManager.batch(function () {\n // First trigger the mutate callbacks\n if (_this2.mutateOptions) {\n if (options.onSuccess) {\n _this2.mutateOptions.onSuccess == null ? void 0 : _this2.mutateOptions.onSuccess(_this2.currentResult.data, _this2.currentResult.variables, _this2.currentResult.context);\n _this2.mutateOptions.onSettled == null ? void 0 : _this2.mutateOptions.onSettled(_this2.currentResult.data, null, _this2.currentResult.variables, _this2.currentResult.context);\n } else if (options.onError) {\n _this2.mutateOptions.onError == null ? void 0 : _this2.mutateOptions.onError(_this2.currentResult.error, _this2.currentResult.variables, _this2.currentResult.context);\n _this2.mutateOptions.onSettled == null ? void 0 : _this2.mutateOptions.onSettled(undefined, _this2.currentResult.error, _this2.currentResult.variables, _this2.currentResult.context);\n }\n } // Then trigger the listeners\n\n\n if (options.listeners) {\n _this2.listeners.forEach(function (listener) {\n listener(_this2.currentResult);\n });\n }\n });\n };\n\n return MutationObserver;\n}(Subscribable);","/** @license React v0.20.2\n * scheduler.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'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v17.0.2\n * react-dom.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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import _extends from '@babel/runtime/helpers/esm/extends';\n\n/**\r\n * Actions represent the type of change to a location value.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#action\r\n */\nvar Action;\n\n(function (Action) {\n /**\r\n * A POP indicates a change to an arbitrary index in the history stack, such\r\n * as a back or forward navigation. It does not describe the direction of the\r\n * navigation, only that the current index changed.\r\n *\r\n * Note: This is the default action for newly created history objects.\r\n */\n Action[\"Pop\"] = \"POP\";\n /**\r\n * A PUSH indicates a new entry being added to the history stack, such as when\r\n * a link is clicked and a new page loads. When this happens, all subsequent\r\n * entries in the stack are lost.\r\n */\n\n Action[\"Push\"] = \"PUSH\";\n /**\r\n * A REPLACE indicates the entry at the current index in the history stack\r\n * being replaced by a new one.\r\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nvar readOnly = process.env.NODE_ENV !== \"production\" ? function (obj) {\n return Object.freeze(obj);\n} : function (obj) {\n return obj;\n};\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== 'undefined') console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nvar BeforeUnloadEventType = 'beforeunload';\nvar HashChangeEventType = 'hashchange';\nvar PopStateEventType = 'popstate';\n/**\r\n * Browser history stores the location in regular URLs. This is the standard for\r\n * most web apps, but it requires some configuration on the server to ensure you\r\n * serve the same app at multiple URLs.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\r\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$window = _options.window,\n window = _options$window === void 0 ? document.defaultView : _options$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation[0],\n nextLocation = _getIndexAndLocation[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better what\n // is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n var action = Action.Pop;\n\n var _getIndexAndLocation2 = getIndexAndLocation(),\n index = _getIndexAndLocation2[0],\n location = _getIndexAndLocation2[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n } // state defaults to `null` because `window.history.state` does\n\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation3 = getIndexAndLocation();\n\n index = _getIndexAndLocation3[0];\n location = _getIndexAndLocation3[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr[0],\n url = _getHistoryStateAndUr[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr2 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr2[0],\n url = _getHistoryStateAndUr2[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Hash history stores the location in window.location.hash. This makes it ideal\r\n * for situations where you don't want to send the location to the server for\r\n * some reason, either because you do cannot configure it or the URL space is\r\n * reserved for something else.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\r\n */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options2 = options,\n _options2$window = _options2.window,\n window = _options2$window === void 0 ? document.defaultView : _options2$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _parsePath = parsePath(window.location.hash.substr(1)),\n _parsePath$pathname = _parsePath.pathname,\n pathname = _parsePath$pathname === void 0 ? '/' : _parsePath$pathname,\n _parsePath$search = _parsePath.search,\n search = _parsePath$search === void 0 ? '' : _parsePath$search,\n _parsePath$hash = _parsePath.hash,\n hash = _parsePath$hash === void 0 ? '' : _parsePath$hash;\n\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation4 = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation4[0],\n nextLocation = _getIndexAndLocation4[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better\n // what is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop); // popstate does not fire on hashchange in IE 11 and old (trident) Edge\n // https://developer.mozilla.org/de/docs/Web/API/Window/popstate_event\n\n window.addEventListener(HashChangeEventType, function () {\n var _getIndexAndLocation5 = getIndexAndLocation(),\n nextLocation = _getIndexAndLocation5[1]; // Ignore extraneous hashchange events.\n\n\n if (createPath(nextLocation) !== createPath(location)) {\n handlePop();\n }\n });\n var action = Action.Pop;\n\n var _getIndexAndLocation6 = getIndexAndLocation(),\n index = _getIndexAndLocation6[0],\n location = _getIndexAndLocation6[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function getBaseHref() {\n var base = document.querySelector('base');\n var href = '';\n\n if (base && base.getAttribute('href')) {\n var url = window.location.href;\n var hashIndex = url.indexOf('#');\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href;\n }\n\n function createHref(to) {\n return getBaseHref() + '#' + (typeof to === 'string' ? to : createPath(to));\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation7 = getIndexAndLocation();\n\n index = _getIndexAndLocation7[0];\n location = _getIndexAndLocation7[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr3 = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr3[0],\n url = _getHistoryStateAndUr3[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr4 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr4[0],\n url = _getHistoryStateAndUr4[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Memory history stores the current location in memory. It is designed for use\r\n * in stateful non-browser environments like tests and React Native.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#creatememoryhistory\r\n */\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options3 = options,\n _options3$initialEntr = _options3.initialEntries,\n initialEntries = _options3$initialEntr === void 0 ? ['/'] : _options3$initialEntr,\n initialIndex = _options3.initialIndex;\n var entries = initialEntries.map(function (entry) {\n var location = readOnly(_extends({\n pathname: '/',\n search: '',\n hash: '',\n state: null,\n key: createKey()\n }, typeof entry === 'string' ? parsePath(entry) : entry));\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \" + JSON.stringify(entry) + \")\") : void 0;\n return location;\n });\n var index = clamp(initialIndex == null ? entries.length - 1 : initialIndex, 0, entries.length - 1);\n var action = Action.Pop;\n var location = entries[index];\n var listeners = createEvents();\n var blockers = createEvents();\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n search: '',\n hash: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction, nextLocation) {\n action = nextAction;\n location = nextLocation;\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n applyTx(nextAction, nextLocation);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n entries[index] = nextLocation;\n applyTx(nextAction, nextLocation);\n }\n }\n\n function go(delta) {\n var nextIndex = clamp(index + delta, 0, entries.length - 1);\n var nextAction = Action.Pop;\n var nextLocation = entries[nextIndex];\n\n function retry() {\n go(delta);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index = nextIndex;\n applyTx(nextAction, nextLocation);\n }\n }\n\n var history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n return blockers.push(blocker);\n }\n };\n return history;\n} ////////////////////////////////////////////////////////////////////////////////\n// UTILS\n////////////////////////////////////////////////////////////////////////////////\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n\nfunction promptBeforeUnload(event) {\n // Cancel the event.\n event.preventDefault(); // Chrome (and legacy IE) requires returnValue to be set.\n\n event.returnValue = '';\n}\n\nfunction createEvents() {\n var handlers = [];\n return {\n get length() {\n return handlers.length;\n },\n\n push: function push(fn) {\n handlers.push(fn);\n return function () {\n handlers = handlers.filter(function (handler) {\n return handler !== fn;\n });\n };\n },\n call: function call(arg) {\n handlers.forEach(function (fn) {\n return fn && fn(arg);\n });\n }\n };\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\r\n * Creates a string URL path from the given pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createpath\r\n */\n\n\nfunction createPath(_ref) {\n var _ref$pathname = _ref.pathname,\n pathname = _ref$pathname === void 0 ? '/' : _ref$pathname,\n _ref$search = _ref.search,\n search = _ref$search === void 0 ? '' : _ref$search,\n _ref$hash = _ref.hash,\n hash = _ref$hash === void 0 ? '' : _ref$hash;\n if (search && search !== '?') pathname += search.charAt(0) === '?' ? search : '?' + search;\n if (hash && hash !== '#') pathname += hash.charAt(0) === '#' ? hash : '#' + hash;\n return pathname;\n}\n/**\r\n * Parses a string URL path into its separate pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#parsepath\r\n */\n\nfunction parsePath(path) {\n var parsedPath = {};\n\n if (path) {\n var hashIndex = path.indexOf('#');\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n var searchIndex = path.indexOf('?');\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport { Action, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, parsePath };\n//# sourceMappingURL=index.js.map\n","/**\n * React Router v6.3.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { parsePath, createMemoryHistory, Action } from 'history';\nexport { Action as NavigationType, createPath, parsePath } from 'history';\nimport { createContext, useContext, useMemo, useRef, useEffect, useCallback, createElement, useState, useLayoutEffect, Children, isValidElement, Fragment } from 'react';\n\nconst NavigationContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\n\nconst LocationContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\n\nconst RouteContext = /*#__PURE__*/createContext({\n outlet: null,\n matches: []\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\n\nfunction invariant(cond, message) {\n if (!cond) throw new Error(message);\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nconst alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? warning(false, message) : void 0;\n }\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/docs/en/v6/api#generatepath\n */\nfunction generatePath(path, params) {\n if (params === void 0) {\n params = {};\n }\n\n return path.replace(/:(\\w+)/g, (_, key) => {\n !(params[key] != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Missing \\\":\" + key + \"\\\" param\") : invariant(false) : void 0;\n return params[key];\n }).replace(/\\/*\\*$/, _ => params[\"*\"] == null ? \"\" : params[\"*\"].replace(/^\\/*/, \"/\"));\n}\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchroutes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], pathname);\n }\n\n return matches;\n}\n\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n\n routes.forEach((route, index) => {\n let meta = {\n relativePath: route.path || \"\",\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n !meta.relativePath.startsWith(parentPath) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\") : invariant(false) : void 0;\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta); // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n\n if (route.children && route.children.length > 0) {\n !(route.index !== true) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\")) : invariant(false) : void 0;\n flattenRoutes(route.children, branches, routesMeta, path);\n } // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n\n\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n });\n return branches;\n}\n\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\n\nconst isSplat = s => s === \"*\";\n\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\n\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\n\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/docs/en/v6/api#matchpath\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n\n let [matcher, paramNames] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = paramNames.reduce((memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(captureGroups[index] || \"\", paramName);\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\n\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n\n if (end === void 0) {\n end = true;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\")) : void 0;\n let paramNames = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/:(\\w+)/g, (_, paramName) => {\n paramNames.push(paramName);\n return \"([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else {\n regexpSource += end ? \"\\\\/*$\" // When matching to the end, ignore trailing slashes\n : // Otherwise, match a word boundary or a proceeding /. The word boundary restricts\n // parent routes to matching only their own words and nothing more, e.g. parent\n // route \"/home\" should not match \"/home2\".\n // Additionally, allow paths starting with `.`, `-`, `~`, and url-encoded entities,\n // but do not consume the character in the matched path so they can match against\n // nested paths.\n \"(?:(?=[.~-]|%[0-9A-F]{2})|\\\\b|\\\\/|$)\";\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" is a malformed URL segment. This is probably\") + (\" due to a bad percent encoding (\" + error + \").\")) : void 0;\n return value;\n }\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/docs/en/v6/api#resolvepath\n */\n\n\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\n\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction resolveTo(toArg, routePathnames, locationPathname) {\n let to = typeof toArg === \"string\" ? parsePath(toArg) : toArg;\n let toPathname = toArg === \"\" || to.pathname === \"\" ? \"/\" : to.pathname; // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n\n let from;\n\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\"); // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n } // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from); // Ensure the pathname has a trailing slash if the original to value had one.\n\n if (toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\") && !path.pathname.endsWith(\"/\")) {\n path.pathname += \"/\";\n }\n\n return path;\n}\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n let nextChar = pathname.charAt(basename.length);\n\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(basename.length) || \"/\";\n}\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usehref\n */\n\nfunction useHref(to) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n basename,\n navigator\n } = useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to);\n let joinedPathname = pathname;\n\n if (basename !== \"/\") {\n let toPathname = getToPathname(to);\n let endsWithSlash = toPathname != null && toPathname.endsWith(\"/\");\n joinedPathname = pathname === \"/\" ? basename + (endsWithSlash ? \"/\" : \"\") : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/docs/en/v6/api#useinroutercontext\n */\n\nfunction useInRouterContext() {\n return useContext(LocationContext) != null;\n}\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/docs/en/v6/api#uselocation\n */\n\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : invariant(false) : void 0;\n return useContext(LocationContext).location;\n}\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigationtype\n */\n\nfunction useNavigationType() {\n return useContext(LocationContext).navigationType;\n}\n/**\n * Returns true if the URL for the given \"to\" value matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/docs/en/v6/api#usematch\n */\n\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#usenavigate\n */\nfunction useNavigate() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n basename,\n navigator\n } = useContext(NavigationContext);\n let {\n matches\n } = useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(matches.map(match => match.pathnameBase));\n let activeRef = useRef(false);\n useEffect(() => {\n activeRef.current = true;\n });\n let navigate = useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(activeRef.current, \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\") : void 0;\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname);\n\n if (basename !== \"/\") {\n path.pathname = joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state);\n }, [basename, navigator, routePathnamesJson, locationPathname]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/createContext(null);\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/docs/en/v6/api#useoutletcontext\n */\n\nfunction useOutletContext() {\n return useContext(OutletContext);\n}\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useoutlet\n */\n\nfunction useOutlet(context) {\n let outlet = useContext(RouteContext).outlet;\n\n if (outlet) {\n return /*#__PURE__*/createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n\n return outlet;\n}\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useparams\n */\n\nfunction useParams() {\n let {\n matches\n } = useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useresolvedpath\n */\n\nfunction useResolvedPath(to) {\n let {\n matches\n } = useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(matches.map(match => match.pathnameBase));\n return useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname), [to, routePathnamesJson, locationPathname]);\n}\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/docs/en/v6/api#useroutes\n */\n\nfunction useRoutes(routes, locationArg) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n matches: parentMatches\n } = useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n\n let locationFromContext = useLocation();\n let location;\n\n if (locationArg) {\n var _parsedLocationArg$pa;\n\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(matches == null || matches[matches.length - 1].route.element !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" does not have an element. \" + \"This means it will render an with a null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n\n return _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase, match.pathnameBase])\n })), parentMatches);\n}\nfunction _renderMatches(matches, parentMatches) {\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n\n if (matches == null) return null;\n return matches.reduceRight((outlet, match, index) => {\n return /*#__PURE__*/createElement(RouteContext.Provider, {\n children: match.route.element !== undefined ? match.route.element : outlet,\n value: {\n outlet,\n matches: parentMatches.concat(matches.slice(0, index + 1))\n }\n });\n }, null);\n}\n\n/**\n * A that stores all entries in memory.\n *\n * @see https://reactrouter.com/docs/en/v6/api#memoryrouter\n */\nfunction MemoryRouter(_ref) {\n let {\n basename,\n children,\n initialEntries,\n initialIndex\n } = _ref;\n let historyRef = useRef();\n\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex\n });\n }\n\n let history = historyRef.current;\n let [state, setState] = useState({\n action: history.action,\n location: history.location\n });\n useLayoutEffect(() => history.listen(setState), [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/docs/en/v6/api#navigate\n */\nfunction Navigate(_ref2) {\n let {\n to,\n replace,\n state\n } = _ref2;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n \" may be used only in the context of a component.\") : invariant(false) : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!useContext(NavigationContext).static, \" must not be used on the initial render in a . \" + \"This is a no-op, but you should modify your code so the is \" + \"only ever rendered in response to some user interaction or state change.\") : void 0;\n let navigate = useNavigate();\n useEffect(() => {\n navigate(to, {\n replace,\n state\n });\n });\n return null;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/docs/en/v6/api#outlet\n */\nfunction Outlet(props) {\n return useOutlet(props.context);\n}\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/docs/en/v6/api#route\n */\nfunction Route(_props) {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"A is only ever to be used as the child of element, \" + \"never rendered directly. Please wrap your in a .\") : invariant(false) ;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a directly. Instead, you'll render a\n * router that is more specific to your environment such as a \n * in web browsers or a for server rendering.\n *\n * @see https://reactrouter.com/docs/en/v6/api#router\n */\nfunction Router(_ref3) {\n let {\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = Action.Pop,\n navigator,\n static: staticProp = false\n } = _ref3;\n !!useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot render a inside another .\" + \" You should never have more than one in your app.\") : invariant(false) : void 0;\n let basename = normalizePathname(basenameProp);\n let navigationContext = useMemo(() => ({\n basename,\n navigator,\n static: staticProp\n }), [basename, navigator, staticProp]);\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\"\n } = locationProp;\n let location = useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key\n };\n }, [basename, pathname, search, hash, state, key]);\n process.env.NODE_ENV !== \"production\" ? warning(location != null, \" is not able to match the URL \" + (\"\\\"\" + pathname + search + hash + \"\\\" because it does not start with the \") + \"basename, so the won't render anything.\") : void 0;\n\n if (location == null) {\n return null;\n }\n\n return /*#__PURE__*/createElement(NavigationContext.Provider, {\n value: navigationContext\n }, /*#__PURE__*/createElement(LocationContext.Provider, {\n children: children,\n value: {\n location,\n navigationType\n }\n }));\n}\n\n/**\n * A container for a nested tree of elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/docs/en/v6/api#routes\n */\nfunction Routes(_ref4) {\n let {\n children,\n location\n } = _ref4;\n return useRoutes(createRoutesFromChildren(children), location);\n} ///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `` element or an array of them. Used internally by\n * `` to create a route config from its children.\n *\n * @see https://reactrouter.com/docs/en/v6/api#createroutesfromchildren\n */\n\nfunction createRoutesFromChildren(children) {\n let routes = [];\n Children.forEach(children, element => {\n if (! /*#__PURE__*/isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n if (element.type === Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(routes, createRoutesFromChildren(element.props.children));\n return;\n }\n\n !(element.type === Route) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"[\" + (typeof element.type === \"string\" ? element.type : element.type.name) + \"] is not a component. All component children of must be a or \") : invariant(false) : void 0;\n let route = {\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n index: element.props.index,\n path: element.props.path\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(element.props.children);\n }\n\n routes.push(route);\n });\n return routes;\n}\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\n\nfunction renderMatches(matches) {\n return _renderMatches(matches);\n}\n\nexport { MemoryRouter, Navigate, Outlet, Route, Router, Routes, LocationContext as UNSAFE_LocationContext, NavigationContext as UNSAFE_NavigationContext, RouteContext as UNSAFE_RouteContext, createRoutesFromChildren, generatePath, matchPath, matchRoutes, renderMatches, resolvePath, useHref, useInRouterContext, useLocation, useMatch, useNavigate, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRoutes };\n//# sourceMappingURL=index.js.map\n","/**\n * React Router DOM v6.3.0\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { useRef, useState, useLayoutEffect, createElement, forwardRef, useCallback, useMemo } from 'react';\nimport { createBrowserHistory, createHashHistory } from 'history';\nimport { Router, useHref, createPath, useLocation, useResolvedPath, useNavigate } from 'react-router';\nexport { MemoryRouter, Navigate, NavigationType, Outlet, Route, Router, Routes, UNSAFE_LocationContext, UNSAFE_NavigationContext, UNSAFE_RouteContext, createPath, createRoutesFromChildren, generatePath, matchPath, matchRoutes, parsePath, renderMatches, resolvePath, useHref, useInRouterContext, useLocation, useMatch, useNavigate, useNavigationType, useOutlet, useOutletContext, useParams, useResolvedPath, useRoutes } from 'react-router';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nconst _excluded = [\"onClick\", \"reloadDocument\", \"replace\", \"state\", \"target\", \"to\"],\n _excluded2 = [\"aria-current\", \"caseSensitive\", \"className\", \"end\", \"style\", \"to\", \"children\"];\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n} ////////////////////////////////////////////////////////////////////////////////\n// COMPONENTS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A `` for use in web browsers. Provides the cleanest URLs.\n */\nfunction BrowserRouter(_ref) {\n let {\n basename,\n children,\n window\n } = _ref;\n let historyRef = useRef();\n\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({\n window\n });\n }\n\n let history = historyRef.current;\n let [state, setState] = useState({\n action: history.action,\n location: history.location\n });\n useLayoutEffect(() => history.listen(setState), [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n\n/**\n * A `` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nfunction HashRouter(_ref2) {\n let {\n basename,\n children,\n window\n } = _ref2;\n let historyRef = useRef();\n\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({\n window\n });\n }\n\n let history = historyRef.current;\n let [state, setState] = useState({\n action: history.action,\n location: history.location\n });\n useLayoutEffect(() => history.listen(setState), [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n\n/**\n * A `` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter(_ref3) {\n let {\n basename,\n children,\n history\n } = _ref3;\n const [state, setState] = useState({\n action: history.action,\n location: history.location\n });\n useLayoutEffect(() => history.listen(setState), [history]);\n return /*#__PURE__*/createElement(Router, {\n basename: basename,\n children: children,\n location: state.location,\n navigationType: state.action,\n navigator: history\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = /*#__PURE__*/forwardRef(function LinkWithRef(_ref4, ref) {\n let {\n onClick,\n reloadDocument,\n replace = false,\n state,\n target,\n to\n } = _ref4,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded);\n\n let href = useHref(to);\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target\n });\n\n function handleClick(event) {\n if (onClick) onClick(event);\n\n if (!event.defaultPrevented && !reloadDocument) {\n internalOnClick(event);\n }\n }\n\n return (\n /*#__PURE__*/\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n createElement(\"a\", _extends({}, rest, {\n href: href,\n onClick: handleClick,\n ref: ref,\n target: target\n }))\n );\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n Link.displayName = \"Link\";\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = /*#__PURE__*/forwardRef(function NavLinkWithRef(_ref5, ref) {\n let {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n children\n } = _ref5,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded2);\n\n let location = useLocation();\n let path = useResolvedPath(to);\n let locationPathname = location.pathname;\n let toPathname = path.pathname;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n toPathname = toPathname.toLowerCase();\n }\n\n let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(toPathname.length) === \"/\";\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n let className;\n\n if (typeof classNameProp === \"function\") {\n className = classNameProp({\n isActive\n });\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [classNameProp, isActive ? \"active\" : null].filter(Boolean).join(\" \");\n }\n\n let style = typeof styleProp === \"function\" ? styleProp({\n isActive\n }) : styleProp;\n return /*#__PURE__*/createElement(Link, _extends({}, rest, {\n \"aria-current\": ariaCurrent,\n className: className,\n ref: ref,\n style: style,\n to: to\n }), typeof children === \"function\" ? children({\n isActive\n }) : children);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n} ////////////////////////////////////////////////////////////////////////////////\n// HOOKS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Handles the click behavior for router `` components. This is useful if\n * you need to create custom `` components with the same click behavior we\n * use in our exported ``.\n */\n\n\nfunction useLinkClickHandler(to, _temp) {\n let {\n target,\n replace: replaceProp,\n state\n } = _temp === void 0 ? {} : _temp;\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to);\n return useCallback(event => {\n if (event.button === 0 && ( // Ignore everything but left clicks\n !target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n ) {\n event.preventDefault(); // If the URL hasn't changed, a regular will do a replace instead of\n // a push, so do the same here.\n\n let replace = !!replaceProp || createPath(location) === createPath(path);\n navigate(to, {\n replace,\n state\n });\n }\n }, [location, navigate, path, replaceProp, state, target, to]);\n}\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\n\nfunction useSearchParams(defaultInit) {\n process.env.NODE_ENV !== \"production\" ? warning(typeof URLSearchParams !== \"undefined\", \"You cannot use the `useSearchParams` hook in a browser that does not \" + \"support the URLSearchParams API. If you need to support Internet \" + \"Explorer 11, we recommend you load a polyfill such as \" + \"https://github.com/ungap/url-search-params\\n\\n\" + \"If you're unsure how to load polyfills, we recommend you check out \" + \"https://polyfill.io/v3/ which provides some recommendations about how \" + \"to load polyfills only for users that need them, instead of for every \" + \"user.\") : void 0;\n let defaultSearchParamsRef = useRef(createSearchParams(defaultInit));\n let location = useLocation();\n let searchParams = useMemo(() => {\n let searchParams = createSearchParams(location.search);\n\n for (let key of defaultSearchParamsRef.current.keys()) {\n if (!searchParams.has(key)) {\n defaultSearchParamsRef.current.getAll(key).forEach(value => {\n searchParams.append(key, value);\n });\n }\n }\n\n return searchParams;\n }, [location.search]);\n let navigate = useNavigate();\n let setSearchParams = useCallback((nextInit, navigateOptions) => {\n navigate(\"?\" + createSearchParams(nextInit), navigateOptions);\n }, [navigate]);\n return [searchParams, setSearchParams];\n}\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nfunction createSearchParams(init) {\n if (init === void 0) {\n init = \"\";\n }\n\n return new URLSearchParams(typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(Array.isArray(value) ? value.map(v => [key, v]) : [[key, value]]);\n }, []));\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink, createSearchParams, HistoryRouter as unstable_HistoryRouter, useLinkClickHandler, useSearchParams };\n//# sourceMappingURL=index.js.map\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(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, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, 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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\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\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, 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, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","// A packages cache that makes sure that we don't inject the same packageName twice in the same bundle -\n// this cache is local to the module closure inside this bundle\nvar packagesCache = {};\n// Cache access to window to avoid IE11 memory leak.\nvar _win = undefined;\ntry {\n _win = window;\n}\ncatch (e) {\n /* no-op */\n}\nexport function setVersion(packageName, packageVersion) {\n if (typeof _win !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var packages = (_win.__packages__ = _win.__packages__ || {});\n // We allow either the global packages or local packages caches to invalidate so testing can\n // just clear the global to set this state\n if (!packages[packageName] || !packagesCache[packageName]) {\n packagesCache[packageName] = packageVersion;\n var versions = (packages[packageName] = packages[packageName] || []);\n versions.push(packageVersion);\n }\n }\n}\n//# sourceMappingURL=setVersion.js.map","import { setVersion } from './setVersion';\nexport { setVersion };\nsetVersion('@fluentui/set-version', '6.0.0');\n//# sourceMappingURL=index.js.map","export var GLOBAL_STYLESHEET_KEY = '__global__';\nexport var SHADOW_DOM_STYLESHEET_SETTING = '__shadow_dom_stylesheet__';\nexport var DEFAULT_SHADOW_CONFIG = {\n stylesheetKey: GLOBAL_STYLESHEET_KEY,\n inShadow: false,\n window: undefined,\n __isShadowConfig__: true,\n};\nexport var makeShadowConfig = function (stylesheetKey, inShadow, window) {\n return {\n stylesheetKey: stylesheetKey,\n inShadow: inShadow,\n window: window,\n __isShadowConfig__: true,\n };\n};\nexport var isShadowConfig = function (value) {\n if (!(value && isRecord(value))) {\n return false;\n }\n return value.__isShadowConfig__ === true;\n};\nfunction isRecord(value) {\n return value !== null && typeof value === 'object' && !Array.isArray(value);\n}\n//# sourceMappingURL=shadowConfig.js.map","import { isShadowConfig } from './shadowConfig';\n/**\n * Separates the classes and style objects. Any classes that are pre-registered\n * args are auto expanded into objects.\n */\nexport function extractStyleParts(sheet) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var classes = [];\n var objects = [];\n var stylesheet = sheet;\n function _processArgs(argsList) {\n for (var _i = 0, argsList_1 = argsList; _i < argsList_1.length; _i++) {\n var arg = argsList_1[_i];\n if (arg && !isShadowConfig(arg)) {\n if (typeof arg === 'string') {\n if (arg.indexOf(' ') >= 0) {\n _processArgs(arg.split(' '));\n }\n else {\n var translatedArgs = stylesheet.argsFromClassName(arg);\n if (translatedArgs) {\n _processArgs(translatedArgs);\n }\n else {\n // Avoid adding the same class twice.\n if (classes.indexOf(arg) === -1) {\n classes.push(arg);\n }\n }\n }\n }\n else if (Array.isArray(arg)) {\n _processArgs(arg);\n }\n else if (typeof arg === 'object') {\n objects.push(arg);\n }\n }\n }\n }\n _processArgs(args);\n return {\n classes: classes,\n objects: objects,\n };\n}\n//# sourceMappingURL=extractStyleParts.js.map","import { DEFAULT_SHADOW_CONFIG } from './shadowConfig';\n/**\n * Sets the current RTL value.\n */\nexport function setRTL(isRTL) {\n if (_rtl !== isRTL) {\n _rtl = isRTL;\n }\n}\n/**\n * Gets the current RTL value.\n */\nexport function getRTL() {\n if (_rtl === undefined) {\n _rtl =\n // eslint-disable-next-line no-restricted-globals\n typeof document !== 'undefined' &&\n // eslint-disable-next-line no-restricted-globals\n !!document.documentElement &&\n // eslint-disable-next-line no-restricted-globals\n document.documentElement.getAttribute('dir') === 'rtl';\n }\n return _rtl;\n}\n// This has been split into 2 lines because it was working in Fabric due to the code being transpiled to es5, so this\n// was converted to var while not working in Fluent that uses babel to transpile the code to be es6-like. Splitting the\n// logic into two lines, however, allows it to work in both scenarios.\nvar _rtl;\n_rtl = getRTL();\nexport function getStyleOptions() {\n return {\n rtl: getRTL(),\n shadowConfig: DEFAULT_SHADOW_CONFIG,\n };\n}\n//# sourceMappingURL=StyleOptionsState.js.map","import { __assign } from \"tslib\";\nimport { GLOBAL_STYLESHEET_KEY, SHADOW_DOM_STYLESHEET_SETTING } from './shadowConfig';\nexport var InjectionMode = {\n /**\n * Avoids style injection, use getRules() to read the styles.\n */\n none: 0,\n /**\n * Inserts rules using the insertRule api.\n */\n insertNode: 1,\n /**\n * Appends rules using appendChild.\n */\n appendChild: 2,\n};\nexport var STYLESHEET_SETTING = '__stylesheet__';\n/**\n * MSIE 11 doesn't cascade styles based on DOM ordering, but rather on the order that each style node\n * is created. As such, to maintain consistent priority, IE11 should reuse a single style node.\n */\nvar REUSE_STYLE_NODE = typeof navigator !== 'undefined' && /rv:11.0/.test(navigator.userAgent);\nvar _global = {};\n// Grab window.\ntry {\n // Why the cast?\n // if compiled/type checked in same program with `@fluentui/font-icons-mdl2` which extends `Window` on global\n // ( check packages/font-icons-mdl2/src/index.ts ) the definitions don't match! Thus the need of this extra assertion\n _global = (window || {});\n}\ncatch (_a) {\n /* leave as blank object */\n}\nvar _stylesheet;\n/**\n * Represents the state of styles registered in the page. Abstracts\n * the surface for adding styles to the stylesheet, exposes helpers\n * for reading the styles registered in server rendered scenarios.\n *\n * @public\n */\nvar Stylesheet = /** @class */ (function () {\n function Stylesheet(config, serializedStylesheet) {\n var _a, _b, _c, _d, _e, _f;\n this._rules = [];\n this._preservedRules = [];\n this._counter = 0;\n this._keyToClassName = {};\n this._onInsertRuleCallbacks = [];\n this._onResetCallbacks = [];\n this._classNameToArgs = {};\n // If there is no document we won't have an element to inject into.\n this._config = __assign({ injectionMode: typeof document === 'undefined' ? InjectionMode.none : InjectionMode.insertNode, defaultPrefix: 'css', namespace: undefined, cspSettings: undefined }, config);\n this._classNameToArgs = (_a = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.classNameToArgs) !== null && _a !== void 0 ? _a : this._classNameToArgs;\n this._counter = (_b = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.counter) !== null && _b !== void 0 ? _b : this._counter;\n this._keyToClassName = (_d = (_c = this._config.classNameCache) !== null && _c !== void 0 ? _c : serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.keyToClassName) !== null && _d !== void 0 ? _d : this._keyToClassName;\n this._preservedRules = (_e = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.preservedRules) !== null && _e !== void 0 ? _e : this._preservedRules;\n this._rules = (_f = serializedStylesheet === null || serializedStylesheet === void 0 ? void 0 : serializedStylesheet.rules) !== null && _f !== void 0 ? _f : this._rules;\n }\n /**\n * Gets the singleton instance.\n */\n Stylesheet.getInstance = function (shadowConfig) {\n _stylesheet = _global[STYLESHEET_SETTING];\n if (_global[SHADOW_DOM_STYLESHEET_SETTING]) {\n return _global[SHADOW_DOM_STYLESHEET_SETTING].getInstance(shadowConfig);\n }\n if (!_stylesheet || (_stylesheet._lastStyleElement && _stylesheet._lastStyleElement.ownerDocument !== document)) {\n var fabricConfig = (_global === null || _global === void 0 ? void 0 : _global.FabricConfig) || {};\n var stylesheet = new Stylesheet(fabricConfig.mergeStyles, fabricConfig.serializedStylesheet);\n _stylesheet = stylesheet;\n _global[STYLESHEET_SETTING] = stylesheet;\n }\n return _stylesheet;\n };\n /**\n * Serializes the Stylesheet instance into a format which allows rehydration on creation.\n * @returns string representation of `ISerializedStylesheet` interface.\n */\n Stylesheet.prototype.serialize = function () {\n return JSON.stringify({\n classNameToArgs: this._classNameToArgs,\n counter: this._counter,\n keyToClassName: this._keyToClassName,\n preservedRules: this._preservedRules,\n rules: this._rules,\n });\n };\n /**\n * Configures the stylesheet.\n */\n Stylesheet.prototype.setConfig = function (config) {\n this._config = __assign(__assign({}, this._config), config);\n };\n /**\n * Configures a reset callback.\n *\n * @param callback - A callback which will be called when the Stylesheet is reset.\n * @returns function which when called un-registers provided callback.\n */\n Stylesheet.prototype.onReset = function (callback) {\n var _this = this;\n this._onResetCallbacks.push(callback);\n return function () {\n _this._onResetCallbacks = _this._onResetCallbacks.filter(function (cb) { return cb !== callback; });\n };\n };\n /**\n * Configures an insert rule callback.\n *\n * @param callback - A callback which will be called when a rule is inserted.\n * @returns function which when called un-registers provided callback.\n */\n Stylesheet.prototype.onInsertRule = function (callback) {\n var _this = this;\n this._onInsertRuleCallbacks.push(callback);\n return function () {\n _this._onInsertRuleCallbacks = _this._onInsertRuleCallbacks.filter(function (cb) { return cb !== callback; });\n };\n };\n /**\n * Generates a unique classname.\n *\n * @param displayName - Optional value to use as a prefix.\n */\n Stylesheet.prototype.getClassName = function (displayName) {\n var namespace = this._config.namespace;\n var prefix = displayName || this._config.defaultPrefix;\n return \"\".concat(namespace ? namespace + '-' : '').concat(prefix, \"-\").concat(this._counter++);\n };\n /**\n * Used internally to cache information about a class which was\n * registered with the stylesheet.\n */\n Stylesheet.prototype.cacheClassName = function (className, key, args, rules) {\n this._keyToClassName[this._getCacheKey(key)] = className;\n this._classNameToArgs[className] = {\n args: args,\n rules: rules,\n };\n };\n /**\n * Gets the appropriate classname given a key which was previously\n * registered using cacheClassName.\n */\n Stylesheet.prototype.classNameFromKey = function (key) {\n return this._keyToClassName[this._getCacheKey(key)];\n };\n /**\n * Gets all classnames cache with the stylesheet.\n */\n Stylesheet.prototype.getClassNameCache = function () {\n return this._keyToClassName;\n };\n /**\n * Gets the arguments associated with a given classname which was\n * previously registered using cacheClassName.\n */\n Stylesheet.prototype.argsFromClassName = function (className) {\n var entry = this._classNameToArgs[className];\n return entry && entry.args;\n };\n /**\n * Gets the rules associated with a given classname which was\n * previously registered using cacheClassName.\n */\n Stylesheet.prototype.insertedRulesFromClassName = function (className) {\n var entry = this._classNameToArgs[className];\n return entry && entry.rules;\n };\n /**\n * Inserts a css rule into the stylesheet.\n * @param preserve - Preserves the rule beyond a reset boundary.\n */\n Stylesheet.prototype.insertRule = function (rule, preserve, stylesheetKey) {\n if (stylesheetKey === void 0) { stylesheetKey = GLOBAL_STYLESHEET_KEY; }\n var injectionMode = this._config.injectionMode;\n var element = injectionMode !== InjectionMode.none ? this._getStyleElement() : undefined;\n if (preserve) {\n this._preservedRules.push(rule);\n }\n if (element) {\n switch (injectionMode) {\n case InjectionMode.insertNode:\n this._insertRuleIntoSheet(element.sheet, rule);\n break;\n case InjectionMode.appendChild:\n element.appendChild(document.createTextNode(rule));\n break;\n }\n }\n else {\n this._rules.push(rule);\n }\n // eslint-disable-next-line deprecation/deprecation\n if (this._config.onInsertRule) {\n // eslint-disable-next-line deprecation/deprecation\n this._config.onInsertRule(rule);\n }\n this._onInsertRuleCallbacks.forEach(function (callback) {\n return callback({ key: stylesheetKey, sheet: (element ? element.sheet : undefined), rule: rule });\n });\n };\n /**\n * Gets all rules registered with the stylesheet; only valid when\n * using InsertionMode.none.\n */\n Stylesheet.prototype.getRules = function (includePreservedRules) {\n return (includePreservedRules ? this._preservedRules.join('') : '') + this._rules.join('');\n };\n /**\n * Resets the internal state of the stylesheet. Only used in server\n * rendered scenarios where we're using InsertionMode.none.\n */\n Stylesheet.prototype.reset = function () {\n this._rules = [];\n this._counter = 0;\n this._classNameToArgs = {};\n this._keyToClassName = {};\n this._onResetCallbacks.forEach(function (callback) { return callback(); });\n };\n // Forces the regeneration of incoming styles without totally resetting the stylesheet.\n Stylesheet.prototype.resetKeys = function () {\n this._keyToClassName = {};\n };\n Stylesheet.prototype._createStyleElement = function () {\n var _a;\n var doc = ((_a = this._config.window) === null || _a === void 0 ? void 0 : _a.document) || document;\n var head = doc.head;\n var styleElement = doc.createElement('style');\n var nodeToInsertBefore = null;\n styleElement.setAttribute('data-merge-styles', 'true');\n var cspSettings = this._config.cspSettings;\n if (cspSettings) {\n if (cspSettings.nonce) {\n styleElement.setAttribute('nonce', cspSettings.nonce);\n }\n }\n if (this._lastStyleElement) {\n // If the `nextElementSibling` is null, then the insertBefore will act as a regular append.\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore#Syntax\n nodeToInsertBefore = this._lastStyleElement.nextElementSibling;\n }\n else {\n var placeholderStyleTag = this._findPlaceholderStyleTag();\n if (placeholderStyleTag) {\n nodeToInsertBefore = placeholderStyleTag.nextElementSibling;\n }\n else {\n nodeToInsertBefore = head.childNodes[0];\n }\n }\n head.insertBefore(styleElement, head.contains(nodeToInsertBefore) ? nodeToInsertBefore : null);\n this._lastStyleElement = styleElement;\n return styleElement;\n };\n Stylesheet.prototype._insertRuleIntoSheet = function (sheet, rule) {\n if (!sheet) {\n return false;\n }\n try {\n sheet.insertRule(rule, sheet.cssRules.length);\n return true;\n }\n catch (e) {\n // The browser will throw exceptions on unsupported rules (such as a moz prefix in webkit.)\n // We need to swallow the exceptions for this scenario, otherwise we'd need to filter\n // which could be slower and bulkier.\n }\n return false;\n };\n Stylesheet.prototype._getCacheKey = function (key) {\n return key;\n };\n Stylesheet.prototype._getStyleElement = function () {\n var _this = this;\n if (!this._styleElement) {\n this._styleElement = this._createStyleElement();\n if (!REUSE_STYLE_NODE) {\n // Reset the style element on the next frame.\n var win = this._config.window || window;\n win.requestAnimationFrame(function () {\n _this._styleElement = undefined;\n });\n }\n }\n return this._styleElement;\n };\n Stylesheet.prototype._findPlaceholderStyleTag = function () {\n var head = document.head;\n if (head) {\n return head.querySelector('style[data-merge-styles]');\n }\n return null;\n };\n return Stylesheet;\n}());\nexport { Stylesheet };\n//# sourceMappingURL=Stylesheet.js.map","var rules = {};\nexport function kebabRules(rulePairs, index) {\n var rule = rulePairs[index];\n if (rule.charAt(0) !== '-') {\n rulePairs[index] = rules[rule] = rules[rule] || rule.replace(/([A-Z])/g, '-$1').toLowerCase();\n }\n}\n//# sourceMappingURL=kebabRules.js.map","var _vendorSettings;\nexport function getVendorSettings() {\n var _a;\n if (!_vendorSettings) {\n // eslint-disable-next-line no-restricted-globals\n var doc = typeof document !== 'undefined' ? document : undefined;\n var nav = typeof navigator !== 'undefined' ? navigator : undefined;\n var userAgent = (_a = nav === null || nav === void 0 ? void 0 : nav.userAgent) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n if (!doc) {\n _vendorSettings = {\n isWebkit: true,\n isMoz: true,\n isOpera: true,\n isMs: true,\n };\n }\n else {\n _vendorSettings = {\n isWebkit: !!(doc && 'WebkitAppearance' in doc.documentElement.style),\n isMoz: !!(userAgent && userAgent.indexOf('firefox') > -1),\n isOpera: !!(userAgent && userAgent.indexOf('opera') > -1),\n isMs: !!(nav && (/rv:11.0/i.test(nav.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent))),\n };\n }\n }\n return _vendorSettings;\n}\n/**\n * Sets the vendor settings for prefixing and vendor specific operations.\n */\nexport function setVendorSettings(vendorSettings) {\n _vendorSettings = vendorSettings;\n}\n//# sourceMappingURL=getVendorSettings.js.map","import { getVendorSettings } from '../getVendorSettings';\nvar autoPrefixNames = {\n 'user-select': 1,\n};\nexport function prefixRules(rulePairs, index) {\n var vendorSettings = getVendorSettings();\n var name = rulePairs[index];\n if (autoPrefixNames[name]) {\n var value = rulePairs[index + 1];\n if (autoPrefixNames[name]) {\n if (vendorSettings.isWebkit) {\n rulePairs.push('-webkit-' + name, value);\n }\n if (vendorSettings.isMoz) {\n rulePairs.push('-moz-' + name, value);\n }\n if (vendorSettings.isMs) {\n rulePairs.push('-ms-' + name, value);\n }\n if (vendorSettings.isOpera) {\n rulePairs.push('-o-' + name, value);\n }\n }\n }\n}\n//# sourceMappingURL=prefixRules.js.map","var NON_PIXEL_NUMBER_PROPS = [\n 'column-count',\n 'font-weight',\n 'flex',\n 'flex-grow',\n 'flex-shrink',\n 'fill-opacity',\n 'opacity',\n 'order',\n 'z-index',\n 'zoom',\n];\nexport function provideUnits(rulePairs, index) {\n var name = rulePairs[index];\n var value = rulePairs[index + 1];\n if (typeof value === 'number') {\n var isNonPixelProp = NON_PIXEL_NUMBER_PROPS.indexOf(name) > -1;\n var isVariableOrPrefixed = name.indexOf('--') > -1;\n var unit = isNonPixelProp || isVariableOrPrefixed ? '' : 'px';\n rulePairs[index + 1] = \"\".concat(value).concat(unit);\n }\n}\n//# sourceMappingURL=provideUnits.js.map","var _a;\nvar LEFT = 'left';\nvar RIGHT = 'right';\nvar NO_FLIP = '@noflip';\nvar NAME_REPLACEMENTS = (_a = {},\n _a[LEFT] = RIGHT,\n _a[RIGHT] = LEFT,\n _a);\nvar VALUE_REPLACEMENTS = {\n 'w-resize': 'e-resize',\n 'sw-resize': 'se-resize',\n 'nw-resize': 'ne-resize',\n};\n/**\n * RTLifies the rulePair in the array at the current index. This mutates the array for performance\n * reasons.\n */\nexport function rtlifyRules(options, rulePairs, index) {\n if (options.rtl) {\n var name_1 = rulePairs[index];\n if (!name_1) {\n return;\n }\n var value = rulePairs[index + 1];\n if (typeof value === 'string' && value.indexOf(NO_FLIP) >= 0) {\n rulePairs[index + 1] = value.replace(/\\s*(?:\\/\\*\\s*)?\\@noflip\\b(?:\\s*\\*\\/)?\\s*?/g, '');\n }\n else if (name_1.indexOf(LEFT) >= 0) {\n rulePairs[index] = name_1.replace(LEFT, RIGHT);\n }\n else if (name_1.indexOf(RIGHT) >= 0) {\n rulePairs[index] = name_1.replace(RIGHT, LEFT);\n }\n else if (String(value).indexOf(LEFT) >= 0) {\n rulePairs[index + 1] = value.replace(LEFT, RIGHT);\n }\n else if (String(value).indexOf(RIGHT) >= 0) {\n rulePairs[index + 1] = value.replace(RIGHT, LEFT);\n }\n else if (NAME_REPLACEMENTS[name_1]) {\n rulePairs[index] = NAME_REPLACEMENTS[name_1];\n }\n else if (VALUE_REPLACEMENTS[value]) {\n rulePairs[index + 1] = VALUE_REPLACEMENTS[value];\n }\n else {\n switch (name_1) {\n case 'margin':\n case 'padding':\n rulePairs[index + 1] = flipQuad(value);\n break;\n case 'box-shadow':\n rulePairs[index + 1] = negateNum(value, 0);\n break;\n }\n }\n }\n}\n/**\n * Given a string value in a space delimited format (e.g. \"1 2 3 4\"), negates a particular value.\n */\nfunction negateNum(value, partIndex) {\n var parts = value.split(' ');\n var numberVal = parseInt(parts[partIndex], 10);\n parts[0] = parts[0].replace(String(numberVal), String(numberVal * -1));\n return parts.join(' ');\n}\n/**\n * Given a string quad, flips the left and right values.\n */\nfunction flipQuad(value) {\n if (typeof value === 'string') {\n var parts = value.split(' ');\n if (parts.length === 4) {\n return \"\".concat(parts[0], \" \").concat(parts[3], \" \").concat(parts[2], \" \").concat(parts[1]);\n }\n }\n return value;\n}\n//# sourceMappingURL=rtlifyRules.js.map","/**\n * Split a string into tokens separated by whitespace, except all text within parentheses\n * is treated as a single token (whitespace is ignored within parentheses).\n *\n * Unlike String.split(' '), multiple consecutive space characters are collapsed and\n * removed from the returned array (including leading and trailing spaces).\n *\n * For example:\n * `tokenizeWithParentheses(\"3px calc(var(--x) / 2) 9px 0 \")`\n * => `[\"3px\", \"calc(var(--x) / 2)\", \"9px\", \"0\"]`\n *\n * @returns The array of tokens. Returns an empty array if the string was empty or contained only whitespace.\n */\nexport function tokenizeWithParentheses(value) {\n var parts = [];\n var partStart = 0;\n var parens = 0;\n for (var i = 0; i < value.length; i++) {\n switch (value[i]) {\n case '(':\n parens++;\n break;\n case ')':\n if (parens) {\n parens--;\n }\n break;\n case '\\t':\n case ' ':\n if (!parens) {\n // Add the new part if it's not an empty string\n if (i > partStart) {\n parts.push(value.substring(partStart, i));\n }\n partStart = i + 1;\n }\n break;\n }\n }\n // Add the last part\n if (partStart < value.length) {\n parts.push(value.substring(partStart));\n }\n return parts;\n}\n//# sourceMappingURL=tokenizeWithParentheses.js.map","import { __spreadArray } from \"tslib\";\nimport { Stylesheet } from './Stylesheet';\nimport { kebabRules } from './transforms/kebabRules';\nimport { prefixRules } from './transforms/prefixRules';\nimport { provideUnits } from './transforms/provideUnits';\nimport { rtlifyRules } from './transforms/rtlifyRules';\nimport { tokenizeWithParentheses } from './tokenizeWithParentheses';\nvar DISPLAY_NAME = 'displayName';\nfunction getDisplayName(rules) {\n var rootStyle = rules && rules['&'];\n return rootStyle ? rootStyle.displayName : undefined;\n}\nvar globalSelectorRegExp = /\\:global\\((.+?)\\)/g;\n/**\n * Finds comma separated selectors in a :global() e.g. \":global(.class1, .class2, .class3)\"\n * and wraps them each in their own global \":global(.class1), :global(.class2), :global(.class3)\"\n *\n * @param selectorWithGlobals The selector to process\n * @returns The updated selector\n */\nfunction expandCommaSeparatedGlobals(selectorWithGlobals) {\n // We the selector does not have a :global() we can shortcut\n if (!globalSelectorRegExp.test(selectorWithGlobals)) {\n return selectorWithGlobals;\n }\n var replacementInfo = [];\n var findGlobal = /\\:global\\((.+?)\\)/g;\n var match = null;\n // Create a result list for global selectors so we can replace them.\n while ((match = findGlobal.exec(selectorWithGlobals))) {\n // Only if the found selector is a comma separated list we'll process it.\n if (match[1].indexOf(',') > -1) {\n replacementInfo.push([\n match.index,\n match.index + match[0].length,\n // Wrap each of the found selectors in :global()\n match[1]\n .split(',')\n .map(function (v) { return \":global(\".concat(v.trim(), \")\"); })\n .join(', '),\n ]);\n }\n }\n // Replace the found selectors with their wrapped variants in reverse order\n return replacementInfo\n .reverse()\n .reduce(function (selector, _a) {\n var matchIndex = _a[0], matchEndIndex = _a[1], replacement = _a[2];\n var prefix = selector.slice(0, matchIndex);\n var suffix = selector.slice(matchEndIndex);\n return prefix + replacement + suffix;\n }, selectorWithGlobals);\n}\nfunction isSelector(potentialSelector) {\n return potentialSelector.indexOf(':global(') >= 0 || potentialSelector.indexOf(':') === 0;\n}\nfunction expandSelector(newSelector, currentSelector) {\n if (newSelector.indexOf(':global(') >= 0) {\n return newSelector.replace(globalSelectorRegExp, '$1');\n }\n else if (newSelector.indexOf(':host(') === 0) {\n return newSelector;\n }\n else if (newSelector.indexOf(':') === 0) {\n return currentSelector + newSelector;\n }\n else if (newSelector.indexOf('&') < 0) {\n return currentSelector + ' ' + newSelector;\n }\n return newSelector;\n}\nfunction extractSelector(currentSelector, rules, selector, value, stylesheet) {\n if (rules === void 0) { rules = { __order: [] }; }\n if (selector.indexOf('@') === 0) {\n selector = selector + '{' + currentSelector;\n extractRules([value], rules, selector, stylesheet);\n }\n else if (selector.indexOf(',') > -1) {\n expandCommaSeparatedGlobals(selector)\n .split(',')\n .map(function (s) { return s.trim(); })\n .forEach(function (separatedSelector) {\n return extractRules([value], rules, expandSelector(separatedSelector, currentSelector), stylesheet);\n });\n }\n else {\n extractRules([value], rules, expandSelector(selector, currentSelector), stylesheet);\n }\n}\nfunction extractRules(args, rules, currentSelector, stylesheet) {\n if (rules === void 0) { rules = { __order: [] }; }\n if (currentSelector === void 0) { currentSelector = '&'; }\n var currentRules = rules[currentSelector];\n if (!currentRules) {\n currentRules = {};\n rules[currentSelector] = currentRules;\n rules.__order.push(currentSelector);\n }\n for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {\n var arg = args_1[_i];\n // If the arg is a string, we need to look up the class map and merge.\n if (typeof arg === 'string') {\n var expandedRules = stylesheet.argsFromClassName(arg);\n if (expandedRules) {\n extractRules(expandedRules, rules, currentSelector, stylesheet);\n }\n // Else if the arg is an array, we need to recurse in.\n }\n else if (Array.isArray(arg)) {\n extractRules(arg, rules, currentSelector, stylesheet);\n }\n else {\n for (var prop in arg) {\n if (arg.hasOwnProperty(prop)) {\n var propValue = arg[prop];\n if (prop === 'selectors') {\n // every child is a selector.\n var selectors = arg.selectors;\n for (var newSelector in selectors) {\n if (selectors.hasOwnProperty(newSelector)) {\n extractSelector(currentSelector, rules, newSelector, selectors[newSelector], stylesheet);\n }\n }\n }\n else if (typeof propValue === 'object' || isSelector(prop)) {\n // prop is a selector.\n if (propValue !== null && propValue !== undefined) {\n extractSelector(currentSelector, rules, prop, propValue, stylesheet);\n }\n }\n else {\n if (propValue !== undefined) {\n // Else, add the rule to the currentSelector.\n if (prop === 'margin' || prop === 'padding') {\n expandQuads(currentRules, prop, propValue);\n }\n else {\n currentRules[prop] = propValue;\n }\n }\n }\n }\n }\n }\n }\n return rules;\n}\nfunction expandQuads(currentRules, name, value) {\n var parts = typeof value === 'string' ? tokenizeWithParentheses(value) : [value];\n if (parts.length === 0) {\n parts.push(value);\n }\n if (parts[parts.length - 1] === '!important') {\n // Remove !important from parts, and append it to each part individually\n parts = parts.slice(0, -1).map(function (p) { return p + ' !important'; });\n }\n currentRules[name + 'Top'] = parts[0];\n currentRules[name + 'Right'] = parts[1] || parts[0];\n currentRules[name + 'Bottom'] = parts[2] || parts[0];\n currentRules[name + 'Left'] = parts[3] || parts[1] || parts[0];\n}\nfunction getKeyForRules(options, rules) {\n var serialized = [options.rtl ? 'rtl' : 'ltr'];\n var hasProps = false;\n for (var _i = 0, _a = rules.__order; _i < _a.length; _i++) {\n var selector = _a[_i];\n serialized.push(selector);\n var rulesForSelector = rules[selector];\n for (var propName in rulesForSelector) {\n if (rulesForSelector.hasOwnProperty(propName) && rulesForSelector[propName] !== undefined) {\n hasProps = true;\n serialized.push(propName, rulesForSelector[propName]);\n }\n }\n }\n return hasProps ? serialized.join('') : undefined;\n}\nfunction repeatString(target, count) {\n if (count <= 0) {\n return '';\n }\n if (count === 1) {\n return target;\n }\n return target + repeatString(target, count - 1);\n}\nexport function serializeRuleEntries(options, ruleEntries) {\n if (!ruleEntries) {\n return '';\n }\n var allEntries = [];\n for (var entry in ruleEntries) {\n if (ruleEntries.hasOwnProperty(entry) && entry !== DISPLAY_NAME && ruleEntries[entry] !== undefined) {\n allEntries.push(entry, ruleEntries[entry]);\n }\n }\n // Apply transforms.\n for (var i = 0; i < allEntries.length; i += 2) {\n kebabRules(allEntries, i);\n provideUnits(allEntries, i);\n rtlifyRules(options, allEntries, i);\n prefixRules(allEntries, i);\n }\n // Apply punctuation.\n for (var i = 1; i < allEntries.length; i += 4) {\n allEntries.splice(i, 1, ':', allEntries[i], ';');\n }\n return allEntries.join('');\n}\nexport function styleToRegistration(options) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var stylesheet = (_a = options.stylesheet) !== null && _a !== void 0 ? _a : Stylesheet.getInstance(options.shadowConfig);\n var rules = extractRules(args, undefined, undefined, stylesheet);\n var key = getKeyForRules(options, rules);\n if (key) {\n var registration = {\n className: stylesheet.classNameFromKey(key),\n key: key,\n args: args,\n };\n if (!registration.className) {\n registration.className = stylesheet.getClassName(getDisplayName(rules));\n var rulesToInsert = [];\n for (var _b = 0, _c = rules.__order; _b < _c.length; _b++) {\n var selector = _c[_b];\n rulesToInsert.push(selector, serializeRuleEntries(options, rules[selector]));\n }\n registration.rulesToInsert = rulesToInsert;\n }\n return registration;\n }\n return undefined;\n}\n/**\n * Insert style to stylesheet.\n * @param registration Style registration.\n * @param specificityMultiplier Number of times classname selector is repeated in the css rule.\n * This is to increase css specificity in case it's needed. Default to 1.\n */\nexport function applyRegistration(registration, specificityMultiplier, shadowConfig, sheet) {\n if (specificityMultiplier === void 0) { specificityMultiplier = 1; }\n var stylesheet = sheet !== null && sheet !== void 0 ? sheet : Stylesheet.getInstance(shadowConfig);\n var className = registration.className, key = registration.key, args = registration.args, rulesToInsert = registration.rulesToInsert;\n if (rulesToInsert) {\n // rulesToInsert is an ordered array of selector/rule pairs.\n for (var i = 0; i < rulesToInsert.length; i += 2) {\n var rules = rulesToInsert[i + 1];\n if (rules) {\n var selector = rulesToInsert[i];\n selector = selector.replace(/&/g, repeatString(\".\".concat(registration.className), specificityMultiplier));\n // Insert. Note if a media query, we must close the query with a final bracket.\n var processedRule = \"\".concat(selector, \"{\").concat(rules, \"}\").concat(selector.indexOf('@') === 0 ? '}' : '');\n stylesheet.insertRule(processedRule);\n }\n }\n stylesheet.cacheClassName(className, key, args, rulesToInsert);\n }\n}\nexport function styleToClassName(options) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var registration = styleToRegistration.apply(void 0, __spreadArray([options], args, false));\n if (registration) {\n applyRegistration(registration, options.specificityMultiplier, options.shadowConfig, options.stylesheet);\n return registration.className;\n }\n return '';\n}\n//# sourceMappingURL=styleToClassName.js.map","import { extractStyleParts } from './extractStyleParts';\nimport { isShadowConfig } from './shadowConfig';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { styleToClassName } from './styleToClassName';\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function mergeStyles() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return mergeCss(args, getStyleOptions());\n}\n/**\n * Concatenation helper, which can merge class names together. Skips over falsey values.\n * Accepts a set of options that will be used when calculating styles.\n *\n * @public\n */\nexport function mergeCss(args, options) {\n var styleArgs = args instanceof Array ? args : [args];\n var opts = options || {};\n var hasShadowConfig = isShadowConfig(styleArgs[0]);\n if (hasShadowConfig) {\n opts.shadowConfig = styleArgs[0];\n }\n opts.stylesheet = Stylesheet.getInstance(opts.shadowConfig);\n var _a = extractStyleParts(opts.stylesheet, styleArgs), classes = _a.classes, objects = _a.objects;\n if (objects.length) {\n classes.push(styleToClassName(opts, objects));\n }\n return classes.join(' ');\n}\n//# sourceMappingURL=mergeStyles.js.map","import { __spreadArray } from \"tslib\";\nimport { isShadowConfig } from './shadowConfig';\n/**\n * Combine a set of styles together (but does not register css classes).\n * @param styleSets - One or more stylesets to be merged (each param can also be falsy).\n */\nexport function concatStyleSets() {\n var styleSets = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styleSets[_i] = arguments[_i];\n }\n if (styleSets &&\n styleSets.length === 1 &&\n styleSets[0] &&\n !styleSets[0].subComponentStyles &&\n !isShadowConfig(styleSets[0])) {\n return styleSets[0];\n }\n var mergedSet = {};\n // We process sub component styles in two phases. First we collect them, then we combine them into 1 style function.\n var workingSubcomponentStyles = {};\n for (var _a = 0, styleSets_1 = styleSets; _a < styleSets_1.length; _a++) {\n var currentSet = styleSets_1[_a];\n if (currentSet && !isShadowConfig(currentSet)) {\n for (var prop in currentSet) {\n if (currentSet.hasOwnProperty(prop)) {\n if (prop === 'subComponentStyles' && currentSet.subComponentStyles !== undefined) {\n // subcomponent styles - style functions or objects\n var currentComponentStyles = currentSet.subComponentStyles;\n for (var subCompProp in currentComponentStyles) {\n if (currentComponentStyles.hasOwnProperty(subCompProp)) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n workingSubcomponentStyles[subCompProp].push(currentComponentStyles[subCompProp]);\n }\n else {\n workingSubcomponentStyles[subCompProp] = [currentComponentStyles[subCompProp]];\n }\n }\n }\n continue;\n }\n // the as any casts below is a workaround for ts 2.8.\n // todo: remove cast to any in ts 2.9.\n var mergedValue = mergedSet[prop];\n var currentValue = currentSet[prop];\n if (mergedValue === undefined) {\n mergedSet[prop] = currentValue;\n }\n else {\n mergedSet[prop] = __spreadArray(__spreadArray([], (Array.isArray(mergedValue) ? mergedValue : [mergedValue]), true), (Array.isArray(currentValue) ? currentValue : [currentValue]), true);\n }\n }\n }\n }\n }\n if (Object.keys(workingSubcomponentStyles).length > 0) {\n mergedSet.subComponentStyles = {};\n var mergedSubStyles = mergedSet.subComponentStyles;\n var _loop_1 = function (subCompProp) {\n if (workingSubcomponentStyles.hasOwnProperty(subCompProp)) {\n var workingSet_1 = workingSubcomponentStyles[subCompProp];\n mergedSubStyles[subCompProp] = function (styleProps) {\n return concatStyleSets.apply(void 0, workingSet_1.map(function (styleFunctionOrObject) {\n return typeof styleFunctionOrObject === 'function' ? styleFunctionOrObject(styleProps) : styleFunctionOrObject;\n }));\n };\n }\n };\n // now we process the subcomponent styles if there are any\n for (var subCompProp in workingSubcomponentStyles) {\n _loop_1(subCompProp);\n }\n }\n return mergedSet;\n}\n//# sourceMappingURL=concatStyleSets.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets } from './concatStyleSets';\nimport { extractStyleParts } from './extractStyleParts';\nimport { getStyleOptions } from './StyleOptionsState';\nimport { applyRegistration, styleToRegistration } from './styleToClassName';\nimport { isShadowConfig } from './shadowConfig';\nimport { Stylesheet } from './Stylesheet';\n/**\n * Takes in one or more style set objects, each consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeStyles` for each property in the object, but ensures we maintain the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n */\nexport function mergeStyleSets() {\n var styleSets = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styleSets[_i] = arguments[_i];\n }\n return mergeCssSets(styleSets, getStyleOptions());\n}\n/**\n * Takes in one or more style set objects, each1consisting of a set of areas,\n * each which will produce a class name. Using this is analogous to calling\n * `mergeCss` for each property in the object, but ensures the\n * set ordering when multiple style sets are merged.\n *\n * @param styleSets - One or more style sets to be merged.\n * @param options - (optional) Options to use when creating rules.\n */\nexport function mergeCssSets(styleSets, options) {\n var classNameSet = { subComponentStyles: {} };\n var shadowConfig = undefined;\n var styleSet;\n if (isShadowConfig(styleSets[0])) {\n shadowConfig = styleSets[0];\n styleSet = styleSets[1];\n }\n else {\n styleSet = styleSets[0];\n }\n shadowConfig !== null && shadowConfig !== void 0 ? shadowConfig : (shadowConfig = options === null || options === void 0 ? void 0 : options.shadowConfig);\n var opts = __assign(__assign({}, options), { shadowConfig: shadowConfig });\n if (!styleSet && styleSets.length <= 1) {\n return { subComponentStyles: {} };\n }\n var sheet = Stylesheet.getInstance(shadowConfig);\n opts.stylesheet = sheet;\n var concatenatedStyleSet = concatStyleSets.apply(void 0, styleSets);\n var registrations = [];\n for (var styleSetArea in concatenatedStyleSet) {\n if (concatenatedStyleSet.hasOwnProperty(styleSetArea)) {\n if (styleSetArea === 'subComponentStyles') {\n classNameSet.subComponentStyles = concatenatedStyleSet.subComponentStyles || {};\n continue;\n }\n else if (styleSetArea === '__shadowConfig__') {\n continue;\n }\n var styles = concatenatedStyleSet[styleSetArea];\n var _a = extractStyleParts(sheet, styles), classes = _a.classes, objects = _a.objects;\n if (objects === null || objects === void 0 ? void 0 : objects.length) {\n var registration = styleToRegistration(opts || {}, { displayName: styleSetArea }, objects);\n if (registration) {\n registrations.push(registration);\n classNameSet[styleSetArea] = classes.concat([registration.className]).join(' ');\n }\n }\n else {\n classNameSet[styleSetArea] = classes.join(' ');\n }\n }\n }\n for (var _i = 0, registrations_1 = registrations; _i < registrations_1.length; _i++) {\n var registration = registrations_1[_i];\n if (registration) {\n applyRegistration(registration, options === null || options === void 0 ? void 0 : options.specificityMultiplier, shadowConfig);\n }\n }\n return classNameSet;\n}\n//# sourceMappingURL=mergeStyleSets.js.map","import { concatStyleSets } from './concatStyleSets';\n/**\n * Concatenates style sets into one, but resolves functional sets using the given props.\n * @param styleProps - Props used to resolve functional sets.\n * @param allStyles - Style sets, which can be functions or objects.\n */\nexport function concatStyleSetsWithProps(styleProps) {\n var allStyles = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n allStyles[_i - 1] = arguments[_i];\n }\n var result = [];\n for (var _a = 0, allStyles_1 = allStyles; _a < allStyles_1.length; _a++) {\n var styles = allStyles_1[_a];\n if (styles) {\n result.push(typeof styles === 'function' ? styles(styleProps) : styles);\n }\n }\n if (result.length === 1) {\n return result[0];\n }\n else if (result.length) {\n // cliffkoh: I cannot figure out how to avoid the cast to any here.\n // It is something to do with the use of Omit in IStyleSet.\n // It might not be necessary once Omit becomes part of lib.d.ts (when we remove our own Omit and rely on\n // the official version).\n return concatStyleSets.apply(void 0, result);\n }\n return {};\n}\n//# sourceMappingURL=concatStyleSetsWithProps.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers a font face.\n * @public\n */\nexport function fontFace(font) {\n var stylesheet = Stylesheet.getInstance();\n var rule = serializeRuleEntries(getStyleOptions(), font);\n var className = stylesheet.classNameFromKey(rule);\n if (className) {\n return;\n }\n var name = stylesheet.getClassName();\n stylesheet.insertRule(\"@font-face{\".concat(rule, \"}\"), true);\n stylesheet.cacheClassName(name, rule, [], ['font-face', rule]);\n}\n//# sourceMappingURL=fontFace.js.map","import { getStyleOptions } from './StyleOptionsState';\nimport { Stylesheet } from './Stylesheet';\nimport { serializeRuleEntries } from './styleToClassName';\n/**\n * Registers keyframe definitions.\n *\n * @public\n */\nexport function keyframes(timeline) {\n var stylesheet = Stylesheet.getInstance();\n var rulesArray = [];\n for (var prop in timeline) {\n if (timeline.hasOwnProperty(prop)) {\n rulesArray.push(prop, '{', serializeRuleEntries(getStyleOptions(), timeline[prop]), '}');\n }\n }\n var rules = rulesArray.join('');\n var className = stylesheet.classNameFromKey(rules);\n if (className) {\n return className;\n }\n var name = stylesheet.getClassName();\n stylesheet.insertRule(\"@keyframes \".concat(name, \"{\").concat(rules, \"}\"), true);\n stylesheet.cacheClassName(name, rules, [], ['keyframes', rules]);\n return name;\n}\n//# sourceMappingURL=keyframes.js.map","import { mergeStyles } from '../MergeStyles';\n/**\n * Builds a class names object from a given map.\n *\n * @param styles - Map of unprocessed styles.\n * @returns Map of property name to class name.\n */\nexport function buildClassMap(styles) {\n var classes = {};\n var _loop_1 = function (styleName) {\n if (styles.hasOwnProperty(styleName)) {\n var className_1;\n Object.defineProperty(classes, styleName, {\n get: function () {\n if (className_1 === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n className_1 = mergeStyles(styles[styleName]).toString();\n }\n return className_1;\n },\n enumerable: true,\n configurable: true,\n });\n }\n };\n for (var styleName in styles) {\n _loop_1(styleName);\n }\n return classes;\n}\n//# sourceMappingURL=buildClassMap.js.map","/**\n * Verifies if an application can use DOM.\n */\nexport function canUseDOM() {\n return (\n // eslint-disable-next-line no-restricted-globals\n typeof window !== 'undefined' &&\n !!(\n // eslint-disable-next-line no-restricted-globals, deprecation/deprecation\n (window.document && window.document.createElement)));\n}\n//# sourceMappingURL=canUseDOM.js.map","import { canUseDOM } from './canUseDOM';\nvar _window = undefined;\n// Note: Accessing \"window\" in IE11 is somewhat expensive, and calling \"typeof window\"\n// hits a memory leak, whereas aliasing it and calling \"typeof _window\" does not.\n// Caching the window value at the file scope lets us minimize the impact.\ntry {\n // eslint-disable-next-line no-restricted-globals\n _window = window;\n}\ncatch (e) {\n /* no-op */\n}\n/**\n * Helper to get the window object. The helper will make sure to use a cached variable\n * of \"window\", to avoid overhead and memory leaks in IE11. Note that in popup scenarios the\n * window object won't match the \"global\" window object, and for these scenarios, you should\n * pass in an element hosted within the popup.\n *\n * @public\n */\nexport function getWindow(rootElement) {\n if (!canUseDOM() || typeof _window === 'undefined') {\n return undefined;\n }\n else {\n var el = rootElement;\n return el && el.ownerDocument && el.ownerDocument.defaultView ? el.ownerDocument.defaultView : _window;\n }\n}\n//# sourceMappingURL=getWindow.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Bugs often appear in async code when stuff gets disposed, but async operations don't get canceled.\n * This Async helper class solves these issues by tying async code to the lifetime of a disposable object.\n *\n * Usage: Anything class extending from BaseModel can access this helper via this.async. Otherwise create a\n * new instance of the class and remember to call dispose() during your code's dispose handler.\n *\n * @public\n */\nvar Async = /** @class */ (function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Async(parent, onError) {\n this._timeoutIds = null;\n this._immediateIds = null;\n this._intervalIds = null;\n this._animationFrameIds = null;\n this._isDisposed = false;\n this._parent = parent || null;\n this._onErrorHandler = onError;\n this._noop = function () {\n /* do nothing */\n };\n }\n /**\n * Dispose function, clears all async operations.\n */\n Async.prototype.dispose = function () {\n var id;\n this._isDisposed = true;\n this._parent = null;\n // Clear timeouts.\n if (this._timeoutIds) {\n for (id in this._timeoutIds) {\n if (this._timeoutIds.hasOwnProperty(id)) {\n this.clearTimeout(parseInt(id, 10));\n }\n }\n this._timeoutIds = null;\n }\n // Clear immediates.\n if (this._immediateIds) {\n for (id in this._immediateIds) {\n if (this._immediateIds.hasOwnProperty(id)) {\n this.clearImmediate(parseInt(id, 10));\n }\n }\n this._immediateIds = null;\n }\n // Clear intervals.\n if (this._intervalIds) {\n for (id in this._intervalIds) {\n if (this._intervalIds.hasOwnProperty(id)) {\n this.clearInterval(parseInt(id, 10));\n }\n }\n this._intervalIds = null;\n }\n // Clear animation frames.\n if (this._animationFrameIds) {\n for (id in this._animationFrameIds) {\n if (this._animationFrameIds.hasOwnProperty(id)) {\n this.cancelAnimationFrame(parseInt(id, 10));\n }\n }\n this._animationFrameIds = null;\n }\n };\n /**\n * SetTimeout override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setTimeout = function (callback, duration) {\n var _this = this;\n var timeoutId = 0;\n if (!this._isDisposed) {\n if (!this._timeoutIds) {\n this._timeoutIds = {};\n }\n timeoutId = setTimeout(function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._timeoutIds) {\n delete _this._timeoutIds[timeoutId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n }, duration);\n this._timeoutIds[timeoutId] = true;\n }\n return timeoutId;\n };\n /**\n * Clears the timeout.\n * @param id - Id to cancel.\n */\n Async.prototype.clearTimeout = function (id) {\n if (this._timeoutIds && this._timeoutIds[id]) {\n clearTimeout(id);\n delete this._timeoutIds[id];\n }\n };\n /**\n * SetImmediate override, which will auto cancel the immediate during dispose.\n * @param callback - Callback to execute.\n * @param targetElement - Optional target element to use for identifying the correct window.\n * @returns The setTimeout id.\n */\n Async.prototype.setImmediate = function (callback, targetElement) {\n var _this = this;\n var immediateId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._immediateIds) {\n this._immediateIds = {};\n }\n var setImmediateCallback = function () {\n // Time to execute the timeout, enqueue it as a foreground task to be executed.\n try {\n // Now delete the record and call the callback.\n if (_this._immediateIds) {\n delete _this._immediateIds[immediateId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n immediateId = win.setTimeout(setImmediateCallback, 0);\n this._immediateIds[immediateId] = true;\n }\n return immediateId;\n };\n /**\n * Clears the immediate.\n * @param id - Id to cancel.\n * @param targetElement - Optional target element to use for identifying the correct window.\n */\n Async.prototype.clearImmediate = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._immediateIds && this._immediateIds[id]) {\n win.clearTimeout(id);\n delete this._immediateIds[id];\n }\n };\n /**\n * SetInterval override, which will auto cancel the timeout during dispose.\n * @param callback - Callback to execute.\n * @param duration - Duration in milliseconds.\n * @returns The setTimeout id.\n */\n Async.prototype.setInterval = function (callback, duration) {\n var _this = this;\n var intervalId = 0;\n if (!this._isDisposed) {\n if (!this._intervalIds) {\n this._intervalIds = {};\n }\n intervalId = setInterval(function () {\n // Time to execute the interval callback, enqueue it as a foreground task to be executed.\n try {\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n }, duration);\n this._intervalIds[intervalId] = true;\n }\n return intervalId;\n };\n /**\n * Clears the interval.\n * @param id - Id to cancel.\n */\n Async.prototype.clearInterval = function (id) {\n if (this._intervalIds && this._intervalIds[id]) {\n clearInterval(id);\n delete this._intervalIds[id];\n }\n };\n /**\n * Creates a function that, when executed, will only call the func function at most once per\n * every wait milliseconds. Provide an options object to indicate that func should be invoked\n * on the leading and/or trailing edge of the wait timeout. Subsequent calls to the throttled\n * function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the throttled function is invoked more than once during the wait timeout.\n *\n * @param func - The function to throttle.\n * @param wait - The number of milliseconds to throttle executions to. Defaults to 0.\n * @param options - The options object.\n * @returns The new throttled function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.throttle = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n return this._noop;\n }\n var waitMS = wait || 0;\n var leading = true;\n var trailing = true;\n var lastExecuteTime = 0;\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n var callback = function (userCall) {\n var now = Date.now();\n var delta = now - lastExecuteTime;\n var waitLength = leading ? waitMS - delta : waitMS;\n if (delta >= waitMS && (!userCall || leading)) {\n lastExecuteTime = now;\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastResult = func.apply(_this._parent, lastArgs);\n }\n else if (timeoutId === null && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n return resultFunction;\n };\n /**\n * Creates a function that will delay the execution of func until after wait milliseconds have\n * elapsed since the last time it was invoked. Provide an options object to indicate that func\n * should be invoked on the leading and/or trailing edge of the wait timeout. Subsequent calls\n * to the debounced function will return the result of the last func call.\n *\n * Note: If leading and trailing options are true func will be called on the trailing edge of\n * the timeout only if the debounced function is invoked more than once during the wait\n * timeout.\n *\n * @param func - The function to debounce.\n * @param wait - The number of milliseconds to delay.\n * @param options - The options object.\n * @returns The new debounced function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype.debounce = function (func, wait, options) {\n var _this = this;\n if (this._isDisposed) {\n var noOpFunction = (function () {\n /** Do nothing */\n });\n noOpFunction.cancel = function () {\n return;\n };\n noOpFunction.flush = (function () { return null; });\n noOpFunction.pending = function () { return false; };\n return noOpFunction;\n }\n var waitMS = wait || 0;\n var leading = false;\n var trailing = true;\n var maxWait = null;\n var lastCallTime = 0;\n var lastExecuteTime = Date.now();\n var lastResult;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var lastArgs;\n var timeoutId = null;\n if (options && typeof options.leading === 'boolean') {\n leading = options.leading;\n }\n if (options && typeof options.trailing === 'boolean') {\n trailing = options.trailing;\n }\n if (options && typeof options.maxWait === 'number' && !isNaN(options.maxWait)) {\n maxWait = options.maxWait;\n }\n var markExecuted = function (time) {\n if (timeoutId) {\n _this.clearTimeout(timeoutId);\n timeoutId = null;\n }\n lastExecuteTime = time;\n };\n var invokeFunction = function (time) {\n markExecuted(time);\n lastResult = func.apply(_this._parent, lastArgs);\n };\n var callback = function (userCall) {\n var now = Date.now();\n var executeImmediately = false;\n if (userCall) {\n if (leading && now - lastCallTime >= waitMS) {\n executeImmediately = true;\n }\n lastCallTime = now;\n }\n var delta = now - lastCallTime;\n var waitLength = waitMS - delta;\n var maxWaitDelta = now - lastExecuteTime;\n var maxWaitExpired = false;\n if (maxWait !== null) {\n // maxWait only matters when there is a pending callback\n if (maxWaitDelta >= maxWait && timeoutId) {\n maxWaitExpired = true;\n }\n else {\n waitLength = Math.min(waitLength, maxWait - maxWaitDelta);\n }\n }\n if (delta >= waitMS || maxWaitExpired || executeImmediately) {\n invokeFunction(now);\n }\n else if ((timeoutId === null || !userCall) && trailing) {\n timeoutId = _this.setTimeout(callback, waitLength);\n }\n return lastResult;\n };\n var pending = function () {\n return !!timeoutId;\n };\n var cancel = function () {\n if (pending()) {\n // Mark the debounced function as having executed\n markExecuted(Date.now());\n }\n };\n var flush = function () {\n if (pending()) {\n invokeFunction(Date.now());\n }\n return lastResult;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var resultFunction = (function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n lastArgs = args;\n return callback(true);\n });\n resultFunction.cancel = cancel;\n resultFunction.flush = flush;\n resultFunction.pending = pending;\n return resultFunction;\n };\n Async.prototype.requestAnimationFrame = function (callback, targetElement) {\n var _this = this;\n var animationFrameId = 0;\n var win = getWindow(targetElement);\n if (!this._isDisposed) {\n if (!this._animationFrameIds) {\n this._animationFrameIds = {};\n }\n var animationFrameCallback = function () {\n try {\n // Now delete the record and call the callback.\n if (_this._animationFrameIds) {\n delete _this._animationFrameIds[animationFrameId];\n }\n callback.apply(_this._parent);\n }\n catch (e) {\n _this._logError(e);\n }\n };\n animationFrameId = win.requestAnimationFrame\n ? win.requestAnimationFrame(animationFrameCallback)\n : win.setTimeout(animationFrameCallback, 0);\n this._animationFrameIds[animationFrameId] = true;\n }\n return animationFrameId;\n };\n Async.prototype.cancelAnimationFrame = function (id, targetElement) {\n var win = getWindow(targetElement);\n if (this._animationFrameIds && this._animationFrameIds[id]) {\n win.cancelAnimationFrame ? win.cancelAnimationFrame(id) : win.clearTimeout(id);\n delete this._animationFrameIds[id];\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Async.prototype._logError = function (e) {\n if (this._onErrorHandler) {\n this._onErrorHandler(e);\n }\n };\n return Async;\n}());\nexport { Async };\n//# sourceMappingURL=Async.js.map","/**\n * Determines whether or not an element has the virtual hierarchy extension.\n *\n * @public\n */\nexport function isVirtualElement(element) {\n return element && !!element._virtual;\n}\n//# sourceMappingURL=isVirtualElement.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the virtual parent given the child element, if it exists.\n *\n * @public\n */\nexport function getVirtualParent(child) {\n var parent;\n if (child && isVirtualElement(child)) {\n parent = child._virtual.parent;\n }\n return parent;\n}\n//# sourceMappingURL=getVirtualParent.js.map","import { getVirtualParent } from './getVirtualParent';\n/**\n * Gets the element which is the parent of a given element.\n * If `allowVirtuaParents` is `true`, this method prefers the virtual parent over\n * real DOM parent when present.\n *\n * @public\n */\nexport function getParent(child, allowVirtualParents) {\n var _a, _b;\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n if (!child) {\n return null;\n }\n var parent = allowVirtualParents && getVirtualParent(child);\n if (parent) {\n return parent;\n }\n // Support looking for parents in shadow DOM\n if (typeof child.assignedElements !== 'function' && ((_a = child.assignedSlot) === null || _a === void 0 ? void 0 : _a.parentNode)) {\n // Element is slotted\n return child.assignedSlot;\n }\n else if (((_b = child.parentNode) === null || _b === void 0 ? void 0 : _b.nodeType) === 11) {\n // nodeType 11 is DOCUMENT_FRAGMENT\n // Element is in shadow root\n return child.parentNode.host;\n }\n else {\n return child.parentNode;\n }\n}\n//# sourceMappingURL=getParent.js.map","import { getParent } from './getParent';\n/**\n * Determines whether or not a parent element contains a given child element.\n * If `allowVirtualParents` is true, this method may return `true` if the child\n * has the parent in its virtual element hierarchy.\n *\n * @public\n */\nexport function elementContains(parent, child, allowVirtualParents) {\n if (allowVirtualParents === void 0) { allowVirtualParents = true; }\n var isContained = false;\n if (parent && child) {\n if (allowVirtualParents) {\n if (parent === child) {\n isContained = true;\n }\n else {\n isContained = false;\n while (child) {\n var nextParent = getParent(child);\n if (nextParent === parent) {\n isContained = true;\n break;\n }\n child = nextParent;\n }\n }\n }\n else if (parent.contains) {\n isContained = parent.contains(child);\n }\n }\n return isContained;\n}\n//# sourceMappingURL=elementContains.js.map","import { getParent } from './getParent';\n/**\n * Finds the first parent element where the matchFunction returns true\n * @param element - element to start searching at\n * @param matchFunction - the function that determines if the element is a match\n * @returns the matched element or null no match was found\n */\nexport function findElementRecursive(element, matchFunction, doc) {\n // eslint-disable-next-line no-restricted-globals\n doc !== null && doc !== void 0 ? doc : (doc = document);\n if (!element || element === doc.body || element instanceof Document) {\n return null;\n }\n return matchFunction(element) ? element : findElementRecursive(getParent(element), matchFunction);\n}\n//# sourceMappingURL=findElementRecursive.js.map","import { findElementRecursive } from './findElementRecursive';\n/**\n * Determines if an element, or any of its ancestors, contain the given attribute\n * @param element - element to start searching at\n * @param attribute - the attribute to search for\n * @returns the value of the first instance found\n */\nexport function elementContainsAttribute(element, attribute, doc) {\n var elementMatch = findElementRecursive(element, function (testElement) { return testElement.hasAttribute(attribute); }, doc);\n return elementMatch && elementMatch.getAttribute(attribute);\n}\n//# sourceMappingURL=elementContainsAttribute.js.map","export var getActiveElement = function (doc) {\n var ae = doc.activeElement;\n while (ae === null || ae === void 0 ? void 0 : ae.shadowRoot) {\n ae = ae.shadowRoot.activeElement;\n }\n return ae;\n};\n//# sourceMappingURL=getActiveElement.js.map","import { isVirtualElement } from './isVirtualElement';\n/**\n * Gets the elements which are child elements of the given element.\n * If `allowVirtualChildren` is `true`, this method enumerates virtual child elements\n * after the original children.\n * @param parent - The element to get the children of.\n * @param allowVirtualChildren - true if the method should enumerate virtual child elements.\n */\nexport function getChildren(parent, allowVirtualChildren) {\n if (allowVirtualChildren === void 0) { allowVirtualChildren = true; }\n var children = [];\n if (parent) {\n for (var i = 0; i < parent.children.length; i++) {\n children.push(parent.children.item(i));\n }\n if (allowVirtualChildren && isVirtualElement(parent)) {\n children.push.apply(children, parent._virtual.children);\n }\n }\n return children;\n}\n//# sourceMappingURL=getChildren.js.map","export var getEventTarget = function (event) {\n var target = event.target;\n if (target && target.shadowRoot) {\n target = event.composedPath()[0];\n }\n return target;\n};\n//# sourceMappingURL=getEventTarget.js.map","export var DATA_PORTAL_ATTRIBUTE = 'data-portal-element';\n/**\n * Identify element as a portal by setting an attribute.\n * @param element - Element to mark as a portal.\n */\nexport function setPortalAttribute(element) {\n element.setAttribute(DATA_PORTAL_ATTRIBUTE, 'true');\n}\n//# sourceMappingURL=setPortalAttribute.js.map","import { findElementRecursive } from './findElementRecursive';\nimport { DATA_PORTAL_ATTRIBUTE } from './setPortalAttribute';\n/**\n * Determine whether a target is within a portal from perspective of root or optional parent.\n * This function only works against portal components that use the setPortalAttribute function.\n * If both parent and child are within the same portal this function will return false.\n * @param target - Element to query portal containment status of.\n * @param parent - Optional parent perspective. Search for containing portal stops at parent\n * (or root if parent is undefined or invalid.)\n */\nexport function portalContainsElement(target, parent, doc) {\n var _a;\n var elementMatch = findElementRecursive(target, function (testElement) { var _a; return parent === testElement || !!((_a = testElement.hasAttribute) === null || _a === void 0 ? void 0 : _a.call(testElement, DATA_PORTAL_ATTRIBUTE)); }, doc);\n return elementMatch !== null && !!((_a = elementMatch.hasAttribute) === null || _a === void 0 ? void 0 : _a.call(elementMatch, DATA_PORTAL_ATTRIBUTE));\n}\n//# sourceMappingURL=portalContainsElement.js.map","/**\n * Sets the virtual parent of an element.\n * Pass `undefined` as the `parent` to clear the virtual parent.\n *\n * @public\n */\nexport function setVirtualParent(child, parent) {\n var virtualChild = child;\n var virtualParent = parent;\n if (!virtualChild._virtual) {\n virtualChild._virtual = {\n children: [],\n };\n }\n var oldParent = virtualChild._virtual.parent;\n if (oldParent && oldParent !== parent) {\n // Remove the child from its old parent.\n var index = oldParent._virtual.children.indexOf(virtualChild);\n if (index > -1) {\n oldParent._virtual.children.splice(index, 1);\n }\n }\n virtualChild._virtual.parent = virtualParent || undefined;\n if (virtualParent) {\n if (!virtualParent._virtual) {\n virtualParent._virtual = {\n children: [],\n };\n }\n virtualParent._virtual.children.push(virtualChild);\n }\n}\n//# sourceMappingURL=setVirtualParent.js.map","import { canUseDOM } from './canUseDOM';\n/**\n * Helper to get the document object. Note that in popup window cases, document\n * might be the wrong document, which is why we look at ownerDocument for the\n * truth.\n *\n * @public\n */\nexport function getDocument(rootElement) {\n // eslint-disable-next-line no-restricted-globals\n if (!canUseDOM() || typeof document === 'undefined') {\n return undefined;\n }\n else {\n var el = rootElement;\n // eslint-disable-next-line no-restricted-globals\n return el && el.ownerDocument ? el.ownerDocument : document;\n }\n}\n//# sourceMappingURL=getDocument.js.map","import { elementContainsAttribute } from './dom/elementContainsAttribute';\nimport { elementContains } from './dom/elementContains';\nimport { getParent } from './dom/getParent';\nimport { getWindow } from './dom/getWindow';\nimport { getDocument } from './dom/getDocument';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_VISIBLE_ATTRIBUTE = 'data-is-visible';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar FOCUSZONE_SUB_ATTRIBUTE = 'data-is-sub-focuszone';\n/**\n * Gets the first focusable element.\n *\n * @public\n */\nexport function getFirstFocusable(rootElement, currentElement, includeElementsInFocusZones, includeShadowRoots) {\n return getNextElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones, undefined, undefined, undefined, includeShadowRoots);\n}\n/**\n * Gets the last focusable element.\n *\n * @public\n */\nexport function getLastFocusable(rootElement, currentElement, includeElementsInFocusZones, includeShadowRoots) {\n return getPreviousElement(rootElement, currentElement, true /*checkNode*/, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones, undefined, undefined, includeShadowRoots);\n}\n/**\n * Gets the first tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues forward. Typical use passes rootElement.firstChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getFirstTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode, includeShadowRoots) {\n if (checkNode === void 0) { checkNode = true; }\n return getNextElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, false /*suppressChildTraversal*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/, undefined, includeShadowRoots);\n}\n/**\n * Gets the last tabbable element. (The difference between focusable and tabbable is that tabbable elements are\n * focusable elements that also have tabIndex != -1.)\n * @param rootElement - The parent element to search beneath.\n * @param currentElement - The descendant of rootElement to start the search at. This element is the first one checked,\n * and iteration continues in reverse. Typical use passes rootElement.lastChild.\n * @param includeElementsInFocusZones - true if traversal should go into FocusZone descendants.\n * @param checkNode - Include currentElement in search when true. Defaults to true.\n * @public\n */\nexport function getLastTabbable(rootElement, currentElement, includeElementsInFocusZones, checkNode, includeShadowRoots) {\n if (checkNode === void 0) { checkNode = true; }\n return getPreviousElement(rootElement, currentElement, checkNode, false /*suppressParentTraversal*/, true /*traverseChildren*/, includeElementsInFocusZones, false /*allowFocusRoot*/, true /*tabbable*/, includeShadowRoots);\n}\n/**\n * Attempts to focus the first focusable element that is a child or child's child of the rootElement.\n *\n * @public\n * @param rootElement - Element to start the search for a focusable child.\n * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n * @returns True if focus was set, false if it was not.\n */\nexport function focusFirstChild(rootElement, bypassHiddenElements, includeShadowRoots) {\n var element = getNextElement(rootElement, rootElement, true, false, false, true, undefined, undefined, bypassHiddenElements, includeShadowRoots);\n if (element) {\n focusAsync(element);\n return true;\n }\n return false;\n}\n/**\n * Traverse to find the previous element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n */\nexport function getPreviousElement(rootElement, currentElement, checkNode, suppressParentTraversal, traverseChildren, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots) {\n var _a;\n if (!currentElement || (!allowFocusRoot && currentElement === rootElement)) {\n return null;\n }\n var isCurrentElementVisible = isElementVisible(currentElement);\n // Check its children.\n if (traverseChildren &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var lastElementChild = (currentElement.lastElementChild ||\n (includeShadowRoots && ((_a = currentElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.lastElementChild)));\n var childMatch = getPreviousElement(rootElement, lastElementChild, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots);\n if (childMatch) {\n if ((tabbable && isElementTabbable(childMatch, true, includeShadowRoots)) || !tabbable) {\n return childMatch;\n }\n var childMatchSiblingMatch = getPreviousElement(rootElement, childMatch.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots);\n if (childMatchSiblingMatch) {\n return childMatchSiblingMatch;\n }\n var childMatchParent = childMatch.parentElement;\n // At this point if we have not found any potential matches\n // start looking at the rest of the subtree under the currentParent.\n // NOTE: We do not want to recurse here because doing so could\n // cause elements to get skipped.\n while (childMatchParent && childMatchParent !== currentElement) {\n var childMatchParentMatch = getPreviousElement(rootElement, childMatchParent.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots);\n if (childMatchParentMatch) {\n return childMatchParentMatch;\n }\n childMatchParent = childMatchParent.parentElement;\n }\n }\n }\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable, includeShadowRoots)) {\n return currentElement;\n }\n // Check its previous sibling.\n var siblingMatch = getPreviousElement(rootElement, currentElement.previousElementSibling, true, true, true, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots);\n if (siblingMatch) {\n return siblingMatch;\n }\n // Check its parent.\n if (!suppressParentTraversal) {\n return getPreviousElement(rootElement, currentElement.parentElement, true, false, false, includeElementsInFocusZones, allowFocusRoot, tabbable, includeShadowRoots);\n }\n return null;\n}\n/**\n * Traverse to find the next focusable element.\n * If tabbable is true, the element must have tabIndex != -1.\n *\n * @public\n * @param checkNode - Include currentElement in search when true.\n */\nexport function getNextElement(rootElement, currentElement, checkNode, suppressParentTraversal, suppressChildTraversal, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements, includeShadowRoots) {\n var _a;\n if (!currentElement || (currentElement === rootElement && suppressChildTraversal && !allowFocusRoot)) {\n return null;\n }\n var checkElementVisibility = bypassHiddenElements ? isElementVisibleAndNotHidden : isElementVisible;\n var isCurrentElementVisible = checkElementVisibility(currentElement);\n // Check the current node, if it's not the first traversal.\n if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable, includeShadowRoots)) {\n return currentElement;\n }\n // Check its children.\n if (!suppressChildTraversal &&\n isCurrentElementVisible &&\n (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) {\n var firstElementchild = (currentElement.firstElementChild ||\n (includeShadowRoots && ((_a = currentElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.firstElementChild)));\n var childMatch = getNextElement(rootElement, firstElementchild, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements, includeShadowRoots);\n if (childMatch) {\n return childMatch;\n }\n }\n if (currentElement === rootElement) {\n return null;\n }\n // Check its sibling.\n var siblingMatch = getNextElement(rootElement, currentElement.nextElementSibling, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements, includeShadowRoots);\n if (siblingMatch) {\n return siblingMatch;\n }\n if (!suppressParentTraversal) {\n return getNextElement(rootElement, currentElement.parentElement, false, false, true, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements, includeShadowRoots);\n }\n return null;\n}\n/**\n * Determines if an element is visible.\n *\n * @public\n */\nexport function isElementVisible(element) {\n // If the element is not valid, return false.\n if (!element || !element.getAttribute) {\n return false;\n }\n var visibilityAttribute = element.getAttribute(IS_VISIBLE_ATTRIBUTE);\n // If the element is explicitly marked with the visibility attribute, return that value as boolean.\n if (visibilityAttribute !== null && visibilityAttribute !== undefined) {\n return visibilityAttribute === 'true';\n }\n // Fallback to other methods of determining actual visibility.\n return (element.offsetHeight !== 0 ||\n element.offsetParent !== null ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element.isVisible === true); // used as a workaround for testing.\n}\n/**\n * Determines if an element is visible and not hidden\n * @param element - Element to check\n * @returns Returns true if the given element is visible and not hidden\n *\n * @public\n */\nexport function isElementVisibleAndNotHidden(element, win) {\n var theWin = win !== null && win !== void 0 ? win : getWindow();\n return (!!element &&\n isElementVisible(element) &&\n !element.hidden &&\n theWin.getComputedStyle(element).visibility !== 'hidden');\n}\n/**\n * Determines if an element can receive focus programmatically or via a mouse click.\n * If checkTabIndex is true, additionally checks to ensure the element can be focused with the tab key,\n * meaning tabIndex != -1.\n *\n * @public\n */\nexport function isElementTabbable(element, checkTabIndex, checkShadowRoot) {\n if (checkShadowRoot === void 0) { checkShadowRoot = true; }\n // If this element is null or is disabled, it is not considered tabbable.\n if (!element || element.disabled) {\n return false;\n }\n var tabIndex = 0;\n var tabIndexAttributeValue = null;\n if (element && element.getAttribute) {\n tabIndexAttributeValue = element.getAttribute('tabIndex');\n if (tabIndexAttributeValue) {\n tabIndex = parseInt(tabIndexAttributeValue, 10);\n }\n }\n var isFocusableAttribute = element.getAttribute ? element.getAttribute(IS_FOCUSABLE_ATTRIBUTE) : null;\n var isTabIndexSet = tabIndexAttributeValue !== null && tabIndex >= 0;\n var delegatesFocus = checkShadowRoot && element.shadowRoot ? !!element.shadowRoot.delegatesFocus : false;\n var result = !!element &&\n isFocusableAttribute !== 'false' &&\n (element.tagName === 'A' ||\n element.tagName === 'BUTTON' ||\n element.tagName === 'INPUT' ||\n element.tagName === 'TEXTAREA' ||\n element.tagName === 'SELECT' ||\n isFocusableAttribute === 'true' ||\n isTabIndexSet ||\n delegatesFocus);\n return checkTabIndex ? tabIndex !== -1 && result : result;\n}\n/**\n * Determines if a given element is a focus zone.\n *\n * @public\n */\nexport function isElementFocusZone(element) {\n return !!(element && element.getAttribute && !!element.getAttribute(FOCUSZONE_ID_ATTRIBUTE));\n}\n/**\n * Determines if a given element is a focus sub zone.\n *\n * @public\n */\nexport function isElementFocusSubZone(element) {\n return !!(element && element.getAttribute && element.getAttribute(FOCUSZONE_SUB_ATTRIBUTE) === 'true');\n}\n/**\n * Determines if an element, or any of its children, contain focus.\n *\n * @public\n */\nexport function doesElementContainFocus(element) {\n var doc = getDocument(element);\n var currentActiveElement = doc && doc.activeElement;\n if (currentActiveElement && elementContains(element, currentActiveElement)) {\n return true;\n }\n return false;\n}\n/**\n * Determines if an, or any of its ancestors, sepcificies that it doesn't want focus to wrap\n * @param element - element to start searching from\n * @param noWrapDataAttribute - the no wrap data attribute to match (either)\n * @returns true if focus should wrap, false otherwise\n */\nexport function shouldWrapFocus(element, noWrapDataAttribute, doc) {\n var theDoc = doc !== null && doc !== void 0 ? doc : getDocument();\n return elementContainsAttribute(element, noWrapDataAttribute, theDoc) === 'true' ? false : true;\n}\nvar animationId = undefined;\n/**\n * Sets focus to an element asynchronously. The focus will be set at the next browser repaint,\n * meaning it won't cause any extra recalculations. If more than one focusAsync is called during one frame,\n * only the latest called focusAsync element will actually be focused\n * @param element - The element to focus\n */\nexport function focusAsync(element) {\n if (element) {\n var win = getWindow(element);\n if (win) {\n // cancel any previous focus queues\n if (animationId !== undefined) {\n win.cancelAnimationFrame(animationId);\n }\n // element.focus() is a no-op if the element is no longer in the DOM, meaning this is always safe\n animationId = win.requestAnimationFrame(function () {\n element && element.focus();\n // We are done focusing for this frame, so reset the queued focus element\n animationId = undefined;\n });\n }\n }\n}\n/**\n * Finds the closest focusable element via an index path from a parent. See\n * `getElementIndexPath` for getting an index path from an element to a child.\n */\nexport function getFocusableByIndexPath(parent, path) {\n var element = parent;\n for (var _i = 0, path_1 = path; _i < path_1.length; _i++) {\n var index = path_1[_i];\n var nextChild = element.children[Math.min(index, element.children.length - 1)];\n if (!nextChild) {\n break;\n }\n element = nextChild;\n }\n element =\n isElementTabbable(element) && isElementVisible(element)\n ? element\n : getNextElement(parent, element, true) || getPreviousElement(parent, element);\n return element;\n}\n/**\n * Finds the element index path from a parent element to a child element.\n *\n * If you had this node structure: \"A has children [B, C] and C has child D\",\n * the index path from A to D would be [1, 0], or `parent.chidren[1].children[0]`.\n */\nexport function getElementIndexPath(fromElement, toElement) {\n var path = [];\n while (toElement && fromElement && toElement !== fromElement) {\n var parent_1 = getParent(toElement, true);\n if (parent_1 === null) {\n return [];\n }\n path.unshift(Array.prototype.indexOf.call(parent_1.children, toElement));\n toElement = parent_1;\n }\n return path;\n}\n//# sourceMappingURL=focus.js.map","import { getWindow } from './getWindow';\n/**\n * Helper to get bounding client rect. Passing in window will get the window size.\n *\n * @public\n */\nexport function getRect(element, win) {\n var theWin = (win !== null && win !== void 0 ? win : (!element || (element && element.hasOwnProperty('devicePixelRatio'))))\n ? getWindow()\n : getWindow(element);\n var rect;\n if (element) {\n if (element === theWin) {\n rect = {\n left: 0,\n top: 0,\n width: theWin.innerWidth,\n height: theWin.innerHeight,\n right: theWin.innerWidth,\n bottom: theWin.innerHeight,\n };\n }\n else if (element.getBoundingClientRect) {\n rect = element.getBoundingClientRect();\n }\n }\n return rect;\n}\n//# sourceMappingURL=getRect.js.map","export function on(element, eventName, callback, options) {\n element.addEventListener(eventName, callback, options);\n return function () { return element.removeEventListener(eventName, callback, options); };\n}\n//# sourceMappingURL=on.js.map","/**\n * Compares a to b and b to a.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function shallowCompare(a, b) {\n if (!a || !b) {\n // only return true if both a and b are falsy\n return !a && !b;\n }\n for (var propName in a) {\n if (a.hasOwnProperty(propName)) {\n if (!b.hasOwnProperty(propName) || b[propName] !== a[propName]) {\n return false;\n }\n }\n }\n for (var propName in b) {\n if (b.hasOwnProperty(propName)) {\n if (!a.hasOwnProperty(propName)) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * Makes a resulting merge of a bunch of objects. Pass in the target object followed by 1 or more\n * objects as arguments and they will be merged sequentially into the target. Note that this will\n * shallow merge; it will not create new cloned values for target members.\n *\n * @public\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function assign(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return filteredAssign.apply(this, [null, target].concat(args));\n}\n/**\n * Makes a resulting merge of a bunch of objects, but allows a filter function to be passed in to filter\n * the resulting merges. This allows for scenarios where you want to merge \"everything except that one thing\"\n * or \"properties that start with data-\". Note that this will shallow merge; it will not create new cloned\n * values for target members.\n *\n * @public\n * @param isAllowed - Callback to determine if the given propName is allowed in the result.\n * @param target - Target object to merge following object arguments into.\n * @param args - One or more objects that will be mixed into the target in the order they are provided.\n * @returns Resulting merged target.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function filteredAssign(isAllowed, target) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n target = target || {};\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var sourceObject = args_1[_a];\n if (sourceObject) {\n for (var propName in sourceObject) {\n if (sourceObject.hasOwnProperty(propName) && (!isAllowed || isAllowed(propName))) {\n target[propName] = sourceObject[propName];\n }\n }\n }\n }\n return target;\n}\n/**\n * Takes an enum and iterates over each value of the enum (as a string), running the callback on each,\n * returning a mapped array.\n * @param theEnum - Enum to iterate over\n * @param callback - The first parameter the name of the entry, and the second parameter is the value\n * of that entry, which is the value you'd normally use when using the enum (usually a number).\n */\nexport function mapEnumByName(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntheEnum, callback) {\n // map to satisfy compiler since it doesn't realize we strip out undefineds in the .filter() call\n return Object.keys(theEnum)\n .map(function (p) {\n // map on each property name as a string\n if (String(Number(p)) !== p) {\n // if the property is not just a number (because enums in TypeScript will map both ways)\n return callback(p, theEnum[p]);\n }\n return undefined;\n })\n .filter(function (v) { return !!v; }); // only return elements with values\n}\n/**\n * Get all values in an object dictionary\n *\n * @param obj - The dictionary to get values for\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function values(obj) {\n return Object.keys(obj).reduce(function (arr, key) {\n arr.push(obj[key]);\n return arr;\n }, []);\n}\n/**\n * Tiny helper to do the minimal amount of work in duplicating an object but omitting some\n * props. This ends up faster than using object ...rest or reduce to filter.\n *\n * This behaves very much like filteredAssign, but does not merge many objects together,\n * uses an exclusion object map, and avoids spreads all for optimal performance.\n *\n * See perf test for background:\n * https://jsperf.com/omit-vs-rest-vs-reduce/1\n *\n * @param obj - The object to clone\n * @param exclusions - The array of keys to exclude\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function omit(obj, exclusions) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = {};\n for (var key in obj) {\n if (exclusions.indexOf(key) === -1 && obj.hasOwnProperty(key)) {\n result[key] = obj[key];\n }\n }\n return result;\n}\n//# sourceMappingURL=object.js.map","import { getDocument } from './dom';\nimport { assign } from './object';\n/** An instance of EventGroup allows anything with a handle to it to trigger events on it.\n * If the target is an HTMLElement, the event will be attached to the element and can be\n * triggered as usual (like clicking for onClick).\n * The event can be triggered by calling EventGroup.raise() here. If the target is an\n * HTMLElement, the event gets raised and is handled by the browser. Otherwise, it gets\n * handled here in EventGroup, and the handler is called in the context of the parent\n * (which is passed in in the constructor).\n *\n * @public\n * {@docCategory EventGroup}\n */\nexport var EventGroup = /** @class */ (function () {\n /** parent: the context in which events attached to non-HTMLElements are called */\n function EventGroup(parent) {\n this._id = EventGroup._uniqueId++;\n this._parent = parent;\n this._eventRecords = [];\n }\n /** For IE8, bubbleEvent is ignored here and must be dealt with by the handler.\n * Events raised here by default have bubbling set to false and cancelable set to true.\n * This applies also to built-in events being raised manually here on HTMLElements,\n * which may lead to unexpected behavior if it differs from the defaults.\n *\n */\n EventGroup.raise = function (target, eventName, eventArgs, bubbleEvent, doc) {\n var retVal;\n var theDoc = doc !== null && doc !== void 0 ? doc : getDocument();\n if (EventGroup._isElement(target)) {\n if (typeof theDoc !== 'undefined' && theDoc.createEvent) {\n var ev = theDoc.createEvent('HTMLEvents');\n // eslint-disable-next-line deprecation/deprecation\n ev.initEvent(eventName, bubbleEvent || false, true);\n assign(ev, eventArgs);\n retVal = target.dispatchEvent(ev);\n }\n else if (typeof theDoc !== 'undefined' && theDoc.createEventObject) {\n // IE8\n var evObj = theDoc.createEventObject(eventArgs);\n // cannot set cancelBubble on evObj, fireEvent will overwrite it\n target.fireEvent('on' + eventName, evObj);\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n while (target && retVal !== false) {\n var events = target.__events__;\n var eventRecords = events ? events[eventName] : null;\n if (eventRecords) {\n for (var id in eventRecords) {\n if (eventRecords.hasOwnProperty(id)) {\n var eventRecordList = eventRecords[id];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n for (var listIndex = 0; retVal !== false && listIndex < eventRecordList.length; listIndex++) {\n var record = eventRecordList[listIndex];\n if (record.objectCallback) {\n retVal = record.objectCallback.call(record.parent, eventArgs);\n }\n }\n }\n }\n }\n // If the target has a parent, bubble the event up.\n target = bubbleEvent ? target.parent : null;\n }\n }\n return retVal;\n };\n EventGroup.isObserved = function (target, eventName) {\n var events = target && target.__events__;\n return !!events && !!events[eventName];\n };\n /** Check to see if the target has declared support of the given event. */\n EventGroup.isDeclared = function (target, eventName) {\n var declaredEvents = target && target.__declaredEvents;\n return !!declaredEvents && !!declaredEvents[eventName];\n };\n EventGroup.stopPropagation = function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n else {\n // IE8\n event.cancelBubble = true;\n }\n };\n EventGroup._isElement = function (target) {\n return (!!target && (!!target.addEventListener || (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement)));\n };\n EventGroup.prototype.dispose = function () {\n if (!this._isDisposed) {\n this._isDisposed = true;\n this.off();\n this._parent = null;\n }\n };\n /** On the target, attach a set of events, where the events object is a name to function mapping. */\n EventGroup.prototype.onAll = function (target, events, useCapture) {\n for (var eventName in events) {\n if (events.hasOwnProperty(eventName)) {\n this.on(target, eventName, events[eventName], useCapture);\n }\n }\n };\n /**\n * On the target, attach an event whose handler will be called in the context of the parent\n * of this instance of EventGroup.\n */\n EventGroup.prototype.on = function (target, eventName, callback, options) {\n var _this = this;\n if (eventName.indexOf(',') > -1) {\n var events = eventName.split(/[ ,]+/);\n for (var i = 0; i < events.length; i++) {\n this.on(target, events[i], callback, options);\n }\n }\n else {\n var parent_1 = this._parent;\n var eventRecord = {\n target: target,\n eventName: eventName,\n parent: parent_1,\n callback: callback,\n options: options,\n };\n // Initialize and wire up the record on the target, so that it can call the callback if the event fires.\n var events = (target.__events__ = target.__events__ || {});\n events[eventName] =\n events[eventName] ||\n {\n count: 0,\n };\n events[eventName][this._id] = events[eventName][this._id] || [];\n events[eventName][this._id].push(eventRecord);\n events[eventName].count++;\n if (EventGroup._isElement(target)) {\n var processElementEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n var result;\n try {\n result = callback.apply(parent_1, args);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore -- FIXME: strictBindCallApply error - https://github.com/microsoft/fluentui/issues/17331\n if (result === false && args[0]) {\n var e = args[0];\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n e.cancelBubble = true;\n }\n }\n catch (e) {\n // ignore\n }\n return result;\n };\n eventRecord.elementCallback = processElementEvent;\n if (target.addEventListener) {\n target.addEventListener(eventName, processElementEvent, options);\n }\n else if (target.attachEvent) {\n // IE8\n target.attachEvent('on' + eventName, processElementEvent);\n }\n }\n else {\n var processObjectEvent = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (_this._isDisposed) {\n return;\n }\n return callback.apply(parent_1, args);\n };\n eventRecord.objectCallback = processObjectEvent;\n }\n // Remember the record locally, so that it can be removed.\n this._eventRecords.push(eventRecord);\n }\n };\n EventGroup.prototype.off = function (target, eventName, callback, options) {\n for (var i = 0; i < this._eventRecords.length; i++) {\n var eventRecord = this._eventRecords[i];\n if ((!target || target === eventRecord.target) &&\n (!eventName || eventName === eventRecord.eventName) &&\n (!callback || callback === eventRecord.callback) &&\n (typeof options !== 'boolean' || options === eventRecord.options)) {\n var events = eventRecord.target.__events__;\n var targetArrayLookup = events[eventRecord.eventName];\n var targetArray = targetArrayLookup ? targetArrayLookup[this._id] : null;\n // We may have already target's entries, so check for null.\n if (targetArray) {\n if (targetArray.length === 1 || !callback) {\n targetArrayLookup.count -= targetArray.length;\n delete events[eventRecord.eventName][this._id];\n }\n else {\n targetArrayLookup.count--;\n targetArray.splice(targetArray.indexOf(eventRecord), 1);\n }\n if (!targetArrayLookup.count) {\n delete events[eventRecord.eventName];\n }\n }\n if (eventRecord.elementCallback) {\n if (eventRecord.target.removeEventListener) {\n eventRecord.target.removeEventListener(eventRecord.eventName, eventRecord.elementCallback, eventRecord.options);\n }\n else if (eventRecord.target.detachEvent) {\n // IE8\n eventRecord.target.detachEvent('on' + eventRecord.eventName, eventRecord.elementCallback);\n }\n }\n this._eventRecords.splice(i--, 1);\n }\n }\n };\n /** Trigger the given event in the context of this instance of EventGroup. */\n EventGroup.prototype.raise = function (eventName, eventArgs, bubbleEvent) {\n return EventGroup.raise(this._parent, eventName, eventArgs, bubbleEvent);\n };\n /** Declare an event as being supported by this instance of EventGroup. */\n EventGroup.prototype.declare = function (event) {\n var declaredEvents = (this._parent.__declaredEvents = this._parent.__declaredEvents || {});\n if (typeof event === 'string') {\n declaredEvents[event] = true;\n }\n else {\n for (var i = 0; i < event.length; i++) {\n declaredEvents[event[i]] = true;\n }\n }\n };\n EventGroup._uniqueId = 0;\n return EventGroup;\n}());\n//# sourceMappingURL=EventGroup.js.map","import { getDocument } from './dom/getDocument';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getWindow } from './dom/getWindow';\nvar _scrollbarWidth;\nvar _bodyScrollDisabledCount = 0;\nvar DisabledScrollClassName = mergeStyles({\n overflow: 'hidden !important',\n});\n/**\n * Placing this attribute on scrollable divs optimizes detection to know\n * if the div is scrollable or not (given we can avoid expensive operations\n * like getComputedStyle.)\n *\n * @public\n */\nexport var DATA_IS_SCROLLABLE_ATTRIBUTE = 'data-is-scrollable';\n/**\n * Allows the user to scroll within a element,\n * while preventing the user from scrolling the body\n */\nexport var allowScrollOnElement = function (element, events) {\n var window = getWindow(element);\n if (!element || !window) {\n return;\n }\n var _previousClientY = 0;\n var _element = null;\n var computedStyles = window.getComputedStyle(element);\n // remember the clientY for future calls of _preventOverscrolling\n var _saveClientY = function (event) {\n if (event.targetTouches.length === 1) {\n _previousClientY = event.targetTouches[0].clientY;\n }\n };\n // prevent the body from scrolling when the user attempts\n // to scroll past the top or bottom of the element\n var _preventOverscrolling = function (event) {\n // only respond to a single-finger touch\n if (event.targetTouches.length !== 1) {\n return;\n }\n // prevent the body touchmove handler from firing\n // so that scrolling is allowed within the element\n event.stopPropagation();\n if (!_element) {\n return;\n }\n var clientY = event.targetTouches[0].clientY - _previousClientY;\n var scrollableParent = findScrollableParent(event.target);\n if (scrollableParent && _element !== scrollableParent) {\n _element = scrollableParent;\n computedStyles = window.getComputedStyle(_element);\n }\n var scrollTop = _element.scrollTop;\n var isColumnReverse = (computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.flexDirection) === 'column-reverse';\n // if the element is scrolled to the top,\n // prevent the user from scrolling up\n if (scrollTop === 0 && (isColumnReverse ? clientY < 0 : clientY > 0)) {\n event.preventDefault();\n }\n // if the element is scrolled to the bottom,\n // prevent the user from scrolling down\n if (_element.scrollHeight - Math.abs(Math.ceil(scrollTop)) <= _element.clientHeight &&\n (isColumnReverse ? clientY > 0 : clientY < 0)) {\n event.preventDefault();\n }\n };\n events.on(element, 'touchstart', _saveClientY, { passive: false });\n events.on(element, 'touchmove', _preventOverscrolling, { passive: false });\n _element = element;\n};\n/**\n * Same as allowScrollOnElement but does not prevent overscrolling.\n */\nexport var allowOverscrollOnElement = function (element, events) {\n if (!element) {\n return;\n }\n var _allowElementScroll = function (event) {\n event.stopPropagation();\n };\n events.on(element, 'touchmove', _allowElementScroll, { passive: false });\n};\nvar _disableIosBodyScroll = function (event) {\n event.preventDefault();\n};\n/**\n * Disables the body scrolling.\n *\n * @public\n */\nexport function disableBodyScroll() {\n var doc = getDocument();\n if (doc && doc.body && !_bodyScrollDisabledCount) {\n doc.body.classList.add(DisabledScrollClassName);\n doc.body.addEventListener('touchmove', _disableIosBodyScroll, { passive: false, capture: false });\n }\n _bodyScrollDisabledCount++;\n}\n/**\n * Enables the body scrolling.\n *\n * @public\n */\nexport function enableBodyScroll() {\n if (_bodyScrollDisabledCount > 0) {\n var doc = getDocument();\n if (doc && doc.body && _bodyScrollDisabledCount === 1) {\n doc.body.classList.remove(DisabledScrollClassName);\n doc.body.removeEventListener('touchmove', _disableIosBodyScroll);\n }\n _bodyScrollDisabledCount--;\n }\n}\n/**\n * Calculates the width of a scrollbar for the browser/os.\n *\n * @public\n */\nexport function getScrollbarWidth(doc) {\n if (_scrollbarWidth === undefined) {\n var theDoc = doc !== null && doc !== void 0 ? doc : getDocument();\n var scrollDiv = theDoc.createElement('div');\n scrollDiv.style.setProperty('width', '100px');\n scrollDiv.style.setProperty('height', '100px');\n scrollDiv.style.setProperty('overflow', 'scroll');\n scrollDiv.style.setProperty('position', 'absolute');\n scrollDiv.style.setProperty('top', '-9999px');\n theDoc.body.appendChild(scrollDiv);\n // Get the scrollbar width\n _scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n // Delete the DIV\n theDoc.body.removeChild(scrollDiv);\n }\n return _scrollbarWidth;\n}\n/**\n * Traverses up the DOM for the element with the data-is-scrollable=true attribute, or returns\n * document.body.\n *\n * @public\n */\nexport function findScrollableParent(startingElement) {\n var el = startingElement;\n var doc = getDocument(startingElement);\n // First do a quick scan for the scrollable attribute.\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) === 'true') {\n return el;\n }\n el = el.parentElement;\n }\n // If we haven't found it, the use the slower method: compute styles to evaluate if overflow is set.\n el = startingElement;\n while (el && el !== doc.body) {\n if (el.getAttribute(DATA_IS_SCROLLABLE_ATTRIBUTE) !== 'false') {\n var computedStyles = getComputedStyle(el);\n var overflowY = computedStyles ? computedStyles.getPropertyValue('overflow-y') : '';\n if (overflowY && (overflowY === 'scroll' || overflowY === 'auto')) {\n return el;\n }\n }\n el = el.parentElement;\n }\n // Fall back to window scroll.\n if (!el || el === doc.body) {\n el = getWindow(startingElement);\n }\n return el;\n}\n//# sourceMappingURL=scroll.js.map","/* eslint-disable no-console */\nvar _warningCallback = undefined;\n/**\n * Sends a warning to console, if the api is present.\n *\n * @public\n * @param message - Warning message.\n */\nexport function warn(message) {\n if (_warningCallback && process.env.NODE_ENV !== 'production') {\n _warningCallback(message);\n }\n else if (console && console.warn) {\n console.warn(message);\n }\n}\n/**\n * Configures the warning callback. Passing in undefined will reset it to use the default\n * console.warn function.\n *\n * @public\n * @param warningCallback - Callback to override the generated warnings.\n */\nexport function setWarningCallback(warningCallback) {\n _warningCallback = warningCallback;\n}\n//# sourceMappingURL=warn.js.map","import { warn } from './warn';\n/**\n * Warns when props are required if a condition is met.\n *\n * @public\n * @param componentName - The name of the component being used.\n * @param props - The props passed into the component.\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\nexport function warnConditionallyRequiredProps(componentName, props, requiredProps, conditionalPropName, condition) {\n if (condition === true && process.env.NODE_ENV !== 'production') {\n for (var _i = 0, requiredProps_1 = requiredProps; _i < requiredProps_1.length; _i++) {\n var requiredPropName = requiredProps_1[_i];\n if (!(requiredPropName in props)) {\n warn(\"\".concat(componentName, \" property '\").concat(requiredPropName, \"' is required when '\").concat(conditionalPropName, \"' is used.'\"));\n }\n }\n }\n}\n//# sourceMappingURL=warnConditionallyRequiredProps.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async } from './Async';\nimport { EventGroup } from './EventGroup';\nimport { warnConditionallyRequiredProps } from './warn/warnConditionallyRequiredProps';\nimport { warnMutuallyExclusive } from './warn/warnMutuallyExclusive';\nimport { warnDeprecations } from './warn/warnDeprecations';\n/**\n * BaseComponent class, which provides basic helpers for all components.\n *\n * @public\n * {@docCategory BaseComponent}\n *\n * @deprecated Do not use. We are moving away from class component.\n */\nvar BaseComponent = /** @class */ (function (_super) {\n __extends(BaseComponent, _super);\n /**\n * BaseComponent constructor\n * @param props - The props for the component.\n * @param context - The context for the component.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function BaseComponent(props, context) {\n var _this = _super.call(this, props, context) || this;\n // eslint-disable-next-line deprecation/deprecation\n _makeAllSafe(_this, BaseComponent.prototype, [\n 'componentDidMount',\n 'shouldComponentUpdate',\n 'getSnapshotBeforeUpdate',\n 'render',\n 'componentDidUpdate',\n 'componentWillUnmount',\n ]);\n return _this;\n }\n /**\n * When the component receives props, make sure the componentRef is updated.\n */\n BaseComponent.prototype.componentDidUpdate = function (prevProps, prevState) {\n this._updateComponentRef(prevProps, this.props);\n };\n /**\n * When the component has mounted, update the componentRef.\n */\n BaseComponent.prototype.componentDidMount = function () {\n this._setComponentRef(this.props.componentRef, this);\n };\n /**\n * If we have disposables, dispose them automatically on unmount.\n */\n BaseComponent.prototype.componentWillUnmount = function () {\n this._setComponentRef(this.props.componentRef, null);\n if (this.__disposables) {\n for (var i = 0, len = this._disposables.length; i < len; i++) {\n var disposable = this.__disposables[i];\n if (disposable.dispose) {\n disposable.dispose();\n }\n }\n this.__disposables = null;\n }\n };\n Object.defineProperty(BaseComponent.prototype, \"className\", {\n /**\n * Gets the object's class name.\n */\n get: function () {\n if (!this.__className) {\n var funcNameRegex = /function (.{1,})\\(/;\n var results = funcNameRegex.exec(this.constructor.toString());\n this.__className = results && results.length > 1 ? results[1] : '';\n }\n return this.__className;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_disposables\", {\n /**\n * Allows subclasses to push things to this._disposables to be auto disposed.\n */\n get: function () {\n if (!this.__disposables) {\n this.__disposables = [];\n }\n return this.__disposables;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_async\", {\n /**\n * Gets the async instance associated with the component, created on demand. The async instance gives\n * subclasses a way to execute setTimeout/setInterval async calls safely, where the callbacks\n * will be cleared/ignored automatically after unmounting. The helpers within the async object also\n * preserve the this pointer so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__async) {\n this.__async = new Async(this);\n this._disposables.push(this.__async);\n }\n return this.__async;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseComponent.prototype, \"_events\", {\n /**\n * Gets the event group instance assocaited with the component, created on demand. The event instance\n * provides on/off methods for listening to DOM (or regular javascript object) events. The event callbacks\n * will be automatically disconnected after unmounting. The helpers within the events object also\n * preserve the this reference so that you don't need to \"bind\" the callbacks.\n */\n get: function () {\n if (!this.__events) {\n this.__events = new EventGroup(this);\n this._disposables.push(this.__events);\n }\n return this.__events;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Helper to return a memoized ref resolver function.\n * @param refName - Name of the member to assign the ref to.\n * @returns A function instance keyed from the given refname.\n * @deprecated Use `createRef` from React.createRef.\n */\n BaseComponent.prototype._resolveRef = function (refName) {\n var _this = this;\n if (!this.__resolves) {\n this.__resolves = {};\n }\n if (!this.__resolves[refName]) {\n this.__resolves[refName] = function (ref) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (_this[refName] = ref);\n };\n }\n return this.__resolves[refName];\n };\n /**\n * Updates the componentRef (by calling it with \"this\" when necessary.)\n */\n BaseComponent.prototype._updateComponentRef = function (currentProps, newProps) {\n if (newProps === void 0) { newProps = {}; }\n // currentProps *should* always be defined, but verify that just in case a subclass is manually\n // calling a lifecycle method with no parameters (which has happened) or other odd usage.\n if (currentProps && newProps && currentProps.componentRef !== newProps.componentRef) {\n this._setComponentRef(currentProps.componentRef, null);\n this._setComponentRef(newProps.componentRef, this);\n }\n };\n /**\n * Warns when a deprecated props are being used.\n *\n * @param deprecationMap - The map of deprecations, where key is the prop name and the value is\n * either null or a replacement prop name.\n */\n BaseComponent.prototype._warnDeprecations = function (deprecationMap) {\n warnDeprecations(this.className, this.props, deprecationMap);\n };\n /**\n * Warns when props which are mutually exclusive with each other are both used.\n *\n * @param mutuallyExclusiveMap - The map of mutually exclusive props.\n */\n BaseComponent.prototype._warnMutuallyExclusive = function (mutuallyExclusiveMap) {\n warnMutuallyExclusive(this.className, this.props, mutuallyExclusiveMap);\n };\n /**\n * Warns when props are required if a condition is met.\n *\n * @param requiredProps - The name of the props that are required when the condition is met.\n * @param conditionalPropName - The name of the prop that the condition is based on.\n * @param condition - Whether the condition is met.\n */\n BaseComponent.prototype._warnConditionallyRequiredProps = function (requiredProps, conditionalPropName, condition) {\n warnConditionallyRequiredProps(this.className, this.props, requiredProps, conditionalPropName, condition);\n };\n BaseComponent.prototype._setComponentRef = function (ref, value) {\n if (!this._skipComponentRefResolution && ref) {\n if (typeof ref === 'function') {\n ref(value);\n }\n if (typeof ref === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref.current = value;\n }\n }\n };\n return BaseComponent;\n}(React.Component));\nexport { BaseComponent };\n/**\n * Helper to override a given method with a wrapper method that can try/catch the original, but also\n * ensures that the BaseComponent's methods are called before the subclass's. This ensures that\n * componentWillUnmount in the base is called and that things in the _disposables array are disposed.\n */\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeAllSafe(obj, prototype, methodNames) {\n for (var i = 0, len = methodNames.length; i < len; i++) {\n _makeSafe(obj, prototype, methodNames[i]);\n }\n}\n// eslint-disable-next-line deprecation/deprecation\nfunction _makeSafe(obj, prototype, methodName) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n var classMethod = obj[methodName];\n var prototypeMethod = prototype[methodName];\n if (classMethod || prototypeMethod) {\n obj[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n /* eslint-enable @typescript-eslint/no-explicit-any */\n var retVal;\n if (prototypeMethod) {\n retVal = prototypeMethod.apply(this, args);\n }\n if (classMethod !== prototypeMethod) {\n retVal = classMethod.apply(this, args);\n }\n return retVal;\n };\n }\n}\n/**\n * Simple constant function for returning null, used to render empty templates in JSX.\n *\n * @public\n */\nexport function nullRender() {\n return null;\n}\n//# sourceMappingURL=BaseComponent.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getWindow } from './dom/getWindow';\n/**\n * Utility component for delaying the render of a child component after a given delay. This component\n * requires a single child component; don't pass in many components. Wrap multiple components in a DIV\n * if necessary.\n *\n * @public\n * {@docCategory DelayedRender}\n */\nexport var DelayedRender = /** @class */ (function (_super) {\n __extends(DelayedRender, _super);\n function DelayedRender(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n isRendered: getWindow() === undefined,\n };\n return _this;\n }\n DelayedRender.prototype.componentDidMount = function () {\n var _this = this;\n var delay = this.props.delay;\n // eslint-disable-next-line no-restricted-globals\n this._timeoutId = window.setTimeout(function () {\n _this.setState({\n isRendered: true,\n });\n }, delay);\n };\n DelayedRender.prototype.componentWillUnmount = function () {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n }\n };\n DelayedRender.prototype.render = function () {\n return this.state.isRendered ? React.Children.only(this.props.children) : null;\n };\n DelayedRender.defaultProps = {\n delay: 0,\n };\n return DelayedRender;\n}(React.Component));\n//# sourceMappingURL=DelayedRender.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Storing global state in local module variables has issues when more than one copy\n * if the module gets loaded on the page (due to a bundling error or simply by consuming\n * a prebundled script.)\n *\n * This file contains helpers to deal with the getting and setting local state, and allows\n * callers to get called back when it mutates.\n */\nvar GLOBAL_SETTINGS_PROP_NAME = '__globalSettings__';\nvar CALLBACK_STATE_PROP_NAME = '__callbacks__';\nvar _counter = 0;\n/**\n * Global settings helper, which stores settings in the global (window) namespace.\n * If window is not provided, it will store settings in module scope. Provides a\n * way to observe changes as well when their values change.\n *\n * @public\n * {@docCategory GlobalSettings}\n */\nvar GlobalSettings = /** @class */ (function () {\n function GlobalSettings() {\n }\n GlobalSettings.getValue = function (key, defaultValue) {\n var globalSettings = _getGlobalSettings();\n if (globalSettings[key] === undefined) {\n globalSettings[key] = typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n }\n return globalSettings[key];\n };\n GlobalSettings.setValue = function (key, value) {\n var globalSettings = _getGlobalSettings();\n var callbacks = globalSettings[CALLBACK_STATE_PROP_NAME];\n var oldValue = globalSettings[key];\n if (value !== oldValue) {\n globalSettings[key] = value;\n var changeDescription = {\n oldValue: oldValue,\n value: value,\n key: key,\n };\n for (var id in callbacks) {\n if (callbacks.hasOwnProperty(id)) {\n callbacks[id](changeDescription);\n }\n }\n }\n return value;\n };\n GlobalSettings.addChangeListener = function (cb) {\n // Note: we use generated ids on the callbacks to create a map of the callbacks, which optimizes removal.\n // (It's faster to delete a key than it is to look up the index of an object and splice an array.)\n var id = cb.__id__;\n var callbacks = _getCallbacks();\n if (!id) {\n id = cb.__id__ = String(_counter++);\n }\n callbacks[id] = cb;\n };\n GlobalSettings.removeChangeListener = function (cb) {\n var callbacks = _getCallbacks();\n delete callbacks[cb.__id__];\n };\n return GlobalSettings;\n}());\nexport { GlobalSettings };\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _getGlobalSettings() {\n var _a;\n var win = getWindow();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var globalObj = win || {};\n if (!globalObj[GLOBAL_SETTINGS_PROP_NAME]) {\n globalObj[GLOBAL_SETTINGS_PROP_NAME] = (_a = {},\n _a[CALLBACK_STATE_PROP_NAME] = {},\n _a);\n }\n return globalObj[GLOBAL_SETTINGS_PROP_NAME];\n}\nfunction _getCallbacks() {\n var globalSettings = _getGlobalSettings();\n return globalSettings[CALLBACK_STATE_PROP_NAME];\n}\n//# sourceMappingURL=GlobalSettings.js.map","/**\n * Simulated enum for keycodes. These will get inlined by uglify when used much like an enum\n *\n * @public\n * {@docCategory KeyCodes}\n */\nexport var KeyCodes = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n ctrl: 17,\n alt: 18,\n pauseBreak: 19,\n capslock: 20,\n escape: 27,\n space: 32,\n pageUp: 33,\n pageDown: 34,\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n insert: 45,\n del: 46,\n zero: 48,\n one: 49,\n two: 50,\n three: 51,\n four: 52,\n five: 53,\n six: 54,\n seven: 55,\n eight: 56,\n nine: 57,\n colon: 58,\n a: 65,\n b: 66,\n c: 67,\n d: 68,\n e: 69,\n f: 70,\n g: 71,\n h: 72,\n i: 73,\n j: 74,\n k: 75,\n l: 76,\n m: 77,\n n: 78,\n o: 79,\n p: 80,\n q: 81,\n r: 82,\n s: 83,\n t: 84,\n u: 85,\n v: 86,\n w: 87,\n x: 88,\n y: 89,\n z: 90,\n leftWindow: 91,\n rightWindow: 92,\n select: 93,\n /* eslint-disable @typescript-eslint/naming-convention */\n zero_numpad: 96,\n one_numpad: 97,\n two_numpad: 98,\n three_numpad: 99,\n four_numpad: 100,\n five_numpad: 101,\n six_numpad: 102,\n seven_numpad: 103,\n eight_numpad: 104,\n nine_numpad: 105,\n /* eslint-enable @typescript-eslint/naming-convention */\n multiply: 106,\n add: 107,\n subtract: 109,\n decimalPoint: 110,\n divide: 111,\n f1: 112,\n f2: 113,\n f3: 114,\n f4: 115,\n f5: 116,\n f6: 117,\n f7: 118,\n f8: 119,\n f9: 120,\n f10: 121,\n f11: 122,\n f12: 123,\n numlock: 144,\n scrollLock: 145,\n semicolon: 186,\n equalSign: 187,\n comma: 188,\n dash: 189,\n period: 190,\n forwardSlash: 191,\n graveAccent: 192,\n openBracket: 219,\n backSlash: 220,\n closeBracket: 221,\n singleQuote: 222,\n};\n//# sourceMappingURL=KeyCodes.js.map","/**\n * Rectangle helper class.\n *\n * @public\n * {@docCategory Rectangle}\n */\nvar Rectangle = /** @class */ (function () {\n function Rectangle(left, right, top, bottom) {\n if (left === void 0) { left = 0; }\n if (right === void 0) { right = 0; }\n if (top === void 0) { top = 0; }\n if (bottom === void 0) { bottom = 0; }\n this.top = top;\n this.bottom = bottom;\n this.left = left;\n this.right = right;\n }\n Object.defineProperty(Rectangle.prototype, \"width\", {\n /**\n * Calculated automatically by subtracting the right from left\n */\n get: function () {\n return this.right - this.left;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"height\", {\n /**\n * Calculated automatically by subtracting the bottom from top.\n */\n get: function () {\n return this.bottom - this.top;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Tests if another rect is approximately equal to this rect (within 4 decimal places.)\n */\n Rectangle.prototype.equals = function (rect) {\n // Fixing to 4 decimal places because it allows enough precision and will handle cases when something\n // should be rounded, like .999999 should round to 1.\n return (parseFloat(this.top.toFixed(4)) === parseFloat(rect.top.toFixed(4)) &&\n parseFloat(this.bottom.toFixed(4)) === parseFloat(rect.bottom.toFixed(4)) &&\n parseFloat(this.left.toFixed(4)) === parseFloat(rect.left.toFixed(4)) &&\n parseFloat(this.right.toFixed(4)) === parseFloat(rect.right.toFixed(4)));\n };\n return Rectangle;\n}());\nexport { Rectangle };\n//# sourceMappingURL=Rectangle.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Returns a single function which will call each of the given functions in the context of the\n * parent.\n */\nexport function appendFunction(parent) {\n var functions = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n functions[_i - 1] = arguments[_i];\n }\n if (functions.length < 2) {\n return functions[0];\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n functions.forEach(function (f) { return f && f.apply(parent, args); });\n };\n}\n//# sourceMappingURL=appendFunction.js.map","/**\n * ARIA helper to concatenate attributes, returning undefined if all attributes\n * are undefined. (Empty strings are not a valid ARIA attribute value.)\n *\n * @param ariaAttributes - ARIA attributes to merge\n */\nexport function mergeAriaAttributeValues() {\n var ariaAttributes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n ariaAttributes[_i] = arguments[_i];\n }\n var mergedAttribute = ariaAttributes\n .filter(function (arg) { return arg; })\n .join(' ')\n .trim();\n return mergedAttribute === '' ? undefined : mergedAttribute;\n}\n//# sourceMappingURL=aria.js.map","/**\n * Helper to find the index of an item within an array, using a callback to\n * determine the match.\n *\n * @public\n * @param array - Array to search.\n * @param cb - Callback which returns true on matches.\n * @param fromIndex - Optional index to start from (defaults to 0)\n */\nexport function findIndex(array, cb, fromIndex) {\n if (fromIndex === void 0) { fromIndex = 0; }\n var index = -1;\n for (var i = fromIndex; array && i < array.length; i++) {\n if (cb(array[i], i)) {\n index = i;\n break;\n }\n }\n return index;\n}\n/**\n * Helper to find the first item within an array that satisfies the callback.\n * @param array - Array to search\n * @param cb - Callback which returns true on matches\n */\nexport function find(array, cb) {\n var index = findIndex(array, cb);\n if (index < 0) {\n return undefined;\n }\n return array[index];\n}\n/**\n * Creates an array of a given size and helper method to populate.\n *\n * @public\n * @param size - Size of array.\n * @param getItem - Callback to populate given cell index.\n */\nexport function createArray(size, getItem) {\n var array = [];\n for (var i = 0; i < size; i++) {\n array.push(getItem(i));\n }\n return array;\n}\n/**\n * Convert the given array to a matrix with columnCount number\n * of columns.\n *\n * @public\n * @param items - The array to convert\n * @param columnCount - The number of columns for the resulting matrix\n * @returns A matrix of items\n */\nexport function toMatrix(items, columnCount) {\n return items.reduce(function (rows, currentValue, index) {\n if (index % columnCount === 0) {\n rows.push([currentValue]);\n }\n else {\n rows[rows.length - 1].push(currentValue);\n }\n return rows;\n }, []);\n}\n/**\n * Given an array, it returns a new array that does not contain the item at the given index.\n * @param array - The array to operate on\n * @param index - The index of the element to remove\n */\nexport function removeIndex(array, index) {\n return array.filter(function (_, i) { return index !== i; });\n}\n/**\n * Given an array, this function returns a new array where the element at a given index has been replaced.\n * @param array - The array to operate on\n * @param newElement - The element that will be placed in the new array\n * @param index - The index of the element that should be replaced\n */\nexport function replaceElement(array, newElement, index) {\n var copy = array.slice();\n copy[index] = newElement;\n return copy;\n}\n/**\n * Given an array, this function returns a new array where an element has been inserted at the given index.\n * @param array - The array to operate on\n * @param index - The index where an element should be inserted\n * @param itemToAdd - The element to insert\n */\nexport function addElementAtIndex(array, index, itemToAdd) {\n var copy = array.slice();\n copy.splice(index, 0, itemToAdd);\n return copy;\n}\n/**\n * Given an array where each element is of type T or T[], flatten it into an array of T\n * @param array - The array where each element can optionally also be an array\n */\nexport function flatten(array) {\n var result = [];\n array.forEach(function (item) { return (result = result.concat(item)); });\n return result;\n}\n/**\n * Returns a boolean indicating if the two given arrays are equal in length and values.\n *\n * @param array1 - First array to compare\n * @param array2 - Second array to compare\n * @returns True if the arrays are the same length and have the same values in the same positions, false otherwise.\n */\nexport function arraysEqual(array1, array2) {\n if (array1.length !== array2.length) {\n return false;\n }\n for (var i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n//# sourceMappingURL=array.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Fetches an item from session storage without throwing an exception\n * @param key The key of the item to fetch from session storage\n */\nexport function getItem(key) {\n var result = null;\n try {\n var win = getWindow();\n result = win ? win.sessionStorage.getItem(key) : null;\n }\n catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n/**\n * Inserts an item into session storage without throwing an exception\n * @param key The key of the item to add to session storage\n * @param data The data to put into session storage\n */\nexport function setItem(key, data) {\n var _a;\n try {\n (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.sessionStorage.setItem(key, data);\n }\n catch (e) {\n /* Eat the exception */\n }\n}\n//# sourceMappingURL=sessionStorage.js.map","import { KeyCodes } from './KeyCodes';\nimport { getDocument } from './dom/getDocument';\nimport { getItem, setItem } from './sessionStorage';\nimport { setRTL as mergeStylesSetRTL } from '@fluentui/merge-styles';\nvar RTL_LOCAL_STORAGE_KEY = 'isRTL';\n// Default to undefined so that we initialize on first read.\nvar _isRTL;\n/**\n * Gets the rtl state of the page (returns true if in rtl.)\n */\nexport function getRTL(theme) {\n if (theme === void 0) { theme = {}; }\n if (theme.rtl !== undefined) {\n return theme.rtl;\n }\n if (_isRTL === undefined) {\n // Fabric supports persisting the RTL setting between page refreshes via session storage\n var savedRTL = getItem(RTL_LOCAL_STORAGE_KEY);\n if (savedRTL !== null) {\n _isRTL = savedRTL === '1';\n setRTL(_isRTL);\n }\n var doc = getDocument();\n if (_isRTL === undefined && doc) {\n _isRTL = ((doc.body && doc.body.getAttribute('dir')) || doc.documentElement.getAttribute('dir')) === 'rtl';\n mergeStylesSetRTL(_isRTL);\n }\n }\n return !!_isRTL;\n}\n/**\n * Sets the rtl state of the page (by adjusting the dir attribute of the html element.)\n */\nexport function setRTL(isRTL, persistSetting) {\n if (persistSetting === void 0) { persistSetting = false; }\n var doc = getDocument();\n if (doc) {\n doc.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr');\n }\n if (persistSetting) {\n setItem(RTL_LOCAL_STORAGE_KEY, isRTL ? '1' : '0');\n }\n _isRTL = isRTL;\n mergeStylesSetRTL(_isRTL);\n}\n/**\n * Returns the given key, but flips right/left arrows if necessary.\n */\nexport function getRTLSafeKeyCode(key, theme) {\n if (theme === void 0) { theme = {}; }\n if (getRTL(theme)) {\n if (key === KeyCodes.left) {\n key = KeyCodes.right;\n }\n else if (key === KeyCodes.right) {\n key = KeyCodes.left;\n }\n }\n return key;\n}\n//# sourceMappingURL=rtl.js.map","import { mergeCssSets, Stylesheet } from '@fluentui/merge-styles';\nimport { getRTL } from './rtl';\nimport { getWindow } from './dom';\nvar MAX_CACHE_COUNT = 50;\nvar DEFAULT_SPECIFICITY_MULTIPLIER = 5;\nvar _memoizedClassNames = 0;\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(function () { return _memoizedClassNames++; });\n}\n// Note that because of the caching nature within the classNames memoization,\n// I've disabled this rule to simply be able to work with any types.\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// This represents a prop we attach to each Map to indicate the cached return value\n// associated with the graph node.\nvar retVal = '__retval__';\n/**\n * Creates a getClassNames function which calls getStyles given the props, and injects them\n * into mergeStyleSets.\n *\n * Note that the props you pass in on every render should be in the same order and\n * immutable (numbers, strings, and booleans). This will allow the results to be memoized. Violating\n * these will cause extra recalcs to occur.\n */\nexport function classNamesFunction(options) {\n // We build a trie where each node is a Map. The map entry key represents an argument\n // value, and the entry value is another node (Map). Each node has a `__retval__`\n // property which is used to hold the cached response.\n if (options === void 0) { options = {}; }\n // To derive the response, we can simply ensure the arguments are added or already\n // exist in the trie. At the last node, if there is a `__retval__` we return that. Otherwise\n // we call the `getStyles` api to evaluate, cache on the property, and return that.\n // let map: IRecursiveMemoNode = new Map();\n var windowMap = new Map();\n var styleCalcCount = 0;\n var getClassNamesCount = 0;\n var currentMemoizedClassNames = _memoizedClassNames;\n var getClassNames = function (styleFunctionOrObject, styleProps) {\n var _a;\n if (styleProps === void 0) { styleProps = {}; }\n // If useStaticStyles is true, styleFunctionOrObject returns slot to classname mappings.\n // If there is also no style overrides, we can skip merge styles completely and\n // simply return the result from the style funcion.\n if (options.useStaticStyles &&\n typeof styleFunctionOrObject === 'function' &&\n styleFunctionOrObject.__noStyleOverride__) {\n return styleFunctionOrObject(styleProps);\n }\n getClassNamesCount++;\n var shadowConfig = styleFunctionOrObject\n ? styleFunctionOrObject.__shadowConfig__\n : undefined;\n var key = shadowConfig && shadowConfig.window ? shadowConfig.window : '__default__';\n if (!windowMap.has(key)) {\n windowMap.set(key, new Map());\n }\n var current = windowMap.get(key);\n // let current: Map = map;\n var theme = styleProps.theme;\n var rtl = theme && theme.rtl !== undefined ? theme.rtl : getRTL();\n var disableCaching = options.disableCaching;\n // On reset of our stylesheet, reset memoized cache.\n if (currentMemoizedClassNames !== _memoizedClassNames) {\n currentMemoizedClassNames = _memoizedClassNames;\n // map = new Map();\n windowMap.set(key, new Map());\n current = windowMap.get(key);\n styleCalcCount = 0;\n }\n if (!options.disableCaching) {\n current = _traverseMap(windowMap.get(key), styleFunctionOrObject);\n current = _traverseMap(current, styleProps);\n }\n if (disableCaching || !current[retVal]) {\n if (styleFunctionOrObject === undefined) {\n current[retVal] = {};\n }\n else {\n current[retVal] = mergeCssSets([\n (typeof styleFunctionOrObject === 'function'\n ? styleFunctionOrObject(styleProps)\n : styleFunctionOrObject),\n ], {\n shadowConfig: styleFunctionOrObject.__shadowConfig__,\n rtl: !!rtl,\n specificityMultiplier: options.useStaticStyles ? DEFAULT_SPECIFICITY_MULTIPLIER : undefined,\n });\n }\n if (!disableCaching) {\n styleCalcCount++;\n }\n }\n if (styleCalcCount > (options.cacheSize || MAX_CACHE_COUNT)) {\n var win = getWindow();\n if ((_a = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _a === void 0 ? void 0 : _a.enableClassNameCacheFullWarning) {\n // eslint-disable-next-line no-console\n console.warn(\"Styles are being recalculated too frequently. Cache miss rate is \".concat(styleCalcCount, \"/\").concat(getClassNamesCount, \".\"));\n // eslint-disable-next-line no-console\n console.trace();\n }\n windowMap.get(key).clear();\n styleCalcCount = 0;\n // Mutate the options passed in, that's all we can do.\n options.disableCaching = true;\n }\n // Note: the retVal is an attached property on the Map; not a key in the Map. We use this attached property to\n // cache the return value for this branch of the graph.\n return current[retVal];\n };\n return getClassNames;\n}\nfunction _traverseEdge(current, value) {\n value = _normalizeValue(value);\n if (!current.has(value)) {\n current.set(value, new Map());\n }\n return current.get(value);\n}\nfunction _traverseMap(current, inputs) {\n if (typeof inputs === 'function') {\n var cachedInputsFromStyled = inputs.__cachedInputs__;\n if (cachedInputsFromStyled) {\n // The styled helper will generate the styles function and will attach the cached\n // inputs (consisting of the default styles, customzied styles, and user provided styles.)\n // These should be used as cache keys for deriving the memoized value.\n for (var _i = 0, _a = inputs.__cachedInputs__; _i < _a.length; _i++) {\n var input = _a[_i];\n current = _traverseEdge(current, input);\n }\n }\n else {\n current = _traverseEdge(current, inputs);\n }\n }\n else if (typeof inputs === 'object') {\n for (var propName in inputs) {\n if (inputs.hasOwnProperty(propName)) {\n current = _traverseEdge(current, inputs[propName]);\n }\n }\n }\n return current;\n}\nfunction _normalizeValue(value) {\n switch (value) {\n case undefined:\n return '__undefined__';\n case null:\n return '__null__';\n default:\n return value;\n }\n}\n//# sourceMappingURL=classNamesFunction.js.map","import { Stylesheet } from '@fluentui/merge-styles';\nvar _initializedStylesheetResets = false;\nvar _resetCounter = 0;\nvar _emptyObject = { empty: true };\nvar _dictionary = {};\nvar _weakMap = typeof WeakMap === 'undefined' ? null : WeakMap;\n/**\n * Test utility for providing a custom weakmap.\n *\n * @internal\n * */\nexport function setMemoizeWeakMap(weakMap) {\n _weakMap = weakMap;\n}\n/**\n * Reset memoizations.\n */\nexport function resetMemoizations() {\n _resetCounter++;\n}\n/**\n * Memoize decorator to be used on class methods. WARNING: the `this` reference\n * will be inaccessible within a memoized method, given that a cached method's `this`\n * would not be instance-specific.\n *\n * @public\n */\nexport function memoize(_target, _key, descriptor) {\n // We bind to \"null\" to prevent people from inadvertently pulling values from \"this\",\n // rather than passing them in as input values which can be memoized.\n var fn = memoizeFunction(descriptor.value && descriptor.value.bind(null));\n return {\n configurable: true,\n get: function () {\n return fn;\n },\n };\n}\n/**\n * Memoizes a function; when you pass in the same parameters multiple times, it returns a cached result.\n * Be careful when passing in objects, you need to pass in the same INSTANCE for caching to work. Otherwise\n * it will grow the cache unnecessarily. Also avoid using default values that evaluate functions; passing in\n * undefined for a value and relying on a default function will execute it the first time, but will not\n * re-evaluate subsequent times which may have been unexpected.\n *\n * By default, the cache will reset after 100 permutations, to avoid abuse cases where the function is\n * unintendedly called with unique objects. Without a reset, the cache could grow infinitely, so we safeguard\n * by resetting. To override this behavior, pass a value of 0 to the maxCacheSize parameter.\n *\n * @public\n * @param cb - The function to memoize.\n * @param maxCacheSize - Max results to cache. If the cache exceeds this value, it will reset on the next call.\n * @param ignoreNullOrUndefinedResult - Flag to decide whether to cache callback result if it is undefined/null.\n * If the flag is set to true, the callback result is recomputed every time till the callback result is\n * not undefined/null for the first time, and then the non-undefined/null version gets cached.\n * @returns A memoized version of the function.\n */\nexport function memoizeFunction(cb, maxCacheSize, ignoreNullOrUndefinedResult) {\n if (maxCacheSize === void 0) { maxCacheSize = 100; }\n if (ignoreNullOrUndefinedResult === void 0) { ignoreNullOrUndefinedResult = false; }\n // Avoid breaking scenarios which don't have weak map.\n if (!_weakMap) {\n return cb;\n }\n if (!_initializedStylesheetResets) {\n var stylesheet = Stylesheet.getInstance();\n if (stylesheet && stylesheet.onReset) {\n Stylesheet.getInstance().onReset(resetMemoizations);\n }\n _initializedStylesheetResets = true;\n }\n var rootNode;\n var cacheSize = 0;\n var localResetCounter = _resetCounter;\n return function memoizedFunction() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var currentNode = rootNode;\n if (rootNode === undefined ||\n localResetCounter !== _resetCounter ||\n (maxCacheSize > 0 && cacheSize > maxCacheSize)) {\n rootNode = _createNode();\n cacheSize = 0;\n localResetCounter = _resetCounter;\n }\n currentNode = rootNode;\n // Traverse the tree until we find the match.\n for (var i = 0; i < args.length; i++) {\n var arg = _normalizeArg(args[i]);\n if (!currentNode.map.has(arg)) {\n currentNode.map.set(arg, _createNode());\n }\n currentNode = currentNode.map.get(arg);\n }\n if (!currentNode.hasOwnProperty('value')) {\n currentNode.value = cb.apply(void 0, args);\n cacheSize++;\n }\n if (ignoreNullOrUndefinedResult && (currentNode.value === null || currentNode.value === undefined)) {\n currentNode.value = cb.apply(void 0, args);\n }\n return currentNode.value;\n };\n}\n/**\n * Creates a memoizer for a single-value function, backed by a WeakMap.\n * With a WeakMap, the memoized values are only kept as long as the source objects,\n * ensuring that there is no memory leak.\n *\n * This function assumes that the input values passed to the wrapped function will be\n * `function` or `object` types. To memoize functions which accept other inputs, use\n * `memoizeFunction`, which memoizes against arbitrary inputs using a lookup cache.\n *\n * @public\n */\nexport function createMemoizer(getValue) {\n if (!_weakMap) {\n // Without a `WeakMap` implementation, memoization is not possible.\n return getValue;\n }\n var cache = new _weakMap();\n function memoizedGetValue(input) {\n if (!input || (typeof input !== 'function' && typeof input !== 'object')) {\n // A WeakMap can only be used to test against reference values, i.e. 'function' and 'object'.\n // All other inputs cannot be memoized against in this manner.\n return getValue(input);\n }\n if (cache.has(input)) {\n return cache.get(input);\n }\n var value = getValue(input);\n cache.set(input, value);\n return value;\n }\n return memoizedGetValue;\n}\nfunction _normalizeArg(val) {\n if (!val) {\n return _emptyObject;\n }\n else if (typeof val === 'object' || typeof val === 'function') {\n return val;\n }\n else if (!_dictionary[val]) {\n _dictionary[val] = { val: val };\n }\n return _dictionary[val];\n}\nfunction _createNode() {\n return {\n map: _weakMap ? new _weakMap() : null,\n };\n}\n//# sourceMappingURL=memoize.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { createMemoizer } from '../memoize';\nfunction createComposedComponent(outer) {\n var Outer = outer;\n var outerMemoizer = createMemoizer(function (inner) {\n if (outer === inner) {\n throw new Error('Attempted to compose a component with itself.');\n }\n var Inner = inner;\n var innerMemoizer = createMemoizer(function (defaultRender) {\n var InnerWithDefaultRender = function (innerProps) {\n return React.createElement(Inner, __assign({}, innerProps, { defaultRender: defaultRender }));\n };\n return InnerWithDefaultRender;\n });\n var OuterWithDefaultRender = function (outerProps) {\n var defaultRender = outerProps.defaultRender;\n return React.createElement(Outer, __assign({}, outerProps, { defaultRender: defaultRender ? innerMemoizer(defaultRender) : Inner }));\n };\n return OuterWithDefaultRender;\n });\n return outerMemoizer;\n}\nvar componentAsMemoizer = createMemoizer(createComposedComponent);\n/**\n * Composes two components which conform to the `IComponentAs` specification; that is, two\n * components which accept a `defaultRender` prop, which is a 'default' implementation of\n * a component which accepts the same overall props.\n *\n * @public\n */\nexport function composeComponentAs(outer, inner) {\n return componentAsMemoizer(outer)(inner);\n}\n//# sourceMappingURL=composeComponentAs.js.map","/**\n * Determines whether a component is controlled.\n * @param props - Component props\n * @param valueProp - Prop containing the controlled value\n * @returns true if controlled, false if uncontrolled\n */\nexport function isControlled(props, valueProp) {\n // React's built-in considers a prop to be provided if its value is non-null/undefined.\n // Mirror that behavior here (rather than checking for just undefined).\n return props[valueProp] !== undefined && props[valueProp] !== null;\n}\n//# sourceMappingURL=controlled.js.map","/**\n * Concatination helper, which can merge class names together. Skips over falsey values.\n *\n * @public\n */\nexport function css() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var classes = [];\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n if (arg) {\n if (typeof arg === 'string') {\n classes.push(arg);\n }\n else if (arg.hasOwnProperty('toString') && typeof arg.toString === 'function') {\n classes.push(arg.toString());\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var key in arg) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n }\n return classes.join(' ');\n}\n//# sourceMappingURL=css.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings } from '../GlobalSettings';\nvar CustomizationsGlobalKey = 'customizations';\nvar NO_CUSTOMIZATIONS = { settings: {}, scopedSettings: {}, inCustomizerContext: false };\nvar _allSettings = GlobalSettings.getValue(CustomizationsGlobalKey, {\n settings: {},\n scopedSettings: {},\n inCustomizerContext: false,\n});\nvar _events = [];\nvar Customizations = /** @class */ (function () {\n function Customizations() {\n }\n Customizations.reset = function () {\n _allSettings.settings = {};\n _allSettings.scopedSettings = {};\n };\n /** Apply global Customization settings.\n * @example Customizations.applySettings(\\{ theme: \\{...\\} \\});\n */\n Customizations.applySettings = function (settings) {\n _allSettings.settings = __assign(__assign({}, _allSettings.settings), settings);\n Customizations._raiseChange();\n };\n /** Apply Customizations to a particular named scope, like a component.\n * @example Customizations.applyScopedSettings('Nav', \\{ styles: () =\\> \\{\\} \\});\n */\n Customizations.applyScopedSettings = function (scopeName, settings) {\n _allSettings.scopedSettings[scopeName] = __assign(__assign({}, _allSettings.scopedSettings[scopeName]), settings);\n Customizations._raiseChange();\n };\n Customizations.getSettings = function (properties, scopeName, localSettings) {\n if (localSettings === void 0) { localSettings = NO_CUSTOMIZATIONS; }\n var settings = {};\n var localScopedSettings = (scopeName && localSettings.scopedSettings[scopeName]) || {};\n var globalScopedSettings = (scopeName && _allSettings.scopedSettings[scopeName]) || {};\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n settings[property] =\n localScopedSettings[property] ||\n localSettings.settings[property] ||\n globalScopedSettings[property] ||\n _allSettings.settings[property];\n }\n return settings;\n };\n /** Used to run some code that sets Customizations without triggering an update until the end.\n * Useful for applying Customizations that don't affect anything currently rendered, or for\n * applying many customizations at once.\n * @param suppressUpdate - Do not raise the change event at the end, preventing all updates\n */\n Customizations.applyBatchedUpdates = function (code, suppressUpdate) {\n Customizations._suppressUpdates = true;\n try {\n code();\n }\n catch (_a) {\n /* do nothing */\n }\n Customizations._suppressUpdates = false;\n if (!suppressUpdate) {\n Customizations._raiseChange();\n }\n };\n Customizations.observe = function (onChange) {\n _events.push(onChange);\n };\n Customizations.unobserve = function (onChange) {\n _events = _events.filter(function (cb) { return cb !== onChange; });\n };\n Customizations._raiseChange = function () {\n if (!Customizations._suppressUpdates) {\n _events.forEach(function (cb) { return cb(); });\n }\n };\n return Customizations;\n}());\nexport { Customizations };\n//# sourceMappingURL=Customizations.js.map","import * as React from 'react';\nexport var CustomizerContext = React.createContext({\n customizations: {\n inCustomizerContext: false,\n settings: {},\n scopedSettings: {},\n },\n});\n//# sourceMappingURL=CustomizerContext.js.map","import { __assign } from \"tslib\";\n/**\n * Merge new and old settings, giving priority to new settings.\n * New settings is optional in which case oldSettings is returned as-is.\n * @param oldSettings - Old settings to fall back to.\n * @param newSettings - New settings that will be merged over oldSettings.\n * @returns Merged settings.\n */\nexport function mergeSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _settingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nexport function mergeScopedSettings(oldSettings, newSettings) {\n if (oldSettings === void 0) { oldSettings = {}; }\n var mergeSettingsWith = _isSettingsFunction(newSettings) ? newSettings : _scopedSettingsMergeWith(newSettings);\n return mergeSettingsWith(oldSettings);\n}\nfunction _isSettingsFunction(settings) {\n return typeof settings === 'function';\n}\nfunction _settingsMergeWith(newSettings) {\n return function (settings) { return (newSettings ? __assign(__assign({}, settings), newSettings) : settings); };\n}\nfunction _scopedSettingsMergeWith(scopedSettingsFromProps) {\n if (scopedSettingsFromProps === void 0) { scopedSettingsFromProps = {}; }\n return function (oldScopedSettings) {\n var newScopedSettings = __assign({}, oldScopedSettings);\n for (var scopeName in scopedSettingsFromProps) {\n if (scopedSettingsFromProps.hasOwnProperty(scopeName)) {\n newScopedSettings[scopeName] = __assign(__assign({}, oldScopedSettings[scopeName]), scopedSettingsFromProps[scopeName]);\n }\n }\n return newScopedSettings;\n };\n}\n//# sourceMappingURL=mergeSettings.js.map","import { mergeSettings, mergeScopedSettings } from './mergeSettings';\n/**\n * Merge props and customizations giving priority to props over context.\n * NOTE: This function will always perform multiple merge operations. Use with caution.\n * @param props - New settings to merge in.\n * @param parentContext - Context containing current settings.\n * @returns Merged customizations.\n */\nexport function mergeCustomizations(props, parentContext) {\n var _a = (parentContext || {}).customizations, customizations = _a === void 0 ? { settings: {}, scopedSettings: {} } : _a;\n return {\n customizations: {\n settings: mergeSettings(customizations.settings, props.settings),\n scopedSettings: mergeScopedSettings(customizations.scopedSettings, props.scopedSettings),\n inCustomizerContext: true,\n },\n };\n}\n//# sourceMappingURL=mergeCustomizations.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\nimport { mergeCustomizations } from './mergeCustomizations';\n/**\n * The Customizer component allows for default props to be mixed into components which\n * are decorated with the customizable() decorator, or use the styled HOC. This enables\n * injection scenarios like:\n *\n * 1. render svg icons instead of the icon font within all buttons\n * 2. inject a custom theme object into a component\n *\n * Props are provided via the settings prop which should be one of the following:\n * - A json map which contains 1 or more name/value pairs representing injectable props.\n * - A function that receives the current settings and returns the new ones that apply to the scope\n *\n * @public\n *\n * @deprecated This component is deprecated for purpose of applying theme to components\n * as of `@fluentui/react` version 8. Use `ThemeProvider` for applying theme instead.\n */\nvar Customizer = /** @class */ (function (_super) {\n __extends(Customizer, _super);\n function Customizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onCustomizationChange = function () { return _this.forceUpdate(); };\n return _this;\n }\n Customizer.prototype.componentDidMount = function () {\n Customizations.observe(this._onCustomizationChange);\n };\n Customizer.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onCustomizationChange);\n };\n Customizer.prototype.render = function () {\n var _this = this;\n var contextTransform = this.props.contextTransform;\n return (React.createElement(CustomizerContext.Consumer, null, function (parentContext) {\n var newContext = mergeCustomizations(_this.props, parentContext);\n if (contextTransform) {\n newContext = contextTransform(newContext);\n }\n return React.createElement(CustomizerContext.Provider, { value: newContext }, _this.props.children);\n }));\n };\n return Customizer;\n}(React.Component));\nexport { Customizer };\n//# sourceMappingURL=Customizer.js.map","/**\n * Allows you to hoist static functions in components.\n * Created for the purpose of fixing broken static functions in classes\n * that utilize decorators.\n *\n * @public\n * @param source - The object where the methods are hoisted from.\n * @param dest - The object to hoist the methods onto.\n * @returns The dest object with methods added\n */\nexport function hoistStatics(source, dest) {\n for (var name_1 in source) {\n if (source.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dest[name_1] = source[name_1];\n }\n }\n return dest;\n}\n//# sourceMappingURL=hoistStatics.js.map","import { DEFAULT_SHADOW_CONFIG } from '@fluentui/merge-styles';\nimport * as React from 'react';\nexport var noop = function () { return false; };\nexport var noopShadow = function () { return DEFAULT_SHADOW_CONFIG; };\nexport var noopRootStylesheets = function () { return new Map(); };\nexport var noopUndefined = function () { return undefined; };\nexport var getNewContext = function () {\n return {\n stylesheets: new Map(),\n useAdoptedStylesheetEx: noop,\n useAdoptedStylesheet: noop,\n useShadowConfig: noopShadow,\n useMergeStylesShadowRootContext: noopUndefined,\n useHasMergeStylesShadowRootContext: noop,\n useMergeStylesRootStylesheets: noopRootStylesheets,\n useWindow: noopUndefined,\n useStyled: noopUndefined,\n };\n};\nexport var MergeStylesDefaultContext = React.createContext(getNewContext());\n//# sourceMappingURL=MergeStylesDefaultContext.js.map","import * as React from 'react';\nimport { MergeStylesDefaultContext } from '../contexts/MergeStylesDefaultContext';\nexport var useMergeStylesHooks = function () {\n var ctx = React.useContext(MergeStylesDefaultContext);\n return {\n useAdoptedStylesheet: ctx.useAdoptedStylesheet,\n useAdoptedStylesheetEx: ctx.useAdoptedStylesheetEx,\n useShadowConfig: ctx.useShadowConfig,\n useMergeStylesShadowRootContext: ctx.useMergeStylesShadowRootContext,\n useHasMergeStylesShadowRootContext: ctx.useHasMergeStylesShadowRootContext,\n useMergeStylesRootStylesheets: ctx.useMergeStylesRootStylesheets,\n useWindow: ctx.useWindow,\n useStyled: ctx.useStyled,\n };\n};\n//# sourceMappingURL=useMergeStylesHooks.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { GLOBAL_STYLESHEET_KEY } from '@fluentui/merge-styles';\nimport { useMergeStylesHooks } from '../hooks/useMergeStylesHooks';\nexport var MergeStylesShadowRootContext = React.createContext(undefined);\n/**\n * Context for a shadow root.\n */\nexport var MergeStylesShadowRootProvider = function (_a) {\n var shadowRoot = _a.shadowRoot, props = __rest(_a, [\"shadowRoot\"]);\n var value = React.useMemo(function () {\n return {\n stylesheets: new Map(),\n shadowRoot: shadowRoot,\n };\n }, [shadowRoot]);\n return (React.createElement(MergeStylesShadowRootContext.Provider, __assign({ value: value }, props),\n React.createElement(GlobalStyles, null),\n props.children));\n};\nvar GlobalStyles = function (props) {\n var useAdoptedStylesheet = useMergeStylesHooks().useAdoptedStylesheet;\n useAdoptedStylesheet(GLOBAL_STYLESHEET_KEY);\n return null;\n};\n//# sourceMappingURL=MergeStylesShadowRootContext.js.map","import * as React from 'react';\nimport { MergeStylesShadowRootContext, } from '../contexts/MergeStylesShadowRootContext';\n/**\n * Test if a context is available.\n * @returns true if there is a context.\n */\nexport var useHasMergeStylesShadowRootContext = function () {\n return !!useMergeStylesShadowRootContext();\n};\n/**\n * Get a reference to the shadow root context.\n * @returns The context for the shadow root.\n */\nexport var useMergeStylesShadowRootContext = function () {\n return React.useContext(MergeStylesShadowRootContext);\n};\n//# sourceMappingURL=useMergeStylesShadowRoot.js.map","import { GLOBAL_STYLESHEET_KEY } from '@fluentui/merge-styles';\nimport { useMergeStylesHooks } from '../hooks/useMergeStylesHooks';\nimport { useMergeStylesShadowRootContext } from '../hooks/useMergeStylesShadowRoot';\nexport var MergeStylesShadowRootConsumer = function (_a) {\n var stylesheetKey = _a.stylesheetKey, children = _a.children;\n var _b = useMergeStylesHooks(), useAdoptedStylesheetEx = _b.useAdoptedStylesheetEx, useMergeStylesRootStylesheets = _b.useMergeStylesRootStylesheets, useWindow = _b.useWindow;\n var shadowCtx = useMergeStylesShadowRootContext();\n var rootMergeStyles = useMergeStylesRootStylesheets();\n var win = useWindow();\n useAdoptedStylesheetEx(GLOBAL_STYLESHEET_KEY, shadowCtx, rootMergeStyles, win);\n useAdoptedStylesheetEx(stylesheetKey, shadowCtx, rootMergeStyles, win);\n return children(!!shadowCtx);\n};\n//# sourceMappingURL=MergeStylesShadowRootConsumer.js.map","import * as React from 'react';\n/**\n * Context for providing the window.\n */\n// eslint-disable-next-line @fluentui/no-context-default-value\nexport var WindowContext = React.createContext({\n // eslint-disable-next-line no-restricted-globals\n window: typeof window === 'object' ? window : undefined,\n});\n/**\n * Hook to access the window object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useWindow = function () { return React.useContext(WindowContext).window; };\n/**\n * Hook to access the document object. This can be overridden contextually using the `WindowProvider`.\n */\nexport var useDocument = function () { var _a; return (_a = React.useContext(WindowContext).window) === null || _a === void 0 ? void 0 : _a.document; };\n/**\n * Component to provide the window object contextually. This is useful when rendering content to an element\n * contained within a child window or iframe element, where event handlers and styling must be projected\n * to an alternative window or document.\n */\nexport var WindowProvider = function (props) {\n return React.createElement(WindowContext.Provider, { value: props }, props.children);\n};\n//# sourceMappingURL=WindowProvider.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { hoistStatics } from '../hoistStatics';\nimport { CustomizerContext } from './CustomizerContext';\nimport { concatStyleSets, makeShadowConfig } from '@fluentui/merge-styles';\nimport { MergeStylesShadowRootConsumer } from '../shadowDom/contexts/MergeStylesShadowRootConsumer';\nimport { getWindow } from '../dom/getWindow';\nimport { WindowContext } from '@fluentui/react-window-provider';\nimport { memoizeFunction } from '../memoize';\nvar memoizedMakeShadowConfig = memoizeFunction(makeShadowConfig);\nvar mergeComponentStyles = memoizeFunction(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction (defaultStyles, componentStyles, shadowConfig) {\n var _a;\n var styles = (_a = componentStyles !== null && componentStyles !== void 0 ? componentStyles : defaultStyles) !== null && _a !== void 0 ? _a : {};\n styles.__shadowConfig__ = shadowConfig;\n return styles;\n});\nexport function customizable(scope, fields, concatStyles) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function customizableFactory(ComposedComponent) {\n var _a;\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(ComponentWithInjectedProps, _super);\n function ComponentWithInjectedProps(props) {\n var _this = _super.call(this, props) || this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this._styleCache = {};\n _this._onSettingChanged = _this._onSettingChanged.bind(_this);\n return _this;\n }\n ComponentWithInjectedProps.prototype.componentDidMount = function () {\n Customizations.observe(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.componentWillUnmount = function () {\n Customizations.unobserve(this._onSettingChanged);\n };\n ComponentWithInjectedProps.prototype.render = function () {\n var _this = this;\n return (React.createElement(MergeStylesShadowRootConsumer, { stylesheetKey: scope }, function (inShadow) {\n return (React.createElement(CustomizerContext.Consumer, null, function (context) {\n var _a;\n var defaultProps = Customizations.getSettings(fields, scope, context.customizations);\n var win = (_a = _this.context.window) !== null && _a !== void 0 ? _a : getWindow();\n var shadowConfig = memoizedMakeShadowConfig(scope, inShadow, win);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var componentProps = _this.props;\n // If defaultProps.styles is a function, evaluate it before calling concatStyleSets\n if (defaultProps.styles && typeof defaultProps.styles === 'function') {\n defaultProps.styles = defaultProps.styles(__assign(__assign({}, defaultProps), componentProps));\n }\n // If concatStyles is true and custom styles have been defined compute those styles\n if (concatStyles && defaultProps.styles) {\n if (_this._styleCache.default !== defaultProps.styles ||\n _this._styleCache.component !== componentProps.styles) {\n var mergedStyles = concatStyleSets(defaultProps.styles, componentProps.styles);\n mergedStyles.__shadowConfig__ = shadowConfig;\n _this._styleCache.default = defaultProps.styles;\n _this._styleCache.component = componentProps.styles;\n _this._styleCache.merged = mergedStyles;\n }\n return (React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps, { styles: _this._styleCache.merged })));\n }\n var styles = mergeComponentStyles(defaultProps.styles, componentProps.styles, shadowConfig);\n return React.createElement(ComposedComponent, __assign({}, defaultProps, componentProps, { styles: styles }));\n }));\n }));\n };\n ComponentWithInjectedProps.prototype._onSettingChanged = function () {\n this.forceUpdate();\n };\n return ComponentWithInjectedProps;\n }(React.Component)),\n _a.displayName = 'Customized' + scope,\n _a.contextType = WindowContext,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n };\n}\n//# sourceMappingURL=customizable.js.map","import * as React from 'react';\nimport { Customizations } from './Customizations';\nimport { CustomizerContext } from './CustomizerContext';\n/**\n * Hook to get Customizations settings from Customizations singleton or CustomizerContext.\n * It will trigger component state update on settings change observed.\n */\nexport function useCustomizationSettings(properties, scopeName) {\n var forceUpdate = useForceUpdate();\n var customizations = React.useContext(CustomizerContext).customizations;\n var inCustomizerContext = customizations.inCustomizerContext;\n React.useEffect(function () {\n if (!inCustomizerContext) {\n Customizations.observe(forceUpdate);\n }\n return function () {\n if (!inCustomizerContext) {\n Customizations.unobserve(forceUpdate);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- exclude forceUpdate\n }, [inCustomizerContext]);\n return Customizations.getSettings(properties, scopeName, customizations);\n}\nfunction useForceUpdate() {\n var _a = React.useState(0), setValue = _a[1];\n return function () { return setValue(function (value) { return ++value; }); };\n}\n//# sourceMappingURL=useCustomizationSettings.js.map","import { appendFunction } from './appendFunction';\n/**\n * Extends a component's lifetime methods by appending new functions to the existing lifetime functions.\n */\nexport function extendComponent(parent, methods) {\n for (var name_1 in methods) {\n if (methods.hasOwnProperty(name_1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent[name_1] = appendFunction(parent, parent[name_1], methods[name_1]);\n }\n }\n}\n//# sourceMappingURL=extendComponent.js.map","import { getWindow } from './dom/getWindow';\nimport { Stylesheet } from '@fluentui/merge-styles';\n// Initialize global window id.\nvar CURRENT_ID_PROPERTY = '__currentId__';\nvar DEFAULT_ID_STRING = 'id__';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar _global = getWindow() || {};\nif (_global[CURRENT_ID_PROPERTY] === undefined) {\n _global[CURRENT_ID_PROPERTY] = 0;\n}\nvar _initializedStylesheetResets = false;\n/**\n * Generates a unique id in the global scope (this spans across duplicate copies of the same library.)\n *\n * @public\n */\nexport function getId(prefix) {\n if (!_initializedStylesheetResets) {\n // Configure ids to reset on stylesheet resets.\n var stylesheet = Stylesheet.getInstance();\n if (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(resetIds);\n }\n _initializedStylesheetResets = true;\n }\n var index = _global[CURRENT_ID_PROPERTY]++;\n return (prefix === undefined ? DEFAULT_ID_STRING : prefix) + index;\n}\n/**\n * Resets id counter to an (optional) number.\n *\n * @public\n */\nexport function resetIds(counter) {\n if (counter === void 0) { counter = 0; }\n _global[CURRENT_ID_PROPERTY] = counter;\n}\n//# sourceMappingURL=getId.js.map","var toObjectMap = function () {\n var items = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n items[_i] = arguments[_i];\n }\n var result = {};\n for (var _a = 0, items_1 = items; _a < items_1.length; _a++) {\n var item = items_1[_a];\n var keys = Array.isArray(item) ? item : Object.keys(item);\n for (var _b = 0, keys_1 = keys; _b < keys_1.length; _b++) {\n var key = keys_1[_b];\n result[key] = 1;\n }\n }\n return result;\n};\n/**\n * An array of events that are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementEvents = toObjectMap([\n 'onCopy',\n 'onCut',\n 'onPaste',\n 'onCompositionEnd',\n 'onCompositionStart',\n 'onCompositionUpdate',\n 'onFocus',\n 'onFocusCapture',\n 'onBlur',\n 'onBlurCapture',\n 'onChange',\n 'onInput',\n 'onSubmit',\n 'onLoad',\n 'onError',\n 'onKeyDown',\n 'onKeyDownCapture',\n 'onKeyPress',\n 'onKeyUp',\n 'onAbort',\n 'onCanPlay',\n 'onCanPlayThrough',\n 'onDurationChange',\n 'onEmptied',\n 'onEncrypted',\n 'onEnded',\n 'onLoadedData',\n 'onLoadedMetadata',\n 'onLoadStart',\n 'onPause',\n 'onPlay',\n 'onPlaying',\n 'onProgress',\n 'onRateChange',\n 'onSeeked',\n 'onSeeking',\n 'onStalled',\n 'onSuspend',\n 'onTimeUpdate',\n 'onVolumeChange',\n 'onWaiting',\n 'onClick',\n 'onClickCapture',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseDownCapture',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOut',\n 'onMouseOver',\n 'onMouseUp',\n 'onMouseUpCapture',\n 'onSelect',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onTouchMove',\n 'onTouchStart',\n 'onScroll',\n 'onWheel',\n 'onPointerCancel',\n 'onPointerDown',\n 'onPointerEnter',\n 'onPointerLeave',\n 'onPointerMove',\n 'onPointerOut',\n 'onPointerOver',\n 'onPointerUp',\n 'onGotPointerCapture',\n 'onLostPointerCapture',\n]);\n/**\n * An array of element attributes which are allowed on every html element type.\n *\n * @public\n */\nexport var baseElementProperties = toObjectMap([\n 'accessKey',\n 'children',\n 'className',\n 'contentEditable',\n 'dir',\n 'draggable',\n 'hidden',\n 'htmlFor',\n 'id',\n 'lang',\n 'ref',\n 'role',\n 'style',\n 'tabIndex',\n 'title',\n 'translate',\n 'spellCheck',\n 'name', // global\n]);\n/**\n * An array of HTML element properties and events.\n *\n * @public\n */\nexport var htmlElementProperties = toObjectMap(baseElementProperties, baseElementEvents);\n/**\n * An array of LABEL tag properties and events.\n *\n * @public\n */\nexport var labelProperties = toObjectMap(htmlElementProperties, [\n 'form', // button, fieldset, input, label, meter, object, output, select, textarea\n]);\n/**\n * An array of AUDIO tag properties and events.\n\n * @public\n */\nexport var audioProperties = toObjectMap(htmlElementProperties, [\n 'height',\n 'loop',\n 'muted',\n 'preload',\n 'src',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of VIDEO tag properties and events.\n *\n * @public\n */\nexport var videoProperties = toObjectMap(audioProperties, [\n 'poster', // video\n]);\n/**\n * An array of OL tag properties and events.\n *\n * @public\n */\nexport var olProperties = toObjectMap(htmlElementProperties, [\n 'start', // ol\n]);\n/**\n * An array of LI tag properties and events.\n *\n * @public\n */\nexport var liProperties = toObjectMap(htmlElementProperties, [\n 'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of A tag properties and events.\n *\n * @public\n */\nexport var anchorProperties = toObjectMap(htmlElementProperties, [\n 'download',\n 'href',\n 'hrefLang',\n 'media',\n 'rel',\n 'target',\n 'type', // a, button, input, link, menu, object, script, source, style\n]);\n/**\n * An array of BUTTON tag properties and events.\n *\n * @public\n */\nexport var buttonProperties = toObjectMap(htmlElementProperties, [\n 'autoFocus',\n 'disabled',\n 'form',\n 'formAction',\n 'formEncType',\n 'formMethod',\n 'formNoValidate',\n 'formTarget',\n 'type',\n 'value', // button, input, li, option, meter, progress, param,\n]);\n/**\n * An array of INPUT tag properties and events.\n *\n * @public\n */\nexport var inputProperties = toObjectMap(buttonProperties, [\n 'accept',\n 'alt',\n 'autoCapitalize',\n 'autoComplete',\n 'checked',\n 'dirname',\n 'form',\n 'height',\n 'inputMode',\n 'list',\n 'max',\n 'maxLength',\n 'min',\n 'minLength',\n 'multiple',\n 'pattern',\n 'placeholder',\n 'readOnly',\n 'required',\n 'src',\n 'step',\n 'size',\n 'type',\n 'value',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * An array of TEXTAREA tag properties and events.\n *\n * @public\n */\nexport var textAreaProperties = toObjectMap(buttonProperties, [\n 'autoCapitalize',\n 'cols',\n 'dirname',\n 'form',\n 'maxLength',\n 'minLength',\n 'placeholder',\n 'readOnly',\n 'required',\n 'rows',\n 'wrap', // textarea\n]);\n/**\n * An array of SELECT tag properties and events.\n *\n * @public\n */\nexport var selectProperties = toObjectMap(buttonProperties, [\n 'form',\n 'multiple',\n 'required', // input, select, textarea\n]);\nexport var optionProperties = toObjectMap(htmlElementProperties, [\n 'selected',\n 'value', // button, input, li, option, meter, progress, param\n]);\n/**\n * An array of TABLE tag properties and events.\n *\n * @public\n */\nexport var tableProperties = toObjectMap(htmlElementProperties, [\n 'cellPadding',\n 'cellSpacing', // table\n]);\n/**\n * An array of TR tag properties and events.\n *\n * @public\n */\nexport var trProperties = htmlElementProperties;\n/**\n * An array of TH tag properties and events.\n *\n * @public\n */\nexport var thProperties = toObjectMap(htmlElementProperties, [\n 'rowSpan',\n 'scope', // th\n]);\n/**\n * An array of TD tag properties and events.\n *\n * @public\n */\nexport var tdProperties = toObjectMap(htmlElementProperties, [\n 'colSpan',\n 'headers',\n 'rowSpan',\n 'scope', // th\n]);\nexport var colGroupProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\nexport var colProperties = toObjectMap(htmlElementProperties, [\n 'span', // col, colgroup\n]);\n/**\n * An array of FORM tag properties and events.\n *\n * @public\n */\nexport var formProperties = toObjectMap(htmlElementProperties, [\n 'acceptCharset',\n 'action',\n 'encType',\n 'encType',\n 'method',\n 'noValidate',\n 'target', // form\n]);\n/**\n * An array of IFRAME tag properties and events.\n *\n * @public\n */\nexport var iframeProperties = toObjectMap(htmlElementProperties, [\n 'allow',\n 'allowFullScreen',\n 'allowPaymentRequest',\n 'allowTransparency',\n 'csp',\n 'height',\n 'importance',\n 'referrerPolicy',\n 'sandbox',\n 'src',\n 'srcDoc',\n 'width', // canvas, embed, iframe, img, input, object, video,\n]);\n/**\n * An array of IMAGE tag properties and events.\n *\n * @public\n */\nexport var imgProperties = toObjectMap(htmlElementProperties, [\n 'alt',\n 'crossOrigin',\n 'height',\n 'src',\n 'srcSet',\n 'useMap',\n 'width', // canvas, embed, iframe, img, input, object, video\n]);\n/**\n * @deprecated Use imgProperties for img elements.\n */\nexport var imageProperties = imgProperties;\n/**\n * An array of DIV tag properties and events.\n *\n * @public\n */\nexport var divProperties = htmlElementProperties;\n/**\n * Gets native supported props for an html element provided the allowance set. Use one of the property\n * sets defined (divProperties, buttonPropertes, etc) to filter out supported properties from a given\n * props set. Note that all data- and aria- prefixed attributes will be allowed.\n * NOTE: getNativeProps should always be applied first when adding props to a react component. The\n * non-native props should be applied second. This will prevent getNativeProps from overriding your custom props.\n * For example, if props passed to getNativeProps has an onClick function and getNativeProps is added to\n * the component after an onClick function is added, then the getNativeProps onClick will override it.\n *\n * @public\n * @param props - The unfiltered input props\n * @param allowedPropsNames - The array or record of allowed prop names.\n * @returns The filtered props\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeProps(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nprops, allowedPropNames, excludedPropNames) {\n // It'd be great to properly type this while allowing 'aria-` and 'data-' attributes like TypeScript does for\n // JSX attributes, but that ability is hardcoded into the TS compiler with no analog in TypeScript typings.\n // Then we'd be able to enforce props extends native props (including aria- and data- attributes), and then\n // return native props.\n // We should be able to do this once this PR is merged: https://github.com/microsoft/TypeScript/pull/26797\n var isArray = Array.isArray(allowedPropNames);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = {};\n var keys = Object.keys(props);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var isNativeProp = (!isArray && allowedPropNames[key]) ||\n (isArray && allowedPropNames.indexOf(key) >= 0) ||\n key.indexOf('data-') === 0 ||\n key.indexOf('aria-') === 0;\n if (isNativeProp && (!excludedPropNames || (excludedPropNames === null || excludedPropNames === void 0 ? void 0 : excludedPropNames.indexOf(key)) === -1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result[key] = props[key];\n }\n }\n return result;\n}\n//# sourceMappingURL=properties.js.map","import { labelProperties, audioProperties, videoProperties, olProperties, liProperties, anchorProperties, buttonProperties, inputProperties, textAreaProperties, selectProperties, optionProperties, tableProperties, trProperties, thProperties, tdProperties, colGroupProperties, colProperties, formProperties, iframeProperties, imgProperties, htmlElementProperties, getNativeProps, } from './properties';\nvar nativeElementMap = {\n label: labelProperties,\n audio: audioProperties,\n video: videoProperties,\n ol: olProperties,\n li: liProperties,\n a: anchorProperties,\n button: buttonProperties,\n input: inputProperties,\n textarea: textAreaProperties,\n select: selectProperties,\n option: optionProperties,\n table: tableProperties,\n tr: trProperties,\n th: thProperties,\n td: tdProperties,\n colGroup: colGroupProperties,\n col: colProperties,\n form: formProperties,\n iframe: iframeProperties,\n img: imgProperties,\n};\n/**\n * Given an element tagname and user props, filters the props to only allowed props for the given\n * element type.\n * @param tagName - Tag name (e.g. \"div\")\n * @param props - Props object\n * @param excludedPropNames - List of props to disallow\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getNativeElementProps(tagName, props, excludedPropNames) {\n var allowedPropNames = (tagName && nativeElementMap[tagName]) || htmlElementProperties;\n return getNativeProps(props, allowedPropNames, excludedPropNames);\n}\n//# sourceMappingURL=getNativeElementProps.js.map","var REACT_LIFECYCLE_EXCLUSIONS = [\n 'setState',\n 'render',\n 'componentWillMount',\n 'UNSAFE_componentWillMount',\n 'componentDidMount',\n 'componentWillReceiveProps',\n 'UNSAFE_componentWillReceiveProps',\n 'shouldComponentUpdate',\n 'componentWillUpdate',\n 'getSnapshotBeforeUpdate',\n 'UNSAFE_componentWillUpdate',\n 'componentDidUpdate',\n 'componentWillUnmount',\n];\n/**\n * Allows you to hoist methods, except those in an exclusion set from a source object into a destination object.\n *\n * @public\n * @param destination - The instance of the object to hoist the methods onto.\n * @param source - The instance of the object where the methods are hoisted from.\n * @param exclusions - (Optional) What methods to exclude from being hoisted.\n * @returns An array of names of methods that were hoisted.\n */\nexport function hoistMethods(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ndestination, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nsource, exclusions) {\n if (exclusions === void 0) { exclusions = REACT_LIFECYCLE_EXCLUSIONS; }\n var hoisted = [];\n var _loop_1 = function (methodName) {\n if (typeof source[methodName] === 'function' &&\n destination[methodName] === undefined &&\n (!exclusions || exclusions.indexOf(methodName) === -1)) {\n hoisted.push(methodName);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n destination[methodName] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n source[methodName].apply(source, args);\n };\n }\n };\n for (var methodName in source) {\n _loop_1(methodName);\n }\n return hoisted;\n}\n/**\n * Provides a method for convenience to unhoist hoisted methods.\n *\n * @public\n * @param source - The source object upon which methods were hoisted.\n * @param methodNames - An array of method names to unhoist.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function unhoistMethods(source, methodNames) {\n methodNames.forEach(function (methodName) { return delete source[methodName]; });\n}\n//# sourceMappingURL=hoist.js.map","import { extendComponent } from './extendComponent';\n/**\n * Helper to manage componentRef resolution. Internally appends logic to\n * lifetime methods to resolve componentRef to the passed in object.\n *\n * Usage: call initializeComponentRef(this) in the constructor,\n */\nexport function initializeComponentRef(obj) {\n extendComponent(obj, {\n componentDidMount: _onMount,\n componentDidUpdate: _onUpdate,\n componentWillUnmount: _onUnmount,\n });\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onMount() {\n _setComponentRef(this.props.componentRef, this);\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUpdate(prevProps) {\n if (prevProps.componentRef !== this.props.componentRef) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _setComponentRef(prevProps.componentRef, null);\n _setComponentRef(this.props.componentRef, this);\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _onUnmount() {\n _setComponentRef(this.props.componentRef, null);\n}\nfunction _setComponentRef(componentRef, value) {\n if (componentRef) {\n if (typeof componentRef === 'object') {\n componentRef.current = value;\n }\n else if (typeof componentRef === 'function') {\n componentRef(value);\n }\n }\n}\n//# sourceMappingURL=initializeComponentRef.js.map","var _a;\nimport { KeyCodes } from './KeyCodes';\nvar DirectionalKeyCodes = (_a = {},\n _a[KeyCodes.up] = 1,\n _a[KeyCodes.down] = 1,\n _a[KeyCodes.left] = 1,\n _a[KeyCodes.right] = 1,\n _a[KeyCodes.home] = 1,\n _a[KeyCodes.end] = 1,\n _a[KeyCodes.tab] = 1,\n _a[KeyCodes.pageUp] = 1,\n _a[KeyCodes.pageDown] = 1,\n _a);\n/**\n * Returns true if the keycode is a directional keyboard key.\n */\nexport function isDirectionalKeyCode(which) {\n return !!DirectionalKeyCodes[which];\n}\n/**\n * Adds a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to add global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function addDirectionalKeyCode(which) {\n DirectionalKeyCodes[which] = 1;\n}\n/**\n * Removes a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible.\n * This can be used to remove global shortcut keys that directionally move from section to section within\n * an app or between focus trap zones.\n */\nexport function removeDirectionalKeyCode(which) {\n delete DirectionalKeyCodes[which];\n}\n//# sourceMappingURL=keyboard.js.map","import { getWindow } from './dom/getWindow';\nexport var IsFocusVisibleClassName = 'ms-Fabric--isFocusVisible';\nexport var IsFocusHiddenClassName = 'ms-Fabric--isFocusHidden';\nfunction updateClassList(el, enabled) {\n if (el) {\n el.classList.add(enabled ? IsFocusVisibleClassName : IsFocusHiddenClassName);\n el.classList.remove(enabled ? IsFocusHiddenClassName : IsFocusVisibleClassName);\n }\n}\n/**\n * Sets the visibility of focus styling.\n *\n * By default, focus styles (the box surrounding a focused Button, for example) only show up when navigational\n * keypresses occur (through Tab, arrows, PgUp/PgDn, Home and End), and are hidden when mouse interactions occur.\n * This API provides an imperative way to turn them on/off.\n *\n * A use case might be when you have a keypress like ctrl-f6 navigate to a particular region on the page,\n * and want focus to show up.\n *\n * @param enabled - Whether to turn focus visibility on or off.\n * @param target - Optional target from which to get window in case no `providerElem` has been specified.\n * @param registeredProviders - Array of provider refs that are associated with a FocusRectsProvider. If no array\n * is passed in, the classnames are attached to the document body that contains `target`.\n */\nexport function setFocusVisibility(enabled, target, registeredProviders) {\n var _a;\n if (registeredProviders) {\n registeredProviders.forEach(function (ref) { return updateClassList(ref.current, enabled); });\n }\n else {\n updateClassList((_a = getWindow(target)) === null || _a === void 0 ? void 0 : _a.document.body, enabled);\n }\n}\n//# sourceMappingURL=setFocusVisibility.js.map","import * as React from 'react';\nimport { getWindow } from './dom/getWindow';\nimport { isDirectionalKeyCode } from './keyboard';\nimport { setFocusVisibility } from './setFocusVisibility';\nvar mountCounters = new WeakMap();\nvar callbackMap = new WeakMap();\nfunction setMountCounters(key, delta) {\n var newValue;\n var currValue = mountCounters.get(key);\n if (currValue) {\n newValue = currValue + delta;\n }\n else {\n newValue = 1;\n }\n mountCounters.set(key, newValue);\n return newValue;\n}\nfunction setCallbackMap(context) {\n var callbacks = callbackMap.get(context);\n if (callbacks) {\n return callbacks;\n }\n var onMouseDown = function (ev) { return _onMouseDown(ev, context.registeredProviders); };\n var onPointerDown = function (ev) { return _onPointerDown(ev, context.registeredProviders); };\n var onKeyDown = function (ev) { return _onKeyDown(ev, context.registeredProviders); };\n var onKeyUp = function (ev) { return _onKeyUp(ev, context.registeredProviders); };\n callbacks = { onMouseDown: onMouseDown, onPointerDown: onPointerDown, onKeyDown: onKeyDown, onKeyUp: onKeyUp };\n callbackMap.set(context, callbacks);\n return callbacks;\n}\nexport var FocusRectsContext = React.createContext(undefined);\n/**\n * Initializes the logic which:\n *\n * 1. Subscribes keydown, keyup, mousedown and pointerdown events. (It will only do it once for the current element of\n * the FocusRectsContext providerRef or once per window if no such element is provided via context, so it's safe to\n * call this method multiple times.)\n * 2. When the user presses triggers a keydown or keyup event via directional keyboard keys, adds the\n * 'ms-Fabric--isFocusVisible' classname to the current element of the FocusRectsContext providerRef or the document\n * body if no such element is provided via context, and removes the 'ms-Fabric-isFocusHidden' classname.\n * 3. When the user triggers a mousedown or pointerdown event, adds the 'ms-Fabric-isFocusHidden' classname to the\n * current element of the FocusRectsContext providerRef or the document body if no such element is provided via\n * context, and removes the 'ms-Fabric--isFocusVisible' classname.\n *\n * This logic allows components on the page to conditionally render focus treatments based on\n * the existence of global classnames, which simplifies logic overall.\n *\n * @param rootRef - A Ref object. Focus rectangle can be applied on itself and all its children.\n */\nexport function useFocusRects(rootRef) {\n var context = React.useContext(FocusRectsContext);\n React.useEffect(function () {\n var _a, _b, _c, _d;\n var win = getWindow(rootRef === null || rootRef === void 0 ? void 0 : rootRef.current);\n if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n return undefined;\n }\n var el = win;\n var onMouseDown;\n var onPointerDown;\n var onKeyDown;\n var onKeyUp;\n if (((_b = context === null || context === void 0 ? void 0 : context.providerRef) === null || _b === void 0 ? void 0 : _b.current) &&\n ((_d = (_c = context === null || context === void 0 ? void 0 : context.providerRef) === null || _c === void 0 ? void 0 : _c.current) === null || _d === void 0 ? void 0 : _d.addEventListener)) {\n el = context.providerRef.current;\n // The NOINLINE directive tells terser not to move the setCallbackMap implementation into the call site during\n // minification.\n // This prevents the function from capturing additional variables in the closure, which can cause memory leaks.\n var callbacks = /*@__NOINLINE__*/ setCallbackMap(context);\n onMouseDown = callbacks.onMouseDown;\n onPointerDown = callbacks.onPointerDown;\n onKeyDown = callbacks.onKeyDown;\n onKeyUp = callbacks.onKeyUp;\n }\n else {\n onMouseDown = _onMouseDown;\n onPointerDown = _onPointerDown;\n onKeyDown = _onKeyDown;\n onKeyUp = _onKeyUp;\n }\n var count = setMountCounters(el, 1);\n if (count <= 1) {\n el.addEventListener('mousedown', onMouseDown, true);\n el.addEventListener('pointerdown', onPointerDown, true);\n el.addEventListener('keydown', onKeyDown, true);\n el.addEventListener('keyup', onKeyUp, true);\n }\n return function () {\n var _a;\n if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) {\n return;\n }\n count = setMountCounters(el, -1);\n if (count === 0) {\n el.removeEventListener('mousedown', onMouseDown, true);\n el.removeEventListener('pointerdown', onPointerDown, true);\n el.removeEventListener('keydown', onKeyDown, true);\n el.removeEventListener('keyup', onKeyUp, true);\n }\n };\n }, [context, rootRef]);\n}\n/**\n * Function Component wrapper which enables calling `useFocusRects` hook.\n * Renders nothing.\n */\nexport var FocusRects = function (props) {\n useFocusRects(props.rootRef);\n return null;\n};\nfunction _onMouseDown(ev, registeredProviders) {\n setFocusVisibility(false, ev.target, registeredProviders);\n}\nfunction _onPointerDown(ev, registeredProviders) {\n if (ev.pointerType !== 'mouse') {\n setFocusVisibility(false, ev.target, registeredProviders);\n }\n}\n// You need both a keydown and a keyup listener that sets focus visibility to true to handle two distinct scenarios when\n// attaching the listeners and classnames to the provider instead of the document body.\n// If you only have a keydown listener, then the focus rectangles will not show when moving from outside of the provider\n// to inside it. That is why a keyup listener is needed, since it will always trigger after the focus event is fired.\n// If you only have a keyup listener, then the focus rectangles will not show moving between different tabbable elements\n// if the tab key is pressed without being released. That's is why we need a keydown listener, since it will trigger for\n// every element that is being tabbed into.\n// This works because `classList.add` is smart and will not duplicate a classname that already exists on the classList\n// when focus visibility is turned on.\nfunction _onKeyDown(ev, registeredProviders) {\n // eslint-disable-next-line deprecation/deprecation\n if (isDirectionalKeyCode(ev.which)) {\n setFocusVisibility(true, ev.target, registeredProviders);\n }\n}\nfunction _onKeyUp(ev, registeredProviders) {\n // eslint-disable-next-line deprecation/deprecation\n if (isDirectionalKeyCode(ev.which)) {\n setFocusVisibility(true, ev.target, registeredProviders);\n }\n}\n//# sourceMappingURL=useFocusRects.js.map","import * as React from 'react';\nimport { FocusRectsContext } from './useFocusRects';\nexport var FocusRectsProvider = function (props) {\n var providerRef = props.providerRef, layerRoot = props.layerRoot;\n var registeredProviders = React.useState([])[0];\n var parentContext = React.useContext(FocusRectsContext);\n // Inherit the parent context if it exists, unless this is a layer root.\n // This allows the topmost provider element in the DOM tree to handle the focus events.\n // Since layers are in a separate HTML tree from their parent, they shouldn't use the parent's providerRef.\n var inheritParentContext = parentContext !== undefined && !layerRoot;\n var context = React.useMemo(function () {\n return inheritParentContext\n ? undefined\n : {\n providerRef: providerRef,\n registeredProviders: registeredProviders,\n registerProvider: function (ref) {\n // Register this child provider with the current context, and any parent contexts\n registeredProviders.push(ref);\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.registerProvider(ref);\n },\n unregisterProvider: function (ref) {\n parentContext === null || parentContext === void 0 ? void 0 : parentContext.unregisterProvider(ref);\n var i = registeredProviders.indexOf(ref);\n if (i >= 0) {\n registeredProviders.splice(i, 1);\n }\n },\n };\n }, [providerRef, registeredProviders, parentContext, inheritParentContext]);\n React.useEffect(function () {\n if (context) {\n context.registerProvider(context.providerRef);\n return function () { return context.unregisterProvider(context.providerRef); };\n }\n }, [context]);\n // Create a new context provider if this is not inheriting from the parent.\n if (context) {\n return React.createElement(FocusRectsContext.Provider, { value: context }, props.children);\n }\n else {\n return React.createElement(React.Fragment, null, props.children);\n }\n};\n//# sourceMappingURL=FocusRectsProvider.js.map","/**\n * Regular expressions matching characters to ignore when calculating the initials.\n */\n/**\n * Regular expression matching characters within various types of enclosures, including the enclosures themselves\n * so for example, (xyz) [xyz] {xyz} all would be ignored\n */\nvar UNWANTED_ENCLOSURES_REGEX = /[\\(\\[\\{\\<][^\\)\\]\\}\\>]*[\\)\\]\\}\\>]/g;\n/**\n * Regular expression matching special ASCII characters except space, plus some unicode special characters.\n * Applies after unwanted enclosures have been removed\n */\nvar UNWANTED_CHARS_REGEX = /[\\0-\\u001F\\!-/:-@\\[-`\\{-\\u00BF\\u0250-\\u036F\\uD800-\\uFFFF]/g;\n/**\n * Regular expression matching phone numbers. Applied after chars matching UNWANTED_CHARS_REGEX have been removed\n * and number has been trimmed for whitespaces\n */\nvar PHONENUMBER_REGEX = /^\\d+[\\d\\s]*(:?ext|x|)\\s*\\d+$/i;\n/** Regular expression matching one or more spaces. */\nvar MULTIPLE_WHITESPACES_REGEX = /\\s+/g;\n/**\n * Regular expression matching languages for which we currently don't support initials.\n * Arabic: Arabic, Arabic Supplement, Arabic Extended-A.\n * Korean: Hangul Jamo, Hangul Compatibility Jamo, Hangul Jamo Extended-A, Hangul Syllables, Hangul Jamo Extended-B.\n * Japanese: Hiragana, Katakana.\n * CJK: CJK Unified Ideographs Extension A, CJK Unified Ideographs, CJK Compatibility Ideographs,\n * CJK Unified Ideographs Extension B\n */\nvar UNSUPPORTED_TEXT_REGEX = \n// eslint-disable-next-line @fluentui/max-len\n/[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3040-\\u309F\\u30A0-\\u30FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uF900-\\uFAFF]|[\\uD840-\\uD869][\\uDC00-\\uDED6]/;\nfunction getInitialsLatin(displayName, isRtl) {\n var initials = '';\n var splits = displayName.split(' ');\n if (splits.length === 2) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[1].charAt(0).toUpperCase();\n }\n else if (splits.length === 3) {\n initials += splits[0].charAt(0).toUpperCase();\n initials += splits[2].charAt(0).toUpperCase();\n }\n else if (splits.length !== 0) {\n initials += splits[0].charAt(0).toUpperCase();\n }\n if (isRtl && initials.length > 1) {\n return initials.charAt(1) + initials.charAt(0);\n }\n return initials;\n}\nfunction cleanupDisplayName(displayName) {\n displayName = displayName.replace(UNWANTED_ENCLOSURES_REGEX, '');\n displayName = displayName.replace(UNWANTED_CHARS_REGEX, '');\n displayName = displayName.replace(MULTIPLE_WHITESPACES_REGEX, ' ');\n displayName = displayName.trim();\n return displayName;\n}\n/**\n * Get (up to 2 characters) initials based on display name of the persona.\n *\n * @public\n */\nexport function getInitials(displayName, isRtl, allowPhoneInitials) {\n if (!displayName) {\n return '';\n }\n displayName = cleanupDisplayName(displayName);\n // For names containing CJK characters, and phone numbers, we don't display initials\n if (UNSUPPORTED_TEXT_REGEX.test(displayName) || (!allowPhoneInitials && PHONENUMBER_REGEX.test(displayName))) {\n return '';\n }\n return getInitialsLatin(displayName, isRtl);\n}\n//# sourceMappingURL=initials.js.map","import { getWindow } from './dom/getWindow';\n/**\n * Fetches an item from local storage without throwing an exception\n * @param key The key of the item to fetch from local storage\n */\nexport function getItem(key) {\n var result = null;\n try {\n var win = getWindow();\n result = win ? win.localStorage.getItem(key) : null;\n }\n catch (e) {\n /* Eat the exception */\n }\n return result;\n}\n/**\n * Inserts an item into local storage without throwing an exception\n * @param key The key of the item to add to local storage\n * @param data The data to put into local storage\n */\nexport function setItem(key, data) {\n try {\n var win = getWindow();\n win && win.localStorage.setItem(key, data);\n }\n catch (e) {\n /* Eat the exception */\n }\n}\n//# sourceMappingURL=localStorage.js.map","import { getDocument } from './dom/getDocument';\nimport * as localStorage from './localStorage';\nimport * as sessionStorage from './sessionStorage';\n// Default to undefined so that we initialize on first read.\nvar _language;\nvar STORAGE_KEY = 'language';\n/**\n * Gets the language set for the page.\n * @param persistenceType - Where to persist the value. Default is `sessionStorage` if available.\n */\nexport function getLanguage(persistenceType) {\n if (persistenceType === void 0) { persistenceType = 'sessionStorage'; }\n if (_language === undefined) {\n var doc = getDocument();\n var savedLanguage = persistenceType === 'localStorage'\n ? localStorage.getItem(STORAGE_KEY)\n : persistenceType === 'sessionStorage'\n ? sessionStorage.getItem(STORAGE_KEY)\n : undefined;\n if (savedLanguage) {\n _language = savedLanguage;\n }\n if (_language === undefined && doc) {\n _language = doc.documentElement.getAttribute('lang');\n }\n if (_language === undefined) {\n _language = 'en';\n }\n }\n return _language;\n}\nexport function setLanguage(language, persistenceParam) {\n var doc = getDocument();\n if (doc) {\n doc.documentElement.setAttribute('lang', language);\n }\n var persistenceType = persistenceParam === true ? 'none' : !persistenceParam ? 'sessionStorage' : persistenceParam;\n if (persistenceType === 'localStorage') {\n localStorage.setItem(STORAGE_KEY, language);\n }\n else if (persistenceType === 'sessionStorage') {\n sessionStorage.setItem(STORAGE_KEY, language);\n }\n _language = language;\n}\n//# sourceMappingURL=language.js.map","/**\n * Determines the distance between two points.\n *\n * @public\n */\n/* eslint-disable deprecation/deprecation */\nexport function getDistanceBetweenPoints(point1, point2) {\n var left1 = point1.left || point1.x || 0;\n var top1 = point1.top || point1.y || 0;\n var left2 = point2.left || point2.x || 0;\n var top2 = point2.top || point2.y || 0;\n /* eslint-enable deprecation/deprecation */\n var distance = Math.sqrt(Math.pow(left1 - left2, 2) + Math.pow(top1 - top2, 2));\n return distance;\n}\n/**\n * Produces a proportionally-scaled version of an input content size when fit to a bounding size.\n * Given a `contentSize` and a `boundsSize`, this function scales `contentSize` proportionally\n * using either `contain` or `cover` fit behaviors.\n * Use this function to pre-calculate the layout for the CSS `object-fit` and `background-fit` behaviors.\n * With `contain`, the output size must be the largest it can be while completely within the `boundsSize`.\n * With `cover`, the output size must be the smallest it can be while completely around the `boundsSize`.\n * By default, there is a `maxScale` value of 1, which prevents the `contentSize` from being scaled larger.\n *\n * @param options - the options for the bounds fit operation\n */\nexport function fitContentToBounds(options) {\n var contentSize = options.contentSize, boundsSize = options.boundsSize, _a = options.mode, mode = _a === void 0 ? 'contain' : _a, _b = options.maxScale, maxScale = _b === void 0 ? 1 : _b;\n var contentAspectRatio = contentSize.width / contentSize.height;\n var boundsAspectRatio = boundsSize.width / boundsSize.height;\n var scale;\n if (mode === 'contain' ? contentAspectRatio > boundsAspectRatio : contentAspectRatio < boundsAspectRatio) {\n scale = boundsSize.width / contentSize.width;\n }\n else {\n scale = boundsSize.height / contentSize.height;\n }\n var finalScale = Math.min(maxScale, scale);\n return {\n width: contentSize.width * finalScale,\n height: contentSize.height * finalScale,\n };\n}\n/**\n * Calculates a number's precision based on the number of trailing\n * zeros if the number does not have a decimal indicated by a negative\n * precision. Otherwise, it calculates the number of digits after\n * the decimal point indicated by a positive precision.\n * @param value - the value to determine the precision of\n */\nexport function calculatePrecision(value) {\n /**\n * Group 1:\n * [1-9]([0]+$) matches trailing zeros\n * Group 2:\n * \\.([0-9]*) matches all digits after a decimal point.\n */\n var groups = /[1-9]([0]+$)|\\.([0-9]*)/.exec(String(value));\n if (!groups) {\n return 0;\n }\n if (groups[1]) {\n return -groups[1].length;\n }\n if (groups[2]) {\n return groups[2].length;\n }\n return 0;\n}\n/**\n * Rounds a number to a certain level of precision. Accepts negative precision.\n * @param value - The value that is being rounded.\n * @param precision - The number of decimal places to round the number to\n */\nexport function precisionRound(value, precision, base) {\n if (base === void 0) { base = 10; }\n var exp = Math.pow(base, precision);\n return Math.round(value * exp) / exp;\n}\n//# sourceMappingURL=math.js.map","/**\n * Simple deep merge function. Takes all arguments and returns a deep copy of the objects merged\n * together in the order provided. If an object creates a circular reference, it will assign the\n * original reference.\n */\nexport function merge(target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var arg = args_1[_a];\n _merge(target || {}, arg);\n }\n return target;\n}\n/**\n * The _merge helper iterates through all props on source and assigns them to target.\n * When the value is an object, we will create a deep clone of the object. However if\n * there is a circular reference, the value will not be deep cloned and will persist\n * the reference.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _merge(target, source, circularReferences) {\n if (circularReferences === void 0) { circularReferences = []; }\n circularReferences.push(source);\n for (var name_1 in source) {\n if (source.hasOwnProperty(name_1)) {\n if (name_1 !== '__proto__' && name_1 !== 'constructor' && name_1 !== 'prototype') {\n var value = source[name_1];\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n var isCircularReference = circularReferences.indexOf(value) > -1;\n target[name_1] = (isCircularReference ? value : _merge(target[name_1] || {}, value, circularReferences));\n }\n else {\n target[name_1] = value;\n }\n }\n }\n }\n circularReferences.pop();\n return target;\n}\n//# sourceMappingURL=merge.js.map","/**\n * Returns true if and only if the user is on a iOS device.\n * Used to determine whether iOS-specific behavior should be applied.\n */\nexport var isIOS = function () {\n // eslint-disable-next-line no-restricted-globals\n if (!window || !window.navigator || !window.navigator.userAgent) {\n return false;\n }\n // eslint-disable-next-line no-restricted-globals\n return /iPad|iPhone|iPod/i.test(window.navigator.userAgent);\n};\n//# sourceMappingURL=mobileDetector.js.map","/**\n * The helper functions here will make the target element as modal to screen readers, by placing aria-hidden on elements\n * that are siblings to the target element and the target element's ancestors (because aria-hidden gets inherited).\n * That way, all other elements on the page are hidden to the screen reader.\n */\nimport { getDocument } from './dom/getDocument';\n/** Tag names to ignore when modalizing */\nvar tagsToIgnore = ['TEMPLATE', 'STYLE', 'SCRIPT'];\n/**\n * Call this on a target element to make it modal to screen readers.\n * Returns a function that undoes the changes it made.\n */\nexport function modalize(target) {\n var targetDocument = getDocument(target);\n if (!targetDocument) {\n // can't do this in SSR\n return function () { return undefined; };\n }\n var affectedNodes = [];\n // start at target, then recurse and do the same for parent, until we reach \n while (target !== targetDocument.body && target.parentElement) {\n // grab all siblings of current element\n for (var _i = 0, _a = target.parentElement.children; _i < _a.length; _i++) {\n var sibling = _a[_i];\n // but ignore elements that are already aria-hidden\n var ariaHidden = sibling.getAttribute('aria-hidden');\n if (sibling !== target && (ariaHidden === null || ariaHidden === void 0 ? void 0 : ariaHidden.toLowerCase()) !== 'true' && tagsToIgnore.indexOf(sibling.tagName) === -1) {\n affectedNodes.push([sibling, ariaHidden]);\n }\n }\n target = target.parentElement;\n }\n // take all those elements and set aria-hidden=true on them\n affectedNodes.forEach(function (_a) {\n var node = _a[0];\n node.setAttribute('aria-hidden', 'true');\n });\n return function () {\n unmodalize(affectedNodes);\n affectedNodes = []; // dispose\n };\n}\n/**\n * Undoes the changes that modalize() did.\n */\nfunction unmodalize(affectedNodes) {\n affectedNodes.forEach(function (_a) {\n var node = _a[0], originalValue = _a[1];\n // Restore the original value (false or unset)\n if (originalValue) {\n node.setAttribute('aria-hidden', originalValue);\n }\n else {\n node.removeAttribute('aria-hidden');\n }\n });\n}\n//# sourceMappingURL=modalize.js.map","import { getWindow } from './dom/getWindow';\nvar isMacResult;\n/**\n * Returns true if the user is on a Mac. Caches the result value.\n * @param reset - Reset the cached result value (mainly for testing).\n */\nexport function isMac(reset) {\n var _a;\n if (typeof isMacResult === 'undefined' || reset) {\n var win = getWindow();\n // In certain SSR frameworks, `window` will be defined even on the server but `navigator` will be undefined\n var userAgent = (_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent;\n isMacResult = !!userAgent && userAgent.indexOf('Macintosh') !== -1;\n }\n return !!isMacResult;\n}\n//# sourceMappingURL=osDetector.js.map","/**\n * Detects whether an element's content has horizontal overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasHorizontalOverflow(element) {\n return element.clientWidth < element.scrollWidth;\n}\n/**\n * Detects whether an element's content has vertical overflow\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasVerticalOverflow(element) {\n return element.clientHeight < element.scrollHeight;\n}\n/**\n * Detects whether an element's content has overflow in any direction\n *\n * @public\n * @param element - Element to check for overflow\n * @returns True if element's content overflows\n */\nexport function hasOverflow(element) {\n return hasHorizontalOverflow(element) || hasVerticalOverflow(element);\n}\n//# sourceMappingURL=overflow.js.map","import { createMemoizer } from '../memoize';\nfunction createComposedRenderFunction(outer) {\n var outerMemoizer = createMemoizer(function (inner) {\n var innerMemoizer = createMemoizer(function (defaultRender) {\n return function (innerProps) {\n return inner(innerProps, defaultRender);\n };\n });\n return function (outerProps, defaultRender) {\n return outer(outerProps, defaultRender ? innerMemoizer(defaultRender) : inner);\n };\n });\n return outerMemoizer;\n}\nvar memoizer = createMemoizer(createComposedRenderFunction);\n/**\n * Composes two 'render functions' to produce a final render function that renders\n * the outer function, passing the inner function as 'default render'. The inner function\n * is then passed the original 'default render' prop.\n * @public\n */\nexport function composeRenderFunction(outer, inner) {\n return memoizer(outer)(inner);\n}\n//# sourceMappingURL=composeRenderFunction.js.map","import { extendComponent } from './extendComponent';\n/**\n * Generates a function to be attached to a React component, which can be called\n * as a replacement to RAF. In-flight async calls will be auto canceled if the component\n * is unmounting before the async code is executed, preventing bugs where code\n * accesses things within the component after being unmounted.\n */\nexport var safeRequestAnimationFrame = function (component) {\n var activeTimeouts;\n return function (cb) {\n if (!activeTimeouts) {\n activeTimeouts = new Set();\n extendComponent(component, {\n componentWillUnmount: function () {\n activeTimeouts.forEach(function (id) { return cancelAnimationFrame(id); });\n },\n });\n }\n var timeoutId = requestAnimationFrame(function () {\n activeTimeouts.delete(timeoutId);\n cb();\n });\n activeTimeouts.add(timeoutId);\n };\n};\n//# sourceMappingURL=safeRequestAnimationFrame.js.map","export var SELECTION_CHANGE = 'change';\nexport var SELECTION_ITEMS_CHANGE = 'items-change';\n/**\n * {@docCategory Selection}\n */\nexport var SelectionMode;\n(function (SelectionMode) {\n SelectionMode[SelectionMode[\"none\"] = 0] = \"none\";\n SelectionMode[SelectionMode[\"single\"] = 1] = \"single\";\n SelectionMode[SelectionMode[\"multiple\"] = 2] = \"multiple\";\n})(SelectionMode || (SelectionMode = {}));\n/**\n * {@docCategory Selection}\n */\nexport var SelectionDirection;\n(function (SelectionDirection) {\n SelectionDirection[SelectionDirection[\"horizontal\"] = 0] = \"horizontal\";\n SelectionDirection[SelectionDirection[\"vertical\"] = 1] = \"vertical\";\n})(SelectionDirection || (SelectionDirection = {}));\n//# sourceMappingURL=Selection.types.js.map","import { SELECTION_CHANGE, SelectionMode, SELECTION_ITEMS_CHANGE } from './Selection.types';\nimport { EventGroup } from '../EventGroup';\n/**\n * {@docCategory Selection}\n */\nvar Selection = /** @class */ (function () {\n /**\n * Create a new Selection. If `TItem` does not have a `key` property, you must provide an options\n * object with a `getKey` implementation. Providing options is optional otherwise.\n * (At most one `options` object is accepted.)\n */\n function Selection() {\n var options = []; // Otherwise, arguments require options with `getKey`.\n for (var _i = 0 // Otherwise, arguments require options with `getKey`.\n ; _i < arguments.length // Otherwise, arguments require options with `getKey`.\n ; _i++ // Otherwise, arguments require options with `getKey`.\n ) {\n options[_i] = arguments[_i]; // Otherwise, arguments require options with `getKey`.\n }\n var _a = options[0] || {}, onSelectionChanged = _a.onSelectionChanged, onItemsChanged = _a.onItemsChanged, getKey = _a.getKey, _b = _a.canSelectItem, canSelectItem = _b === void 0 ? function () { return true; } : _b, items = _a.items, _c = _a.selectionMode, selectionMode = _c === void 0 ? SelectionMode.multiple : _c;\n this.mode = selectionMode;\n this._getKey = getKey || defaultGetKey;\n this._changeEventSuppressionCount = 0;\n this._exemptedCount = 0;\n this._anchoredIndex = 0;\n this._unselectableCount = 0;\n this._onSelectionChanged = onSelectionChanged;\n this._onItemsChanged = onItemsChanged;\n this._canSelectItem = canSelectItem;\n this._keyToIndexMap = {};\n this._isModal = false;\n this.setItems(items || [], true);\n this.count = this.getSelectedCount();\n }\n Selection.prototype.canSelectItem = function (item, index) {\n if (typeof index === 'number' && index < 0) {\n return false;\n }\n return this._canSelectItem(item, index);\n };\n Selection.prototype.getKey = function (item, index) {\n var key = this._getKey(item, index);\n return typeof key === 'number' || key ? \"\".concat(key) : '';\n };\n Selection.prototype.setChangeEvents = function (isEnabled, suppressChange) {\n this._changeEventSuppressionCount += isEnabled ? -1 : 1;\n if (this._changeEventSuppressionCount === 0 && this._hasChanged) {\n this._hasChanged = false;\n if (!suppressChange) {\n this._change();\n }\n }\n };\n Selection.prototype.isModal = function () {\n return this._isModal;\n };\n Selection.prototype.setModal = function (isModal) {\n if (this._isModal !== isModal) {\n this.setChangeEvents(false);\n this._isModal = isModal;\n if (!isModal) {\n this.setAllSelected(false);\n }\n this._change();\n this.setChangeEvents(true);\n }\n };\n /**\n * Selection needs the items, call this method to set them. If the set\n * of items is the same, this will re-evaluate selection and index maps.\n * Otherwise, shouldClear should be set to true, so that selection is\n * cleared.\n */\n Selection.prototype.setItems = function (items, shouldClear) {\n if (shouldClear === void 0) { shouldClear = true; }\n var newKeyToIndexMap = {};\n var newUnselectableIndices = {};\n var hasSelectionChanged = false;\n this.setChangeEvents(false);\n // Reset the unselectable count.\n this._unselectableCount = 0;\n var haveItemsChanged = false;\n // Build lookup table for quick selection evaluation.\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (item) {\n var key = this.getKey(item, i);\n if (key) {\n if (!haveItemsChanged && (!(key in this._keyToIndexMap) || this._keyToIndexMap[key] !== i)) {\n haveItemsChanged = true;\n }\n newKeyToIndexMap[key] = i;\n }\n }\n newUnselectableIndices[i] = item && !this.canSelectItem(item);\n if (newUnselectableIndices[i]) {\n this._unselectableCount++;\n }\n }\n if (shouldClear || items.length === 0) {\n this._setAllSelected(false, true);\n }\n // Check the exemption list for discrepencies.\n var newExemptedIndicies = {};\n var newExemptedCount = 0;\n for (var indexProperty in this._exemptedIndices) {\n if (this._exemptedIndices.hasOwnProperty(indexProperty)) {\n var index = Number(indexProperty);\n var item = this._items[index];\n var exemptKey = item ? this.getKey(item, Number(index)) : undefined;\n var newIndex = exemptKey ? newKeyToIndexMap[exemptKey] : index;\n if (newIndex === undefined) {\n // The item has likely been replaced or removed.\n hasSelectionChanged = true;\n }\n else {\n // We know the new index of the item. update the existing exemption table.\n newExemptedIndicies[newIndex] = true;\n newExemptedCount++;\n hasSelectionChanged = hasSelectionChanged || newIndex !== index;\n }\n }\n }\n if (this._items && this._exemptedCount === 0 && items.length !== this._items.length && this._isAllSelected) {\n // If everything was selected but the number of items has changed, selection has changed.\n hasSelectionChanged = true;\n }\n if (!haveItemsChanged) {\n for (var _i = 0, _a = Object.keys(this._keyToIndexMap); _i < _a.length; _i++) {\n var key = _a[_i];\n if (!(key in newKeyToIndexMap)) {\n haveItemsChanged = true;\n break;\n }\n }\n }\n this._exemptedIndices = newExemptedIndicies;\n this._exemptedCount = newExemptedCount;\n this._keyToIndexMap = newKeyToIndexMap;\n this._unselectableIndices = newUnselectableIndices;\n this._items = items;\n this._selectedItems = null;\n if (hasSelectionChanged) {\n this._updateCount();\n }\n if (haveItemsChanged) {\n EventGroup.raise(this, SELECTION_ITEMS_CHANGE);\n if (this._onItemsChanged) {\n this._onItemsChanged();\n }\n }\n if (hasSelectionChanged) {\n this._change();\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.getItems = function () {\n return this._items;\n };\n Selection.prototype.getSelection = function () {\n if (!this._selectedItems) {\n this._selectedItems = [];\n var items = this._items;\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (this.isIndexSelected(i)) {\n this._selectedItems.push(items[i]);\n }\n }\n }\n }\n return this._selectedItems;\n };\n Selection.prototype.getSelectedCount = function () {\n return this._isAllSelected\n ? this._items.length - this._exemptedCount - this._unselectableCount\n : this._exemptedCount;\n };\n Selection.prototype.getSelectedIndices = function () {\n if (!this._selectedIndices) {\n this._selectedIndices = [];\n var items = this._items;\n if (items) {\n for (var i = 0; i < items.length; i++) {\n if (this.isIndexSelected(i)) {\n this._selectedIndices.push(i);\n }\n }\n }\n }\n return this._selectedIndices;\n };\n Selection.prototype.getItemIndex = function (key) {\n var index = this._keyToIndexMap[key];\n return index !== null && index !== void 0 ? index : -1;\n };\n Selection.prototype.isRangeSelected = function (fromIndex, count) {\n if (count === 0) {\n return false;\n }\n var endIndex = fromIndex + count;\n for (var i = fromIndex; i < endIndex; i++) {\n if (!this.isIndexSelected(i)) {\n return false;\n }\n }\n return true;\n };\n Selection.prototype.isAllSelected = function () {\n var selectableCount = this._items.length - this._unselectableCount;\n // In single mode, we can only have a max of 1 item.\n if (this.mode === SelectionMode.single) {\n selectableCount = Math.min(selectableCount, 1);\n }\n return ((this.count > 0 && this._isAllSelected && this._exemptedCount === 0) ||\n (!this._isAllSelected && this._exemptedCount === selectableCount && selectableCount > 0));\n };\n Selection.prototype.isKeySelected = function (key) {\n var index = this._keyToIndexMap[key];\n return this.isIndexSelected(index);\n };\n Selection.prototype.isIndexSelected = function (index) {\n return !!((this.count > 0 && this._isAllSelected && !this._exemptedIndices[index] && !this._unselectableIndices[index]) ||\n (!this._isAllSelected && this._exemptedIndices[index]));\n };\n Selection.prototype.setAllSelected = function (isAllSelected) {\n if (isAllSelected && this.mode !== SelectionMode.multiple) {\n return;\n }\n var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n this.setChangeEvents(false);\n if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n this._exemptedIndices = {};\n if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n this._exemptedCount = 0;\n this._isAllSelected = isAllSelected;\n this._change();\n }\n this._updateCount();\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.setKeySelected = function (key, isSelected, shouldAnchor) {\n var index = this._keyToIndexMap[key];\n if (index >= 0) {\n this.setIndexSelected(index, isSelected, shouldAnchor);\n }\n };\n Selection.prototype.setIndexSelected = function (index, isSelected, shouldAnchor) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n // Clamp the index.\n index = Math.min(Math.max(0, index), this._items.length - 1);\n // No-op on out of bounds selections.\n if (index < 0 || index >= this._items.length) {\n return;\n }\n this.setChangeEvents(false);\n var isExempt = this._exemptedIndices[index];\n var canSelect = !this._unselectableIndices[index];\n if (canSelect) {\n if (isSelected && this.mode === SelectionMode.single) {\n // If this is single-select, the previous selection should be removed.\n this._setAllSelected(false, true);\n }\n // Determine if we need to remove the exemption.\n if (isExempt && ((isSelected && this._isAllSelected) || (!isSelected && !this._isAllSelected))) {\n delete this._exemptedIndices[index];\n this._exemptedCount--;\n }\n // Determine if we need to add the exemption.\n if (!isExempt && ((isSelected && !this._isAllSelected) || (!isSelected && this._isAllSelected))) {\n this._exemptedIndices[index] = true;\n this._exemptedCount++;\n }\n if (shouldAnchor) {\n this._anchoredIndex = index;\n }\n }\n this._updateCount();\n this.setChangeEvents(true);\n };\n Selection.prototype.setRangeSelected = function (fromIndex, count, isSelected, shouldAnchor) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n // Clamp the index.\n fromIndex = Math.min(Math.max(0, fromIndex), this._items.length - 1);\n // Clamp the range.\n count = Math.min(Math.max(0, count), this._items.length - fromIndex);\n // No-op on out of bounds selections.\n if (fromIndex < 0 || fromIndex >= this._items.length || count === 0) {\n return;\n }\n this.setChangeEvents(false);\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = fromIndex;\n var endIndex = fromIndex + count - 1;\n var newAnchorIndex = anchorIndex >= endIndex ? startIndex : endIndex;\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, isSelected, shouldAnchor ? startIndex === newAnchorIndex : false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.selectToKey = function (key, clearSelection) {\n this.selectToIndex(this._keyToIndexMap[key], clearSelection);\n };\n Selection.prototype.selectToRange = function (fromIndex, count, clearSelection) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n if (this.mode === SelectionMode.single) {\n if (count === 1) {\n this.setIndexSelected(fromIndex, true, true);\n }\n return;\n }\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = Math.min(fromIndex, anchorIndex);\n var endIndex = Math.max(fromIndex + count - 1, anchorIndex);\n this.setChangeEvents(false);\n if (clearSelection) {\n this._setAllSelected(false, true);\n }\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, true, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.selectToIndex = function (index, clearSelection) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n if (this.mode === SelectionMode.single) {\n this.setIndexSelected(index, true, true);\n return;\n }\n var anchorIndex = this._anchoredIndex || 0;\n var startIndex = Math.min(index, anchorIndex);\n var endIndex = Math.max(index, anchorIndex);\n this.setChangeEvents(false);\n if (clearSelection) {\n this._setAllSelected(false, true);\n }\n for (; startIndex <= endIndex; startIndex++) {\n this.setIndexSelected(startIndex, true, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype.toggleAllSelected = function () {\n this.setAllSelected(!this.isAllSelected());\n };\n Selection.prototype.toggleKeySelected = function (key) {\n this.setKeySelected(key, !this.isKeySelected(key), true);\n };\n Selection.prototype.toggleIndexSelected = function (index) {\n this.setIndexSelected(index, !this.isIndexSelected(index), true);\n };\n Selection.prototype.toggleRangeSelected = function (fromIndex, count) {\n if (this.mode === SelectionMode.none) {\n return;\n }\n var isRangeSelected = this.isRangeSelected(fromIndex, count);\n var endIndex = fromIndex + count;\n if (this.mode === SelectionMode.single && count > 1) {\n return;\n }\n this.setChangeEvents(false);\n for (var i = fromIndex; i < endIndex; i++) {\n this.setIndexSelected(i, !isRangeSelected, false);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype._updateCount = function (preserveModalState) {\n if (preserveModalState === void 0) { preserveModalState = false; }\n var count = this.getSelectedCount();\n if (count !== this.count) {\n this.count = count;\n this._change();\n }\n if (!this.count && !preserveModalState) {\n this.setModal(false);\n }\n };\n Selection.prototype._setAllSelected = function (isAllSelected, preserveModalState) {\n if (preserveModalState === void 0) { preserveModalState = false; }\n if (isAllSelected && this.mode !== SelectionMode.multiple) {\n return;\n }\n var selectableCount = this._items ? this._items.length - this._unselectableCount : 0;\n this.setChangeEvents(false);\n if (selectableCount > 0 && (this._exemptedCount > 0 || isAllSelected !== this._isAllSelected)) {\n this._exemptedIndices = {};\n if (isAllSelected !== this._isAllSelected || this._exemptedCount > 0) {\n this._exemptedCount = 0;\n this._isAllSelected = isAllSelected;\n this._change();\n }\n this._updateCount(preserveModalState);\n }\n this.setChangeEvents(true);\n };\n Selection.prototype._change = function () {\n if (this._changeEventSuppressionCount === 0) {\n this._selectedItems = null;\n this._selectedIndices = undefined;\n EventGroup.raise(this, SELECTION_CHANGE);\n if (this._onSelectionChanged) {\n this._onSelectionChanged();\n }\n }\n else {\n this._hasChanged = true;\n }\n };\n return Selection;\n}());\nexport { Selection };\nfunction defaultGetKey(item, index) {\n // 0 may be used as a key\n var _a = (item || {}).key, key = _a === void 0 ? \"\".concat(index) : _a;\n return key;\n}\n//# sourceMappingURL=Selection.js.map","// Regex that finds { and } so they can be removed on a lookup for string format\nvar FORMAT_ARGS_REGEX = /[\\{\\}]/g;\n// Regex that finds {#} so it can be replaced by the arguments in string format\nvar FORMAT_REGEX = /\\{\\d+\\}/g;\n/**\n * String format method, used for scenarios where at runtime you\n * need to evaluate a formatted string given a tokenized string. This\n * usually only is needed in localization scenarios.\n\n * @example\n * ```tsx\n * \"I love {0} every {1}\".format(\"CXP\")\n * ```\n * will result in a Debug Exception.\n *\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function format(s) {\n var values = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n values[_i - 1] = arguments[_i];\n }\n var args = values;\n // Callback match function\n function replaceFunc(match) {\n // looks up in the args\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var replacement = args[match.replace(FORMAT_ARGS_REGEX, '')];\n // catches undefined in nondebug and null in debug and nondebug\n if (replacement === null || replacement === undefined) {\n replacement = '';\n }\n return replacement;\n }\n return s.replace(FORMAT_REGEX, replaceFunc);\n}\n//# sourceMappingURL=string.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { concatStyleSetsWithProps } from '@fluentui/merge-styles';\nimport { useMergeStylesHooks } from './shadowDom/index';\nimport { useCustomizationSettings } from './customizations/useCustomizationSettings';\nvar DefaultFields = ['theme', 'styles'];\nexport function styled(Component, baseStyles, getProps, customizable, pure) {\n customizable = customizable || { scope: '', fields: undefined };\n var scope = customizable.scope, _a = customizable.fields, fields = _a === void 0 ? DefaultFields : _a;\n var Wrapped = React.forwardRef(function (props, forwardedRef) {\n var styles = React.useRef();\n var settings = useCustomizationSettings(fields, scope);\n var customizedStyles = settings.styles, dir = settings.dir, rest = __rest(settings, [\"styles\", \"dir\"]);\n var additionalProps = getProps ? getProps(props) : undefined;\n var useStyled = useMergeStylesHooks().useStyled;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var cache = (styles.current && styles.current.__cachedInputs__) || [];\n var propStyles = props.styles;\n if (!styles.current || customizedStyles !== cache[1] || propStyles !== cache[2]) {\n // Using styled components as the Component arg will result in nested styling arrays.\n // The function can be cached and in order to prevent the props from being retained within it's closure\n // we pass in just the styles and not the entire props\n var concatenatedStyles = function (styleProps) {\n return concatStyleSetsWithProps(styleProps, baseStyles, customizedStyles, propStyles);\n };\n // The __cachedInputs__ array is attached to the function and consumed by the\n // classNamesFunction as a list of keys to include for memoizing classnames.\n concatenatedStyles.__cachedInputs__ = [\n baseStyles,\n customizedStyles,\n propStyles,\n ];\n concatenatedStyles.__noStyleOverride__ =\n !customizedStyles && !propStyles;\n styles.current = concatenatedStyles;\n }\n styles.current.__shadowConfig__ = useStyled(scope);\n return React.createElement(Component, __assign({ ref: forwardedRef }, rest, additionalProps, props, { styles: styles.current }));\n });\n // Function.prototype.name is an ES6 feature, so the cast to any is required until we're\n // able to drop IE 11 support and compile with ES6 libs\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Wrapped.displayName = \"Styled\".concat(Component.displayName || Component.name);\n // This preserves backwards compatibility.\n var pureComponent = pure ? React.memo(Wrapped) : Wrapped;\n // Check if the wrapper has a displayName after it has been memoized. Then assign it to the pure component.\n if (Wrapped.displayName) {\n pureComponent.displayName = Wrapped.displayName;\n }\n return pureComponent;\n}\n//# sourceMappingURL=styled.js.map","import { getWindow } from './dom/getWindow';\nexport var isIE11 = function () {\n var _a;\n var win = getWindow();\n if (!((_a = win === null || win === void 0 ? void 0 : win.navigator) === null || _a === void 0 ? void 0 : _a.userAgent)) {\n return false;\n }\n return win.navigator.userAgent.indexOf('rv:11.0') > -1;\n};\n//# sourceMappingURL=ie11Detector.js.map","import { __assign } from \"tslib\";\n/**\n * Function to apply default values to a component props object. This function is intended for function components,\n * to maintain parity with the `defaultProps` feature of class components. It accounts for properties that are\n * specified, but undefined.\n * @param defaultProps- An object with default values for various properties\n * @param propsWithoutDefaults- The props object passed into the component\n */\nexport function getPropsWithDefaults(defaultProps, propsWithoutDefaults) {\n var props = __assign({}, propsWithoutDefaults);\n for (var _i = 0, _a = Object.keys(defaultProps); _i < _a.length; _i++) {\n var key = _a[_i];\n if (props[key] === undefined) {\n props[key] = defaultProps[key];\n }\n }\n return props;\n}\n//# sourceMappingURL=getPropsWithDefaults.js.map","import { arraysEqual } from './array';\n/**\n * Set up a ref resolver function given internal state managed for the ref.\n * @param local Set\n */\nvar createResolver = function (local) {\n return function (newValue) {\n for (var _i = 0, _a = local.refs; _i < _a.length; _i++) {\n var ref = _a[_i];\n if (typeof ref === 'function') {\n ref(newValue);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = newValue;\n }\n }\n };\n};\n/**\n * Helper to merge refs from within class components.\n */\nexport var createMergedRef = function (value) {\n var local = {\n refs: [],\n };\n return function () {\n var newRefs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newRefs[_i] = arguments[_i];\n }\n if (!local.resolver || !arraysEqual(local.refs, newRefs)) {\n local.resolver = createResolver(local);\n }\n local.refs = newRefs;\n return local.resolver;\n };\n};\n//# sourceMappingURL=createMergedRef.js.map","import * as React from 'react';\nimport { canUseDOM } from './dom/canUseDOM';\n/**\n * React currently throws a warning when using `useLayoutEffect` on the server. To get around it,\n * this hook calls `useEffect` on the server (no-op) and `useLayoutEffect` in the browser.\n *\n * Prefer `useEffect` unless you have a specific need to do something after mount and before paint,\n * such as to avoid a render flash for certain operations.\n *\n * Server-side rendering is detected based on `canUseDOM` from `@fluentui/utilities`.\n *\n * https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * https://github.com/reduxjs/react-redux/blob/master/src/utils/useIsomorphicLayoutEffect.js\n */\n// eslint-disable-next-line no-restricted-properties\nexport var useIsomorphicLayoutEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import { __assign } from \"tslib\";\nimport { GlobalSettings, warn } from '@fluentui/utilities';\nimport { fontFace, mergeStyles, Stylesheet } from '@fluentui/merge-styles';\nvar ICON_SETTING_NAME = 'icons';\nvar _iconSettings = GlobalSettings.getValue(ICON_SETTING_NAME, {\n __options: {\n disableWarnings: false,\n warnOnMissingIcons: true,\n },\n __remapped: {},\n});\n// Reset icon registration on stylesheet resets.\nvar stylesheet = Stylesheet.getInstance();\nif (stylesheet && stylesheet.onReset) {\n stylesheet.onReset(function () {\n for (var name_1 in _iconSettings) {\n if (_iconSettings.hasOwnProperty(name_1) && !!_iconSettings[name_1].subset) {\n _iconSettings[name_1].subset.className = undefined;\n }\n }\n });\n}\n/**\n * Normalizes an icon name for consistent mapping.\n * Current implementation is to convert the icon name to lower case.\n *\n * @param name - Icon name to normalize.\n * @returns {string} Normalized icon name to use for indexing and mapping.\n */\nvar normalizeIconName = function (name) { return name.toLowerCase(); };\n/**\n * Registers a given subset of icons.\n *\n * @param iconSubset - the icon subset definition.\n */\nexport function registerIcons(iconSubset, options) {\n var subset = __assign(__assign({}, iconSubset), { isRegistered: false, className: undefined });\n var icons = iconSubset.icons;\n // Grab options, optionally mix user provided ones on top.\n options = options ? __assign(__assign({}, _iconSettings.__options), options) : _iconSettings.__options;\n for (var iconName in icons) {\n if (icons.hasOwnProperty(iconName)) {\n var code = icons[iconName];\n var normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n _warnDuplicateIcon(iconName);\n }\n else {\n _iconSettings[normalizedIconName] = {\n code: code,\n subset: subset,\n };\n }\n }\n }\n}\n/**\n * Unregisters icons by name.\n *\n * @param iconNames - List of icons to unregister.\n */\nexport function unregisterIcons(iconNames) {\n var options = _iconSettings.__options;\n var _loop_1 = function (iconName) {\n var normalizedIconName = normalizeIconName(iconName);\n if (_iconSettings[normalizedIconName]) {\n delete _iconSettings[normalizedIconName];\n }\n else {\n // Warn that we are trying to delete an icon that doesn't exist\n if (!options.disableWarnings) {\n warn(\"The icon \\\"\".concat(iconName, \"\\\" tried to unregister but was not registered.\"));\n }\n }\n // Delete any aliases for this iconName\n if (_iconSettings.__remapped[normalizedIconName]) {\n delete _iconSettings.__remapped[normalizedIconName];\n }\n // Delete any items that were an alias for this iconName\n Object.keys(_iconSettings.__remapped).forEach(function (key) {\n if (_iconSettings.__remapped[key] === normalizedIconName) {\n delete _iconSettings.__remapped[key];\n }\n });\n };\n for (var _i = 0, iconNames_1 = iconNames; _i < iconNames_1.length; _i++) {\n var iconName = iconNames_1[_i];\n _loop_1(iconName);\n }\n}\n/**\n * Remaps one icon name to another.\n */\nexport function registerIconAlias(iconName, mappedToName) {\n _iconSettings.__remapped[normalizeIconName(iconName)] = normalizeIconName(mappedToName);\n}\n/**\n * Gets an icon definition. If an icon is requested but the subset has yet to be registered,\n * it will get registered immediately.\n *\n * @public\n * @param name - Name of icon.\n */\nexport function getIcon(name) {\n var icon = undefined;\n var options = _iconSettings.__options;\n name = name ? normalizeIconName(name) : '';\n name = _iconSettings.__remapped[name] || name;\n if (name) {\n icon = _iconSettings[name];\n if (icon) {\n var subset = icon.subset;\n if (subset && subset.fontFace) {\n if (!subset.isRegistered) {\n fontFace(subset.fontFace);\n subset.isRegistered = true;\n }\n if (!subset.className) {\n subset.className = mergeStyles(subset.style, {\n fontFamily: subset.fontFace.fontFamily,\n fontWeight: subset.fontFace.fontWeight || 'normal',\n fontStyle: subset.fontFace.fontStyle || 'normal',\n });\n }\n }\n }\n else {\n // eslint-disable-next-line deprecation/deprecation\n if (!options.disableWarnings && options.warnOnMissingIcons) {\n warn(\"The icon \\\"\".concat(name, \"\\\" was used but not registered. See https://github.com/microsoft/fluentui/wiki/Using-icons for more information.\"));\n }\n }\n }\n return icon;\n}\n/**\n * Sets the icon options.\n *\n * @public\n */\nexport function setIconOptions(options) {\n _iconSettings.__options = __assign(__assign({}, _iconSettings.__options), options);\n}\nvar _missingIcons = [];\nvar _missingIconsTimer = undefined;\nfunction _warnDuplicateIcon(iconName) {\n var options = _iconSettings.__options;\n var warningDelay = 2000;\n var maxIconsInMessage = 10;\n if (!options.disableWarnings) {\n _missingIcons.push(iconName);\n if (_missingIconsTimer === undefined) {\n _missingIconsTimer = setTimeout(function () {\n warn(\"Some icons were re-registered. Applications should only call registerIcons for any given \" +\n \"icon once. Redefining what an icon is may have unintended consequences. Duplicates \" +\n \"include: \\n\" +\n _missingIcons.slice(0, maxIconsInMessage).join(', ') +\n (_missingIcons.length > maxIconsInMessage ? \" (+ \".concat(_missingIcons.length - maxIconsInMessage, \" more)\") : ''));\n _missingIconsTimer = undefined;\n _missingIcons = [];\n }, warningDelay);\n }\n }\n}\n//# sourceMappingURL=icons.js.map","import { __assign } from \"tslib\";\n/** Generates all the semantic slot colors based on the theme so far\n * We'll use these as fallbacks for semantic slots that the passed in theme did not define.\n * The caller must still mix in the customized semantic slots at the end.\n */\nexport function makeSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var semanticColors = __assign({ primaryButtonBorder: 'transparent', errorText: !isInverted ? '#a4262c' : '#F1707B', messageText: !isInverted ? '#323130' : '#F3F2F1', messageLink: !isInverted ? '#005A9E' : '#6CB8F6', messageLinkHovered: !isInverted ? '#004578' : '#82C7FF', infoIcon: !isInverted ? '#605e5c' : '#C8C6C4', errorIcon: !isInverted ? '#A80000' : '#F1707B', blockingIcon: !isInverted ? '#FDE7E9' : '#442726', warningIcon: !isInverted ? '#797775' : '#C8C6C4', severeWarningIcon: !isInverted ? '#D83B01' : '#FCE100', successIcon: !isInverted ? '#107C10' : '#92C353', infoBackground: !isInverted ? '#f3f2f1' : '#323130', errorBackground: !isInverted ? '#FDE7E9' : '#442726', blockingBackground: !isInverted ? '#FDE7E9' : '#442726', warningBackground: !isInverted ? '#FFF4CE' : '#433519', severeWarningBackground: !isInverted ? '#FED9CC' : '#4F2A0F', successBackground: !isInverted ? '#DFF6DD' : '#393D1B', \n // deprecated\n warningHighlight: !isInverted ? '#ffb900' : '#fff100', successText: !isInverted ? '#107C10' : '#92c353' }, s);\n var fullSemanticColors = getSemanticColors(p, e, semanticColors, isInverted);\n return _fixDeprecatedSlots(fullSemanticColors, depComments);\n}\n/**\n * Map partial platte and effects to partial semantic colors.\n */\nexport function getSemanticColors(p, e, s, isInverted, depComments) {\n if (depComments === void 0) { depComments = false; }\n var result = {};\n // map palette\n var _a = p || {}, white = _a.white, black = _a.black, themePrimary = _a.themePrimary, themeDark = _a.themeDark, themeDarker = _a.themeDarker, themeDarkAlt = _a.themeDarkAlt, themeLighter = _a.themeLighter, neutralLight = _a.neutralLight, neutralLighter = _a.neutralLighter, neutralDark = _a.neutralDark, neutralQuaternary = _a.neutralQuaternary, neutralQuaternaryAlt = _a.neutralQuaternaryAlt, neutralPrimary = _a.neutralPrimary, neutralSecondary = _a.neutralSecondary, neutralSecondaryAlt = _a.neutralSecondaryAlt, neutralTertiary = _a.neutralTertiary, neutralTertiaryAlt = _a.neutralTertiaryAlt, neutralLighterAlt = _a.neutralLighterAlt, accent = _a.accent;\n if (white) {\n result.bodyBackground = white;\n result.bodyFrameBackground = white;\n result.accentButtonText = white;\n result.buttonBackground = white;\n result.primaryButtonText = white;\n result.primaryButtonTextHovered = white;\n result.primaryButtonTextPressed = white;\n result.inputBackground = white;\n result.inputForegroundChecked = white;\n result.listBackground = white;\n result.menuBackground = white;\n result.cardStandoutBackground = white;\n }\n if (black) {\n result.bodyTextChecked = black;\n result.buttonTextCheckedHovered = black;\n }\n if (themePrimary) {\n result.link = themePrimary;\n result.primaryButtonBackground = themePrimary;\n result.inputBackgroundChecked = themePrimary;\n result.inputIcon = themePrimary;\n result.inputFocusBorderAlt = themePrimary;\n result.menuIcon = themePrimary;\n result.menuHeader = themePrimary;\n result.accentButtonBackground = themePrimary;\n }\n if (themeDark) {\n result.primaryButtonBackgroundPressed = themeDark;\n result.inputBackgroundCheckedHovered = themeDark;\n result.inputIconHovered = themeDark;\n }\n if (themeDarker) {\n result.linkHovered = themeDarker;\n }\n if (themeDarkAlt) {\n result.primaryButtonBackgroundHovered = themeDarkAlt;\n }\n if (themeLighter) {\n result.inputPlaceholderBackgroundChecked = themeLighter;\n }\n if (neutralLight) {\n result.bodyBackgroundChecked = neutralLight;\n result.bodyFrameDivider = neutralLight;\n result.bodyDivider = neutralLight;\n result.variantBorder = neutralLight;\n result.buttonBackgroundCheckedHovered = neutralLight;\n result.buttonBackgroundPressed = neutralLight;\n result.listItemBackgroundChecked = neutralLight;\n result.listHeaderBackgroundPressed = neutralLight;\n result.menuItemBackgroundPressed = neutralLight;\n // eslint-disable-next-line deprecation/deprecation\n result.menuItemBackgroundChecked = neutralLight;\n }\n if (neutralLighter) {\n result.bodyBackgroundHovered = neutralLighter;\n result.buttonBackgroundHovered = neutralLighter;\n result.buttonBackgroundDisabled = neutralLighter;\n result.buttonBorderDisabled = neutralLighter;\n result.primaryButtonBackgroundDisabled = neutralLighter;\n result.disabledBackground = neutralLighter;\n result.listItemBackgroundHovered = neutralLighter;\n result.listHeaderBackgroundHovered = neutralLighter;\n result.menuItemBackgroundHovered = neutralLighter;\n }\n if (neutralQuaternary) {\n result.primaryButtonTextDisabled = neutralQuaternary;\n result.disabledSubtext = neutralQuaternary;\n }\n if (neutralQuaternaryAlt) {\n result.listItemBackgroundCheckedHovered = neutralQuaternaryAlt;\n }\n if (neutralTertiary) {\n result.disabledBodyText = neutralTertiary;\n result.variantBorderHovered = (s === null || s === void 0 ? void 0 : s.variantBorderHovered) || neutralTertiary;\n result.buttonTextDisabled = neutralTertiary;\n result.inputIconDisabled = neutralTertiary;\n result.disabledText = neutralTertiary;\n }\n if (neutralPrimary) {\n result.bodyText = neutralPrimary;\n result.actionLink = neutralPrimary;\n result.buttonText = neutralPrimary;\n result.inputBorderHovered = neutralPrimary;\n result.inputText = neutralPrimary;\n result.listText = neutralPrimary;\n result.menuItemText = neutralPrimary;\n }\n if (neutralLighterAlt) {\n result.bodyStandoutBackground = neutralLighterAlt;\n result.defaultStateBackground = neutralLighterAlt;\n }\n if (neutralDark) {\n result.actionLinkHovered = neutralDark;\n result.buttonTextHovered = neutralDark;\n result.buttonTextChecked = neutralDark;\n result.buttonTextPressed = neutralDark;\n result.inputTextHovered = neutralDark;\n result.menuItemTextHovered = neutralDark;\n }\n if (neutralSecondary) {\n result.bodySubtext = neutralSecondary;\n result.focusBorder = neutralSecondary;\n result.inputBorder = neutralSecondary;\n result.smallInputBorder = neutralSecondary;\n result.inputPlaceholderText = neutralSecondary;\n }\n if (neutralSecondaryAlt) {\n result.buttonBorder = neutralSecondaryAlt;\n }\n if (neutralTertiaryAlt) {\n result.disabledBodySubtext = neutralTertiaryAlt;\n result.disabledBorder = neutralTertiaryAlt;\n result.buttonBackgroundChecked = neutralTertiaryAlt;\n result.menuDivider = neutralTertiaryAlt;\n }\n if (accent) {\n result.accentButtonBackground = accent;\n }\n // map effects\n if (e === null || e === void 0 ? void 0 : e.elevation4) {\n result.cardShadow = e.elevation4;\n }\n if (!isInverted && (e === null || e === void 0 ? void 0 : e.elevation8)) {\n result.cardShadowHovered = e.elevation8;\n }\n else if (result.variantBorderHovered) {\n result.cardShadowHovered = '0 0 1px ' + result.variantBorderHovered;\n }\n result = __assign(__assign({}, result), s);\n return result;\n}\nfunction _fixDeprecatedSlots(s, depComments) {\n // Add @deprecated tag as comment if enabled\n var dep = '';\n if (depComments === true) {\n dep = ' /* @deprecated */';\n }\n /* eslint-disable deprecation/deprecation */\n s.listTextColor = s.listText + dep;\n s.menuItemBackgroundChecked += dep;\n s.warningHighlight += dep;\n s.warningText = s.messageText + dep;\n s.successText += dep;\n /* eslint-enable deprecation/deprecation */\n return s;\n}\n//# sourceMappingURL=makeSemanticColors.js.map","import { merge } from '@fluentui/utilities';\nimport { getSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Merge a partial/full theme into a full theme and returns a merged full theme.\n */\nexport function mergeThemes(theme, partialTheme) {\n var _a, _b, _c;\n if (partialTheme === void 0) { partialTheme = {}; }\n var mergedTheme = merge({}, theme, partialTheme, {\n semanticColors: getSemanticColors(partialTheme.palette, partialTheme.effects, partialTheme.semanticColors, partialTheme.isInverted === undefined ? theme.isInverted : partialTheme.isInverted),\n });\n if (((_a = partialTheme.palette) === null || _a === void 0 ? void 0 : _a.themePrimary) && !((_b = partialTheme.palette) === null || _b === void 0 ? void 0 : _b.accent)) {\n mergedTheme.palette.accent = partialTheme.palette.themePrimary;\n }\n if (partialTheme.defaultFontStyle) {\n for (var _i = 0, _d = Object.keys(mergedTheme.fonts); _i < _d.length; _i++) {\n var fontStyle = _d[_i];\n mergedTheme.fonts[fontStyle] = merge(mergedTheme.fonts[fontStyle], partialTheme.defaultFontStyle, (_c = partialTheme === null || partialTheme === void 0 ? void 0 : partialTheme.fonts) === null || _c === void 0 ? void 0 : _c[fontStyle]);\n }\n }\n return mergedTheme;\n}\n//# sourceMappingURL=mergeThemes.js.map","// When adding or removing a color, make sure you keep this consistent with IColorClassNames\n// by adding the color variants.\nexport var DefaultPalette = {\n themeDarker: '#004578',\n themeDark: '#005a9e',\n themeDarkAlt: '#106ebe',\n themePrimary: '#0078d4',\n themeSecondary: '#2b88d8',\n themeTertiary: '#71afe5',\n themeLight: '#c7e0f4',\n themeLighter: '#deecf9',\n themeLighterAlt: '#eff6fc',\n black: '#000000',\n blackTranslucent40: 'rgba(0,0,0,.4)',\n neutralDark: '#201f1e',\n neutralPrimary: '#323130',\n neutralPrimaryAlt: '#3b3a39',\n neutralSecondary: '#605e5c',\n neutralSecondaryAlt: '#8a8886',\n neutralTertiary: '#a19f9d',\n neutralTertiaryAlt: '#c8c6c4',\n neutralQuaternary: '#d2d0ce',\n neutralQuaternaryAlt: '#e1dfdd',\n neutralLight: '#edebe9',\n neutralLighter: '#f3f2f1',\n neutralLighterAlt: '#faf9f8',\n accent: '#0078d4',\n white: '#ffffff',\n whiteTranslucent40: 'rgba(255,255,255,.4)',\n yellowDark: '#d29200',\n yellow: '#ffb900',\n yellowLight: '#fff100',\n orange: '#d83b01',\n orangeLight: '#ea4300',\n orangeLighter: '#ff8c00',\n redDark: '#a4262c',\n red: '#e81123',\n magentaDark: '#5c005c',\n magenta: '#b4009e',\n magentaLight: '#e3008c',\n purpleDark: '#32145a',\n purple: '#5c2d91',\n purpleLight: '#b4a0ff',\n blueDark: '#002050',\n blueMid: '#00188f',\n blue: '#0078d4',\n blueLight: '#00bcf2',\n tealDark: '#004b50',\n teal: '#008272',\n tealLight: '#00b294',\n greenDark: '#004b1c',\n green: '#107c10',\n greenLight: '#bad80a',\n};\n//# sourceMappingURL=DefaultPalette.js.map","export var Depths;\n(function (Depths) {\n Depths.depth0 = '0 0 0 0 transparent';\n Depths.depth4 = '0 1.6px 3.6px 0 rgba(0, 0, 0, 0.132), 0 0.3px 0.9px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth8 = '0 3.2px 7.2px 0 rgba(0, 0, 0, 0.132), 0 0.6px 1.8px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth16 = '0 6.4px 14.4px 0 rgba(0, 0, 0, 0.132), 0 1.2px 3.6px 0 rgba(0, 0, 0, 0.108)';\n Depths.depth64 = '0 25.6px 57.6px 0 rgba(0, 0, 0, 0.22), 0 4.8px 14.4px 0 rgba(0, 0, 0, 0.18)';\n})(Depths || (Depths = {}));\n//# sourceMappingURL=FluentDepths.js.map","import { Depths } from './FluentDepths';\nexport var DefaultEffects = {\n elevation4: Depths.depth4,\n elevation8: Depths.depth8,\n elevation16: Depths.depth16,\n elevation64: Depths.depth64,\n roundedCorner2: '2px',\n roundedCorner4: '4px',\n roundedCorner6: '6px',\n};\n//# sourceMappingURL=DefaultEffects.js.map","export var DefaultSpacing = {\n s2: '4px',\n s1: '8px',\n m: '16px',\n l1: '20px',\n l2: '32px',\n};\n//# sourceMappingURL=DefaultSpacing.js.map","import { keyframes } from '@fluentui/merge-styles';\n/* Register the keyframes */\nvar EASING_FUNCTION_1 = 'cubic-bezier(.1,.9,.2,1)';\nvar EASING_FUNCTION_2 = 'cubic-bezier(.1,.25,.75,.9)';\nvar DURATION_1 = '0.167s';\nvar DURATION_2 = '0.267s';\nvar DURATION_3 = '0.367s';\nvar DURATION_4 = '0.467s';\nvar FADE_IN = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n});\nvar FADE_OUT = keyframes({\n from: { opacity: 1 },\n to: { opacity: 0, visibility: 'hidden' },\n});\nvar SLIDE_RIGHT_IN10 = _createSlideInX(-10);\nvar SLIDE_RIGHT_IN20 = _createSlideInX(-20);\nvar SLIDE_RIGHT_IN40 = _createSlideInX(-40);\nvar SLIDE_RIGHT_IN400 = _createSlideInX(-400);\nvar SLIDE_LEFT_IN10 = _createSlideInX(10);\nvar SLIDE_LEFT_IN20 = _createSlideInX(20);\nvar SLIDE_LEFT_IN40 = _createSlideInX(40);\nvar SLIDE_LEFT_IN400 = _createSlideInX(400);\nvar SLIDE_UP_IN10 = _createSlideInY(10);\nvar SLIDE_UP_IN20 = _createSlideInY(20);\nvar SLIDE_DOWN_IN10 = _createSlideInY(-10);\nvar SLIDE_DOWN_IN20 = _createSlideInY(-20);\nvar SLIDE_RIGHT_OUT10 = _createSlideOutX(10);\nvar SLIDE_RIGHT_OUT20 = _createSlideOutX(20);\nvar SLIDE_RIGHT_OUT40 = _createSlideOutX(40);\nvar SLIDE_RIGHT_OUT400 = _createSlideOutX(400);\nvar SLIDE_LEFT_OUT10 = _createSlideOutX(-10);\nvar SLIDE_LEFT_OUT20 = _createSlideOutX(-20);\nvar SLIDE_LEFT_OUT40 = _createSlideOutX(-40);\nvar SLIDE_LEFT_OUT400 = _createSlideOutX(-400);\nvar SLIDE_UP_OUT10 = _createSlideOutY(-10);\nvar SLIDE_UP_OUT20 = _createSlideOutY(-20);\nvar SLIDE_DOWN_OUT10 = _createSlideOutY(10);\nvar SLIDE_DOWN_OUT20 = _createSlideOutY(20);\nvar SCALE_UP100 = keyframes({\n from: { transform: 'scale3d(.98,.98,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_DOWN98 = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(.98,.98,1)' },\n});\nvar SCALE_DOWN100 = keyframes({\n from: { transform: 'scale3d(1.03,1.03,1)' },\n to: { transform: 'scale3d(1,1,1)' },\n});\nvar SCALE_UP103 = keyframes({\n from: { transform: 'scale3d(1,1,1)' },\n to: { transform: 'scale3d(1.03,1.03,1)' },\n});\nvar ROTATE90 = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(90deg)' },\n});\nvar ROTATE_N90 = keyframes({\n from: { transform: 'rotateZ(0deg)' },\n to: { transform: 'rotateZ(-90deg)' },\n});\n/**\n * Exporting raw duraction values and easing functions to be used in custom animations\n */\nexport var AnimationVariables = {\n easeFunction1: EASING_FUNCTION_1,\n easeFunction2: EASING_FUNCTION_2,\n durationValue1: DURATION_1,\n durationValue2: DURATION_2,\n durationValue3: DURATION_3,\n durationValue4: DURATION_4,\n};\n/**\n * All Fabric standard animations, exposed as json objects referencing predefined\n * keyframes. These objects can be mixed in with other class definitions.\n */\nexport var AnimationStyles = {\n slideRightIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN10), DURATION_3, EASING_FUNCTION_1),\n slideRightIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN20), DURATION_3, EASING_FUNCTION_1),\n slideRightIn40: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN40), DURATION_3, EASING_FUNCTION_1),\n slideRightIn400: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_RIGHT_IN400), DURATION_3, EASING_FUNCTION_1),\n slideLeftIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN10), DURATION_3, EASING_FUNCTION_1),\n slideLeftIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN20), DURATION_3, EASING_FUNCTION_1),\n slideLeftIn40: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN40), DURATION_3, EASING_FUNCTION_1),\n slideLeftIn400: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_LEFT_IN400), DURATION_3, EASING_FUNCTION_1),\n slideUpIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_UP_IN10), DURATION_3, EASING_FUNCTION_1),\n slideUpIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_UP_IN20), DURATION_3, EASING_FUNCTION_1),\n slideDownIn10: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_DOWN_IN10), DURATION_3, EASING_FUNCTION_1),\n slideDownIn20: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SLIDE_DOWN_IN20), DURATION_3, EASING_FUNCTION_1),\n slideRightOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT10), DURATION_3, EASING_FUNCTION_1),\n slideRightOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT20), DURATION_3, EASING_FUNCTION_1),\n slideRightOut40: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT40), DURATION_3, EASING_FUNCTION_1),\n slideRightOut400: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_RIGHT_OUT400), DURATION_3, EASING_FUNCTION_1),\n slideLeftOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT10), DURATION_3, EASING_FUNCTION_1),\n slideLeftOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT20), DURATION_3, EASING_FUNCTION_1),\n slideLeftOut40: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT40), DURATION_3, EASING_FUNCTION_1),\n slideLeftOut400: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_LEFT_OUT400), DURATION_3, EASING_FUNCTION_1),\n slideUpOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_UP_OUT10), DURATION_3, EASING_FUNCTION_1),\n slideUpOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_UP_OUT20), DURATION_3, EASING_FUNCTION_1),\n slideDownOut10: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_DOWN_OUT10), DURATION_3, EASING_FUNCTION_1),\n slideDownOut20: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SLIDE_DOWN_OUT20), DURATION_3, EASING_FUNCTION_1),\n scaleUpIn100: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SCALE_UP100), DURATION_3, EASING_FUNCTION_1),\n scaleDownIn100: _createAnimation(\"\".concat(FADE_IN, \",\").concat(SCALE_DOWN100), DURATION_3, EASING_FUNCTION_1),\n scaleUpOut103: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SCALE_UP103), DURATION_1, EASING_FUNCTION_2),\n scaleDownOut98: _createAnimation(\"\".concat(FADE_OUT, \",\").concat(SCALE_DOWN98), DURATION_1, EASING_FUNCTION_2),\n fadeIn100: _createAnimation(FADE_IN, DURATION_1, EASING_FUNCTION_2),\n fadeIn200: _createAnimation(FADE_IN, DURATION_2, EASING_FUNCTION_2),\n fadeIn400: _createAnimation(FADE_IN, DURATION_3, EASING_FUNCTION_2),\n fadeIn500: _createAnimation(FADE_IN, DURATION_4, EASING_FUNCTION_2),\n fadeOut100: _createAnimation(FADE_OUT, DURATION_1, EASING_FUNCTION_2),\n fadeOut200: _createAnimation(FADE_OUT, DURATION_2, EASING_FUNCTION_2),\n fadeOut400: _createAnimation(FADE_OUT, DURATION_3, EASING_FUNCTION_2),\n fadeOut500: _createAnimation(FADE_OUT, DURATION_4, EASING_FUNCTION_2),\n rotate90deg: _createAnimation(ROTATE90, '0.1s', EASING_FUNCTION_2),\n rotateN90deg: _createAnimation(ROTATE_N90, '0.1s', EASING_FUNCTION_2),\n // expandCollapse 100/200/400, delay 100/200\n};\nfunction _createAnimation(animationName, animationDuration, animationTimingFunction) {\n return {\n animationName: animationName,\n animationDuration: animationDuration,\n animationTimingFunction: animationTimingFunction,\n animationFillMode: 'both',\n };\n}\nfunction _createSlideInX(fromX) {\n return keyframes({\n from: { transform: \"translate3d(\".concat(fromX, \"px,0,0)\"), pointerEvents: 'none' },\n to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n });\n}\nfunction _createSlideInY(fromY) {\n return keyframes({\n from: { transform: \"translate3d(0,\".concat(fromY, \"px,0)\"), pointerEvents: 'none' },\n to: { transform: \"translate3d(0,0,0)\", pointerEvents: 'auto' },\n });\n}\nfunction _createSlideOutX(toX) {\n return keyframes({\n from: { transform: \"translate3d(0,0,0)\" },\n to: { transform: \"translate3d(\".concat(toX, \"px,0,0)\") },\n });\n}\nfunction _createSlideOutY(toY) {\n return keyframes({\n from: { transform: \"translate3d(0,0,0)\" },\n to: { transform: \"translate3d(0,\".concat(toY, \"px,0)\") },\n });\n}\n//# sourceMappingURL=AnimationStyles.js.map","// Font face names to be registered.\nexport var LocalizedFontNames;\n(function (LocalizedFontNames) {\n LocalizedFontNames.Arabic = 'Segoe UI Web (Arabic)';\n LocalizedFontNames.Cyrillic = 'Segoe UI Web (Cyrillic)';\n LocalizedFontNames.EastEuropean = 'Segoe UI Web (East European)';\n LocalizedFontNames.Greek = 'Segoe UI Web (Greek)';\n LocalizedFontNames.Hebrew = 'Segoe UI Web (Hebrew)';\n LocalizedFontNames.Thai = 'Leelawadee UI Web';\n LocalizedFontNames.Vietnamese = 'Segoe UI Web (Vietnamese)';\n LocalizedFontNames.WestEuropean = 'Segoe UI Web (West European)';\n LocalizedFontNames.Selawik = 'Selawik Web';\n LocalizedFontNames.Armenian = 'Segoe UI Web (Armenian)';\n LocalizedFontNames.Georgian = 'Segoe UI Web (Georgian)';\n})(LocalizedFontNames || (LocalizedFontNames = {}));\n// Font families with fallbacks, for the general regions.\nexport var LocalizedFontFamilies;\n(function (LocalizedFontFamilies) {\n LocalizedFontFamilies.Arabic = \"'\".concat(LocalizedFontNames.Arabic, \"'\");\n LocalizedFontFamilies.ChineseSimplified = \"'Microsoft Yahei UI', Verdana, Simsun\";\n LocalizedFontFamilies.ChineseTraditional = \"'Microsoft Jhenghei UI', Pmingliu\";\n LocalizedFontFamilies.Cyrillic = \"'\".concat(LocalizedFontNames.Cyrillic, \"'\");\n LocalizedFontFamilies.EastEuropean = \"'\".concat(LocalizedFontNames.EastEuropean, \"'\");\n LocalizedFontFamilies.Greek = \"'\".concat(LocalizedFontNames.Greek, \"'\");\n LocalizedFontFamilies.Hebrew = \"'\".concat(LocalizedFontNames.Hebrew, \"'\");\n LocalizedFontFamilies.Hindi = \"'Nirmala UI'\";\n LocalizedFontFamilies.Japanese = \"'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka\";\n LocalizedFontFamilies.Korean = \"'Malgun Gothic', Gulim\";\n LocalizedFontFamilies.Selawik = \"'\".concat(LocalizedFontNames.Selawik, \"'\");\n LocalizedFontFamilies.Thai = \"'Leelawadee UI Web', 'Kmer UI'\";\n LocalizedFontFamilies.Vietnamese = \"'\".concat(LocalizedFontNames.Vietnamese, \"'\");\n LocalizedFontFamilies.WestEuropean = \"'\".concat(LocalizedFontNames.WestEuropean, \"'\");\n LocalizedFontFamilies.Armenian = \"'\".concat(LocalizedFontNames.Armenian, \"'\");\n LocalizedFontFamilies.Georgian = \"'\".concat(LocalizedFontNames.Georgian, \"'\");\n})(LocalizedFontFamilies || (LocalizedFontFamilies = {}));\n// Standard font sizes.\nexport var FontSizes;\n(function (FontSizes) {\n FontSizes.size10 = '10px';\n FontSizes.size12 = '12px';\n FontSizes.size14 = '14px';\n FontSizes.size16 = '16px';\n FontSizes.size18 = '18px';\n FontSizes.size20 = '20px';\n FontSizes.size24 = '24px';\n FontSizes.size28 = '28px';\n FontSizes.size32 = '32px';\n FontSizes.size42 = '42px';\n FontSizes.size68 = '68px';\n FontSizes.mini = '10px';\n FontSizes.xSmall = '10px';\n FontSizes.small = '12px';\n FontSizes.smallPlus = '12px';\n FontSizes.medium = '14px';\n FontSizes.mediumPlus = '16px';\n FontSizes.icon = '16px';\n FontSizes.large = '18px';\n FontSizes.xLarge = '20px';\n FontSizes.xLargePlus = '24px';\n FontSizes.xxLarge = '28px';\n FontSizes.xxLargePlus = '32px';\n FontSizes.superLarge = '42px';\n FontSizes.mega = '68px';\n})(FontSizes || (FontSizes = {}));\n// Standard font weights.\nexport var FontWeights;\n(function (FontWeights) {\n FontWeights.light = 100;\n FontWeights.semilight = 300;\n FontWeights.regular = 400;\n FontWeights.semibold = 600;\n FontWeights.bold = 700;\n})(FontWeights || (FontWeights = {}));\n// Standard Icon Sizes.\nexport var IconFontSizes;\n(function (IconFontSizes) {\n IconFontSizes.xSmall = '10px';\n IconFontSizes.small = '12px';\n IconFontSizes.medium = '16px';\n IconFontSizes.large = '20px';\n})(IconFontSizes || (IconFontSizes = {}));\n//# sourceMappingURL=FluentFonts.js.map","import { FontSizes, FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\n// Fallback fonts, if specified system or web fonts are unavailable.\nvar FontFamilyFallbacks = \"'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', 'Helvetica Neue', sans-serif\";\n// By default, we favor system fonts for the default.\n// All localized fonts use a web font and never use the system font.\nvar defaultFontFamily = \"'Segoe UI', '\".concat(LocalizedFontNames.WestEuropean, \"'\");\n// Mapping of language prefix to to font family.\nvar LanguageToFontMap = {\n ar: LocalizedFontFamilies.Arabic,\n bg: LocalizedFontFamilies.Cyrillic,\n cs: LocalizedFontFamilies.EastEuropean,\n el: LocalizedFontFamilies.Greek,\n et: LocalizedFontFamilies.EastEuropean,\n he: LocalizedFontFamilies.Hebrew,\n hi: LocalizedFontFamilies.Hindi,\n hr: LocalizedFontFamilies.EastEuropean,\n hu: LocalizedFontFamilies.EastEuropean,\n ja: LocalizedFontFamilies.Japanese,\n kk: LocalizedFontFamilies.EastEuropean,\n ko: LocalizedFontFamilies.Korean,\n lt: LocalizedFontFamilies.EastEuropean,\n lv: LocalizedFontFamilies.EastEuropean,\n pl: LocalizedFontFamilies.EastEuropean,\n ru: LocalizedFontFamilies.Cyrillic,\n sk: LocalizedFontFamilies.EastEuropean,\n 'sr-latn': LocalizedFontFamilies.EastEuropean,\n th: LocalizedFontFamilies.Thai,\n tr: LocalizedFontFamilies.EastEuropean,\n uk: LocalizedFontFamilies.Cyrillic,\n vi: LocalizedFontFamilies.Vietnamese,\n 'zh-hans': LocalizedFontFamilies.ChineseSimplified,\n 'zh-hant': LocalizedFontFamilies.ChineseTraditional,\n hy: LocalizedFontFamilies.Armenian,\n ka: LocalizedFontFamilies.Georgian,\n};\nfunction _fontFamilyWithFallbacks(fontFamily) {\n return \"\".concat(fontFamily, \", \").concat(FontFamilyFallbacks);\n}\n/**\n * If there is a localized font for this language, return that.\n * Returns undefined if there is no localized font for that language.\n */\nfunction _getLocalizedFontFamily(language) {\n for (var lang in LanguageToFontMap) {\n if (LanguageToFontMap.hasOwnProperty(lang) && language && lang.indexOf(language) === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return LanguageToFontMap[lang];\n }\n }\n return defaultFontFamily;\n}\nfunction _createFont(size, weight, fontFamily) {\n return {\n fontFamily: fontFamily,\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontSize: size,\n fontWeight: weight,\n };\n}\nexport function createFontStyles(localeCode) {\n var localizedFont = _getLocalizedFontFamily(localeCode);\n var fontFamilyWithFallback = _fontFamilyWithFallbacks(localizedFont);\n var fontStyles = {\n tiny: _createFont(FontSizes.mini, FontWeights.regular, fontFamilyWithFallback),\n xSmall: _createFont(FontSizes.xSmall, FontWeights.regular, fontFamilyWithFallback),\n small: _createFont(FontSizes.small, FontWeights.regular, fontFamilyWithFallback),\n smallPlus: _createFont(FontSizes.smallPlus, FontWeights.regular, fontFamilyWithFallback),\n medium: _createFont(FontSizes.medium, FontWeights.regular, fontFamilyWithFallback),\n mediumPlus: _createFont(FontSizes.mediumPlus, FontWeights.regular, fontFamilyWithFallback),\n large: _createFont(FontSizes.large, FontWeights.regular, fontFamilyWithFallback),\n xLarge: _createFont(FontSizes.xLarge, FontWeights.semibold, fontFamilyWithFallback),\n xLargePlus: _createFont(FontSizes.xLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n xxLarge: _createFont(FontSizes.xxLarge, FontWeights.semibold, fontFamilyWithFallback),\n xxLargePlus: _createFont(FontSizes.xxLargePlus, FontWeights.semibold, fontFamilyWithFallback),\n superLarge: _createFont(FontSizes.superLarge, FontWeights.semibold, fontFamilyWithFallback),\n mega: _createFont(FontSizes.mega, FontWeights.semibold, fontFamilyWithFallback),\n };\n return fontStyles;\n}\n//# sourceMappingURL=createFontStyles.js.map","import { fontFace } from '@fluentui/merge-styles';\nimport { FontWeights, LocalizedFontFamilies, LocalizedFontNames } from './FluentFonts';\nimport { createFontStyles } from './createFontStyles';\nimport { getLanguage, getWindow } from '@fluentui/utilities';\n// Default urls.\nvar DefaultBaseUrl = 'https://res-1.cdn.office.net/files/fabric-cdn-prod_20230815.002/assets';\n// Standard font styling.\nexport var DefaultFontStyles = createFontStyles(getLanguage());\nfunction _registerFontFace(fontFamily, url, fontWeight, localFontName) {\n fontFamily = \"'\".concat(fontFamily, \"'\");\n var localFontSrc = localFontName !== undefined ? \"local('\".concat(localFontName, \"'),\") : '';\n fontFace({\n fontFamily: fontFamily,\n src: localFontSrc + \"url('\".concat(url, \".woff2') format('woff2'),\") + \"url('\".concat(url, \".woff') format('woff')\"),\n fontWeight: fontWeight,\n fontStyle: 'normal',\n fontDisplay: 'swap',\n });\n}\nfunction _registerFontFaceSet(baseUrl, fontFamily, cdnFolder, cdnFontName, localFontName) {\n if (cdnFontName === void 0) { cdnFontName = 'segoeui'; }\n var urlBase = \"\".concat(baseUrl, \"/\").concat(cdnFolder, \"/\").concat(cdnFontName);\n _registerFontFace(fontFamily, urlBase + '-light', FontWeights.light, localFontName && localFontName + ' Light');\n _registerFontFace(fontFamily, urlBase + '-semilight', FontWeights.semilight, localFontName && localFontName + ' SemiLight');\n _registerFontFace(fontFamily, urlBase + '-regular', FontWeights.regular, localFontName);\n _registerFontFace(fontFamily, urlBase + '-semibold', FontWeights.semibold, localFontName && localFontName + ' SemiBold');\n _registerFontFace(fontFamily, urlBase + '-bold', FontWeights.bold, localFontName && localFontName + ' Bold');\n}\nexport function registerDefaultFontFaces(baseUrl) {\n if (baseUrl) {\n var fontUrl = \"\".concat(baseUrl, \"/fonts\");\n // Produce @font-face definitions for all supported web fonts.\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Thai, 'leelawadeeui-thai', 'leelawadeeui');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Arabic, 'segoeui-arabic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Cyrillic, 'segoeui-cyrillic');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.EastEuropean, 'segoeui-easteuropean');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Greek, 'segoeui-greek');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Hebrew, 'segoeui-hebrew');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Vietnamese, 'segoeui-vietnamese');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.WestEuropean, 'segoeui-westeuropean', 'segoeui', 'Segoe UI');\n _registerFontFaceSet(fontUrl, LocalizedFontFamilies.Selawik, 'selawik', 'selawik');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Armenian, 'segoeui-armenian');\n _registerFontFaceSet(fontUrl, LocalizedFontNames.Georgian, 'segoeui-georgian');\n // Leelawadee UI (Thai) does not have a 'light' weight, so we override\n // the font-face generated above to use the 'semilight' weight instead.\n _registerFontFace('Leelawadee UI Web', \"\".concat(fontUrl, \"/leelawadeeui-thai/leelawadeeui-semilight\"), FontWeights.light);\n // Leelawadee UI (Thai) does not have a 'semibold' weight, so we override\n // the font-face generated above to use the 'bold' weight instead.\n _registerFontFace('Leelawadee UI Web', \"\".concat(fontUrl, \"/leelawadeeui-thai/leelawadeeui-bold\"), FontWeights.semibold);\n }\n}\n/**\n * Reads the fontBaseUrl from window.FabricConfig.fontBaseUrl or falls back to a default.\n */\nfunction _getFontBaseUrl() {\n var _a, _b;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var fabricConfig = (_a = getWindow()) === null || _a === void 0 ? void 0 : _a.FabricConfig;\n return (_b = fabricConfig === null || fabricConfig === void 0 ? void 0 : fabricConfig.fontBaseUrl) !== null && _b !== void 0 ? _b : DefaultBaseUrl;\n}\n/**\n * Register the font faces.\n */\nregisterDefaultFontFaces(_getFontBaseUrl());\n//# sourceMappingURL=DefaultFontStyles.js.map","import { DefaultPalette } from './colors/index';\nimport { DefaultEffects } from './effects/index';\nimport { DefaultFontStyles } from './fonts/index';\nimport { mergeThemes } from './mergeThemes';\nimport { DefaultSpacing } from './spacing/index';\nimport { makeSemanticColors } from './utilities/makeSemanticColors';\n/**\n * Creates a custom theme definition.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function createTheme(theme, depComments) {\n if (theme === void 0) { theme = {}; }\n if (depComments === void 0) { depComments = false; }\n var isInverted = !!theme.isInverted;\n var baseTheme = {\n palette: DefaultPalette,\n effects: DefaultEffects,\n fonts: DefaultFontStyles,\n spacing: DefaultSpacing,\n isInverted: isInverted,\n disableGlobalClassNames: false,\n semanticColors: makeSemanticColors(DefaultPalette, DefaultEffects, undefined, isInverted, depComments),\n rtl: undefined,\n };\n return mergeThemes(baseTheme, theme);\n}\n//# sourceMappingURL=createTheme.js.map","export var HighContrastSelector = '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\nexport var HighContrastSelectorWhite = \n// eslint-disable-next-line @fluentui/max-len\n'@media screen and (-ms-high-contrast: black-on-white), screen and (forced-colors: active) and (prefers-color-scheme: light)';\nexport var HighContrastSelectorBlack = \n// eslint-disable-next-line @fluentui/max-len\n'@media screen and (-ms-high-contrast: white-on-black), screen and (forced-colors: active) and (prefers-color-scheme: dark)';\n/**\n * @deprecated Use `HighContrastSelector`\n */\nexport var EdgeChromiumHighContrastSelector = '@media screen and (-ms-high-contrast: active), screen and (forced-colors: active)';\nexport var ScreenWidthMinSmall = 320;\nexport var ScreenWidthMinMedium = 480;\nexport var ScreenWidthMinLarge = 640;\nexport var ScreenWidthMinXLarge = 1024;\nexport var ScreenWidthMinXXLarge = 1366;\nexport var ScreenWidthMinXXXLarge = 1920;\nexport var ScreenWidthMaxSmall = ScreenWidthMinMedium - 1;\nexport var ScreenWidthMaxMedium = ScreenWidthMinLarge - 1;\nexport var ScreenWidthMaxLarge = ScreenWidthMinXLarge - 1;\nexport var ScreenWidthMaxXLarge = ScreenWidthMinXXLarge - 1;\nexport var ScreenWidthMaxXXLarge = ScreenWidthMinXXXLarge - 1;\nexport var ScreenWidthMinUhfMobile = 768;\nexport function getScreenSelector(min, max) {\n var minSelector = typeof min === 'number' ? \" and (min-width: \".concat(min, \"px)\") : '';\n var maxSelector = typeof max === 'number' ? \" and (max-width: \".concat(max, \"px)\") : '';\n return \"@media only screen\".concat(minSelector).concat(maxSelector);\n}\n/**\n * The style which turns off high contrast adjustment in browsers.\n */\nexport function getHighContrastNoAdjustStyle() {\n return {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n };\n}\n/**\n * The style which turns off high contrast adjustment in (only) Edge Chromium browser.\n * @deprecated Use `getHighContrastNoAdjustStyle`\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getEdgeChromiumNoHighContrastAdjustSelector() {\n var _a;\n return _a = {},\n // eslint-disable-next-line deprecation/deprecation\n _a[EdgeChromiumHighContrastSelector] = {\n forcedColorAdjust: 'none',\n MsHighContrastAdjust: 'none',\n },\n _a;\n}\n//# sourceMappingURL=CommonStyles.js.map","export var ZIndexes;\n(function (ZIndexes) {\n ZIndexes.Nav = 1;\n /**\n * @deprecated Do not use\n */\n ZIndexes.ScrollablePane = 1;\n ZIndexes.FocusStyle = 1;\n ZIndexes.Coachmark = 1000;\n ZIndexes.Layer = 1000000;\n ZIndexes.KeytipLayer = 1000001;\n})(ZIndexes || (ZIndexes = {}));\n//# sourceMappingURL=zIndexes.js.map","import { HighContrastSelector } from './CommonStyles';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nimport { ZIndexes } from './zIndexes';\nexport function getFocusStyle(theme, insetOrOptions, position, highContrastStyle, borderColor, outlineColor, isFocusedOnly, borderRadius) {\n if (typeof insetOrOptions === 'number' || !insetOrOptions) {\n return _getFocusStyleInternal(theme, {\n inset: insetOrOptions,\n position: position,\n highContrastStyle: highContrastStyle,\n borderColor: borderColor,\n outlineColor: outlineColor,\n isFocusedOnly: isFocusedOnly,\n borderRadius: borderRadius,\n });\n }\n else {\n return _getFocusStyleInternal(theme, insetOrOptions);\n }\n}\nfunction _getFocusStyleInternal(theme, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n var borderRadius = options.borderRadius, _c = options.inset, inset = _c === void 0 ? 0 : _c, _d = options.width, width = _d === void 0 ? 1 : _d, _e = options.position, position = _e === void 0 ? 'relative' : _e, highContrastStyle = options.highContrastStyle, _f = options.borderColor, borderColor = _f === void 0 ? theme.palette.white : _f, _g = options.outlineColor, outlineColor = _g === void 0 ? theme.palette.neutralSecondary : _g, _h = options.isFocusedOnly, isFocusedOnly = _h === void 0 ? true : _h, pointerEvents = options.pointerEvents;\n return {\n // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style.\n outline: 'transparent',\n // Requirement because pseudo-element is absolutely positioned.\n position: position,\n selectors: (_a = {\n // Clear the focus border in Firefox.\n // Reference: http://stackoverflow.com/a/199319/1436671\n '::-moz-focus-inner': {\n border: '0',\n }\n },\n // When the element that uses this mixin is in a :focus state, add a pseudo-element to\n // create a border.\n _a[\".\".concat(IsFocusVisibleClassName, \" &\").concat(isFocusedOnly ? ':focus' : '', \":after, :host(.\").concat(IsFocusVisibleClassName, \") &\").concat(isFocusedOnly ? ':focus' : '', \":after\")] = {\n content: '\"\"',\n position: 'absolute',\n pointerEvents: pointerEvents,\n left: inset + 1,\n top: inset + 1,\n bottom: inset + 1,\n right: inset + 1,\n border: \"\".concat(width, \"px solid \").concat(borderColor),\n outline: \"\".concat(width, \"px solid \").concat(outlineColor),\n zIndex: ZIndexes.FocusStyle,\n borderRadius: borderRadius,\n selectors: (_b = {},\n _b[HighContrastSelector] = highContrastStyle,\n _b),\n },\n _a),\n };\n}\n/**\n * Generates style to clear browser specific focus styles.\n */\nexport function focusClear() {\n return {\n selectors: {\n '&::-moz-focus-inner': {\n // Clear the focus border in Firefox. Reference: http://stackoverflow.com/a/199319/1436671\n border: 0,\n },\n '&': {\n // Clear browser specific focus styles and use transparent as placeholder for focus style\n outline: 'transparent',\n },\n },\n };\n}\n/**\n * Generates a style which can be used to set a border on focus.\n *\n * @param theme - The theme object to use.\n * @param inset - The number of pixels to inset the border (default 0)\n * @param width - The border width in pixels (default 1)\n * @param color - Color of the outline (default `theme.palette.neutralSecondary`)\n * @returns The style object.\n */\nexport function getFocusOutlineStyle(theme, inset, width, color) {\n var _a;\n if (inset === void 0) { inset = 0; }\n if (width === void 0) { width = 1; }\n return {\n selectors: (_a = {},\n _a[\":global(\".concat(IsFocusVisibleClassName, \") &:focus\")] = {\n outline: \"\".concat(width, \" solid \").concat(color || theme.palette.neutralSecondary),\n outlineOffset: \"\".concat(-inset, \"px\"),\n },\n _a),\n };\n}\n/**\n * Generates text input border styles on focus.\n *\n * @param borderColor - Color of the border.\n * @param borderRadius - Radius of the border.\n * @param borderType - Type of the border.\n * @param borderPosition - Position of the border relative to the input element (default to -1\n * as it's the most common border width of the input element)\n * @returns The style object.\n */\nexport var getInputFocusStyle = function (borderColor, borderRadius, borderType, borderPosition) {\n var _a, _b, _c;\n if (borderType === void 0) { borderType = 'border'; }\n if (borderPosition === void 0) { borderPosition = -1; }\n var isBorderBottom = borderType === 'borderBottom';\n return {\n borderColor: borderColor,\n selectors: {\n ':after': (_a = {\n pointerEvents: 'none',\n content: \"''\",\n position: 'absolute',\n left: isBorderBottom ? 0 : borderPosition,\n top: borderPosition,\n bottom: borderPosition,\n right: isBorderBottom ? 0 : borderPosition\n },\n _a[borderType] = \"2px solid \".concat(borderColor),\n _a.borderRadius = borderRadius,\n _a.width = borderType === 'borderBottom' ? '100%' : undefined,\n _a.selectors = (_b = {},\n _b[HighContrastSelector] = (_c = {},\n _c[borderType === 'border' ? 'borderColor' : 'borderBottomColor'] = 'Highlight',\n _c),\n _b),\n _a),\n },\n };\n};\n//# sourceMappingURL=getFocusStyle.js.map","export var hiddenContentStyle = {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n padding: 0,\n border: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n};\n//# sourceMappingURL=hiddenContentStyle.js.map","import { __assign } from \"tslib\";\nimport { keyframes } from '@fluentui/merge-styles';\nvar DEFAULT_DURATION = '14s';\nvar DEFAULT_DELAY = '2s';\nvar DEFAULT_ITERATION_COUNT = '1';\nfunction _continuousPulseStepOne(beaconColorOne, innerDimension) {\n return {\n borderColor: beaconColorOne,\n borderWidth: '0px',\n width: innerDimension,\n height: innerDimension,\n };\n}\nfunction _continuousPulseStepTwo(borderWidth) {\n return {\n opacity: 1,\n borderWidth: borderWidth,\n };\n}\nfunction _continuousPulseStepThree() {\n return {\n opacity: 1,\n };\n}\nfunction _continuousPulseStepFour(beaconColorTwo, outerDimension) {\n return {\n borderWidth: '0',\n width: outerDimension,\n height: outerDimension,\n opacity: 0,\n borderColor: beaconColorTwo,\n };\n}\nfunction _continuousPulseStepFive(beaconColorOne, innerDimension) {\n return __assign(__assign({}, _continuousPulseStepOne(beaconColorOne, innerDimension)), {\n opacity: 0,\n });\n}\nfunction _continuousPulseAnimationDouble(beaconColorOne, beaconColorTwo, innerDimension, outerDimension, borderWidth) {\n return keyframes({\n '0%': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '1.42%': _continuousPulseStepTwo(borderWidth),\n '3.57%': _continuousPulseStepThree(),\n '7.14%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '8%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '29.99%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '30%': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '31.42%': _continuousPulseStepTwo(borderWidth),\n '33.57%': _continuousPulseStepThree(),\n '37.14%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '38%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '79.42%': _continuousPulseStepFive(beaconColorOne, innerDimension),\n '79.43': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '81.85': _continuousPulseStepTwo(borderWidth),\n '83.42': _continuousPulseStepThree(),\n '87%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '100%': {},\n });\n}\nfunction _continuousPulseAnimationSingle(beaconColorOne, beaconColorTwo, innerDimension, outerDimension, borderWidth) {\n return keyframes({\n '0%': _continuousPulseStepOne(beaconColorOne, innerDimension),\n '14.2%': _continuousPulseStepTwo(borderWidth),\n '35.7%': _continuousPulseStepThree(),\n '71.4%': _continuousPulseStepFour(beaconColorTwo, outerDimension),\n '100%': {},\n });\n}\nfunction _createDefaultAnimation(animationName, delayLength) {\n return {\n animationName: animationName,\n animationIterationCount: DEFAULT_ITERATION_COUNT,\n animationDuration: DEFAULT_DURATION,\n animationDelay: delayLength || DEFAULT_DELAY,\n };\n}\nexport var PulsingBeaconAnimationStyles = {\n continuousPulseAnimationDouble: _continuousPulseAnimationDouble,\n continuousPulseAnimationSingle: _continuousPulseAnimationSingle,\n createDefaultAnimation: _createDefaultAnimation,\n};\n//# sourceMappingURL=PulsingBeaconAnimationStyles.js.map","import { Stylesheet } from '@fluentui/merge-styles';\nimport { memoizeFunction } from '@fluentui/utilities';\n/**\n * Internal memoized function which simply takes in the class map and the\n * disable boolean. These immutable values can be memoized.\n */\nvar _getGlobalClassNames = memoizeFunction(function (classNames, disableGlobalClassNames) {\n var styleSheet = Stylesheet.getInstance();\n if (disableGlobalClassNames) {\n // disable global classnames\n return Object.keys(classNames).reduce(function (acc, className) {\n acc[className] = styleSheet.getClassName(classNames[className]);\n return acc;\n }, {});\n }\n // use global classnames\n return classNames;\n});\n/**\n * Checks for the `disableGlobalClassNames` property on the `theme` to determine if it should return `classNames`\n * Note that calls to this function are memoized.\n *\n * @param classNames - The collection of global class names that apply when the flag is false. Make sure to pass in\n * the same instance on each call to benefit from memoization.\n * @param theme - The theme to check the flag on\n * @param disableGlobalClassNames - Optional. Explicitly opt in/out of disabling global classnames. Defaults to false.\n */\nexport function getGlobalClassNames(classNames, theme, disableGlobalClassNames) {\n return _getGlobalClassNames(classNames, disableGlobalClassNames !== undefined ? disableGlobalClassNames : theme.disableGlobalClassNames);\n}\n//# sourceMappingURL=getGlobalClassNames.js.map","// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n// Store the theming state in __themeState__ global scope for reuse in the case of duplicate\n// load-themed-styles hosted on the page.\nvar _root = typeof window === 'undefined' ? global : window; // eslint-disable-line @typescript-eslint/no-explicit-any\n// Nonce string to inject into script tag if one provided. This is used in CSP (Content Security Policy).\nvar _styleNonce = _root && _root.CSPSettings && _root.CSPSettings.nonce;\nvar _themeState = initializeThemeState();\n/**\n * Matches theming tokens. For example, \"[theme: themeSlotName, default: #FFF]\" (including the quotes).\n */\nvar _themeTokenRegex = /[\\'\\\"]\\[theme:\\s*(\\w+)\\s*(?:\\,\\s*default:\\s*([\\\\\"\\']?[\\.\\,\\(\\)\\#\\-\\s\\w]*[\\.\\,\\(\\)\\#\\-\\w][\\\"\\']?))?\\s*\\][\\'\\\"]/g;\nvar now = function () {\n return typeof performance !== 'undefined' && !!performance.now ? performance.now() : Date.now();\n};\nfunction measure(func) {\n var start = now();\n func();\n var end = now();\n _themeState.perf.duration += end - start;\n}\n/**\n * initialize global state object\n */\nfunction initializeThemeState() {\n var state = _root.__themeState__ || {\n theme: undefined,\n lastStyleElement: undefined,\n registeredStyles: []\n };\n if (!state.runState) {\n state = __assign(__assign({}, state), { perf: {\n count: 0,\n duration: 0\n }, runState: {\n flushTimer: 0,\n mode: 0 /* sync */,\n buffer: []\n } });\n }\n if (!state.registeredThemableStyles) {\n state = __assign(__assign({}, state), { registeredThemableStyles: [] });\n }\n _root.__themeState__ = state;\n return state;\n}\n/**\n * Loads a set of style text. If it is registered too early, we will register it when the window.load\n * event is fired.\n * @param {string | ThemableArray} styles Themable style text to register.\n * @param {boolean} loadAsync When true, always load styles in async mode, irrespective of current sync mode.\n */\nexport function loadStyles(styles, loadAsync) {\n if (loadAsync === void 0) { loadAsync = false; }\n measure(function () {\n var styleParts = Array.isArray(styles) ? styles : splitStyles(styles);\n var _a = _themeState.runState, mode = _a.mode, buffer = _a.buffer, flushTimer = _a.flushTimer;\n if (loadAsync || mode === 1 /* async */) {\n buffer.push(styleParts);\n if (!flushTimer) {\n _themeState.runState.flushTimer = asyncLoadStyles();\n }\n }\n else {\n applyThemableStyles(styleParts);\n }\n });\n}\n/**\n * Allows for customizable loadStyles logic. e.g. for server side rendering application\n * @param {(processedStyles: string, rawStyles?: string | ThemableArray) => void}\n * a loadStyles callback that gets called when styles are loaded or reloaded\n */\nexport function configureLoadStyles(loadStylesFn) {\n _themeState.loadStyles = loadStylesFn;\n}\n/**\n * Configure run mode of load-themable-styles\n * @param mode load-themable-styles run mode, async or sync\n */\nexport function configureRunMode(mode) {\n _themeState.runState.mode = mode;\n}\n/**\n * external code can call flush to synchronously force processing of currently buffered styles\n */\nexport function flush() {\n measure(function () {\n var styleArrays = _themeState.runState.buffer.slice();\n _themeState.runState.buffer = [];\n var mergedStyleArray = [].concat.apply([], styleArrays);\n if (mergedStyleArray.length > 0) {\n applyThemableStyles(mergedStyleArray);\n }\n });\n}\n/**\n * register async loadStyles\n */\nfunction asyncLoadStyles() {\n return setTimeout(function () {\n _themeState.runState.flushTimer = 0;\n flush();\n }, 0);\n}\n/**\n * Loads a set of style text. If it is registered too early, we will register it when the window.load event\n * is fired.\n * @param {string} styleText Style to register.\n * @param {IStyleRecord} styleRecord Existing style record to re-apply.\n */\nfunction applyThemableStyles(stylesArray, styleRecord) {\n if (_themeState.loadStyles) {\n _themeState.loadStyles(resolveThemableArray(stylesArray).styleString, stylesArray);\n }\n else {\n registerStyles(stylesArray);\n }\n}\n/**\n * Registers a set theme tokens to find and replace. If styles were already registered, they will be\n * replaced.\n * @param {theme} theme JSON object of theme tokens to values.\n */\nexport function loadTheme(theme) {\n _themeState.theme = theme;\n // reload styles.\n reloadStyles();\n}\n/**\n * Clear already registered style elements and style records in theme_State object\n * @param option - specify which group of registered styles should be cleared.\n * Default to be both themable and non-themable styles will be cleared\n */\nexport function clearStyles(option) {\n if (option === void 0) { option = 3 /* all */; }\n if (option === 3 /* all */ || option === 2 /* onlyNonThemable */) {\n clearStylesInternal(_themeState.registeredStyles);\n _themeState.registeredStyles = [];\n }\n if (option === 3 /* all */ || option === 1 /* onlyThemable */) {\n clearStylesInternal(_themeState.registeredThemableStyles);\n _themeState.registeredThemableStyles = [];\n }\n}\nfunction clearStylesInternal(records) {\n records.forEach(function (styleRecord) {\n var styleElement = styleRecord && styleRecord.styleElement;\n if (styleElement && styleElement.parentElement) {\n styleElement.parentElement.removeChild(styleElement);\n }\n });\n}\n/**\n * Reloads styles.\n */\nfunction reloadStyles() {\n if (_themeState.theme) {\n var themableStyles = [];\n for (var _i = 0, _a = _themeState.registeredThemableStyles; _i < _a.length; _i++) {\n var styleRecord = _a[_i];\n themableStyles.push(styleRecord.themableStyle);\n }\n if (themableStyles.length > 0) {\n clearStyles(1 /* onlyThemable */);\n applyThemableStyles([].concat.apply([], themableStyles));\n }\n }\n}\n/**\n * Find theme tokens and replaces them with provided theme values.\n * @param {string} styles Tokenized styles to fix.\n */\nexport function detokenize(styles) {\n if (styles) {\n styles = resolveThemableArray(splitStyles(styles)).styleString;\n }\n return styles;\n}\n/**\n * Resolves ThemingInstruction objects in an array and joins the result into a string.\n * @param {ThemableArray} splitStyleArray ThemableArray to resolve and join.\n */\nfunction resolveThemableArray(splitStyleArray) {\n var theme = _themeState.theme;\n var themable = false;\n // Resolve the array of theming instructions to an array of strings.\n // Then join the array to produce the final CSS string.\n var resolvedArray = (splitStyleArray || []).map(function (currentValue) {\n var themeSlot = currentValue.theme;\n if (themeSlot) {\n themable = true;\n // A theming annotation. Resolve it.\n var themedValue = theme ? theme[themeSlot] : undefined;\n var defaultValue = currentValue.defaultValue || 'inherit';\n // Warn to console if we hit an unthemed value even when themes are provided, but only if \"DEBUG\" is true.\n // Allow the themedValue to be undefined to explicitly request the default value.\n if (theme &&\n !themedValue &&\n console &&\n !(themeSlot in theme) &&\n typeof DEBUG !== 'undefined' &&\n DEBUG) {\n console.warn(\"Theming value not provided for \\\"\".concat(themeSlot, \"\\\". Falling back to \\\"\").concat(defaultValue, \"\\\".\"));\n }\n return themedValue || defaultValue;\n }\n else {\n // A non-themable string. Preserve it.\n return currentValue.rawString;\n }\n });\n return {\n styleString: resolvedArray.join(''),\n themable: themable\n };\n}\n/**\n * Split tokenized CSS into an array of strings and theme specification objects\n * @param {string} styles Tokenized styles to split.\n */\nexport function splitStyles(styles) {\n var result = [];\n if (styles) {\n var pos = 0; // Current position in styles.\n var tokenMatch = void 0;\n while ((tokenMatch = _themeTokenRegex.exec(styles))) {\n var matchIndex = tokenMatch.index;\n if (matchIndex > pos) {\n result.push({\n rawString: styles.substring(pos, matchIndex)\n });\n }\n result.push({\n theme: tokenMatch[1],\n defaultValue: tokenMatch[2] // May be undefined\n });\n // index of the first character after the current match\n pos = _themeTokenRegex.lastIndex;\n }\n // Push the rest of the string after the last match.\n result.push({\n rawString: styles.substring(pos)\n });\n }\n return result;\n}\n/**\n * Registers a set of style text. If it is registered too early, we will register it when the\n * window.load event is fired.\n * @param {ThemableArray} styleArray Array of IThemingInstruction objects to register.\n * @param {IStyleRecord} styleRecord May specify a style Element to update.\n */\nfunction registerStyles(styleArray) {\n if (typeof document === 'undefined') {\n return;\n }\n var head = document.getElementsByTagName('head')[0];\n var styleElement = document.createElement('style');\n var _a = resolveThemableArray(styleArray), styleString = _a.styleString, themable = _a.themable;\n styleElement.setAttribute('data-load-themed-styles', 'true');\n if (_styleNonce) {\n styleElement.setAttribute('nonce', _styleNonce);\n }\n styleElement.appendChild(document.createTextNode(styleString));\n _themeState.perf.count++;\n head.appendChild(styleElement);\n var ev = document.createEvent('HTMLEvents');\n ev.initEvent('styleinsert', true /* bubbleEvent */, false /* cancelable */);\n ev.args = {\n newStyle: styleElement\n };\n document.dispatchEvent(ev);\n var record = {\n styleElement: styleElement,\n themableStyle: styleArray\n };\n if (themable) {\n _themeState.registeredThemableStyles.push(record);\n }\n else {\n _themeState.registeredStyles.push(record);\n }\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { Customizations, getWindow } from '@fluentui/utilities';\nimport { loadTheme as legacyLoadTheme } from '@microsoft/load-themed-styles';\nimport { createTheme } from '@fluentui/theme';\nexport { createTheme } from '@fluentui/theme';\nvar _theme = createTheme({});\nvar _onThemeChangeCallbacks = [];\nexport var ThemeSettingName = 'theme';\nexport function initializeThemeInCustomizations() {\n var _a;\n var _b, _c;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var win = getWindow();\n if ((_b = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _b === void 0 ? void 0 : _b.legacyTheme) {\n // does everything the `else` clause does and more, such as invoke legacy theming\n loadTheme(win.FabricConfig.legacyTheme);\n }\n else if (!Customizations.getSettings([ThemeSettingName]).theme) {\n if ((_c = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _c === void 0 ? void 0 : _c.theme) {\n _theme = createTheme(win.FabricConfig.theme);\n }\n // Set the default theme.\n Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n }\n}\ninitializeThemeInCustomizations();\n/**\n * Gets the theme object\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function getTheme(depComments) {\n if (depComments === void 0) { depComments = false; }\n if (depComments === true) {\n _theme = createTheme({}, depComments);\n }\n return _theme;\n}\n/**\n * Registers a callback that gets called whenever the theme changes.\n * This should only be used when the component cannot automatically get theme changes through its state.\n * This will not register duplicate callbacks.\n */\nexport function registerOnThemeChangeCallback(callback) {\n if (_onThemeChangeCallbacks.indexOf(callback) === -1) {\n _onThemeChangeCallbacks.push(callback);\n }\n}\n/**\n * See registerOnThemeChangeCallback().\n * Removes previously registered callbacks.\n */\nexport function removeOnThemeChangeCallback(callback) {\n var i = _onThemeChangeCallbacks.indexOf(callback);\n if (i === -1) {\n return;\n }\n _onThemeChangeCallbacks.splice(i, 1);\n}\n/**\n * Applies the theme, while filling in missing slots.\n * @param theme - Partial theme object.\n * @param depComments - Whether to include deprecated tags as comments for deprecated slots.\n */\nexport function loadTheme(theme, depComments) {\n var _a;\n if (depComments === void 0) { depComments = false; }\n _theme = createTheme(theme, depComments);\n // Invoke the legacy method of theming the page as well.\n legacyLoadTheme(__assign(__assign(__assign(__assign({}, _theme.palette), _theme.semanticColors), _theme.effects), _loadFonts(_theme)));\n Customizations.applySettings((_a = {}, _a[ThemeSettingName] = _theme, _a));\n _onThemeChangeCallbacks.forEach(function (callback) {\n try {\n callback(_theme);\n }\n catch (e) {\n // don't let a bad callback break everything else\n }\n });\n return _theme;\n}\n/**\n * Loads font variables into a JSON object.\n * @param theme - The theme object\n */\nfunction _loadFonts(theme) {\n var lines = {};\n for (var _i = 0, _a = Object.keys(theme.fonts); _i < _a.length; _i++) {\n var fontName = _a[_i];\n var font = theme.fonts[fontName];\n for (var _b = 0, _c = Object.keys(font); _b < _c.length; _b++) {\n var propName = _c[_b];\n var name_1 = fontName + propName.charAt(0).toUpperCase() + propName.slice(1);\n var value = font[propName];\n if (propName === 'fontSize' && typeof value === 'number') {\n // if it's a number, convert it to px by default like our theming system does\n value = value + 'px';\n }\n lines[name_1] = value;\n }\n }\n return lines;\n}\n//# sourceMappingURL=theme.js.map","// This file mimics styles and mixins from _General.Mixins.scss\nexport var normalize = {\n boxShadow: 'none',\n margin: 0,\n padding: 0,\n boxSizing: 'border-box',\n};\nexport var noWrap = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n};\n//# sourceMappingURL=GeneralStyles.js.map","/**\n * Generates placeholder style for each of the browsers supported by `@fluentui/react`.\n * @param styles - The style to use.\n * @returns The placeholder style object for each browser depending on the placeholder directive it uses.\n */\nexport function getPlaceholderStyles(styles) {\n return {\n selectors: {\n '::placeholder': styles,\n ':-ms-input-placeholder': styles,\n '::-ms-input-placeholder': styles, // Edge\n },\n };\n}\n//# sourceMappingURL=getPlaceholderStyles.js.map","import { buildClassMap } from '../utilities/index';\nimport { AnimationStyles } from '../styles/index';\n/**\n * {@docCategory AnimationClassNames}\n */\nexport var AnimationClassNames = buildClassMap(AnimationStyles);\n//# sourceMappingURL=AnimationClassNames.js.map","export var FLUENT_CDN_BASE_URL = 'https://res.cdn.office.net/files/fabric-cdn-prod_20241029.001';\n//# sourceMappingURL=cdn.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/style-utilities', '8.11.4');\n//# sourceMappingURL=version.js.map","export { AnimationClassNames, FontClassNames, ColorClassNames } from './classNames/index';\nexport { AnimationStyles, AnimationVariables, DefaultPalette, DefaultEffects, DefaultFontStyles, registerDefaultFontFaces, FontSizes, FontWeights, IconFontSizes, createFontStyles, hiddenContentStyle, PulsingBeaconAnimationStyles, getGlobalClassNames, \n// eslint-disable-next-line deprecation/deprecation\ngetFocusStyle, getFocusOutlineStyle, getInputFocusStyle, getThemedContext, focusClear, ThemeSettingName, getTheme, loadTheme, createTheme, registerOnThemeChangeCallback, removeOnThemeChangeCallback, HighContrastSelector, HighContrastSelectorWhite, HighContrastSelectorBlack, \n// eslint-disable-next-line deprecation/deprecation\nEdgeChromiumHighContrastSelector, ScreenWidthMinSmall, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinXXXLarge, ScreenWidthMaxSmall, ScreenWidthMaxMedium, ScreenWidthMaxLarge, ScreenWidthMaxXLarge, ScreenWidthMaxXXLarge, ScreenWidthMinUhfMobile, getScreenSelector, getHighContrastNoAdjustStyle, \n// eslint-disable-next-line deprecation/deprecation\ngetEdgeChromiumNoHighContrastAdjustSelector, normalize, noWrap, getFadedOverflowStyle, getPlaceholderStyles, ZIndexes, } from './styles/index';\nexport { buildClassMap, getIcon, registerIcons, registerIconAlias, unregisterIcons, setIconOptions, getIconClassName, } from './utilities/index';\nexport { InjectionMode, Stylesheet, concatStyleSets, concatStyleSetsWithProps, fontFace, keyframes, mergeStyleSets, mergeStyles, } from './MergeStyles';\nexport { FLUENT_CDN_BASE_URL } from './cdn';\nimport './version';\n// Ensure theme is initialized when this package is referenced.\nimport { initializeThemeInCustomizations } from './styles/theme';\ninitializeThemeInCustomizations();\n//# sourceMappingURL=index.js.map","import { __rest } from \"tslib\";\nimport { concatStyleSets, getTheme, HighContrastSelector, keyframes, PulsingBeaconAnimationStyles, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nvar DEFAULT_PERSONA_SIZE = '32px';\nvar COMPACT_PERSONA_SIZE = '16px';\nvar DEFAULT_ICON_SIZE = '16px';\nvar COMPACT_ICON_SIZE = '13px';\nvar ANIMATION_INNER_DIMENSION = '4px';\nvar ANIMATION_OUTER_DIMENSION = '28px';\nvar ANIMATION_BORDER_WIDTH = '4px';\nvar fadeIn = memoizeFunction(function () {\n return keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n });\n});\nvar slideIn = memoizeFunction(function () {\n return keyframes({\n from: { transform: 'translateX(-10px)' },\n to: { transform: 'translateX(0)' },\n });\n});\nexport var getStyles = memoizeFunction(function (theme, customStyles, animateBeaconSignal, beaconColorOne, beaconColorTwo, isCompact) {\n var _a;\n if (theme === void 0) { theme = getTheme(); }\n var continuousPulse = PulsingBeaconAnimationStyles.continuousPulseAnimationSingle(beaconColorOne ? beaconColorOne : theme.palette.themePrimary, beaconColorTwo ? beaconColorTwo : theme.palette.themeTertiary, ANIMATION_INNER_DIMENSION, ANIMATION_OUTER_DIMENSION, ANIMATION_BORDER_WIDTH);\n var continuousPulseAnimation = {\n animationName: continuousPulse,\n animationIterationCount: '1',\n animationDuration: '.8s',\n zIndex: 1,\n };\n var slideInAnimation = {\n animationName: slideIn(),\n animationIterationCount: '1',\n animationDuration: '.5s',\n };\n var fadeInAnimation = {\n animationName: fadeIn(),\n animationIterationCount: '1',\n animationDuration: '.5s',\n };\n var ActivityItemStyles = {\n root: [\n theme.fonts.small,\n {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n boxSizing: 'border-box',\n color: theme.palette.neutralSecondary,\n },\n isCompact && animateBeaconSignal && fadeInAnimation,\n ],\n pulsingBeacon: [\n {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: '0px',\n height: '0px',\n borderRadius: '225px',\n borderStyle: 'solid',\n opacity: 0,\n },\n isCompact && animateBeaconSignal && continuousPulseAnimation,\n ],\n isCompactRoot: {\n alignItems: 'center',\n },\n personaContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n minWidth: DEFAULT_PERSONA_SIZE,\n width: DEFAULT_PERSONA_SIZE,\n height: DEFAULT_PERSONA_SIZE,\n },\n isCompactPersonaContainer: {\n display: 'inline-flex',\n flexWrap: 'nowrap',\n flexBasis: 'auto',\n height: COMPACT_PERSONA_SIZE,\n width: 'auto',\n minWidth: '0',\n paddingRight: '6px',\n },\n activityTypeIcon: {\n height: DEFAULT_PERSONA_SIZE,\n fontSize: DEFAULT_ICON_SIZE,\n lineHeight: DEFAULT_ICON_SIZE,\n marginTop: '3px',\n },\n isCompactIcon: {\n height: COMPACT_PERSONA_SIZE,\n minWidth: COMPACT_PERSONA_SIZE,\n fontSize: COMPACT_ICON_SIZE,\n lineHeight: COMPACT_ICON_SIZE,\n color: theme.palette.themePrimary,\n marginTop: '1px',\n position: 'relative',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n selectors: {\n '.ms-Persona-imageArea': {\n margin: '-2px 0 0 -2px',\n border: '2px solid' + theme.palette.white,\n borderRadius: '50%',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: 'none',\n margin: '0',\n },\n _a),\n },\n },\n },\n activityPersona: {\n display: 'block',\n },\n doublePersona: {\n selectors: {\n ':first-child': {\n alignSelf: 'flex-end',\n },\n },\n },\n isCompactPersona: {\n display: 'inline-block',\n width: '8px',\n minWidth: '8px',\n overflow: 'visible',\n },\n activityContent: [\n {\n padding: '0 8px',\n },\n isCompact && animateBeaconSignal && slideInAnimation,\n ],\n activityText: {\n display: 'inline',\n },\n isCompactContent: {\n flex: '1',\n padding: '0 4px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflowX: 'hidden',\n },\n commentText: {\n color: theme.palette.neutralPrimary,\n },\n timeStamp: [\n theme.fonts.tiny,\n {\n fontWeight: 400,\n color: theme.palette.neutralSecondary,\n },\n ],\n isCompactTimeStamp: {\n display: 'inline-block',\n paddingLeft: '0.3em',\n fontSize: '1em',\n },\n };\n var _b = customStyles || {}, __shadowConfig__ = _b.__shadowConfig__, restStyles = __rest(_b, [\"__shadowConfig__\"]);\n if (__shadowConfig__) {\n return concatStyleSets(__shadowConfig__, ActivityItemStyles, restStyles);\n }\n return concatStyleSets(ActivityItemStyles, customStyles);\n});\n//# sourceMappingURL=ActivityItem.styles.js.map","import { mergeStyles } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nexport var getClassNames = memoizeFunction(function (styles, className, activityPersonas, isCompact) {\n return {\n root: mergeStyles(styles.__shadowConfig__, 'ms-ActivityItem', className, styles.root, isCompact && styles.isCompactRoot),\n pulsingBeacon: mergeStyles(styles.__shadowConfig__, 'ms-ActivityItem-pulsingBeacon', styles.pulsingBeacon),\n personaContainer: mergeStyles(styles.__shadowConfig__, 'ms-ActivityItem-personaContainer', styles.personaContainer, isCompact && styles.isCompactPersonaContainer),\n activityPersona: mergeStyles(styles.__shadowConfig__, 'ms-ActivityItem-activityPersona', styles.activityPersona, isCompact && styles.isCompactPersona, !isCompact && activityPersonas && activityPersonas.length === 2 && styles.doublePersona),\n activityTypeIcon: mergeStyles(styles.__shadowConfig__, 'ms-ActivityItem-activityTypeIcon', styles.activityTypeIcon, isCompact && styles.isCompactIcon),\n activityContent: mergeStyles(styles.__shadowConfig__, 'ms-ActivityItem-activityContent', styles.activityContent, isCompact && styles.isCompactContent),\n activityText: mergeStyles(styles.__shadowConfig__, 'ms-ActivityItem-activityText', styles.activityText),\n commentText: mergeStyles(styles.__shadowConfig__, 'ms-ActivityItem-commentText', styles.commentText),\n timeStamp: mergeStyles(styles.__shadowConfig__, 'ms-ActivityItem-timeStamp', styles.timeStamp, isCompact && styles.isCompactTimeStamp),\n };\n});\n//# sourceMappingURL=ActivityItem.classNames.js.map","export var DirectionalHint = {\n /**\n * Appear above the target element, with the left edges of the callout and target aligning.\n */\n topLeftEdge: 0,\n /**\n * Appear above the target element, with the centers of the callout and target aligning.\n */\n topCenter: 1,\n /**\n * Appear above the target element, with the right edges of the callout and target aligning.\n */\n topRightEdge: 2,\n /**\n * Appear above the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n topAutoEdge: 3,\n /**\n * Appear below the target element, with the left edges of the callout and target aligning.\n */\n bottomLeftEdge: 4,\n /**\n * Appear below the target element, with the centers of the callout and target aligning.\n */\n bottomCenter: 5,\n /**\n * Appear below the target element, with the right edges of the callout and target aligning.\n */\n bottomRightEdge: 6,\n /**\n * Appear below the target element, aligning with the target element such that the callout tends toward\n * the center of the screen.\n */\n bottomAutoEdge: 7,\n /**\n * Appear to the left of the target element, with the top edges of the callout and target aligning.\n */\n leftTopEdge: 8,\n /**\n * Appear to the left of the target element, with the centers of the callout and target aligning.\n */\n leftCenter: 9,\n /**\n * Appear to the left of the target element, with the bottom edges of the callout and target aligning.\n */\n leftBottomEdge: 10,\n /**\n * Appear to the right of the target element, with the top edges of the callout and target aligning.\n */\n rightTopEdge: 11,\n /**\n * Appear to the right of the target element, with the centers of the callout and target aligning.\n */\n rightCenter: 12,\n /**\n * Appear to the right of the target element, with the bottom edges of the callout and target aligning.\n */\n rightBottomEdge: 13,\n};\n//# sourceMappingURL=DirectionalHint.js.map","export var RectangleEdge;\n(function (RectangleEdge) {\n RectangleEdge[RectangleEdge[\"top\"] = 1] = \"top\";\n RectangleEdge[RectangleEdge[\"bottom\"] = -1] = \"bottom\";\n RectangleEdge[RectangleEdge[\"left\"] = 2] = \"left\";\n RectangleEdge[RectangleEdge[\"right\"] = -2] = \"right\";\n})(RectangleEdge || (RectangleEdge = {}));\nexport var Position;\n(function (Position) {\n Position[Position[\"top\"] = 0] = \"top\";\n Position[Position[\"bottom\"] = 1] = \"bottom\";\n Position[Position[\"start\"] = 2] = \"start\";\n Position[Position[\"end\"] = 3] = \"end\";\n})(Position || (Position = {}));\n//# sourceMappingURL=positioning.types.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { getScrollbarWidth, getRTL, getWindow } from '../../Utilities';\nimport { RectangleEdge } from './positioning.types';\nimport { Rectangle } from '../../Utilities';\nfunction _createPositionData(targetEdge, alignmentEdge, isAuto) {\n return {\n targetEdge: targetEdge,\n alignmentEdge: alignmentEdge,\n isAuto: isAuto,\n };\n}\n// Currently the beakPercent is set to 50 for all positions meaning that it should tend to the center of the target\nvar DirectionalDictionary = (_a = {},\n _a[DirectionalHint.topLeftEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.left),\n _a[DirectionalHint.topCenter] = _createPositionData(RectangleEdge.top),\n _a[DirectionalHint.topRightEdge] = _createPositionData(RectangleEdge.top, RectangleEdge.right),\n _a[DirectionalHint.topAutoEdge] = _createPositionData(RectangleEdge.top, undefined, true),\n _a[DirectionalHint.bottomLeftEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.left),\n _a[DirectionalHint.bottomCenter] = _createPositionData(RectangleEdge.bottom),\n _a[DirectionalHint.bottomRightEdge] = _createPositionData(RectangleEdge.bottom, RectangleEdge.right),\n _a[DirectionalHint.bottomAutoEdge] = _createPositionData(RectangleEdge.bottom, undefined, true),\n _a[DirectionalHint.leftTopEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.top),\n _a[DirectionalHint.leftCenter] = _createPositionData(RectangleEdge.left),\n _a[DirectionalHint.leftBottomEdge] = _createPositionData(RectangleEdge.left, RectangleEdge.bottom),\n _a[DirectionalHint.rightTopEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.top),\n _a[DirectionalHint.rightCenter] = _createPositionData(RectangleEdge.right),\n _a[DirectionalHint.rightBottomEdge] = _createPositionData(RectangleEdge.right, RectangleEdge.bottom),\n _a);\nfunction _isRectangleWithinBounds(rect, boundingRect) {\n if (rect.top < boundingRect.top) {\n return false;\n }\n if (rect.bottom > boundingRect.bottom) {\n return false;\n }\n if (rect.left < boundingRect.left) {\n return false;\n }\n if (rect.right > boundingRect.right) {\n return false;\n }\n return true;\n}\n/**\n * Gets all of the edges of a rectangle that are outside of the given bounds.\n * If there are no out of bounds edges it returns an empty array.\n */\nfunction _getOutOfBoundsEdges(rect, boundingRect) {\n var outOfBounds = [];\n if (rect.top < boundingRect.top) {\n outOfBounds.push(RectangleEdge.top);\n }\n if (rect.bottom > boundingRect.bottom) {\n outOfBounds.push(RectangleEdge.bottom);\n }\n if (rect.left < boundingRect.left) {\n outOfBounds.push(RectangleEdge.left);\n }\n if (rect.right > boundingRect.right) {\n outOfBounds.push(RectangleEdge.right);\n }\n return outOfBounds;\n}\nfunction _getEdgeValue(rect, edge) {\n return rect[RectangleEdge[edge]];\n}\nfunction _setEdgeValue(rect, edge, value) {\n rect[RectangleEdge[edge]] = value;\n return rect;\n}\n/**\n * Returns the middle value of an edge. Only returns 1 value rather than xy coordinates as\n * the itself already contains the other coordinate.\n * For instance, a bottom edge's current value is it's y coordinate, so the number returned is the x.\n */\nfunction _getCenterValue(rect, edge) {\n var edges = _getFlankingEdges(edge);\n return (_getEdgeValue(rect, edges.positiveEdge) + _getEdgeValue(rect, edges.negativeEdge)) / 2;\n}\n/**\n * Flips the value depending on the edge.\n * If the edge is a \"positive\" edge, Top or Left, then the value should stay as it is.\n * If the edge is a \"negative\" edge, Bottom or Right, then the value should be flipped.\n * This is to account for the fact that the coordinates are effectively reserved in certain cases for the\n * \"negative\" edges.\n *\n * For example, when testing to see if a bottom edge 1 is within the bounds of another bottom edge 2:\n * If edge 1 is greater than edge 2 then it is out of bounds. This is reversed for top edge 1 and top edge 2.\n * If top edge 1 is less than edge 2 then it is out of bounds.\n */\nfunction _getRelativeEdgeValue(edge, value) {\n if (edge > 0) {\n return value;\n }\n else {\n return value * -1;\n }\n}\nfunction _getRelativeRectEdgeValue(edge, rect) {\n return _getRelativeEdgeValue(edge, _getEdgeValue(rect, edge));\n}\nfunction _getRelativeEdgeDifference(rect, hostRect, edge) {\n var edgeDifference = _getEdgeValue(rect, edge) - _getEdgeValue(hostRect, edge);\n return _getRelativeEdgeValue(edge, edgeDifference);\n}\n/**\n * Moves the edge of a rectangle to the value given. It only moves the edge in a linear direction based on that edge.\n * For example, if it's a bottom edge it will only change y coordinates.\n * if maintainSize is set to false, it will only adjust the specified edge value\n */\nfunction _moveEdge(rect, edge, newValue, maintainSize) {\n if (maintainSize === void 0) { maintainSize = true; }\n var difference = _getEdgeValue(rect, edge) - newValue;\n var returnRect = _setEdgeValue(rect, edge, newValue);\n if (maintainSize) {\n returnRect = _setEdgeValue(rect, edge * -1, _getEdgeValue(rect, edge * -1) - difference);\n }\n return returnRect;\n}\n/**\n * Aligns the edge on the passed in rect to the target. If there is a gap then it will have that space between the two.\n */\nfunction _alignEdges(rect, target, edge, gap) {\n if (gap === void 0) { gap = 0; }\n return _moveEdge(rect, edge, _getEdgeValue(target, edge) + _getRelativeEdgeValue(edge, gap));\n}\n/**\n * Aligns the targetEdge on the passed in target to the rects corresponding opposite edge.\n * For instance if targetEdge is bottom, then the rects top will be moved to match it.\n */\nfunction _alignOppositeEdges(rect, target, targetEdge, gap) {\n if (gap === void 0) { gap = 0; }\n var oppositeEdge = targetEdge * -1;\n var adjustedGap = _getRelativeEdgeValue(oppositeEdge, gap);\n return _moveEdge(rect, targetEdge * -1, _getEdgeValue(target, targetEdge) + adjustedGap);\n}\n/**\n * Tests to see if the given edge is within the bounds of the given rectangle.\n */\nfunction _isEdgeInBounds(rect, bounds, edge) {\n var adjustedRectValue = _getRelativeRectEdgeValue(edge, rect);\n return adjustedRectValue > _getRelativeRectEdgeValue(edge, bounds);\n}\n/**\n * Returns a measure of how much a rectangle is out of bounds for a given alignment;\n * this can be used to compare which rectangle is more or less out of bounds.\n * A value of 0 means the rectangle is entirely in bounds\n */\nfunction _getOutOfBoundsDegree(rect, bounds) {\n var breakingEdges = _getOutOfBoundsEdges(rect, bounds);\n var total = 0;\n for (var _i = 0, breakingEdges_1 = breakingEdges; _i < breakingEdges_1.length; _i++) {\n var edge = breakingEdges_1[_i];\n total += Math.pow(_getRelativeEdgeDifference(rect, bounds, edge), 2);\n }\n return total;\n}\n/**\n * Returns true if scroll-resizing will move the target edge within the bounding rectangle,\n * and there is room between the target edge and the bounding edge for scrolled content.\n * Returns false otherwise.\n */\nfunction _canScrollResizeToFitEdge(target, bounding, targetEdge, minimumScrollResizeHeight) {\n if (minimumScrollResizeHeight === void 0) { minimumScrollResizeHeight = 200; }\n // Only scroll vertically to fit - cannot scroll to fit right or left edges\n if (targetEdge !== RectangleEdge.bottom && targetEdge !== RectangleEdge.top) {\n return false;\n }\n return _getRelativeEdgeDifference(target, bounding, targetEdge) >= minimumScrollResizeHeight;\n}\n/**\n * Attempts to move the rectangle through various sides of the target to find a place to fit.\n * If no fit is found, the least bad option should be returned.\n */\nfunction _flipToFit(rect, target, bounding, positionData, shouldScroll, minimumScrollResizeHeight, gap) {\n if (shouldScroll === void 0) { shouldScroll = false; }\n if (gap === void 0) { gap = 0; }\n var directions = [\n RectangleEdge.left,\n RectangleEdge.right,\n RectangleEdge.bottom,\n RectangleEdge.top,\n ];\n // In RTL page, RectangleEdge.right has a higher priority than RectangleEdge.left, so the order should be updated.\n if (getRTL()) {\n directions[0] *= -1;\n directions[1] *= -1;\n }\n var currentEstimate = rect;\n var currentEdge = positionData.targetEdge;\n var currentAlignment = positionData.alignmentEdge;\n // keep track of least bad option, in case no sides fit\n var oobDegree;\n var bestEdge = currentEdge;\n var bestAlignment = currentAlignment;\n // Keep switching sides until one is found with enough space.\n // If all sides don't fit then return the unmodified element.\n for (var i = 0; i < 4; i++) {\n if (_isEdgeInBounds(currentEstimate, bounding, currentEdge)) {\n // Edge is in bounds, return current estimate\n return {\n elementRectangle: currentEstimate,\n targetEdge: currentEdge,\n alignmentEdge: currentAlignment,\n };\n }\n else if (shouldScroll && _canScrollResizeToFitEdge(target, bounding, currentEdge, minimumScrollResizeHeight)) {\n // Scrolling will allow edge to fit, move the estimate currentEdge inside the bounds and return\n switch (currentEdge) {\n case RectangleEdge.bottom:\n currentEstimate.bottom = bounding.bottom;\n break;\n case RectangleEdge.top:\n currentEstimate.top = bounding.top;\n break;\n }\n return {\n elementRectangle: currentEstimate,\n targetEdge: currentEdge,\n alignmentEdge: currentAlignment,\n forcedInBounds: true,\n };\n }\n else {\n // update least-bad edges\n var currentOOBDegree = _getOutOfBoundsDegree(currentEstimate, bounding);\n if (!oobDegree || currentOOBDegree < oobDegree) {\n oobDegree = currentOOBDegree;\n bestEdge = currentEdge;\n bestAlignment = currentAlignment;\n }\n directions.splice(directions.indexOf(currentEdge), 1);\n if (directions.length > 0) {\n if (directions.indexOf(currentEdge * -1) > -1) {\n currentEdge = currentEdge * -1;\n }\n else {\n currentAlignment = currentEdge;\n currentEdge = directions.slice(-1)[0];\n }\n currentEstimate = _estimatePosition(rect, target, { targetEdge: currentEdge, alignmentEdge: currentAlignment }, gap);\n }\n }\n }\n // nothing fits, use least-bad option\n currentEstimate = _estimatePosition(rect, target, { targetEdge: bestEdge, alignmentEdge: bestAlignment }, gap);\n return {\n elementRectangle: currentEstimate,\n targetEdge: bestEdge,\n alignmentEdge: bestAlignment,\n };\n}\n/**\n * Flips only the alignment edge of an element rectangle. This is used instead of nudging the alignment edges\n * into position, when `alignTargetEdge` is specified.\n */\nfunction _flipAlignmentEdge(elementEstimate, target, gap, coverTarget) {\n var alignmentEdge = elementEstimate.alignmentEdge, targetEdge = elementEstimate.targetEdge, elementRectangle = elementEstimate.elementRectangle;\n var oppositeEdge = alignmentEdge * -1;\n var newEstimate = _estimatePosition(elementRectangle, target, { targetEdge: targetEdge, alignmentEdge: oppositeEdge }, gap, coverTarget);\n return {\n elementRectangle: newEstimate,\n targetEdge: targetEdge,\n alignmentEdge: oppositeEdge,\n };\n}\n/**\n * Adjusts a element rectangle to fit within the bounds given. If directionalHintFixed or covertarget is passed in\n * then the element will not flip sides on the target. They will, however, be nudged to fit within the bounds given.\n */\nfunction _adjustFitWithinBounds(element, target, bounding, positionData, shouldScroll, minimumScrollResizeHeight, gap, directionalHintFixed, coverTarget) {\n if (shouldScroll === void 0) { shouldScroll = false; }\n if (gap === void 0) { gap = 0; }\n var alignmentEdge = positionData.alignmentEdge, alignTargetEdge = positionData.alignTargetEdge;\n var elementEstimate = {\n elementRectangle: element,\n targetEdge: positionData.targetEdge,\n alignmentEdge: alignmentEdge,\n };\n if (!directionalHintFixed && !coverTarget) {\n elementEstimate = _flipToFit(element, target, bounding, positionData, shouldScroll, minimumScrollResizeHeight, gap);\n }\n var outOfBounds = _getOutOfBoundsEdges(elementEstimate.elementRectangle, bounding);\n // if directionalHintFixed is specified, we need to force the target edge to not change\n // we need *-1 because targetEdge refers to the target's edge; the callout edge is the opposite\n var fixedEdge = directionalHintFixed ? -elementEstimate.targetEdge : undefined;\n if (outOfBounds.length > 0) {\n if (alignTargetEdge) {\n // The edge opposite to the alignment edge might be out of bounds.\n // Flip alignment to see if we can get it within bounds.\n if (elementEstimate.alignmentEdge && outOfBounds.indexOf(elementEstimate.alignmentEdge * -1) > -1) {\n var flippedElementEstimate = _flipAlignmentEdge(elementEstimate, target, gap, coverTarget);\n if (_isRectangleWithinBounds(flippedElementEstimate.elementRectangle, bounding)) {\n return flippedElementEstimate;\n }\n else {\n // If the flipped elements edges are still out of bounds, try nudging it.\n elementEstimate = _alignOutOfBoundsEdges(_getOutOfBoundsEdges(flippedElementEstimate.elementRectangle, bounding), elementEstimate, bounding, fixedEdge);\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n }\n else {\n elementEstimate = _alignOutOfBoundsEdges(outOfBounds, elementEstimate, bounding, fixedEdge);\n }\n }\n return elementEstimate;\n}\n/**\n * Iterates through a list of out of bounds edges and tries to nudge and align them.\n * @param outOfBoundsEdges - Array of edges that are out of bounds\n * @param elementEstimate - The current element positioning estimate\n * @param bounding - The current bounds\n * @param preserveEdge - Specify an edge that should not be modified\n */\nfunction _alignOutOfBoundsEdges(outOfBoundsEdges, elementEstimate, bounding, preserveEdge) {\n for (var _i = 0, outOfBoundsEdges_1 = outOfBoundsEdges; _i < outOfBoundsEdges_1.length; _i++) {\n var direction = outOfBoundsEdges_1[_i];\n var edgeAttempt = void 0;\n // if preserveEdge is specified, do not call _alignEdges, skip directly to _moveEdge\n // this is because _alignEdges will move the opposite edge\n if (preserveEdge && preserveEdge === direction * -1) {\n edgeAttempt = _moveEdge(elementEstimate.elementRectangle, direction, _getEdgeValue(bounding, direction), false);\n elementEstimate.forcedInBounds = true;\n }\n else {\n edgeAttempt = _alignEdges(elementEstimate.elementRectangle, bounding, direction);\n var inBounds = _isEdgeInBounds(edgeAttempt, bounding, direction * -1);\n // only update estimate if the attempt didn't break out of the opposite bounding edge\n if (!inBounds) {\n edgeAttempt = _moveEdge(edgeAttempt, direction * -1, _getEdgeValue(bounding, direction * -1), false);\n elementEstimate.forcedInBounds = true;\n }\n }\n elementEstimate.elementRectangle = edgeAttempt;\n }\n return elementEstimate;\n}\n/**\n * Moves the middle point on an edge to the point given.\n * Only moves in one direction. For instance if a bottom edge is passed in, then\n * the bottom edge will be moved in the x axis to match the point.\n */\nfunction _centerEdgeToPoint(rect, edge, point) {\n var positiveEdge = _getFlankingEdges(edge).positiveEdge;\n var elementMiddle = _getCenterValue(rect, edge);\n var distanceToMiddle = elementMiddle - _getEdgeValue(rect, positiveEdge);\n return _moveEdge(rect, positiveEdge, point - distanceToMiddle);\n}\n/**\n * Moves the element rectangle to be appropriately positioned relative to a given target.\n * Does not flip or adjust the element.\n */\nfunction _estimatePosition(elementToPosition, target, positionData, gap, coverTarget) {\n if (gap === void 0) { gap = 0; }\n var estimatedElementPosition = new Rectangle(elementToPosition.left, elementToPosition.right, elementToPosition.top, elementToPosition.bottom);\n var alignmentEdge = positionData.alignmentEdge, targetEdge = positionData.targetEdge;\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n estimatedElementPosition = coverTarget\n ? _alignEdges(estimatedElementPosition, target, targetEdge, gap)\n : _alignOppositeEdges(estimatedElementPosition, target, targetEdge, gap);\n // if no alignment edge is provided it's supposed to be centered.\n if (!alignmentEdge) {\n var targetMiddlePoint = _getCenterValue(target, targetEdge);\n estimatedElementPosition = _centerEdgeToPoint(estimatedElementPosition, elementEdge, targetMiddlePoint);\n }\n else {\n estimatedElementPosition = _alignEdges(estimatedElementPosition, target, alignmentEdge);\n }\n return estimatedElementPosition;\n}\n/**\n * Returns the non-opposite edges of the target edge.\n * For instance if bottom is passed in then left and right will be returned.\n */\nfunction _getFlankingEdges(edge) {\n if (edge === RectangleEdge.top || edge === RectangleEdge.bottom) {\n return {\n positiveEdge: RectangleEdge.left,\n negativeEdge: RectangleEdge.right,\n };\n }\n else {\n return {\n positiveEdge: RectangleEdge.top,\n negativeEdge: RectangleEdge.bottom,\n };\n }\n}\n/**\n * Retrieve the final value for the return edge of `elementRectangle`. If the `elementRectangle` is closer to one side\n * of the bounds versus the other, the return edge is flipped to grow inward.\n */\nfunction _finalizeReturnEdge(elementRectangle, returnEdge, bounds) {\n if (bounds &&\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge)) >\n Math.abs(_getRelativeEdgeDifference(elementRectangle, bounds, returnEdge * -1))) {\n return returnEdge * -1;\n }\n return returnEdge;\n}\n/**\n * Whether or not the considered edge of the elementRectangle is lying on the edge of the bounds\n * @param elementRectangle The rectangle whose edge we are considering\n * @param bounds The rectangle marking the bounds\n * @param edge The target edge we're considering\n * @returns If the target edge of the elementRectangle is in the same location as that edge of the bounds\n */\nfunction _isEdgeOnBounds(elementRectangle, edge, bounds) {\n return bounds !== undefined && _getEdgeValue(elementRectangle, edge) === _getEdgeValue(bounds, edge);\n}\n/**\n * Finalizes the element position based on the hostElement. Only returns the\n * rectangle values to position such that they are anchored to the target.\n * This helps prevent resizing from looking very strange.\n * For instance, if the target edge is top and aligned with the left side then\n * the bottom and left values are returned so as the Callout shrinks it shrinks towards that corner.\n */\nfunction _finalizeElementPosition(elementRectangle, hostElement, targetEdge, bounds, alignmentEdge, coverTarget, doNotFinalizeReturnEdge, forceWithinBounds) {\n var returnValue = {};\n var hostRect = _getRectangleFromElement(hostElement);\n var elementEdge = coverTarget ? targetEdge : targetEdge * -1;\n var returnEdge = alignmentEdge ? alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge;\n // If we are finalizing the return edge, choose the edge such that we grow away from the bounds\n // If we are not finalizing the return edge but the opposite edge is flush against the bounds,\n // choose that as the anchor edge so the element rect can grow away from the bounds' edge\n // In this case there will not be a visual difference because there is no more room for the elementRectangle to grow\n // in the usual direction\n if (!doNotFinalizeReturnEdge || _isEdgeOnBounds(elementRectangle, getOppositeEdge(returnEdge), bounds)) {\n returnEdge = _finalizeReturnEdge(elementRectangle, returnEdge, bounds);\n }\n returnValue[RectangleEdge[elementEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge);\n // if the positioned element will still overflow, return all four edges with in-bounds values\n if (forceWithinBounds) {\n returnValue[RectangleEdge[elementEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, elementEdge * -1);\n returnValue[RectangleEdge[returnEdge * -1]] = _getRelativeEdgeDifference(elementRectangle, hostRect, returnEdge * -1);\n }\n return returnValue;\n}\n// Since the beak is rotated 45 degrees the actual height/width is the length of the diagonal.\n// We still want to position the beak based on it's midpoint which does not change. It will\n// be at (beakwidth / 2, beakwidth / 2)\nfunction _calculateActualBeakWidthInPixels(beakWidth) {\n return Math.sqrt(beakWidth * beakWidth * 2);\n}\n/**\n * Returns the appropriate IPositionData based on the props altered for RTL.\n * If directionalHintForRTL is passed in that is used if the page is RTL.\n * If directionalHint is specified, no directionalHintForRTL is available, and the page is RTL, the hint will be\n * flipped (e.g. bottomLeftEdge would become bottomRightEdge).\n *\n * If there is no directionalHint passed in, bottomAutoEdge is chosen automatically.\n */\nfunction _getPositionData(directionalHint, directionalHintForRTL, previousPositions) {\n if (directionalHint === void 0) { directionalHint = DirectionalHint.bottomAutoEdge; }\n if (previousPositions) {\n return {\n alignmentEdge: previousPositions.alignmentEdge,\n isAuto: previousPositions.isAuto,\n targetEdge: previousPositions.targetEdge,\n };\n }\n var positionInformation = __assign({}, DirectionalDictionary[directionalHint]);\n if (getRTL()) {\n // If alignment edge exists and that alignment edge is -2 or 2, right or left, then flip it.\n if (positionInformation.alignmentEdge && positionInformation.alignmentEdge % 2 === 0) {\n positionInformation.alignmentEdge = positionInformation.alignmentEdge * -1;\n }\n return directionalHintForRTL !== undefined ? DirectionalDictionary[directionalHintForRTL] : positionInformation;\n }\n return positionInformation;\n}\n/**\n * Gets the alignment data for the given information. This only really matters if the positioning is Auto.\n * If it is auto then the alignmentEdge should be chosen based on the target edge's position relative to\n * the center of the page.\n */\nfunction _getAlignmentData(positionData, target, boundingRect, coverTarget, alignTargetEdge) {\n if (positionData.isAuto) {\n positionData.alignmentEdge = getClosestEdge(positionData.targetEdge, target, boundingRect);\n }\n positionData.alignTargetEdge = alignTargetEdge;\n return positionData;\n}\nfunction getClosestEdge(targetEdge, target, boundingRect) {\n var targetCenter = _getCenterValue(target, targetEdge);\n var boundingCenter = _getCenterValue(boundingRect, targetEdge);\n var _a = _getFlankingEdges(targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n if (targetCenter <= boundingCenter) {\n return positiveEdge;\n }\n else {\n return negativeEdge;\n }\n}\nfunction _positionElementWithinBounds(elementToPosition, target, bounding, positionData, gap, shouldScroll, minimumScrollResizeHeight, directionalHintFixed, coverTarget) {\n if (shouldScroll === void 0) { shouldScroll = false; }\n var estimatedElementPosition = _estimatePosition(elementToPosition, target, positionData, gap, coverTarget);\n if (_isRectangleWithinBounds(estimatedElementPosition, bounding)) {\n return {\n elementRectangle: estimatedElementPosition,\n targetEdge: positionData.targetEdge,\n alignmentEdge: positionData.alignmentEdge,\n };\n }\n else {\n return _adjustFitWithinBounds(estimatedElementPosition, target, bounding, positionData, shouldScroll, minimumScrollResizeHeight, gap, directionalHintFixed, coverTarget);\n }\n}\nfunction _finalizeBeakPosition(elementPosition, positionedBeak, bounds) {\n var targetEdge = elementPosition.targetEdge * -1;\n // The \"host\" element that we will use to help position the beak.\n var actualElement = new Rectangle(0, elementPosition.elementRectangle.width, 0, elementPosition.elementRectangle.height);\n var returnValue = {};\n var returnEdge = _finalizeReturnEdge(elementPosition.elementRectangle, elementPosition.alignmentEdge ? elementPosition.alignmentEdge : _getFlankingEdges(targetEdge).positiveEdge, bounds);\n // only show the beak if the callout is not fully covering the target\n var beakEdgeDifference = _getRelativeEdgeDifference(elementPosition.elementRectangle, elementPosition.targetRectangle, targetEdge);\n var showBeak = beakEdgeDifference > Math.abs(_getEdgeValue(positionedBeak, targetEdge));\n returnValue[RectangleEdge[targetEdge]] = _getEdgeValue(positionedBeak, targetEdge);\n returnValue[RectangleEdge[returnEdge]] = _getRelativeEdgeDifference(positionedBeak, actualElement, returnEdge);\n return {\n elementPosition: __assign({}, returnValue),\n closestEdge: getClosestEdge(elementPosition.targetEdge, positionedBeak, actualElement),\n targetEdge: targetEdge,\n hideBeak: !showBeak,\n };\n}\nfunction _positionBeak(beakWidth, elementPosition) {\n var target = elementPosition.targetRectangle;\n /**\n * Note about beak positioning: The actual beak width only matters for getting the gap between the callout and\n * target, it does not impact the beak placement within the callout. For example example, if the beakWidth is 8,\n * then the actual beakWidth is sqrroot(8^2 + 8^2) = 11.31x11.31. So the callout will need to be an extra 3 pixels\n * away from its target. While the beak is being positioned in the callout it still acts as though it were 8x8.\n */\n var _a = _getFlankingEdges(elementPosition.targetEdge), positiveEdge = _a.positiveEdge, negativeEdge = _a.negativeEdge;\n var beakTargetPoint = _getCenterValue(target, elementPosition.targetEdge);\n var elementBounds = new Rectangle(beakWidth / 2, elementPosition.elementRectangle.width - beakWidth / 2, beakWidth / 2, elementPosition.elementRectangle.height - beakWidth / 2);\n var beakPosition = new Rectangle(0, beakWidth, 0, beakWidth);\n beakPosition = _moveEdge(beakPosition, elementPosition.targetEdge * -1, -beakWidth / 2);\n beakPosition = _centerEdgeToPoint(beakPosition, elementPosition.targetEdge * -1, beakTargetPoint - _getRelativeRectEdgeValue(positiveEdge, elementPosition.elementRectangle));\n if (!_isEdgeInBounds(beakPosition, elementBounds, positiveEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, positiveEdge);\n }\n else if (!_isEdgeInBounds(beakPosition, elementBounds, negativeEdge)) {\n beakPosition = _alignEdges(beakPosition, elementBounds, negativeEdge);\n }\n return beakPosition;\n}\nfunction _getRectangleFromElement(element) {\n // eslint-disable-next-line deprecation/deprecation\n var clientRect = element.getBoundingClientRect();\n return new Rectangle(clientRect.left, clientRect.right, clientRect.top, clientRect.bottom);\n}\nfunction _getRectangleFromIRect(rect) {\n return new Rectangle(rect.left, rect.right, rect.top, rect.bottom);\n}\nfunction _getTargetRect(bounds, target) {\n var targetRectangle;\n if (target) {\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!target.preventDefault) {\n var ev = target;\n targetRectangle = new Rectangle(ev.clientX, ev.clientX, ev.clientY, ev.clientY);\n // eslint-disable-next-line no-extra-boolean-cast\n }\n else if (!!target.getBoundingClientRect) {\n targetRectangle = _getRectangleFromElement(target);\n // HTMLImgElements can have x and y values. The check for it being a point must go last.\n }\n else {\n var rectOrPoint = target;\n // eslint-disable-next-line deprecation/deprecation\n var left = rectOrPoint.left || rectOrPoint.x;\n // eslint-disable-next-line deprecation/deprecation\n var top_1 = rectOrPoint.top || rectOrPoint.y;\n var right = rectOrPoint.right || left;\n var bottom = rectOrPoint.bottom || top_1;\n targetRectangle = new Rectangle(left, right, top_1, bottom);\n }\n if (!_isRectangleWithinBounds(targetRectangle, bounds)) {\n var outOfBounds = _getOutOfBoundsEdges(targetRectangle, bounds);\n for (var _i = 0, outOfBounds_1 = outOfBounds; _i < outOfBounds_1.length; _i++) {\n var direction = outOfBounds_1[_i];\n targetRectangle[RectangleEdge[direction]] = bounds[RectangleEdge[direction]];\n }\n }\n }\n else {\n targetRectangle = new Rectangle(0, 0, 0, 0);\n }\n return targetRectangle;\n}\n/**\n * If max height is less than zero it returns the bounds height instead.\n */\nfunction _getMaxHeightFromTargetRectangle(targetRectangle, targetEdge, gapSpace, bounds, coverTarget) {\n var maxHeight = 0;\n var directionalHint = DirectionalDictionary[targetEdge];\n // If cover target is set, then the max height should be calculated using the opposite of the target edge since\n // that's the direction that the callout will expand in.\n // For instance, if the directionalhint is bottomLeftEdge then the callout will position so it's bottom edge\n // is aligned with the bottom of the target and expand up towards the top of the screen and the calculated max height\n // is (bottom of target) - (top of screen) - gapSpace.\n var target = coverTarget ? directionalHint.targetEdge * -1 : directionalHint.targetEdge;\n if (target === RectangleEdge.top) {\n maxHeight = _getEdgeValue(targetRectangle, directionalHint.targetEdge) - bounds.top - gapSpace;\n }\n else if (target === RectangleEdge.bottom) {\n maxHeight = bounds.bottom - _getEdgeValue(targetRectangle, directionalHint.targetEdge) - gapSpace;\n }\n else {\n maxHeight = bounds.bottom - targetRectangle.top - gapSpace;\n }\n return maxHeight > 0 ? maxHeight : bounds.height;\n}\nfunction _positionElementRelative(props, elementToPosition, boundingRect, previousPositions, shouldScroll, minimumScrollResizeHeight) {\n if (shouldScroll === void 0) { shouldScroll = false; }\n var gap = props.gapSpace ? props.gapSpace : 0;\n var targetRect = _getTargetRect(boundingRect, props.target);\n var positionData = _getAlignmentData(_getPositionData(props.directionalHint, props.directionalHintForRTL, previousPositions), targetRect, boundingRect, props.coverTarget, props.alignTargetEdge);\n var positionedElement = _positionElementWithinBounds(_getRectangleFromElement(elementToPosition), targetRect, boundingRect, positionData, gap, shouldScroll, minimumScrollResizeHeight, props.directionalHintFixed, props.coverTarget);\n return __assign(__assign({}, positionedElement), { targetRectangle: targetRect });\n}\nfunction _finalizePositionData(positionedElement, hostElement, bounds, coverTarget, doNotFinalizeReturnEdge) {\n var finalizedElement = _finalizeElementPosition(positionedElement.elementRectangle, hostElement, positionedElement.targetEdge, bounds, positionedElement.alignmentEdge, coverTarget, doNotFinalizeReturnEdge, positionedElement.forcedInBounds);\n return {\n elementPosition: finalizedElement,\n targetEdge: positionedElement.targetEdge,\n alignmentEdge: positionedElement.alignmentEdge,\n };\n}\nfunction _positionElement(props, hostElement, elementToPosition, previousPositions, win) {\n var theWin = win !== null && win !== void 0 ? win : getWindow();\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, theWin.innerWidth - getScrollbarWidth(), 0, theWin.innerHeight);\n var positionedElement = _positionElementRelative(props, elementToPosition, boundingRect, previousPositions);\n return _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget);\n}\nfunction _calculateGapSpace(isBeakVisible, beakWidth, gapSpace) {\n if (beakWidth === void 0) { beakWidth = 0; }\n if (gapSpace === void 0) { gapSpace = 0; }\n return _calculateActualBeakWidthInPixels(isBeakVisible ? beakWidth : 0) / 2 + gapSpace;\n}\nfunction _positionCallout(props, hostElement, callout, previousPositions, shouldScroll, minimumScrollResizeHeight, doNotFinalizeReturnEdge, win) {\n if (shouldScroll === void 0) { shouldScroll = false; }\n var theWin = win !== null && win !== void 0 ? win : getWindow();\n var beakWidth = props.isBeakVisible ? props.beakWidth || 0 : 0;\n var gap = _calculateGapSpace(props.isBeakVisible, props.beakWidth, props.gapSpace);\n var positionProps = props;\n positionProps.gapSpace = gap;\n var boundingRect = props.bounds\n ? _getRectangleFromIRect(props.bounds)\n : new Rectangle(0, theWin.innerWidth - getScrollbarWidth(), 0, theWin.innerHeight);\n var positionedElement = _positionElementRelative(positionProps, callout, boundingRect, previousPositions, shouldScroll, minimumScrollResizeHeight);\n var beakPositioned = _positionBeak(beakWidth, positionedElement);\n var finalizedBeakPosition = _finalizeBeakPosition(positionedElement, beakPositioned, boundingRect);\n return __assign(__assign({}, _finalizePositionData(positionedElement, hostElement, boundingRect, props.coverTarget, doNotFinalizeReturnEdge)), { beakPosition: finalizedBeakPosition });\n}\nfunction _positionCard(props, hostElement, callout, previousPositions, win) {\n var theWin = win !== null && win !== void 0 ? win : getWindow();\n return _positionCallout(props, hostElement, callout, previousPositions, false, undefined, true, theWin);\n}\nfunction _getRectangleFromTarget(target) {\n var _a, _b, _c, _d;\n var mouseTarget = target;\n var elementTarget = target;\n var rectOrPointTarget = target;\n var targetRect;\n // eslint-disable-next-line deprecation/deprecation\n var left = (_a = rectOrPointTarget.left) !== null && _a !== void 0 ? _a : rectOrPointTarget.x;\n // eslint-disable-next-line deprecation/deprecation\n var top = (_b = rectOrPointTarget.top) !== null && _b !== void 0 ? _b : rectOrPointTarget.y;\n var right = (_c = rectOrPointTarget.right) !== null && _c !== void 0 ? _c : left;\n var bottom = (_d = rectOrPointTarget.bottom) !== null && _d !== void 0 ? _d : top;\n // eslint-disable-next-line no-extra-boolean-cast -- may not actually be a MouseEvent\n if (!!mouseTarget.stopPropagation) {\n targetRect = new Rectangle(mouseTarget.clientX, mouseTarget.clientX, mouseTarget.clientY, mouseTarget.clientY);\n }\n else if (left !== undefined && top !== undefined) {\n targetRect = new Rectangle(left, right, top, bottom);\n }\n else {\n targetRect = _getRectangleFromElement(elementTarget);\n }\n return targetRect;\n}\n// END PRIVATE FUNCTIONS\nexport var __positioningTestPackage = {\n _finalizePositionData: _finalizePositionData,\n _finalizeBeakPosition: _finalizeBeakPosition,\n _calculateActualBeakWidthInPixels: _calculateActualBeakWidthInPixels,\n _positionElementWithinBounds: _positionElementWithinBounds,\n _positionBeak: _positionBeak,\n _getPositionData: _getPositionData,\n _getMaxHeightFromTargetRectangle: _getMaxHeightFromTargetRectangle,\n};\n/**\n * Used to position an element relative to the given positioning props.\n * If positioning has been completed before, previousPositions can be passed to ensure that the positioning element\n * repositions based on its previous targets rather than starting with directionalhint.\n */\nexport function positionElement(props, hostElement, elementToPosition, previousPositions, win) {\n return _positionElement(props, hostElement, elementToPosition, previousPositions, win);\n}\nexport function positionCallout(props, hostElement, elementToPosition, previousPositions, shouldScroll, minimumScrollResizeHeight, win) {\n return _positionCallout(props, hostElement, elementToPosition, previousPositions, shouldScroll, minimumScrollResizeHeight, undefined, win);\n}\nexport function positionCard(props, hostElement, elementToPosition, previousPositions, win) {\n return _positionCard(props, hostElement, elementToPosition, previousPositions, win);\n}\n/**\n * Gets the maximum height that a rectangle can have in order to fit below or above a target.\n * If the directional hint specifies a left or right edge (i.e. leftCenter) it will limit the height to the topBorder\n * of the target given.\n * If no bounds are provided then the window is treated as the bounds.\n */\nexport function getMaxHeight(target, targetEdge, gapSpace, bounds, coverTarget, win) {\n if (gapSpace === void 0) { gapSpace = 0; }\n var theWin = win !== null && win !== void 0 ? win : getWindow();\n var targetRect = _getRectangleFromTarget(target);\n var boundingRectangle = bounds\n ? _getRectangleFromIRect(bounds)\n : new Rectangle(0, theWin.innerWidth - getScrollbarWidth(), 0, theWin.innerHeight);\n return _getMaxHeightFromTargetRectangle(targetRect, targetEdge, gapSpace, boundingRectangle, coverTarget);\n}\n/**\n * Returns the opposite edge of the given RectangleEdge.\n */\nexport function getOppositeEdge(edge) {\n return edge * -1;\n}\nfunction _getBoundsFromTargetWindow(target, targetWindow) {\n var segments = undefined;\n if (targetWindow.getWindowSegments) {\n segments = targetWindow.getWindowSegments();\n }\n // Identify if we're dealing with single screen scenarios.\n if (segments === undefined || segments.length <= 1) {\n return {\n top: 0,\n left: 0,\n right: targetWindow.innerWidth,\n bottom: targetWindow.innerHeight,\n width: targetWindow.innerWidth,\n height: targetWindow.innerHeight,\n };\n }\n // Logic for determining dual screen scenarios.\n var x = 0;\n var y = 0;\n // If the target is an Element get coordinates for its center.\n if (target !== null && !!target.getBoundingClientRect) {\n var clientRect = target.getBoundingClientRect();\n x = (clientRect.left + clientRect.right) / 2;\n y = (clientRect.top + clientRect.bottom) / 2;\n }\n // If the target is not null get x-axis and y-axis coordinates directly.\n else if (target !== null) {\n // eslint-disable-next-line deprecation/deprecation\n x = target.left || target.x;\n // eslint-disable-next-line deprecation/deprecation\n y = target.top || target.y;\n }\n var bounds = { top: 0, left: 0, right: 0, bottom: 0, width: 0, height: 0 };\n // Define which window segment are the coordinates in and calculate bounds based on that.\n for (var _i = 0, segments_1 = segments; _i < segments_1.length; _i++) {\n var segment = segments_1[_i];\n if (x && segment.left <= x && segment.right >= x && y && segment.top <= y && segment.bottom >= y) {\n bounds = {\n top: segment.top,\n left: segment.left,\n right: segment.right,\n bottom: segment.bottom,\n width: segment.width,\n height: segment.height,\n };\n }\n }\n return bounds;\n}\nexport function getBoundsFromTargetWindow(target, targetWindow) {\n return _getBoundsFromTargetWindow(target, targetWindow);\n}\nexport function calculateGapSpace(isBeakVisible, beakWidth, gapSpace) {\n return _calculateGapSpace(isBeakVisible, beakWidth, gapSpace);\n}\nexport function getRectangleFromTarget(target) {\n return _getRectangleFromTarget(target);\n}\n//# sourceMappingURL=positioning.js.map","import { Async } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to provide an Async instance that is automatically cleaned up on dismount.\n */\nexport function useAsync() {\n var asyncRef = React.useRef();\n if (!asyncRef.current) {\n asyncRef.current = new Async();\n }\n React.useEffect(function () {\n return function () {\n var _a;\n (_a = asyncRef.current) === null || _a === void 0 ? void 0 : _a.dispose();\n asyncRef.current = undefined;\n };\n }, []);\n return asyncRef.current;\n}\n//# sourceMappingURL=useAsync.js.map","import * as React from 'react';\n/**\n * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to\n * always return the same value (and if the initializer is a function, only call it once).\n * This is similar to setting a private member in a class constructor.\n *\n * If the value should ever change based on dependencies, use `React.useMemo` instead.\n *\n * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`,\n * only the value/function passed in the first time this is called is respected.\n * @returns The value. The identity of this value will always be the same.\n */\nexport function useConst(initialValue) {\n // Use useRef to store the value because it's the least expensive built-in hook that works here\n // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive\n // internally due to reducer handling which we don't need)\n var ref = React.useRef();\n if (ref.current === undefined) {\n // Box the value in an object so we can tell if it's initialized even if the initializer\n // returns/is undefined\n ref.current = {\n value: typeof initialValue === 'function' ? initialValue() : initialValue,\n };\n }\n return ref.current.value;\n}\n//# sourceMappingURL=useConst.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Hook to store a value and generate callbacks for setting the value to true or false.\n * The identity of the callbacks will always stay the same.\n *\n * @param initialState - Initial value\n * @returns Array with the current value and an object containing the updater callbacks.\n */\nexport function useBoolean(initialState) {\n var _a = React.useState(initialState), value = _a[0], setValue = _a[1];\n var setTrue = useConst(function () { return function () {\n setValue(true);\n }; });\n var setFalse = useConst(function () { return function () {\n setValue(false);\n }; });\n var toggle = useConst(function () { return function () {\n setValue(function (currentValue) { return !currentValue; });\n }; });\n return [value, { setTrue: setTrue, setFalse: setFalse, toggle: toggle }];\n}\n//# sourceMappingURL=useBoolean.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nexport function useControllableValue(controlledValue, defaultUncontrolledValue, onChange) {\n var _a = React.useState(defaultUncontrolledValue), value = _a[0], setValue = _a[1];\n var isControlled = useConst(controlledValue !== undefined);\n var currentValue = isControlled ? controlledValue : value;\n // Duplicate the current value and onChange in refs so they're accessible from\n // setValueOrCallOnChange without creating a new callback every time\n var valueRef = React.useRef(currentValue);\n var onChangeRef = React.useRef(onChange);\n React.useEffect(function () {\n valueRef.current = currentValue;\n onChangeRef.current = onChange;\n });\n // To match the behavior of the setter returned by React.useState, this callback's identity\n // should never change. This means it MUST NOT directly reference variables that can change.\n var setValueOrCallOnChange = useConst(function () { return function (update, ev) {\n // Assuming here that TValue is not a function, because a controllable value will typically\n // be something a user can enter as input\n var newValue = typeof update === 'function' ? update(valueRef.current) : update;\n if (onChangeRef.current) {\n onChangeRef.current(ev, newValue);\n }\n if (!isControlled) {\n setValue(newValue);\n }\n }; });\n return [currentValue, setValueOrCallOnChange];\n}\n//# sourceMappingURL=useControllableValue.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\nimport { useIsomorphicLayoutEffect } from '@fluentui/utilities';\n/**\n * Modified `useCallback` that returns the same function reference every time, but internally calls\n * the most-recently passed callback implementation. Can be useful in situations such as:\n * - Event handler dependencies change too frequently, such as user props which might change on\n * every render, or volatile values such as useState/useDispatch\n * - Callback must be referenced in a captured context (such as a window event handler or unmount\n * handler that's registered once) but needs access to the latest props\n *\n * In general, prefer `useCallback` unless you've encountered one of the problems above.\n *\n * https://reactjs.org/docs/hooks-faq.html#how-to-read-an-often-changing-value-from-usecallback\n *\n * @param fn - The callback function that will be used\n * @returns A function which is referentially stable but internally calls the most recently passed callback\n */\nexport function useEventCallback(fn) {\n var callbackRef = React.useRef(function () {\n throw new Error('Cannot call an event handler while rendering');\n });\n useIsomorphicLayoutEffect(function () {\n callbackRef.current = fn;\n }, [fn]);\n // useConst rather than useCallback to ensure the reference is always stable\n // (useCallback's deps list is an optimization, not a guarantee)\n return useConst(function () { return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callback = callbackRef.current;\n return callback.apply(void 0, args);\n }; });\n}\n//# sourceMappingURL=useEventCallback.js.map","import * as React from 'react';\nimport { getId } from '@fluentui/utilities';\n/**\n * Hook to generate a unique ID in the global scope (spanning across duplicate copies of the same library).\n *\n * @param prefix - Optional prefix for the ID\n * @param providedId - Optional id provided by a parent component. Defaults to the provided value if present,\n * without conditioning the hook call\n * @returns The ID\n */\nexport function useId(prefix, providedId) {\n // getId should only be called once since it updates the global constant for the next ID value.\n // (While an extra update isn't likely to cause problems in practice, it's better to avoid it.)\n var ref = React.useRef(providedId);\n if (!ref.current) {\n ref.current = getId(prefix);\n }\n return ref.current;\n}\n//# sourceMappingURL=useId.js.map","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\n/**\n * React hook to merge multiple React refs (either MutableRefObjects or ref callbacks) into a single ref callback that\n * updates all provided refs\n * @param refs - Refs to collectively update with one ref value.\n * @returns A function with an attached \"current\" prop, so that it can be treated like a RefObject.\n */\nexport function useMergedRefs() {\n var refs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n refs[_i] = arguments[_i];\n }\n var mergedCallback = React.useCallback(function (value) {\n // Update the \"current\" prop hanging on the function.\n mergedCallback.current = value;\n for (var _i = 0, refs_1 = refs; _i < refs_1.length; _i++) {\n var ref = refs_1[_i];\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n // work around the immutability of the React.Ref type\n ref.current = value;\n }\n }\n }, __spreadArray([], refs, true));\n return mergedCallback;\n}\n//# sourceMappingURL=useMergedRefs.js.map","import { on } from '@fluentui/utilities';\nimport * as React from 'react';\n/**\n * Hook to attach an event handler on mount and handle cleanup.\n * @param element - Element (or ref to an element) to attach the event handler to\n * @param eventName - The event to attach a handler for\n * @param callback - The handler for the event\n * @param useCapture - Whether or not to attach the handler for the capture phase\n */\nexport function useOnEvent(element, eventName, callback, useCapture) {\n // Use a ref for the callback to prevent repeatedly attaching/unattaching callbacks that are unstable across renders\n var callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n React.useEffect(function () {\n var actualElement = element && 'current' in element ? element.current : element;\n if (!actualElement || !actualElement.addEventListener) {\n return;\n }\n var dispose = on(actualElement, eventName, function (ev) { return callbackRef.current(ev); }, useCapture);\n return dispose;\n }, [element, eventName, useCapture]);\n}\n//# sourceMappingURL=useOnEvent.js.map","import { useRef, useEffect } from 'react';\n/**\n * Hook keeping track of a given value from a previous execution of the component the Hook is used in.\n *\n * See [React Hooks FAQ](https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state)\n */\nexport function usePrevious(value) {\n var ref = useRef();\n useEffect(function () {\n ref.current = value;\n });\n return ref.current;\n}\n//# sourceMappingURL=usePrevious.js.map","import * as React from 'react';\n/**\n * Creates a ref, and calls a callback whenever the ref changes to a non-null value. The callback can optionally return\n * a cleanup function that'll be called before the value changes, and when the ref is unmounted.\n *\n * This can be used to work around a limitation that useEffect cannot depend on `ref.current` (see\n * https://github.com/facebook/react/issues/14387#issuecomment-503616820).\n *\n * Usage example:\n * ```ts\n * const myRef = useRefEffect(element => {\n * ...\n * return () => { ... cleanup ... };\n * });\n * ```\n * ```jsx\n *
\n * ```\n *\n * @param callback - Called whenever the ref's value changes to non-null. Can optionally return a cleanup function.\n * @param initial - (Optional) The initial value for the ref.\n *\n * @returns A function that should be called to set the ref's value. The object also has a `.current` member that can be\n * used to access the ref's value (like a normal RefObject). It can be hooked up to an element's `ref` property.\n */\nexport function useRefEffect(callback, initial) {\n if (initial === void 0) { initial = null; }\n var createRefCallback = function () {\n var refCallback = function (value) {\n if (data.ref.current !== value) {\n if (data.cleanup) {\n data.cleanup();\n data.cleanup = undefined;\n }\n data.ref.current = value;\n if (value !== null) {\n data.cleanup = data.callback(value);\n }\n }\n };\n refCallback.current = initial;\n return refCallback;\n };\n var data = React.useRef({\n ref: createRefCallback(),\n callback: callback,\n }).current;\n data.callback = callback;\n return data.ref;\n}\n//# sourceMappingURL=useRefEffect.js.map","import * as React from 'react';\nimport { useConst } from './useConst';\n/**\n * Returns a wrapper function for `setTimeout` which automatically handles disposal.\n */\nexport var useSetTimeout = function () {\n var timeoutIds = useConst({});\n // Cleanup function.\n React.useEffect(function () { return function () {\n for (var _i = 0, _a = Object.keys(timeoutIds); _i < _a.length; _i++) {\n var id = _a[_i];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n clearTimeout(id);\n }\n }; }, \n // useConst ensures this will never change, but react-hooks/exhaustive-deps doesn't know that\n [timeoutIds]);\n // Return wrapper which will auto cleanup.\n return useConst({\n setTimeout: function (func, duration) {\n var id = setTimeout(func, duration);\n timeoutIds[id] = 1;\n return id;\n },\n clearTimeout: function (id) {\n delete timeoutIds[id];\n clearTimeout(id);\n },\n });\n};\n//# sourceMappingURL=useSetTimeout.js.map","import { getDocument } from '@fluentui/utilities';\nimport * as React from 'react';\nimport { useWindow } from '@fluentui/react-window-provider';\n/**\n * Hook to calculate and cache the target element specified by the given target attribute,\n * as well as the target element's (or host element's) parent window\n * @param target- Target selector passed to the component as a property, describing the element that\n * the callout should target\n * @param hostElement- The callout's host element, used for determining the parent window.\n */\nexport function useTarget(target, hostElement) {\n var _a, _b, _c;\n var previousTargetProp = React.useRef();\n var targetRef = React.useRef(null);\n /**\n * Stores an instance of Window, used to check\n * for server side rendering and if focus was lost.\n */\n var targetWindow = useWindow();\n // If the target element changed, find the new one. If we are tracking\n // target with class name, always find element because we do not know if\n // fabric has rendered a new element and disposed the old element.\n if (!target || target !== previousTargetProp.current || typeof target === 'string') {\n var currentElement = hostElement === null || hostElement === void 0 ? void 0 : hostElement.current;\n if (target) {\n if (typeof target === 'string') {\n // If element is part of shadow dom, then querySelector on shadow root, else query on document\n if ((_a = currentElement === null || currentElement === void 0 ? void 0 : currentElement.getRootNode()) === null || _a === void 0 ? void 0 : _a.host) {\n targetRef.current = (_c = (_b = currentElement === null || currentElement === void 0 ? void 0 : currentElement.getRootNode()) === null || _b === void 0 ? void 0 : _b.querySelector(target)) !== null && _c !== void 0 ? _c : null;\n }\n else {\n var currentDoc = getDocument(currentElement);\n targetRef.current = currentDoc ? currentDoc.querySelector(target) : null;\n }\n }\n else if ('stopPropagation' in target) {\n targetRef.current = target;\n }\n else if ('getBoundingClientRect' in target) {\n targetRef.current = target;\n }\n else if ('current' in target) {\n targetRef.current = target.current;\n }\n else {\n targetRef.current = target;\n }\n }\n previousTargetProp.current = target;\n }\n return [targetRef, targetWindow];\n}\n//# sourceMappingURL=useTarget.js.map","import * as React from 'react';\n/**\n * Hook which synchronously executes a callback when the component is about to unmount.\n *\n * @param callback - Function to call during unmount.\n */\nexport var useUnmount = function (callback) {\n var unmountRef = React.useRef(callback);\n unmountRef.current = callback;\n React.useEffect(function () { return function () {\n var _a;\n (_a = unmountRef.current) === null || _a === void 0 ? void 0 : _a.call(unmountRef);\n }; }, []);\n};\n//# sourceMappingURL=useUnmount.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, divProperties, doesElementContainFocus, getDocument, getNativeProps, getPropsWithDefaults, getWindow, modalize, } from '../../Utilities';\nimport { useMergedRefs, useAsync, useOnEvent } from '@fluentui/react-hooks';\nimport { useWindow } from '@fluentui/react-window-provider';\nfunction useScrollbarAsync(props, root) {\n var async = useAsync();\n var _a = React.useState(false), needsVerticalScrollBarState = _a[0], setNeedsVerticalScrollBar = _a[1];\n React.useEffect(function () {\n async.requestAnimationFrame(function () {\n var _a;\n // If overflowY is overridden, don't waste time calculating whether the scrollbar is necessary.\n if (props.style && props.style.overflowY) {\n return;\n }\n var needsVerticalScrollBar = false;\n if (root && root.current && ((_a = root.current) === null || _a === void 0 ? void 0 : _a.firstElementChild)) {\n // ClientHeight returns the client height of an element rounded to an\n // integer. On some browsers at different zoom levels this rounding\n // can generate different results for the root container and child even\n // though they are the same height. This causes us to show a scroll bar\n // when not needed. Ideally we would use BoundingClientRect().height\n // instead however seems that the API is 90% slower than using ClientHeight.\n // Therefore instead we will calculate the difference between heights and\n // allow for a 1px difference to still be considered ok and not show the\n // scroll bar.\n var rootHeight = root.current.clientHeight;\n var firstChildHeight = root.current.firstElementChild.clientHeight;\n if (rootHeight > 0 && firstChildHeight > rootHeight) {\n needsVerticalScrollBar = firstChildHeight - rootHeight > 1;\n }\n }\n if (needsVerticalScrollBarState !== needsVerticalScrollBar) {\n setNeedsVerticalScrollBar(needsVerticalScrollBar);\n }\n });\n return function () { return async.dispose(); };\n });\n return needsVerticalScrollBarState;\n}\nfunction defaultFocusRestorer(options) {\n var originalElement = options.originalElement, containsFocus = options.containsFocus;\n if (originalElement && containsFocus && originalElement !== getWindow()) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n // This is wrapped in a setTimeout because of a React 16 bug that is resolved in 17.\n // Once we move to 17, the setTimeout should be removed (ref: https://github.com/facebook/react/issues/17894#issuecomment-656094405)\n setTimeout(function () {\n var _a;\n (_a = originalElement.focus) === null || _a === void 0 ? void 0 : _a.call(originalElement);\n }, 0);\n }\n}\nfunction useRestoreFocus(props, root) {\n var _a = props.onRestoreFocus, onRestoreFocus = _a === void 0 ? defaultFocusRestorer : _a;\n var originalFocusedElement = React.useRef();\n var containsFocus = React.useRef(false);\n React.useEffect(function () {\n originalFocusedElement.current = getDocument().activeElement;\n if (doesElementContainFocus(root.current)) {\n containsFocus.current = true;\n }\n return function () {\n var _a;\n onRestoreFocus === null || onRestoreFocus === void 0 ? void 0 : onRestoreFocus({\n originalElement: originalFocusedElement.current,\n containsFocus: containsFocus.current,\n documentContainsFocus: ((_a = getDocument()) === null || _a === void 0 ? void 0 : _a.hasFocus()) || false,\n });\n // De-reference DOM Node to avoid retainment via transpiled closure of _onKeyDown\n originalFocusedElement.current = undefined;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n }, []);\n useOnEvent(root, 'focus', React.useCallback(function () {\n containsFocus.current = true;\n }, []), true);\n useOnEvent(root, 'blur', React.useCallback(function (ev) {\n /** The popup should update this._containsFocus when:\n * relatedTarget exists AND\n * the relatedTarget is not contained within the popup.\n * If the relatedTarget is within the popup, that means the popup still has focus\n * and focused moved from one element to another within the popup.\n * If relatedTarget is undefined or null that usually means that a\n * keyboard event occurred and focus didn't change\n */\n if (root.current && ev.relatedTarget && !root.current.contains(ev.relatedTarget)) {\n containsFocus.current = false;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run on first render\n }, []), true);\n}\nfunction useHideSiblingNodes(props, root) {\n // eslint-disable-next-line deprecation/deprecation\n var shouldHideSiblings = String(props['aria-modal']).toLowerCase() === 'true' && props.enableAriaHiddenSiblings;\n React.useEffect(function () {\n if (!(shouldHideSiblings && root.current)) {\n return;\n }\n var unmodalize = modalize(root.current);\n return unmodalize;\n }, [root, shouldHideSiblings]);\n}\n/**\n * This adds accessibility to Dialog and Panel controls\n */\nexport var Popup = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults({ shouldRestoreFocus: true, enableAriaHiddenSiblings: true }, propsWithoutDefaults);\n var root = React.useRef();\n var mergedRootRef = useMergedRefs(root, forwardedRef);\n useHideSiblingNodes(props, root);\n useRestoreFocus(props, root);\n var role = props.role, className = props.className, ariaLabel = props.ariaLabel, ariaLabelledBy = props.ariaLabelledBy, ariaDescribedBy = props.ariaDescribedBy, style = props.style, children = props.children, onDismiss = props.onDismiss;\n var needsVerticalScrollBar = useScrollbarAsync(props, root);\n var onKeyDown = React.useCallback(function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.escape:\n if (onDismiss) {\n onDismiss(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n break;\n }\n }, [onDismiss]);\n var win = useWindow();\n useOnEvent(win, 'keydown', onKeyDown);\n return (React.createElement(\"div\", __assign({ ref: mergedRootRef }, getNativeProps(props, divProperties), { className: className, role: role, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy, onKeyDown: onKeyDown, style: __assign({ overflowY: needsVerticalScrollBar ? 'scroll' : undefined, outline: 'none' }, style) }), children));\n});\nPopup.displayName = 'Popup';\n//# sourceMappingURL=Popup.js.map","import { useDocument, useWindow } from '@fluentui/react-window-provider';\n/**\n * NOTE: the check for `window`/`document` is a bit verbose and perhaps\n * overkill but it ensures the prior assumbed behavior of directly\n * calling `window`/`document` is preserved.\n *\n * It is possible to set `window` to undefined on `WindowProvider` so\n * we'll fallback to directly accessing the global in that (hopefully unlikely)\n * case.\n */\n/**\n * Get a reference to the `document` object.\n * Use this in place of the global `document` in React function components.\n * @returns Document | undefined\n */\nexport var useDocumentEx = function () {\n var _a;\n // eslint-disable-next-line no-restricted-globals\n return (_a = useDocument()) !== null && _a !== void 0 ? _a : (typeof document !== 'undefined' ? document : undefined);\n};\n/**\n * Get a reference to the `window` object.\n * Use this in place of the global `window` in React function components.\n * @returns Window | undefined\n */\nexport var useWindowEx = function () {\n var _a;\n // eslint-disable-next-line no-restricted-globals\n return (_a = useWindow()) !== null && _a !== void 0 ? _a : (typeof window !== 'undefined' ? window : undefined);\n};\n/**\n * Get a reference to the `document` object.\n * Use this in place of the global `document` in React class components.\n *\n * @param ctx - Class component WindowContext\n * @returns Document | undefined\n */\nexport var getDocumentEx = function (ctx) {\n var _a, _b;\n // eslint-disable-next-line no-restricted-globals\n return (_b = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.window) === null || _a === void 0 ? void 0 : _a.document) !== null && _b !== void 0 ? _b : (typeof document !== 'undefined' ? document : undefined);\n};\n/**\n * Get a reference to the `window` object.\n * Use this in place of the global `window` in React class components.\n *\n * @param ctx - Class component WindowContext\n * @returns Window | undefined\n */\nexport var getWindowEx = function (ctx) {\n var _a;\n // eslint-disable-next-line no-restricted-globals\n return (_a = ctx === null || ctx === void 0 ? void 0 : ctx.window) !== null && _a !== void 0 ? _a : (typeof window !== 'undefined' ? window : undefined);\n};\n//# sourceMappingURL=dom.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { css, divProperties, elementContains, focusFirstChild, getNativeProps, on, shallowCompare, getPropsWithDefaults, } from '../../Utilities';\nimport { calculateGapSpace, getRectangleFromTarget } from '../../utilities/positioning/positioning';\nimport { positionCallout, RectangleEdge, positionCard, getBoundsFromTargetWindow } from '../../Positioning';\nimport { Popup } from '../../Popup';\nimport { classNamesFunction } from '../../Utilities';\nimport { AnimationClassNames } from '../../Styling';\nimport { useMergedRefs, useAsync, useConst, useTarget, useOnEvent } from '@fluentui/react-hooks';\nimport { useWindowEx } from '../../utilities/dom';\nvar COMPONENT_NAME = 'CalloutContentBase';\nvar ANIMATIONS = (_a = {},\n _a[RectangleEdge.top] = AnimationClassNames.slideUpIn10,\n _a[RectangleEdge.bottom] = AnimationClassNames.slideDownIn10,\n _a[RectangleEdge.left] = AnimationClassNames.slideLeftIn10,\n _a[RectangleEdge.right] = AnimationClassNames.slideRightIn10,\n _a);\nvar BEAK_ORIGIN_POSITION = { top: 0, left: 0 };\n// Microsoft Edge will overwrite inline styles if there is an animation pertaining to that style.\n// To help ensure that edge will respect the offscreen style opacity\n// filter needs to be added as an additional way to set opacity.\n// Also set pointer-events: none so that the callout will not occlude the element it is\n// going to be positioned against\nvar OFF_SCREEN_STYLE = {\n opacity: 0,\n filter: 'opacity(0)',\n pointerEvents: 'none',\n};\n// role and role description go hand-in-hand. Both would be included by spreading getNativeProps for a basic element\n// This constant array can be used to filter these out of native props spread on callout root and apply them together on\n// calloutMain (the Popup component within the callout)\nvar ARIA_ROLE_ATTRIBUTES = ['role', 'aria-roledescription'];\nvar DEFAULT_PROPS = {\n preventDismissOnLostFocus: false,\n preventDismissOnScroll: false,\n preventDismissOnResize: false,\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n minPagePadding: 8,\n directionalHint: DirectionalHint.bottomAutoEdge,\n};\nvar getClassNames = classNamesFunction({\n disableCaching: true, // disabling caching because stylesProp.position mutates often\n});\n/**\n * (Hook) to return a function to lazily fetch the bounds of the target element for the callout.\n */\nfunction useBounds(_a, targetRef, targetWindow) {\n var bounds = _a.bounds, _b = _a.minPagePadding, minPagePadding = _b === void 0 ? DEFAULT_PROPS.minPagePadding : _b, target = _a.target;\n var _c = React.useState(false), targetWindowResized = _c[0], setTargetWindowResized = _c[1];\n var cachedBounds = React.useRef();\n var getBounds = React.useCallback(function () {\n if (!cachedBounds.current || targetWindowResized) {\n var currentBounds = typeof bounds === 'function' ? (targetWindow ? bounds(target, targetWindow) : undefined) : bounds;\n if (!currentBounds && targetWindow) {\n currentBounds = getBoundsFromTargetWindow(targetRef.current, targetWindow);\n currentBounds = {\n top: currentBounds.top + minPagePadding,\n left: currentBounds.left + minPagePadding,\n right: currentBounds.right - minPagePadding,\n bottom: currentBounds.bottom - minPagePadding,\n width: currentBounds.width - minPagePadding * 2,\n height: currentBounds.height - minPagePadding * 2,\n };\n }\n cachedBounds.current = currentBounds;\n targetWindowResized && setTargetWindowResized(false);\n }\n return cachedBounds.current;\n }, [bounds, minPagePadding, target, targetRef, targetWindow, targetWindowResized]);\n var async = useAsync();\n useOnEvent(targetWindow, 'resize', async.debounce(function () {\n setTargetWindowResized(true);\n }, 500, { leading: true }));\n return getBounds;\n}\n/**\n * (Hook) to return the maximum available height for the Callout to render into.\n */\nfunction useMaxHeight(_a, getBounds, targetRef, positions) {\n var _b;\n var calloutMaxHeight = _a.calloutMaxHeight, finalHeight = _a.finalHeight, directionalHint = _a.directionalHint, directionalHintFixed = _a.directionalHintFixed, hidden = _a.hidden, gapSpace = _a.gapSpace, beakWidth = _a.beakWidth, isBeakVisible = _a.isBeakVisible, coverTarget = _a.coverTarget;\n var _c = React.useState(), maxHeight = _c[0], setMaxHeight = _c[1];\n var _d = (_b = positions === null || positions === void 0 ? void 0 : positions.elementPosition) !== null && _b !== void 0 ? _b : {}, top = _d.top, bottom = _d.bottom;\n var targetRect = (targetRef === null || targetRef === void 0 ? void 0 : targetRef.current) ? getRectangleFromTarget(targetRef.current) : undefined;\n React.useEffect(function () {\n var _a;\n var bounds = (_a = getBounds()) !== null && _a !== void 0 ? _a : {};\n var topBounds = bounds.top;\n var bottomBounds = bounds.bottom;\n var calculatedHeight;\n // If aligned to top edge of target and not covering target, update bottom bounds to the\n // top of the target (accounting for gap space and beak)\n if ((positions === null || positions === void 0 ? void 0 : positions.targetEdge) === RectangleEdge.top && (targetRect === null || targetRect === void 0 ? void 0 : targetRect.top) && !coverTarget) {\n bottomBounds = targetRect.top - calculateGapSpace(isBeakVisible, beakWidth, gapSpace);\n }\n if (typeof top === 'number' && bottomBounds) {\n calculatedHeight = bottomBounds - top;\n }\n else if (typeof bottom === 'number' && typeof topBounds === 'number' && bottomBounds) {\n calculatedHeight = bottomBounds - topBounds - bottom;\n }\n if ((!calloutMaxHeight && !hidden) ||\n (calloutMaxHeight && calculatedHeight && calloutMaxHeight > calculatedHeight)) {\n setMaxHeight(calculatedHeight);\n }\n else if (calloutMaxHeight) {\n setMaxHeight(calloutMaxHeight);\n }\n else {\n setMaxHeight(undefined);\n }\n }, [\n bottom,\n calloutMaxHeight,\n finalHeight,\n directionalHint,\n directionalHintFixed,\n getBounds,\n hidden,\n positions,\n top,\n gapSpace,\n beakWidth,\n isBeakVisible,\n targetRect,\n coverTarget,\n ]);\n return maxHeight;\n}\n/**\n * (Hook) to find the current position of Callout. If Callout is resized then a new position is calculated.\n */\nfunction usePositions(props, hostElement, calloutElement, targetRef, getBounds, popupRef) {\n var _a = React.useState(), positions = _a[0], setPositions = _a[1];\n var positionAttempts = React.useRef(0);\n var previousTarget = React.useRef();\n var async = useAsync();\n var hidden = props.hidden, target = props.target, finalHeight = props.finalHeight, calloutMaxHeight = props.calloutMaxHeight, onPositioned = props.onPositioned, directionalHint = props.directionalHint, hideOverflow = props.hideOverflow, preferScrollResizePositioning = props.preferScrollResizePositioning;\n var win = useWindowEx();\n var localRef = React.useRef();\n var popupStyles;\n if (localRef.current !== popupRef.current) {\n localRef.current = popupRef.current;\n popupStyles = popupRef.current ? win === null || win === void 0 ? void 0 : win.getComputedStyle(popupRef.current) : undefined;\n }\n var popupOverflowY = popupStyles === null || popupStyles === void 0 ? void 0 : popupStyles.overflowY;\n React.useEffect(function () {\n if (!hidden) {\n var timerId_1 = async.requestAnimationFrame(function () {\n var _a, _b;\n if (hostElement.current && calloutElement) {\n var currentProps = __assign(__assign({}, props), { target: targetRef.current, bounds: getBounds() });\n // duplicate calloutElement & remove useMaxHeight's maxHeight for position calc\n var dupeCalloutElement = calloutElement.cloneNode(true);\n dupeCalloutElement.style.maxHeight = calloutMaxHeight ? \"\".concat(calloutMaxHeight) : '';\n dupeCalloutElement.style.visibility = 'hidden';\n (_a = calloutElement.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(dupeCalloutElement);\n var previousPositions = previousTarget.current === target ? positions : undefined;\n // only account for scroll resizing if styles allow callout to scroll\n // (popup styles determine if callout will scroll)\n var isOverflowYHidden = hideOverflow || popupOverflowY === 'clip' || popupOverflowY === 'hidden';\n var shouldScroll = preferScrollResizePositioning && !isOverflowYHidden;\n // If there is a finalHeight given then we assume that the user knows and will handle\n // additional positioning adjustments so we should call positionCard\n var newPositions = finalHeight\n ? positionCard(currentProps, hostElement.current, dupeCalloutElement, previousPositions, win)\n : positionCallout(currentProps, hostElement.current, dupeCalloutElement, previousPositions, shouldScroll, undefined, win);\n // clean up duplicate calloutElement\n (_b = calloutElement.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(dupeCalloutElement);\n // Set the new position only when the positions do not exist or one of the new callout positions\n // is different. The position should not change if the position is within 2 decimal places.\n if ((!positions && newPositions) ||\n (positions && newPositions && !arePositionsEqual(positions, newPositions) && positionAttempts.current < 5)) {\n // We should not reposition the callout more than a few times, if it is then the content is likely resizing\n // and we should stop trying to reposition to prevent a stack overflow.\n positionAttempts.current++;\n setPositions(newPositions);\n }\n else if (positionAttempts.current > 0) {\n // Only call the onPositioned callback if the callout has been re-positioned at least once.\n positionAttempts.current = 0;\n onPositioned === null || onPositioned === void 0 ? void 0 : onPositioned(positions);\n }\n }\n }, calloutElement);\n previousTarget.current = target;\n return function () {\n async.cancelAnimationFrame(timerId_1);\n previousTarget.current = undefined;\n };\n }\n else {\n // When the callout is hidden, clear position state so that it is not accidentally used next render.\n setPositions(undefined);\n positionAttempts.current = 0;\n }\n }, [\n hidden,\n directionalHint,\n async,\n calloutElement,\n calloutMaxHeight,\n hostElement,\n targetRef,\n finalHeight,\n getBounds,\n onPositioned,\n positions,\n props,\n target,\n hideOverflow,\n preferScrollResizePositioning,\n popupOverflowY,\n win,\n ]);\n return positions;\n}\n/**\n * (Hook) to set up behavior to automatically focus the callout when it appears, if indicated by props.\n */\nfunction useAutoFocus(_a, positions, calloutElement) {\n var hidden = _a.hidden, setInitialFocus = _a.setInitialFocus;\n var async = useAsync();\n var hasPositions = !!positions;\n React.useEffect(function () {\n if (!hidden && setInitialFocus && hasPositions && calloutElement) {\n var timerId_2 = async.requestAnimationFrame(function () { return focusFirstChild(calloutElement); }, calloutElement);\n return function () { return async.cancelAnimationFrame(timerId_2); };\n }\n }, [hidden, hasPositions, async, calloutElement, setInitialFocus]);\n}\n/**\n * (Hook) to set up various handlers to dismiss the popup when it loses focus or the window scrolls or similar cases.\n */\nfunction useDismissHandlers(_a, positions, hostElement, targetRef, targetWindow) {\n var hidden = _a.hidden, onDismiss = _a.onDismiss, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnScroll = _a.preventDismissOnScroll, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnResize = _a.preventDismissOnResize, \n // eslint-disable-next-line deprecation/deprecation\n preventDismissOnLostFocus = _a.preventDismissOnLostFocus, dismissOnTargetClick = _a.dismissOnTargetClick, shouldDismissOnWindowFocus = _a.shouldDismissOnWindowFocus, preventDismissOnEvent = _a.preventDismissOnEvent;\n var isMouseDownOnPopup = React.useRef(false);\n var async = useAsync();\n var mouseDownHandlers = useConst([\n function () {\n isMouseDownOnPopup.current = true;\n },\n function () {\n isMouseDownOnPopup.current = false;\n },\n ]);\n var positionsExists = !!positions;\n React.useEffect(function () {\n var dismissOnScroll = function (ev) {\n if (positionsExists && !preventDismissOnScroll) {\n dismissOnClickOrScroll(ev);\n }\n };\n var dismissOnResize = function (ev) {\n if (!preventDismissOnResize && !(preventDismissOnEvent && preventDismissOnEvent(ev))) {\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n var dismissOnLostFocus = function (ev) {\n if (!preventDismissOnLostFocus) {\n dismissOnClickOrScroll(ev);\n }\n };\n var dismissOnClickOrScroll = function (ev) {\n var eventPaths = ev.composedPath ? ev.composedPath() : [];\n var target = eventPaths.length > 0 ? eventPaths[0] : ev.target;\n var isEventTargetOutsideCallout = hostElement.current && !elementContains(hostElement.current, target);\n // If mouse is pressed down on callout but moved outside then released, don't dismiss the callout.\n if (isEventTargetOutsideCallout && isMouseDownOnPopup.current) {\n isMouseDownOnPopup.current = false;\n return;\n }\n if ((!targetRef.current && isEventTargetOutsideCallout) ||\n (ev.target !== targetWindow &&\n isEventTargetOutsideCallout &&\n (!targetRef.current ||\n 'stopPropagation' in targetRef.current ||\n dismissOnTargetClick ||\n (target !== targetRef.current && !elementContains(targetRef.current, target))))) {\n if (preventDismissOnEvent && preventDismissOnEvent(ev)) {\n return;\n }\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n var dismissOnTargetWindowBlur = function (ev) {\n // Do nothing\n if (!shouldDismissOnWindowFocus) {\n return;\n }\n if (((preventDismissOnEvent && !preventDismissOnEvent(ev)) ||\n (!preventDismissOnEvent && !preventDismissOnLostFocus)) &&\n !(targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.hasFocus()) &&\n ev.relatedTarget === null) {\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss(ev);\n }\n };\n // This is added so the callout will dismiss when the window is scrolled\n // but not when something inside the callout is scrolled. The delay seems\n // to be required to avoid React firing an async focus event in IE from\n // the target changing focus quickly prior to rendering the callout.\n var disposablesPromise = new Promise(function (resolve) {\n async.setTimeout(function () {\n if (!hidden && targetWindow) {\n var disposables_1 = [\n on(targetWindow, 'scroll', dismissOnScroll, true),\n on(targetWindow, 'resize', dismissOnResize, true),\n on(targetWindow.document.documentElement, 'focus', dismissOnLostFocus, true),\n on(targetWindow.document.documentElement, 'click', dismissOnLostFocus, true),\n on(targetWindow, 'blur', dismissOnTargetWindowBlur, true),\n ];\n resolve(function () {\n disposables_1.forEach(function (dispose) { return dispose(); });\n });\n }\n }, 0);\n });\n return function () {\n disposablesPromise.then(function (dispose) { return dispose(); });\n };\n }, [\n hidden,\n async,\n hostElement,\n targetRef,\n targetWindow,\n onDismiss,\n shouldDismissOnWindowFocus,\n dismissOnTargetClick,\n preventDismissOnLostFocus,\n preventDismissOnResize,\n preventDismissOnScroll,\n positionsExists,\n preventDismissOnEvent,\n ]);\n return mouseDownHandlers;\n}\nexport var CalloutContentBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var styles = props.styles, style = props.style, ariaLabel = props.ariaLabel, ariaDescribedBy = props.ariaDescribedBy, ariaLabelledBy = props.ariaLabelledBy, className = props.className, isBeakVisible = props.isBeakVisible, children = props.children, beakWidth = props.beakWidth, calloutWidth = props.calloutWidth, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer, finalHeight = props.finalHeight, _a = props.hideOverflow, hideOverflow = _a === void 0 ? !!finalHeight : _a, backgroundColor = props.backgroundColor, calloutMaxHeight = props.calloutMaxHeight, onScroll = props.onScroll, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.shouldRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n shouldRestoreFocus = _b === void 0 ? true : _b, target = props.target, hidden = props.hidden, onLayerMounted = props.onLayerMounted, popupProps = props.popupProps;\n var hostElement = React.useRef(null);\n var popupRef = React.useRef(null);\n var mergedPopupRefs = useMergedRefs(popupRef, popupProps === null || popupProps === void 0 ? void 0 : popupProps.ref);\n var _c = React.useState(null), calloutElement = _c[0], setCalloutElement = _c[1];\n var calloutCallback = React.useCallback(function (calloutEl) {\n setCalloutElement(calloutEl);\n }, []);\n var rootRef = useMergedRefs(hostElement, forwardedRef);\n var _d = useTarget(props.target, {\n current: calloutElement,\n }), targetRef = _d[0], targetWindow = _d[1];\n var getBounds = useBounds(props, targetRef, targetWindow);\n var positions = usePositions(props, hostElement, calloutElement, targetRef, getBounds, mergedPopupRefs);\n var maxHeight = useMaxHeight(props, getBounds, targetRef, positions);\n var _e = useDismissHandlers(props, positions, hostElement, targetRef, targetWindow), mouseDownOnPopup = _e[0], mouseUpOnPopup = _e[1];\n // do not set both top and bottom css props from positions\n // instead, use maxHeight\n var isForcedInBounds = (positions === null || positions === void 0 ? void 0 : positions.elementPosition.top) && (positions === null || positions === void 0 ? void 0 : positions.elementPosition.bottom);\n var cssPositions = __assign(__assign({}, positions === null || positions === void 0 ? void 0 : positions.elementPosition), { maxHeight: maxHeight });\n if (isForcedInBounds) {\n cssPositions.bottom = undefined;\n }\n useAutoFocus(props, positions, calloutElement);\n React.useEffect(function () {\n if (!hidden) {\n onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if hidden changes\n }, [hidden]);\n // If there is no target window then we are likely in server side rendering and we should not render anything.\n if (!targetWindow) {\n return null;\n }\n var overflowYHidden = hideOverflow;\n var beakVisible = isBeakVisible && !!target;\n var classNames = getClassNames(styles, {\n theme: props.theme,\n className: className,\n overflowYHidden: overflowYHidden,\n calloutWidth: calloutWidth,\n positions: positions,\n beakWidth: beakWidth,\n backgroundColor: backgroundColor,\n calloutMaxWidth: calloutMaxWidth,\n calloutMinWidth: calloutMinWidth,\n doNotLayer: doNotLayer,\n });\n var overflowStyle = __assign(__assign({ maxHeight: calloutMaxHeight ? calloutMaxHeight : '100%' }, style), (overflowYHidden && { overflowY: 'hidden' }));\n var visibilityStyle = props.hidden ? { visibility: 'hidden' } : undefined;\n // React.CSSProperties does not understand IRawStyle, so the inline animations will need to be cast as any for now.\n return (React.createElement(\"div\", { ref: rootRef, className: classNames.container, style: visibilityStyle },\n React.createElement(\"div\", __assign({}, getNativeProps(props, divProperties, ARIA_ROLE_ATTRIBUTES), { className: css(classNames.root, positions && positions.targetEdge && ANIMATIONS[positions.targetEdge]), style: positions ? __assign({}, cssPositions) : OFF_SCREEN_STYLE, \n // Safari and Firefox on Mac OS requires this to back-stop click events so focus remains in the Callout.\n // See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n tabIndex: -1, ref: calloutCallback }),\n beakVisible && React.createElement(\"div\", { className: classNames.beak, style: getBeakPosition(positions) }),\n beakVisible && React.createElement(\"div\", { className: classNames.beakCurtain }),\n React.createElement(Popup\n // don't use getNativeElementProps for role and roledescription because it will also\n // pass through data-* props (resulting in them being used in two places)\n , __assign({ \n // don't use getNativeElementProps for role and roledescription because it will also\n // pass through data-* props (resulting in them being used in two places)\n role: props.role, \"aria-roledescription\": props['aria-roledescription'], ariaDescribedBy: ariaDescribedBy, ariaLabel: ariaLabel, ariaLabelledBy: ariaLabelledBy, className: classNames.calloutMain, onDismiss: props.onDismiss, onMouseDown: mouseDownOnPopup, onMouseUp: mouseUpOnPopup, onRestoreFocus: props.onRestoreFocus, onScroll: onScroll, shouldRestoreFocus: shouldRestoreFocus, style: overflowStyle }, popupProps, { ref: mergedPopupRefs }), children))));\n}), function (previousProps, nextProps) {\n if (!nextProps.shouldUpdateWhenHidden && previousProps.hidden && nextProps.hidden) {\n // Do not update when hidden.\n return true;\n }\n return shallowCompare(previousProps, nextProps);\n});\n/**\n * (Utility) to find and return the current `Callout` Beak position.\n *\n * @param positions\n */\nfunction getBeakPosition(positions) {\n var _a, _b;\n var beakPositionStyle = __assign(__assign({}, (_a = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _a === void 0 ? void 0 : _a.elementPosition), { display: ((_b = positions === null || positions === void 0 ? void 0 : positions.beakPosition) === null || _b === void 0 ? void 0 : _b.hideBeak) ? 'none' : undefined });\n if (!beakPositionStyle.top && !beakPositionStyle.bottom && !beakPositionStyle.left && !beakPositionStyle.right) {\n beakPositionStyle.left = BEAK_ORIGIN_POSITION.left;\n beakPositionStyle.top = BEAK_ORIGIN_POSITION.top;\n }\n return beakPositionStyle;\n}\n/**\n * (Utility) used to compare two different elementPositions to determine whether they are equal.\n *\n * @param prevElementPositions\n * @param newElementPosition\n */\nfunction arePositionsEqual(prevElementPositions, newElementPosition) {\n return (comparePositions(prevElementPositions.elementPosition, newElementPosition.elementPosition) &&\n comparePositions(prevElementPositions.beakPosition.elementPosition, newElementPosition.beakPosition.elementPosition));\n}\n/**\n * (Utility) used in **arePositionsEqual** to compare two different elementPositions.\n *\n * @param prevElementPositions\n * @param newElementPositions\n */\nfunction comparePositions(prevElementPositions, newElementPositions) {\n for (var key in newElementPositions) {\n if (newElementPositions.hasOwnProperty(key)) {\n var oldPositionEdge = prevElementPositions[key];\n var newPositionEdge = newElementPositions[key];\n if (oldPositionEdge !== undefined && newPositionEdge !== undefined) {\n if (oldPositionEdge.toFixed(2) !== newPositionEdge.toFixed(2)) {\n return false;\n }\n }\n else {\n return false;\n }\n }\n }\n return true;\n}\nCalloutContentBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=CalloutContent.base.js.map","import { HighContrastSelector, focusClear, getGlobalClassNames, ZIndexes } from '../../Styling';\nfunction getBeakStyle(beakWidth) {\n return {\n height: beakWidth,\n width: beakWidth,\n };\n}\nvar GlobalClassNames = {\n container: 'ms-Callout-container',\n root: 'ms-Callout',\n beak: 'ms-Callout-beak',\n beakCurtain: 'ms-Callout-beakCurtain',\n calloutMain: 'ms-Callout-main',\n};\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, overflowYHidden = props.overflowYHidden, calloutWidth = props.calloutWidth, beakWidth = props.beakWidth, backgroundColor = props.backgroundColor, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var semanticColors = theme.semanticColors, effects = theme.effects;\n return {\n container: [\n classNames.container,\n {\n position: 'relative',\n },\n ],\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n position: 'absolute',\n display: 'flex',\n zIndex: doNotLayer ? ZIndexes.Layer : undefined,\n boxSizing: 'border-box',\n borderRadius: effects.roundedCorner2,\n boxShadow: effects.elevation16,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: 'WindowText',\n },\n _a),\n },\n focusClear(),\n className,\n !!calloutWidth && { width: calloutWidth },\n !!calloutMaxWidth && { maxWidth: calloutMaxWidth },\n !!calloutMinWidth && { minWidth: calloutMinWidth },\n ],\n beak: [\n classNames.beak,\n {\n position: 'absolute',\n backgroundColor: semanticColors.menuBackground,\n boxShadow: 'inherit',\n border: 'inherit',\n boxSizing: 'border-box',\n transform: 'rotate(45deg)',\n },\n getBeakStyle(beakWidth),\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n beakCurtain: [\n classNames.beakCurtain,\n {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n backgroundColor: semanticColors.menuBackground,\n borderRadius: effects.roundedCorner2,\n },\n ],\n calloutMain: [\n classNames.calloutMain,\n {\n backgroundColor: semanticColors.menuBackground,\n overflowX: 'hidden',\n overflowY: 'auto',\n position: 'relative',\n width: '100%',\n borderRadius: effects.roundedCorner2,\n },\n overflowYHidden && {\n overflowY: 'hidden',\n },\n backgroundColor && {\n backgroundColor: backgroundColor,\n },\n ],\n };\n};\n//# sourceMappingURL=CalloutContent.styles.js.map","import { styled } from '../../Utilities';\nimport { CalloutContentBase } from './CalloutContent.base';\nimport { getStyles } from './CalloutContent.styles';\nexport var CalloutContent = styled(CalloutContentBase, getStyles, undefined, {\n scope: 'CalloutContent',\n});\n//# sourceMappingURL=CalloutContent.js.map","import * as React from 'react';\nvar PortalCompatContext = React.createContext(undefined);\nvar portalCompatContextDefaultValue = function() {\n return function() {\n return undefined;\n };\n};\nexport var PortalCompatContextProvider = PortalCompatContext.Provider;\nexport function usePortalCompat() {\n var _React_useContext;\n return (_React_useContext = React.useContext(PortalCompatContext)) !== null && _React_useContext !== void 0 ? _React_useContext : portalCompatContextDefaultValue;\n}\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getDocument, getNativeProps, getRTL, memoizeFunction, Customizer, FocusRectsProvider, } from '../../Utilities';\nimport { createTheme } from '../../Styling';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getFabricTheme = memoizeFunction(function (theme, isRTL) { return createTheme(__assign(__assign({}, theme), { rtl: isRTL })); });\nvar getDir = function (_a) {\n var theme = _a.theme, dir = _a.dir;\n var contextDir = getRTL(theme) ? 'rtl' : 'ltr';\n var pageDir = getRTL() ? 'rtl' : 'ltr';\n var componentDir = dir ? dir : contextDir;\n return {\n // If Fabric dir !== contextDir\n // Or If contextDir !== pageDir\n // Then we need to set dir of the Fabric root\n rootDir: componentDir !== contextDir || componentDir !== pageDir ? componentDir : dir,\n // If dir !== contextDir || pageDir\n // then set contextual theme around content\n needsTheme: componentDir !== contextDir,\n };\n};\nexport var FabricBase = React.forwardRef(function (props, ref) {\n var className = props.className, theme = props.theme, applyTheme = props.applyTheme, applyThemeToBody = props.applyThemeToBody, styles = props.styles;\n var classNames = getClassNames(styles, {\n theme: theme,\n applyTheme: applyTheme,\n className: className,\n });\n var rootElement = React.useRef(null);\n useApplyThemeToBody(applyThemeToBody, classNames, rootElement);\n return React.createElement(React.Fragment, null, useRenderedContent(props, classNames, rootElement, ref));\n});\nFabricBase.displayName = 'FabricBase';\nfunction useRenderedContent(props, _a, rootElement, ref) {\n var root = _a.root;\n var _b = props.as, Root = _b === void 0 ? 'div' : _b, dir = props.dir, theme = props.theme;\n var divProps = getNativeProps(props, divProperties, ['dir']);\n var _c = getDir(props), rootDir = _c.rootDir, needsTheme = _c.needsTheme;\n var renderedContent = (React.createElement(FocusRectsProvider, { providerRef: rootElement },\n React.createElement(Root, __assign({ dir: rootDir }, divProps, { className: root, ref: useMergedRefs(rootElement, ref) }))));\n // Create the contextual theme if component direction does not match parent direction.\n if (needsTheme) {\n // Disabling ThemeProvider here because theme doesn't need to be re-provided by ThemeProvider if dir has changed.\n renderedContent = (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(Customizer, { settings: { theme: getFabricTheme(theme, dir === 'rtl') } }, renderedContent));\n }\n return renderedContent;\n}\nfunction useApplyThemeToBody(applyThemeToBody, _a, rootElement) {\n var bodyThemed = _a.bodyThemed;\n React.useEffect(function () {\n if (applyThemeToBody) {\n var currentDoc_1 = getDocument(rootElement.current);\n if (currentDoc_1) {\n currentDoc_1.body.classList.add(bodyThemed);\n return function () {\n currentDoc_1.body.classList.remove(bodyThemed);\n };\n }\n }\n }, [bodyThemed, applyThemeToBody, rootElement]);\n return rootElement;\n}\n//# sourceMappingURL=Fabric.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar inheritFont = { fontFamily: 'inherit' };\nvar GlobalClassNames = {\n root: 'ms-Fabric',\n bodyThemed: 'ms-Fabric-bodyThemed',\n};\nexport var getStyles = function (props) {\n var applyTheme = props.applyTheme, className = props.className, preventBlanketFontInheritance = props.preventBlanketFontInheritance, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n color: theme.palette.neutralPrimary,\n },\n !preventBlanketFontInheritance && {\n '& button': inheritFont,\n '& input': inheritFont,\n '& textarea': inheritFont,\n },\n // apply theme to only if applyTheme is true\n applyTheme && {\n color: theme.semanticColors.bodyText,\n backgroundColor: theme.semanticColors.bodyBackground,\n },\n className,\n ],\n bodyThemed: [\n {\n backgroundColor: theme.semanticColors.bodyBackground,\n },\n ],\n };\n};\n//# sourceMappingURL=Fabric.styles.js.map","import { styled } from '../../Utilities';\nimport { FabricBase } from './Fabric.base';\nimport { getStyles } from './Fabric.styles';\n/**\n * @deprecated This component is deprecated as of `@fluentui/react` version 8. Use `ThemeProvider` instead.\n */\nexport var Fabric = styled(FabricBase, getStyles, undefined, {\n scope: 'Fabric',\n});\n//# sourceMappingURL=Fabric.js.map","var _layersByHostId = {};\nvar _layerHostsById = {};\nvar defaultHostId = 'fluent-default-layer-host';\nvar _defaultHostSelector = \"#\".concat(defaultHostId);\n/**\n * Register a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function registerLayer(hostId, callback) {\n if (!_layersByHostId[hostId]) {\n _layersByHostId[hostId] = [];\n }\n _layersByHostId[hostId].push(callback);\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_1 = layerHosts; _i < layerHosts_1.length; _i++) {\n var layerHost = layerHosts_1[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Unregister a layer for a given host id\n * @param hostId - Id of the layer host\n * @param layer - Layer instance\n */\nexport function unregisterLayer(hostId, callback) {\n var layers = _layersByHostId[hostId];\n if (layers) {\n var idx = layers.indexOf(callback);\n if (idx >= 0) {\n layers.splice(idx, 1);\n if (layers.length === 0) {\n delete _layersByHostId[hostId];\n }\n }\n }\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n for (var _i = 0, layerHosts_2 = layerHosts; _i < layerHosts_2.length; _i++) {\n var layerHost = layerHosts_2[_i];\n layerHost.notifyLayersChanged();\n }\n }\n}\n/**\n * Gets the number of layers currently registered with a host id.\n * @param hostId - Id of the layer host.\n * @returns The number of layers currently registered with the host.\n */\nexport function getLayerCount(hostId) {\n var layers = _layerHostsById[hostId];\n return layers ? layers.length : 0;\n}\n/**\n * Gets the Layer Host instance associated with a hostId, if applicable.\n * @param hostId - Id of the layer host\n * @returns A component ref for the associated layer host.\n */\nexport function getLayerHost(hostId) {\n var layerHosts = _layerHostsById[hostId];\n return (layerHosts && layerHosts[0]) || undefined;\n}\n/**\n * Registers a Layer Host with an associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function registerLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId] || (_layerHostsById[hostId] = []);\n // Insert this at the start of an array to avoid race conditions between mount and unmount.\n // If a LayerHost is re-mounted, and mount of the new instance may occur before the unmount of the old one.\n // Putting the new instance at the start of this array ensures that calls to `getLayerHost` will immediately\n // get the new one even if the old one is around briefly.\n layerHosts.unshift(layerHost);\n}\n/**\n * Unregisters a Layer Host from the associated hostId.\n * @param hostId - Id of the layer host\n * @param layerHost - layer host instance\n */\nexport function unregisterLayerHost(hostId, layerHost) {\n var layerHosts = _layerHostsById[hostId];\n if (layerHosts) {\n var idx = layerHosts.indexOf(layerHost);\n if (idx >= 0) {\n layerHosts.splice(idx, 1);\n }\n if (layerHosts.length === 0) {\n delete _layerHostsById[hostId];\n }\n }\n}\n/**\n * When no default layer host is provided, this function is executed to create the default host.\n */\nexport function createDefaultLayerHost(doc, shadowRoot) {\n if (shadowRoot === void 0) { shadowRoot = null; }\n var host = doc.createElement('div');\n host.setAttribute('id', defaultHostId);\n host.style.cssText = 'position:fixed;z-index:1000000';\n if (shadowRoot) {\n shadowRoot.appendChild(host);\n }\n else {\n doc === null || doc === void 0 ? void 0 : doc.body.appendChild(host);\n }\n // doc?.body.appendChild(host);\n return host;\n}\n/**\n * This function can be optionally called to clean up the default layer host as needed.\n */\nexport function cleanupDefaultLayerHost(doc, shadowRoot) {\n if (shadowRoot === void 0) { shadowRoot = null; }\n var root = shadowRoot !== null && shadowRoot !== void 0 ? shadowRoot : doc;\n var host = root.querySelector(\"#\".concat(defaultHostId));\n if (host) {\n root.removeChild(host);\n }\n}\n/**\n * Used for notifying applicable Layers that a host is available/unavailable and to re-evaluate Layers that\n * care about the specific host.\n */\nexport function notifyHostChanged(id) {\n if (_layersByHostId[id]) {\n _layersByHostId[id].forEach(function (callback) { return callback(); });\n }\n}\n/**\n * Sets the default target selector to use when determining the host in which\n * Layered content will be injected into. If not provided, an element will be\n * created at the end of the document body.\n *\n * Passing in a falsy value will clear the default target and reset back to\n * using a created element at the end of document body.\n */\nexport function setDefaultTarget(selector) {\n _defaultHostSelector = selector;\n}\n/**\n * Get the default target selector when determining a host\n */\nexport function getDefaultTarget() {\n return _defaultHostSelector;\n}\n//# sourceMappingURL=Layer.notification.js.map","import { __assign } from \"tslib\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \"react-portal-compat-context\" uses v9 configs via path aliases\nimport { usePortalCompat } from '@fluentui/react-portal-compat-context';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Fabric } from '../../Fabric';\nimport { classNamesFunction, css, getDocument, setPortalAttribute, setVirtualParent, FocusRectsProvider, FocusRectsContext, IsFocusVisibleClassName, } from '../../Utilities';\nimport { registerLayer, getDefaultTarget, unregisterLayer, getLayerHost, createDefaultLayerHost, } from './Layer.notification';\nimport { useIsomorphicLayoutEffect, useMergedRefs, useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar getFocusVisibility = function (providerRef) {\n if (providerRef === null || providerRef === void 0 ? void 0 : providerRef.current) {\n return providerRef.current.classList.contains(IsFocusVisibleClassName);\n }\n return false;\n};\nexport var LayerBase = React.forwardRef(function (props, ref) {\n var registerPortalEl = usePortalCompat();\n var rootRef = React.useRef(null);\n var mergedRef = useMergedRefs(rootRef, ref);\n var layerRef = React.useRef();\n var fabricElementRef = React.useRef(null);\n var focusContext = React.useContext(FocusRectsContext);\n // Tracks if the layer mount events need to be raised.\n // Required to allow the DOM to render after the layer element is added.\n var _a = React.useState(false), needRaiseLayerMount = _a[0], setNeedRaiseLayerMount = _a[1];\n // Sets the focus visible className when the FocusRectsProvider for the layer is rendered\n // This allows the current focus visibility style to be carried over to the layer content\n var focusRectsRef = React.useCallback(function (el) {\n var isFocusVisible = getFocusVisibility(focusContext === null || focusContext === void 0 ? void 0 : focusContext.providerRef);\n if (el && isFocusVisible) {\n el.classList.add(IsFocusVisibleClassName);\n }\n }, [focusContext]);\n var children = props.children, className = props.className, eventBubblingEnabled = props.eventBubblingEnabled, fabricProps = props.fabricProps, hostId = props.hostId, insertFirst = props.insertFirst, _b = props.onLayerDidMount, onLayerDidMount = _b === void 0 ? function () { return undefined; } : _b, \n // eslint-disable-next-line deprecation/deprecation\n _c = props.onLayerMounted, \n // eslint-disable-next-line deprecation/deprecation\n onLayerMounted = _c === void 0 ? function () { return undefined; } : _c, onLayerWillUnmount = props.onLayerWillUnmount, styles = props.styles, theme = props.theme;\n var fabricRef = useMergedRefs(fabricElementRef, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.ref, focusRectsRef);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isNotHost: !hostId,\n });\n // Returns the user provided hostId props element, the default target selector,\n // or undefined if document doesn't exist.\n var getHost = function (doc, shadowRoot) {\n var _a, _b;\n if (shadowRoot === void 0) { shadowRoot = null; }\n var root = shadowRoot !== null && shadowRoot !== void 0 ? shadowRoot : doc;\n if (hostId) {\n var layerHost = getLayerHost(hostId);\n if (layerHost) {\n return (_a = layerHost.rootRef.current) !== null && _a !== void 0 ? _a : null;\n }\n return (_b = root.getElementById(hostId)) !== null && _b !== void 0 ? _b : null;\n }\n else {\n var defaultHostSelector = getDefaultTarget();\n // Find the host.\n var host = defaultHostSelector ? root.querySelector(defaultHostSelector) : null;\n // If no host is available, create a container for injecting layers in.\n // Having a container scopes layout computation.\n if (!host) {\n host = createDefaultLayerHost(doc, shadowRoot);\n }\n return host;\n }\n };\n // Removes the current layer element's parentNode and runs onLayerWillUnmount prop if provided.\n var removeLayerElement = function () {\n onLayerWillUnmount === null || onLayerWillUnmount === void 0 ? void 0 : onLayerWillUnmount();\n var elem = layerRef.current;\n // Clear ref before removing from the DOM\n layerRef.current = undefined;\n if (elem && elem.parentNode) {\n elem.parentNode.removeChild(elem);\n }\n };\n // If a doc or host exists, it will remove and update layer parentNodes.\n var createLayerElement = function () {\n var _a, _b, _c, _d;\n var doc = getDocument(rootRef.current);\n var shadowRoot = ((_b = (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.getRootNode()) === null || _b === void 0 ? void 0 : _b.host)\n ? (_c = rootRef === null || rootRef === void 0 ? void 0 : rootRef.current) === null || _c === void 0 ? void 0 : _c.getRootNode()\n : undefined;\n if (!doc || (!doc && !shadowRoot)) {\n return;\n }\n var host = getHost(doc, shadowRoot);\n if (!host) {\n return;\n }\n // Tabster in V9 sets aria-hidden on the elements outside of the modal dialog. And it doesn't set aria-hidden\n // on the virtual children of the dialog. But the host element itself is not a virtual child of a dialog, it\n // might contain virtual children. noDirectAriaHidden flag makes Tabster to poke inside the element and set\n // aria-hidden on the children (if they are not virtual children of the active V9 dialog) not on the host element.\n // To avoid importing Tabster as a dependency here, we just set a flag on the host element which is checked by\n // Tabster.\n if (!host.__tabsterElementFlags) {\n host.__tabsterElementFlags = {};\n }\n host.__tabsterElementFlags.noDirectAriaHidden = true;\n // Remove and re-create any previous existing layer elements.\n removeLayerElement();\n var el = ((_d = host.ownerDocument) !== null && _d !== void 0 ? _d : doc).createElement('div');\n el.className = classNames.root;\n setPortalAttribute(el);\n setVirtualParent(el, rootRef.current);\n insertFirst ? host.insertBefore(el, host.firstChild) : host.appendChild(el);\n layerRef.current = el;\n setNeedRaiseLayerMount(true);\n };\n useIsomorphicLayoutEffect(function () {\n createLayerElement();\n // Check if the user provided a hostId prop and register the layer with the ID.\n if (hostId) {\n registerLayer(hostId, createLayerElement);\n }\n var unregisterPortalEl = layerRef.current ? registerPortalEl(layerRef.current) : undefined;\n return function () {\n if (unregisterPortalEl) {\n unregisterPortalEl();\n }\n removeLayerElement();\n if (hostId) {\n unregisterLayer(hostId, createLayerElement);\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should run if the hostId updates.\n }, [hostId]);\n React.useEffect(function () {\n if (layerRef.current && needRaiseLayerMount) {\n onLayerMounted === null || onLayerMounted === void 0 ? void 0 : onLayerMounted();\n onLayerDidMount === null || onLayerDidMount === void 0 ? void 0 : onLayerDidMount();\n setNeedRaiseLayerMount(false);\n }\n }, [needRaiseLayerMount, onLayerMounted, onLayerDidMount]);\n useDebugWarnings(props);\n return (React.createElement(\"span\", { className: \"ms-layer\", ref: mergedRef }, layerRef.current &&\n ReactDOM.createPortal(React.createElement(FocusRectsProvider, { layerRoot: true, providerRef: fabricRef },\n React.createElement(Fabric, __assign({}, (!eventBubblingEnabled && getFilteredEvents()), fabricProps, { className: css(classNames.content, fabricProps === null || fabricProps === void 0 ? void 0 : fabricProps.className), ref: fabricRef }), children)), layerRef.current)));\n});\nLayerBase.displayName = 'LayerBase';\nvar filteredEventProps;\nvar onFilterEvent = function (ev) {\n // We should just be able to check ev.bubble here and only stop events that are bubbling up. However, even though\n // mouseenter and mouseleave do NOT bubble up, they are showing up as bubbling. Therefore we stop events based on\n // event name rather than ev.bubble.\n if (ev.eventPhase === Event.BUBBLING_PHASE &&\n ev.type !== 'mouseenter' &&\n ev.type !== 'mouseleave' &&\n ev.type !== 'touchstart' &&\n ev.type !== 'touchend') {\n ev.stopPropagation();\n }\n};\nfunction getFilteredEvents() {\n if (!filteredEventProps) {\n filteredEventProps = {};\n [\n 'onClick',\n 'onContextMenu',\n 'onDoubleClick',\n 'onDrag',\n 'onDragEnd',\n 'onDragEnter',\n 'onDragExit',\n 'onDragLeave',\n 'onDragOver',\n 'onDragStart',\n 'onDrop',\n 'onMouseDown',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseMove',\n 'onMouseOver',\n 'onMouseOut',\n 'onMouseUp',\n 'onTouchMove',\n 'onTouchStart',\n 'onTouchCancel',\n 'onTouchEnd',\n 'onKeyDown',\n 'onKeyPress',\n 'onKeyUp',\n 'onFocus',\n 'onBlur',\n 'onChange',\n 'onInput',\n 'onInvalid',\n 'onSubmit',\n ].forEach(function (name) { return (filteredEventProps[name] = onFilterEvent); });\n }\n return filteredEventProps;\n}\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Layer',\n props: props,\n deprecations: { onLayerMounted: 'onLayerDidMount' },\n });\n }\n}\n//# sourceMappingURL=Layer.base.js.map","import { ZIndexes, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Layer',\n rootNoHost: 'ms-Layer--fixed',\n content: 'ms-Layer-content',\n};\nexport var getStyles = function (props) {\n var className = props.className, isNotHost = props.isNotHost, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n isNotHost && [\n classNames.rootNoHost,\n {\n position: 'fixed',\n zIndex: ZIndexes.Layer,\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n visibility: 'hidden',\n },\n ],\n className,\n ],\n content: [\n classNames.content,\n {\n visibility: 'visible',\n },\n ],\n };\n};\n//# sourceMappingURL=Layer.styles.js.map","import { styled } from '../../Utilities';\nimport { LayerBase } from './Layer.base';\nimport { getStyles } from './Layer.styles';\nexport var Layer = styled(LayerBase, getStyles, undefined, {\n scope: 'Layer',\n fields: ['hostId', 'theme', 'styles'],\n});\n//# sourceMappingURL=Layer.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { CalloutContent } from './CalloutContent';\nimport { Layer } from '../../Layer';\nexport var Callout = React.forwardRef(function (_a, forwardedRef) {\n var layerProps = _a.layerProps, doNotLayer = _a.doNotLayer, rest = __rest(_a, [\"layerProps\", \"doNotLayer\"]);\n var content = React.createElement(CalloutContent, __assign({}, rest, { doNotLayer: doNotLayer, ref: forwardedRef }));\n return doNotLayer ? content : React.createElement(Layer, __assign({}, layerProps), content);\n});\nCallout.displayName = 'Callout';\n//# sourceMappingURL=Callout.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getActiveElement, getEventTarget, elementContains, getNativeProps, divProperties, getFirstTabbable, getLastTabbable, getNextElement, focusAsync, getPropsWithDefaults, modalize, on, useHasMergeStylesShadowRootContext, } from '../../Utilities';\nimport { useId, useConst, useMergedRefs, useEventCallback, usePrevious, useUnmount } from '@fluentui/react-hooks';\nimport { useDocument } from '../../WindowProvider';\nimport { useWindowEx } from '../../utilities/dom';\nvar COMPONENT_NAME = 'FocusTrapZone';\nvar DEFAULT_PROPS = {\n disabled: false,\n disableFirstFocus: false,\n forceFocusInsideTrap: true,\n isClickableOutsideFocusTrap: false,\n // Hardcoding completely uncontrolled flag for proper interop with FluentUI V9.\n 'data-tabster': '{\"uncontrolled\": {\"completely\": true}}',\n};\nvar useComponentRef = function (componentRef, previouslyFocusedElement, focusFTZ) {\n React.useImperativeHandle(componentRef, function () { return ({\n get previouslyFocusedElement() {\n return previouslyFocusedElement;\n },\n focus: focusFTZ,\n }); }, [focusFTZ, previouslyFocusedElement]);\n};\nexport var FocusTrapZone = React.forwardRef(function (propsWithoutDefaults, ref) {\n var _a;\n var root = React.useRef(null);\n var firstBumper = React.useRef(null);\n var lastBumper = React.useRef(null);\n var mergedRootRef = useMergedRefs(root, ref);\n var doc = useDocument();\n var win = useWindowEx();\n var inShadow = useHasMergeStylesShadowRootContext();\n var isFirstRender = (_a = usePrevious(false)) !== null && _a !== void 0 ? _a : true;\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var internalState = useConst({\n hasFocus: false,\n focusStackId: useId('ftz-', props.id),\n });\n var children = props.children, componentRef = props.componentRef, disabled = props.disabled, disableFirstFocus = props.disableFirstFocus, forceFocusInsideTrap = props.forceFocusInsideTrap, focusPreviouslyFocusedInnerElement = props.focusPreviouslyFocusedInnerElement, \n // eslint-disable-next-line deprecation/deprecation\n firstFocusableSelector = props.firstFocusableSelector, firstFocusableTarget = props.firstFocusableTarget, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.disableRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n disableRestoreFocus = _b === void 0 ? props.ignoreExternalFocusing : _b, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, enableAriaHiddenSiblings = props.enableAriaHiddenSiblings;\n var bumperProps = {\n 'aria-hidden': true,\n style: {\n pointerEvents: 'none',\n position: 'fixed', // 'fixed' prevents browsers from scrolling to bumpers when viewport does not contain them\n },\n tabIndex: disabled ? -1 : 0,\n 'data-is-visible': true,\n 'data-is-focus-trap-zone-bumper': true,\n };\n var focusElementAsync = React.useCallback(function (element) {\n if (element !== firstBumper.current && element !== lastBumper.current) {\n focusAsync(element);\n }\n }, []);\n /**\n * Callback to force focus into FTZ (named to avoid overlap with global focus() callback).\n * useEventCallback always returns the same callback reference but updates the implementation\n * every render to avoid stale captured values.\n */\n var focusFTZ = useEventCallback(function () {\n if (!root.current) {\n return; // not done mounting\n }\n var previouslyFocusedElementInTrapZone = internalState.previouslyFocusedElementInTrapZone;\n if (focusPreviouslyFocusedInnerElement &&\n previouslyFocusedElementInTrapZone &&\n elementContains(root.current, previouslyFocusedElementInTrapZone)) {\n // focus on the last item that had focus in the zone before we left the zone\n focusElementAsync(previouslyFocusedElementInTrapZone);\n return;\n }\n var firstFocusableChild = null;\n if (typeof firstFocusableTarget === 'string') {\n firstFocusableChild = root.current.querySelector(firstFocusableTarget);\n }\n else if (firstFocusableTarget) {\n firstFocusableChild = firstFocusableTarget(root.current);\n }\n else if (firstFocusableSelector) {\n var focusSelector = typeof firstFocusableSelector === 'string' ? firstFocusableSelector : firstFocusableSelector();\n firstFocusableChild = root.current.querySelector('.' + focusSelector);\n }\n // Fall back to first element if query selector did not match any elements.\n if (!firstFocusableChild) {\n firstFocusableChild = getNextElement(root.current, root.current.firstChild, false, false, false, true, undefined, undefined, undefined, inShadow);\n }\n if (firstFocusableChild) {\n focusElementAsync(firstFocusableChild);\n }\n });\n /** Used in root div focus/blur handlers */\n var focusBumper = function (isFirstBumper) {\n if (disabled || !root.current) {\n return;\n }\n var nextFocusable = isFirstBumper === internalState.hasFocus\n ? getLastTabbable(root.current, lastBumper.current, true, false, inShadow)\n : getFirstTabbable(root.current, firstBumper.current, true, false, inShadow);\n if (nextFocusable) {\n if (nextFocusable === firstBumper.current || nextFocusable === lastBumper.current) {\n // This can happen when FTZ contains no tabbable elements.\n // focusFTZ() will take care of finding a focusable element in FTZ.\n focusFTZ();\n }\n else {\n nextFocusable.focus();\n }\n }\n };\n /** Root div blur handler (doesn't need useCallback since it's for a native element) */\n var onRootBlurCapture = function (ev) {\n var _a;\n (_a = props.onBlurCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n var relatedTarget = ev.relatedTarget;\n if (ev.relatedTarget === null) {\n // In IE11, due to lack of support, event.relatedTarget is always\n // null making every onBlur call to be \"outside\" of the root\n // even when it's not. Using document.activeElement is another way\n // for us to be able to get what the relatedTarget without relying\n // on the event\n relatedTarget = getActiveElement(doc);\n }\n if (!elementContains(root.current, relatedTarget)) {\n internalState.hasFocus = false;\n }\n };\n /** Root div focus handler (doesn't need useCallback since it's for a native element) */\n var onRootFocusCapture = function (ev) {\n var _a;\n (_a = props.onFocusCapture) === null || _a === void 0 ? void 0 : _a.call(props, ev);\n if (ev.target === firstBumper.current) {\n focusBumper(true);\n }\n else if (ev.target === lastBumper.current) {\n focusBumper(false);\n }\n internalState.hasFocus = true;\n if (ev.target !== ev.currentTarget && !(ev.target === firstBumper.current || ev.target === lastBumper.current)) {\n // every time focus changes within the trap zone, remember the focused element so that\n // it can be restored if focus leaves the pane and returns via keystroke (i.e. via a call to this.focus(true))\n internalState.previouslyFocusedElementInTrapZone = getEventTarget(ev.nativeEvent);\n }\n };\n /** Called to restore focus on unmount or props change. (useEventCallback ensures latest prop values are used.) */\n var returnFocusToInitiator = useEventCallback(function (elementToFocusOnDismiss) {\n FocusTrapZone.focusStack = FocusTrapZone.focusStack.filter(function (value) { return internalState.focusStackId !== value; });\n if (!doc) {\n return;\n }\n // Do not use getActiveElement() here.\n // When the FTZ is in shadow DOM focus returns to the\n // shadow host rather than body so we need to be\n // able to inspect that\n var activeElement = doc.activeElement;\n if (!disableRestoreFocus &&\n typeof (elementToFocusOnDismiss === null || elementToFocusOnDismiss === void 0 ? void 0 : elementToFocusOnDismiss.focus) === 'function' &&\n // only restore focus if the current focused element is within the FTZ, or if nothing is focused\n (elementContains(root.current, activeElement) || activeElement === doc.body || activeElement.shadowRoot)) {\n focusElementAsync(elementToFocusOnDismiss);\n }\n });\n /** Called in window event handlers. (useEventCallback ensures latest prop values are used.) */\n var forceFocusOrClickInTrap = useEventCallback(function (ev) {\n // be sure to use the latest values here\n if (disabled) {\n return;\n }\n if (internalState.focusStackId === FocusTrapZone.focusStack.slice(-1)[0]) {\n var targetElement = getEventTarget(ev);\n if (targetElement && !elementContains(root.current, targetElement)) {\n if (doc && getActiveElement(doc) === doc.body) {\n setTimeout(function () {\n if (doc && getActiveElement(doc) === doc.body) {\n focusFTZ();\n internalState.hasFocus = true; // set focus here since we stop event propagation\n }\n }, 0);\n }\n else {\n focusFTZ();\n internalState.hasFocus = true; // set focus here since we stop event propagation\n }\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n });\n // Update window event handlers when relevant props change\n React.useEffect(function () {\n var disposables = [];\n if (forceFocusInsideTrap) {\n disposables.push(on(win, 'focus', forceFocusOrClickInTrap, true));\n }\n if (!isClickableOutsideFocusTrap) {\n disposables.push(on(win, 'click', forceFocusOrClickInTrap, true));\n }\n return function () {\n disposables.forEach(function (dispose) { return dispose(); });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n }, [forceFocusInsideTrap, isClickableOutsideFocusTrap, win]);\n // On prop change or first render, focus the FTZ and update focusStack if appropriate\n React.useEffect(function () {\n // Do nothing if disabled, or if it's a re-render and forceFocusInsideTrap is false\n // (to match existing behavior, the FTZ handles first focus even if forceFocusInsideTrap\n // is false, though it's debatable whether it should do this)\n if (disabled || (!isFirstRender && !forceFocusInsideTrap) || !root.current) {\n return;\n }\n // Transition from forceFocusInsideTrap / FTZ disabled to enabled (or initial mount)\n FocusTrapZone.focusStack.push(internalState.focusStackId);\n var elementToFocusOnDismiss = props.elementToFocusOnDismiss || getActiveElement(doc);\n if (!disableFirstFocus && !elementContains(root.current, elementToFocusOnDismiss)) {\n focusFTZ();\n }\n // To match existing behavior, always return focus on cleanup (even if we didn't handle\n // initial focus), but it's debatable whether that's correct\n return function () { return returnFocusToInitiator(elementToFocusOnDismiss); };\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when these two props change\n }, [forceFocusInsideTrap, disabled]);\n // Handle modalization separately from first focus\n React.useEffect(function () {\n if (!disabled && enableAriaHiddenSiblings) {\n var unmodalize = modalize(root.current);\n return unmodalize;\n }\n }, [disabled, enableAriaHiddenSiblings, root]);\n // Cleanup lifecyle method for internalState.\n useUnmount(function () {\n // Dispose of element references so the DOM Nodes can be garbage-collected\n delete internalState.previouslyFocusedElementInTrapZone;\n });\n useComponentRef(componentRef, internalState.previouslyFocusedElementInTrapZone, focusFTZ);\n return (React.createElement(\"div\", __assign({ \"aria-labelledby\": props.ariaLabelledBy }, getNativeProps(props, divProperties), { ref: mergedRootRef, onFocusCapture: onRootFocusCapture, onBlurCapture: onRootBlurCapture }),\n React.createElement(\"div\", __assign({}, bumperProps, { ref: firstBumper })),\n children,\n React.createElement(\"div\", __assign({}, bumperProps, { ref: lastBumper }))));\n});\nFocusTrapZone.displayName = COMPONENT_NAME;\nFocusTrapZone.focusStack = [];\n//# sourceMappingURL=FocusTrapZone.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps } from '../../Utilities';\nimport { Callout } from '../../Callout';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar TooltipBase = /** @class */ (function (_super) {\n __extends(TooltipBase, _super);\n function TooltipBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._onRenderContent = function (props) {\n if (typeof props.content === 'string') {\n return React.createElement(\"p\", { className: _this._classNames.subText }, props.content);\n }\n else {\n return React.createElement(\"div\", { className: _this._classNames.subText }, props.content);\n }\n };\n return _this;\n }\n TooltipBase.prototype.render = function () {\n var _a = this.props, className = _a.className, calloutProps = _a.calloutProps, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, styles = _a.styles, id = _a.id, maxWidth = _a.maxWidth, _b = _a.onRenderContent, onRenderContent = _b === void 0 ? this._onRenderContent : _b, targetElement = _a.targetElement, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className || (calloutProps && calloutProps.className),\n beakWidth: calloutProps && calloutProps.isBeakVisible ? calloutProps.beakWidth : 0,\n gapSpace: calloutProps && calloutProps.gapSpace,\n maxWidth: maxWidth,\n });\n return (React.createElement(Callout, __assign({ target: targetElement, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL }, calloutProps, getNativeProps(this.props, divProperties, ['id']), { className: this._classNames.root }),\n React.createElement(\"div\", { className: this._classNames.content, id: id, onFocus: this.props.onFocus, onMouseEnter: this.props.onMouseEnter, onMouseLeave: this.props.onMouseLeave }, onRenderContent(this.props, this._onRenderContent))));\n };\n // Specify default props values\n TooltipBase.defaultProps = {\n directionalHint: DirectionalHint.topCenter,\n maxWidth: '364px',\n calloutProps: {\n isBeakVisible: true,\n beakWidth: 16,\n gapSpace: 0,\n setInitialFocus: true,\n doNotLayer: false,\n },\n };\n return TooltipBase;\n}(React.Component));\nexport { TooltipBase };\n//# sourceMappingURL=Tooltip.base.js.map","import { AnimationClassNames } from '../../Styling';\nexport var getStyles = function (props) {\n var className = props.className, _a = props.beakWidth, beakWidth = _a === void 0 ? 16 : _a, _b = props.gapSpace, gapSpace = _b === void 0 ? 0 : _b, maxWidth = props.maxWidth, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, effects = theme.effects;\n // The math here is done to account for the 45 degree rotation of the beak\n // and sub-pixel rounding that differs across browsers, which is more noticeable when\n // the device pixel ratio is larger\n var tooltipGapSpace = -(Math.sqrt((beakWidth * beakWidth) / 2) + gapSpace) +\n 1 /\n // There isn't really a great way to pass in a `window` reference here so disabling the line rule\n // eslint-disable-next-line no-restricted-globals\n window.devicePixelRatio;\n return {\n root: [\n 'ms-Tooltip',\n theme.fonts.medium,\n AnimationClassNames.fadeIn200,\n {\n background: semanticColors.menuBackground,\n boxShadow: effects.elevation8,\n padding: '8px',\n maxWidth: maxWidth,\n selectors: {\n ':after': {\n content: \"''\",\n position: 'absolute',\n bottom: tooltipGapSpace,\n left: tooltipGapSpace,\n right: tooltipGapSpace,\n top: tooltipGapSpace,\n zIndex: 0,\n },\n },\n },\n className,\n ],\n content: [\n 'ms-Tooltip-content',\n fonts.small,\n {\n position: 'relative',\n zIndex: 1,\n color: semanticColors.menuItemText,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n overflow: 'hidden',\n },\n ],\n subText: [\n 'ms-Tooltip-subtext',\n {\n // Using inherit here to avoid unintentional global overrides of the

tag.\n fontSize: 'inherit',\n fontWeight: 'inherit',\n color: 'inherit',\n margin: 0,\n },\n ],\n };\n};\n//# sourceMappingURL=Tooltip.styles.js.map","import { styled } from '../../Utilities';\nimport { TooltipBase } from './Tooltip.base';\nimport { getStyles } from './Tooltip.styles';\nexport var Tooltip = styled(TooltipBase, getStyles, undefined, {\n scope: 'Tooltip',\n});\n//# sourceMappingURL=Tooltip.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipDelay;\n(function (TooltipDelay) {\n TooltipDelay[TooltipDelay[\"zero\"] = 0] = \"zero\";\n /** 300 ms delay before showing the tooltip */\n TooltipDelay[TooltipDelay[\"medium\"] = 1] = \"medium\";\n /** 500 ms delay before showing the tooltip */\n TooltipDelay[TooltipDelay[\"long\"] = 2] = \"long\";\n})(TooltipDelay || (TooltipDelay = {}));\n//# sourceMappingURL=Tooltip.types.js.map","/**\n * {@docCategory Tooltip}\n */\nexport var TooltipOverflowMode;\n(function (TooltipOverflowMode) {\n /** Only show tooltip if parent DOM element is overflowing */\n TooltipOverflowMode[TooltipOverflowMode[\"Parent\"] = 0] = \"Parent\";\n /**\n * Only show tooltip if tooltip host's content is overflowing.\n * Note that this does not check the children for overflow, only the TooltipHost root.\n */\n TooltipOverflowMode[TooltipOverflowMode[\"Self\"] = 1] = \"Self\";\n})(TooltipOverflowMode || (TooltipOverflowMode = {}));\n//# sourceMappingURL=TooltipHost.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hiddenContentStyle } from '../../Styling';\nimport { initializeComponentRef, Async, divProperties, getNativeProps, getId, assign, hasOverflow, portalContainsElement, classNamesFunction, KeyCodes, } from '../../Utilities';\nimport { TooltipOverflowMode } from './TooltipHost.types';\nimport { Tooltip } from './Tooltip';\nimport { TooltipDelay } from './Tooltip.types';\nimport { WindowContext } from '@fluentui/react-window-provider';\nimport { getDocumentEx } from '../../utilities/dom';\nvar getClassNames = classNamesFunction();\nvar TooltipHostBase = /** @class */ (function (_super) {\n __extends(TooltipHostBase, _super);\n // Constructor\n function TooltipHostBase(props) {\n var _this = _super.call(this, props) || this;\n // The wrapping div that gets the hover events\n _this._tooltipHost = React.createRef();\n _this._defaultTooltipId = getId('tooltip');\n _this.show = function () {\n _this._toggleTooltip(true);\n };\n _this.dismiss = function () {\n _this._hideTooltip();\n };\n _this._getTargetElement = function () {\n if (!_this._tooltipHost.current) {\n return undefined;\n }\n var overflowMode = _this.props.overflowMode;\n // Select target element based on overflow mode. For parent mode, you want to position the tooltip relative\n // to the parent element, otherwise it might look off.\n if (overflowMode !== undefined) {\n switch (overflowMode) {\n case TooltipOverflowMode.Parent:\n return _this._tooltipHost.current.parentElement;\n case TooltipOverflowMode.Self:\n return _this._tooltipHost.current;\n }\n }\n return _this._tooltipHost.current;\n };\n _this._onTooltipFocus = function (ev) {\n if (_this._ignoreNextFocusEvent) {\n _this._ignoreNextFocusEvent = false;\n return;\n }\n _this._onTooltipMouseEnter(ev);\n };\n _this._onTooltipContentFocus = function (ev) {\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n TooltipHostBase._currentVisibleTooltip.dismiss();\n }\n TooltipHostBase._currentVisibleTooltip = _this;\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n };\n _this._onTooltipBlur = function (ev) {\n var _a;\n // The focused element gets a blur event when the document loses focus\n // (e.g. switching tabs in the browser), but we don't want to show the\n // tooltip again when the document gets focus back. Handle this case by\n // checking if the blurred element is still the document's activeElement,\n // and ignoring when it next gets focus back.\n // See https://github.com/microsoft/fluentui/issues/13541\n _this._ignoreNextFocusEvent = ((_a = getDocumentEx(_this.context)) === null || _a === void 0 ? void 0 : _a.activeElement) === ev.target;\n _this._dismissTimerId = _this._async.setTimeout(function () {\n _this._hideTooltip();\n }, 0);\n };\n // Show Tooltip\n _this._onTooltipMouseEnter = function (ev) {\n var _a = _this.props, overflowMode = _a.overflowMode, delay = _a.delay;\n var doc = getDocumentEx(_this.context);\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip !== _this) {\n TooltipHostBase._currentVisibleTooltip.dismiss();\n }\n TooltipHostBase._currentVisibleTooltip = _this;\n if (overflowMode !== undefined) {\n var overflowElement = _this._getTargetElement();\n if (overflowElement && !hasOverflow(overflowElement)) {\n return;\n }\n }\n if (ev.target && portalContainsElement(ev.target, _this._getTargetElement(), doc)) {\n // Do not show tooltip when target is inside a portal relative to TooltipHost.\n return;\n }\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (delay !== TooltipDelay.zero) {\n var delayTime = _this._getDelayTime(delay); // non-null assertion because we set it in `defaultProps`\n _this._openTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(true);\n }, delayTime);\n }\n else {\n _this._toggleTooltip(true);\n }\n };\n // Hide Tooltip\n _this._onTooltipMouseLeave = function (ev) {\n var closeDelay = _this.props.closeDelay;\n _this._clearDismissTimer();\n _this._clearOpenTimer();\n if (closeDelay) {\n _this._dismissTimerId = _this._async.setTimeout(function () {\n _this._toggleTooltip(false);\n }, closeDelay);\n }\n else {\n _this._toggleTooltip(false);\n }\n if (TooltipHostBase._currentVisibleTooltip === _this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n };\n _this._onTooltipKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if ((ev.which === KeyCodes.escape || ev.ctrlKey) && _this.state.isTooltipVisible) {\n _this._hideTooltip();\n ev.stopPropagation();\n }\n };\n _this._clearDismissTimer = function () {\n _this._async.clearTimeout(_this._dismissTimerId);\n };\n _this._clearOpenTimer = function () {\n _this._async.clearTimeout(_this._openTimerId);\n };\n // Hide Tooltip\n _this._hideTooltip = function () {\n _this._clearOpenTimer();\n _this._clearDismissTimer();\n _this._toggleTooltip(false);\n };\n _this._toggleTooltip = function (isTooltipVisible) {\n if (_this.state.isTooltipVisible !== isTooltipVisible) {\n _this.setState({ isTooltipVisible: isTooltipVisible }, function () { return _this.props.onTooltipToggle && _this.props.onTooltipToggle(isTooltipVisible); });\n }\n };\n _this._getDelayTime = function (delay) {\n switch (delay) {\n case TooltipDelay.medium:\n return 300;\n case TooltipDelay.long:\n return 500;\n default:\n return 0;\n }\n };\n initializeComponentRef(_this);\n _this.state = {\n isAriaPlaceholderRendered: false,\n isTooltipVisible: false,\n };\n return _this;\n }\n // Render\n TooltipHostBase.prototype.render = function () {\n var _a = this.props, calloutProps = _a.calloutProps, children = _a.children, content = _a.content, directionalHint = _a.directionalHint, directionalHintForRTL = _a.directionalHintForRTL, className = _a.hostClassName, id = _a.id, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.setAriaDescribedBy, \n // eslint-disable-next-line deprecation/deprecation\n setAriaDescribedBy = _b === void 0 ? true : _b, tooltipProps = _a.tooltipProps, styles = _a.styles, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var isTooltipVisible = this.state.isTooltipVisible;\n var tooltipId = id || this._defaultTooltipId;\n var tooltipRenderProps = __assign(__assign({ id: \"\".concat(tooltipId, \"--tooltip\"), content: content, targetElement: this._getTargetElement(), directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, calloutProps: assign({}, calloutProps, {\n onDismiss: this._hideTooltip,\n onFocus: this._onTooltipContentFocus,\n onMouseEnter: this._onTooltipMouseEnter,\n onMouseLeave: this._onTooltipMouseLeave,\n }), onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave }, getNativeProps(this.props, divProperties, ['id'])), tooltipProps);\n // Get the content of the tooltip for use in the hidden div used for screen readers\n var tooltipContent = (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.onRenderContent)\n ? tooltipProps.onRenderContent(tooltipRenderProps, function (props) { return ((props === null || props === void 0 ? void 0 : props.content) ? React.createElement(React.Fragment, null, props.content) : null); })\n : content;\n var showTooltip = isTooltipVisible && !!tooltipContent;\n var ariaDescribedBy = setAriaDescribedBy && isTooltipVisible && !!tooltipContent ? tooltipId : undefined;\n return (React.createElement(\"div\", { className: this._classNames.root, ref: this._tooltipHost, onFocusCapture: this._onTooltipFocus, onBlurCapture: this._onTooltipBlur, onMouseEnter: this._onTooltipMouseEnter, onMouseLeave: this._onTooltipMouseLeave, onKeyDown: this._onTooltipKeyDown, role: \"none\", \"aria-describedby\": ariaDescribedBy },\n children,\n showTooltip && React.createElement(Tooltip, __assign({}, tooltipRenderProps)),\n React.createElement(\"div\", { hidden: true, id: tooltipId, style: hiddenContentStyle }, tooltipContent)));\n };\n TooltipHostBase.prototype.componentDidMount = function () {\n this._async = new Async(this);\n };\n TooltipHostBase.prototype.componentWillUnmount = function () {\n if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip === this) {\n TooltipHostBase._currentVisibleTooltip = undefined;\n }\n this._async.dispose();\n };\n TooltipHostBase.defaultProps = {\n delay: TooltipDelay.medium,\n };\n TooltipHostBase.contextType = WindowContext;\n return TooltipHostBase;\n}(React.Component));\nexport { TooltipHostBase };\n//# sourceMappingURL=TooltipHost.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-TooltipHost',\n ariaPlaceholder: 'ms-TooltipHost-aria-placeholder',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n {\n display: 'inline',\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=TooltipHost.styles.js.map","import { styled } from '../../Utilities';\nimport { TooltipHostBase } from './TooltipHost.base';\nimport { getStyles } from './TooltipHost.styles';\nexport var TooltipHost = styled(TooltipHostBase, getStyles, undefined, {\n scope: 'TooltipHost',\n});\n//# sourceMappingURL=TooltipHost.js.map","/**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n * {@docCategory Icon}\n */\nexport var IconType;\n(function (IconType) {\n /**\n * Render using the fabric icon font.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"default\"] = 0] = \"default\";\n /**\n * Render using an image, where imageProps would be used.\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"image\"] = 1] = \"image\";\n /**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"Default\"] = 100000] = \"Default\";\n /**\n * @deprecated Icon type is inferred based on presence of `IIconProps.imageProps`\n */\n IconType[IconType[\"Image\"] = 100001] = \"Image\";\n})(IconType || (IconType = {}));\n//# sourceMappingURL=Icon.types.js.map","/**\n * The possible methods that can be used to fit the image.\n * {@docCategory Image}\n */\nexport var ImageFit;\n(function (ImageFit) {\n /**\n * The image is not scaled. The image is centered and cropped within the content box.\n */\n ImageFit[ImageFit[\"center\"] = 0] = \"center\";\n /**\n * The image is scaled to maintain its aspect ratio while being fully contained within the frame. The image will\n * be centered horizontally and vertically within the frame. The space in the top and bottom or in the sides of\n * the frame will be empty depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"contain\"] = 1] = \"contain\";\n /**\n * The image is scaled to maintain its aspect ratio while filling the frame. Portions of the image will be cropped\n * from the top and bottom, or the sides, depending on the difference in aspect ratio between the image and the frame.\n */\n ImageFit[ImageFit[\"cover\"] = 2] = \"cover\";\n /**\n * Neither the image nor the frame are scaled. If their sizes do not match, the image will either be cropped or the\n * frame will have empty space.\n */\n ImageFit[ImageFit[\"none\"] = 3] = \"none\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height or width is less than the Image frame's height or width,\n * but if both natural height and width are larger than the frame it will behave as ImageFit.cover.\n */\n ImageFit[ImageFit[\"centerCover\"] = 4] = \"centerCover\";\n /**\n * The image will be centered horizontally and vertically within the frame and maintains its aspect ratio. It will\n * behave as ImageFit.center if the image's natural height and width is less than the Image frame's height and width,\n * but if either natural height or width are larger than the frame it will behave as ImageFit.contain.\n */\n ImageFit[ImageFit[\"centerContain\"] = 5] = \"centerContain\";\n})(ImageFit || (ImageFit = {}));\n/**\n * The cover style to be used on the image\n * {@docCategory Image}\n */\nexport var ImageCoverStyle;\n(function (ImageCoverStyle) {\n /**\n * The image will be shown at 100% height of container and the width will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"landscape\"] = 0] = \"landscape\";\n /**\n * The image will be shown at 100% width of container and the height will be scaled accordingly\n */\n ImageCoverStyle[ImageCoverStyle[\"portrait\"] = 1] = \"portrait\";\n})(ImageCoverStyle || (ImageCoverStyle = {}));\n/**\n * {@docCategory Image}\n */\nexport var ImageLoadState;\n(function (ImageLoadState) {\n /**\n * The image has not yet been loaded, and there is no error yet.\n */\n ImageLoadState[ImageLoadState[\"notLoaded\"] = 0] = \"notLoaded\";\n /**\n * The image has been loaded successfully.\n */\n ImageLoadState[ImageLoadState[\"loaded\"] = 1] = \"loaded\";\n /**\n * An error has been encountered while loading the image.\n */\n ImageLoadState[ImageLoadState[\"error\"] = 2] = \"error\";\n /**\n * @deprecated Not used. Use `onLoadingStateChange` and re-render the Image with a different src.\n */\n ImageLoadState[ImageLoadState[\"errorLoaded\"] = 3] = \"errorLoaded\";\n})(ImageLoadState || (ImageLoadState = {}));\n//# sourceMappingURL=Image.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, imgProperties } from '../../Utilities';\nimport { ImageCoverStyle, ImageFit, ImageLoadState } from './Image.types';\nimport { useIsomorphicLayoutEffect, useMergedRefs } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nvar SVG_REGEX = /\\.svg$/i;\nvar KEY_PREFIX = 'fabricImage';\nfunction useLoadState(props, imageElement) {\n var onLoadingStateChange = props.onLoadingStateChange, onLoad = props.onLoad, onError = props.onError, src = props.src;\n var _a = React.useState(ImageLoadState.notLoaded), loadState = _a[0], setLoadState = _a[1];\n useIsomorphicLayoutEffect(function () {\n // If the src property changes, reset the load state\n // (does nothing if the load state is already notLoaded)\n setLoadState(ImageLoadState.notLoaded);\n }, [src]);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- intended to run every render\n React.useEffect(function () {\n if (loadState === ImageLoadState.notLoaded) {\n // testing if naturalWidth and naturalHeight are greater than zero is better than checking\n // .complete, because .complete will also be set to true if the image breaks. However,\n // for some browsers, SVG images do not have a naturalWidth or naturalHeight, so fall back\n // to checking .complete for these images.\n var isLoaded = imageElement.current\n ? (src && imageElement.current.naturalWidth > 0 && imageElement.current.naturalHeight > 0) ||\n (imageElement.current.complete && SVG_REGEX.test(src))\n : false;\n if (isLoaded) {\n setLoadState(ImageLoadState.loaded);\n }\n }\n });\n React.useEffect(function () {\n onLoadingStateChange === null || onLoadingStateChange === void 0 ? void 0 : onLoadingStateChange(loadState);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run when loadState changes\n }, [loadState]);\n var onImageLoaded = React.useCallback(function (ev) {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(ev);\n if (src) {\n setLoadState(ImageLoadState.loaded);\n }\n }, [src, onLoad]);\n var onImageError = React.useCallback(function (ev) {\n onError === null || onError === void 0 ? void 0 : onError(ev);\n setLoadState(ImageLoadState.error);\n }, [onError]);\n return [loadState, onImageLoaded, onImageError];\n}\nexport var ImageBase = React.forwardRef(function (props, forwardedRef) {\n var frameElement = React.useRef();\n var imageElement = React.useRef();\n var _a = useLoadState(props, imageElement), loadState = _a[0], onImageLoaded = _a[1], onImageError = _a[2];\n var imageProps = getNativeProps(props, imgProperties, [\n 'width',\n 'height',\n ]);\n var src = props.src, alt = props.alt, width = props.width, height = props.height, _b = props.shouldFadeIn, shouldFadeIn = _b === void 0 ? true : _b, shouldStartVisible = props.shouldStartVisible, className = props.className, imageFit = props.imageFit, role = props.role, maximizeFrame = props.maximizeFrame, styles = props.styles, theme = props.theme, loading = props.loading;\n var coverStyle = useCoverStyle(props, loadState, imageElement, frameElement);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n width: width,\n height: height,\n maximizeFrame: maximizeFrame,\n shouldFadeIn: shouldFadeIn,\n shouldStartVisible: shouldStartVisible,\n isLoaded: loadState === ImageLoadState.loaded || (loadState === ImageLoadState.notLoaded && props.shouldStartVisible),\n isLandscape: coverStyle === ImageCoverStyle.landscape,\n isCenter: imageFit === ImageFit.center,\n isCenterContain: imageFit === ImageFit.centerContain,\n isCenterCover: imageFit === ImageFit.centerCover,\n isContain: imageFit === ImageFit.contain,\n isCover: imageFit === ImageFit.cover,\n isNone: imageFit === ImageFit.none,\n isError: loadState === ImageLoadState.error,\n isNotImageFit: imageFit === undefined,\n });\n // If image dimensions aren't specified, the natural size of the image is used.\n return (React.createElement(\"div\", { className: classNames.root, style: { width: width, height: height }, ref: frameElement },\n React.createElement(\"img\", __assign({}, imageProps, { onLoad: onImageLoaded, onError: onImageError, key: KEY_PREFIX + props.src || '', className: classNames.image, ref: useMergedRefs(imageElement, forwardedRef), src: src, alt: alt, role: role, loading: loading }))));\n});\nImageBase.displayName = 'ImageBase';\nfunction useCoverStyle(props, loadState, imageElement, frameElement) {\n var previousLoadState = React.useRef(loadState);\n var coverStyle = React.useRef();\n if (coverStyle === undefined ||\n (previousLoadState.current === ImageLoadState.notLoaded && loadState === ImageLoadState.loaded)) {\n coverStyle.current = computeCoverStyle(props, loadState, imageElement, frameElement);\n }\n previousLoadState.current = loadState;\n return coverStyle.current;\n}\nfunction computeCoverStyle(props, loadState, imageElement, frameElement) {\n var imageFit = props.imageFit, width = props.width, height = props.height;\n // Do not compute cover style if it was already specified in props\n if (props.coverStyle !== undefined) {\n return props.coverStyle;\n }\n else if (loadState === ImageLoadState.loaded &&\n (imageFit === ImageFit.cover ||\n imageFit === ImageFit.contain ||\n imageFit === ImageFit.centerContain ||\n imageFit === ImageFit.centerCover) &&\n imageElement.current &&\n frameElement.current) {\n // Determine the desired ratio using the width and height props.\n // If those props aren't available, measure measure the frame.\n var desiredRatio = void 0;\n if (typeof width === 'number' &&\n typeof height === 'number' &&\n imageFit !== ImageFit.centerContain &&\n imageFit !== ImageFit.centerCover) {\n desiredRatio = width / height;\n }\n else {\n desiredRatio = frameElement.current.clientWidth / frameElement.current.clientHeight;\n }\n // Examine the source image to determine its original ratio.\n var naturalRatio = imageElement.current.naturalWidth / imageElement.current.naturalHeight;\n // Should we crop from the top or the sides?\n if (naturalRatio > desiredRatio) {\n return ImageCoverStyle.landscape;\n }\n }\n return ImageCoverStyle.portrait;\n}\n//# sourceMappingURL=Image.base.js.map","import { AnimationClassNames, getGlobalClassNames } from '../../Styling';\nimport { getWindow } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Image',\n rootMaximizeFrame: 'ms-Image--maximizeFrame',\n image: 'ms-Image-image',\n imageCenter: 'ms-Image-image--center',\n imageContain: 'ms-Image-image--contain',\n imageCover: 'ms-Image-image--cover',\n imageCenterContain: 'ms-Image-image--centerContain',\n imageCenterCover: 'ms-Image-image--centerCover',\n imageNone: 'ms-Image-image--none',\n imageLandscape: 'ms-Image-image--landscape',\n imagePortrait: 'ms-Image-image--portrait',\n};\nexport var getStyles = function (props) {\n var className = props.className, width = props.width, height = props.height, maximizeFrame = props.maximizeFrame, isLoaded = props.isLoaded, shouldFadeIn = props.shouldFadeIn, shouldStartVisible = props.shouldStartVisible, isLandscape = props.isLandscape, isCenter = props.isCenter, isContain = props.isContain, isCover = props.isCover, isCenterContain = props.isCenterContain, isCenterCover = props.isCenterCover, isNone = props.isNone, isError = props.isError, isNotImageFit = props.isNotImageFit, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var ImageFitStyles = {\n position: 'absolute',\n left: '50% /* @noflip */',\n top: '50%',\n transform: 'translate(-50%,-50%)', // @todo test RTL renders transform: translate(50%,-50%);\n };\n // Cut the mustard using msMaxTouchPoints to detect IE11 which does not support CSS object-fit\n var window = getWindow();\n var supportsObjectFit = window !== undefined &&\n // eslint-disable-next-line @fluentui/max-len\n // cast needed as vendor prefixed `msMaxTouchPoints` api is no longer part of TS lib declaration - introduced with TS 4.4\n window.navigator.msMaxTouchPoints === undefined;\n var fallbackObjectFitStyles = (isContain && isLandscape) || (isCover && !isLandscape)\n ? { width: '100%', height: 'auto' }\n : { width: 'auto', height: '100%' };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n overflow: 'hidden',\n },\n maximizeFrame && [\n classNames.rootMaximizeFrame,\n {\n height: '100%',\n width: '100%',\n },\n ],\n isLoaded && shouldFadeIn && !shouldStartVisible && AnimationClassNames.fadeIn400,\n (isCenter || isContain || isCover || isCenterContain || isCenterCover) && {\n position: 'relative',\n },\n className,\n ],\n image: [\n classNames.image,\n {\n display: 'block',\n opacity: 0,\n },\n isLoaded && [\n 'is-loaded',\n {\n opacity: 1,\n },\n ],\n isCenter && [classNames.imageCenter, ImageFitStyles],\n isContain && [\n classNames.imageContain,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'contain',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCover && [\n classNames.imageCover,\n supportsObjectFit && {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n !supportsObjectFit && fallbackObjectFitStyles,\n !supportsObjectFit && ImageFitStyles,\n ],\n isCenterContain && [\n classNames.imageCenterContain,\n isLandscape && {\n maxWidth: '100%',\n },\n !isLandscape && {\n maxHeight: '100%',\n },\n ImageFitStyles,\n ],\n isCenterCover && [\n classNames.imageCenterCover,\n isLandscape && {\n maxHeight: '100%',\n },\n !isLandscape && {\n maxWidth: '100%',\n },\n ImageFitStyles,\n ],\n isNone && [\n classNames.imageNone,\n {\n width: 'auto',\n height: 'auto',\n },\n ],\n isNotImageFit && [\n !!width &&\n !height && {\n height: 'auto',\n width: '100%',\n },\n !width &&\n !!height && {\n height: '100%',\n width: 'auto',\n },\n !!width &&\n !!height && {\n height: '100%',\n width: '100%',\n },\n ],\n isLandscape && classNames.imageLandscape,\n !isLandscape && classNames.imagePortrait,\n !isLoaded && 'is-notLoaded',\n shouldFadeIn && 'is-fadeIn',\n isError && 'is-error',\n ],\n };\n};\n//# sourceMappingURL=Image.styles.js.map","import { styled } from '../../Utilities';\nimport { ImageBase } from './Image.base';\nimport { getStyles } from './Image.styles';\nexport var Image = styled(ImageBase, getStyles, undefined, {\n scope: 'Image',\n}, true);\nImage.displayName = 'Image';\n//# sourceMappingURL=Image.js.map","import { mergeStyleSets } from '../../Styling';\n/** Class names used in themeable and non-themeable Icon components */\nexport var classNames = mergeStyleSets({\n root: {\n display: 'inline-block',\n textDecoration: 'inherit',\n },\n placeholder: [\n 'ms-Icon-placeHolder',\n {\n width: '1em',\n },\n ],\n image: [\n 'ms-Icon-imageContainer',\n {\n overflow: 'hidden',\n },\n ],\n});\n/** Class name used only in non-themeable Icon components */\nexport var MS_ICON = 'ms-Icon';\nexport var getStyles = function (props) {\n var className = props.className, iconClassName = props.iconClassName, isPlaceholder = props.isPlaceholder, isImage = props.isImage, styles = props.styles;\n return {\n root: [\n isPlaceholder && classNames.placeholder,\n classNames.root,\n isImage && classNames.image,\n iconClassName,\n className,\n styles && styles.root,\n // eslint-disable-next-line deprecation/deprecation\n styles && styles.imageContainer,\n ],\n };\n};\n//# sourceMappingURL=Icon.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNames, MS_ICON } from './Icon.styles';\nimport { css, getNativeProps, htmlElementProperties, memoizeFunction } from '../../Utilities';\nimport { getIcon } from '../../Styling';\nexport var getIconContent = memoizeFunction(function (iconName) {\n var _a = getIcon(iconName) || {\n subset: {},\n code: undefined,\n }, code = _a.code, subset = _a.subset;\n if (!code) {\n return null;\n }\n return {\n children: code,\n iconClassName: subset.className,\n fontFamily: subset.fontFace && subset.fontFace.fontFamily,\n mergeImageProps: subset.mergeImageProps,\n };\n}, undefined, true /*ignoreNullOrUndefinedResult */);\n/**\n * Fast icon component which only supports font glyphs (not images) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var FontIcon = function (props) {\n var iconName = props.iconName, className = props.className, _a = props.style, style = _a === void 0 ? {} : _a;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, children = iconContent.children, fontFamily = iconContent.fontFamily, mergeImageProps = iconContent.mergeImageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties);\n var accessibleName = props['aria-label'] || props.title;\n var containerProps = props['aria-label'] || props['aria-labelledby'] || props.title\n ? {\n role: mergeImageProps ? undefined : 'img',\n }\n : {\n 'aria-hidden': true,\n };\n var finalChildren = children;\n if (mergeImageProps) {\n if (typeof children === 'object' && typeof children.props === 'object' && accessibleName) {\n finalChildren = React.cloneElement(children, { alt: accessibleName });\n }\n }\n return (React.createElement(\"i\", __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: css(MS_ICON, classNames.root, iconClassName, !iconName && classNames.placeholder, className), \n // Apply the font family this way to ensure it doesn't get overridden by Fabric Core ms-Icon styles\n // https://github.com/microsoft/fluentui/issues/10449\n style: __assign({ fontFamily: fontFamily }, style) }), finalChildren));\n};\n/**\n * Memoized helper for rendering a FontIcon.\n * @param iconName - The name of the icon to use from the icon font.\n * @param className - Class name for styling the icon.\n * @param ariaLabel - Label for the icon for the benefit of screen readers.\n * {@docCategory Icon}\n */\nexport var getFontIcon = memoizeFunction(function (iconName, className, ariaLabel) {\n return FontIcon({ iconName: iconName, className: className, 'aria-label': ariaLabel });\n});\n//# sourceMappingURL=FontIcon.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconType } from './Icon.types';\nimport { Image } from '../Image/Image';\nimport { ImageLoadState } from '../Image/Image.types';\nimport { getNativeProps, htmlElementProperties, classNamesFunction } from '../../Utilities';\nimport { getIconContent } from './FontIcon';\nvar getClassNames = classNamesFunction({\n // Icon is used a lot by other components.\n // It's likely to see expected cases which pass different className to the Icon.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar IconBase = /** @class */ (function (_super) {\n __extends(IconBase, _super);\n function IconBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onImageLoadingStateChange = function (state) {\n if (_this.props.imageProps && _this.props.imageProps.onLoadingStateChange) {\n _this.props.imageProps.onLoadingStateChange(state);\n }\n if (state === ImageLoadState.error) {\n _this.setState({ imageLoadError: true });\n }\n };\n _this.state = {\n imageLoadError: false,\n };\n return _this;\n }\n IconBase.prototype.render = function () {\n var _a = this.props, children = _a.children, className = _a.className, styles = _a.styles, iconName = _a.iconName, imageErrorAs = _a.imageErrorAs, theme = _a.theme;\n var isPlaceholder = typeof iconName === 'string' && iconName.length === 0;\n var isImage = \n // eslint-disable-next-line deprecation/deprecation\n !!this.props.imageProps || this.props.iconType === IconType.image || this.props.iconType === IconType.Image;\n var iconContent = getIconContent(iconName) || {};\n var iconClassName = iconContent.iconClassName, iconContentChildren = iconContent.children, mergeImageProps = iconContent.mergeImageProps;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n iconClassName: iconClassName,\n isImage: isImage,\n isPlaceholder: isPlaceholder,\n });\n var RootType = isImage ? 'span' : 'i';\n var nativeProps = getNativeProps(this.props, htmlElementProperties, [\n 'aria-label',\n ]);\n var imageLoadError = this.state.imageLoadError;\n var imageProps = __assign(__assign({}, this.props.imageProps), { onLoadingStateChange: this._onImageLoadingStateChange });\n var ImageType = (imageLoadError && imageErrorAs) || Image;\n // eslint-disable-next-line deprecation/deprecation\n var ariaLabel = this.props['aria-label'] || this.props.ariaLabel;\n var accessibleName = imageProps.alt || ariaLabel || this.props.title;\n var hasName = !!(accessibleName ||\n this.props['aria-labelledby'] ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby']);\n var containerProps = hasName\n ? {\n role: isImage || mergeImageProps ? undefined : 'img',\n 'aria-label': isImage || mergeImageProps ? undefined : accessibleName,\n }\n : {\n 'aria-hidden': true,\n };\n var finalIconContentChildren = iconContentChildren;\n if (mergeImageProps && iconContentChildren && typeof iconContentChildren === 'object' && accessibleName) {\n finalIconContentChildren = React.cloneElement(iconContentChildren, {\n alt: accessibleName,\n });\n }\n return (React.createElement(RootType, __assign({ \"data-icon-name\": iconName }, containerProps, nativeProps, (mergeImageProps\n ? {\n title: undefined,\n 'aria-label': undefined,\n }\n : {}), { className: classNames.root }), isImage ? React.createElement(ImageType, __assign({}, imageProps)) : children || finalIconContentChildren));\n };\n return IconBase;\n}(React.Component));\nexport { IconBase };\n//# sourceMappingURL=Icon.base.js.map","import { styled } from '../../Utilities';\nimport { IconBase } from './Icon.base';\nimport { getStyles } from './Icon.styles';\n/**\n * Legacy Icon component which can be targeted by customization. It's recommended to use `FontIcon`\n * or `ImageIcon` instead, especially in scenarios where rendering performance is important.\n * {@docCategory Icon}\n */\nexport var Icon = styled(IconBase, getStyles, undefined, {\n scope: 'Icon',\n}, true);\nIcon.displayName = 'Icon';\n//# sourceMappingURL=Icon.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { Image } from '../Image/Image';\nimport { css, getNativeProps, htmlElementProperties } from '../../Utilities';\nimport { classNames, MS_ICON } from './Icon.styles';\n/**\n * Fast icon component which only supports images (not font glyphs) and can't be targeted by customizations.\n * To style the icon, use `className` or reference `ms-Icon` in CSS.\n * {@docCategory Icon}\n */\nexport var ImageIcon = function (props) {\n var className = props.className, imageProps = props.imageProps;\n var nativeProps = getNativeProps(props, htmlElementProperties, [\n 'aria-label',\n 'aria-labelledby',\n 'title',\n 'aria-describedby',\n ]);\n var altText = imageProps.alt || props['aria-label'];\n var hasName = altText ||\n props['aria-labelledby'] ||\n props.title ||\n imageProps['aria-label'] ||\n imageProps['aria-labelledby'] ||\n imageProps.title;\n // move naming or describing attributes from the container (where they are invalid) to the image\n var imageNameProps = {\n 'aria-labelledby': props['aria-labelledby'],\n 'aria-describedby': props['aria-describedby'],\n title: props.title,\n };\n var containerProps = hasName\n ? {}\n : {\n 'aria-hidden': true,\n };\n return (React.createElement(\"div\", __assign({}, containerProps, nativeProps, { className: css(MS_ICON, classNames.root, classNames.image, className) }),\n React.createElement(Image, __assign({}, imageNameProps, imageProps, { alt: hasName ? altText : '' }))));\n};\n//# sourceMappingURL=ImageIcon.js.map","/**\n * {@docCategory Persona}\n */\nexport var PersonaSize;\n(function (PersonaSize) {\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size8` instead.\n */\n PersonaSize[PersonaSize[\"tiny\"] = 0] = \"tiny\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size24` instead.\n */\n PersonaSize[PersonaSize[\"extraExtraSmall\"] = 1] = \"extraExtraSmall\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size32` instead.\n */\n PersonaSize[PersonaSize[\"extraSmall\"] = 2] = \"extraSmall\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size40` instead.\n */\n PersonaSize[PersonaSize[\"small\"] = 3] = \"small\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size48` instead.\n */\n PersonaSize[PersonaSize[\"regular\"] = 4] = \"regular\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size72` instead.\n */\n PersonaSize[PersonaSize[\"large\"] = 5] = \"large\";\n /**\n * Deprecated in favor of standardized numeric sizing.\n * @deprecated Use `size100` instead.\n */\n PersonaSize[PersonaSize[\"extraLarge\"] = 6] = \"extraLarge\";\n /**\n * No `PersonaCoin` is rendered.\n */\n PersonaSize[PersonaSize[\"size8\"] = 17] = \"size8\";\n /**\n * No `PersonaCoin` is rendered. Deprecated to align with design specifications.\n * @deprecated Use `size8` instead.\n */\n PersonaSize[PersonaSize[\"size10\"] = 9] = \"size10\";\n /**\n * Renders a 16px `PersonaCoin`.\n * @deprecated Deprecated due to not being in the design specification.\n */\n PersonaSize[PersonaSize[\"size16\"] = 8] = \"size16\";\n /**\n * Renders a 24px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size24\"] = 10] = \"size24\";\n /**\n * Renders a 28px `PersonaCoin`.\n * @deprecated Deprecated due to not being in the design specification.\n */\n PersonaSize[PersonaSize[\"size28\"] = 7] = \"size28\";\n /**\n * Renders a 32px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size32\"] = 11] = \"size32\";\n /**\n * Renders a 40px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size40\"] = 12] = \"size40\";\n /**\n * Renders a 48px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size48\"] = 13] = \"size48\";\n /**\n * Renders a 56px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size56\"] = 16] = \"size56\";\n /**\n * Renders a 72px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size72\"] = 14] = \"size72\";\n /**\n * Renders a 100px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size100\"] = 15] = \"size100\";\n /**\n * Renders a 120px `PersonaCoin`.\n */\n PersonaSize[PersonaSize[\"size120\"] = 18] = \"size120\";\n})(PersonaSize || (PersonaSize = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaPresence;\n(function (PersonaPresence) {\n PersonaPresence[PersonaPresence[\"none\"] = 0] = \"none\";\n PersonaPresence[PersonaPresence[\"offline\"] = 1] = \"offline\";\n PersonaPresence[PersonaPresence[\"online\"] = 2] = \"online\";\n PersonaPresence[PersonaPresence[\"away\"] = 3] = \"away\";\n PersonaPresence[PersonaPresence[\"dnd\"] = 4] = \"dnd\";\n PersonaPresence[PersonaPresence[\"blocked\"] = 5] = \"blocked\";\n PersonaPresence[PersonaPresence[\"busy\"] = 6] = \"busy\";\n})(PersonaPresence || (PersonaPresence = {}));\n/**\n * {@docCategory Persona}\n */\nexport var PersonaInitialsColor;\n(function (PersonaInitialsColor) {\n PersonaInitialsColor[PersonaInitialsColor[\"lightBlue\"] = 0] = \"lightBlue\";\n PersonaInitialsColor[PersonaInitialsColor[\"blue\"] = 1] = \"blue\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkBlue\"] = 2] = \"darkBlue\";\n PersonaInitialsColor[PersonaInitialsColor[\"teal\"] = 3] = \"teal\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightGreen\"] = 4] = \"lightGreen\";\n PersonaInitialsColor[PersonaInitialsColor[\"green\"] = 5] = \"green\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkGreen\"] = 6] = \"darkGreen\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightPink\"] = 7] = \"lightPink\";\n PersonaInitialsColor[PersonaInitialsColor[\"pink\"] = 8] = \"pink\";\n PersonaInitialsColor[PersonaInitialsColor[\"magenta\"] = 9] = \"magenta\";\n PersonaInitialsColor[PersonaInitialsColor[\"purple\"] = 10] = \"purple\";\n /**\n * @deprecated `black` is a color that can result in offensive persona coins with some initials combinations,\n * so it can only be set with overrides. Will be removed in a future major release.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"black\"] = 11] = \"black\";\n PersonaInitialsColor[PersonaInitialsColor[\"orange\"] = 12] = \"orange\";\n /**\n * @deprecated `red` is a color that often has a special meaning, so it is considered a reserved color and\n * can only be set with overrides. Will be removed in a future major release.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"red\"] = 13] = \"red\";\n PersonaInitialsColor[PersonaInitialsColor[\"darkRed\"] = 14] = \"darkRed\";\n /**\n * Transparent is not intended to be used with typical initials due to accessibility issues.\n * Its primary use is for overflow buttons, so it is considered a reserved color and can only be set with overrides.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"transparent\"] = 15] = \"transparent\";\n PersonaInitialsColor[PersonaInitialsColor[\"violet\"] = 16] = \"violet\";\n PersonaInitialsColor[PersonaInitialsColor[\"lightRed\"] = 17] = \"lightRed\";\n PersonaInitialsColor[PersonaInitialsColor[\"gold\"] = 18] = \"gold\";\n PersonaInitialsColor[PersonaInitialsColor[\"burgundy\"] = 19] = \"burgundy\";\n PersonaInitialsColor[PersonaInitialsColor[\"warmGray\"] = 20] = \"warmGray\";\n PersonaInitialsColor[PersonaInitialsColor[\"coolGray\"] = 21] = \"coolGray\";\n /**\n * `gray` is a color that can result in offensive persona coins with some initials combinations,\n * so it can only be set with overrides.\n */\n PersonaInitialsColor[PersonaInitialsColor[\"gray\"] = 22] = \"gray\";\n PersonaInitialsColor[PersonaInitialsColor[\"cyan\"] = 23] = \"cyan\";\n PersonaInitialsColor[PersonaInitialsColor[\"rust\"] = 24] = \"rust\";\n})(PersonaInitialsColor || (PersonaInitialsColor = {}));\n//# sourceMappingURL=Persona.types.js.map","var _a;\nimport { PersonaPresence, PersonaSize } from './Persona.types';\n// Persona Sizes\nexport var personaSize;\n(function (personaSize) {\n personaSize.size8 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size10 = '20px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size16 = '16px';\n personaSize.size24 = '24px';\n // TODO: remove in a future major release as it's deprecated.\n personaSize.size28 = '28px';\n personaSize.size32 = '32px';\n personaSize.size40 = '40px';\n personaSize.size48 = '48px';\n personaSize.size56 = '56px';\n personaSize.size72 = '72px';\n personaSize.size100 = '100px';\n personaSize.size120 = '120px';\n})(personaSize || (personaSize = {}));\n// Persona Presence Sizes\nexport var personaPresenceSize;\n(function (personaPresenceSize) {\n personaPresenceSize.size6 = '6px';\n personaPresenceSize.size8 = '8px';\n personaPresenceSize.size12 = '12px';\n personaPresenceSize.size16 = '16px';\n personaPresenceSize.size20 = '20px';\n personaPresenceSize.size28 = '28px';\n personaPresenceSize.size32 = '32px';\n /**\n * @deprecated This is now unused\n */\n personaPresenceSize.border = '2px';\n})(personaPresenceSize || (personaPresenceSize = {}));\n// TODO: remove the deprecated parts in a future major release.\nexport var sizeBoolean = function (size) { return ({\n isSize8: size === PersonaSize.size8,\n /* eslint-disable deprecation/deprecation */\n isSize10: size === PersonaSize.size10 || size === PersonaSize.tiny,\n isSize16: size === PersonaSize.size16,\n isSize24: size === PersonaSize.size24 || size === PersonaSize.extraExtraSmall,\n isSize28: size === PersonaSize.size28 || size === PersonaSize.extraSmall,\n isSize32: size === PersonaSize.size32,\n isSize40: size === PersonaSize.size40 || size === PersonaSize.small,\n isSize48: size === PersonaSize.size48 || size === PersonaSize.regular,\n isSize56: size === PersonaSize.size56,\n isSize72: size === PersonaSize.size72 || size === PersonaSize.large,\n isSize100: size === PersonaSize.size100 || size === PersonaSize.extraLarge,\n isSize120: size === PersonaSize.size120,\n}); };\nexport var sizeToPixels = (_a = {},\n // Old deprecated sizes\n _a[PersonaSize.tiny] = 10,\n _a[PersonaSize.extraExtraSmall] = 24,\n _a[PersonaSize.extraSmall] = 28,\n _a[PersonaSize.small] = 40,\n _a[PersonaSize.regular] = 48,\n _a[PersonaSize.large] = 72,\n _a[PersonaSize.extraLarge] = 100,\n // New sizes\n _a[PersonaSize.size8] = 8,\n _a[PersonaSize.size10] = 10,\n _a[PersonaSize.size16] = 16,\n _a[PersonaSize.size24] = 24,\n _a[PersonaSize.size28] = 28,\n /* eslint-enable deprecation/deprecation */\n _a[PersonaSize.size32] = 32,\n _a[PersonaSize.size40] = 40,\n _a[PersonaSize.size48] = 48,\n _a[PersonaSize.size56] = 56,\n _a[PersonaSize.size72] = 72,\n _a[PersonaSize.size100] = 100,\n _a[PersonaSize.size120] = 120,\n _a);\nexport var presenceBoolean = function (presence) { return ({\n isAvailable: presence === PersonaPresence.online,\n isAway: presence === PersonaPresence.away,\n isBlocked: presence === PersonaPresence.blocked,\n isBusy: presence === PersonaPresence.busy,\n isDoNotDisturb: presence === PersonaPresence.dnd,\n isOffline: presence === PersonaPresence.offline,\n}); };\n//# sourceMappingURL=PersonaConsts.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../../Utilities';\nimport { Icon } from '../../../Icon';\nimport { PersonaPresence as PersonaPresenceEnum } from '../Persona.types';\nimport { sizeBoolean } from '../PersonaConsts';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nvar coinSizeFontScaleFactor = 6;\nvar coinSizePresenceScaleFactor = 3;\nvar presenceMaxSize = 40;\nvar presenceFontMaxSize = 20;\nvar getClassNames = classNamesFunction({\n // There can be many PersonaPresence rendered with different sizes.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\n/**\n * PersonaPresence with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaPresenceBase = React.forwardRef(function (props, forwardedRef) {\n var coinSize = props.coinSize, isOutOfOffice = props.isOutOfOffice, styles = props.styles, // Use getStyles from props.\n presence = props.presence, theme = props.theme, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors;\n var rootRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n var size = sizeBoolean(props.size);\n // Render Presence Icon if Persona is above size 32.\n var renderIcon = !(size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) &&\n (coinSize ? coinSize > 32 : true);\n var presenceHeightWidth = coinSize\n ? coinSize / coinSizePresenceScaleFactor < presenceMaxSize\n ? coinSize / coinSizePresenceScaleFactor + 'px'\n : presenceMaxSize + 'px'\n : '';\n var presenceFontSize = coinSize\n ? coinSize / coinSizeFontScaleFactor < presenceFontMaxSize\n ? coinSize / coinSizeFontScaleFactor + 'px'\n : presenceFontMaxSize + 'px'\n : '';\n var coinSizeWithPresenceIconStyle = coinSize\n ? { fontSize: presenceFontSize, lineHeight: presenceHeightWidth }\n : undefined;\n var coinSizeWithPresenceStyle = coinSize ? { width: presenceHeightWidth, height: presenceHeightWidth } : undefined;\n // Use getStyles from props, or fall back to getStyles from styles file.\n var classNames = getClassNames(styles, {\n theme: theme,\n presence: presence,\n size: props.size,\n isOutOfOffice: isOutOfOffice,\n presenceColors: presenceColors,\n });\n if (presence === PersonaPresenceEnum.none) {\n return null;\n }\n return (React.createElement(\"div\", { role: \"presentation\", className: classNames.presence, style: coinSizeWithPresenceStyle, title: presenceTitle, ref: mergedRootRef }, renderIcon && (React.createElement(Icon, { className: classNames.presenceIcon, iconName: determineIcon(props.presence, props.isOutOfOffice), style: coinSizeWithPresenceIconStyle }))));\n});\nPersonaPresenceBase.displayName = 'PersonaPresenceBase';\nfunction determineIcon(presence, isOutOfOffice) {\n if (!presence) {\n return undefined;\n }\n var oofIcon = 'SkypeArrow';\n switch (PersonaPresenceEnum[presence]) {\n case 'online':\n return 'SkypeCheck';\n case 'away':\n return isOutOfOffice ? oofIcon : 'SkypeClock';\n case 'dnd':\n return 'SkypeMinus';\n case 'offline':\n return isOutOfOffice ? oofIcon : '';\n }\n return '';\n}\n//# sourceMappingURL=PersonaPresence.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { personaPresenceSize, presenceBoolean, sizeBoolean } from '../PersonaConsts';\nvar GlobalClassNames = {\n presence: 'ms-Persona-presence',\n presenceIcon: 'ms-Persona-presenceIcon',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f;\n var theme = props.theme, presenceColors = props.presenceColors;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var size = sizeBoolean(props.size);\n var presence = presenceBoolean(props.presence);\n // Presence colors\n var presenceColorAvailable = (presenceColors && presenceColors.available) || '#6BB700';\n var presenceColorAway = (presenceColors && presenceColors.away) || '#FFAA44';\n var presenceColorBusy = (presenceColors && presenceColors.busy) || '#C43148';\n var presenceColorDnd = (presenceColors && presenceColors.dnd) || '#C50F1F';\n var presenceColorOffline = (presenceColors && presenceColors.offline) || '#8A8886';\n var presenceColorOof = (presenceColors && presenceColors.oof) || '#B4009E';\n var presenceColorBackground = (presenceColors && presenceColors.background) || semanticColors.bodyBackground;\n var isOpenCirclePresence = presence.isOffline ||\n (props.isOutOfOffice && (presence.isAvailable || presence.isBusy || presence.isAway || presence.isDoNotDisturb));\n var borderSizeForSmallPersonas = '1px';\n var borderSizeForLargePersonas = '2px';\n var borderSize = size.isSize72 || size.isSize100 ? borderSizeForLargePersonas : borderSizeForSmallPersonas;\n return {\n presence: [\n classNames.presence,\n __assign(__assign({ position: 'absolute', height: personaPresenceSize.size12, width: personaPresenceSize.size12, borderRadius: '50%', top: 'auto', right: '-2px', bottom: '-2px', border: \"2px solid \".concat(presenceColorBackground), textAlign: 'center', boxSizing: 'content-box', backgroundClip: 'border-box' }, getHighContrastNoAdjustStyle()), { selectors: (_a = {},\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n backgroundColor: 'WindowText',\n },\n _a) }),\n (size.isSize8 || size.isSize10) && {\n right: 'auto',\n top: '7px',\n left: 0,\n border: 0,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n top: '9px',\n border: '1px solid WindowText',\n },\n _b),\n },\n (size.isSize8 || size.isSize10 || size.isSize24 || size.isSize28 || size.isSize32) &&\n makeSizeStyle(personaPresenceSize.size8),\n (size.isSize40 || size.isSize48) && makeSizeStyle(personaPresenceSize.size12),\n size.isSize16 && {\n height: personaPresenceSize.size6,\n width: personaPresenceSize.size6,\n borderWidth: '1.5px',\n },\n size.isSize56 && makeSizeStyle(personaPresenceSize.size16),\n size.isSize72 && makeSizeStyle(personaPresenceSize.size20),\n size.isSize100 && makeSizeStyle(personaPresenceSize.size28),\n size.isSize120 && makeSizeStyle(personaPresenceSize.size32),\n presence.isAvailable && {\n backgroundColor: presenceColorAvailable,\n selectors: (_c = {},\n _c[HighContrastSelector] = backgroundColor('Highlight'),\n _c),\n },\n presence.isAway && backgroundColor(presenceColorAway),\n presence.isBlocked && [\n {\n selectors: (_d = {\n // Only show :after at larger sizes\n ':after': size.isSize40 || size.isSize48 || size.isSize72 || size.isSize100\n ? {\n content: '\"\"',\n width: '100%',\n height: borderSize,\n backgroundColor: presenceColorBusy,\n transform: 'translateY(-50%) rotate(-45deg)',\n position: 'absolute',\n top: '50%',\n left: 0,\n }\n : undefined\n },\n _d[HighContrastSelector] = {\n selectors: {\n ':after': {\n width: \"calc(100% - 4px)\",\n left: '2px',\n backgroundColor: 'Window',\n },\n },\n },\n _d),\n },\n ],\n presence.isBusy && backgroundColor(presenceColorBusy),\n presence.isDoNotDisturb && backgroundColor(presenceColorDnd),\n presence.isOffline && backgroundColor(presenceColorOffline),\n (isOpenCirclePresence || presence.isBlocked) && [\n {\n backgroundColor: presenceColorBackground,\n selectors: (_e = {\n ':before': {\n content: '\"\"',\n width: '100%',\n height: '100%',\n position: 'absolute',\n top: 0,\n left: 0,\n border: \"\".concat(borderSize, \" solid \").concat(presenceColorBusy),\n borderRadius: '50%',\n boxSizing: 'border-box',\n }\n },\n _e[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n selectors: {\n ':before': {\n width: \"calc(100% - 2px)\",\n height: \"calc(100% - 2px)\",\n top: '1px',\n left: '1px',\n borderColor: 'Window',\n },\n },\n },\n _e),\n },\n ],\n isOpenCirclePresence && presence.isAvailable && makeBeforeBorderStyle(borderSize, presenceColorAvailable),\n isOpenCirclePresence && presence.isBusy && makeBeforeBorderStyle(borderSize, presenceColorBusy),\n isOpenCirclePresence && presence.isAway && makeBeforeBorderStyle(borderSize, presenceColorOof),\n isOpenCirclePresence && presence.isDoNotDisturb && makeBeforeBorderStyle(borderSize, presenceColorDnd),\n isOpenCirclePresence && presence.isOffline && makeBeforeBorderStyle(borderSize, presenceColorOffline),\n isOpenCirclePresence &&\n presence.isOffline &&\n props.isOutOfOffice &&\n makeBeforeBorderStyle(borderSize, presenceColorOof),\n ],\n presenceIcon: [\n classNames.presenceIcon,\n {\n color: presenceColorBackground,\n fontSize: '6px',\n lineHeight: personaPresenceSize.size12,\n verticalAlign: 'top',\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n color: 'Window',\n },\n _f),\n },\n size.isSize56 && {\n fontSize: '8px',\n lineHeight: personaPresenceSize.size16,\n },\n size.isSize72 && {\n fontSize: fonts.small.fontSize,\n lineHeight: personaPresenceSize.size20,\n },\n size.isSize100 && {\n fontSize: fonts.medium.fontSize,\n lineHeight: personaPresenceSize.size28,\n },\n size.isSize120 && {\n fontSize: fonts.medium.fontSize,\n lineHeight: personaPresenceSize.size32,\n },\n presence.isAway && {\n position: 'relative',\n left: isOpenCirclePresence ? undefined : '1px',\n },\n isOpenCirclePresence && presence.isAvailable && makeOpenCircleIconStyle(presenceColorAvailable),\n isOpenCirclePresence && presence.isBusy && makeOpenCircleIconStyle(presenceColorBusy),\n isOpenCirclePresence && presence.isAway && makeOpenCircleIconStyle(presenceColorOof),\n isOpenCirclePresence && presence.isDoNotDisturb && makeOpenCircleIconStyle(presenceColorDnd),\n isOpenCirclePresence && presence.isOffline && makeOpenCircleIconStyle(presenceColorOffline),\n isOpenCirclePresence && presence.isOffline && props.isOutOfOffice && makeOpenCircleIconStyle(presenceColorOof),\n ],\n };\n};\nfunction makeOpenCircleIconStyle(color) {\n return {\n color: color,\n borderColor: color,\n };\n}\nfunction makeBeforeBorderStyle(borderSize, color) {\n return {\n selectors: {\n ':before': {\n border: \"\".concat(borderSize, \" solid \").concat(color),\n },\n },\n };\n}\nfunction makeSizeStyle(size) {\n return {\n height: size,\n width: size,\n };\n}\nfunction backgroundColor(color) {\n return { backgroundColor: color };\n}\n//# sourceMappingURL=PersonaPresence.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaPresenceBase } from './PersonaPresence.base';\nimport { getStyles } from './PersonaPresence.styles';\n/**\n * PersonaPresence is used to render an individual's presence.\n */\nexport var PersonaPresence = styled(PersonaPresenceBase, getStyles, undefined, { scope: 'PersonaPresence' });\n//# sourceMappingURL=PersonaPresence.js.map","import { PersonaInitialsColor } from './Persona.types';\n/**\n * Following colors are considered reserved and can only be set with overrides, so they are excluded from this set:\n * - `gray` and `black` can result in offensive persona coins with some initials combinations\n * - `red` often has a special meaning\n * - `transparent` is not intended to be used with typical initials due to accessibility issues;\n * its primary use is for Facepile overflow buttons.\n */\nvar COLOR_SWATCHES_LOOKUP = [\n PersonaInitialsColor.lightBlue,\n PersonaInitialsColor.blue,\n PersonaInitialsColor.darkBlue,\n PersonaInitialsColor.teal,\n PersonaInitialsColor.green,\n PersonaInitialsColor.darkGreen,\n PersonaInitialsColor.lightPink,\n PersonaInitialsColor.pink,\n PersonaInitialsColor.magenta,\n PersonaInitialsColor.purple,\n PersonaInitialsColor.orange,\n PersonaInitialsColor.lightRed,\n PersonaInitialsColor.darkRed,\n PersonaInitialsColor.violet,\n PersonaInitialsColor.gold,\n PersonaInitialsColor.burgundy,\n PersonaInitialsColor.warmGray,\n PersonaInitialsColor.cyan,\n PersonaInitialsColor.rust,\n PersonaInitialsColor.coolGray,\n];\nvar COLOR_SWATCHES_NUM_ENTRIES = COLOR_SWATCHES_LOOKUP.length;\nfunction getInitialsColorFromName(displayName) {\n var color = PersonaInitialsColor.blue;\n if (!displayName) {\n return color;\n }\n var hashCode = 0;\n for (var iLen = displayName.length - 1; iLen >= 0; iLen--) {\n var ch = displayName.charCodeAt(iLen);\n var shift = iLen % 8;\n // eslint-disable-next-line no-bitwise\n hashCode ^= (ch << shift) + (ch >> (8 - shift));\n }\n color = COLOR_SWATCHES_LOOKUP[hashCode % COLOR_SWATCHES_NUM_ENTRIES];\n return color;\n}\nfunction personaInitialsColorToHexCode(personaInitialsColor) {\n switch (personaInitialsColor) {\n case PersonaInitialsColor.lightBlue:\n return '#4F6BED';\n case PersonaInitialsColor.blue:\n return '#0078D4';\n case PersonaInitialsColor.darkBlue:\n return '#004E8C';\n case PersonaInitialsColor.teal:\n return '#038387';\n case PersonaInitialsColor.lightGreen:\n case PersonaInitialsColor.green:\n return '#498205';\n case PersonaInitialsColor.darkGreen:\n return '#0B6A0B';\n case PersonaInitialsColor.lightPink:\n return '#C239B3';\n case PersonaInitialsColor.pink:\n return '#E3008C';\n case PersonaInitialsColor.magenta:\n return '#881798';\n case PersonaInitialsColor.purple:\n return '#5C2E91';\n case PersonaInitialsColor.orange:\n return '#CA5010';\n // eslint-disable-next-line deprecation/deprecation\n case PersonaInitialsColor.red:\n return '#EE1111';\n case PersonaInitialsColor.lightRed:\n return '#D13438';\n case PersonaInitialsColor.darkRed:\n return '#A4262C';\n case PersonaInitialsColor.transparent:\n return 'transparent';\n case PersonaInitialsColor.violet:\n return '#8764B8';\n case PersonaInitialsColor.gold:\n return '#986F0B';\n case PersonaInitialsColor.burgundy:\n return '#750B1C';\n case PersonaInitialsColor.warmGray:\n return '#7A7574';\n case PersonaInitialsColor.cyan:\n return '#005B70';\n case PersonaInitialsColor.rust:\n return '#8E562E';\n case PersonaInitialsColor.coolGray:\n return '#69797E';\n // eslint-disable-next-line deprecation/deprecation\n case PersonaInitialsColor.black:\n return '#1D1D1D';\n case PersonaInitialsColor.gray:\n return '#393939';\n }\n}\n/** @deprecated Use `getPersonaInitialsColor` */\nexport function initialsColorPropToColorCode(props) {\n return getPersonaInitialsColor(props);\n}\n/**\n * Gets the hex color string (prefixed with #) for the given persona props.\n * This is the logic used internally by the Persona control.\n * @param props - Current persona props\n * @returns Hex color string prefixed with #\n */\nexport function getPersonaInitialsColor(props) {\n // eslint-disable-next-line deprecation/deprecation\n var primaryText = props.primaryText, text = props.text;\n var initialsColor = props.initialsColor;\n var initialsColorCode;\n if (typeof initialsColor === 'string') {\n initialsColorCode = initialsColor;\n }\n else {\n initialsColor = initialsColor !== undefined ? initialsColor : getInitialsColorFromName(text || primaryText);\n initialsColorCode = personaInitialsColorToHexCode(initialsColor);\n }\n return initialsColorCode;\n}\n//# sourceMappingURL=PersonaInitialsColor.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, memoizeFunction, getInitials, getNativeProps, getRTL, getPropsWithDefaults, } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nimport { PersonaPresence } from '../PersonaPresence/index';\nimport { Icon } from '../../../Icon';\nimport { Image, ImageFit, ImageLoadState } from '../../../Image';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from '../Persona.types';\nimport { getPersonaInitialsColor } from '../PersonaInitialsColor';\nimport { sizeToPixels } from '../PersonaConsts';\nimport { useWarnings } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction({\n // There can be many PersonaCoin rendered with different sizes.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar getInitialsStyles = memoizeFunction(function (className, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin) {\n return mergeStyles(className, !showUnknownPersonaCoin && {\n backgroundColor: getPersonaInitialsColor({ text: text, initialsColor: initialsColor, primaryText: primaryText }),\n color: initialsTextColor,\n });\n});\nvar DEFAULT_PROPS = {\n size: PersonaSize.size48,\n presence: PersonaPresenceEnum.none,\n imageAlt: '',\n};\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'PersonaCoin',\n props: props,\n deprecations: { primaryText: 'text' },\n });\n }\n}\nfunction useImageLoadState(_a) {\n var onPhotoLoadingStateChange = _a.onPhotoLoadingStateChange, imageUrl = _a.imageUrl;\n var _b = React.useState(ImageLoadState.notLoaded), imageLoadState = _b[0], setImageLoadstate = _b[1];\n React.useEffect(function () {\n setImageLoadstate(ImageLoadState.notLoaded);\n }, [imageUrl]);\n var onLoadingStateChange = function (loadState) {\n setImageLoadstate(loadState);\n onPhotoLoadingStateChange === null || onPhotoLoadingStateChange === void 0 ? void 0 : onPhotoLoadingStateChange(loadState);\n };\n return [imageLoadState, onLoadingStateChange];\n}\n/**\n * PersonaCoin with no default styles.\n * [Use the `getStyles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaCoinBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n useDebugWarnings(props);\n var _a = useImageLoadState(props), imageLoadState = _a[0], onLoadingStateChange = _a[1];\n var renderCoin = getCoinRenderer(onLoadingStateChange);\n var className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, \n // eslint-disable-next-line deprecation/deprecation\n _b = props.onRenderCoin, \n // eslint-disable-next-line deprecation/deprecation\n onRenderCoin = _b === void 0 ? renderCoin : _b, \n // eslint-disable-next-line deprecation/deprecation\n _c = props.onRenderPersonaCoin, \n // eslint-disable-next-line deprecation/deprecation\n onRenderPersonaCoin = _c === void 0 ? onRenderCoin : _c, _d = props.onRenderInitials, onRenderInitials = _d === void 0 ? renderPersonaCoinInitials : _d, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, \n // eslint-disable-next-line deprecation/deprecation\n primaryText = props.primaryText, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, text = props.text, theme = props.theme, size = props.size;\n var divProps = getNativeProps(props, divProperties);\n var divCoinProps = getNativeProps(coinProps || {}, divProperties);\n var coinSizeStyle = coinSize ? { width: coinSize, height: coinSize } : undefined;\n var hideImage = showUnknownPersonaCoin;\n var personaPresenceProps = {\n coinSize: coinSize,\n isOutOfOffice: isOutOfOffice,\n presence: presence,\n presenceTitle: presenceTitle,\n presenceColors: presenceColors,\n size: size,\n theme: theme,\n };\n // Use getStyles from props, or fall back to getStyles from styles file.\n var classNames = getClassNames(styles, {\n theme: theme,\n className: coinProps && coinProps.className ? coinProps.className : className,\n size: size,\n coinSize: coinSize,\n showUnknownPersonaCoin: showUnknownPersonaCoin,\n });\n var shouldRenderInitials = Boolean(imageLoadState !== ImageLoadState.loaded &&\n ((showInitialsUntilImageLoads && imageUrl) || !imageUrl || imageLoadState === ImageLoadState.error || hideImage));\n return (React.createElement(\"div\", __assign({ role: \"presentation\" }, divProps, { className: classNames.coin, ref: forwardedRef }),\n // Render PersonaCoin if size is not size8. size10 and tiny need to removed after a deprecation cleanup.\n // eslint-disable-next-line deprecation/deprecation\n size !== PersonaSize.size8 && size !== PersonaSize.size10 && size !== PersonaSize.tiny ? (React.createElement(\"div\", __assign({ role: \"presentation\" }, divCoinProps, { className: classNames.imageArea, style: coinSizeStyle }),\n shouldRenderInitials && (React.createElement(\"div\", { className: getInitialsStyles(classNames.initials, initialsColor, initialsTextColor, text, primaryText, showUnknownPersonaCoin), style: coinSizeStyle, \"aria-hidden\": \"true\" }, onRenderInitials(props, renderPersonaCoinInitials))),\n !hideImage && onRenderPersonaCoin(props, renderCoin),\n React.createElement(PersonaPresence, __assign({}, personaPresenceProps)))) : // Otherwise, render just PersonaPresence.\n props.presence ? (React.createElement(PersonaPresence, __assign({}, personaPresenceProps))) : (\n // Just render Contact Icon if there isn't a Presence prop.\n React.createElement(Icon, { iconName: \"Contact\", className: classNames.size10WithoutPresenceIcon })),\n props.children));\n});\nPersonaCoinBase.displayName = 'PersonaCoinBase';\nvar getCoinRenderer = function (onLoadingStateChange) {\n return function (_a) {\n var coinSize = _a.coinSize, styles = _a.styles, imageUrl = _a.imageUrl, imageAlt = _a.imageAlt, imageShouldFadeIn = _a.imageShouldFadeIn, imageShouldStartVisible = _a.imageShouldStartVisible, theme = _a.theme, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, _b = _a.size, size = _b === void 0 ? DEFAULT_PROPS.size : _b;\n // Render the Image component only if an image URL is provided\n if (!imageUrl) {\n return null;\n }\n var classNames = getClassNames(styles, {\n theme: theme,\n size: size,\n showUnknownPersonaCoin: showUnknownPersonaCoin,\n });\n var dimension = coinSize || sizeToPixels[size];\n return (React.createElement(Image, { className: classNames.image, imageFit: ImageFit.cover, src: imageUrl, width: dimension, height: dimension, alt: imageAlt, shouldFadeIn: imageShouldFadeIn, shouldStartVisible: imageShouldStartVisible, onLoadingStateChange: onLoadingStateChange }));\n };\n};\nvar renderPersonaCoinInitials = function (_a) {\n var imageInitials = _a.imageInitials, allowPhoneInitials = _a.allowPhoneInitials, showUnknownPersonaCoin = _a.showUnknownPersonaCoin, text = _a.text, \n // eslint-disable-next-line deprecation/deprecation\n primaryText = _a.primaryText, theme = _a.theme;\n if (showUnknownPersonaCoin) {\n return React.createElement(Icon, { iconName: \"Help\" });\n }\n var isRTL = getRTL(theme);\n imageInitials = imageInitials || getInitials(text || primaryText || '', isRTL, allowPhoneInitials);\n return imageInitials !== '' ? React.createElement(\"span\", null, imageInitials) : React.createElement(Icon, { iconName: \"Contact\" });\n};\n//# sourceMappingURL=PersonaCoin.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getGlobalClassNames, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { sizeBoolean, sizeToPixels } from '../PersonaConsts';\nvar GlobalClassNames = {\n coin: 'ms-Persona-coin',\n imageArea: 'ms-Persona-imageArea',\n image: 'ms-Persona-image',\n initials: 'ms-Persona-initials',\n size8: 'ms-Persona--size8',\n size10: 'ms-Persona--size10',\n size16: 'ms-Persona--size16',\n size24: 'ms-Persona--size24',\n size28: 'ms-Persona--size28',\n size32: 'ms-Persona--size32',\n size40: 'ms-Persona--size40',\n size48: 'ms-Persona--size48',\n size56: 'ms-Persona--size56',\n size72: 'ms-Persona--size72',\n size100: 'ms-Persona--size100',\n size120: 'ms-Persona--size120',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, coinSize = props.coinSize;\n var palette = theme.palette, fonts = theme.fonts;\n var size = sizeBoolean(props.size);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // Static colors used when displaying 'unknown persona' coin\n var unknownPersonaBackgroundColor = 'rgb(234, 234, 234)';\n var unknownPersonaFontColor = 'rgb(168, 0, 0)';\n var dimension = coinSize || (props.size && sizeToPixels[props.size]) || 48;\n return {\n coin: [\n classNames.coin,\n fonts.medium,\n size.isSize8 && classNames.size8,\n size.isSize10 && classNames.size10,\n size.isSize16 && classNames.size16,\n size.isSize24 && classNames.size24,\n size.isSize28 && classNames.size28,\n size.isSize32 && classNames.size32,\n size.isSize40 && classNames.size40,\n size.isSize48 && classNames.size48,\n size.isSize56 && classNames.size56,\n size.isSize72 && classNames.size72,\n size.isSize100 && classNames.size100,\n size.isSize120 && classNames.size120,\n className,\n ],\n size10WithoutPresenceIcon: {\n fontSize: fonts.xSmall.fontSize,\n position: 'absolute',\n top: '5px',\n right: 'auto',\n left: 0,\n },\n imageArea: [\n classNames.imageArea,\n {\n position: 'relative',\n textAlign: 'center',\n flex: '0 0 auto',\n height: dimension,\n width: dimension,\n },\n dimension <= 10 && {\n overflow: 'visible',\n background: 'transparent',\n height: 0,\n width: 0,\n },\n ],\n image: [\n classNames.image,\n {\n marginRight: '10px',\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n border: 0,\n borderRadius: '50%',\n perspective: '1px',\n },\n dimension <= 10 && {\n overflow: 'visible',\n background: 'transparent',\n height: 0,\n width: 0,\n },\n dimension > 10 && {\n height: dimension,\n width: dimension,\n },\n ],\n initials: [\n classNames.initials,\n {\n borderRadius: '50%',\n color: props.showUnknownPersonaCoin ? unknownPersonaFontColor : palette.white,\n fontSize: fonts.large.fontSize,\n fontWeight: FontWeights.semibold,\n // copying the logic for the dimensions; defaulted to 46 for size48\n lineHeight: dimension === 48 ? 46 : dimension,\n height: dimension,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign(__assign({ border: '1px solid WindowText' }, getHighContrastNoAdjustStyle()), { color: 'WindowText', boxSizing: 'border-box', backgroundColor: 'Window !important' }),\n _a.i = {\n fontWeight: FontWeights.semibold,\n },\n _a),\n },\n props.showUnknownPersonaCoin && {\n backgroundColor: unknownPersonaBackgroundColor,\n },\n dimension < 32 && {\n fontSize: fonts.xSmall.fontSize,\n },\n dimension >= 32 &&\n dimension < 40 && {\n fontSize: fonts.medium.fontSize,\n },\n dimension >= 40 &&\n dimension < 56 && {\n fontSize: fonts.mediumPlus.fontSize,\n },\n dimension >= 56 &&\n dimension < 72 && {\n fontSize: fonts.xLarge.fontSize,\n },\n dimension >= 72 &&\n dimension < 100 && {\n fontSize: fonts.xxLarge.fontSize,\n },\n dimension >= 100 && {\n fontSize: fonts.superLarge.fontSize,\n },\n ],\n };\n};\n//# sourceMappingURL=PersonaCoin.styles.js.map","import { styled } from '../../../Utilities';\nimport { PersonaCoinBase } from './PersonaCoin.base';\nimport { getStyles } from './PersonaCoin.styles';\n/**\n * PersonaCoin is used to render an individual's avatar and presence.\n */\nexport var PersonaCoin = styled(PersonaCoinBase, getStyles, undefined, {\n scope: 'PersonaCoin',\n});\n//# sourceMappingURL=PersonaCoin.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, divProperties, getNativeProps, getPropsWithDefaults } from '../../Utilities';\nimport { TooltipHost, TooltipOverflowMode } from '../../Tooltip';\nimport { PersonaCoin } from './PersonaCoin/PersonaCoin';\nimport { PersonaPresence as PersonaPresenceEnum, PersonaSize } from './Persona.types';\nimport { useWarnings, useMergedRefs } from '@fluentui/react-hooks';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n size: PersonaSize.size48,\n presence: PersonaPresenceEnum.none,\n imageAlt: '',\n showOverflowTooltip: true,\n};\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Persona',\n props: props,\n deprecations: { primaryText: 'text' },\n });\n }\n}\n/**\n * Persona with no default styles.\n * [Use the `styles` API to add your own styles.](https://github.com/microsoft/fluentui/wiki/Styling)\n */\nexport var PersonaBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n useDebugWarnings(props);\n var rootRef = React.useRef(null);\n var mergedRootRef = useMergedRefs(forwardedRef, rootRef);\n /**\n * Deprecation helper for getting text.\n */\n var getText = function () {\n // eslint-disable-next-line deprecation/deprecation\n return props.text || props.primaryText || '';\n };\n /**\n * Renders various types of Text (primaryText, secondaryText, etc)\n * based on the classNames passed\n * @param elementClassNames - element className\n * @param renderFunction - render function\n * @param defaultRenderFunction - default render function\n */\n var renderElement = function (elementClassNames, renderFunction, defaultRenderFunction) {\n var content = renderFunction && renderFunction(props, defaultRenderFunction);\n return content ? (React.createElement(\"div\", { dir: \"auto\", className: elementClassNames }, content)) : undefined;\n };\n /**\n * using closure to wrap the default render behavior\n * to make it independent of the type of text passed\n * @param text - text to render\n */\n var onRenderText = function (text, tooltip) {\n if (tooltip === void 0) { tooltip = true; }\n // return default render behavior for valid text or undefined\n return text\n ? tooltip\n ? function () {\n // default onRender behavior\n return (React.createElement(TooltipHost, { content: text, overflowMode: TooltipOverflowMode.Parent, directionalHint: DirectionalHint.topLeftEdge }, text));\n }\n : function () { return React.createElement(React.Fragment, null, text); }\n : undefined;\n };\n var onInternalRenderPersonaCoin = function (providedCoinProps) {\n return React.createElement(PersonaCoin, __assign({}, providedCoinProps));\n };\n // wrapping default render behavior based on various props properties\n var onInternalRenderPrimaryText = onRenderText(getText(), props.showOverflowTooltip);\n var onInternalRenderSecondaryText = onRenderText(props.secondaryText, props.showOverflowTooltip);\n var onInternalRenderTertiaryText = onRenderText(props.tertiaryText, props.showOverflowTooltip);\n var onInternalRenderOptionalText = onRenderText(props.optionalText, props.showOverflowTooltip);\n var hidePersonaDetails = props.hidePersonaDetails, _a = props.onRenderOptionalText, onRenderOptionalText = _a === void 0 ? onInternalRenderOptionalText : _a, _b = props.onRenderPrimaryText, onRenderPrimaryText = _b === void 0 ? onInternalRenderPrimaryText : _b, _c = props.onRenderSecondaryText, onRenderSecondaryText = _c === void 0 ? onInternalRenderSecondaryText : _c, _d = props.onRenderTertiaryText, onRenderTertiaryText = _d === void 0 ? onInternalRenderTertiaryText : _d, _e = props.onRenderPersonaCoin, onRenderPersonaCoin = _e === void 0 ? onInternalRenderPersonaCoin : _e;\n var size = props.size;\n // These properties are to be explicitly passed into PersonaCoin because they are the only props directly used\n var allowPhoneInitials = props.allowPhoneInitials, className = props.className, coinProps = props.coinProps, showUnknownPersonaCoin = props.showUnknownPersonaCoin, coinSize = props.coinSize, styles = props.styles, imageAlt = props.imageAlt, imageInitials = props.imageInitials, imageShouldFadeIn = props.imageShouldFadeIn, imageShouldStartVisible = props.imageShouldStartVisible, imageUrl = props.imageUrl, initialsColor = props.initialsColor, initialsTextColor = props.initialsTextColor, isOutOfOffice = props.isOutOfOffice, onPhotoLoadingStateChange = props.onPhotoLoadingStateChange, \n // eslint-disable-next-line deprecation/deprecation\n onRenderCoin = props.onRenderCoin, onRenderInitials = props.onRenderInitials, presence = props.presence, presenceTitle = props.presenceTitle, presenceColors = props.presenceColors, showInitialsUntilImageLoads = props.showInitialsUntilImageLoads, showSecondaryText = props.showSecondaryText, theme = props.theme;\n var personaCoinProps = __assign({ allowPhoneInitials: allowPhoneInitials, showUnknownPersonaCoin: showUnknownPersonaCoin, coinSize: coinSize, imageAlt: imageAlt, imageInitials: imageInitials, imageShouldFadeIn: imageShouldFadeIn, imageShouldStartVisible: imageShouldStartVisible, imageUrl: imageUrl, initialsColor: initialsColor, initialsTextColor: initialsTextColor, onPhotoLoadingStateChange: onPhotoLoadingStateChange, onRenderCoin: onRenderCoin, onRenderInitials: onRenderInitials, presence: presence, presenceTitle: presenceTitle, showInitialsUntilImageLoads: showInitialsUntilImageLoads, size: size, text: getText(), isOutOfOffice: isOutOfOffice, presenceColors: presenceColors }, coinProps);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n showSecondaryText: showSecondaryText,\n presence: presence,\n size: size,\n });\n var divProps = getNativeProps(props, divProperties);\n var personaDetails = (React.createElement(\"div\", { className: classNames.details },\n renderElement(classNames.primaryText, onRenderPrimaryText, onInternalRenderPrimaryText),\n renderElement(classNames.secondaryText, onRenderSecondaryText, onInternalRenderSecondaryText),\n renderElement(classNames.tertiaryText, onRenderTertiaryText, onInternalRenderTertiaryText),\n renderElement(classNames.optionalText, onRenderOptionalText, onInternalRenderOptionalText),\n props.children));\n return (React.createElement(\"div\", __assign({}, divProps, { ref: mergedRootRef, className: classNames.root, style: coinSize ? { height: coinSize, minWidth: coinSize } : undefined }),\n onRenderPersonaCoin(personaCoinProps, onRenderPersonaCoin),\n /* eslint-disable deprecation/deprecation */\n (!hidePersonaDetails ||\n size === PersonaSize.size8 ||\n size === PersonaSize.size10 ||\n size === PersonaSize.tiny) &&\n personaDetails\n /* eslint-enable deprecation/deprecation */\n ));\n});\nPersonaBase.displayName = 'PersonaBase';\n//# sourceMappingURL=Persona.base.js.map","import { FontWeights, normalize, noWrap, getGlobalClassNames } from '../../Styling';\nimport { personaSize, presenceBoolean, sizeBoolean } from './PersonaConsts';\nvar GlobalClassNames = {\n root: 'ms-Persona',\n size8: 'ms-Persona--size8',\n size10: 'ms-Persona--size10',\n size16: 'ms-Persona--size16',\n size24: 'ms-Persona--size24',\n size28: 'ms-Persona--size28',\n size32: 'ms-Persona--size32',\n size40: 'ms-Persona--size40',\n size48: 'ms-Persona--size48',\n size56: 'ms-Persona--size56',\n size72: 'ms-Persona--size72',\n size100: 'ms-Persona--size100',\n size120: 'ms-Persona--size120',\n available: 'ms-Persona--online',\n away: 'ms-Persona--away',\n blocked: 'ms-Persona--blocked',\n busy: 'ms-Persona--busy',\n doNotDisturb: 'ms-Persona--donotdisturb',\n offline: 'ms-Persona--offline',\n details: 'ms-Persona-details',\n primaryText: 'ms-Persona-primaryText',\n secondaryText: 'ms-Persona-secondaryText',\n tertiaryText: 'ms-Persona-tertiaryText',\n optionalText: 'ms-Persona-optionalText',\n textContent: 'ms-Persona-textContent',\n};\nexport var getStyles = function (props) {\n var className = props.className, showSecondaryText = props.showSecondaryText, theme = props.theme;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var size = sizeBoolean(props.size);\n var presence = presenceBoolean(props.presence);\n var showSecondaryTextDefaultHeight = '16px';\n var sharedTextStyles = {\n color: semanticColors.bodySubtext,\n fontWeight: FontWeights.regular,\n fontSize: fonts.small.fontSize,\n };\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n normalize,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n height: personaSize.size48,\n minWidth: personaSize.size48,\n display: 'flex',\n alignItems: 'center',\n selectors: {\n '.contextualHost': {\n display: 'none',\n },\n },\n },\n size.isSize8 && [\n classNames.size8,\n {\n height: personaSize.size8,\n minWidth: personaSize.size8,\n },\n ],\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize10 && [\n classNames.size10,\n {\n height: personaSize.size10,\n minWidth: personaSize.size10,\n },\n ],\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize16 && [\n classNames.size16,\n {\n height: personaSize.size16,\n minWidth: personaSize.size16,\n },\n ],\n size.isSize24 && [\n classNames.size24,\n {\n height: personaSize.size24,\n minWidth: personaSize.size24,\n },\n ],\n size.isSize24 &&\n showSecondaryText && {\n height: '36px',\n },\n // TODO: Deprecated size and needs to be removed in a future major release.\n size.isSize28 && [\n classNames.size28,\n {\n height: personaSize.size28,\n minWidth: personaSize.size28,\n },\n ],\n size.isSize28 &&\n showSecondaryText && {\n height: '32px',\n },\n size.isSize32 && [\n classNames.size32,\n {\n height: personaSize.size32,\n minWidth: personaSize.size32,\n },\n ],\n size.isSize40 && [\n classNames.size40,\n {\n height: personaSize.size40,\n minWidth: personaSize.size40,\n },\n ],\n size.isSize48 && classNames.size48,\n size.isSize56 && [\n classNames.size56,\n {\n height: personaSize.size56,\n minWidth: personaSize.size56,\n },\n ],\n size.isSize72 && [\n classNames.size72,\n {\n height: personaSize.size72,\n minWidth: personaSize.size72,\n },\n ],\n size.isSize100 && [\n classNames.size100,\n {\n height: personaSize.size100,\n minWidth: personaSize.size100,\n },\n ],\n size.isSize120 && [\n classNames.size120,\n {\n height: personaSize.size120,\n minWidth: personaSize.size120,\n },\n ],\n /**\n * Modifiers: presence\n */\n presence.isAvailable && classNames.available,\n presence.isAway && classNames.away,\n presence.isBlocked && classNames.blocked,\n presence.isBusy && classNames.busy,\n presence.isDoNotDisturb && classNames.doNotDisturb,\n presence.isOffline && classNames.offline,\n className,\n ],\n details: [\n classNames.details,\n {\n padding: '0 24px 0 16px',\n minWidth: 0,\n width: '100%',\n textAlign: 'left',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n },\n (size.isSize8 || size.isSize10) && {\n paddingLeft: 17, // increased padding because we don't render a coin at this size\n },\n (size.isSize24 || size.isSize28 || size.isSize32) && {\n padding: '0 8px',\n },\n (size.isSize40 || size.isSize48) && {\n padding: '0 12px',\n },\n ],\n primaryText: [\n classNames.primaryText,\n noWrap,\n {\n color: semanticColors.bodyText,\n fontWeight: FontWeights.regular,\n fontSize: fonts.medium.fontSize,\n selectors: {\n ':hover': {\n color: semanticColors.inputTextHovered,\n },\n },\n },\n showSecondaryText && {\n height: showSecondaryTextDefaultHeight,\n lineHeight: showSecondaryTextDefaultHeight,\n overflowX: 'hidden',\n },\n (size.isSize8 || size.isSize10) && {\n fontSize: fonts.small.fontSize,\n lineHeight: personaSize.size8,\n },\n size.isSize16 && {\n lineHeight: personaSize.size28,\n },\n (size.isSize24 || size.isSize28 || size.isSize32 || size.isSize40 || size.isSize48) &&\n showSecondaryText && {\n height: 18,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n fontSize: fonts.xLarge.fontSize,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n showSecondaryText && {\n height: 22,\n },\n ],\n secondaryText: [\n classNames.secondaryText,\n noWrap,\n sharedTextStyles,\n (size.isSize8 || size.isSize10 || size.isSize16 || size.isSize24 || size.isSize28 || size.isSize32) && {\n display: 'none',\n },\n showSecondaryText && {\n display: 'block',\n height: showSecondaryTextDefaultHeight,\n lineHeight: showSecondaryTextDefaultHeight,\n overflowX: 'hidden',\n },\n size.isSize24 &&\n showSecondaryText && {\n height: 18,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) && {\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize56 || size.isSize72 || size.isSize100 || size.isSize120) &&\n showSecondaryText && {\n height: 18,\n },\n ],\n tertiaryText: [\n classNames.tertiaryText,\n noWrap,\n sharedTextStyles,\n {\n display: 'none',\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize72 || size.isSize100 || size.isSize120) && {\n display: 'block',\n },\n ],\n optionalText: [\n classNames.optionalText,\n noWrap,\n sharedTextStyles,\n {\n display: 'none',\n fontSize: fonts.medium.fontSize,\n },\n (size.isSize100 || size.isSize120) && {\n display: 'block',\n },\n ],\n textContent: [classNames.textContent, noWrap],\n };\n};\n//# sourceMappingURL=Persona.styles.js.map","import { styled } from '../../Utilities';\nimport { PersonaBase } from './Persona.base';\nimport { getStyles } from './Persona.styles';\n/**\n * Personas are used for rendering an individual's avatar, presence and details.\n * They are used within the PeoplePicker components.\n */\nexport var Persona = styled(PersonaBase, getStyles, undefined, {\n scope: 'Persona',\n});\n//# sourceMappingURL=Persona.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getClassNames } from './ActivityItem.classNames';\nimport { getStyles } from './ActivityItem.styles';\nimport { PersonaSize, PersonaCoin } from '../../Persona';\n/**\n * {@docCategory ActivityItem}\n */\nvar ActivityItem = /** @class */ (function (_super) {\n __extends(ActivityItem, _super);\n function ActivityItem(props) {\n var _this = _super.call(this, props) || this;\n _this._onRenderIcon = function (props) {\n if (props.activityPersonas) {\n return _this._onRenderPersonaArray(props);\n }\n else {\n return _this.props.activityIcon;\n }\n };\n _this._onRenderActivityDescription = function (props) {\n var classNames = _this._getClassNames(props);\n // eslint-disable-next-line deprecation/deprecation\n var activityDescription = props.activityDescription || props.activityDescriptionText;\n if (activityDescription) {\n return React.createElement(\"span\", { className: classNames.activityText }, activityDescription);\n }\n return null;\n };\n _this._onRenderComments = function (props) {\n var classNames = _this._getClassNames(props);\n // eslint-disable-next-line deprecation/deprecation\n var comments = props.comments || props.commentText;\n if (!props.isCompact && comments) {\n return React.createElement(\"div\", { className: classNames.commentText }, comments);\n }\n return null;\n };\n _this._onRenderTimeStamp = function (props) {\n var classNames = _this._getClassNames(props);\n if (!props.isCompact && props.timeStamp) {\n return React.createElement(\"div\", { className: classNames.timeStamp }, props.timeStamp);\n }\n return null;\n };\n // If activityPersonas is an array of persona props, build the persona cluster element.\n _this._onRenderPersonaArray = function (props) {\n var classNames = _this._getClassNames(props);\n var personaElement = null;\n var activityPersonas = props.activityPersonas;\n if (activityPersonas[0].imageUrl || activityPersonas[0].imageInitials) {\n var personaList_1 = [];\n var showSize16Personas_1 = activityPersonas.length > 1 || props.isCompact;\n var personaLimit_1 = props.isCompact ? 3 : 4;\n var style_1 = undefined;\n if (props.isCompact) {\n style_1 = {\n display: 'inline-block',\n width: '10px',\n minWidth: '10px',\n overflow: 'visible',\n };\n }\n activityPersonas\n .filter(function (person, index) { return index < personaLimit_1; })\n .forEach(function (person, index) {\n personaList_1.push(React.createElement(PersonaCoin, __assign({}, person, { key: person.key || index, className: classNames.activityPersona, \n // eslint-disable-next-line deprecation/deprecation\n size: showSize16Personas_1 ? PersonaSize.size16 : PersonaSize.size32, style: style_1 })));\n });\n personaElement = React.createElement(\"div\", { className: classNames.personaContainer }, personaList_1);\n }\n return personaElement;\n };\n return _this;\n }\n ActivityItem.prototype.render = function () {\n var _a = this.props, _b = _a.onRenderIcon, onRenderIcon = _b === void 0 ? this._onRenderIcon : _b, _c = _a.onRenderActivityDescription, onRenderActivityDescription = _c === void 0 ? this._onRenderActivityDescription : _c, _d = _a.onRenderComments, onRenderComments = _d === void 0 ? this._onRenderComments : _d, _e = _a.onRenderTimeStamp, onRenderTimeStamp = _e === void 0 ? this._onRenderTimeStamp : _e, animateBeaconSignal = _a.animateBeaconSignal, isCompact = _a.isCompact;\n var classNames = this._getClassNames(this.props);\n return (React.createElement(\"div\", { className: classNames.root, style: this.props.style },\n (this.props.activityPersonas || this.props.activityIcon || this.props.onRenderIcon) && (React.createElement(\"div\", { className: classNames.activityTypeIcon },\n animateBeaconSignal && isCompact && React.createElement(\"div\", { className: classNames.pulsingBeacon }),\n onRenderIcon(this.props))),\n React.createElement(\"div\", { className: classNames.activityContent },\n onRenderActivityDescription(this.props, this._onRenderActivityDescription),\n onRenderComments(this.props, this._onRenderComments),\n onRenderTimeStamp(this.props, this._onRenderTimeStamp))));\n };\n ActivityItem.prototype._getClassNames = function (props) {\n return getClassNames(getStyles(undefined, props.styles, props.animateBeaconSignal, props.beaconColorOne, props.beaconColorTwo, props.isCompact), props.className, props.activityPersonas, props.isCompact);\n };\n return ActivityItem;\n}(React.Component));\nexport { ActivityItem };\n//# sourceMappingURL=ActivityItem.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, getDocument, getNativeProps, initializeComponentRef, inputProperties, isIE11, KeyCodes, } from '../../Utilities';\nimport { WindowContext } from '@fluentui/react-window-provider';\nvar SELECTION_FORWARD = 'forward';\nvar SELECTION_BACKWARD = 'backward';\n/**\n * {@docCategory Autofill}\n */\nvar Autofill = /** @class */ (function (_super) {\n __extends(Autofill, _super);\n function Autofill(props) {\n var _this = _super.call(this, props) || this;\n _this._inputElement = React.createRef();\n _this._autoFillEnabled = true;\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and languages like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionStart = function (ev) {\n _this.setState({ isComposing: true });\n _this._autoFillEnabled = false;\n };\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and languages like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionUpdate = function () {\n if (isIE11()) {\n _this._updateValue(_this._getCurrentInputValue(), true);\n }\n };\n // Composition events are used when the character/text requires several keystrokes to be completed.\n // Some examples of this are mobile text input and languages like Japanese or Arabic.\n // Find out more at https://developer.mozilla.org/en-US/docs/Web/Events/compositionstart\n _this._onCompositionEnd = function (ev) {\n var inputValue = _this._getCurrentInputValue();\n _this._tryEnableAutofill(inputValue, _this.value, false, true);\n _this.setState({ isComposing: false });\n // Due to timing, this needs to be async, otherwise no text will be selected.\n _this._async.setTimeout(function () {\n // it's technically possible that the value of isComposing is reset during this timeout,\n // so explicitly trigger this with composing=true here, since it is supposed to be the\n // update for composition end\n _this._updateValue(_this._getCurrentInputValue(), false);\n }, 0);\n };\n _this._onClick = function () {\n if (_this.value && _this.value !== '' && _this._autoFillEnabled) {\n _this._autoFillEnabled = false;\n }\n };\n _this._onKeyDown = function (ev) {\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // If the event is actively being composed, then don't alert autofill.\n // Right now typing does not have isComposing, once that has been fixed any should be removed.\n if (!ev.nativeEvent.isComposing) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.backspace:\n _this._autoFillEnabled = false;\n break;\n case KeyCodes.left:\n case KeyCodes.right:\n if (_this._autoFillEnabled) {\n _this.setState(function (prev) { return ({\n inputValue: _this.props.suggestedDisplayValue || prev.inputValue,\n }); });\n _this._autoFillEnabled = false;\n }\n break;\n default:\n if (!_this._autoFillEnabled) {\n // eslint-disable-next-line deprecation/deprecation\n if (_this.props.enableAutofillOnKeyPress.indexOf(ev.which) !== -1) {\n _this._autoFillEnabled = true;\n }\n }\n break;\n }\n }\n };\n _this._onInputChanged = function (ev) {\n var value = _this._getCurrentInputValue(ev);\n if (!_this.state.isComposing) {\n _this._tryEnableAutofill(value, _this.value, ev.nativeEvent.isComposing);\n }\n // If it is not IE11 and currently composing, update the value\n if (!(isIE11() && _this.state.isComposing)) {\n var nativeEventComposing = ev.nativeEvent.isComposing;\n var isComposing = nativeEventComposing === undefined ? _this.state.isComposing : nativeEventComposing;\n _this._updateValue(value, isComposing);\n }\n };\n _this._onChanged = function () {\n // Swallow this event, we don't care about it\n // We must provide it because React PropTypes marks it as required, but onInput serves the correct purpose\n return;\n };\n /**\n * Updates the current input value as well as getting a new display value.\n * @param newValue - The new value from the input\n */\n _this._updateValue = function (newValue, composing) {\n // Only proceed if the value is nonempty and is different from the old value\n // This is to work around the fact that, in IE 11, inputs with a placeholder fire an onInput event on focus\n if (!newValue && newValue === _this.value) {\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, onInputChange = _a.onInputChange, onInputValueChange = _a.onInputValueChange;\n if (onInputChange) {\n newValue = (onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(newValue, composing)) || '';\n }\n _this.setState({ inputValue: newValue }, function () { return onInputValueChange === null || onInputValueChange === void 0 ? void 0 : onInputValueChange(newValue, composing); });\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this.state = {\n inputValue: props.defaultVisibleValue || '',\n isComposing: false,\n };\n return _this;\n }\n Autofill.getDerivedStateFromProps = function (props, state) {\n // eslint-disable-next-line deprecation/deprecation\n if (props.updateValueInWillReceiveProps) {\n // eslint-disable-next-line deprecation/deprecation\n var updatedInputValue = props.updateValueInWillReceiveProps();\n // Don't update if we have a null value or the value isn't changing\n // the value should still update if an empty string is passed in\n if (updatedInputValue !== null && updatedInputValue !== state.inputValue && !state.isComposing) {\n return __assign(__assign({}, state), { inputValue: updatedInputValue });\n }\n }\n return null;\n };\n Object.defineProperty(Autofill.prototype, \"cursorLocation\", {\n get: function () {\n if (this._inputElement.current) {\n var inputElement = this._inputElement.current;\n if (inputElement.selectionDirection !== SELECTION_FORWARD) {\n return inputElement.selectionEnd;\n }\n else {\n return inputElement.selectionStart;\n }\n }\n else {\n return -1;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"isValueSelected\", {\n get: function () {\n return Boolean(this.inputElement && this.inputElement.selectionStart !== this.inputElement.selectionEnd);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"value\", {\n get: function () {\n return this._getControlledValue() || this.state.inputValue || '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"selectionStart\", {\n get: function () {\n return this._inputElement.current ? this._inputElement.current.selectionStart : -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"selectionEnd\", {\n get: function () {\n return this._inputElement.current ? this._inputElement.current.selectionEnd : -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Autofill.prototype, \"inputElement\", {\n get: function () {\n return this._inputElement.current;\n },\n enumerable: false,\n configurable: true\n });\n Autofill.prototype.componentDidUpdate = function (_, _1, cursor) {\n var _a;\n var _b = this.props, suggestedDisplayValue = _b.suggestedDisplayValue, shouldSelectFullInputValueInComponentDidUpdate = _b.shouldSelectFullInputValueInComponentDidUpdate, preventValueSelection = _b.preventValueSelection;\n var differenceIndex = 0;\n if (preventValueSelection) {\n return;\n }\n var document = ((_a = this.context) === null || _a === void 0 ? void 0 : _a.window.document) || getDocument(this._inputElement.current);\n var isFocused = this._inputElement.current && this._inputElement.current === (document === null || document === void 0 ? void 0 : document.activeElement);\n if (isFocused &&\n this._autoFillEnabled &&\n this.value &&\n suggestedDisplayValue &&\n _doesTextStartWith(suggestedDisplayValue, this.value)) {\n var shouldSelectFullRange = false;\n if (shouldSelectFullInputValueInComponentDidUpdate) {\n shouldSelectFullRange = shouldSelectFullInputValueInComponentDidUpdate();\n }\n if (shouldSelectFullRange) {\n this._inputElement.current.setSelectionRange(0, suggestedDisplayValue.length, SELECTION_BACKWARD);\n }\n else {\n while (differenceIndex < this.value.length &&\n this.value[differenceIndex].toLocaleLowerCase() === suggestedDisplayValue[differenceIndex].toLocaleLowerCase()) {\n differenceIndex++;\n }\n if (differenceIndex > 0) {\n this._inputElement.current.setSelectionRange(differenceIndex, suggestedDisplayValue.length, SELECTION_BACKWARD);\n }\n }\n }\n else if (this._inputElement.current) {\n if (cursor !== null && !this._autoFillEnabled && !this.state.isComposing) {\n this._inputElement.current.setSelectionRange(cursor.start, cursor.end, cursor.dir);\n }\n }\n };\n Autofill.prototype.componentWillUnmount = function () {\n this._async.dispose();\n };\n Autofill.prototype.render = function () {\n var nativeProps = getNativeProps(this.props, inputProperties);\n var style = __assign(__assign({}, this.props.style), { fontFamily: 'inherit' });\n return (React.createElement(\"input\", __assign({ autoCapitalize: \"off\", autoComplete: \"off\", \"aria-autocomplete\": 'both' }, nativeProps, { style: style, ref: this._inputElement, value: this._getDisplayValue(), onCompositionStart: this._onCompositionStart, onCompositionUpdate: this._onCompositionUpdate, onCompositionEnd: this._onCompositionEnd, \n // TODO (Fabric 8?) - switch to calling only onChange. See notes in TextField._onInputChange.\n onChange: this._onChanged, onInput: this._onInputChanged, onKeyDown: this._onKeyDown, onClick: this.props.onClick ? this.props.onClick : this._onClick, \"data-lpignore\": true })));\n };\n Autofill.prototype.focus = function () {\n this._inputElement.current && this._inputElement.current.focus();\n };\n Autofill.prototype.clear = function () {\n this._autoFillEnabled = true;\n this._updateValue('', false);\n this._inputElement.current && this._inputElement.current.setSelectionRange(0, 0);\n };\n Autofill.prototype.getSnapshotBeforeUpdate = function () {\n var _a, _b;\n var inel = this._inputElement.current;\n if (inel && inel.selectionStart !== this.value.length) {\n return {\n start: (_a = inel.selectionStart) !== null && _a !== void 0 ? _a : inel.value.length,\n end: (_b = inel.selectionEnd) !== null && _b !== void 0 ? _b : inel.value.length,\n dir: inel.selectionDirection || 'backward' || 'none',\n };\n }\n return null;\n };\n Autofill.prototype._getCurrentInputValue = function (ev) {\n if (ev && ev.target && ev.target.value) {\n return ev.target.value;\n }\n else if (this.inputElement && this.inputElement.value) {\n return this.inputElement.value;\n }\n else {\n return '';\n }\n };\n /**\n * Attempts to enable autofill. Whether or not autofill is enabled depends on the input value,\n * whether or not any text is selected, and only if the new input value is longer than the old input value.\n * Autofill should never be set to true if the value is composing. Once compositionEnd is called, then\n * it should be completed.\n * See https://developer.mozilla.org/en-US/docs/Web/API/CompositionEvent for more information on composition.\n * @param newValue - new input value\n * @param oldValue - old input value\n * @param isComposing - if true then the text is actively being composed and it has not completed.\n * @param isComposed - if the text is a composed text value.\n */\n Autofill.prototype._tryEnableAutofill = function (newValue, oldValue, isComposing, isComposed) {\n if (!isComposing &&\n newValue &&\n this._inputElement.current &&\n this._inputElement.current.selectionStart === newValue.length &&\n !this._autoFillEnabled &&\n (newValue.length > oldValue.length || isComposed)) {\n this._autoFillEnabled = true;\n }\n };\n Autofill.prototype._getDisplayValue = function () {\n if (this._autoFillEnabled) {\n return _getDisplayValue(this.value, this.props.suggestedDisplayValue);\n }\n return this.value;\n };\n Autofill.prototype._getControlledValue = function () {\n var value = this.props.value;\n if (value === undefined || typeof value === 'string') {\n return value;\n }\n // eslint-disable-next-line no-console\n console.warn(\"props.value of Autofill should be a string, but it is \".concat(value, \" with type of \").concat(typeof value));\n return value.toString();\n };\n Autofill.defaultProps = {\n enableAutofillOnKeyPress: [KeyCodes.down, KeyCodes.up],\n };\n // need to check WindowContext to get the provided document\n Autofill.contextType = WindowContext;\n return Autofill;\n}(React.Component));\nexport { Autofill };\n/**\n * Returns a string that should be used as the display value.\n * It evaluates this based on whether or not the suggested value starts with the input value\n * and whether or not autofill is enabled.\n * @param inputValue - the value that the input currently has.\n * @param suggestedDisplayValue - the possible full value\n */\nfunction _getDisplayValue(inputValue, suggestedDisplayValue) {\n var displayValue = inputValue;\n if (suggestedDisplayValue && inputValue && _doesTextStartWith(suggestedDisplayValue, displayValue)) {\n displayValue = suggestedDisplayValue;\n }\n return displayValue;\n}\nfunction _doesTextStartWith(text, startWith) {\n if (!text || !startWith) {\n return false;\n }\n if (process.env.NODE_ENV !== 'production') {\n for (var _i = 0, _a = [text, startWith]; _i < _a.length; _i++) {\n var val = _a[_i];\n if (typeof val !== 'string') {\n throw new Error(\"\".concat(Autofill.name\n // eslint-disable-next-line @fluentui/max-len\n , \" received non-string value \\\"\").concat(val, \"\\\" of type \").concat(typeof val, \" from either input's value or suggestedDisplayValue\"));\n }\n }\n }\n return text.toLocaleLowerCase().indexOf(startWith.toLocaleLowerCase()) === 0;\n}\n//# sourceMappingURL=Autofill.js.map","/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneTabbableElements = {\n /** Tabbing is not allowed */\n none: 0,\n /** All tabbing action is allowed */\n all: 1,\n /** Tabbing is allowed only on input elements */\n inputOnly: 2,\n};\n/**\n * {@docCategory FocusZone}\n */\nexport var FocusZoneDirection;\n(function (FocusZoneDirection) {\n /** Only react to up/down arrows. */\n FocusZoneDirection[FocusZoneDirection[\"vertical\"] = 0] = \"vertical\";\n /** Only react to left/right arrows. */\n FocusZoneDirection[FocusZoneDirection[\"horizontal\"] = 1] = \"horizontal\";\n /** React to all arrows. */\n FocusZoneDirection[FocusZoneDirection[\"bidirectional\"] = 2] = \"bidirectional\";\n /**\n * React to all arrows. Navigate next item in DOM on right/down arrow keys and previous - left/up arrow keys.\n * Right and Left arrow keys are swapped in RTL mode.\n */\n FocusZoneDirection[FocusZoneDirection[\"domOrder\"] = 3] = \"domOrder\";\n})(FocusZoneDirection || (FocusZoneDirection = {}));\n//# sourceMappingURL=FocusZone.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { FocusZoneDirection, FocusZoneTabbableElements } from './FocusZone.types';\nimport { KeyCodes, css, elementContains, getDocument, getElementIndexPath, getFocusableByIndexPath, getId, getNativeProps, getNextElement, getParent, getPreviousElement, getRTL, htmlElementProperties, initializeComponentRef, isElementFocusSubZone, isElementFocusZone, isElementTabbable, shouldWrapFocus, warnDeprecations, portalContainsElement, findScrollableParent, createMergedRef, isElementVisibleAndNotHidden, MergeStylesShadowRootContext, } from '@fluentui/utilities';\nimport { mergeStyles } from '@fluentui/merge-styles';\nimport { getTheme } from '@fluentui/style-utilities';\nvar IS_FOCUSABLE_ATTRIBUTE = 'data-is-focusable';\nvar IS_ENTER_DISABLED_ATTRIBUTE = 'data-disable-click-on-enter';\nvar FOCUSZONE_ID_ATTRIBUTE = 'data-focuszone-id';\nvar TABINDEX = 'tabindex';\nvar NO_VERTICAL_WRAP = 'data-no-vertical-wrap';\nvar NO_HORIZONTAL_WRAP = 'data-no-horizontal-wrap';\nvar LARGE_DISTANCE_FROM_CENTER = 999999999;\nvar LARGE_NEGATIVE_DISTANCE_FROM_CENTER = -999999999;\nvar focusZoneStyles;\nvar focusZoneClass = 'ms-FocusZone';\n/**\n * Raises a click on a target element based on a keyboard event.\n */\nfunction raiseClickFromKeyboardEvent(target, ev) {\n var event;\n if (typeof MouseEvent === 'function') {\n event = new MouseEvent('click', {\n ctrlKey: ev === null || ev === void 0 ? void 0 : ev.ctrlKey,\n metaKey: ev === null || ev === void 0 ? void 0 : ev.metaKey,\n shiftKey: ev === null || ev === void 0 ? void 0 : ev.shiftKey,\n altKey: ev === null || ev === void 0 ? void 0 : ev.altKey,\n bubbles: ev === null || ev === void 0 ? void 0 : ev.bubbles,\n cancelable: ev === null || ev === void 0 ? void 0 : ev.cancelable,\n });\n }\n else {\n // eslint-disable-next-line no-restricted-globals\n event = document.createEvent('MouseEvents');\n // eslint-disable-next-line deprecation/deprecation\n event.initMouseEvent('click', ev ? ev.bubbles : false, ev ? ev.cancelable : false, \n // eslint-disable-next-line no-restricted-globals\n window, // not using getWindow() since this can only be run client side\n 0, // detail\n 0, // screen x\n 0, // screen y\n 0, // client x\n 0, // client y\n ev ? ev.ctrlKey : false, ev ? ev.altKey : false, ev ? ev.shiftKey : false, ev ? ev.metaKey : false, 0, // button\n null);\n }\n target.dispatchEvent(event);\n}\n// Helper function that will return a class for when the root is focused\nfunction getRootClass() {\n if (!focusZoneStyles) {\n focusZoneStyles = mergeStyles({\n selectors: {\n ':focus': {\n outline: 'none',\n },\n },\n }, focusZoneClass);\n }\n return focusZoneStyles;\n}\nvar _allInstances = {};\nvar _outerZones = new Set();\nvar ALLOWED_INPUT_TYPES = ['text', 'number', 'password', 'email', 'tel', 'url', 'search', 'textarea'];\nvar ALLOW_VIRTUAL_ELEMENTS = false;\nexport var FocusZone = /** @class */ (function (_super) {\n __extends(FocusZone, _super);\n function FocusZone(props) {\n var _this = this;\n var _a, _b, _c, _d;\n _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._onFocus = function (ev) {\n var _a;\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var onActiveElementChanged = (_a = _this.props, _a.onActiveElementChanged), \n // eslint-disable-next-line deprecation/deprecation\n doNotAllowFocusEventToPropagate = _a.doNotAllowFocusEventToPropagate, stopFocusPropagation = _a.stopFocusPropagation, \n // eslint-disable-next-line deprecation/deprecation\n onFocusNotification = _a.onFocusNotification, onFocus = _a.onFocus, shouldFocusInnerElementWhenReceivedFocus = _a.shouldFocusInnerElementWhenReceivedFocus, defaultTabbableElement = _a.defaultTabbableElement;\n var isImmediateDescendant = _this._isImmediateDescendantOfZone(ev.target);\n var newActiveElement;\n if (isImmediateDescendant) {\n newActiveElement = ev.target;\n }\n else {\n var parentElement = ev.target;\n while (parentElement && parentElement !== _this._root.current) {\n if (isElementTabbable(parentElement, undefined, _this._inShadowRoot) &&\n _this._isImmediateDescendantOfZone(parentElement)) {\n newActiveElement = parentElement;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n }\n // If an inner focusable element should be focused when FocusZone container receives focus\n if (shouldFocusInnerElementWhenReceivedFocus && ev.target === _this._root.current) {\n var maybeElementToFocus = defaultTabbableElement &&\n typeof defaultTabbableElement === 'function' &&\n _this._root.current &&\n defaultTabbableElement(_this._root.current);\n // try to focus defaultTabbable element\n if (maybeElementToFocus && isElementTabbable(maybeElementToFocus, undefined, _this._inShadowRoot)) {\n newActiveElement = maybeElementToFocus;\n maybeElementToFocus.focus();\n }\n else {\n // force focus on first focusable element\n _this.focus(true);\n if (_this._activeElement) {\n // set to null as new active element was handled in method above\n newActiveElement = null;\n }\n }\n }\n var initialElementFocused = !_this._activeElement;\n // If the new active element is a child of this zone and received focus,\n // update alignment an immediate descendant\n if (newActiveElement && newActiveElement !== _this._activeElement) {\n if (isImmediateDescendant || initialElementFocused) {\n _this._setFocusAlignment(newActiveElement, true, true);\n }\n _this._activeElement = newActiveElement;\n if (initialElementFocused) {\n _this._updateTabIndexes();\n }\n }\n if (onActiveElementChanged) {\n onActiveElementChanged(_this._activeElement, ev);\n }\n if (stopFocusPropagation || doNotAllowFocusEventToPropagate) {\n ev.stopPropagation();\n }\n if (onFocus) {\n onFocus(ev);\n }\n else if (onFocusNotification) {\n onFocusNotification();\n }\n };\n _this._onBlur = function () {\n _this._setParkedFocus(false);\n };\n _this._onMouseDown = function (ev) {\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n var disabled = _this.props.disabled;\n if (disabled) {\n return;\n }\n var target = ev.target;\n var path = [];\n while (target && target !== _this._root.current) {\n path.push(target);\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n }\n while (path.length) {\n target = path.pop();\n if (target && isElementTabbable(target, undefined, _this._inShadowRoot)) {\n _this._setActiveElement(target, true);\n }\n if (isElementFocusZone(target)) {\n // Stop here since the focus zone will take care of its own children.\n break;\n }\n }\n };\n /**\n * Handle the keystrokes.\n */\n _this._onKeyDown = function (ev, theme) {\n var _a;\n if (_this._portalContainsElement(ev.target)) {\n // If the event target is inside a portal do not process the event.\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var direction = (_a = _this.props, _a.direction), disabled = _a.disabled, isInnerZoneKeystroke = _a.isInnerZoneKeystroke, pagingSupportDisabled = _a.pagingSupportDisabled, shouldEnterInnerZone = _a.shouldEnterInnerZone;\n if (disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // If the default has been prevented, do not process keyboard events.\n if (ev.isDefaultPrevented()) {\n return;\n }\n if (_this._getDocument().activeElement === _this._root.current && _this._isInnerZone) {\n // If this element has focus, it is being controlled by a parent.\n // Ignore the keystroke.\n return;\n }\n if (((shouldEnterInnerZone && shouldEnterInnerZone(ev)) || (isInnerZoneKeystroke && isInnerZoneKeystroke(ev))) &&\n _this._isImmediateDescendantOfZone(ev.target)) {\n // Try to focus\n var innerZone = _this._getFirstInnerZone();\n if (innerZone) {\n if (!innerZone.focus(true)) {\n return;\n }\n }\n else if (isElementFocusSubZone(ev.target)) {\n if (!_this.focusElement(getNextElement(ev.target, ev.target.firstChild, true))) {\n return;\n }\n }\n else {\n return;\n }\n }\n else if (ev.altKey) {\n return;\n }\n else {\n // eslint-disable-next-line @fluentui/deprecated-keyboard-event-props, deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.space:\n if (_this._shouldRaiseClicksOnSpace && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n case KeyCodes.left:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusLeft(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.right:\n if (direction !== FocusZoneDirection.vertical) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusRight(theme)) {\n break;\n }\n }\n return;\n case KeyCodes.up:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusUp()) {\n break;\n }\n }\n return;\n case KeyCodes.down:\n if (direction !== FocusZoneDirection.horizontal) {\n _this._preventDefaultWhenHandled(ev);\n if (_this._moveFocusDown()) {\n break;\n }\n }\n return;\n case KeyCodes.pageDown:\n if (!pagingSupportDisabled && _this._moveFocusPaging(true)) {\n break;\n }\n return;\n case KeyCodes.pageUp:\n if (!pagingSupportDisabled && _this._moveFocusPaging(false)) {\n break;\n }\n return;\n case KeyCodes.tab:\n if (\n // eslint-disable-next-line deprecation/deprecation\n _this.props.allowTabKey ||\n _this.props.handleTabKey === FocusZoneTabbableElements.all ||\n (_this.props.handleTabKey === FocusZoneTabbableElements.inputOnly &&\n _this._isElementInput(ev.target))) {\n var focusChanged = false;\n _this._processingTabKey = true;\n if (direction === FocusZoneDirection.vertical ||\n !_this._shouldWrapFocus(_this._activeElement, NO_HORIZONTAL_WRAP)) {\n focusChanged = ev.shiftKey ? _this._moveFocusUp() : _this._moveFocusDown();\n }\n else {\n var tabWithDirection = getRTL(theme) ? !ev.shiftKey : ev.shiftKey;\n focusChanged = tabWithDirection ? _this._moveFocusLeft(theme) : _this._moveFocusRight(theme);\n }\n _this._processingTabKey = false;\n if (focusChanged) {\n break;\n }\n else if (_this.props.shouldResetActiveElementWhenTabFromZone) {\n _this._activeElement = null;\n }\n }\n return;\n case KeyCodes.home:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, false))) {\n return false;\n }\n var firstChild = _this._root.current && _this._root.current.firstChild;\n if (_this._root.current &&\n firstChild &&\n _this.focusElement(getNextElement(_this._root.current, firstChild, true))) {\n break;\n }\n return;\n case KeyCodes.end:\n if (_this._isContentEditableElement(ev.target) ||\n (_this._isElementInput(ev.target) &&\n !_this._shouldInputLoseFocus(ev.target, true))) {\n return false;\n }\n var lastChild = _this._root.current && _this._root.current.lastChild;\n if (_this._root.current &&\n _this.focusElement(getPreviousElement(_this._root.current, lastChild, true, true, true))) {\n break;\n }\n return;\n case KeyCodes.enter:\n if (_this._shouldRaiseClicksOnEnter && _this._tryInvokeClickForFocusable(ev.target, ev)) {\n break;\n }\n return;\n default:\n return;\n }\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._getHorizontalDistanceFromCenter = function (isForward, \n // eslint-disable-next-line deprecation/deprecation\n activeRect, \n // eslint-disable-next-line deprecation/deprecation\n targetRect) {\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = _this._focusAlignment.left || _this._focusAlignment.x || 0;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var isValidCandidateOnpagingDown = isForward && targetRectTop > activeRectBottom;\n var isValidCandidateOnpagingUp = !isForward && targetRectBottom < activeRectTop;\n if (isValidCandidateOnpagingDown || isValidCandidateOnpagingUp) {\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n return 0;\n }\n return Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n };\n // Manage componentRef resolution.\n initializeComponentRef(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('FocusZone', props, {\n rootProps: undefined,\n allowTabKey: 'handleTabKey',\n elementType: 'as',\n ariaDescribedBy: 'aria-describedby',\n ariaLabelledBy: 'aria-labelledby',\n });\n }\n _this._id = getId('FocusZone');\n _this._focusAlignment = {\n left: 0,\n top: 0,\n };\n _this._processingTabKey = false;\n var shouldRaiseClicksFallback = (_b = (_a = props.shouldRaiseClicks) !== null && _a !== void 0 ? _a : FocusZone.defaultProps.shouldRaiseClicks) !== null && _b !== void 0 ? _b : true;\n _this._shouldRaiseClicksOnEnter = (_c = props.shouldRaiseClicksOnEnter) !== null && _c !== void 0 ? _c : shouldRaiseClicksFallback;\n _this._shouldRaiseClicksOnSpace = (_d = props.shouldRaiseClicksOnSpace) !== null && _d !== void 0 ? _d : shouldRaiseClicksFallback;\n return _this;\n }\n /** Used for testing purposes only. */\n FocusZone.getOuterZones = function () {\n return _outerZones.size;\n };\n /**\n * Handle global tab presses so that we can patch tabindexes on the fly.\n * HEADS UP: This must not be an arrow function in order to be referentially equal among instances\n * for ref counting to work correctly!\n */\n FocusZone._onKeyDownCapture = function (ev) {\n // eslint-disable-next-line deprecation/deprecation, @fluentui/deprecated-keyboard-event-props\n if (ev.which === KeyCodes.tab) {\n _outerZones.forEach(function (zone) { return zone._updateTabIndexes(); });\n }\n };\n FocusZone.prototype.componentDidMount = function () {\n var _a;\n var root = this._root.current;\n this._inShadowRoot = !!((_a = this.context) === null || _a === void 0 ? void 0 : _a.shadowRoot);\n _allInstances[this._id] = this;\n if (root) {\n var parentElement = getParent(root, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._getDocument().body && parentElement.nodeType === 1) {\n if (isElementFocusZone(parentElement)) {\n this._isInnerZone = true;\n break;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n if (!this._isInnerZone) {\n _outerZones.add(this);\n this._root.current && this._root.current.addEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n this._root.current && this._root.current.addEventListener('blur', this._onBlur, true);\n // Assign initial tab indexes so that we can set initial focus as appropriate.\n this._updateTabIndexes();\n if (this.props.defaultTabbableElement && typeof this.props.defaultTabbableElement === 'string') {\n this._activeElement = this._getDocument().querySelector(this.props.defaultTabbableElement);\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (this.props.defaultActiveElement) {\n // eslint-disable-next-line deprecation/deprecation\n this._activeElement = this._getDocument().querySelector(this.props.defaultActiveElement);\n }\n if (this.props.shouldFocusOnMount) {\n this.focus();\n }\n }\n };\n FocusZone.prototype.componentDidUpdate = function () {\n var _a;\n var root = this._root.current;\n var doc = this._getDocument();\n this._inShadowRoot = !!((_a = this.context) === null || _a === void 0 ? void 0 : _a.shadowRoot);\n // If either _activeElement or _defaultFocusElement are no longer contained by _root,\n // reset those variables (and update tab indexes) to avoid memory leaks\n if ((this._activeElement && !elementContains(this._root.current, this._activeElement, ALLOW_VIRTUAL_ELEMENTS)) ||\n (this._defaultFocusElement &&\n !elementContains(this._root.current, this._defaultFocusElement, ALLOW_VIRTUAL_ELEMENTS))) {\n this._activeElement = null;\n this._defaultFocusElement = null;\n this._updateTabIndexes();\n }\n if (!this.props.preventFocusRestoration &&\n doc &&\n this._lastIndexPath &&\n (doc.activeElement === doc.body || doc.activeElement === null || doc.activeElement === root)) {\n // The element has been removed after the render, attempt to restore focus.\n var elementToFocus = getFocusableByIndexPath(root, this._lastIndexPath);\n if (elementToFocus) {\n this._setActiveElement(elementToFocus, true);\n elementToFocus.focus();\n this._setParkedFocus(false);\n }\n else {\n // We had a focus path to restore, but now that path is unresolvable. Park focus\n // on the container until we can try again.\n this._setParkedFocus(true);\n }\n }\n };\n FocusZone.prototype.componentWillUnmount = function () {\n delete _allInstances[this._id];\n if (!this._isInnerZone) {\n _outerZones.delete(this);\n this._root.current && this._root.current.removeEventListener('keydown', FocusZone._onKeyDownCapture, true);\n }\n if (this._root.current) {\n this._root.current.removeEventListener('blur', this._onBlur, true);\n }\n this._activeElement = null;\n this._defaultFocusElement = null;\n };\n FocusZone.prototype.render = function () {\n var _a;\n var _this = this;\n // eslint-disable-next-line deprecation/deprecation\n var tag = (_a = this.props, _a.as), elementType = _a.elementType, rootProps = _a.rootProps, ariaDescribedBy = _a.ariaDescribedBy, ariaLabelledBy = _a.ariaLabelledBy, className = _a.className;\n var divProps = getNativeProps(this.props, htmlElementProperties);\n var Tag = tag || elementType || 'div';\n // Note, right before rendering/reconciling proceeds, we need to record if focus\n // was in the zone before the update. This helper will track this and, if focus\n // was actually in the zone, what the index path to the element is at this time.\n // Then, later in componentDidUpdate, we can evaluate if we need to restore it in\n // the case the element was removed.\n this._evaluateFocusBeforeRender();\n // Only support RTL defined in global theme, not contextual theme/RTL.\n var theme = getTheme();\n return (React.createElement(Tag, __assign({ \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": ariaDescribedBy }, divProps, rootProps, { \n // Once the getClassName correctly memoizes inputs this should\n // be replaced so that className is passed to getRootClass and is included there so\n // the class names will always be in the same order.\n className: css(getRootClass(), className), \n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._root), \"data-focuszone-id\": this._id, \n // eslint-disable-next-line react/jsx-no-bind\n onKeyDown: function (ev) { return _this._onKeyDown(ev, theme); }, onFocus: this._onFocus, onMouseDownCapture: this._onMouseDown }), this.props.children));\n };\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @param bypassHiddenElements - If true, focus will be not be set on hidden elements.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focus = function (forceIntoFirstElement, bypassHiddenElements) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n if (bypassHiddenElements === void 0) { bypassHiddenElements = false; }\n if (this._root.current) {\n if (!forceIntoFirstElement &&\n this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n this._isInnerZone) {\n var ownerZoneElement = this._getOwnerZone(this._root.current);\n if (ownerZoneElement !== this._root.current) {\n var ownerZone = _allInstances[ownerZoneElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n return !!ownerZone && ownerZone.focusElement(this._root.current);\n }\n return false;\n }\n else if (!forceIntoFirstElement &&\n this._activeElement &&\n elementContains(this._root.current, this._activeElement) &&\n isElementTabbable(this._activeElement, undefined, this._inShadowRoot) &&\n (!bypassHiddenElements || isElementVisibleAndNotHidden(this._activeElement))) {\n this._activeElement.focus();\n return true;\n }\n else {\n var firstChild = this._root.current.firstChild;\n return this.focusElement(getNextElement(this._root.current, firstChild, true, undefined, undefined, undefined, undefined, undefined, bypassHiddenElements));\n }\n }\n return false;\n };\n /**\n * Sets focus to the last tabbable item in the zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusLast = function () {\n if (this._root.current) {\n var lastChild = this._root.current && this._root.current.lastChild;\n return this.focusElement(getPreviousElement(this._root.current, lastChild, true, true, true));\n }\n return false;\n };\n /**\n * Sets focus to a specific child element within the zone. This can be used in conjunction with\n * shouldReceiveFocus to create delayed focus scenarios (like animate the scroll position to the correct\n * location and then focus.)\n * @param element - The child element within the zone to focus.\n * @param forceAlignment - If true, focus alignment will be set according to the element provided.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n FocusZone.prototype.focusElement = function (element, forceAlignment) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var onBeforeFocus = (_a = this.props, _a.onBeforeFocus), shouldReceiveFocus = _a.shouldReceiveFocus;\n if ((shouldReceiveFocus && !shouldReceiveFocus(element)) || (onBeforeFocus && !onBeforeFocus(element))) {\n return false;\n }\n if (element) {\n // when we set focus to a specific child, we should recalculate the alignment depending on its position.\n this._setActiveElement(element, forceAlignment);\n if (this._activeElement) {\n this._activeElement.focus();\n }\n return true;\n }\n return false;\n };\n /**\n * Forces horizontal alignment in the context of vertical arrowing to use specific point as the reference,\n * rather than a center based on the last horizontal motion.\n * @param point - the new reference point.\n */\n FocusZone.prototype.setFocusAlignment = function (point) {\n this._focusAlignment = point;\n };\n Object.defineProperty(FocusZone.prototype, \"defaultFocusElement\", {\n get: function () {\n return this._defaultFocusElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FocusZone.prototype, \"activeElement\", {\n get: function () {\n return this._activeElement;\n },\n enumerable: false,\n configurable: true\n });\n FocusZone.prototype._evaluateFocusBeforeRender = function () {\n var root = this._root.current;\n var doc = this._getDocument();\n if (doc) {\n var focusedElement = doc.activeElement;\n // Only update the index path if we are not parked on the root.\n if (focusedElement !== root) {\n var shouldRestoreFocus = elementContains(root, focusedElement, false);\n this._lastIndexPath = shouldRestoreFocus ? getElementIndexPath(root, focusedElement) : undefined;\n }\n }\n };\n /**\n * When focus is in the zone at render time but then all focusable elements are removed,\n * we \"park\" focus temporarily on the root. Once we update with focusable children, we restore\n * focus to the closest path from previous. If the user tabs away from the parked container,\n * we restore focusability to the pre-parked state.\n */\n FocusZone.prototype._setParkedFocus = function (isParked) {\n var root = this._root.current;\n if (root && this._isParked !== isParked) {\n this._isParked = isParked;\n if (isParked) {\n if (!this.props.allowFocusRoot) {\n this._parkedTabIndex = root.getAttribute('tabindex');\n root.setAttribute('tabindex', '-1');\n }\n root.focus();\n }\n else if (!this.props.allowFocusRoot) {\n if (this._parkedTabIndex) {\n root.setAttribute('tabindex', this._parkedTabIndex);\n this._parkedTabIndex = undefined;\n }\n else {\n root.removeAttribute('tabindex');\n }\n }\n }\n };\n FocusZone.prototype._setActiveElement = function (element, forceAlignment) {\n var previousActiveElement = this._activeElement;\n this._activeElement = element;\n if (previousActiveElement) {\n if (isElementFocusZone(previousActiveElement)) {\n this._updateTabIndexes(previousActiveElement);\n }\n previousActiveElement.tabIndex = -1;\n }\n if (this._activeElement) {\n if (!this._focusAlignment || forceAlignment) {\n this._setFocusAlignment(element, true, true);\n }\n this._activeElement.tabIndex = 0;\n }\n };\n FocusZone.prototype._preventDefaultWhenHandled = function (ev) {\n this.props.preventDefaultWhenHandled && ev.preventDefault();\n };\n /**\n * Walk up the dom try to find a focusable element.\n */\n FocusZone.prototype._tryInvokeClickForFocusable = function (targetElement, ev) {\n var target = targetElement;\n if (target === this._root.current) {\n return false;\n }\n do {\n if (target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.tagName === 'INPUT' ||\n target.tagName === 'TEXTAREA' ||\n target.tagName === 'SUMMARY') {\n return false;\n }\n if (this._isImmediateDescendantOfZone(target) &&\n target.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true' &&\n target.getAttribute(IS_ENTER_DISABLED_ATTRIBUTE) !== 'true') {\n raiseClickFromKeyboardEvent(target, ev);\n return true;\n }\n target = getParent(target, ALLOW_VIRTUAL_ELEMENTS);\n } while (target !== this._root.current);\n return false;\n };\n /**\n * Traverse to find first child zone.\n */\n FocusZone.prototype._getFirstInnerZone = function (rootElement) {\n rootElement = rootElement || this._activeElement || this._root.current;\n if (!rootElement) {\n return null;\n }\n if (isElementFocusZone(rootElement)) {\n return _allInstances[rootElement.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var child = rootElement.firstElementChild;\n while (child) {\n if (isElementFocusZone(child)) {\n return _allInstances[child.getAttribute(FOCUSZONE_ID_ATTRIBUTE)];\n }\n var match = this._getFirstInnerZone(child);\n if (match) {\n return match;\n }\n child = child.nextElementSibling;\n }\n return null;\n };\n FocusZone.prototype._moveFocus = function (isForward, \n // eslint-disable-next-line deprecation/deprecation\n getDistanceFromCenter, ev, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n var candidateDistance = -1;\n var candidateElement = undefined;\n var changedFocus = false;\n var isBidirectional = this.props.direction === FocusZoneDirection.bidirectional;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var activeRect = isBidirectional ? element.getBoundingClientRect() : null;\n do {\n element = (isForward ? getNextElement(this._root.current, element) : getPreviousElement(this._root.current, element));\n if (isBidirectional) {\n if (element) {\n var targetRect = element.getBoundingClientRect();\n // eslint-disable-next-line deprecation/deprecation\n var elementDistance = getDistanceFromCenter(activeRect, targetRect);\n if (elementDistance === -1 && candidateDistance === -1) {\n candidateElement = element;\n break;\n }\n if (elementDistance > -1 && (candidateDistance === -1 || elementDistance < candidateDistance)) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n if (candidateDistance >= 0 && elementDistance < 0) {\n break;\n }\n }\n }\n else {\n candidateElement = element;\n break;\n }\n } while (element);\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n else {\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n }\n return changedFocus;\n };\n FocusZone.prototype._moveFocusDown = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (\n // eslint-disable-next-line deprecation/deprecation\n this._moveFocus(true, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n if (targetRectTop < activeRectBottom) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectTop >= activeRectBottom) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusUp = function () {\n var _this = this;\n var targetTop = -1;\n // eslint-disable-next-line deprecation/deprecation\n var leftAlignment = this._focusAlignment.left || this._focusAlignment.x || 0;\n if (\n // eslint-disable-next-line deprecation/deprecation\n this._moveFocus(false, function (activeRect, targetRect) {\n var distance = -1;\n // ClientRect values can be floats that differ by very small fractions of a decimal.\n // If the difference between top and bottom are within a pixel then we should treat\n // them as equivalent by using Math.floor. For instance 5.2222 and 5.222221 should be equivalent,\n // but without Math.Floor they will be handled incorrectly.\n var targetRectBottom = Math.floor(targetRect.bottom);\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectTop = Math.floor(activeRect.top);\n if (targetRectBottom > activeRectTop) {\n if (!_this._shouldWrapFocus(_this._activeElement, NO_VERTICAL_WRAP)) {\n return LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return LARGE_DISTANCE_FROM_CENTER;\n }\n if ((targetTop === -1 && targetRectBottom <= activeRectTop) || targetRectTop === targetTop) {\n targetTop = targetRectTop;\n if (leftAlignment >= targetRect.left && leftAlignment <= targetRect.left + targetRect.width) {\n distance = 0;\n }\n else {\n distance = Math.abs(targetRect.left + targetRect.width / 2 - leftAlignment);\n }\n }\n return distance;\n })) {\n this._setFocusAlignment(this._activeElement, false, true);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusLeft = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(getRTL(theme), \n // eslint-disable-next-line deprecation/deprecation\n function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusRight for LTR.\n // Going left at a leftmost rectangle will go down a line instead of up a line like in LTR.\n // This is important, because we want to be comparing the top of the target rect\n // with the bottom of the active rect.\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.right <= activeRect.right &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = activeRect.right - targetRect.right;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusRight = function (theme) {\n var _this = this;\n var shouldWrap = this._shouldWrapFocus(this._activeElement, NO_HORIZONTAL_WRAP);\n if (this._moveFocus(!getRTL(theme), \n // eslint-disable-next-line deprecation/deprecation\n function (activeRect, targetRect) {\n var distance = -1;\n var topBottomComparison;\n if (getRTL(theme)) {\n // When in RTL, this comparison should be the same as the one in _moveFocusLeft for LTR.\n // Going right at a rightmost rectangle will go up a line instead of down a line like in LTR.\n // This is important, because we want to be comparing the bottom of the target rect\n // with the top of the active rect.\n topBottomComparison = parseFloat(targetRect.bottom.toFixed(3)) > parseFloat(activeRect.top.toFixed(3));\n }\n else {\n topBottomComparison = parseFloat(targetRect.top.toFixed(3)) < parseFloat(activeRect.bottom.toFixed(3));\n }\n if (topBottomComparison &&\n targetRect.left >= activeRect.left &&\n _this.props.direction !== FocusZoneDirection.vertical) {\n distance = targetRect.left - activeRect.left;\n }\n else if (!shouldWrap) {\n distance = LARGE_NEGATIVE_DISTANCE_FROM_CENTER;\n }\n return distance;\n }, undefined /*ev*/, shouldWrap)) {\n this._setFocusAlignment(this._activeElement, true, false);\n return true;\n }\n return false;\n };\n FocusZone.prototype._moveFocusPaging = function (isForward, useDefaultWrap) {\n if (useDefaultWrap === void 0) { useDefaultWrap = true; }\n var element = this._activeElement;\n if (!element || !this._root.current) {\n return false;\n }\n if (this._isElementInput(element)) {\n if (!this._shouldInputLoseFocus(element, isForward)) {\n return false;\n }\n }\n var scrollableParent = findScrollableParent(element);\n if (!scrollableParent) {\n return false;\n }\n var candidateDistance = -1;\n var candidateElement = undefined;\n var targetTop = -1;\n var targetBottom = -1;\n var pagesize = scrollableParent.clientHeight;\n var activeRect = element.getBoundingClientRect();\n do {\n element = isForward\n ? getNextElement(this._root.current, element)\n : getPreviousElement(this._root.current, element);\n if (element) {\n var targetRect = element.getBoundingClientRect();\n var targetRectTop = Math.floor(targetRect.top);\n var activeRectBottom = Math.floor(activeRect.bottom);\n var targetRectBottom = Math.floor(targetRect.bottom);\n var activeRectTop = Math.floor(activeRect.top);\n var elementDistance = this._getHorizontalDistanceFromCenter(isForward, activeRect, targetRect);\n var isElementPassedPageSizeOnPagingDown = isForward && targetRectTop > activeRectBottom + pagesize;\n var isElementPassedPageSizeOnPagingUp = !isForward && targetRectBottom < activeRectTop - pagesize;\n if (isElementPassedPageSizeOnPagingDown || isElementPassedPageSizeOnPagingUp) {\n break;\n }\n if (elementDistance > -1) {\n // for paging down\n if (isForward && targetRectTop > targetTop) {\n targetTop = targetRectTop;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (!isForward && targetRectBottom < targetBottom) {\n // for paging up\n targetBottom = targetRectBottom;\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n else if (candidateDistance === -1 || elementDistance <= candidateDistance) {\n candidateDistance = elementDistance;\n candidateElement = element;\n }\n }\n }\n } while (element);\n var changedFocus = false;\n // Focus the closest candidate\n if (candidateElement && candidateElement !== this._activeElement) {\n changedFocus = true;\n this.focusElement(candidateElement);\n this._setFocusAlignment(candidateElement, false, true);\n }\n else if (this.props.isCircularNavigation && useDefaultWrap) {\n if (isForward) {\n return this.focusElement(getNextElement(this._root.current, this._root.current.firstElementChild, true));\n }\n return this.focusElement(getPreviousElement(this._root.current, this._root.current.lastElementChild, true, true, true));\n }\n return changedFocus;\n };\n FocusZone.prototype._setFocusAlignment = function (element, isHorizontal, isVertical) {\n if (this.props.direction === FocusZoneDirection.bidirectional &&\n (!this._focusAlignment || isHorizontal || isVertical)) {\n var rect = element.getBoundingClientRect();\n var left = rect.left + rect.width / 2;\n var top_1 = rect.top + rect.height / 2;\n if (!this._focusAlignment) {\n this._focusAlignment = { left: left, top: top_1 };\n }\n if (isHorizontal) {\n this._focusAlignment.left = left;\n }\n if (isVertical) {\n this._focusAlignment.top = top_1;\n }\n }\n };\n FocusZone.prototype._isImmediateDescendantOfZone = function (element) {\n return this._getOwnerZone(element) === this._root.current;\n };\n FocusZone.prototype._getOwnerZone = function (element) {\n var parentElement = getParent(element, ALLOW_VIRTUAL_ELEMENTS);\n while (parentElement && parentElement !== this._root.current && parentElement !== this._getDocument().body) {\n if (isElementFocusZone(parentElement)) {\n return parentElement;\n }\n parentElement = getParent(parentElement, ALLOW_VIRTUAL_ELEMENTS);\n }\n return parentElement;\n };\n FocusZone.prototype._updateTabIndexes = function (element) {\n if (!this._activeElement &&\n this.props.defaultTabbableElement &&\n typeof this.props.defaultTabbableElement === 'function') {\n this._activeElement = this.props.defaultTabbableElement(this._root.current);\n }\n if (!element && this._root.current) {\n this._defaultFocusElement = null;\n element = this._root.current;\n if (this._activeElement && !elementContains(element, this._activeElement)) {\n this._activeElement = null;\n }\n }\n // If active element changes state to disabled, set it to null.\n // Otherwise, we lose keyboard accessibility to other elements in focus zone.\n if (this._activeElement && !isElementTabbable(this._activeElement, undefined, this._inShadowRoot)) {\n this._activeElement = null;\n }\n var childNodes = element && element.children;\n for (var childIndex = 0; childNodes && childIndex < childNodes.length; childIndex++) {\n var child = childNodes[childIndex];\n if (!isElementFocusZone(child)) {\n // If the item is explicitly set to not be focusable then TABINDEX needs to be set to -1.\n if (child.getAttribute && child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'false') {\n child.setAttribute(TABINDEX, '-1');\n }\n if (isElementTabbable(child, undefined, this._inShadowRoot)) {\n if (this.props.disabled) {\n child.setAttribute(TABINDEX, '-1');\n }\n else if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n else if (child.tagName === 'svg' && child.getAttribute('focusable') !== 'false') {\n // Disgusting IE hack. Sad face.\n child.setAttribute('focusable', 'false');\n }\n }\n else if (child.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === 'true') {\n if (!this._isInnerZone &&\n ((!this._activeElement && !this._defaultFocusElement) || this._activeElement === child)) {\n this._defaultFocusElement = child;\n if (child.getAttribute(TABINDEX) !== '0') {\n child.setAttribute(TABINDEX, '0');\n }\n }\n else if (child.getAttribute(TABINDEX) !== '-1') {\n child.setAttribute(TABINDEX, '-1');\n }\n }\n this._updateTabIndexes(child);\n }\n };\n FocusZone.prototype._isContentEditableElement = function (element) {\n return element && element.getAttribute('contenteditable') === 'true';\n };\n FocusZone.prototype._isElementInput = function (element) {\n if (element &&\n element.tagName &&\n (element.tagName.toLowerCase() === 'input' || element.tagName.toLowerCase() === 'textarea')) {\n return true;\n }\n return false;\n };\n FocusZone.prototype._shouldInputLoseFocus = function (element, isForward) {\n // If a tab was used, we want to focus on the next element.\n if (!this._processingTabKey &&\n element &&\n element.type &&\n ALLOWED_INPUT_TYPES.indexOf(element.type.toLowerCase()) > -1) {\n var selectionStart = element.selectionStart;\n var selectionEnd = element.selectionEnd;\n var isRangeSelected = selectionStart !== selectionEnd;\n var inputValue = element.value;\n var isReadonly = element.readOnly;\n // We shouldn't lose focus in the following cases:\n // 1. There is range selected.\n // 2. When selection start is larger than 0 and it is backward and not readOnly.\n // 3. when selection start is not the end of length, it is forward and not readOnly.\n // 4. We press any of the arrow keys when our handleTabKey isn't none or undefined (only losing focus if we hit\n // tab) and if shouldInputLoseFocusOnArrowKey is defined, if scenario prefers to not loose the focus which is\n // determined by calling the callback shouldInputLoseFocusOnArrowKey\n if (isRangeSelected ||\n (selectionStart > 0 && !isForward && !isReadonly) ||\n (selectionStart !== inputValue.length && isForward && !isReadonly) ||\n (!!this.props.handleTabKey &&\n !(this.props.shouldInputLoseFocusOnArrowKey && this.props.shouldInputLoseFocusOnArrowKey(element)))) {\n return false;\n }\n }\n return true;\n };\n FocusZone.prototype._shouldWrapFocus = function (element, noWrapDataAttribute) {\n return this.props.checkForNoWrap ? shouldWrapFocus(element, noWrapDataAttribute) : true;\n };\n /**\n * Returns true if the element is a descendant of the FocusZone through a React portal.\n */\n FocusZone.prototype._portalContainsElement = function (element) {\n return element && !!this._root.current && portalContainsElement(element, this._root.current);\n };\n FocusZone.prototype._getDocument = function () {\n return getDocument(this._root.current);\n };\n FocusZone.contextType = MergeStylesShadowRootContext;\n FocusZone.defaultProps = {\n isCircularNavigation: false,\n direction: FocusZoneDirection.bidirectional,\n shouldRaiseClicks: true,\n // Hardcoding uncontrolled flag for proper interop with FluentUI V9.\n 'data-tabster': '{\"uncontrolled\": {}}',\n };\n return FocusZone;\n}(React.Component));\n//# sourceMappingURL=FocusZone.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { useMergedRefs } from '@fluentui/react-hooks';\nimport { classNamesFunction, useFocusRects } from '@fluentui/utilities';\nvar getClassNames = classNamesFunction();\n/**\n * The useLink hook processes the Link component props and returns\n * state, slots and slotProps for consumption by the component.\n */\nexport var useLink = function (props, forwardedRef) {\n var as = props.as, className = props.className, disabled = props.disabled, href = props.href, onClick = props.onClick, styles = props.styles, theme = props.theme, underline = props.underline;\n var rootRef = React.useRef(null);\n var mergedRootRefs = useMergedRefs(rootRef, forwardedRef);\n useComponentRef(props, rootRef);\n useFocusRects(rootRef);\n var classNames = getClassNames(styles, {\n className: className,\n isButton: !href,\n isDisabled: disabled,\n isUnderlined: underline,\n theme: theme,\n });\n var _onClick = function (ev) {\n if (disabled) {\n ev.preventDefault();\n }\n else if (onClick) {\n onClick(ev);\n }\n };\n var rootType = as ? as : href ? 'a' : 'button';\n var state = {};\n var slots = { root: rootType };\n var slotProps = {\n root: __assign(__assign({}, adjustPropsForRootType(rootType, props)), { 'aria-disabled': disabled, className: classNames.root, onClick: _onClick, ref: mergedRootRefs }),\n };\n return { state: state, slots: slots, slotProps: slotProps };\n};\nvar useComponentRef = function (props, link) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n if (link.current) {\n link.current.focus();\n }\n },\n }); }, [link]);\n};\nvar adjustPropsForRootType = function (RootType, props) {\n // Deconstruct the props so we remove props like `as`, `theme` and `styles`\n // as those will always be removed. We also take some props that are optional\n // based on the RootType.\n var as = props.as, disabled = props.disabled, target = props.target, href = props.href, theme = props.theme, getStyles = props.getStyles, styles = props.styles, componentRef = props.componentRef, underline = props.underline, restProps = __rest(props, [\"as\", \"disabled\", \"target\", \"href\", \"theme\", \"getStyles\", \"styles\", \"componentRef\", \"underline\"]);\n // RootType will be a string if we're dealing with an html component\n if (typeof RootType === 'string') {\n // Remove the disabled prop for anchor elements\n if (RootType === 'a') {\n return __assign({ target: target, href: disabled ? undefined : href }, restProps);\n }\n // Add the type='button' prop for button elements\n if (RootType === 'button') {\n return __assign({ type: 'button', disabled: disabled }, restProps);\n }\n // Remove the target and href props for all other non anchor elements\n return __assign(__assign({}, restProps), { disabled: disabled });\n }\n // Retain all props except 'as' for ReactComponents\n return __assign({ target: target, href: href, disabled: disabled }, restProps);\n};\n//# sourceMappingURL=useLink.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { useLink } from './useLink';\nexport var LinkBase = React.forwardRef(function (props, ref) {\n var _a = useLink(props, ref), slots = _a.slots, slotProps = _a.slotProps;\n return React.createElement(slots.root, __assign({}, slotProps.root));\n});\nLinkBase.displayName = 'LinkBase';\n//# sourceMappingURL=Link.base.js.map","import { getGlobalClassNames, HighContrastSelector } from '@fluentui/style-utilities';\nimport { IsFocusVisibleClassName } from '@fluentui/utilities';\nexport var GlobalClassNames = {\n root: 'ms-Link',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g;\n var className = props.className, isButton = props.isButton, isDisabled = props.isDisabled, isUnderlined = props.isUnderlined, theme = props.theme;\n var semanticColors = theme.semanticColors;\n // Tokens\n var linkColor = semanticColors.link;\n var linkInteractedColor = semanticColors.linkHovered;\n var linkDisabledColor = semanticColors.disabledText;\n var focusBorderColor = semanticColors.focusBorder;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n color: linkColor,\n outline: 'none',\n fontSize: 'inherit',\n fontWeight: 'inherit',\n textDecoration: isUnderlined ? 'underline' : 'none',\n selectors: (_a = {},\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus\")] = {\n // Can't use getFocusStyle because it doesn't support wrapping links\n // https://github.com/microsoft/fluentui/issues/4883#issuecomment-406743543\n // Using box-shadow and outline allows the focus rect to wrap links that span multiple lines\n // and helps the focus rect avoid getting clipped.\n boxShadow: \"0 0 0 1px \".concat(focusBorderColor, \" inset\"),\n outline: \"1px auto \".concat(focusBorderColor),\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n outline: '1px solid WindowText',\n },\n _b),\n },\n _a[HighContrastSelector] = {\n // For IE high contrast mode\n borderBottom: 'none',\n },\n _a),\n },\n isButton && {\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n cursor: 'pointer',\n display: 'inline',\n margin: 0,\n overflow: 'inherit',\n padding: 0,\n textAlign: 'left',\n textOverflow: 'inherit',\n userSelect: 'text',\n borderBottom: '1px solid transparent',\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'LinkText',\n forcedColorAdjust: 'none',\n },\n _c),\n },\n !isButton && {\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n // This is mainly for MessageBar, which sets MsHighContrastAdjust: none by default\n MsHighContrastAdjust: 'auto',\n forcedColorAdjust: 'auto',\n },\n _d),\n },\n isDisabled && [\n 'is-disabled',\n {\n color: linkDisabledColor,\n cursor: 'default',\n },\n {\n selectors: (_e = {\n '&:link, &:visited': {\n pointerEvents: 'none',\n }\n },\n _e[HighContrastSelector] = {\n // We need to specify the color in High Contrast because of the case of Links rendering as buttons.\n color: 'GrayText',\n },\n _e),\n },\n ],\n !isDisabled && {\n selectors: {\n '&:active, &:hover, &:active:hover': {\n color: linkInteractedColor,\n textDecoration: 'underline',\n selectors: (_f = {},\n _f[HighContrastSelector] = {\n color: 'LinkText',\n },\n _f),\n },\n '&:focus': {\n color: linkColor,\n selectors: (_g = {},\n _g[HighContrastSelector] = {\n color: 'LinkText',\n },\n _g),\n },\n },\n },\n classNames.root,\n className,\n ],\n };\n};\n//# sourceMappingURL=Link.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { LinkBase } from './Link.base';\nimport { getStyles } from './Link.styles';\nexport var Link = styled(LinkBase, getStyles, undefined, {\n scope: 'Link',\n});\n//# sourceMappingURL=Link.js.map","export { DirectionalHint } from '../../common/DirectionalHint';\n/**\n * {@docCategory ContextualMenu}\n */\nexport var ContextualMenuItemType;\n(function (ContextualMenuItemType) {\n ContextualMenuItemType[ContextualMenuItemType[\"Normal\"] = 0] = \"Normal\";\n ContextualMenuItemType[ContextualMenuItemType[\"Divider\"] = 1] = \"Divider\";\n ContextualMenuItemType[ContextualMenuItemType[\"Header\"] = 2] = \"Header\";\n ContextualMenuItemType[ContextualMenuItemType[\"Section\"] = 3] = \"Section\";\n})(ContextualMenuItemType || (ContextualMenuItemType = {}));\n//# sourceMappingURL=ContextualMenu.types.js.map","/**\n * Determines the effective checked state of a menu item.\n *\n * @param item {IContextualMenuItem} to get the check state of.\n * @returns {true} if the item is checked.\n * @returns {false} if the item is unchecked.\n * @returns {null} if the item is not checkable.\n */\nexport function getIsChecked(item) {\n if (item.canCheck) {\n return !!(item.isChecked || item.checked);\n }\n if (typeof item.isChecked === 'boolean') {\n return item.isChecked;\n }\n if (typeof item.checked === 'boolean') {\n return item.checked;\n }\n // Item is not checkable.\n return null;\n}\nexport function hasSubmenu(item) {\n // eslint-disable-next-line deprecation/deprecation\n return !!(item.subMenuProps || item.items);\n}\nexport function isItemDisabled(item) {\n return !!(item.isDisabled || item.disabled);\n}\nexport function getMenuItemAriaRole(item) {\n var isChecked = getIsChecked(item);\n var canCheck = isChecked !== null;\n return canCheck ? 'menuitemcheckbox' : 'menuitem';\n}\n//# sourceMappingURL=contextualMenuUtility.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hasSubmenu, getIsChecked } from '../../utilities/contextualMenu/index';\nimport { getRTL, initializeComponentRef } from '../../Utilities';\nimport { Icon } from '../../Icon';\nvar defaultIconRenderer = function (props) {\n var item = props.item, classNames = props.classNames;\n var iconProps = item.iconProps;\n return React.createElement(Icon, __assign({}, iconProps, { className: classNames.icon }));\n};\nvar renderItemIcon = function (props) {\n var item = props.item, hasIcons = props.hasIcons;\n if (!hasIcons) {\n return null;\n }\n if (item.onRenderIcon) {\n return item.onRenderIcon(props, defaultIconRenderer);\n }\n return defaultIconRenderer(props);\n};\nvar renderCheckMarkIcon = function (_a) {\n var onCheckmarkClick = _a.onCheckmarkClick, item = _a.item, classNames = _a.classNames;\n var isItemChecked = getIsChecked(item);\n if (onCheckmarkClick) {\n // Ensures that the item is passed as the first argument to the checkmark click callback.\n var onClick = function (e) { return onCheckmarkClick(item, e); };\n return (React.createElement(Icon, { iconName: item.canCheck !== false && isItemChecked ? 'CheckMark' : '', className: classNames.checkmarkIcon, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: onClick }));\n }\n return null;\n};\nvar renderItemName = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n /* eslint-disable deprecation/deprecation */\n if (item.text || item.name) {\n return React.createElement(\"span\", { className: classNames.label }, item.text || item.name);\n }\n /* eslint-enable deprecation/deprecation */\n return null;\n};\nvar renderSecondaryText = function (_a) {\n var item = _a.item, classNames = _a.classNames;\n if (item.secondaryText) {\n return React.createElement(\"span\", { className: classNames.secondaryText }, item.secondaryText);\n }\n return null;\n};\nvar renderSubMenuIcon = function (_a) {\n var item = _a.item, classNames = _a.classNames, theme = _a.theme;\n if (hasSubmenu(item)) {\n return (React.createElement(Icon, __assign({ iconName: getRTL(theme) ? 'ChevronLeft' : 'ChevronRight' }, item.submenuIconProps, { className: classNames.subMenuIcon })));\n }\n return null;\n};\nvar ContextualMenuItemBase = /** @class */ (function (_super) {\n __extends(ContextualMenuItemBase, _super);\n function ContextualMenuItemBase(props) {\n var _this = _super.call(this, props) || this;\n _this.openSubMenu = function () {\n var _a = _this.props, item = _a.item, openSubMenu = _a.openSubMenu, getSubmenuTarget = _a.getSubmenuTarget;\n if (getSubmenuTarget) {\n var submenuTarget = getSubmenuTarget();\n if (hasSubmenu(item) && openSubMenu && submenuTarget) {\n openSubMenu(item, submenuTarget);\n }\n }\n };\n _this.dismissSubMenu = function () {\n var _a = _this.props, item = _a.item, dismissSubMenu = _a.dismissSubMenu;\n if (hasSubmenu(item) && dismissSubMenu) {\n dismissSubMenu();\n }\n };\n _this.dismissMenu = function (dismissAll) {\n var dismissMenu = _this.props.dismissMenu;\n if (dismissMenu) {\n dismissMenu(undefined /* ev */, dismissAll);\n }\n };\n initializeComponentRef(_this);\n return _this;\n }\n ContextualMenuItemBase.prototype.render = function () {\n var _a = this.props, item = _a.item, classNames = _a.classNames;\n var renderContent = item.onRenderContent || this._renderLayout;\n return (React.createElement(\"div\", { className: item.split ? classNames.linkContentMenu : classNames.linkContent }, renderContent(this.props, {\n renderCheckMarkIcon: renderCheckMarkIcon,\n renderItemIcon: renderItemIcon,\n renderItemName: renderItemName,\n renderSecondaryText: renderSecondaryText,\n renderSubMenuIcon: renderSubMenuIcon,\n })));\n };\n ContextualMenuItemBase.prototype._renderLayout = function (props, defaultRenders) {\n return (React.createElement(React.Fragment, null,\n defaultRenders.renderCheckMarkIcon(props),\n defaultRenders.renderItemIcon(props),\n defaultRenders.renderItemName(props),\n defaultRenders.renderSecondaryText(props),\n defaultRenders.renderSubMenuIcon(props)));\n };\n return ContextualMenuItemBase;\n}(React.Component));\nexport { ContextualMenuItemBase };\n//# sourceMappingURL=ContextualMenuItem.base.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyleSets } from '../../Styling';\n/**\n * @deprecated use getStyles exported from VerticalDivider.styles.ts\n */\nexport var getDividerClassNames = memoizeFunction(\n// eslint-disable-next-line deprecation/deprecation\nfunction (theme) {\n return mergeStyleSets({\n wrapper: {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n divider: {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n });\n});\n//# sourceMappingURL=VerticalDivider.classNames.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getScreenSelector, ScreenWidthMaxMedium, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { memoizeFunction } from '../../Utilities';\nexport var CONTEXTUAL_MENU_ITEM_HEIGHT = 36;\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getMenuItemStyles = memoizeFunction(function (theme) {\n var _a, _b, _c, _d, _e;\n var semanticColors = theme.semanticColors, fonts = theme.fonts, palette = theme.palette;\n var ContextualMenuItemBackgroundHoverColor = semanticColors.menuItemBackgroundHovered;\n var ContextualMenuItemTextHoverColor = semanticColors.menuItemTextHovered;\n var ContextualMenuItemBackgroundSelectedColor = semanticColors.menuItemBackgroundPressed;\n var ContextualMenuItemDividerColor = semanticColors.bodyDivider;\n var menuItemStyles = {\n item: [\n fonts.medium,\n {\n color: semanticColors.bodyText,\n position: 'relative',\n boxSizing: 'border-box',\n },\n ],\n divider: {\n display: 'block',\n height: '1px',\n backgroundColor: ContextualMenuItemDividerColor,\n position: 'relative',\n },\n root: [\n getFocusStyle(theme),\n fonts.medium,\n {\n color: semanticColors.bodyText,\n backgroundColor: 'transparent',\n border: 'none',\n width: '100%',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n display: 'block',\n cursor: 'pointer',\n padding: '0px 8px 0 4px',\n textAlign: 'left',\n },\n ],\n rootDisabled: {\n color: semanticColors.disabledBodyText,\n cursor: 'default',\n pointerEvents: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n // ensure disabled text looks different than enabled\n color: 'GrayText',\n opacity: 1,\n },\n _a),\n },\n rootHovered: {\n backgroundColor: ContextualMenuItemBackgroundHoverColor,\n color: ContextualMenuItemTextHoverColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDarkAlt,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootFocused: {\n backgroundColor: palette.white,\n },\n rootChecked: {\n selectors: {\n '.ms-ContextualMenu-checkmarkIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootPressed: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n selectors: {\n '.ms-ContextualMenu-icon': {\n color: palette.themeDark,\n },\n '.ms-ContextualMenu-submenuIcon': {\n color: palette.neutralPrimary,\n },\n },\n },\n rootExpanded: {\n backgroundColor: ContextualMenuItemBackgroundSelectedColor,\n color: semanticColors.bodyTextChecked,\n selectors: (_b = {\n '.ms-ContextualMenu-submenuIcon': (_c = {},\n _c[HighContrastSelector] = {\n // icons inside of anchor tags are not properly inheriting color in high contrast\n color: 'inherit',\n },\n _c)\n },\n _b[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _b),\n },\n linkContent: {\n whiteSpace: 'nowrap',\n height: 'inherit',\n display: 'flex',\n alignItems: 'center',\n maxWidth: '100%',\n },\n anchorLink: {\n padding: '0px 8px 0 4px',\n textRendering: 'auto',\n color: 'inherit',\n letterSpacing: 'normal',\n wordSpacing: 'normal',\n textTransform: 'none',\n textIndent: '0px',\n textShadow: 'none',\n textDecoration: 'none',\n boxSizing: 'border-box',\n },\n label: {\n margin: '0 4px',\n verticalAlign: 'middle',\n display: 'inline-block',\n flexGrow: '1',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n },\n secondaryText: {\n color: theme.palette.neutralSecondary,\n paddingLeft: '20px',\n textAlign: 'right',\n },\n icon: {\n display: 'inline-block',\n minHeight: '1px',\n maxHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n fontSize: IconFontSizes.medium,\n width: IconFontSizes.medium,\n margin: '0 4px',\n verticalAlign: 'middle',\n flexShrink: '0',\n selectors: (_d = {},\n _d[MediumScreenSelector] = {\n fontSize: IconFontSizes.large,\n width: IconFontSizes.large,\n },\n _d),\n },\n iconColor: {\n color: semanticColors.menuIcon,\n },\n iconDisabled: {\n color: semanticColors.disabledBodyText,\n },\n checkmarkIcon: {\n color: semanticColors.bodySubtext,\n },\n subMenuIcon: {\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n color: palette.neutralSecondary,\n textAlign: 'center',\n display: 'inline-block',\n verticalAlign: 'middle',\n flexShrink: '0',\n fontSize: IconFontSizes.small,\n selectors: (_e = {\n ':hover': {\n color: palette.neutralPrimary,\n },\n ':active': {\n color: palette.neutralPrimary,\n }\n },\n _e[MediumScreenSelector] = {\n fontSize: IconFontSizes.medium, // 16px\n },\n _e),\n },\n splitButtonFlexContainer: [\n getFocusStyle(theme),\n {\n display: 'flex',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'flex-start',\n },\n ],\n };\n return concatStyleSets(menuItemStyles);\n});\n//# sourceMappingURL=ContextualMenu.cnstyles.js.map","import { getDividerClassNames } from '../Divider/VerticalDivider.classNames';\nimport { getMenuItemStyles } from './ContextualMenu.cnstyles';\nimport { mergeStyleSets, getGlobalClassNames, getScreenSelector, ScreenWidthMaxMedium, hiddenContentStyle, } from '../../Styling';\nimport { memoizeFunction, IsFocusVisibleClassName } from '../../Utilities';\nvar CONTEXTUAL_SPLIT_MENU_MINWIDTH = '28px';\nvar MediumScreenSelector = getScreenSelector(0, ScreenWidthMaxMedium);\nexport var getSplitButtonVerticalDividerClassNames = memoizeFunction(\n/* eslint-disable deprecation/deprecation */\nfunction (theme) {\n var _a;\n return mergeStyleSets(getDividerClassNames(theme), {\n /* eslint-enable deprecation/deprecation */\n wrapper: {\n position: 'absolute',\n right: 28,\n selectors: (_a = {},\n _a[MediumScreenSelector] = {\n right: 32, // fontSize of the icon increased from 12px to 16px\n },\n _a),\n },\n divider: {\n height: 16,\n width: 1,\n },\n });\n});\nvar GlobalClassNames = {\n item: 'ms-ContextualMenu-item',\n divider: 'ms-ContextualMenu-divider',\n root: 'ms-ContextualMenu-link',\n isChecked: 'is-checked',\n isExpanded: 'is-expanded',\n isDisabled: 'is-disabled',\n linkContent: 'ms-ContextualMenu-linkContent',\n linkContentMenu: 'ms-ContextualMenu-linkContent',\n icon: 'ms-ContextualMenu-icon',\n iconColor: 'ms-ContextualMenu-iconColor',\n checkmarkIcon: 'ms-ContextualMenu-checkmarkIcon',\n subMenuIcon: 'ms-ContextualMenu-submenuIcon',\n label: 'ms-ContextualMenu-itemText',\n secondaryText: 'ms-ContextualMenu-secondaryText',\n splitMenu: 'ms-ContextualMenu-splitMenu',\n screenReaderText: 'ms-ContextualMenu-screenReaderText',\n};\n/**\n * @deprecated Will be removed in \\>= 7.0.\n * This is a package-internal method that has been depended on.\n * It is being kept in this form for backwards compatibility.\n * @internal\n */\n// TODO: Audit perf. impact of and potentially remove memoizeFunction.\n// https://github.com/microsoft/fluentui/issues/5534\nexport var getItemClassNames = memoizeFunction(function (theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className) {\n var _a, _b, _c, _d;\n var styles = getMenuItemStyles(theme);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return mergeStyleSets({\n item: [classNames.item, styles.item, itemClassName],\n divider: [classNames.divider, styles.divider, dividerClassName],\n root: [\n classNames.root,\n styles.root,\n checked && [classNames.isChecked, styles.rootChecked],\n isAnchorLink && styles.anchorLink,\n expanded && [classNames.isExpanded, styles.rootExpanded],\n disabled && [classNames.isDisabled, styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: (_a = {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed\n },\n // eslint-disable-next-line @fluentui/max-len\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus:hover\")] = styles.rootFocused,\n _a[\".\".concat(IsFocusVisibleClassName, \" &:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:hover\")] = {\n background: 'inherit;',\n },\n _a),\n },\n ],\n className,\n ],\n splitPrimary: [\n styles.root,\n {\n width: \"calc(100% - \".concat(CONTEXTUAL_SPLIT_MENU_MINWIDTH, \")\"),\n },\n checked && ['is-checked', styles.rootChecked],\n (disabled || primaryDisabled) && ['is-disabled', styles.rootDisabled],\n !(disabled || primaryDisabled) &&\n !checked && [\n {\n selectors: (_b = {\n ':hover': styles.rootHovered\n },\n // when hovering over the splitPrimary also affect the splitMenu\n _b[\":hover ~ .\".concat(classNames.splitMenu)] = styles.rootHovered,\n _b[':active'] = styles.rootPressed,\n // eslint-disable-next-line @fluentui/max-len\n _b[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus:hover\")] = styles.rootFocused,\n _b[\".\".concat(IsFocusVisibleClassName, \" &:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:hover\")] = {\n background: 'inherit;',\n },\n _b),\n },\n ],\n ],\n splitMenu: [\n classNames.splitMenu,\n styles.root,\n {\n flexBasis: '0',\n padding: '0 8px',\n minWidth: CONTEXTUAL_SPLIT_MENU_MINWIDTH,\n },\n expanded && ['is-expanded', styles.rootExpanded],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !expanded && [\n {\n selectors: (_c = {\n ':hover': styles.rootHovered,\n ':active': styles.rootPressed\n },\n // eslint-disable-next-line @fluentui/max-len\n _c[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus:hover\")] = styles.rootFocused,\n _c[\".\".concat(IsFocusVisibleClassName, \" &:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:hover\")] = {\n background: 'inherit;',\n },\n _c),\n },\n ],\n ],\n anchorLink: styles.anchorLink,\n linkContent: [classNames.linkContent, styles.linkContent],\n linkContentMenu: [\n classNames.linkContentMenu,\n styles.linkContent,\n {\n justifyContent: 'center',\n },\n ],\n icon: [\n classNames.icon,\n knownIcon && styles.iconColor,\n styles.icon,\n iconClassName,\n disabled && [classNames.isDisabled, styles.iconDisabled],\n ],\n iconColor: styles.iconColor,\n checkmarkIcon: [classNames.checkmarkIcon, knownIcon && styles.checkmarkIcon, styles.icon, iconClassName],\n subMenuIcon: [\n classNames.subMenuIcon,\n styles.subMenuIcon,\n subMenuClassName,\n expanded && { color: theme.palette.neutralPrimary },\n disabled && [styles.iconDisabled],\n ],\n label: [classNames.label, styles.label],\n secondaryText: [classNames.secondaryText, styles.secondaryText],\n splitContainer: [\n styles.splitButtonFlexContainer,\n !disabled &&\n !checked && [\n {\n selectors: (_d = {},\n // eslint-disable-next-line @fluentui/max-len\n _d[\".\".concat(IsFocusVisibleClassName, \" &:focus, .\").concat(IsFocusVisibleClassName, \" &:focus:hover, :host(.\").concat(IsFocusVisibleClassName, \") &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus:hover\")] = styles.rootFocused,\n _d),\n },\n ],\n ],\n screenReaderText: [\n classNames.screenReaderText,\n styles.screenReaderText,\n hiddenContentStyle,\n { visibility: 'hidden' },\n ],\n });\n});\n/**\n * Wrapper function for generating ContextualMenuItem classNames which adheres to\n * the getStyles API, but invokes memoized className generator function with\n * primitive values.\n *\n * @param props - the ContextualMenuItem style props used to generate its styles.\n */\nexport var getItemStyles = function (props) {\n var theme = props.theme, disabled = props.disabled, expanded = props.expanded, checked = props.checked, isAnchorLink = props.isAnchorLink, knownIcon = props.knownIcon, itemClassName = props.itemClassName, dividerClassName = props.dividerClassName, iconClassName = props.iconClassName, subMenuClassName = props.subMenuClassName, primaryDisabled = props.primaryDisabled, className = props.className;\n // eslint-disable-next-line deprecation/deprecation\n return getItemClassNames(theme, disabled, expanded, checked, isAnchorLink, knownIcon, itemClassName, dividerClassName, iconClassName, subMenuClassName, primaryDisabled, className);\n};\n//# sourceMappingURL=ContextualMenu.classNames.js.map","import { styled } from '../../Utilities';\nimport { ContextualMenuItemBase } from './ContextualMenuItem.base';\nimport { getItemStyles } from './ContextualMenu.classNames';\n/**\n * ContextualMenuItem description\n */\nexport var ContextualMenuItem = styled(ContextualMenuItemBase, getItemStyles, undefined, { scope: 'ContextualMenuItem' });\n//# sourceMappingURL=ContextualMenuItem.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, shallowCompare } from '../../../Utilities';\nvar ContextualMenuItemWrapper = /** @class */ (function (_super) {\n __extends(ContextualMenuItemWrapper, _super);\n function ContextualMenuItemWrapper(props) {\n var _this = _super.call(this, props) || this;\n _this._onItemMouseEnter = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, ev.currentTarget);\n }\n };\n _this._onItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n if (onItemClickBase) {\n onItemClickBase(item, ev, ev.currentTarget);\n }\n };\n _this._onItemMouseLeave = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseLeave = _a.onItemMouseLeave;\n if (onItemMouseLeave) {\n onItemMouseLeave(item, ev);\n }\n };\n _this._onItemKeyDown = function (ev) {\n var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n _this._onItemMouseMove = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, ev.currentTarget);\n }\n };\n _this._getSubmenuTarget = function () {\n return undefined;\n };\n initializeComponentRef(_this);\n return _this;\n }\n ContextualMenuItemWrapper.prototype.shouldComponentUpdate = function (newProps) {\n return !shallowCompare(newProps, this.props);\n };\n return ContextualMenuItemWrapper;\n}(React.Component));\nexport { ContextualMenuItemWrapper };\n//# sourceMappingURL=ContextualMenuItemWrapper.js.map","export var KTP_PREFIX = 'ktp';\nexport var KTP_SEPARATOR = '-';\nexport var KTP_FULL_PREFIX = KTP_PREFIX + KTP_SEPARATOR;\nexport var DATAKTP_TARGET = 'data-ktp-target';\nexport var DATAKTP_EXECUTE_TARGET = 'data-ktp-execute-target';\nexport var DATAKTP_ARIA_TARGET = 'data-ktp-aria-target';\nexport var KTP_LAYER_ID = 'ktp-layer-id';\nexport var KTP_ARIA_SEPARATOR = ', ';\n// Events\nexport var KeytipEvents;\n(function (KeytipEvents) {\n KeytipEvents.KEYTIP_ADDED = 'keytipAdded';\n KeytipEvents.KEYTIP_REMOVED = 'keytipRemoved';\n KeytipEvents.KEYTIP_UPDATED = 'keytipUpdated';\n KeytipEvents.PERSISTED_KEYTIP_ADDED = 'persistedKeytipAdded';\n KeytipEvents.PERSISTED_KEYTIP_REMOVED = 'persistedKeytipRemoved';\n KeytipEvents.PERSISTED_KEYTIP_EXECUTE = 'persistedKeytipExecute';\n KeytipEvents.ENTER_KEYTIP_MODE = 'enterKeytipMode';\n KeytipEvents.EXIT_KEYTIP_MODE = 'exitKeytipMode';\n})(KeytipEvents || (KeytipEvents = {}));\n//# sourceMappingURL=KeytipConstants.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport { EventGroup, getId } from '../../Utilities';\nimport { KeytipEvents } from '../../utilities/keytips/KeytipConstants';\n/**\n * This class is responsible for handling registering, updating, and unregistering of keytips\n */\nvar KeytipManager = /** @class */ (function () {\n function KeytipManager() {\n this.keytips = {};\n this.persistedKeytips = {};\n this.sequenceMapping = {};\n // This is (and should be) updated and kept in sync\n // with the inKeytipMode in KeytipLayer.\n this.inKeytipMode = false;\n // Boolean that gets checked before entering keytip mode by the KeytipLayer\n // Used for an override in special cases (e.g. Disable entering keytip mode when a modal is shown)\n this.shouldEnterKeytipMode = true;\n // Boolean to indicate whether to delay firing an event to update subscribers of\n // keytip data changed.\n this.delayUpdatingKeytipChange = false;\n }\n /**\n * Static function to get singleton KeytipManager instance\n *\n * @returns Singleton KeytipManager instance\n */\n KeytipManager.getInstance = function () {\n return this._instance;\n };\n /**\n * Initialization code to set set parameters to define\n * how the KeytipManager handles keytip data.\n *\n * @param delayUpdatingKeytipChange - T/F if we should delay notifiying keytip subscribers\n * of keytip changes\n */\n KeytipManager.prototype.init = function (delayUpdatingKeytipChange) {\n this.delayUpdatingKeytipChange = delayUpdatingKeytipChange;\n };\n /**\n * Registers a keytip\n *\n * @param keytipProps - Keytip to register\n * @param persisted - T/F if this keytip should be persisted, default is false\n * @returns Unique ID for this keytip\n */\n KeytipManager.prototype.register = function (keytipProps, persisted) {\n if (persisted === void 0) { persisted = false; }\n var props = keytipProps;\n if (!persisted) {\n // Add the overflowSetSequence if necessary\n props = this.addParentOverflow(keytipProps);\n this.sequenceMapping[props.keySequences.toString()] = props;\n }\n // Create a unique keytip\n var uniqueKeytip = this._getUniqueKtp(props);\n // Add to dictionary\n persisted\n ? (this.persistedKeytips[uniqueKeytip.uniqueID] = uniqueKeytip)\n : (this.keytips[uniqueKeytip.uniqueID] = uniqueKeytip);\n // We only want to add something new if we are currently showing keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n var event_1 = persisted ? KeytipEvents.PERSISTED_KEYTIP_ADDED : KeytipEvents.KEYTIP_ADDED;\n EventGroup.raise(this, event_1, {\n keytip: props,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n return uniqueKeytip.uniqueID;\n };\n /**\n * Update a keytip\n *\n * @param keytipProps - Keytip to update\n * @param uniqueID - Unique ID of this keytip\n */\n KeytipManager.prototype.update = function (keytipProps, uniqueID) {\n var newKeytipProps = this.addParentOverflow(keytipProps);\n var uniqueKeytip = this._getUniqueKtp(newKeytipProps, uniqueID);\n var oldKeyTip = this.keytips[uniqueID];\n if (oldKeyTip) {\n // Update everything except 'visible'\n uniqueKeytip.keytip.visible = oldKeyTip.keytip.visible;\n // Update keytip in this.keytips\n this.keytips[uniqueID] = uniqueKeytip;\n // Update the sequence to be up to date\n delete this.sequenceMapping[oldKeyTip.keytip.keySequences.toString()];\n this.sequenceMapping[uniqueKeytip.keytip.keySequences.toString()] = uniqueKeytip.keytip;\n // Raise event only if we are currently in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, KeytipEvents.KEYTIP_UPDATED, {\n keytip: uniqueKeytip.keytip,\n uniqueID: uniqueKeytip.uniqueID,\n });\n }\n }\n };\n /**\n * Unregisters a keytip\n *\n * @param keytipToRemove - IKeytipProps of the keytip to remove\n * @param uniqueID - Unique ID of this keytip\n * @param persisted - T/F if this keytip should be persisted, default is false\n */\n KeytipManager.prototype.unregister = function (keytipToRemove, uniqueID, persisted) {\n if (persisted === void 0) { persisted = false; }\n persisted ? delete this.persistedKeytips[uniqueID] : delete this.keytips[uniqueID];\n !persisted && delete this.sequenceMapping[keytipToRemove.keySequences.toString()];\n var event = persisted ? KeytipEvents.PERSISTED_KEYTIP_REMOVED : KeytipEvents.KEYTIP_REMOVED;\n // Update keytips only if we're in keytip mode\n if (this.inKeytipMode || !this.delayUpdatingKeytipChange) {\n EventGroup.raise(this, event, {\n keytip: keytipToRemove,\n uniqueID: uniqueID,\n });\n }\n };\n /**\n * Manual call to enter keytip mode\n */\n KeytipManager.prototype.enterKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.ENTER_KEYTIP_MODE);\n };\n /**\n * Manual call to exit keytip mode\n */\n KeytipManager.prototype.exitKeytipMode = function () {\n EventGroup.raise(this, KeytipEvents.EXIT_KEYTIP_MODE);\n };\n /**\n * Gets all IKeytipProps from this.keytips\n *\n * @returns All keytips stored in the manager\n */\n KeytipManager.prototype.getKeytips = function () {\n var _this = this;\n return Object.keys(this.keytips).map(function (key) { return _this.keytips[key].keytip; });\n };\n /**\n * Adds the overflowSetSequence to the keytipProps if its parent keytip also has it\n *\n * @param keytipProps - Keytip props to add overflowSetSequence to if necessary\n * @returns - Modified keytip props, if needed to be modified\n */\n KeytipManager.prototype.addParentOverflow = function (keytipProps) {\n var fullSequence = __spreadArray([], keytipProps.keySequences, true);\n fullSequence.pop();\n if (fullSequence.length !== 0) {\n var parentKeytip = this.sequenceMapping[fullSequence.toString()];\n if (parentKeytip && parentKeytip.overflowSetSequence) {\n return __assign(__assign({}, keytipProps), { overflowSetSequence: parentKeytip.overflowSetSequence });\n }\n }\n return keytipProps;\n };\n /**\n * Public function to bind for overflow items that have a submenu\n */\n KeytipManager.prototype.menuExecute = function (overflowButtonSequences, keytipSequences) {\n EventGroup.raise(this, KeytipEvents.PERSISTED_KEYTIP_EXECUTE, {\n overflowButtonSequences: overflowButtonSequences,\n keytipSequences: keytipSequences,\n });\n };\n /**\n * Creates an IUniqueKeytip object\n *\n * @param keytipProps - IKeytipProps\n * @param uniqueID - Unique ID, will default to the next unique ID if not passed\n * @returns IUniqueKeytip object\n */\n KeytipManager.prototype._getUniqueKtp = function (keytipProps, uniqueID) {\n if (uniqueID === void 0) { uniqueID = getId(); }\n return { keytip: __assign({}, keytipProps), uniqueID: uniqueID };\n };\n KeytipManager._instance = new KeytipManager();\n return KeytipManager;\n}());\nexport { KeytipManager };\n//# sourceMappingURL=KeytipManager.js.map","import { __spreadArray } from \"tslib\";\nimport { KTP_SEPARATOR, KTP_PREFIX, DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET, KTP_LAYER_ID } from './KeytipConstants';\nimport { addElementAtIndex } from '../../Utilities';\n/**\n * Converts a whole set of KeySequences into one keytip ID, which will be the ID for the last keytip sequence specified\n * keySequences should not include the initial keytip 'start' sequence.\n *\n * @param keySequences - Full path of IKeySequences for one keytip.\n * @returns String to use for the keytip ID.\n */\nexport function sequencesToID(keySequences) {\n return keySequences.reduce(function (prevValue, keySequence) {\n return prevValue + KTP_SEPARATOR + keySequence.split('').join(KTP_SEPARATOR);\n }, KTP_PREFIX);\n}\n/**\n * Merges an overflow sequence with a key sequence.\n *\n * @param keySequences - Full sequence for one keytip.\n * @param overflowKeySequences - Full overflow keytip sequence.\n * @returns Sequence that will be used by the keytip when in the overflow.\n */\nexport function mergeOverflows(keySequences, overflowKeySequences) {\n var overflowSequenceLen = overflowKeySequences.length;\n var overflowSequence = __spreadArray([], overflowKeySequences, true).pop();\n var newKeySequences = __spreadArray([], keySequences, true);\n return addElementAtIndex(newKeySequences, overflowSequenceLen - 1, overflowSequence);\n}\n/**\n * Constructs the data-ktp-target attribute selector from a full key sequence.\n *\n * @param keySequences - Full string[] for a Keytip.\n * @returns String selector to use to query for the keytip target.\n */\nexport function ktpTargetFromSequences(keySequences) {\n return '[' + DATAKTP_TARGET + '=\"' + sequencesToID(keySequences) + '\"]';\n}\n/**\n * Constructs the data-ktp-execute-target attribute selector from a keytip ID.\n *\n * @param keytipId - ID of the Keytip.\n * @returns String selector to use to query for the keytip execute target.\n */\nexport function ktpTargetFromId(keytipId) {\n return '[' + DATAKTP_EXECUTE_TARGET + '=\"' + keytipId + '\"]';\n}\n/**\n * Gets the aria-describedby value to put on the component with this keytip.\n *\n * @param keySequences - KeySequences of the keytip.\n * @returns The aria-describedby value to set on the component with this keytip.\n */\nexport function getAriaDescribedBy(keySequences) {\n var describedby = ' ' + KTP_LAYER_ID;\n if (!keySequences.length) {\n // Return just the layer ID\n return describedby;\n }\n return describedby + ' ' + sequencesToID(keySequences);\n}\n//# sourceMappingURL=KeytipUtils.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { useConst, useIsomorphicLayoutEffect, usePrevious } from '@fluentui/react-hooks';\nimport { mergeAriaAttributeValues } from '../../Utilities';\nimport { KeytipManager, mergeOverflows, sequencesToID, getAriaDescribedBy } from '../../utilities/keytips/index';\n/**\n * Hook that creates attributes for components which are enabled with Keytip.\n */\nexport function useKeytipData(options) {\n var uniqueId = React.useRef();\n var keytipProps = options.keytipProps\n ? __assign({ disabled: options.disabled }, options.keytipProps) : undefined;\n var keytipManager = useConst(KeytipManager.getInstance());\n var prevOptions = usePrevious(options);\n // useLayoutEffect used to strictly emulate didUpdate/didMount behavior\n useIsomorphicLayoutEffect(function () {\n if (uniqueId.current &&\n keytipProps &&\n ((prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.keytipProps) !== options.keytipProps || (prevOptions === null || prevOptions === void 0 ? void 0 : prevOptions.disabled) !== options.disabled)) {\n keytipManager.update(keytipProps, uniqueId.current);\n }\n });\n useIsomorphicLayoutEffect(function () {\n // Register Keytip in KeytipManager\n if (keytipProps) {\n uniqueId.current = keytipManager.register(keytipProps);\n }\n return function () {\n // Unregister Keytip in KeytipManager\n keytipProps && keytipManager.unregister(keytipProps, uniqueId.current);\n };\n // this is meant to run only at mount, and updates are handled separately\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var nativeKeytipProps = {\n ariaDescribedBy: options.ariaDescribedBy,\n keytipId: undefined,\n };\n if (keytipProps) {\n nativeKeytipProps = getKeytipData(keytipManager, keytipProps, options.ariaDescribedBy);\n }\n return nativeKeytipProps;\n}\n/**\n * Gets the aria- and data- attributes to attach to the component\n * @param keytipProps - options for Keytip\n * @param describedByPrepend - ariaDescribedBy value to prepend\n */\nfunction getKeytipData(keytipManager, keytipProps, describedByPrepend) {\n // Add the parent overflow sequence if necessary\n var newKeytipProps = keytipManager.addParentOverflow(keytipProps);\n // Construct aria-describedby and data-ktp-id attributes\n var ariaDescribedBy = mergeAriaAttributeValues(describedByPrepend, getAriaDescribedBy(newKeytipProps.keySequences));\n var keySequences = __spreadArray([], newKeytipProps.keySequences, true);\n if (newKeytipProps.overflowSetSequence) {\n keySequences = mergeOverflows(keySequences, newKeytipProps.overflowSetSequence);\n }\n var keytipId = sequencesToID(keySequences);\n return {\n ariaDescribedBy: ariaDescribedBy,\n keytipId: keytipId,\n };\n}\n//# sourceMappingURL=useKeytipData.js.map","import { __rest } from \"tslib\";\nimport { DATAKTP_TARGET, DATAKTP_EXECUTE_TARGET } from '../../utilities/keytips/index';\nimport { useKeytipData } from './useKeytipData';\n/**\n * A small element to help the target component correctly read out its aria-describedby for its Keytip\n * {@docCategory Keytips}\n */\nexport var KeytipData = function (props) {\n var _a;\n var children = props.children, keytipDataProps = __rest(props, [\"children\"]);\n var _b = useKeytipData(keytipDataProps), keytipId = _b.keytipId, ariaDescribedBy = _b.ariaDescribedBy;\n return children((_a = {},\n _a[DATAKTP_TARGET] = keytipId,\n _a[DATAKTP_EXECUTE_TARGET] = keytipId,\n _a['aria-describedby'] = ariaDescribedBy,\n _a));\n};\n//# sourceMappingURL=KeytipData.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { isItemDisabled, hasSubmenu } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuAnchor = /** @class */ (function (_super) {\n __extends(ContextualMenuAnchor, _super);\n function ContextualMenuAnchor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._anchor = React.createRef();\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._getSubmenuTarget = function () {\n return _this._anchor.current ? _this._anchor.current : undefined;\n };\n _this._onItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClick = _a.onItemClick;\n if (onItemClick) {\n onItemClick(item, ev);\n }\n };\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n return _this;\n }\n ContextualMenuAnchor.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, expandedMenuItemKey = _a.expandedMenuItemKey, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var ChildrenRenderer = ContextualMenuItem;\n if (this.props.item.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(this.props.item.contextualMenuItemAs, ChildrenRenderer);\n }\n if (this.props.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(this.props.contextualMenuItemAs, ChildrenRenderer);\n }\n var anchorRel = item.rel;\n if (item.target && item.target.toLowerCase() === '_blank') {\n anchorRel = anchorRel ? anchorRel : 'nofollow noopener noreferrer'; // Safe default to prevent tabjacking\n }\n var itemHasSubmenu = hasSubmenu(item);\n var nativeProps = getNativeProps(item, anchorProperties);\n var disabled = isItemDisabled(item);\n var itemProps = item.itemProps, ariaDescription = item.ariaDescription;\n var keytipProps = item.keytipProps;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, nativeProps['aria-describedby']);\n var additionalItemProperties = {\n 'aria-describedby': ariaDescribedByIds,\n };\n return (React.createElement(\"div\", null,\n React.createElement(KeytipData, { keytipProps: item.keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: disabled }, function (keytipAttributes) { return (React.createElement(\"a\", __assign({}, additionalItemProperties, nativeProps, keytipAttributes, { ref: _this._anchor, href: item.href, target: item.target, rel: anchorRel, className: classNames.root, role: \"menuitem\", \"aria-haspopup\": itemHasSubmenu || undefined, \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, \"aria-disabled\": isItemDisabled(item), \n // eslint-disable-next-line deprecation/deprecation\n style: item.style, onClick: _this._onItemClick, onMouseEnter: _this._onItemMouseEnter, onMouseLeave: _this._onItemMouseLeave, onMouseMove: _this._onItemMouseMove, onKeyDown: itemHasSubmenu ? _this._onItemKeyDown : undefined }),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); })));\n };\n return ContextualMenuAnchor;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuAnchor };\n//# sourceMappingURL=ContextualMenuAnchor.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, memoizeFunction, getId, mergeAriaAttributeValues, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, isItemDisabled, hasSubmenu, getMenuItemAriaRole } from '../../../utilities/contextualMenu/index';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nvar ContextualMenuButton = /** @class */ (function (_super) {\n __extends(ContextualMenuButton, _super);\n function ContextualMenuButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._btn = React.createRef();\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n _this._getSubmenuTarget = function () {\n return _this._btn.current ? _this._btn.current : undefined;\n };\n return _this;\n }\n ContextualMenuButton.prototype.render = function () {\n var _this = this;\n var _a = this.props, item = _a.item, classNames = _a.classNames, index = _a.index, focusableElementIndex = _a.focusableElementIndex, totalItemCount = _a.totalItemCount, hasCheckmarks = _a.hasCheckmarks, hasIcons = _a.hasIcons, contextualMenuItemAs = _a.contextualMenuItemAs, expandedMenuItemKey = _a.expandedMenuItemKey, onItemMouseDown = _a.onItemMouseDown, onItemClick = _a.onItemClick, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var ChildrenRenderer = ContextualMenuItem;\n if (item.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(item.contextualMenuItemAs, ChildrenRenderer);\n }\n if (contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(contextualMenuItemAs, ChildrenRenderer);\n }\n var isChecked = getIsChecked(item);\n var canCheck = isChecked !== null;\n var defaultRole = getMenuItemAriaRole(item);\n var itemHasSubmenu = hasSubmenu(item);\n var itemProps = item.itemProps, ariaLabel = item.ariaLabel, ariaDescription = item.ariaDescription;\n var buttonNativeProperties = getNativeProps(item, buttonProperties);\n // Do not add the disabled attribute to the button so that it is focusable\n delete buttonNativeProperties.disabled;\n var itemRole = item.role || defaultRole;\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaDescribedByIds = mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? this._ariaDescriptionId : undefined, buttonNativeProperties['aria-describedby']);\n var itemButtonProperties = {\n className: classNames.root,\n onClick: this._onItemClick,\n onKeyDown: itemHasSubmenu ? this._onItemKeyDown : undefined,\n onMouseEnter: this._onItemMouseEnter,\n onMouseLeave: this._onItemMouseLeave,\n onMouseDown: function (ev) {\n return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n },\n onMouseMove: this._onItemMouseMove,\n href: item.href,\n title: item.title,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedByIds,\n 'aria-haspopup': itemHasSubmenu || undefined,\n 'aria-expanded': itemHasSubmenu ? item.key === expandedMenuItemKey : undefined,\n 'aria-posinset': focusableElementIndex + 1,\n 'aria-setsize': totalItemCount,\n 'aria-disabled': isItemDisabled(item),\n 'aria-checked': (itemRole === 'menuitemcheckbox' || itemRole === 'menuitemradio') && canCheck ? !!isChecked : undefined,\n 'aria-selected': itemRole === 'menuitem' && canCheck ? !!isChecked : undefined,\n role: itemRole,\n // eslint-disable-next-line deprecation/deprecation\n style: item.style,\n };\n var keytipProps = item.keytipProps;\n if (keytipProps && itemHasSubmenu) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n return (React.createElement(KeytipData, { keytipProps: keytipProps, ariaDescribedBy: ariaDescribedByIds, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"button\", __assign({ ref: _this._btn }, buttonNativeProperties, itemButtonProperties, keytipAttributes),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: item, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: _this._getSubmenuTarget }, itemProps)),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n };\n return ContextualMenuButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuButton };\n//# sourceMappingURL=ContextualMenuButton.js.map","export var getStyles = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var theme = props.theme, getClassNames = props.getClassNames, className = props.className;\n if (!theme) {\n throw new Error('Theme is undefined or null.');\n }\n if (getClassNames) {\n var names = getClassNames(theme);\n return {\n wrapper: [names.wrapper],\n divider: [names.divider],\n };\n }\n return {\n wrapper: [\n {\n display: 'inline-flex',\n height: '100%',\n alignItems: 'center',\n },\n className,\n ],\n divider: [\n {\n width: 1,\n height: '100%',\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n ],\n };\n};\n//# sourceMappingURL=VerticalDivider.styles.js.map","import * as React from 'react';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var VerticalDividerBase = React.forwardRef(function (props, ref) {\n // eslint-disable-next-line deprecation/deprecation\n var styles = props.styles, theme = props.theme, deprecatedGetClassNames = props.getClassNames, className = props.className;\n var classNames = getClassNames(styles, { theme: theme, getClassNames: deprecatedGetClassNames, className: className });\n return (React.createElement(\"span\", { className: classNames.wrapper, ref: ref },\n React.createElement(\"span\", { className: classNames.divider })));\n});\nVerticalDividerBase.displayName = 'VerticalDividerBase';\n//# sourceMappingURL=VerticalDivider.base.js.map","import { getStyles } from './VerticalDivider.styles';\nimport { VerticalDividerBase } from './VerticalDivider.base';\nimport { styled } from '../../Utilities';\nexport var VerticalDivider = styled(VerticalDividerBase, getStyles, undefined, {\n scope: 'VerticalDivider',\n});\n//# sourceMappingURL=VerticalDivider.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { buttonProperties, getNativeProps, KeyCodes, mergeAriaAttributeValues, memoizeFunction, Async, EventGroup, getId, composeComponentAs, } from '../../../Utilities';\nimport { ContextualMenuItem } from '../ContextualMenuItem';\nimport { getSplitButtonVerticalDividerClassNames } from '../ContextualMenu.classNames';\nimport { KeytipData } from '../../../KeytipData';\nimport { getIsChecked, getMenuItemAriaRole, hasSubmenu, isItemDisabled } from '../../../utilities/contextualMenu/index';\nimport { VerticalDivider } from '../../../Divider';\nimport { ContextualMenuItemWrapper } from './ContextualMenuItemWrapper';\nvar TouchIdleDelay = 500; /* ms */\nvar ContextualMenuSplitButton = /** @class */ (function (_super) {\n __extends(ContextualMenuSplitButton, _super);\n function ContextualMenuSplitButton(props) {\n var _this = _super.call(this, props) || this;\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._onItemKeyDown = function (ev) {\n var _a = _this.props, item = _a.item, onItemKeyDown = _a.onItemKeyDown;\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n _this._executeItemClick(ev);\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (onItemKeyDown) {\n onItemKeyDown(item, ev);\n }\n };\n _this._getSubmenuTarget = function () {\n return _this._splitButton;\n };\n _this._renderAriaDescription = function (ariaDescription, className) {\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan\n return ariaDescription ? (React.createElement(\"span\", { id: _this._ariaDescriptionId, className: className }, ariaDescription)) : null;\n };\n _this._onItemMouseEnterPrimary = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n }\n };\n _this._onItemMouseEnterIcon = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseEnter = _a.onItemMouseEnter;\n if (onItemMouseEnter) {\n onItemMouseEnter(item, ev, _this._splitButton);\n }\n };\n _this._onItemMouseMovePrimary = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(__assign(__assign({}, item), { subMenuProps: undefined, items: undefined }), ev, _this._splitButton);\n }\n };\n _this._onItemMouseMoveIcon = function (ev) {\n var _a = _this.props, item = _a.item, onItemMouseMove = _a.onItemMouseMove;\n if (onItemMouseMove) {\n onItemMouseMove(item, ev, _this._splitButton);\n }\n };\n _this._onIconItemClick = function (ev) {\n var _a = _this.props, item = _a.item, onItemClickBase = _a.onItemClickBase;\n if (onItemClickBase) {\n onItemClickBase(item, ev, (_this._splitButton ? _this._splitButton : ev.currentTarget));\n }\n };\n _this._executeItemClick = function (ev) {\n var _a = _this.props, item = _a.item, executeItemClick = _a.executeItemClick, onItemClick = _a.onItemClick;\n if (item.disabled || item.isDisabled) {\n return;\n }\n if (_this._processingTouch && !item.canCheck && onItemClick) {\n return onItemClick(item, ev);\n }\n if (executeItemClick) {\n executeItemClick(item, ev);\n }\n };\n _this._onTouchStart = function (ev) {\n if (_this._splitButton && !('onpointerdown' in _this._splitButton)) {\n _this._handleTouchAndPointerEvent(ev);\n }\n };\n _this._onPointerDown = function (ev) {\n if (ev.pointerType === 'touch') {\n _this._handleTouchAndPointerEvent(ev);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n _this._dismissLabelId = getId();\n return _this;\n }\n ContextualMenuSplitButton.prototype.componentDidMount = function () {\n if (this._splitButton && 'onpointerdown' in this._splitButton) {\n this._events.on(this._splitButton, 'pointerdown', this._onPointerDown, true);\n }\n };\n ContextualMenuSplitButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n ContextualMenuSplitButton.prototype.render = function () {\n var _this = this;\n var _a;\n var _b = this.props, item = _b.item, classNames = _b.classNames, index = _b.index, focusableElementIndex = _b.focusableElementIndex, totalItemCount = _b.totalItemCount, hasCheckmarks = _b.hasCheckmarks, hasIcons = _b.hasIcons, onItemMouseLeave = _b.onItemMouseLeave, expandedMenuItemKey = _b.expandedMenuItemKey;\n var itemHasSubmenu = hasSubmenu(item);\n var keytipProps = item.keytipProps;\n if (keytipProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n // Check for ariaDescription to set the _ariaDescriptionId and render a hidden span with\n // the description in it to be added to ariaDescribedBy\n var ariaDescription = item.ariaDescription;\n if (ariaDescription) {\n this._ariaDescriptionId = getId();\n }\n var ariaChecked = (_a = getIsChecked(item)) !== null && _a !== void 0 ? _a : undefined;\n return (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: isItemDisabled(item) }, function (keytipAttributes) { return (React.createElement(\"div\", { \"data-ktp-target\": keytipAttributes['data-ktp-target'], ref: function (splitButton) { return (_this._splitButton = splitButton); }, role: getMenuItemAriaRole(item), \"aria-label\": item.ariaLabel, className: classNames.splitContainer, \"aria-disabled\": isItemDisabled(item), \"aria-expanded\": itemHasSubmenu ? item.key === expandedMenuItemKey : undefined, \"aria-haspopup\": true, \"aria-describedby\": mergeAriaAttributeValues(item.ariaDescribedBy, ariaDescription ? _this._ariaDescriptionId : undefined, keytipAttributes['aria-describedby']), \"aria-checked\": ariaChecked, \"aria-posinset\": focusableElementIndex + 1, \"aria-setsize\": totalItemCount, onMouseEnter: _this._onItemMouseEnterPrimary, onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(_this, __assign(__assign({}, item), { subMenuProps: null, items: null })) : undefined, onMouseMove: _this._onItemMouseMovePrimary, onKeyDown: _this._onItemKeyDown, onClick: _this._executeItemClick, onTouchStart: _this._onTouchStart, tabIndex: 0, \"data-is-focusable\": true, \"aria-roledescription\": item['aria-roledescription'] },\n _this._renderSplitPrimaryButton(item, classNames, index, hasCheckmarks, hasIcons),\n _this._renderSplitDivider(item),\n _this._renderSplitIconButton(item, classNames, index, keytipAttributes),\n _this._renderAriaDescription(ariaDescription, classNames.screenReaderText))); }));\n };\n ContextualMenuSplitButton.prototype._renderSplitPrimaryButton = function (item, \n // eslint-disable-next-line deprecation/deprecation\n classNames, index, hasCheckmarks, hasIcons) {\n var _a = this.props, _b = _a.contextualMenuItemAs, ChildrenRenderer = _b === void 0 ? ContextualMenuItem : _b, onItemClick = _a.onItemClick;\n var itemProps = {\n key: item.key,\n disabled: isItemDisabled(item) || item.primaryDisabled,\n /* eslint-disable deprecation/deprecation */\n name: item.name,\n text: item.text || item.name,\n secondaryText: item.secondaryText,\n /* eslint-enable deprecation/deprecation */\n className: classNames.splitPrimary,\n canCheck: item.canCheck,\n isChecked: item.isChecked,\n checked: item.checked,\n iconProps: item.iconProps,\n id: this._dismissLabelId,\n onClick: item.onClick,\n onRenderIcon: item.onRenderIcon,\n data: item.data,\n 'data-is-focusable': false,\n };\n var itemComponentProps = item.itemProps;\n return (React.createElement(\"button\", __assign({}, getNativeProps(itemProps, buttonProperties)),\n React.createElement(ChildrenRenderer, __assign({ \"data-is-focusable\": false, item: itemProps, classNames: classNames, index: index, onCheckmarkClick: hasCheckmarks && onItemClick ? onItemClick : undefined, hasIcons: hasIcons }, itemComponentProps))));\n };\n ContextualMenuSplitButton.prototype._renderSplitDivider = function (item) {\n var getDividerClassNames = item.getSplitButtonVerticalDividerClassNames || getSplitButtonVerticalDividerClassNames;\n return React.createElement(VerticalDivider, { getClassNames: getDividerClassNames });\n };\n ContextualMenuSplitButton.prototype._renderSplitIconButton = function (item, classNames, // eslint-disable-line deprecation/deprecation\n index, keytipAttributes) {\n var _a = this.props, onItemMouseLeave = _a.onItemMouseLeave, onItemMouseDown = _a.onItemMouseDown, openSubMenu = _a.openSubMenu, dismissSubMenu = _a.dismissSubMenu, dismissMenu = _a.dismissMenu;\n var ChildrenRenderer = ContextualMenuItem;\n if (this.props.item.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(this.props.item.contextualMenuItemAs, ChildrenRenderer);\n }\n if (this.props.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(this.props.contextualMenuItemAs, ChildrenRenderer);\n }\n var itemProps = {\n onClick: this._onIconItemClick,\n disabled: isItemDisabled(item),\n className: classNames.splitMenu,\n subMenuProps: item.subMenuProps,\n submenuIconProps: item.submenuIconProps,\n split: true,\n key: item.key,\n 'aria-labelledby': this._dismissLabelId,\n };\n var buttonProps = __assign(__assign({}, getNativeProps(itemProps, buttonProperties)), {\n onMouseEnter: this._onItemMouseEnterIcon,\n onMouseLeave: onItemMouseLeave ? onItemMouseLeave.bind(this, item) : undefined,\n onMouseDown: function (ev) {\n return onItemMouseDown ? onItemMouseDown(item, ev) : undefined;\n },\n onMouseMove: this._onItemMouseMoveIcon,\n 'data-is-focusable': false,\n 'data-ktp-execute-target': keytipAttributes['data-ktp-execute-target'],\n 'aria-haspopup': true,\n });\n var itemComponentProps = item.itemProps;\n return (React.createElement(\"button\", __assign({}, buttonProps),\n React.createElement(ChildrenRenderer, __assign({ componentRef: item.componentRef, item: itemProps, classNames: classNames, index: index, hasIcons: false, openSubMenu: openSubMenu, dismissSubMenu: dismissSubMenu, dismissMenu: dismissMenu, getSubmenuTarget: this._getSubmenuTarget }, itemComponentProps))));\n };\n ContextualMenuSplitButton.prototype._handleTouchAndPointerEvent = function (ev) {\n var _this = this;\n var onTap = this.props.onTap;\n if (onTap) {\n onTap(ev);\n }\n // If we already have an existing timeout from a previous touch/pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n }, TouchIdleDelay);\n };\n return ContextualMenuSplitButton;\n}(ContextualMenuItemWrapper));\nexport { ContextualMenuSplitButton };\n//# sourceMappingURL=ContextualMenuSplitButton.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { hoistMethods, unhoistMethods } from '../../Utilities';\nvar BaseDecorator = /** @class */ (function (_super) {\n __extends(BaseDecorator, _super);\n function BaseDecorator(props) {\n var _this = _super.call(this, props) || this;\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n return _this;\n }\n /**\n * Updates the ref to the component composed by the decorator, which will also take care of hoisting\n * (and unhoisting as appropriate) methods from said component.\n *\n * Pass this method as the argument to the 'ref' property of the composed component.\n */\n BaseDecorator.prototype._updateComposedComponentRef = function (composedComponentInstance) {\n this._composedComponentInstance = composedComponentInstance;\n if (composedComponentInstance) {\n this._hoisted = hoistMethods(this, composedComponentInstance);\n }\n else if (this._hoisted) {\n unhoistMethods(this, this._hoisted);\n }\n };\n return BaseDecorator;\n}(React.Component));\nexport { BaseDecorator };\n//# sourceMappingURL=BaseDecorator.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseDecorator } from './BaseDecorator';\nimport { getWindow, hoistStatics, EventGroup } from '../../Utilities';\nimport { WindowContext } from '../../WindowProvider';\nexport var ResponsiveMode;\n(function (ResponsiveMode) {\n /** Width \\<= 479px */\n ResponsiveMode[ResponsiveMode[\"small\"] = 0] = \"small\";\n /** Width \\> 479px and \\<= 639px */\n ResponsiveMode[ResponsiveMode[\"medium\"] = 1] = \"medium\";\n /** Width \\> 639px and \\<= 1023px */\n ResponsiveMode[ResponsiveMode[\"large\"] = 2] = \"large\";\n /** Width \\> 1023px and \\<= 1365px */\n ResponsiveMode[ResponsiveMode[\"xLarge\"] = 3] = \"xLarge\";\n /** Width \\> 1365px and \\<= 1919px */\n ResponsiveMode[ResponsiveMode[\"xxLarge\"] = 4] = \"xxLarge\";\n /** Width \\> 1919px */\n ResponsiveMode[ResponsiveMode[\"xxxLarge\"] = 5] = \"xxxLarge\";\n ResponsiveMode[ResponsiveMode[\"unknown\"] = 999] = \"unknown\";\n})(ResponsiveMode || (ResponsiveMode = {}));\nvar RESPONSIVE_MAX_CONSTRAINT = [479, 639, 1023, 1365, 1919, 99999999];\n/**\n * User specified mode to default to, useful for server side rendering scenarios.\n */\nvar _defaultMode;\n/**\n * Tracking the last mode we successfully rendered, which allows us to\n * paint initial renders with the correct size.\n */\nvar _lastMode;\n/**\n * Allows a server rendered scenario to provide a **default** responsive mode.\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function setResponsiveMode(responsiveMode) {\n _defaultMode = responsiveMode;\n}\n/**\n * Initializes the responsive mode to the current window size. This can be used to avoid\n * a re-render during first component mount since the window would otherwise not be measured\n * until after mounting.\n *\n * This WILL NOT trigger any updates to components that have already consumed the responsive mode!\n */\nexport function initializeResponsiveMode(element) {\n var currentWindow = getWindow(element);\n if (currentWindow) {\n getResponsiveMode(currentWindow);\n }\n}\nexport function getInitialResponsiveMode() {\n var _a;\n return (_a = _defaultMode !== null && _defaultMode !== void 0 ? _defaultMode : _lastMode) !== null && _a !== void 0 ? _a : ResponsiveMode.large;\n}\n/**\n * @deprecated Decorator usage is deprecated. Either call `getResponsiveMode` manually, or\n * use the `useResponsiveMode` hook within a function component.\n */\nexport function withResponsiveMode(ComposedComponent) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var resultClass = (_a = /** @class */ (function (_super) {\n __extends(WithResponsiveMode, _super);\n function WithResponsiveMode(props) {\n var _this = _super.call(this, props) || this;\n _this._onResize = function () {\n var responsiveMode = getResponsiveMode(_this.context.window);\n if (responsiveMode !== _this.state.responsiveMode) {\n _this.setState({\n responsiveMode: responsiveMode,\n });\n }\n };\n _this._events = new EventGroup(_this);\n _this._updateComposedComponentRef = _this._updateComposedComponentRef.bind(_this);\n _this.state = {\n responsiveMode: getInitialResponsiveMode(),\n };\n return _this;\n }\n WithResponsiveMode.prototype.componentDidMount = function () {\n this._events.on(this.context.window, 'resize', this._onResize);\n this._onResize();\n };\n WithResponsiveMode.prototype.componentWillUnmount = function () {\n this._events.dispose();\n };\n WithResponsiveMode.prototype.render = function () {\n var responsiveMode = this.state.responsiveMode;\n return responsiveMode === ResponsiveMode.unknown ? null : (React.createElement(ComposedComponent, __assign({ ref: this._updateComposedComponentRef, responsiveMode: responsiveMode }, this.props)));\n };\n return WithResponsiveMode;\n }(BaseDecorator)),\n _a.contextType = WindowContext,\n _a);\n return hoistStatics(ComposedComponent, resultClass);\n}\nfunction getWidthOfCurrentWindow(currentWindow) {\n try {\n return currentWindow.document.documentElement.clientWidth;\n }\n catch (e) {\n return currentWindow.innerWidth;\n }\n}\n/**\n * Hook to get the current responsive mode (window size category).\n * @param currentWindow - Use this window when determining the responsive mode.\n */\nexport function getResponsiveMode(currentWindow) {\n var responsiveMode = ResponsiveMode.small;\n if (currentWindow) {\n try {\n while (getWidthOfCurrentWindow(currentWindow) > RESPONSIVE_MAX_CONSTRAINT[responsiveMode]) {\n responsiveMode++;\n }\n }\n catch (e) {\n // Return a best effort result in cases where we're in the browser but it throws on getting innerWidth.\n responsiveMode = getInitialResponsiveMode();\n }\n // Tracking last mode just gives us a better default in future renders,\n // which avoids starting with the wrong value if we've measured once.\n _lastMode = responsiveMode;\n }\n else {\n if (_defaultMode !== undefined) {\n responsiveMode = _defaultMode;\n }\n else {\n throw new Error('Content was rendered in a server environment without providing a default responsive mode. ' +\n 'Call setResponsiveMode to define what the responsive mode is.');\n }\n }\n return responsiveMode;\n}\n//# sourceMappingURL=withResponsiveMode.js.map","import * as React from 'react';\nimport { getWindow } from '@fluentui/utilities';\nimport { useOnEvent } from '@fluentui/react-hooks';\nimport { getResponsiveMode, getInitialResponsiveMode } from '../decorators/withResponsiveMode';\nimport { useWindow } from '../../WindowProvider';\n/**\n * Hook to get the current responsive mode (window size category).\n * @param elementRef - Use this element's parent window when determining the responsive mode.\n * @param overrideResponsiveMode - Override the responsive mode. If this param is present, it's always returned.\n */\nexport var useResponsiveMode = function (elementRef, overrideResponsiveMode) {\n var _a = React.useState(getInitialResponsiveMode()), lastResponsiveMode = _a[0], setLastResponsiveMode = _a[1];\n var onResize = React.useCallback(function () {\n var newResponsiveMode = getResponsiveMode(getWindow(elementRef.current));\n // Setting the same value should not cause a re-render.\n if (lastResponsiveMode !== newResponsiveMode) {\n setLastResponsiveMode(newResponsiveMode);\n }\n }, [elementRef, lastResponsiveMode]);\n var win = useWindow();\n useOnEvent(win, 'resize', onResize);\n // Call resize function initially on mount, or if the override changes from defined to undefined\n // (the effect will run on all override changes, but onResize will only be called if it changed to undefined)\n React.useEffect(function () {\n if (overrideResponsiveMode === undefined) {\n onResize();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- only meant to run on mount or when override changes\n }, [overrideResponsiveMode]);\n return overrideResponsiveMode !== null && overrideResponsiveMode !== void 0 ? overrideResponsiveMode : lastResponsiveMode;\n};\n//# sourceMappingURL=useResponsiveMode.js.map","import * as React from 'react';\nexport var MenuContext = React.createContext({});\nexport var useMenuContext = function () {\n return React.useContext(MenuContext);\n};\n//# sourceMappingURL=MenuContext.js.map","import { __assign, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { ContextualMenuItemType } from './ContextualMenu.types';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { FocusZone, FocusZoneDirection, FocusZoneTabbableElements } from '../../FocusZone';\nimport { divProperties, getNativeProps, shallowCompare, assign, classNamesFunction, css, getFirstFocusable, getLastFocusable, getRTL, KeyCodes, shouldWrapFocus, isIOS, isMac, memoizeFunction, getPropsWithDefaults, getDocument, FocusRects, composeComponentAs, } from '../../Utilities';\nimport { hasSubmenu, getIsChecked, isItemDisabled } from '../../utilities/contextualMenu/index';\nimport { Callout } from '../../Callout';\nimport { ContextualMenuItem } from './ContextualMenuItem';\nimport { ContextualMenuSplitButton, ContextualMenuButton, ContextualMenuAnchor, } from './ContextualMenuItemWrapper/index';\nimport { concatStyleSetsWithProps } from '../../Styling';\nimport { getItemStyles } from './ContextualMenu.classNames';\nimport { useTarget, usePrevious, useAsync, useWarnings, useId, useIsomorphicLayoutEffect, } from '@fluentui/react-hooks';\nimport { useResponsiveMode, ResponsiveMode } from '../../ResponsiveMode';\nimport { MenuContext } from '../../utilities/MenuContext/index';\nvar getClassNames = classNamesFunction();\nvar getContextualMenuItemClassNames = classNamesFunction();\n// The default ContextualMenu properties have no items and beak, the default submenu direction is right and top.\nvar DEFAULT_PROPS = {\n items: [],\n shouldFocusOnMount: true,\n gapSpace: 0,\n directionalHint: DirectionalHint.bottomAutoEdge,\n beakWidth: 16,\n};\n/* return number of menu items, excluding headers and dividers */\nfunction getItemCount(items) {\n var totalItemCount = 0;\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n var itemCount = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n totalItemCount += itemCount;\n }\n }\n return totalItemCount;\n}\nexport function getSubmenuItems(item, options) {\n var target = options === null || options === void 0 ? void 0 : options.target;\n // eslint-disable-next-line deprecation/deprecation\n var items = item.subMenuProps ? item.subMenuProps.items : item.items;\n if (items) {\n var overrideItems = [];\n for (var _i = 0, items_2 = items; _i < items_2.length; _i++) {\n var subItem = items_2[_i];\n if (subItem.preferMenuTargetAsEventTarget) {\n // For sub-items which need an overridden target, intercept `onClick`\n var onClick = subItem.onClick, contextItem = __rest(subItem, [\"onClick\"]);\n overrideItems.push(__assign(__assign({}, contextItem), { onClick: getOnClickWithOverrideTarget(onClick, target) }));\n }\n else {\n overrideItems.push(subItem);\n }\n }\n return overrideItems;\n }\n}\n/**\n * Returns true if a list of menu items can contain a checkbox\n */\nexport function canAnyMenuItemsCheck(items) {\n return items.some(function (item) {\n if (item.canCheck) {\n return true;\n }\n // If the item is a section, check if any of the items in the section can check.\n if (item.sectionProps && item.sectionProps.items.some(function (submenuItem) { return submenuItem.canCheck === true; })) {\n return true;\n }\n return false;\n });\n}\nvar NavigationIdleDelay = 250; /* ms */\nvar COMPONENT_NAME = 'ContextualMenu';\nvar _getMenuItemStylesFunction = memoizeFunction(function () {\n var styles = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n styles[_i] = arguments[_i];\n }\n return function (styleProps) {\n return concatStyleSetsWithProps.apply(void 0, __spreadArray([styleProps, getItemStyles], styles, false));\n };\n});\n//#region Custom hooks\nfunction useVisibility(props, targetWindow) {\n var _a = props.hidden, hidden = _a === void 0 ? false : _a, onMenuDismissed = props.onMenuDismissed, onMenuOpened = props.onMenuOpened;\n var previousHidden = usePrevious(hidden);\n var onMenuOpenedRef = React.useRef(onMenuOpened);\n var onMenuClosedRef = React.useRef(onMenuDismissed);\n var propsRef = React.useRef(props);\n onMenuOpenedRef.current = onMenuOpened;\n onMenuClosedRef.current = onMenuDismissed;\n propsRef.current = props;\n React.useEffect(function () {\n var _a, _b;\n // Don't issue dismissed callbacks on initial mount\n if (hidden && previousHidden === false) {\n (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current);\n }\n else if (!hidden && previousHidden !== false) {\n (_b = onMenuOpenedRef.current) === null || _b === void 0 ? void 0 : _b.call(onMenuOpenedRef, propsRef.current);\n }\n }, [hidden, previousHidden]);\n // Issue onDismissedCallback on unmount\n React.useEffect(function () { return function () { var _a; return (_a = onMenuClosedRef.current) === null || _a === void 0 ? void 0 : _a.call(onMenuClosedRef, propsRef.current); }; }, []);\n}\nfunction useSubMenuState(_a, dismiss) {\n var hidden = _a.hidden, items = _a.items, theme = _a.theme, className = _a.className, id = _a.id, menuTarget = _a.target;\n var _b = React.useState(), expandedMenuItemKey = _b[0], setExpandedMenuItemKey = _b[1];\n var _c = React.useState(), submenuTarget = _c[0], setSubmenuTarget = _c[1];\n /** True if the menu was expanded by mouse click OR hover (as opposed to by keyboard) */\n var _d = React.useState(), shouldFocusOnContainer = _d[0], setShouldFocusOnContainer = _d[1];\n var subMenuId = useId(COMPONENT_NAME, id);\n var closeSubMenu = React.useCallback(function () {\n setShouldFocusOnContainer(undefined);\n setExpandedMenuItemKey(undefined);\n setSubmenuTarget(undefined);\n }, []);\n var openSubMenu = React.useCallback(function (_a, target, focusContainer) {\n var submenuItemKey = _a.key;\n if (expandedMenuItemKey === submenuItemKey) {\n return;\n }\n target.focus();\n setShouldFocusOnContainer(focusContainer);\n setExpandedMenuItemKey(submenuItemKey);\n setSubmenuTarget(target);\n }, [expandedMenuItemKey]);\n React.useEffect(function () {\n if (hidden) {\n closeSubMenu();\n }\n }, [hidden, closeSubMenu]);\n var onSubMenuDismiss = useOnSubmenuDismiss(dismiss, closeSubMenu);\n var getSubmenuProps = function () {\n var item = findItemByKeyFromItems(expandedMenuItemKey, items);\n var submenuProps = null;\n if (item) {\n submenuProps = {\n items: getSubmenuItems(item, { target: menuTarget }),\n target: submenuTarget,\n onDismiss: onSubMenuDismiss,\n isSubMenu: true,\n id: subMenuId,\n shouldFocusOnMount: true,\n shouldFocusOnContainer: shouldFocusOnContainer,\n directionalHint: getRTL(theme) ? DirectionalHint.leftTopEdge : DirectionalHint.rightTopEdge,\n className: className,\n gapSpace: 0,\n isBeakVisible: false,\n };\n if (item.subMenuProps) {\n assign(submenuProps, item.subMenuProps);\n }\n if (item.preferMenuTargetAsEventTarget) {\n var onItemClick = item.onItemClick;\n submenuProps.onItemClick = getOnClickWithOverrideTarget(onItemClick, menuTarget);\n }\n }\n return submenuProps;\n };\n return [expandedMenuItemKey, openSubMenu, getSubmenuProps, onSubMenuDismiss];\n}\nfunction useShouldUpdateFocusOnMouseMove(_a) {\n var delayUpdateFocusOnHover = _a.delayUpdateFocusOnHover, hidden = _a.hidden;\n var shouldUpdateFocusOnMouseEvent = React.useRef(!delayUpdateFocusOnHover);\n var gotMouseMove = React.useRef(false);\n React.useEffect(function () {\n shouldUpdateFocusOnMouseEvent.current = !delayUpdateFocusOnHover;\n gotMouseMove.current = hidden ? false : !delayUpdateFocusOnHover && gotMouseMove.current;\n }, [delayUpdateFocusOnHover, hidden]);\n var onMenuFocusCapture = React.useCallback(function () {\n if (delayUpdateFocusOnHover) {\n shouldUpdateFocusOnMouseEvent.current = false;\n }\n }, [delayUpdateFocusOnHover]);\n return [shouldUpdateFocusOnMouseEvent, gotMouseMove, onMenuFocusCapture];\n}\nfunction usePreviousActiveElement(_a, targetWindow, hostElement) {\n var hidden = _a.hidden, onRestoreFocus = _a.onRestoreFocus;\n var previousActiveElement = React.useRef();\n var tryFocusPreviousActiveElement = React.useCallback(function (options) {\n var _a, _b;\n if (onRestoreFocus) {\n onRestoreFocus(options);\n }\n else if (options === null || options === void 0 ? void 0 : options.documentContainsFocus) {\n // Make sure that the focus method actually exists\n // In some cases the object might exist but not be a real element.\n // This is primarily for IE 11 and should be removed once IE 11 is no longer in use.\n (_b = (_a = previousActiveElement.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n }, [onRestoreFocus]);\n useIsomorphicLayoutEffect(function () {\n var _a, _b;\n if (!hidden) {\n var newElement = targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement;\n if (!((_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.contains(newElement)) && newElement.tagName !== 'BODY') {\n previousActiveElement.current = newElement;\n }\n }\n else if (previousActiveElement.current) {\n tryFocusPreviousActiveElement({\n originalElement: previousActiveElement.current,\n containsFocus: true,\n documentContainsFocus: ((_b = getDocument()) === null || _b === void 0 ? void 0 : _b.hasFocus()) || false,\n });\n previousActiveElement.current = undefined;\n }\n }, [hidden, targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement, tryFocusPreviousActiveElement, hostElement]);\n return [tryFocusPreviousActiveElement];\n}\nfunction useKeyHandlers(_a, dismiss, hostElement, openSubMenu) {\n var theme = _a.theme, isSubMenu = _a.isSubMenu, _b = _a.focusZoneProps, _c = _b === void 0 ? {} : _b, checkForNoWrap = _c.checkForNoWrap, _d = _c.direction, focusZoneDirection = _d === void 0 ? FocusZoneDirection.vertical : _d;\n /** True if the most recent keydown event was for alt (option) or meta (command). */\n var lastKeyDownWasAltOrMeta = React.useRef();\n /**\n * Calls `shouldHandleKey` to determine whether the keyboard event should be handled;\n * if so, stops event propagation and dismisses menu(s).\n * @param ev - The keyboard event.\n * @param shouldHandleKey - Returns whether we should handle this keyboard event.\n * @param dismissAllMenus - If true, dismiss all menus. Otherwise, dismiss only the current menu.\n * Only does anything if `shouldHandleKey` returns true.\n * @returns Whether the event was handled.\n */\n var keyHandler = function (ev, shouldHandleKey, dismissAllMenus) {\n var handled = false;\n if (shouldHandleKey(ev)) {\n dismiss(ev, dismissAllMenus);\n ev.preventDefault();\n ev.stopPropagation();\n handled = true;\n }\n return handled;\n };\n /**\n * Checks if the submenu should be closed\n */\n var shouldCloseSubMenu = function (ev) {\n var submenuCloseKey = getRTL(theme) ? KeyCodes.right : KeyCodes.left;\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which !== submenuCloseKey || !isSubMenu) {\n return false;\n }\n return !!(focusZoneDirection === FocusZoneDirection.vertical ||\n (checkForNoWrap && !shouldWrapFocus(ev.target, 'data-no-horizontal-wrap')));\n };\n var shouldHandleKeyDown = function (ev) {\n return (\n // eslint-disable-next-line deprecation/deprecation\n ev.which === KeyCodes.escape ||\n shouldCloseSubMenu(ev) ||\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === KeyCodes.up && (ev.altKey || ev.metaKey)));\n };\n var onKeyDown = function (ev) {\n // Take note if we are processing an alt (option) or meta (command) keydown.\n // See comment in shouldHandleKeyUp for reasoning.\n lastKeyDownWasAltOrMeta.current = isAltOrMeta(ev);\n // On Mac, pressing escape dismisses all levels of native context menus\n // eslint-disable-next-line deprecation/deprecation\n var dismissAllMenus = ev.which === KeyCodes.escape && (isMac() || isIOS());\n return keyHandler(ev, shouldHandleKeyDown, dismissAllMenus);\n };\n /**\n * We close the menu on key up only if ALL of the following are true:\n * - Most recent key down was alt or meta (command)\n * - The alt/meta key down was NOT followed by some other key (such as down/up arrow to\n * expand/collapse the menu)\n * - We're not on a Mac (or iOS)\n *\n * This is because on Windows, pressing alt moves focus to the application menu bar or similar,\n * closing any open context menus. There is not a similar behavior on Macs.\n */\n var shouldHandleKeyUp = function (ev) {\n var keyPressIsAltOrMetaAlone = lastKeyDownWasAltOrMeta.current && isAltOrMeta(ev);\n lastKeyDownWasAltOrMeta.current = false;\n return !!keyPressIsAltOrMetaAlone && !(isIOS() || isMac());\n };\n var onKeyUp = function (ev) {\n return keyHandler(ev, shouldHandleKeyUp, true /* dismissAllMenus */);\n };\n var onMenuKeyDown = function (ev) {\n // Mark as handled if onKeyDown returns true (for handling collapse cases)\n // or if we are attempting to expand a submenu\n var handled = onKeyDown(ev);\n if (handled || !hostElement.current) {\n return;\n }\n // If we have a modifier key being pressed, we do not want to move focus.\n // Otherwise, handle up and down keys.\n var hasModifier = !!(ev.altKey || ev.metaKey);\n // eslint-disable-next-line deprecation/deprecation\n var isUp = ev.which === KeyCodes.up;\n // eslint-disable-next-line deprecation/deprecation\n var isDown = ev.which === KeyCodes.down;\n if (!hasModifier && (isUp || isDown)) {\n var elementToFocus = isUp\n ? getLastFocusable(hostElement.current, hostElement.current.lastChild, true)\n : getFirstFocusable(hostElement.current, hostElement.current.firstChild, true);\n if (elementToFocus) {\n elementToFocus.focus();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n var onItemKeyDown = function (item, ev) {\n var openKey = getRTL(theme) ? KeyCodes.left : KeyCodes.right;\n if (!item.disabled &&\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === openKey || ev.which === KeyCodes.enter || (ev.which === KeyCodes.down && (ev.altKey || ev.metaKey)))) {\n openSubMenu(item, ev.currentTarget);\n ev.preventDefault();\n }\n };\n return [onKeyDown, onKeyUp, onMenuKeyDown, onItemKeyDown];\n}\nfunction useScrollHandler(asyncTracker) {\n var isScrollIdle = React.useRef(true);\n var scrollIdleTimeoutId = React.useRef();\n /**\n * Scroll handler for the callout to make sure the mouse events\n * for updating focus are not interacting during scroll\n */\n var onScroll = function () {\n if (!isScrollIdle.current && scrollIdleTimeoutId.current !== undefined) {\n asyncTracker.clearTimeout(scrollIdleTimeoutId.current);\n scrollIdleTimeoutId.current = undefined;\n }\n else {\n isScrollIdle.current = false;\n }\n scrollIdleTimeoutId.current = asyncTracker.setTimeout(function () {\n isScrollIdle.current = true;\n }, NavigationIdleDelay);\n };\n return [onScroll, isScrollIdle];\n}\nfunction useOnSubmenuDismiss(dismiss, closeSubMenu) {\n var isMountedRef = React.useRef(false);\n React.useEffect(function () {\n isMountedRef.current = true;\n return function () {\n isMountedRef.current = false;\n };\n }, []);\n /**\n * This function is called ASYNCHRONOUSLY, and so there is a chance it is called\n * after the component is unmounted. The isMountedRef is added to prevent\n * from calling setState() after unmount. Do NOT copy this pattern in synchronous\n * code.\n */\n var onSubMenuDismiss = function (ev, dismissAll) {\n if (dismissAll) {\n dismiss(ev, dismissAll);\n }\n else if (isMountedRef.current) {\n closeSubMenu();\n }\n };\n return onSubMenuDismiss;\n}\nfunction useSubmenuEnterTimer(_a, asyncTracker) {\n var _b = _a.subMenuHoverDelay, subMenuHoverDelay = _b === void 0 ? NavigationIdleDelay : _b;\n var enterTimerRef = React.useRef(undefined);\n var cancelSubMenuTimer = function () {\n if (enterTimerRef.current !== undefined) {\n asyncTracker.clearTimeout(enterTimerRef.current);\n enterTimerRef.current = undefined;\n }\n };\n var startSubmenuTimer = function (onTimerExpired) {\n enterTimerRef.current = asyncTracker.setTimeout(function () {\n onTimerExpired();\n cancelSubMenuTimer();\n }, subMenuHoverDelay);\n };\n return [cancelSubMenuTimer, startSubmenuTimer, enterTimerRef];\n}\nfunction useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss) {\n var menuTarget = props.target;\n var onItemMouseEnterBase = function (item, ev, target) {\n if (shouldUpdateFocusOnMouseEvent.current) {\n gotMouseMove.current = true;\n }\n if (shouldIgnoreMouseEvent()) {\n return;\n }\n updateFocusOnMouseEvent(item, ev, target);\n };\n var onItemMouseMoveBase = function (item, ev, target) {\n var targetElement = ev.currentTarget;\n // Always do this check to make sure we record a mouseMove if needed (even if we are timed out)\n if (shouldUpdateFocusOnMouseEvent.current) {\n gotMouseMove.current = true;\n }\n else {\n return;\n }\n if (!isScrollIdle.current ||\n subMenuEntryTimer.current !== undefined ||\n targetElement === (targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement)) {\n return;\n }\n updateFocusOnMouseEvent(item, ev, target);\n };\n var shouldIgnoreMouseEvent = function () {\n return !isScrollIdle.current || !gotMouseMove.current;\n };\n var onMouseItemLeave = function (item, ev) {\n var _a;\n if (shouldIgnoreMouseEvent()) {\n return;\n }\n cancelSubMenuTimer();\n if (expandedMenuItemKey !== undefined) {\n return;\n }\n /**\n * IE11 focus() method forces parents to scroll to top of element.\n * Edge and IE expose a setActive() function for focusable divs that\n * sets the page focus but does not scroll the parent element.\n */\n if (hostElement.current.setActive) {\n try {\n hostElement.current.setActive();\n }\n catch (e) {\n /* no-op */\n }\n }\n else {\n (_a = hostElement.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n };\n /**\n * Handles updating focus when mouseEnter or mouseMove fire.\n * As part of updating focus, This function will also update\n * the expand/collapse state accordingly.\n */\n var updateFocusOnMouseEvent = function (item, ev, target) {\n var targetElement = target ? target : ev.currentTarget;\n if (item.key === expandedMenuItemKey) {\n return;\n }\n cancelSubMenuTimer();\n // If the menu is not expanded we can update focus without any delay\n if (expandedMenuItemKey === undefined) {\n targetElement.focus();\n }\n // Delay updating expanding/dismissing the submenu\n // and only set focus if we have not already done so\n if (hasSubmenu(item)) {\n ev.stopPropagation();\n startSubmenuTimer(function () {\n targetElement.focus();\n openSubMenu(item, targetElement, true);\n });\n }\n else {\n startSubmenuTimer(function () {\n onSubMenuDismiss(ev);\n targetElement.focus();\n });\n }\n };\n var onItemClick = function (item, ev) {\n onItemClickBase(item, ev, ev.currentTarget);\n };\n var onItemClickBase = function (item, ev, target) {\n var items = getSubmenuItems(item, { target: menuTarget });\n // Cancel an async menu item hover timeout action from being taken and instead\n // just trigger the click event instead.\n cancelSubMenuTimer();\n if (!hasSubmenu(item) && (!items || !items.length)) {\n // This is an item without a menu. Click it.\n executeItemClick(item, ev);\n }\n else {\n if (item.key !== expandedMenuItemKey) {\n // This has a collapsed sub menu. Expand it.\n // focus on the container by default when the menu is opened with a click event\n // this differentiates from a keyboard interaction triggering the click event\n var shouldFocusOnContainer = typeof props.shouldFocusOnContainer === 'boolean'\n ? props.shouldFocusOnContainer\n : ev.nativeEvent.pointerType === 'mouse';\n openSubMenu(item, target, shouldFocusOnContainer);\n }\n }\n ev.stopPropagation();\n ev.preventDefault();\n };\n var onAnchorClick = function (item, ev) {\n executeItemClick(item, ev);\n ev.stopPropagation();\n };\n var executeItemClick = function (item, ev) {\n if (item.disabled || item.isDisabled) {\n return;\n }\n if (item.preferMenuTargetAsEventTarget) {\n overrideTarget(ev, menuTarget);\n }\n var shouldDismiss = false;\n if (item.onClick) {\n shouldDismiss = !!item.onClick(ev, item);\n }\n else if (props.onItemClick) {\n shouldDismiss = !!props.onItemClick(ev, item);\n }\n if (shouldDismiss || !ev.defaultPrevented) {\n dismiss(ev, true);\n }\n };\n return [\n onItemMouseEnterBase,\n onItemMouseMoveBase,\n onMouseItemLeave,\n onItemClick,\n onAnchorClick,\n executeItemClick,\n onItemClickBase,\n ];\n}\n//#endregion\nexport var ContextualMenuBase = React.memo(React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var _a;\n var _b = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults), ref = _b.ref, props = __rest(_b, [\"ref\"]);\n var hostElement = React.useRef(null);\n var asyncTracker = useAsync();\n var menuId = useId(COMPONENT_NAME, props.id);\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n deprecations: {\n getMenuClassNames: 'styles',\n },\n });\n var dismiss = function (ev, dismissAll) { var _a; return (_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props, ev, dismissAll); };\n var _c = useTarget(props.target, hostElement), targetRef = _c[0], targetWindow = _c[1];\n var tryFocusPreviousActiveElement = usePreviousActiveElement(props, targetWindow, hostElement)[0];\n var _d = useSubMenuState(props, dismiss), expandedMenuItemKey = _d[0], openSubMenu = _d[1], getSubmenuProps = _d[2], onSubMenuDismiss = _d[3];\n var _e = useShouldUpdateFocusOnMouseMove(props), shouldUpdateFocusOnMouseEvent = _e[0], gotMouseMove = _e[1], onMenuFocusCapture = _e[2];\n var _f = useScrollHandler(asyncTracker), onScroll = _f[0], isScrollIdle = _f[1];\n var _g = useSubmenuEnterTimer(props, asyncTracker), cancelSubMenuTimer = _g[0], startSubmenuTimer = _g[1], subMenuEntryTimer = _g[2];\n var responsiveMode = useResponsiveMode(hostElement, props.responsiveMode);\n useVisibility(props, targetWindow);\n var _h = useKeyHandlers(props, dismiss, hostElement, openSubMenu), onKeyDown = _h[0], onKeyUp = _h[1], onMenuKeyDown = _h[2], onItemKeyDown = _h[3];\n var _j = useMouseHandlers(props, isScrollIdle, subMenuEntryTimer, targetWindow, shouldUpdateFocusOnMouseEvent, gotMouseMove, expandedMenuItemKey, hostElement, startSubmenuTimer, cancelSubMenuTimer, openSubMenu, onSubMenuDismiss, dismiss), onItemMouseEnterBase = _j[0], onItemMouseMoveBase = _j[1], onMouseItemLeave = _j[2], onItemClick = _j[3], onAnchorClick = _j[4], executeItemClick = _j[5], onItemClickBase = _j[6];\n //#region Render helpers\n var onDefaultRenderMenuList = function (menuListProps, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, defaultRender) {\n var indexCorrection = 0;\n var items = menuListProps.items, totalItemCount = menuListProps.totalItemCount, hasCheckmarks = menuListProps.hasCheckmarks, hasIcons = menuListProps.hasIcons;\n return (React.createElement(\"ul\", { className: menuClassNames.list, onKeyDown: onKeyDown, onKeyUp: onKeyUp, role: 'presentation' }, items.map(function (item, index) {\n var menuItem = renderMenuItem(item, index, indexCorrection, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n if (item.itemType !== ContextualMenuItemType.Divider && item.itemType !== ContextualMenuItemType.Header) {\n var indexIncrease = item.customOnRenderListLength ? item.customOnRenderListLength : 1;\n indexCorrection += indexIncrease;\n }\n return menuItem;\n })));\n };\n var renderFocusZone = function (children, adjustedFocusZoneProps) {\n var _a = props.focusZoneAs, ChildrenRenderer = _a === void 0 ? FocusZone : _a;\n return React.createElement(ChildrenRenderer, __assign({}, adjustedFocusZoneProps), children);\n };\n /**\n * !!!IMPORTANT!!! Avoid mutating `item: IContextualMenuItem` argument. It will\n * cause the menu items to always re-render because the component update is based on shallow comparison.\n */\n var renderMenuItem = function (item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames) {\n var _a;\n var renderedItems = [];\n var iconProps = item.iconProps || { iconName: 'None' };\n var getItemClassNames = item.getItemClassNames, // eslint-disable-line deprecation/deprecation\n itemProps = item.itemProps;\n var styles = itemProps ? itemProps.styles : undefined;\n // We only send a dividerClassName when the item to be rendered is a divider.\n // For all other cases, the default divider style is used.\n var dividerClassName = item.itemType === ContextualMenuItemType.Divider ? item.className : undefined;\n var subMenuIconClassName = item.submenuIconProps ? item.submenuIconProps.className : '';\n // eslint-disable-next-line deprecation/deprecation\n var itemClassNames;\n // IContextualMenuItem#getItemClassNames for backwards compatibility\n // otherwise uses mergeStyles for class names.\n if (getItemClassNames) {\n itemClassNames = getItemClassNames(props.theme, isItemDisabled(item), expandedMenuItemKey === item.key, !!getIsChecked(item), !!item.href, iconProps.iconName !== 'None', item.className, dividerClassName, iconProps.className, subMenuIconClassName, item.primaryDisabled);\n }\n else {\n var itemStyleProps = {\n theme: props.theme,\n disabled: isItemDisabled(item),\n expanded: expandedMenuItemKey === item.key,\n checked: !!getIsChecked(item),\n isAnchorLink: !!item.href,\n knownIcon: iconProps.iconName !== 'None',\n itemClassName: item.className,\n dividerClassName: dividerClassName,\n iconClassName: iconProps.className,\n subMenuClassName: subMenuIconClassName,\n primaryDisabled: item.primaryDisabled,\n };\n // We need to generate default styles then override if styles are provided\n // since the ContextualMenu currently handles item classNames.\n itemClassNames = getContextualMenuItemClassNames(_getMenuItemStylesFunction((_a = menuClassNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.menuItem, styles), itemStyleProps);\n }\n // eslint-disable-next-line deprecation/deprecation\n if (item.text === '-' || item.name === '-') {\n item.itemType = ContextualMenuItemType.Divider;\n }\n switch (item.itemType) {\n case ContextualMenuItemType.Divider:\n renderedItems.push(renderSeparator(index, itemClassNames));\n break;\n case ContextualMenuItemType.Header:\n renderedItems.push(renderSeparator(index, itemClassNames));\n var headerItem = renderHeaderMenuItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n renderedItems.push(renderListItem(headerItem, item.key || index, itemClassNames, item.title));\n break;\n case ContextualMenuItemType.Section:\n renderedItems.push(renderSectionItem(item, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons));\n break;\n default:\n var defaultRenderNormalItem = function () {\n return renderNormalItem(item, itemClassNames, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons);\n };\n var menuItem = props.onRenderContextualMenuItem\n ? props.onRenderContextualMenuItem(item, defaultRenderNormalItem)\n : defaultRenderNormalItem();\n renderedItems.push(renderListItem(menuItem, item.key || index, itemClassNames, item.title));\n break;\n }\n // Since multiple nodes *could* be rendered, wrap them all in a fragment with this item's key.\n // This ensures the reconciler handles multi-item output per-node correctly and does not re-mount content.\n return React.createElement(React.Fragment, { key: item.key }, renderedItems);\n };\n var defaultMenuItemRenderer = function (item, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames) {\n var index = item.index, focusableElementIndex = item.focusableElementIndex, totalItemCount = item.totalItemCount, hasCheckmarks = item.hasCheckmarks, hasIcons = item.hasIcons;\n return renderMenuItem(item, index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons, menuClassNames);\n };\n var renderSectionItem = function (sectionItem, \n // eslint-disable-next-line deprecation/deprecation\n itemClassNames, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, index, hasCheckmarks, hasIcons) {\n var sectionProps = sectionItem.sectionProps;\n if (!sectionProps) {\n return;\n }\n var headerItem;\n var groupProps;\n if (sectionProps.title) {\n var headerContextualMenuItem = undefined;\n var ariaLabelledby = '';\n if (typeof sectionProps.title === 'string') {\n // Since title is a user-facing string, it needs to be stripped\n // of whitespace in order to build a valid element ID\n var id_1 = menuId + sectionProps.title.replace(/\\s/g, '');\n headerContextualMenuItem = {\n key: \"section-\".concat(sectionProps.title, \"-title\"),\n itemType: ContextualMenuItemType.Header,\n text: sectionProps.title,\n id: id_1,\n };\n ariaLabelledby = id_1;\n }\n else {\n var id_2 = sectionProps.title.id || menuId + sectionProps.title.key.replace(/\\s/g, '');\n headerContextualMenuItem = __assign(__assign({}, sectionProps.title), { id: id_2 });\n ariaLabelledby = id_2;\n }\n if (headerContextualMenuItem) {\n groupProps = {\n role: 'group',\n 'aria-labelledby': ariaLabelledby,\n };\n headerItem = renderHeaderMenuItem(headerContextualMenuItem, itemClassNames, menuClassNames, index, hasCheckmarks, hasIcons);\n }\n }\n if (sectionProps.items && sectionProps.items.length > 0) {\n var correctedIndex_1 = 0;\n return (React.createElement(\"li\", { role: \"presentation\", key: sectionProps.key || sectionItem.key || \"section-\".concat(index) },\n React.createElement(\"div\", __assign({}, groupProps),\n React.createElement(\"ul\", { className: menuClassNames.list, role: \"presentation\" },\n sectionProps.topDivider && renderSeparator(index, itemClassNames, true, true),\n headerItem && renderListItem(headerItem, sectionItem.key || index, itemClassNames, sectionItem.title),\n sectionProps.items.map(function (contextualMenuItem, itemsIndex) {\n var menuItem = renderMenuItem(contextualMenuItem, itemsIndex, correctedIndex_1, getItemCount(sectionProps.items), hasCheckmarks, hasIcons, menuClassNames);\n if (contextualMenuItem.itemType !== ContextualMenuItemType.Divider &&\n contextualMenuItem.itemType !== ContextualMenuItemType.Header) {\n var indexIncrease = contextualMenuItem.customOnRenderListLength\n ? contextualMenuItem.customOnRenderListLength\n : 1;\n correctedIndex_1 += indexIncrease;\n }\n return menuItem;\n }),\n sectionProps.bottomDivider && renderSeparator(index, itemClassNames, false, true)))));\n }\n };\n var renderListItem = function (content, key, classNames, // eslint-disable-line deprecation/deprecation\n title) {\n return (React.createElement(\"li\", { role: \"presentation\", title: title, key: key, className: classNames.item }, content));\n };\n var renderSeparator = function (index, classNames, // eslint-disable-line deprecation/deprecation\n top, fromSection) {\n if (fromSection || index > 0) {\n return (React.createElement(\"li\", { role: \"separator\", key: 'separator-' + index + (top === undefined ? '' : top ? '-top' : '-bottom'), className: classNames.divider, \"aria-hidden\": \"true\" }));\n }\n return null;\n };\n var renderNormalItem = function (item, classNames, // eslint-disable-line deprecation/deprecation\n index, focusableElementIndex, totalItemCount, hasCheckmarks, hasIcons) {\n if (item.onRender) {\n return item.onRender(__assign({ 'aria-posinset': focusableElementIndex + 1, 'aria-setsize': totalItemCount }, item), dismiss);\n }\n var contextualMenuItemAs = props.contextualMenuItemAs;\n var commonProps = {\n item: item,\n classNames: classNames,\n index: index,\n focusableElementIndex: focusableElementIndex,\n totalItemCount: totalItemCount,\n hasCheckmarks: hasCheckmarks,\n hasIcons: hasIcons,\n contextualMenuItemAs: contextualMenuItemAs,\n onItemMouseEnter: onItemMouseEnterBase,\n onItemMouseLeave: onMouseItemLeave,\n onItemMouseMove: onItemMouseMoveBase,\n onItemMouseDown: onItemMouseDown,\n executeItemClick: executeItemClick,\n onItemKeyDown: onItemKeyDown,\n expandedMenuItemKey: expandedMenuItemKey,\n openSubMenu: openSubMenu,\n dismissSubMenu: onSubMenuDismiss,\n dismissMenu: dismiss,\n };\n if (item.href) {\n var ContextualMenuAnchorAs = ContextualMenuAnchor;\n if (item.contextualMenuItemWrapperAs) {\n ContextualMenuAnchorAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuAnchorAs);\n }\n return React.createElement(ContextualMenuAnchorAs, __assign({}, commonProps, { onItemClick: onAnchorClick }));\n }\n if (item.split && hasSubmenu(item)) {\n var ContextualMenuSplitButtonAs = ContextualMenuSplitButton;\n if (item.contextualMenuItemWrapperAs) {\n ContextualMenuSplitButtonAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuSplitButtonAs);\n }\n return (React.createElement(ContextualMenuSplitButtonAs, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase, onTap: cancelSubMenuTimer })));\n }\n var ContextualMenuButtonAs = ContextualMenuButton;\n if (item.contextualMenuItemWrapperAs) {\n ContextualMenuButtonAs = composeComponentAs(item.contextualMenuItemWrapperAs, ContextualMenuButtonAs);\n }\n return React.createElement(ContextualMenuButtonAs, __assign({}, commonProps, { onItemClick: onItemClick, onItemClickBase: onItemClickBase }));\n };\n var renderHeaderMenuItem = function (item, \n // eslint-disable-next-line deprecation/deprecation\n itemClassNames, \n // eslint-disable-next-line deprecation/deprecation\n menuClassNames, index, hasCheckmarks, hasIcons) {\n var ChildrenRenderer = ContextualMenuItem;\n if (item.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(item.contextualMenuItemAs, ChildrenRenderer);\n }\n if (props.contextualMenuItemAs) {\n ChildrenRenderer = composeComponentAs(props.contextualMenuItemAs, ChildrenRenderer);\n }\n var itemProps = item.itemProps, id = item.id;\n var divHtmlProperties = itemProps && getNativeProps(itemProps, divProperties);\n return (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(\"div\", __assign({ id: id, className: menuClassNames.header }, divHtmlProperties, { style: item.style }),\n React.createElement(ChildrenRenderer, __assign({ item: item, classNames: itemClassNames, index: index, onCheckmarkClick: hasCheckmarks ? onItemClick : undefined, hasIcons: hasIcons }, itemProps))));\n };\n //#endregion\n //#region Main render\n var isBeakVisible = props.isBeakVisible;\n var items = props.items, labelElementId = props.labelElementId, id = props.id, className = props.className, beakWidth = props.beakWidth, directionalHint = props.directionalHint, directionalHintForRTL = props.directionalHintForRTL, alignTargetEdge = props.alignTargetEdge, gapSpace = props.gapSpace, coverTarget = props.coverTarget, ariaLabel = props.ariaLabel, doNotLayer = props.doNotLayer, target = props.target, bounds = props.bounds, useTargetWidth = props.useTargetWidth, useTargetAsMinWidth = props.useTargetAsMinWidth, directionalHintFixed = props.directionalHintFixed, shouldFocusOnMount = props.shouldFocusOnMount, shouldFocusOnContainer = props.shouldFocusOnContainer, title = props.title, styles = props.styles, theme = props.theme, calloutProps = props.calloutProps, _k = props.onRenderSubMenu, onRenderSubMenu = _k === void 0 ? onDefaultRenderSubMenu : _k, _l = props.onRenderMenuList, onRenderMenuList = _l === void 0 ? function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); } : _l, focusZoneProps = props.focusZoneProps, \n // eslint-disable-next-line deprecation/deprecation\n getMenuClassNames = props.getMenuClassNames;\n var classNames = getMenuClassNames\n ? getMenuClassNames(theme, className)\n : getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var hasIcons = itemsHaveIcons(items);\n function itemsHaveIcons(contextualMenuItems) {\n for (var _i = 0, contextualMenuItems_1 = contextualMenuItems; _i < contextualMenuItems_1.length; _i++) {\n var item = contextualMenuItems_1[_i];\n if (item.iconProps) {\n return true;\n }\n if (item.itemType === ContextualMenuItemType.Section &&\n item.sectionProps &&\n itemsHaveIcons(item.sectionProps.items)) {\n return true;\n }\n }\n return false;\n }\n var adjustedFocusZoneProps = __assign(__assign({ direction: FocusZoneDirection.vertical, handleTabKey: FocusZoneTabbableElements.all, isCircularNavigation: true, 'data-tabster': '{\"uncontrolled\": {}, \"focusable\": { \"excludeFromMover\": true }}' }, focusZoneProps), { className: css(classNames.root, (_a = props.focusZoneProps) === null || _a === void 0 ? void 0 : _a.className) });\n var hasCheckmarks = canAnyMenuItemsCheck(items);\n var submenuProps = expandedMenuItemKey && props.hidden !== true ? getSubmenuProps() : null;\n isBeakVisible = isBeakVisible === undefined ? responsiveMode <= ResponsiveMode.medium : isBeakVisible;\n /**\n * When useTargetWidth is true, get the width of the target element and apply it for the context menu container\n */\n var contextMenuStyle;\n var targetAsHtmlElement = targetRef.current;\n if ((useTargetWidth || useTargetAsMinWidth) && targetAsHtmlElement && targetAsHtmlElement.offsetWidth) {\n var targetBoundingRect = targetAsHtmlElement.getBoundingClientRect();\n var targetWidth = targetBoundingRect.width - 2; /* Accounts for 1px border */\n if (useTargetWidth) {\n contextMenuStyle = {\n width: targetWidth,\n };\n }\n else if (useTargetAsMinWidth) {\n contextMenuStyle = {\n minWidth: targetWidth,\n };\n }\n }\n // The menu should only return if items were provided, if no items were provided then it should not appear.\n if (items && items.length > 0) {\n var totalItemCount_1 = getItemCount(items);\n var calloutStyles_1 = classNames.subComponentStyles\n ? classNames.subComponentStyles.callout\n : undefined;\n return (React.createElement(MenuContext.Consumer, null, function (menuContext) { return (React.createElement(Callout, __assign({ styles: calloutStyles_1, onRestoreFocus: tryFocusPreviousActiveElement }, calloutProps, { target: target || menuContext.target, isBeakVisible: isBeakVisible, beakWidth: beakWidth, directionalHint: directionalHint, directionalHintForRTL: directionalHintForRTL, gapSpace: gapSpace, coverTarget: coverTarget, doNotLayer: doNotLayer, className: css('ms-ContextualMenu-Callout', calloutProps && calloutProps.className), setInitialFocus: shouldFocusOnMount, onDismiss: props.onDismiss || menuContext.onDismiss, onScroll: onScroll, bounds: bounds, directionalHintFixed: directionalHintFixed, alignTargetEdge: alignTargetEdge, hidden: props.hidden || menuContext.hidden, ref: forwardedRef }),\n React.createElement(\"div\", { style: contextMenuStyle, ref: hostElement, id: id, className: classNames.container, tabIndex: shouldFocusOnContainer ? 0 : -1, onKeyDown: onMenuKeyDown, onKeyUp: onKeyUp, onFocusCapture: onMenuFocusCapture, \"aria-label\": ariaLabel, \"aria-labelledby\": labelElementId, role: 'menu' },\n title && React.createElement(\"div\", { className: classNames.title },\n \" \",\n title,\n \" \"),\n items && items.length\n ? renderFocusZone(onRenderMenuList({\n ariaLabel: ariaLabel,\n items: items,\n totalItemCount: totalItemCount_1,\n hasCheckmarks: hasCheckmarks,\n hasIcons: hasIcons,\n defaultMenuItemRenderer: function (item) {\n return defaultMenuItemRenderer(item, classNames);\n },\n labelElementId: labelElementId,\n }, function (menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); }), adjustedFocusZoneProps)\n : null,\n submenuProps && onRenderSubMenu(submenuProps, onDefaultRenderSubMenu)),\n React.createElement(FocusRects, null))); }));\n }\n else {\n return null;\n }\n //#endregion\n}), function (prevProps, newProps) {\n if (!newProps.shouldUpdateWhenHidden && prevProps.hidden && newProps.hidden) {\n // Do not update when hidden.\n return true;\n }\n return shallowCompare(prevProps, newProps);\n});\nContextualMenuBase.displayName = 'ContextualMenuBase';\n/**\n * Returns true if the key for the event is alt (Mac option) or meta (Mac command).\n */\nfunction isAltOrMeta(ev) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.alt || ev.key === 'Meta';\n}\nfunction onItemMouseDown(item, ev) {\n var _a;\n (_a = item.onMouseDown) === null || _a === void 0 ? void 0 : _a.call(item, item, ev);\n}\nfunction onDefaultRenderSubMenu(subMenuProps, defaultRender) {\n throw Error('ContextualMenuBase: onRenderSubMenu callback is null or undefined. ' +\n 'Please ensure to set `onRenderSubMenu` property either manually or with `styled` helper.');\n}\n/**\n * Returns the item that matches a given key if any.\n * @param key - The key of the item to match\n * @param items - The items to look for the key\n */\nfunction findItemByKeyFromItems(key, items) {\n for (var _i = 0, items_3 = items; _i < items_3.length; _i++) {\n var item = items_3[_i];\n if (item.itemType === ContextualMenuItemType.Section && item.sectionProps) {\n var match = findItemByKeyFromItems(key, item.sectionProps.items);\n if (match) {\n return match;\n }\n }\n else if (item.key && item.key === key) {\n return item;\n }\n }\n}\nfunction getOnClickWithOverrideTarget(onClick, target) {\n return onClick\n ? function (ev, item) {\n overrideTarget(ev, target);\n return onClick(ev, item);\n }\n : onClick;\n}\nfunction overrideTarget(ev, target) {\n if (ev && target) {\n ev.persist();\n if (target instanceof Event) {\n ev.target = target.target;\n }\n else if (target instanceof Element) {\n ev.target = target;\n }\n }\n}\n//# sourceMappingURL=ContextualMenu.base.js.map","import { getGlobalClassNames, FontWeights } from '../../Styling';\nimport { CONTEXTUAL_MENU_ITEM_HEIGHT } from './ContextualMenu.cnstyles';\nvar GlobalClassNames = {\n root: 'ms-ContextualMenu',\n container: 'ms-ContextualMenu-container',\n list: 'ms-ContextualMenu-list',\n header: 'ms-ContextualMenu-header',\n title: 'ms-ContextualMenu-title',\n isopen: 'is-open',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var fonts = theme.fonts, semanticColors = theme.semanticColors, effects = theme.effects;\n return {\n root: [\n theme.fonts.medium,\n classNames.root,\n classNames.isopen,\n {\n backgroundColor: semanticColors.menuBackground,\n minWidth: '180px',\n },\n className,\n ],\n container: [\n classNames.container,\n {\n selectors: {\n ':focus': { outline: 0 },\n },\n },\n ],\n list: [\n classNames.list,\n classNames.isopen,\n {\n listStyleType: 'none',\n margin: '0',\n padding: '0',\n },\n ],\n header: [\n classNames.header,\n fonts.small,\n {\n fontWeight: FontWeights.semibold,\n color: semanticColors.menuHeader,\n background: 'none',\n backgroundColor: 'transparent',\n border: 'none',\n height: CONTEXTUAL_MENU_ITEM_HEIGHT,\n lineHeight: CONTEXTUAL_MENU_ITEM_HEIGHT,\n cursor: 'default',\n padding: '0px 6px',\n userSelect: 'none',\n textAlign: 'left',\n },\n ],\n title: [\n classNames.title,\n {\n fontSize: fonts.mediumPlus.fontSize,\n paddingRight: '14px',\n paddingLeft: '14px',\n paddingBottom: '5px',\n paddingTop: '5px',\n backgroundColor: semanticColors.menuItemBackgroundPressed,\n },\n ],\n subComponentStyles: {\n callout: {\n root: {\n boxShadow: effects.elevation8,\n },\n },\n menuItem: {},\n },\n };\n};\n//# sourceMappingURL=ContextualMenu.styles.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { styled, composeRenderFunction } from '../../Utilities';\nimport { ContextualMenuBase } from './ContextualMenu.base';\nimport { getStyles } from './ContextualMenu.styles';\nfunction onRenderSubMenu(subMenuProps) {\n return React.createElement(LocalContextualMenu, __assign({}, subMenuProps));\n}\n// This is to prevent cyclic import with ContextualMenu.base.tsx.\nvar LocalContextualMenu = styled(ContextualMenuBase, getStyles, function (props) { return ({\n onRenderSubMenu: props.onRenderSubMenu\n ? composeRenderFunction(props.onRenderSubMenu, onRenderSubMenu)\n : onRenderSubMenu,\n}); }, { scope: 'ContextualMenu' });\n/**\n * ContextualMenu description\n */\nexport var ContextualMenu = LocalContextualMenu;\nContextualMenu.displayName = 'ContextualMenu';\n//# sourceMappingURL=ContextualMenu.js.map","import { memoizeFunction } from '../../Utilities';\nimport { getGlobalClassNames, mergeStyleSets } from '../../Styling';\nexport var ButtonGlobalClassNames = {\n msButton: 'ms-Button',\n msButtonHasMenu: 'ms-Button--hasMenu',\n msButtonIcon: 'ms-Button-icon',\n msButtonMenuIcon: 'ms-Button-menuIcon',\n msButtonLabel: 'ms-Button-label',\n msButtonDescription: 'ms-Button-description',\n msButtonScreenReaderText: 'ms-Button-screenReaderText',\n msButtonFlexContainer: 'ms-Button-flexContainer',\n msButtonTextContainer: 'ms-Button-textContainer',\n};\nexport var getBaseButtonClassNames = memoizeFunction(function (theme, styles, className, variantClassName, iconClassName, menuIconClassName, disabled, hasMenu, checked, expanded, isSplit) {\n var _a, _b;\n var classNames = getGlobalClassNames(ButtonGlobalClassNames, theme || {});\n var isExpanded = expanded && !isSplit;\n return mergeStyleSets(styles.__shadowConfig__, {\n root: [\n classNames.msButton,\n styles.root,\n variantClassName,\n checked && ['is-checked', styles.rootChecked],\n isExpanded && [\n 'is-expanded',\n styles.rootExpanded,\n (_a = {},\n _a[\":hover .\".concat(classNames.msButtonIcon)] = styles.iconExpandedHovered,\n // menuIcon falls back to rootExpandedHovered to support original behavior\n _a[\":hover .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconExpandedHovered || styles.rootExpandedHovered,\n _a[':hover'] = styles.rootExpandedHovered,\n _a),\n ],\n hasMenu && [ButtonGlobalClassNames.msButtonHasMenu, styles.rootHasMenu],\n disabled && ['is-disabled', styles.rootDisabled],\n !disabled &&\n !isExpanded &&\n !checked && (_b = {\n ':hover': styles.rootHovered\n },\n _b[\":hover .\".concat(classNames.msButtonLabel)] = styles.labelHovered,\n _b[\":hover .\".concat(classNames.msButtonIcon)] = styles.iconHovered,\n _b[\":hover .\".concat(classNames.msButtonDescription)] = styles.descriptionHovered,\n _b[\":hover .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconHovered,\n _b[':focus'] = styles.rootFocused,\n _b[':active'] = styles.rootPressed,\n _b[\":active .\".concat(classNames.msButtonIcon)] = styles.iconPressed,\n _b[\":active .\".concat(classNames.msButtonDescription)] = styles.descriptionPressed,\n _b[\":active .\".concat(classNames.msButtonMenuIcon)] = styles.menuIconPressed,\n _b),\n disabled && checked && [styles.rootCheckedDisabled],\n !disabled &&\n checked && {\n ':hover': styles.rootCheckedHovered,\n ':active': styles.rootCheckedPressed,\n },\n className,\n ],\n flexContainer: [classNames.msButtonFlexContainer, styles.flexContainer],\n textContainer: [classNames.msButtonTextContainer, styles.textContainer],\n icon: [\n classNames.msButtonIcon,\n iconClassName,\n styles.icon,\n isExpanded && styles.iconExpanded,\n checked && styles.iconChecked,\n disabled && styles.iconDisabled,\n ],\n label: [classNames.msButtonLabel, styles.label, checked && styles.labelChecked, disabled && styles.labelDisabled],\n menuIcon: [\n classNames.msButtonMenuIcon,\n menuIconClassName,\n styles.menuIcon,\n checked && styles.menuIconChecked,\n disabled && !isSplit && styles.menuIconDisabled,\n !disabled &&\n !isExpanded &&\n !checked && {\n ':hover': styles.menuIconHovered,\n ':active': styles.menuIconPressed,\n },\n isExpanded && ['is-expanded', styles.menuIconExpanded],\n ],\n description: [\n classNames.msButtonDescription,\n styles.description,\n checked && styles.descriptionChecked,\n disabled && styles.descriptionDisabled,\n ],\n screenReaderText: [classNames.msButtonScreenReaderText, styles.screenReaderText],\n });\n});\n//# sourceMappingURL=BaseButton.classNames.js.map","import { memoizeFunction } from '../../../Utilities';\nimport { mergeStyles } from '../../../Styling';\nexport var SplitButtonGlobalClassNames = {\n msSplitButtonDivider: 'ms-SplitButton-divider',\n};\nexport var getSplitButtonClassNames = memoizeFunction(function (styles, disabled, expanded, checked, primaryDisabled) {\n return {\n root: mergeStyles(styles.splitButtonMenuButton, expanded && [styles.splitButtonMenuButtonExpanded], disabled && [styles.splitButtonMenuButtonDisabled], checked && !disabled && [styles.splitButtonMenuButtonChecked], primaryDisabled &&\n !disabled && [\n {\n ':focus': styles.splitButtonMenuFocused,\n },\n ]),\n splitButtonContainer: mergeStyles(styles.splitButtonContainer, !disabled &&\n checked && [\n styles.splitButtonContainerChecked,\n {\n ':hover': styles.splitButtonContainerCheckedHovered,\n },\n ], !disabled &&\n !checked && [\n {\n ':hover': styles.splitButtonContainerHovered,\n ':focus': styles.splitButtonContainerFocused,\n },\n ], disabled && styles.splitButtonContainerDisabled),\n icon: mergeStyles(styles.splitButtonMenuIcon, disabled && styles.splitButtonMenuIconDisabled, !disabled && primaryDisabled && styles.splitButtonMenuIcon),\n flexContainer: mergeStyles(styles.splitButtonFlexContainer),\n divider: mergeStyles(SplitButtonGlobalClassNames.msSplitButtonDivider, styles.splitButtonDivider, (primaryDisabled || disabled) && styles.splitButtonDividerDisabled),\n };\n});\n//# sourceMappingURL=SplitButton.classNames.js.map","import { __assign, __extends, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { anchorProperties, assign, buttonProperties, createMergedRef, css, getId, getNativeProps, initializeComponentRef, memoizeFunction, mergeAriaAttributeValues, nullRender, portalContainsElement, setFocusVisibility, warnConditionallyRequiredProps, warnDeprecations, Async, EventGroup, FocusRects, FocusRectsContext, KeyCodes, } from '../../Utilities';\nimport { Icon, FontIcon, ImageIcon } from '../../Icon';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ContextualMenu } from '../../ContextualMenu';\nimport { getBaseButtonClassNames } from './BaseButton.classNames';\nimport { getSplitButtonClassNames as getBaseSplitButtonClassNames } from './SplitButton/SplitButton.classNames';\nimport { KeytipData } from '../../KeytipData';\nimport { composeComponentAs } from '../../Utilities';\nvar TouchIdleDelay = 500; /* ms */\nvar COMPONENT_NAME = 'BaseButton';\n/**\n * {@docCategory Button}\n */\nvar BaseButton = /** @class */ (function (_super) {\n __extends(BaseButton, _super);\n function BaseButton(props) {\n var _this = _super.call(this, props) || this;\n _this._buttonElement = React.createRef();\n _this._splitButtonContainer = React.createRef();\n _this._mergedRef = createMergedRef();\n _this._renderedVisibleMenu = false;\n _this._getMemoizedMenuButtonKeytipProps = memoizeFunction(function (keytipProps) {\n return __assign(__assign({}, keytipProps), { hasMenu: true });\n });\n _this._onRenderIcon = function (buttonProps, defaultRender) {\n var iconProps = _this.props.iconProps;\n if (iconProps && (iconProps.iconName !== undefined || iconProps.imageProps)) {\n var className = iconProps.className, imageProps = iconProps.imageProps, rest = __rest(iconProps, [\"className\", \"imageProps\"]);\n // If the styles prop is specified as part of iconProps, fall back to regular Icon as FontIcon and ImageIcon\n // do not have this prop.\n if (iconProps.styles) {\n return React.createElement(Icon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n if (iconProps.iconName) {\n return React.createElement(FontIcon, __assign({ className: css(_this._classNames.icon, className) }, rest));\n }\n if (imageProps) {\n return React.createElement(ImageIcon, __assign({ className: css(_this._classNames.icon, className), imageProps: imageProps }, rest));\n }\n }\n return null;\n };\n _this._onRenderTextContents = function () {\n var _a = _this.props, text = _a.text, children = _a.children, \n // eslint-disable-next-line deprecation/deprecation\n _b = _a.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _b === void 0 ? _this.props.description : _b, _c = _a.onRenderText, onRenderText = _c === void 0 ? _this._onRenderText : _c, _d = _a.onRenderDescription, onRenderDescription = _d === void 0 ? _this._onRenderDescription : _d;\n if (text || typeof children === 'string' || secondaryText) {\n return (React.createElement(\"span\", { className: _this._classNames.textContainer },\n onRenderText(_this.props, _this._onRenderText),\n onRenderDescription(_this.props, _this._onRenderDescription)));\n }\n return [onRenderText(_this.props, _this._onRenderText), onRenderDescription(_this.props, _this._onRenderDescription)];\n };\n _this._onRenderText = function () {\n var text = _this.props.text;\n var children = _this.props.children;\n // For backwards compat, we should continue to take in the text content from children.\n if (text === undefined && typeof children === 'string') {\n text = children;\n }\n if (_this._hasText()) {\n return (React.createElement(\"span\", { key: _this._labelId, className: _this._classNames.label, id: _this._labelId }, text));\n }\n return null;\n };\n _this._onRenderChildren = function () {\n var children = _this.props.children;\n // If children is just a string, either it or the text will be rendered via onRenderLabel\n // If children is another component, it will be rendered after text\n if (typeof children === 'string') {\n return null;\n }\n return children;\n };\n _this._onRenderDescription = function (props) {\n // eslint-disable-next-line deprecation/deprecation\n var _a = props.secondaryText, secondaryText = _a === void 0 ? _this.props.description : _a;\n // ms-Button-description is only shown when the button type is compound.\n // In other cases it will not be displayed.\n return secondaryText ? (React.createElement(\"span\", { key: _this._descriptionId, className: _this._classNames.description, id: _this._descriptionId }, secondaryText)) : null;\n };\n _this._onRenderAriaDescription = function () {\n var ariaDescription = _this.props.ariaDescription;\n // If ariaDescription is given, descriptionId will be assigned to ariaDescriptionSpan,\n // otherwise it will be assigned to descriptionSpan.\n return ariaDescription ? (React.createElement(\"span\", { className: _this._classNames.screenReaderText, id: _this._ariaDescriptionId }, ariaDescription)) : null;\n };\n _this._onRenderMenuIcon = function (props) {\n var menuIconProps = _this.props.menuIconProps;\n return React.createElement(FontIcon, __assign({ iconName: \"ChevronDown\" }, menuIconProps, { className: _this._classNames.menuIcon }));\n };\n _this._onRenderMenu = function (menuProps) {\n var MenuType = _this.props.menuAs ? composeComponentAs(_this.props.menuAs, ContextualMenu) : ContextualMenu;\n return React.createElement(MenuType, __assign({}, menuProps));\n };\n _this._onDismissMenu = function (ev) {\n var menuProps = _this.props.menuProps;\n if (menuProps && menuProps.onDismiss) {\n menuProps.onDismiss(ev);\n }\n if (!ev || !ev.defaultPrevented) {\n _this._dismissMenu();\n }\n };\n _this._dismissMenu = function () {\n _this._menuShouldFocusOnMount = undefined;\n _this._menuShouldFocusOnContainer = undefined;\n _this.setState({ menuHidden: true });\n };\n _this._openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n if (shouldFocusOnMount === void 0) { shouldFocusOnMount = true; }\n if (_this.props.menuProps) {\n _this._menuShouldFocusOnContainer = shouldFocusOnContainer;\n _this._menuShouldFocusOnMount = shouldFocusOnMount;\n _this._renderedVisibleMenu = true;\n _this.setState({ menuHidden: false });\n }\n };\n _this._onToggleMenu = function (shouldFocusOnContainer) {\n var shouldFocusOnMount = true;\n if (_this.props.menuProps && _this.props.menuProps.shouldFocusOnMount === false) {\n shouldFocusOnMount = false;\n }\n _this.state.menuHidden ? _this._openMenu(shouldFocusOnContainer, shouldFocusOnMount) : _this._dismissMenu();\n };\n _this._onSplitContainerFocusCapture = function (ev) {\n var container = _this._splitButtonContainer.current;\n // If the target is coming from the portal we do not need to set focus on the container.\n if (!container || (ev.target && portalContainsElement(ev.target, container))) {\n return;\n }\n // We should never be able to focus the individual buttons in a split button. Focus\n // should always remain on the container.\n container.focus();\n };\n _this._onSplitButtonPrimaryClick = function (ev) {\n if (!_this.state.menuHidden) {\n _this._dismissMenu();\n }\n // toggle split buttons need two separate targets, even for touch\n var singleTouchTarget = _this._processingTouch && !_this.props.toggle;\n if (!singleTouchTarget && _this.props.onClick) {\n _this.props.onClick(ev);\n }\n else if (singleTouchTarget) {\n _this._onMenuClick(ev);\n }\n };\n _this._onKeyDown = function (ev) {\n // explicity cancelling event so click won't fire after this\n // eslint-disable-next-line deprecation/deprecation\n if (_this.props.disabled && (ev.which === KeyCodes.enter || ev.which === KeyCodes.space)) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuKeyDown(ev);\n }\n else if (_this.props.onKeyDown !== undefined) {\n _this.props.onKeyDown(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onKeyUp = function (ev) {\n if (!_this.props.disabled && _this.props.onKeyUp !== undefined) {\n _this.props.onKeyUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onKeyPress = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (!_this.props.disabled && _this.props.onKeyPress !== undefined) {\n // eslint-disable-next-line deprecation/deprecation\n _this.props.onKeyPress(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseUp = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseUp !== undefined) {\n _this.props.onMouseUp(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onMouseDown = function (ev) {\n if (!_this.props.disabled && _this.props.onMouseDown !== undefined) {\n _this.props.onMouseDown(ev); // not cancelling event because it's not disabled\n }\n };\n _this._onClick = function (ev) {\n if (!_this.props.disabled) {\n if (_this.props.menuProps) {\n _this._onMenuClick(ev);\n }\n else if (_this.props.onClick !== undefined) {\n _this.props.onClick(ev); // not cancelling event because it's not disabled\n }\n }\n };\n _this._onSplitButtonContainerKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n if (_this._buttonElement.current) {\n _this._buttonElement.current.click();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n else {\n _this._onMenuKeyDown(ev);\n }\n };\n _this._onMenuKeyDown = function (ev) {\n var _a;\n if (_this.props.disabled) {\n return;\n }\n if (_this.props.onKeyDown) {\n _this.props.onKeyDown(ev);\n }\n // eslint-disable-next-line deprecation/deprecation\n var isUp = ev.which === KeyCodes.up;\n // eslint-disable-next-line deprecation/deprecation\n var isDown = ev.which === KeyCodes.down;\n if (!ev.defaultPrevented && _this._isValidMenuOpenKey(ev)) {\n var onMenuClick = _this.props.onMenuClick;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n _this._onToggleMenu(false);\n ev.preventDefault();\n ev.stopPropagation();\n }\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n // We manually set the focus visibility to true if opening via Enter or Space to account for the scenario where\n // a user clicks on the button, closes the menu and then opens it via keyboard. In this scenario our default logic\n // for setting focus visibility is not triggered since there is no keyboard navigation present beforehand.\n setFocusVisibility(true, ev.target, (_a = _this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n }\n if (!(ev.altKey || ev.metaKey) && (isUp || isDown)) {\n // Suppose a menu, with shouldFocusOnMount: false, is open, and user wants to keyboard to the menu items\n // We need to re-render the menu with shouldFocusOnMount as true.\n if (!_this.state.menuHidden && _this.props.menuProps) {\n var currentShouldFocusOnMount = _this._menuShouldFocusOnMount !== undefined\n ? _this._menuShouldFocusOnMount\n : _this.props.menuProps.shouldFocusOnMount;\n if (!currentShouldFocusOnMount) {\n ev.preventDefault();\n ev.stopPropagation();\n _this._menuShouldFocusOnMount = true;\n _this.forceUpdate();\n }\n }\n }\n };\n _this._onTouchStart = function () {\n if (_this._isSplitButton &&\n _this._splitButtonContainer.current &&\n !('onpointerdown' in _this._splitButtonContainer.current)) {\n _this._handleTouchAndPointerEvent();\n }\n };\n _this._onMenuClick = function (ev) {\n var _a = _this.props, onMenuClick = _a.onMenuClick, menuProps = _a.menuProps;\n if (onMenuClick) {\n onMenuClick(ev, _this.props);\n }\n // focus on the container by default when the menu is opened with a click event\n // this differentiates from a keyboard interaction triggering the click event\n var shouldFocusOnContainer = typeof (menuProps === null || menuProps === void 0 ? void 0 : menuProps.shouldFocusOnContainer) === 'boolean'\n ? menuProps.shouldFocusOnContainer\n : ev.nativeEvent.pointerType === 'mouse';\n if (!ev.defaultPrevented) {\n _this._onToggleMenu(shouldFocusOnContainer);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n _this._events = new EventGroup(_this);\n warnConditionallyRequiredProps(COMPONENT_NAME, props, ['menuProps', 'onClick'], 'split', _this.props.split);\n warnDeprecations(COMPONENT_NAME, props, {\n rootProps: undefined,\n description: 'secondaryText',\n toggled: 'checked',\n });\n _this._labelId = getId();\n _this._descriptionId = getId();\n _this._ariaDescriptionId = getId();\n _this.state = {\n menuHidden: true,\n };\n return _this;\n }\n Object.defineProperty(BaseButton.prototype, \"_isSplitButton\", {\n get: function () {\n return !!this.props.menuProps && !!this.props.onClick && this.props.split === true;\n },\n enumerable: false,\n configurable: true\n });\n BaseButton.prototype.render = function () {\n var _a;\n var _b = this.props, ariaDescription = _b.ariaDescription, ariaLabel = _b.ariaLabel, ariaHidden = _b.ariaHidden, className = _b.className, disabled = _b.disabled, allowDisabledFocus = _b.allowDisabledFocus, primaryDisabled = _b.primaryDisabled, \n // eslint-disable-next-line deprecation/deprecation\n _c = _b.secondaryText, \n // eslint-disable-next-line deprecation/deprecation\n secondaryText = _c === void 0 ? this.props.description : _c, href = _b.href, iconProps = _b.iconProps, menuIconProps = _b.menuIconProps, styles = _b.styles, checked = _b.checked, variantClassName = _b.variantClassName, theme = _b.theme, toggle = _b.toggle, getClassNames = _b.getClassNames, role = _b.role;\n var menuHidden = this.state.menuHidden;\n // Button is disabled if the whole button (in case of splitButton is disabled) or if the primary action is disabled\n var isPrimaryButtonDisabled = disabled || primaryDisabled;\n this._classNames = getClassNames\n ? getClassNames(theme, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, checked, !menuHidden, !!this.props.menuProps, this.props.split, !!allowDisabledFocus)\n : getBaseButtonClassNames(theme, styles, className, variantClassName, iconProps && iconProps.className, menuIconProps && menuIconProps.className, isPrimaryButtonDisabled, !!this.props.menuProps, checked, !menuHidden, this.props.split);\n var _d = this, _ariaDescriptionId = _d._ariaDescriptionId, _labelId = _d._labelId, _descriptionId = _d._descriptionId;\n // Anchor tag cannot be disabled hence in disabled state rendering\n // anchor button as normal button\n var renderAsAnchor = !isPrimaryButtonDisabled && !!href;\n var tag = renderAsAnchor ? 'a' : 'button';\n var nativeProps = getNativeProps(\n // eslint-disable-next-line deprecation/deprecation\n assign(renderAsAnchor ? {} : { type: 'button' }, this.props.rootProps, this.props), renderAsAnchor ? anchorProperties : buttonProperties, [\n 'disabled', // let disabled buttons be focused and styled as disabled.\n ]);\n // Check for ariaLabel passed in via Button props, and fall back to aria-label passed in via native props\n var resolvedAriaLabel = ariaLabel || nativeProps['aria-label'];\n // Check for ariaDescription, secondaryText or aria-describedby in the native props to determine source of\n // aria-describedby. Otherwise default to undefined so property does not appear in output.\n var ariaDescribedBy = undefined;\n if (ariaDescription) {\n ariaDescribedBy = _ariaDescriptionId;\n }\n else if (secondaryText && this.props.onRenderDescription !== nullRender) {\n // for buttons like CompoundButton with a valid onRenderDescription, we need to set an ariaDescribedBy\n // for buttons that do not render anything (via nullRender), we should not set an ariaDescribedBy\n ariaDescribedBy = _descriptionId;\n }\n else if (nativeProps['aria-describedby']) {\n ariaDescribedBy = nativeProps['aria-describedby'];\n }\n // If an explicit aria-labelledby is given, use that and we're done.\n // If any kind of description is given (which will end up as an aria-describedby attribute)\n // and no ariaLabel is specified, set the labelledby element.\n // Otherwise, the button is labeled implicitly by the descendent text on the button (if it exists).\n var ariaLabelledBy = undefined;\n if (nativeProps['aria-labelledby']) {\n ariaLabelledBy = nativeProps['aria-labelledby'];\n }\n else if (ariaDescribedBy && !resolvedAriaLabel) {\n ariaLabelledBy = this._hasText() ? _labelId : undefined;\n }\n var dataIsFocusable = this.props['data-is-focusable'] === false || (disabled && !allowDisabledFocus) || this._isSplitButton\n ? false\n : true;\n var isCheckboxTypeRole = role === 'menuitemcheckbox' || role === 'checkbox';\n // if isCheckboxTypeRole, always return a checked value.\n // Otherwise only return checked value if toggle is set to true.\n // This is because role=\"checkbox\" always needs to have an aria-checked value\n // but our checked prop only sets aria-pressed if we mark the button as a toggle=\"true\"\n var checkedOrPressedValue = isCheckboxTypeRole ? !!checked : toggle === true ? !!checked : undefined;\n var buttonProps = assign(nativeProps, (_a = {\n className: this._classNames.root,\n // eslint-disable-next-line deprecation/deprecation\n ref: this._mergedRef(this.props.elementRef, this._buttonElement),\n disabled: isPrimaryButtonDisabled && !allowDisabledFocus,\n onKeyDown: this._onKeyDown,\n onKeyPress: this._onKeyPress,\n onKeyUp: this._onKeyUp,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onClick: this._onClick,\n 'aria-label': resolvedAriaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n 'aria-disabled': isPrimaryButtonDisabled,\n 'data-is-focusable': dataIsFocusable\n },\n // aria-pressed attribute should only be present for toggle buttons\n // aria-checked attribute should only be present for toggle buttons with checkbox type role\n _a[isCheckboxTypeRole ? 'aria-checked' : 'aria-pressed'] = checkedOrPressedValue,\n _a));\n if (ariaHidden) {\n buttonProps['aria-hidden'] = true;\n }\n if (this._isSplitButton) {\n return this._onRenderSplitButtonContent(tag, buttonProps);\n }\n else if (this.props.menuProps) {\n var _e = this.props.menuProps.id, id = _e === void 0 ? \"\".concat(this._labelId, \"-menu\") : _e;\n assign(buttonProps, {\n 'aria-expanded': !menuHidden,\n 'aria-controls': !menuHidden ? id : null,\n 'aria-haspopup': true,\n });\n }\n return this._onRenderContent(tag, buttonProps);\n };\n BaseButton.prototype.componentDidMount = function () {\n // For split buttons, touching anywhere in the button should drop the dropdown, which should contain the\n // primary action. This gives more hit target space for touch environments. We're setting the onpointerdown here,\n // because React does not support Pointer events yet.\n if (this._isSplitButton && this._splitButtonContainer.current) {\n if ('onpointerdown' in this._splitButtonContainer.current) {\n this._events.on(this._splitButtonContainer.current, 'pointerdown', this._onPointerDown, true);\n }\n if ('onpointerup' in this._splitButtonContainer.current && this.props.onPointerUp) {\n this._events.on(this._splitButtonContainer.current, 'pointerup', this.props.onPointerUp, true);\n }\n }\n };\n BaseButton.prototype.componentDidUpdate = function (prevProps, prevState) {\n // If Button's menu was closed, run onAfterMenuDismiss.\n if (this.props.onAfterMenuDismiss && !prevState.menuHidden && this.state.menuHidden) {\n this.props.onAfterMenuDismiss();\n }\n };\n BaseButton.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n BaseButton.prototype.focus = function () {\n var _a, _b;\n if (this._isSplitButton && this._splitButtonContainer.current) {\n setFocusVisibility(true, undefined, (_a = this.context) === null || _a === void 0 ? void 0 : _a.registeredProviders);\n this._splitButtonContainer.current.focus();\n }\n else if (this._buttonElement.current) {\n setFocusVisibility(true, undefined, (_b = this.context) === null || _b === void 0 ? void 0 : _b.registeredProviders);\n this._buttonElement.current.focus();\n }\n };\n BaseButton.prototype.dismissMenu = function () {\n this._dismissMenu();\n };\n BaseButton.prototype.openMenu = function (shouldFocusOnContainer, shouldFocusOnMount) {\n this._openMenu(shouldFocusOnContainer, shouldFocusOnMount);\n };\n BaseButton.prototype._onRenderContent = function (tag, buttonProps) {\n var _this = this;\n var props = this.props;\n var Tag = tag;\n var menuIconProps = props.menuIconProps, menuProps = props.menuProps, _a = props.onRenderIcon, onRenderIcon = _a === void 0 ? this._onRenderIcon : _a, _b = props.onRenderAriaDescription, onRenderAriaDescription = _b === void 0 ? this._onRenderAriaDescription : _b, _c = props.onRenderChildren, onRenderChildren = _c === void 0 ? this._onRenderChildren : _c, \n // eslint-disable-next-line deprecation/deprecation\n _d = props.onRenderMenu, \n // eslint-disable-next-line deprecation/deprecation\n onRenderMenu = _d === void 0 ? this._onRenderMenu : _d, _e = props.onRenderMenuIcon, onRenderMenuIcon = _e === void 0 ? this._onRenderMenuIcon : _e, disabled = props.disabled;\n var keytipProps = props.keytipProps;\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var Button = function (keytipAttributes) { return (React.createElement(Tag, __assign({}, buttonProps, keytipAttributes),\n React.createElement(\"span\", { className: _this._classNames.flexContainer, \"data-automationid\": \"splitbuttonprimary\" },\n onRenderIcon(props, _this._onRenderIcon),\n _this._onRenderTextContents(),\n onRenderAriaDescription(props, _this._onRenderAriaDescription),\n onRenderChildren(props, _this._onRenderChildren),\n !_this._isSplitButton &&\n (menuProps || menuIconProps || _this.props.onRenderMenuIcon) &&\n onRenderMenuIcon(_this.props, _this._onRenderMenuIcon),\n menuProps &&\n !menuProps.doNotLayer &&\n _this._shouldRenderMenu() &&\n onRenderMenu(_this._getMenuProps(menuProps), _this._onRenderMenu)))); };\n var Content = keytipProps ? (\n // If we're making a split button, we won't put the keytip here\n React.createElement(KeytipData, { keytipProps: !this._isSplitButton ? keytipProps : undefined, ariaDescribedBy: buttonProps['aria-describedby'], disabled: disabled }, function (keytipAttributes) { return Button(keytipAttributes); })) : (Button());\n if (menuProps && menuProps.doNotLayer) {\n return (React.createElement(React.Fragment, null,\n Content,\n this._shouldRenderMenu() && onRenderMenu(this._getMenuProps(menuProps), this._onRenderMenu)));\n }\n return (React.createElement(React.Fragment, null,\n Content,\n React.createElement(FocusRects, null)));\n };\n /**\n * Method to help determine if the menu's component tree should\n * be rendered. It takes into account whether the menu is expanded,\n * whether it is a persisted menu and whether it has been shown to the user.\n */\n BaseButton.prototype._shouldRenderMenu = function () {\n var menuHidden = this.state.menuHidden;\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, persistMenu = _a.persistMenu, renderPersistedMenuHiddenOnMount = _a.renderPersistedMenuHiddenOnMount;\n if (!menuHidden) {\n // Always should render a menu when it is expanded\n return true;\n }\n else if (persistMenu && (this._renderedVisibleMenu || renderPersistedMenuHiddenOnMount)) {\n // _renderedVisibleMenu ensures that the first rendering of\n // the menu happens on-screen, as edge's scrollbar calculations are off if done while hidden.\n return true;\n }\n return false;\n };\n BaseButton.prototype._hasText = function () {\n // _onRenderTextContents and _onRenderText do not perform the same checks. Below is parity with what _onRenderText\n // used to have before the refactor that introduced this function. _onRenderTextContents does not require props.\n // text to be undefined in order for props.children to be used as a fallback.\n // Purely a code maintainability/reuse issue, but logged as Issue #4979.\n return this.props.text !== null && (this.props.text !== undefined || typeof this.props.children === 'string');\n };\n BaseButton.prototype._getMenuProps = function (menuProps) {\n var persistMenu = this.props.persistMenu;\n var menuHidden = this.state.menuHidden;\n // the accessible menu label (accessible name) has a relationship to the button.\n // If the menu props do not specify an explicit value for aria-label or aria-labelledBy,\n // AND the button has text, we'll set the menu aria-labelledBy to the text element id.\n if (!menuProps.ariaLabel && !menuProps.labelElementId && this._hasText()) {\n menuProps = __assign(__assign({}, menuProps), { labelElementId: this._labelId });\n }\n return __assign(__assign({ id: this._labelId + '-menu', directionalHint: DirectionalHint.bottomLeftEdge }, menuProps), { shouldFocusOnContainer: this._menuShouldFocusOnContainer, shouldFocusOnMount: this._menuShouldFocusOnMount, hidden: persistMenu ? menuHidden : undefined, className: css('ms-BaseButton-menuhost', menuProps.className), target: this._isSplitButton ? this._splitButtonContainer.current : this._buttonElement.current, onDismiss: this._onDismissMenu });\n };\n BaseButton.prototype._onRenderSplitButtonContent = function (tag, buttonProps) {\n var _this = this;\n var _a = this.props, _b = _a.styles, styles = _b === void 0 ? {} : _b, disabled = _a.disabled, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, getSplitButtonClassNames = _a.getSplitButtonClassNames, primaryDisabled = _a.primaryDisabled, menuProps = _a.menuProps, toggle = _a.toggle, role = _a.role, primaryActionButtonProps = _a.primaryActionButtonProps;\n var keytipProps = this.props.keytipProps;\n var menuHidden = this.state.menuHidden;\n var classNames = getSplitButtonClassNames\n ? getSplitButtonClassNames(!!disabled, !menuHidden, !!checked, !!allowDisabledFocus)\n : styles && getBaseSplitButtonClassNames(styles, !!disabled, !menuHidden, !!checked, !!primaryDisabled);\n assign(buttonProps, {\n onClick: undefined,\n onPointerDown: undefined,\n onPointerUp: undefined,\n tabIndex: -1,\n 'data-is-focusable': false,\n });\n if (keytipProps && menuProps) {\n keytipProps = this._getMemoizedMenuButtonKeytipProps(keytipProps);\n }\n var containerProps = getNativeProps(buttonProps, [], ['disabled']);\n // Add additional props to apply on primary action button\n if (primaryActionButtonProps) {\n assign(buttonProps, primaryActionButtonProps);\n }\n var SplitButton = function (keytipAttributes) { return (React.createElement(\"div\", __assign({}, containerProps, { \"data-ktp-target\": keytipAttributes ? keytipAttributes['data-ktp-target'] : undefined, role: role ? role : 'button', \"aria-disabled\": disabled, \"aria-haspopup\": true, \"aria-expanded\": !menuHidden, \"aria-pressed\": toggle ? !!checked : undefined, \"aria-describedby\": mergeAriaAttributeValues(buttonProps['aria-describedby'], keytipAttributes ? keytipAttributes['aria-describedby'] : undefined), className: classNames && classNames.splitButtonContainer, onKeyDown: _this._onSplitButtonContainerKeyDown, onTouchStart: _this._onTouchStart, ref: _this._splitButtonContainer, \"data-is-focusable\": true, onClick: !disabled && !primaryDisabled ? _this._onSplitButtonPrimaryClick : undefined, tabIndex: (!disabled && !primaryDisabled) || allowDisabledFocus ? 0 : undefined, \"aria-roledescription\": buttonProps['aria-roledescription'], onFocusCapture: _this._onSplitContainerFocusCapture }),\n React.createElement(\"span\", { style: { display: 'flex', width: '100%' } },\n _this._onRenderContent(tag, buttonProps),\n _this._onRenderSplitButtonMenuButton(classNames, keytipAttributes),\n _this._onRenderSplitButtonDivider(classNames)))); };\n return keytipProps ? (React.createElement(KeytipData, { keytipProps: keytipProps, disabled: disabled }, function (keytipAttributes) { return SplitButton(keytipAttributes); })) : (SplitButton());\n };\n BaseButton.prototype._onRenderSplitButtonDivider = function (classNames) {\n if (classNames && classNames.divider) {\n var onClick = function (ev) {\n ev.stopPropagation();\n };\n return React.createElement(\"span\", { className: classNames.divider, \"aria-hidden\": true, onClick: onClick });\n }\n return null;\n };\n BaseButton.prototype._onRenderSplitButtonMenuButton = function (classNames, keytipAttributes) {\n var _a = this.props, allowDisabledFocus = _a.allowDisabledFocus, checked = _a.checked, disabled = _a.disabled, splitButtonMenuProps = _a.splitButtonMenuProps, splitButtonAriaLabel = _a.splitButtonAriaLabel, primaryDisabled = _a.primaryDisabled;\n var menuHidden = this.state.menuHidden;\n var menuIconProps = this.props.menuIconProps;\n if (menuIconProps === undefined) {\n menuIconProps = {\n iconName: 'ChevronDown',\n };\n }\n var splitButtonProps = __assign(__assign({}, splitButtonMenuProps), { styles: classNames, checked: checked, disabled: disabled, allowDisabledFocus: allowDisabledFocus, onClick: this._onMenuClick, menuProps: undefined, iconProps: __assign(__assign({}, menuIconProps), { className: this._classNames.menuIcon }), ariaLabel: splitButtonAriaLabel, 'aria-haspopup': true, 'aria-expanded': !menuHidden, 'data-is-focusable': false });\n // Add data-ktp-execute-target to the split button if the keytip is defined\n return (React.createElement(BaseButton, __assign({}, splitButtonProps, { \"data-ktp-execute-target\": keytipAttributes ? keytipAttributes['data-ktp-execute-target'] : keytipAttributes, onMouseDown: this._onMouseDown, tabIndex: primaryDisabled && !allowDisabledFocus ? 0 : -1 })));\n };\n BaseButton.prototype._onPointerDown = function (ev) {\n var onPointerDown = this.props.onPointerDown;\n if (onPointerDown) {\n onPointerDown(ev);\n }\n if (ev.pointerType === 'touch') {\n this._handleTouchAndPointerEvent();\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n };\n BaseButton.prototype._handleTouchAndPointerEvent = function () {\n var _this = this;\n // If we already have an existing timeout from a previous touch and pointer event\n // cancel that timeout so we can set a new one.\n if (this._lastTouchTimeoutId !== undefined) {\n this._async.clearTimeout(this._lastTouchTimeoutId);\n this._lastTouchTimeoutId = undefined;\n }\n this._processingTouch = true;\n this._lastTouchTimeoutId = this._async.setTimeout(function () {\n _this._processingTouch = false;\n _this._lastTouchTimeoutId = undefined;\n // Touch and pointer events don't focus the button naturally,\n // so adding an imperative focus call to guarantee this behavior.\n // Only focus the button if a splitbutton menu is not open\n if (_this.state.menuHidden) {\n _this.focus();\n }\n }, TouchIdleDelay);\n };\n /**\n * Returns if the user hits a valid keyboard key to open the menu\n * @param ev - the keyboard event\n * @returns True if user clicks on custom trigger key if enabled or alt + down arrow if not. False otherwise.\n */\n BaseButton.prototype._isValidMenuOpenKey = function (ev) {\n if (this.props.menuTriggerKeyCode) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === this.props.menuTriggerKeyCode;\n }\n else if (this.props.menuProps) {\n // eslint-disable-next-line deprecation/deprecation\n return ev.which === KeyCodes.down && (ev.altKey || ev.metaKey);\n }\n // Note: When enter is pressed, we will let the event continue to propagate\n // to trigger the onClick event on the button\n return false;\n };\n BaseButton.defaultProps = {\n baseClassName: 'ms-Button',\n styles: {},\n split: false,\n };\n // needed to access registeredProviders when manually setting focus visibility\n BaseButton.contextType = FocusRectsContext;\n return BaseButton;\n}(React.Component));\nexport { BaseButton };\n//# sourceMappingURL=BaseButton.js.map","import { memoizeFunction } from '../../Utilities';\nimport { HighContrastSelector, getFocusStyle, hiddenContentStyle } from '../../Styling';\nvar noOutline = {\n outline: 0,\n};\nvar iconStyle = function (fontSize) {\n return {\n fontSize: fontSize,\n margin: '0 4px',\n height: '16px',\n lineHeight: '16px',\n textAlign: 'center',\n flexShrink: 0,\n };\n};\n/**\n * Gets the base button styles. Note: because it is a base class to be used with the `mergeRules`\n * helper, it should have values for all class names in the interface. This let `mergeRules` optimize\n * mixing class names together.\n */\nexport var getStyles = memoizeFunction(function (theme) {\n var _a, _b;\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var border = semanticColors.buttonBorder;\n var disabledBackground = semanticColors.disabledBackground;\n var disabledText = semanticColors.disabledText;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n outlineColor: 'ButtonText',\n };\n return {\n root: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n theme.fonts.medium,\n {\n border: '1px solid ' + border,\n borderRadius: effects.roundedCorner2,\n boxSizing: 'border-box',\n cursor: 'pointer',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '0 16px',\n textDecoration: 'none',\n textAlign: 'center',\n userSelect: 'none',\n // IE11 workaround for preventing shift of child elements of a button when active.\n ':active > span': {\n position: 'relative',\n left: 0,\n top: 0,\n },\n },\n ],\n rootDisabled: [\n getFocusStyle(theme, { inset: 1, highContrastStyle: buttonHighContrastFocus, borderColor: 'transparent' }),\n {\n backgroundColor: disabledBackground,\n borderColor: disabledBackground,\n color: disabledText,\n cursor: 'default',\n ':hover': noOutline,\n ':focus': noOutline,\n },\n ],\n iconDisabled: (_a = {\n color: disabledText\n },\n _a[HighContrastSelector] = {\n color: 'GrayText',\n },\n _a),\n menuIconDisabled: (_b = {\n color: disabledText\n },\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n flexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n description: {\n display: 'block',\n },\n textContainer: {\n flexGrow: 1,\n display: 'block',\n },\n icon: iconStyle(fonts.mediumPlus.fontSize),\n menuIcon: iconStyle(fonts.small.fontSize),\n label: {\n margin: '0 4px',\n lineHeight: '100%',\n display: 'block',\n },\n screenReaderText: hiddenContentStyle,\n };\n});\n//# sourceMappingURL=BaseButton.styles.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, concatStyleSets, getFocusStyle, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;\n var effects = theme.effects, palette = theme.palette, semanticColors = theme.semanticColors;\n var buttonHighContrastFocus = {\n left: -2,\n top: -2,\n bottom: -2,\n right: -2,\n border: 'none',\n };\n var splitButtonDividerBaseStyles = {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n var splitButtonStyles = {\n splitButtonContainer: [\n getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2, pointerEvents: 'none' }),\n {\n display: 'inline-flex',\n '.ms-Button--default': {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n borderRight: 'none',\n flexGrow: '1',\n },\n '.ms-Button--primary': (_a = {\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n border: 'none',\n flexGrow: '1',\n ':hover': {\n border: 'none',\n },\n ':active': {\n border: 'none',\n }\n },\n _a[HighContrastSelector] = __assign(__assign({ color: 'WindowText', backgroundColor: 'Window', border: '1px solid WindowText', borderRightWidth: '0' }, getHighContrastNoAdjustStyle()), { ':hover': {\n backgroundColor: 'Highlight',\n border: '1px solid Highlight',\n borderRightWidth: '0',\n color: 'HighlightText',\n }, ':active': {\n border: '1px solid Highlight',\n } }),\n _a),\n '.ms-Button--default + .ms-Button': (_b = {},\n _b[HighContrastSelector] = {\n border: '1px solid WindowText',\n borderLeftWidth: '0',\n ':hover': {\n backgroundColor: 'HighlightText',\n borderColor: 'Highlight',\n color: 'Highlight',\n '.ms-Button-menuIcon': __assign({ backgroundColor: 'HighlightText', color: 'Highlight' }, getHighContrastNoAdjustStyle()),\n },\n },\n _b),\n '.ms-Button--default + .ms-Button[aria-expanded=\"true\"]': (_c = {},\n _c[HighContrastSelector] = {\n backgroundColor: 'HighlightText',\n borderColor: 'Highlight',\n color: 'Highlight',\n '.ms-Button-menuIcon': __assign({ backgroundColor: 'HighlightText', color: 'Highlight' }, getHighContrastNoAdjustStyle()),\n },\n _c),\n '.ms-Button--primary + .ms-Button': (_d = {\n border: 'none'\n },\n _d[HighContrastSelector] = {\n border: '1px solid WindowText',\n borderLeftWidth: '0',\n ':hover': {\n borderLeftWidth: '0',\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n color: 'HighlightText',\n '.ms-Button-menuIcon': __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'HighlightText' }),\n },\n },\n _d),\n '.ms-Button--primary + .ms-Button[aria-expanded=\"true\"]': (_e = {},\n _e[HighContrastSelector] = __assign(__assign({ backgroundColor: 'Highlight', borderColor: 'Highlight', color: 'HighlightText' }, getHighContrastNoAdjustStyle()), { '.ms-Button-menuIcon': {\n color: 'HighlightText',\n } }),\n _e),\n '.ms-Button.is-disabled': (_f = {},\n _f[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _f),\n },\n ],\n splitButtonContainerHovered: {\n '.ms-Button--default.is-disabled': (_g = {\n backgroundColor: semanticColors.buttonBackgroundDisabled,\n color: semanticColors.buttonTextDisabled\n },\n _g[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _g),\n '.ms-Button--primary.is-disabled': (_h = {\n backgroundColor: semanticColors.primaryButtonBackgroundDisabled,\n color: semanticColors.primaryButtonTextDisabled\n },\n _h[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _h),\n },\n splitButtonContainerChecked: {\n '.ms-Button--primary': (_j = {},\n _j[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _j),\n },\n splitButtonContainerCheckedHovered: {\n '.ms-Button--primary': (_k = {},\n _k[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _k),\n },\n splitButtonContainerFocused: {\n outline: 'none!important',\n },\n splitButtonMenuButton: (_l = {\n padding: 6,\n height: 'auto',\n boxSizing: 'border-box',\n borderRadius: 0,\n borderTopRightRadius: effects.roundedCorner2,\n borderBottomRightRadius: effects.roundedCorner2,\n border: \"1px solid \".concat(palette.neutralSecondaryAlt),\n borderLeft: 'none',\n outline: 'transparent',\n userSelect: 'none',\n display: 'inline-block',\n textDecoration: 'none',\n textAlign: 'center',\n cursor: 'pointer',\n verticalAlign: 'top',\n width: 32,\n marginLeft: -1,\n marginTop: 0,\n marginRight: 0,\n marginBottom: 0\n },\n _l[HighContrastSelector] = {\n '.ms-Button-menuIcon': {\n color: 'WindowText',\n },\n },\n _l),\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles), (_m = {}, _m[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n }, _m)),\n splitButtonDividerDisabled: __assign(__assign({}, splitButtonDividerBaseStyles), (_o = {}, _o[HighContrastSelector] = {\n backgroundColor: 'GrayText',\n }, _o)),\n splitButtonMenuButtonDisabled: (_p = {\n pointerEvents: 'none',\n border: 'none',\n ':hover': {\n cursor: 'default',\n },\n '.ms-Button--primary': (_q = {},\n _q[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _q),\n '.ms-Button-menuIcon': (_r = {},\n _r[HighContrastSelector] = {\n color: 'GrayText',\n },\n _r)\n },\n _p[HighContrastSelector] = {\n color: 'GrayText',\n border: '1px solid GrayText',\n backgroundColor: 'Window',\n },\n _p),\n splitButtonFlexContainer: {\n display: 'flex',\n height: '100%',\n flexWrap: 'nowrap',\n justifyContent: 'center',\n alignItems: 'center',\n },\n splitButtonContainerDisabled: (_s = {\n outline: 'none',\n border: 'none'\n },\n _s[HighContrastSelector] = __assign({ color: 'GrayText', borderColor: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _s),\n splitButtonMenuFocused: __assign({}, getFocusStyle(theme, { highContrastStyle: buttonHighContrastFocus, inset: 2 })),\n };\n return concatStyleSets(splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=SplitButton.styles.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar splitButtonDividerBaseStyles = function () {\n return {\n position: 'absolute',\n width: 1,\n right: 31,\n top: 8,\n bottom: 8,\n };\n};\nexport function standardStyles(theme) {\n var _a, _b, _c, _d, _e;\n var s = theme.semanticColors, p = theme.palette;\n var buttonBackground = s.buttonBackground;\n var buttonBackgroundPressed = s.buttonBackgroundPressed;\n var buttonBackgroundHovered = s.buttonBackgroundHovered;\n var buttonBackgroundDisabled = s.buttonBackgroundDisabled;\n var buttonText = s.buttonText;\n var buttonTextHovered = s.buttonTextHovered;\n var buttonTextDisabled = s.buttonTextDisabled;\n var buttonTextChecked = s.buttonTextChecked;\n var buttonTextCheckedHovered = s.buttonTextCheckedHovered;\n return {\n root: {\n backgroundColor: buttonBackground,\n color: buttonText,\n },\n rootHovered: (_a = {\n backgroundColor: buttonBackgroundHovered,\n color: buttonTextHovered\n },\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n rootPressed: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootExpanded: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootChecked: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextChecked,\n },\n rootCheckedHovered: {\n backgroundColor: buttonBackgroundPressed,\n color: buttonTextCheckedHovered,\n },\n rootDisabled: (_b = {\n color: buttonTextDisabled,\n backgroundColor: buttonBackgroundDisabled\n },\n _b[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _b),\n // Split button styles\n splitButtonContainer: (_c = {},\n _c[HighContrastSelector] = {\n border: 'none',\n },\n _c),\n splitButtonMenuButton: {\n color: p.white,\n backgroundColor: 'transparent',\n ':hover': (_d = {\n backgroundColor: p.neutralLight\n },\n _d[HighContrastSelector] = {\n color: 'Highlight',\n },\n _d),\n },\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.buttonBackgroundDisabled,\n ':hover': {\n backgroundColor: s.buttonBackgroundDisabled,\n },\n },\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), (_e = { backgroundColor: p.neutralTertiaryAlt }, _e[HighContrastSelector] = {\n backgroundColor: 'WindowText',\n }, _e)),\n splitButtonDividerDisabled: {\n backgroundColor: theme.palette.neutralTertiaryAlt,\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: p.neutralQuaternaryAlt,\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: p.neutralQuaternaryAlt,\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n splitButtonMenuIcon: {\n color: s.buttonText,\n },\n splitButtonMenuIconDisabled: {\n color: s.buttonTextDisabled,\n },\n };\n}\nexport function primaryStyles(theme) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n var p = theme.palette, s = theme.semanticColors;\n return {\n root: (_a = {\n backgroundColor: s.primaryButtonBackground,\n border: \"1px solid \".concat(s.primaryButtonBackground),\n color: s.primaryButtonText\n },\n _a[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus\")] = {\n ':after': {\n border: \"none\",\n outlineColor: p.white,\n },\n },\n _a),\n rootHovered: (_b = {\n backgroundColor: s.primaryButtonBackgroundHovered,\n border: \"1px solid \".concat(s.primaryButtonBackgroundHovered),\n color: s.primaryButtonTextHovered\n },\n _b[HighContrastSelector] = {\n color: 'Window',\n backgroundColor: 'Highlight',\n borderColor: 'Highlight',\n },\n _b),\n rootPressed: (_c = {\n backgroundColor: s.primaryButtonBackgroundPressed,\n border: \"1px solid \".concat(s.primaryButtonBackgroundPressed),\n color: s.primaryButtonTextPressed\n },\n _c[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText', borderColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _c),\n rootExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootCheckedHovered: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n color: s.primaryButtonTextPressed,\n },\n rootDisabled: (_d = {\n color: s.primaryButtonTextDisabled,\n backgroundColor: s.primaryButtonBackgroundDisabled\n },\n _d[HighContrastSelector] = {\n color: 'GrayText',\n borderColor: 'GrayText',\n backgroundColor: 'Window',\n },\n _d),\n // Split button styles\n splitButtonContainer: (_e = {},\n _e[HighContrastSelector] = {\n border: 'none',\n },\n _e),\n splitButtonDivider: __assign(__assign({}, splitButtonDividerBaseStyles()), (_f = { backgroundColor: p.white }, _f[HighContrastSelector] = {\n backgroundColor: 'Window',\n }, _f)),\n splitButtonMenuButton: (_g = {\n backgroundColor: s.primaryButtonBackground,\n color: s.primaryButtonText\n },\n _g[HighContrastSelector] = {\n backgroundColor: 'Canvas',\n },\n _g[':hover'] = (_h = {\n backgroundColor: s.primaryButtonBackgroundHovered\n },\n _h[HighContrastSelector] = {\n color: 'Highlight',\n },\n _h),\n _g),\n splitButtonMenuButtonDisabled: {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundDisabled,\n },\n },\n splitButtonMenuButtonChecked: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: s.primaryButtonBackgroundPressed,\n ':hover': {\n backgroundColor: s.primaryButtonBackgroundPressed,\n },\n },\n splitButtonMenuIcon: {\n color: s.primaryButtonText,\n },\n splitButtonMenuIconDisabled: (_j = {\n color: p.neutralTertiary\n },\n _j[HighContrastSelector] = {\n color: 'GrayText',\n },\n _j),\n };\n}\n//# sourceMappingURL=ButtonThemes.js.map","import { concatStyleSets, FontWeights } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nvar DEFAULT_BUTTON_MIN_HEIGHT = '32px';\nvar DEFAULT_BUTTON_MIN_WIDTH = '80px';\nexport var getStyles = memoizeFunction(function (theme, customStyles, primary) {\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var defaultButtonStyles = {\n root: {\n minWidth: DEFAULT_BUTTON_MIN_WIDTH,\n minHeight: DEFAULT_BUTTON_MIN_HEIGHT,\n },\n label: {\n fontWeight: FontWeights.semibold,\n },\n };\n return concatStyleSets(baseButtonStyles, defaultButtonStyles, primary ? primaryStyles(theme) : standardStyles(theme), splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=DefaultButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './DefaultButton.styles';\n/**\n * {@docCategory Button}\n */\nvar DefaultButton = /** @class */ (function (_super) {\n __extends(DefaultButton, _super);\n function DefaultButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DefaultButton.prototype.render = function () {\n var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: primary ? 'ms-Button--primary' : 'ms-Button--default', styles: getStyles(theme, styles, primary), onRenderDescription: nullRender })));\n };\n DefaultButton = __decorate([\n customizable('DefaultButton', ['theme', 'styles'], true)\n ], DefaultButton);\n return DefaultButton;\n}(React.Component));\nexport { DefaultButton };\n//# sourceMappingURL=DefaultButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nvar DEFAULT_BUTTON_HEIGHT = '40px';\nvar DEFAULT_PADDING = '0 4px';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a, _b, _c;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var actionButtonStyles = {\n root: (_a = {\n padding: DEFAULT_PADDING,\n height: DEFAULT_BUTTON_HEIGHT,\n color: theme.palette.neutralPrimary,\n backgroundColor: 'transparent',\n border: '1px solid transparent'\n },\n _a[HighContrastSelector] = {\n borderColor: 'Window',\n },\n _a),\n rootHovered: (_b = {\n color: theme.palette.themePrimary\n },\n _b[HighContrastSelector] = {\n color: 'Highlight',\n },\n _b),\n iconHovered: {\n color: theme.palette.themePrimary,\n },\n rootPressed: {\n color: theme.palette.black,\n },\n rootExpanded: {\n color: theme.palette.themePrimary,\n },\n iconPressed: {\n color: theme.palette.themeDarker,\n },\n rootDisabled: (_c = {\n color: theme.palette.neutralTertiary,\n backgroundColor: 'transparent',\n borderColor: 'transparent'\n },\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n rootChecked: {\n color: theme.palette.black,\n },\n iconChecked: {\n color: theme.palette.themeDarker,\n },\n flexContainer: {\n justifyContent: 'flex-start',\n },\n icon: {\n color: theme.palette.themeDarkAlt,\n },\n iconDisabled: {\n color: 'inherit',\n },\n menuIcon: {\n color: theme.palette.neutralSecondary,\n },\n textContainer: {\n flexGrow: 0,\n },\n };\n return concatStyleSets(baseButtonStyles, actionButtonStyles, customStyles);\n});\n//# sourceMappingURL=ActionButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './ActionButton.styles';\n/**\n * {@docCategory Button}\n */\nvar ActionButton = /** @class */ (function (_super) {\n __extends(ActionButton, _super);\n function ActionButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ActionButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--action ms-Button--command\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n };\n ActionButton = __decorate([\n customizable('ActionButton', ['theme', 'styles'], true)\n ], ActionButton);\n return ActionButton;\n}(React.Component));\nexport { ActionButton };\n//# sourceMappingURL=ActionButton.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, FontWeights, HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { primaryStyles, standardStyles } from '../ButtonThemes';\nexport var getStyles = memoizeFunction(function (theme, customStyles, primary) {\n var _a, _b, _c, _d, _e;\n var fonts = theme.fonts, palette = theme.palette;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var compoundButtonStyles = {\n root: {\n maxWidth: '280px',\n minHeight: '72px',\n height: 'auto',\n padding: '16px 12px',\n },\n flexContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n minWidth: '100%',\n margin: '',\n },\n textContainer: {\n textAlign: 'left',\n },\n icon: {\n fontSize: '2em',\n lineHeight: '1em',\n height: '1em',\n margin: '0px 8px 0px 0px',\n flexBasis: '1em',\n flexShrink: '0',\n },\n label: {\n margin: '0 0 5px',\n lineHeight: '100%',\n fontWeight: FontWeights.semibold,\n },\n description: [\n fonts.small,\n {\n lineHeight: '100%',\n },\n ],\n };\n var standardCompoundTheme = {\n description: {\n color: palette.neutralSecondary,\n },\n descriptionHovered: {\n color: palette.neutralDark,\n },\n descriptionPressed: {\n color: 'inherit',\n },\n descriptionChecked: {\n color: 'inherit',\n },\n descriptionDisabled: {\n color: 'inherit',\n },\n };\n var primaryCompoundTheme = {\n description: (_a = {\n color: palette.white\n },\n _a[HighContrastSelector] = __assign({ backgroundColor: 'WindowText', color: 'Window' }, getHighContrastNoAdjustStyle()),\n _a),\n descriptionHovered: (_b = {\n color: palette.white\n },\n _b[HighContrastSelector] = {\n backgroundColor: 'Highlight',\n color: 'Window',\n },\n _b),\n descriptionPressed: (_c = {\n color: 'inherit'\n },\n _c[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _c),\n descriptionChecked: (_d = {\n color: 'inherit'\n },\n _d[HighContrastSelector] = __assign({ color: 'Window', backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _d),\n descriptionDisabled: (_e = {\n color: 'inherit'\n },\n _e[HighContrastSelector] = {\n color: 'inherit',\n },\n _e),\n };\n return concatStyleSets(baseButtonStyles, compoundButtonStyles, primary ? primaryStyles(theme) : standardStyles(theme), primary ? primaryCompoundTheme : standardCompoundTheme, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=CompoundButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable } from '../../../Utilities';\nimport { getStyles } from './CompoundButton.styles';\n/**\n * {@docCategory Button}\n */\nvar CompoundButton = /** @class */ (function (_super) {\n __extends(CompoundButton, _super);\n function CompoundButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CompoundButton.prototype.render = function () {\n var _a = this.props, _b = _a.primary, primary = _b === void 0 ? false : _b, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: primary ? 'ms-Button--compoundPrimary' : 'ms-Button--compound', styles: getStyles(theme, styles, primary) })));\n };\n CompoundButton = __decorate([\n customizable('CompoundButton', ['theme', 'styles'], true)\n ], CompoundButton);\n return CompoundButton;\n}(React.Component));\nexport { CompoundButton };\n//# sourceMappingURL=CompoundButton.js.map","import { concatStyleSets, HighContrastSelector } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nexport var getStyles = memoizeFunction(function (theme, customStyles) {\n var _a;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var splitButtonStyles = getSplitButtonStyles(theme);\n var palette = theme.palette, semanticColors = theme.semanticColors;\n var iconButtonStyles = {\n root: {\n padding: '0 4px',\n width: '32px',\n height: '32px',\n backgroundColor: 'transparent',\n border: 'none',\n color: semanticColors.link,\n },\n rootHovered: (_a = {\n color: palette.themeDarkAlt,\n backgroundColor: palette.neutralLighter\n },\n _a[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _a),\n rootHasMenu: {\n width: 'auto',\n },\n rootPressed: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootExpanded: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootChecked: {\n color: palette.themeDark,\n backgroundColor: palette.neutralLight,\n },\n rootCheckedHovered: {\n color: palette.themeDark,\n backgroundColor: palette.neutralQuaternaryAlt,\n },\n rootDisabled: {\n color: palette.neutralTertiaryAlt,\n },\n };\n return concatStyleSets(baseButtonStyles, iconButtonStyles, splitButtonStyles, customStyles);\n});\n//# sourceMappingURL=IconButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './IconButton.styles';\n/**\n * {@docCategory Button}\n */\nvar IconButton = /** @class */ (function (_super) {\n __extends(IconButton, _super);\n function IconButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IconButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--icon\", styles: getStyles(theme, styles), onRenderText: nullRender, onRenderDescription: nullRender })));\n };\n IconButton = __decorate([\n customizable('IconButton', ['theme', 'styles'], true)\n ], IconButton);\n return IconButton;\n}(React.Component));\nexport { IconButton };\n//# sourceMappingURL=IconButton.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { DefaultButton } from '../DefaultButton/DefaultButton';\n/**\n * {@docCategory Button}\n */\nvar PrimaryButton = /** @class */ (function (_super) {\n __extends(PrimaryButton, _super);\n function PrimaryButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PrimaryButton.prototype.render = function () {\n return React.createElement(DefaultButton, __assign({}, this.props, { primary: true, onRenderDescription: nullRender }));\n };\n PrimaryButton = __decorate([\n customizable('PrimaryButton', ['theme', 'styles'], true)\n ], PrimaryButton);\n return PrimaryButton;\n}(React.Component));\nexport { PrimaryButton };\n//# sourceMappingURL=PrimaryButton.js.map","import { __assign } from \"tslib\";\nimport { concatStyleSets, getFocusStyle, HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { memoizeFunction } from '../../../Utilities';\nimport { getStyles as getBaseButtonStyles } from '../BaseButton.styles';\nimport { getStyles as getSplitButtonStyles } from '../SplitButton/SplitButton.styles';\nimport { ButtonGlobalClassNames } from '../BaseButton.classNames';\nexport var getStyles = memoizeFunction(function (theme, customStyles, focusInset, focusColor) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n var baseButtonStyles = getBaseButtonStyles(theme);\n var baseSplitButtonStyles = getSplitButtonStyles(theme);\n var p = theme.palette, semanticColors = theme.semanticColors;\n var commandButtonHighContrastFocus = {\n left: 4,\n top: 4,\n bottom: 4,\n right: 4,\n border: 'none',\n };\n var commandButtonStyles = {\n root: [\n getFocusStyle(theme, {\n inset: 2,\n highContrastStyle: commandButtonHighContrastFocus,\n borderColor: 'transparent',\n }),\n theme.fonts.medium,\n (_a = {\n minWidth: '40px',\n backgroundColor: p.white,\n color: p.neutralPrimary,\n padding: '0 4px',\n border: 'none',\n borderRadius: 0\n },\n _a[HighContrastSelector] = {\n border: 'none',\n },\n _a),\n ],\n rootHovered: (_b = {\n backgroundColor: p.neutralLighter,\n color: p.neutralDark\n },\n _b[HighContrastSelector] = {\n color: 'Highlight',\n },\n _b[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.themeDarkAlt,\n },\n _b[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n color: p.neutralPrimary,\n },\n _b),\n rootPressed: (_c = {\n backgroundColor: p.neutralLight,\n color: p.neutralDark\n },\n _c[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.themeDark,\n },\n _c[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n color: p.neutralPrimary,\n },\n _c),\n rootChecked: (_d = {\n backgroundColor: p.neutralLight,\n color: p.neutralDark\n },\n _d[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.themeDark,\n },\n _d[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n color: p.neutralPrimary,\n },\n _d),\n rootCheckedHovered: (_e = {\n backgroundColor: p.neutralQuaternaryAlt\n },\n _e[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.themeDark,\n },\n _e[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n color: p.neutralPrimary,\n },\n _e),\n rootExpanded: (_f = {\n backgroundColor: p.neutralLight,\n color: p.neutralDark\n },\n _f[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.themeDark,\n },\n _f[\".\".concat(ButtonGlobalClassNames.msButtonMenuIcon)] = {\n color: p.neutralPrimary,\n },\n _f),\n rootExpandedHovered: {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n rootDisabled: (_g = {\n backgroundColor: p.white\n },\n _g[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = (_h = {\n color: semanticColors.disabledBodySubtext\n },\n _h[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _h),\n _g[HighContrastSelector] = __assign({ color: 'GrayText', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _g),\n // Split button styles\n splitButtonContainer: (_j = {\n height: '100%'\n },\n _j[HighContrastSelector] = {\n border: 'none',\n },\n _j),\n splitButtonDividerDisabled: (_k = {},\n _k[HighContrastSelector] = {\n backgroundColor: 'Window',\n },\n _k),\n splitButtonDivider: {\n backgroundColor: p.neutralTertiaryAlt,\n },\n splitButtonMenuButton: {\n backgroundColor: p.white,\n border: 'none',\n borderTopRightRadius: '0',\n borderBottomRightRadius: '0',\n color: p.neutralSecondary,\n ':hover': (_l = {\n backgroundColor: p.neutralLighter,\n color: p.neutralDark\n },\n _l[HighContrastSelector] = {\n color: 'Highlight',\n },\n _l[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.neutralPrimary,\n },\n _l),\n ':active': (_m = {\n backgroundColor: p.neutralLight\n },\n _m[\".\".concat(ButtonGlobalClassNames.msButtonIcon)] = {\n color: p.neutralPrimary,\n },\n _m),\n },\n splitButtonMenuButtonDisabled: (_o = {\n backgroundColor: p.white\n },\n _o[HighContrastSelector] = __assign({ color: 'GrayText', border: 'none', backgroundColor: 'Window' }, getHighContrastNoAdjustStyle()),\n _o),\n splitButtonMenuButtonChecked: {\n backgroundColor: p.neutralLight,\n color: p.neutralDark,\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n splitButtonMenuButtonExpanded: {\n backgroundColor: p.neutralLight,\n color: p.black,\n ':hover': {\n backgroundColor: p.neutralQuaternaryAlt,\n },\n },\n splitButtonMenuIcon: {\n color: p.neutralPrimary,\n },\n splitButtonMenuIconDisabled: {\n color: p.neutralTertiary,\n },\n label: {\n fontWeight: 'normal', // theme.fontWeights.semibold,\n },\n icon: {\n color: p.themePrimary,\n },\n menuIcon: {\n color: p.neutralSecondary,\n },\n };\n return concatStyleSets(baseButtonStyles, baseSplitButtonStyles, commandButtonStyles, customStyles);\n});\n//# sourceMappingURL=CommandBarButton.styles.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { BaseButton } from '../BaseButton';\nimport { customizable, nullRender } from '../../../Utilities';\nimport { getStyles } from './CommandBarButton.styles';\n/**\n * {@docCategory Button}\n */\nvar CommandBarButton = /** @class */ (function (_super) {\n __extends(CommandBarButton, _super);\n function CommandBarButton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CommandBarButton.prototype.render = function () {\n var _a = this.props, styles = _a.styles, theme = _a.theme;\n return (React.createElement(BaseButton, __assign({}, this.props, { variantClassName: \"ms-Button--commandBar\", styles: getStyles(theme, styles), onRenderDescription: nullRender })));\n };\n CommandBarButton = __decorate([\n customizable('CommandBarButton', ['theme', 'styles'], true)\n ], CommandBarButton);\n return CommandBarButton;\n}(React.Component));\nexport { CommandBarButton };\n//# sourceMappingURL=CommandBarButton.js.map","import { ActionButton } from '../ActionButton/ActionButton';\n/**\n * {@docCategory Button}\n */\nexport var CommandButton = ActionButton;\n//# sourceMappingURL=CommandButton.js.map","/**\n * {@docCategory ResizeGroup}\n */\nexport var ResizeGroupDirection;\n(function (ResizeGroupDirection) {\n ResizeGroupDirection[ResizeGroupDirection[\"horizontal\"] = 0] = \"horizontal\";\n ResizeGroupDirection[ResizeGroupDirection[\"vertical\"] = 1] = \"vertical\";\n})(ResizeGroupDirection || (ResizeGroupDirection = {}));\n//# sourceMappingURL=ResizeGroup.types.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps } from '../../Utilities';\nimport { ResizeGroupDirection } from './ResizeGroup.types';\nimport { useConst, useMergedRefs, useAsync, useOnEvent, useWarnings } from '@fluentui/react-hooks';\nimport { useWindow } from '../../WindowProvider';\nvar RESIZE_DELAY = 16;\n/**\n * Returns a simple object is able to store measurements with a given key.\n */\nexport var getMeasurementCache = function () {\n var measurementsCache = {};\n return {\n /**\n * Checks if the provided data has a cacheKey. If it has a cacheKey and there is a\n * corresponding entry in the measurementsCache, then it will return that value.\n * Returns undefined otherwise.\n */\n getCachedMeasurement: function (data) {\n if (data && data.cacheKey && measurementsCache.hasOwnProperty(data.cacheKey)) {\n return measurementsCache[data.cacheKey];\n }\n return undefined;\n },\n /**\n * Should be called whenever there is a new measurement associated with a given data object.\n * If the data has a cacheKey, store that measurement in the measurementsCache.\n */\n addMeasurementToCache: function (data, measurement) {\n if (data.cacheKey) {\n measurementsCache[data.cacheKey] = measurement;\n }\n },\n };\n};\n/**\n * Returns a function that is able to compute the next state for the ResizeGroup given the current\n * state and any measurement updates.\n */\nexport var getNextResizeGroupStateProvider = function (measurementCache) {\n if (measurementCache === void 0) { measurementCache = getMeasurementCache(); }\n var _measurementCache = measurementCache;\n var _containerDimension;\n /**\n * Gets the width/height of the data rendered in a hidden div.\n * @param measuredData - The data corresponding to the measurement we wish to take.\n * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n * Only called when the measurement is not in the cache.\n */\n function _getMeasuredDimension(measuredData, getElementToMeasureDimension) {\n var cachedDimension = _measurementCache.getCachedMeasurement(measuredData);\n if (cachedDimension !== undefined) {\n return cachedDimension;\n }\n var measuredDimension = getElementToMeasureDimension();\n _measurementCache.addMeasurementToCache(measuredData, measuredDimension);\n return measuredDimension;\n }\n /**\n * Will get the next IResizeGroupState based on the current data while trying to shrink contents\n * to fit in the container.\n * @param data - The initial data point to start measuring.\n * @param onReduceData - Function that transforms the data into something that should render with less width/height.\n * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n * Only called when the measurement is not in the cache.\n */\n function _shrinkContentsUntilTheyFit(data, onReduceData, getElementToMeasureDimension) {\n var dataToMeasure = data;\n var measuredDimension = _getMeasuredDimension(data, getElementToMeasureDimension);\n while (measuredDimension > _containerDimension) {\n var nextMeasuredData = onReduceData(dataToMeasure);\n // We don't want to get stuck in an infinite render loop when there are no more\n // scaling steps, so implementations of onReduceData should return undefined when\n // there are no more scaling states to apply.\n if (nextMeasuredData === undefined) {\n return {\n renderedData: dataToMeasure,\n resizeDirection: undefined,\n dataToMeasure: undefined,\n };\n }\n measuredDimension = _measurementCache.getCachedMeasurement(nextMeasuredData);\n // If the measurement isn't in the cache, we need to re-render with some data in a hidden div\n if (measuredDimension === undefined) {\n return {\n dataToMeasure: nextMeasuredData,\n resizeDirection: 'shrink',\n };\n }\n dataToMeasure = nextMeasuredData;\n }\n return {\n renderedData: dataToMeasure,\n resizeDirection: undefined,\n dataToMeasure: undefined,\n };\n }\n /**\n * This function should be called when the state changes in a manner that might allow for more content to fit\n * on the screen, such as the window width/height growing.\n * @param data - The initial data point to start measuring.\n * @param onGrowData - Function that transforms the data into something that may take up more space when rendering.\n * @param getElementToMeasureDimension - A function that returns the measurement of the rendered data.\n * Only called when the measurement is not in the cache.\n */\n function _growDataUntilItDoesNotFit(data, onGrowData, getElementToMeasureDimension, onReduceData) {\n var dataToMeasure = data;\n var measuredDimension = _getMeasuredDimension(data, getElementToMeasureDimension);\n while (measuredDimension < _containerDimension) {\n var nextMeasuredData = onGrowData(dataToMeasure);\n // We don't want to get stuck in an infinite render loop when there are no more\n // scaling steps, so implementations of onGrowData should return undefined when\n // there are no more scaling states to apply.\n if (nextMeasuredData === undefined) {\n return {\n renderedData: dataToMeasure,\n resizeDirection: undefined,\n dataToMeasure: undefined,\n };\n }\n measuredDimension = _measurementCache.getCachedMeasurement(nextMeasuredData);\n // If the measurement isn't in the cache, we need to re-render with some data in a hidden div\n if (measuredDimension === undefined) {\n return {\n dataToMeasure: nextMeasuredData,\n };\n }\n dataToMeasure = nextMeasuredData;\n }\n // Once the loop is done, we should now shrink until the contents fit.\n return __assign({ resizeDirection: 'shrink' }, _shrinkContentsUntilTheyFit(dataToMeasure, onReduceData, getElementToMeasureDimension));\n }\n /**\n * Handles an update to the container width/height.\n * Should only be called when we knew the previous container width/height.\n * @param newDimension - The new width/height of the container.\n * @param fullDimensionData - The initial data passed in as a prop to resizeGroup.\n * @param renderedData - The data that was rendered prior to the container size changing.\n * @param onGrowData - Set to true if the Resize group has an onGrowData function.\n */\n function _updateContainerDimension(newDimension, fullDimensionData, renderedData, onGrowData) {\n var nextState;\n if (newDimension > _containerDimension) {\n if (onGrowData) {\n nextState = {\n resizeDirection: 'grow',\n dataToMeasure: onGrowData(renderedData),\n };\n }\n else {\n nextState = {\n resizeDirection: 'shrink',\n dataToMeasure: fullDimensionData,\n };\n }\n }\n else {\n nextState = {\n resizeDirection: 'shrink',\n dataToMeasure: renderedData,\n };\n }\n _containerDimension = newDimension;\n return __assign(__assign({}, nextState), { measureContainer: false });\n }\n function getNextState(props, currentState, getElementToMeasureDimension, newContainerDimension) {\n // If there is no new container width/height or data to measure, there is no need for a new state update\n if (newContainerDimension === undefined && currentState.dataToMeasure === undefined) {\n return undefined;\n }\n if (newContainerDimension) {\n // If we know the last container size and we rendered data at that width/height, we can do an optimized render\n if (_containerDimension && currentState.renderedData && !currentState.dataToMeasure) {\n return __assign(__assign({}, currentState), _updateContainerDimension(newContainerDimension, props.data, currentState.renderedData, props.onGrowData));\n }\n // If we are just setting the container width/height for the first time, we can't do any optimizations\n _containerDimension = newContainerDimension;\n }\n var nextState = __assign(__assign({}, currentState), { measureContainer: false });\n if (currentState.dataToMeasure) {\n if (currentState.resizeDirection === 'grow' && props.onGrowData) {\n nextState = __assign(__assign({}, nextState), _growDataUntilItDoesNotFit(currentState.dataToMeasure, props.onGrowData, getElementToMeasureDimension, props.onReduceData));\n }\n else {\n nextState = __assign(__assign({}, nextState), _shrinkContentsUntilTheyFit(currentState.dataToMeasure, props.onReduceData, getElementToMeasureDimension));\n }\n }\n return nextState;\n }\n /** Function that determines if we need to render content for measurement based on the measurement cache contents. */\n function shouldRenderDataForMeasurement(dataToMeasure) {\n if (!dataToMeasure || _measurementCache.getCachedMeasurement(dataToMeasure) !== undefined) {\n return false;\n }\n return true;\n }\n function getInitialResizeGroupState(data) {\n return {\n dataToMeasure: __assign({}, data),\n resizeDirection: 'grow',\n measureContainer: true,\n };\n }\n return {\n getNextState: getNextState,\n shouldRenderDataForMeasurement: shouldRenderDataForMeasurement,\n getInitialResizeGroupState: getInitialResizeGroupState,\n };\n};\n// Provides a context property that (if true) tells any child components that\n// they are only being used for measurement purposes and will not be visible.\nexport var MeasuredContext = React.createContext({ isMeasured: false });\n// Styles for the hidden div used for measurement\nvar hiddenDivStyles = { position: 'fixed', visibility: 'hidden' };\nvar hiddenParentStyles = { position: 'relative' };\nvar COMPONENT_NAME = 'ResizeGroup';\n/**\n * Use useReducer instead of userState because React is not batching the state updates\n * when state is set in callbacks of setTimeout or requestAnimationFrame.\n * See issue: https://github.com/facebook/react/issues/14259\n */\nfunction resizeDataReducer(state, action) {\n var _a;\n switch (action.type) {\n case 'resizeData':\n return __assign({}, action.value);\n case 'dataToMeasure':\n return __assign(__assign({}, state), { dataToMeasure: action.value, resizeDirection: 'grow', measureContainer: true });\n default:\n return __assign(__assign({}, state), (_a = {}, _a[action.type] = action.value, _a));\n }\n}\nfunction useResizeState(props, nextResizeGroupStateProvider, rootRef) {\n var initialStateData = useConst(function () { return nextResizeGroupStateProvider.getInitialResizeGroupState(props.data); });\n var _a = React.useReducer(resizeDataReducer, initialStateData), resizeData = _a[0], dispatchResizeDataAction = _a[1];\n // Reset state when new data is provided\n React.useEffect(function () {\n dispatchResizeDataAction({\n type: 'dataToMeasure',\n value: props.data,\n });\n }, [props.data]);\n // Because it's possible that we may force more than one re-render per animation frame, we\n // want to make sure that the RAF request is using the most recent data.\n var stateRef = React.useRef(initialStateData);\n stateRef.current = __assign({}, resizeData);\n var updateResizeState = React.useCallback(function (nextState) {\n if (nextState) {\n dispatchResizeDataAction({\n type: 'resizeData',\n value: nextState,\n });\n }\n }, []);\n var remeasure = React.useCallback(function () {\n if (rootRef.current) {\n dispatchResizeDataAction({\n type: 'measureContainer',\n value: true,\n });\n }\n }, [rootRef]);\n return [stateRef, updateResizeState, remeasure];\n}\nfunction useResizingBehavior(props, rootRef) {\n var nextResizeGroupStateProvider = useConst(getNextResizeGroupStateProvider);\n // A div that can be used for the initial measurement so that we can avoid mounting a second instance\n // of the component being measured for the initial render.\n var initialHiddenDiv = React.useRef(null);\n // A hidden div that is used for mounting a new instance of the component for measurement in a hidden\n // div without unmounting the currently visible content.\n var updateHiddenDiv = React.useRef(null);\n // Tracks if any content has been rendered to the user. This enables us to do some performance optimizations\n // for the initial render.\n var hasRenderedContent = React.useRef(false);\n var async = useAsync();\n var _a = useResizeState(props, nextResizeGroupStateProvider, rootRef), stateRef = _a[0], updateResizeState = _a[1], remeasure = _a[2];\n React.useEffect(function () {\n var _a;\n if (stateRef.current.renderedData) {\n hasRenderedContent.current = true;\n (_a = props.dataDidRender) === null || _a === void 0 ? void 0 : _a.call(props, stateRef.current.renderedData);\n }\n });\n React.useEffect(function () {\n async.requestAnimationFrame(function () {\n var containerDimension = undefined;\n if (stateRef.current.measureContainer && rootRef.current) {\n var boundingRect = rootRef.current.getBoundingClientRect();\n containerDimension =\n props.direction === ResizeGroupDirection.vertical ? boundingRect.height : boundingRect.width;\n }\n var nextState = nextResizeGroupStateProvider.getNextState(props, stateRef.current, function () {\n var refToMeasure = !hasRenderedContent.current ? initialHiddenDiv : updateHiddenDiv;\n if (!refToMeasure.current) {\n return 0;\n }\n var measuredBoundingRect = refToMeasure.current.getBoundingClientRect();\n return props.direction === ResizeGroupDirection.vertical\n ? measuredBoundingRect.height\n : measuredBoundingRect.width;\n }, containerDimension);\n updateResizeState(nextState);\n }, rootRef.current);\n });\n var win = useWindow();\n useOnEvent(win, 'resize', async.debounce(remeasure, RESIZE_DELAY, { leading: true }));\n var dataNeedsMeasuring = nextResizeGroupStateProvider.shouldRenderDataForMeasurement(stateRef.current.dataToMeasure);\n var isInitialMeasure = !hasRenderedContent.current && dataNeedsMeasuring;\n return [\n stateRef.current.dataToMeasure,\n stateRef.current.renderedData,\n remeasure,\n initialHiddenDiv,\n updateHiddenDiv,\n dataNeedsMeasuring,\n isInitialMeasure,\n ];\n}\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: COMPONENT_NAME,\n props: props,\n deprecations: { styles: 'className' },\n });\n }\n}\nvar measuredContextValue = { isMeasured: true };\nexport var ResizeGroupBase = React.forwardRef(function (props, forwardedRef) {\n var rootRef = React.useRef(null);\n // The root div which is the container inside of which we are trying to fit content.\n var mergedRootRef = useMergedRefs(rootRef, forwardedRef);\n var _a = useResizingBehavior(props, rootRef), dataToMeasure = _a[0], renderedData = _a[1], remeasure = _a[2], initialHiddenDiv = _a[3], updateHiddenDiv = _a[4], dataNeedsMeasuring = _a[5], isInitialMeasure = _a[6];\n React.useImperativeHandle(props.componentRef, function () { return ({ remeasure: remeasure }); }, [remeasure]);\n useDebugWarnings(props);\n var className = props.className, onRenderData = props.onRenderData;\n var divProps = getNativeProps(props, divProperties, ['data']);\n // We only ever render the final content to the user. All measurements are done in a hidden div.\n // For the initial render, we want this to be as fast as possible, so we need to make sure that we only mount one\n // version of the component for measurement and the final render. For renders that update what is on screen, we\n // want to make sure that there are no jarring effects such as the screen flashing as we apply scaling steps for\n // measurement. In the update case, we mount a second version of the component just for measurement purposes and\n // leave the rendered content untouched until we know the next state to show to the user.\n return (React.createElement(\"div\", __assign({}, divProps, { className: className, ref: mergedRootRef }),\n React.createElement(\"div\", { style: hiddenParentStyles },\n dataNeedsMeasuring && !isInitialMeasure && (React.createElement(\"div\", { style: hiddenDivStyles, ref: updateHiddenDiv },\n React.createElement(MeasuredContext.Provider, { value: measuredContextValue }, onRenderData(dataToMeasure)))),\n React.createElement(\"div\", { ref: initialHiddenDiv, style: isInitialMeasure ? hiddenDivStyles : undefined, \"data-automation-id\": \"visibleContent\" }, isInitialMeasure ? onRenderData(dataToMeasure) : renderedData && onRenderData(renderedData)))));\n});\nResizeGroupBase.displayName = 'ResizeGroupBase';\n//# sourceMappingURL=ResizeGroup.base.js.map","import { ResizeGroupBase } from './ResizeGroup.base';\nexport var ResizeGroup = ResizeGroupBase;\n//# sourceMappingURL=ResizeGroup.js.map","import { __assign, __extends, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { initializeComponentRef, getRTL, classNamesFunction, getNativeProps, htmlElementProperties, } from '../../Utilities';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Link } from '../../Link';\nimport { Icon } from '../../Icon';\nimport { IconButton } from '../../Button';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ResizeGroup } from '../../ResizeGroup';\nimport { TooltipHost, TooltipOverflowMode } from '../../Tooltip';\nimport { composeRenderFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OVERFLOW_KEY = 'overflow';\nvar nullFunction = function () { return null; };\nvar nonActionableItemProps = {\n styles: function (props) {\n var theme = props.theme;\n return {\n root: {\n selectors: {\n '&.is-disabled': {\n color: theme.semanticColors.bodyText,\n },\n },\n },\n };\n },\n};\n/**\n * {@docCategory Breadcrumb}\n */\nvar BreadcrumbBase = /** @class */ (function (_super) {\n __extends(BreadcrumbBase, _super);\n function BreadcrumbBase(props) {\n var _this = _super.call(this, props) || this;\n _this._focusZone = React.createRef();\n /**\n * Remove the first rendered item past the overlow point and put it and the end the overflow set.\n */\n _this._onReduceData = function (data) {\n var renderedItems = data.renderedItems, renderedOverflowItems = data.renderedOverflowItems;\n var overflowIndex = data.props.overflowIndex;\n var movedItem = renderedItems[overflowIndex];\n if (!movedItem) {\n return undefined;\n }\n renderedItems = __spreadArray([], renderedItems, true);\n renderedItems.splice(overflowIndex, 1);\n renderedOverflowItems = __spreadArray(__spreadArray([], renderedOverflowItems, true), [movedItem], false);\n return __assign(__assign({}, data), { renderedItems: renderedItems, renderedOverflowItems: renderedOverflowItems });\n };\n /**\n * Remove the last item of the overflow set and insert the item as the start of the rendered set past the overflow\n * point.\n */\n _this._onGrowData = function (data) {\n var renderedItems = data.renderedItems, renderedOverflowItems = data.renderedOverflowItems;\n var _a = data.props, overflowIndex = _a.overflowIndex, maxDisplayedItems = _a.maxDisplayedItems;\n renderedOverflowItems = __spreadArray([], renderedOverflowItems, true);\n var movedItem = renderedOverflowItems.pop();\n if (!movedItem || renderedItems.length >= maxDisplayedItems) {\n return undefined;\n }\n renderedItems = __spreadArray([], renderedItems, true);\n renderedItems.splice(overflowIndex, 0, movedItem);\n return __assign(__assign({}, data), { renderedItems: renderedItems, renderedOverflowItems: renderedOverflowItems });\n };\n _this._onRenderBreadcrumb = function (data) {\n var _a = data.props, ariaLabel = _a.ariaLabel, _b = _a.dividerAs, DividerType = _b === void 0 ? Icon : _b, onRenderItem = _a.onRenderItem, overflowAriaLabel = _a.overflowAriaLabel, overflowIndex = _a.overflowIndex, onRenderOverflowIcon = _a.onRenderOverflowIcon, overflowButtonAs = _a.overflowButtonAs;\n var renderedOverflowItems = data.renderedOverflowItems, renderedItems = data.renderedItems;\n var contextualItems = renderedOverflowItems.map(function (item) {\n var isActionable = !!(item.onClick || item.href);\n return {\n text: item.text,\n name: item.text,\n key: item.key,\n onClick: item.onClick ? _this._onBreadcrumbClicked.bind(_this, item) : null,\n href: item.href,\n disabled: !isActionable,\n itemProps: isActionable ? undefined : nonActionableItemProps,\n };\n });\n // Find index of last rendered item so the divider icon\n // knows not to render on that item\n var lastItemIndex = renderedItems.length - 1;\n var hasOverflowItems = renderedOverflowItems && renderedOverflowItems.length !== 0;\n var itemElements = renderedItems.map(function (item, index) {\n var finalOnRenderItem = _this._onRenderItem;\n if (item.onRender) {\n finalOnRenderItem = composeRenderFunction(item.onRender, finalOnRenderItem);\n }\n if (onRenderItem) {\n finalOnRenderItem = composeRenderFunction(onRenderItem, finalOnRenderItem);\n }\n return (React.createElement(\"li\", { className: _this._classNames.listItem, key: item.key || String(index) },\n finalOnRenderItem(item),\n (index !== lastItemIndex || (hasOverflowItems && index === overflowIndex - 1)) && (React.createElement(DividerType, { className: _this._classNames.chevron, iconName: getRTL(_this.props.theme) ? 'ChevronLeft' : 'ChevronRight', item: item }))));\n });\n if (hasOverflowItems) {\n var iconProps = !onRenderOverflowIcon ? { iconName: 'More' } : {};\n var onRenderMenuIcon = onRenderOverflowIcon ? onRenderOverflowIcon : nullFunction;\n var OverflowButton = overflowButtonAs ? overflowButtonAs : IconButton;\n itemElements.splice(overflowIndex, 0, React.createElement(\"li\", { className: _this._classNames.overflow, key: OVERFLOW_KEY },\n React.createElement(OverflowButton, { className: _this._classNames.overflowButton, iconProps: iconProps, role: \"button\", \"aria-haspopup\": \"true\", ariaLabel: overflowAriaLabel, onRenderMenuIcon: onRenderMenuIcon, menuProps: {\n items: contextualItems,\n directionalHint: DirectionalHint.bottomLeftEdge,\n } }),\n overflowIndex !== lastItemIndex + 1 && (React.createElement(DividerType, { className: _this._classNames.chevron, iconName: getRTL(_this.props.theme) ? 'ChevronLeft' : 'ChevronRight', item: renderedOverflowItems[renderedOverflowItems.length - 1] }))));\n }\n var nativeProps = getNativeProps(_this.props, htmlElementProperties, [\n 'className',\n ]);\n return (React.createElement(\"div\", __assign({ className: _this._classNames.root, role: \"navigation\", \"aria-label\": ariaLabel }, nativeProps),\n React.createElement(FocusZone, __assign({ componentRef: _this._focusZone, direction: FocusZoneDirection.horizontal }, _this.props.focusZoneProps),\n React.createElement(\"ol\", { className: _this._classNames.list }, itemElements))));\n };\n _this._onRenderItem = function (item) {\n if (!item) {\n return null;\n }\n var as = item.as, href = item.href, onClick = item.onClick, isCurrentItem = item.isCurrentItem, text = item.text, onRenderContent = item.onRenderContent, additionalProps = __rest(item, [\"as\", \"href\", \"onClick\", \"isCurrentItem\", \"text\", \"onRenderContent\"]);\n var finalOnRenderContent = defaultOnRenderCrumbContent;\n if (onRenderContent) {\n finalOnRenderContent = composeRenderFunction(onRenderContent, finalOnRenderContent);\n }\n if (_this.props.onRenderItemContent) {\n finalOnRenderContent = composeRenderFunction(_this.props.onRenderItemContent, finalOnRenderContent);\n }\n if (onClick || href) {\n return (React.createElement(Link, __assign({}, additionalProps, { as: as, className: _this._classNames.itemLink, href: href, \"aria-current\": isCurrentItem ? 'page' : undefined, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: _this._onBreadcrumbClicked.bind(_this, item) }),\n React.createElement(TooltipHost, __assign({ content: text, overflowMode: TooltipOverflowMode.Parent }, _this.props.tooltipHostProps), finalOnRenderContent(item))));\n }\n else {\n var Tag = as || 'span';\n return (React.createElement(Tag, __assign({}, additionalProps, { className: _this._classNames.item }),\n React.createElement(TooltipHost, __assign({ content: text, overflowMode: TooltipOverflowMode.Parent }, _this.props.tooltipHostProps), finalOnRenderContent(item))));\n }\n };\n _this._onBreadcrumbClicked = function (item, ev) {\n if (item.onClick) {\n item.onClick(ev, item);\n }\n };\n initializeComponentRef(_this);\n _this._validateProps(props);\n return _this;\n }\n /**\n * Sets focus to the first breadcrumb link.\n */\n BreadcrumbBase.prototype.focus = function () {\n if (this._focusZone.current) {\n this._focusZone.current.focus();\n }\n };\n BreadcrumbBase.prototype.render = function () {\n this._validateProps(this.props);\n var _a = this.props, _b = _a.onReduceData, onReduceData = _b === void 0 ? this._onReduceData : _b, _c = _a.onGrowData, onGrowData = _c === void 0 ? this._onGrowData : _c, overflowIndex = _a.overflowIndex, maxDisplayedItems = _a.maxDisplayedItems, items = _a.items, className = _a.className, theme = _a.theme, styles = _a.styles;\n var renderedItems = __spreadArray([], items, true);\n var renderedOverflowItems = renderedItems.splice(overflowIndex, renderedItems.length - maxDisplayedItems);\n var breadcrumbData = {\n props: this.props,\n renderedItems: renderedItems,\n renderedOverflowItems: renderedOverflowItems,\n };\n this._classNames = getClassNames(styles, {\n className: className,\n theme: theme,\n });\n return (React.createElement(ResizeGroup, { onRenderData: this._onRenderBreadcrumb, onReduceData: onReduceData, onGrowData: onGrowData, data: breadcrumbData }));\n };\n /**\n * Validate incoming props\n * @param props - Props to validate\n */\n BreadcrumbBase.prototype._validateProps = function (props) {\n var maxDisplayedItems = props.maxDisplayedItems, overflowIndex = props.overflowIndex, items = props.items;\n if (overflowIndex < 0 ||\n (maxDisplayedItems > 1 && overflowIndex > maxDisplayedItems - 1) ||\n (items.length > 0 && overflowIndex > items.length - 1)) {\n throw new Error('Breadcrumb: overflowIndex out of range');\n }\n };\n BreadcrumbBase.defaultProps = {\n items: [],\n maxDisplayedItems: 999,\n overflowIndex: 0,\n };\n return BreadcrumbBase;\n}(React.Component));\nexport { BreadcrumbBase };\nfunction defaultOnRenderCrumbContent(item) {\n return item ? React.createElement(React.Fragment, null, item.text) : null;\n}\n//# sourceMappingURL=Breadcrumb.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, ScreenWidthMaxMedium, ScreenWidthMaxSmall, ScreenWidthMinMedium, getFocusStyle, getScreenSelector, getGlobalClassNames, FontWeights, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { IsFocusVisibleClassName } from '../../Utilities';\nvar GlobalClassNames = {\n root: 'ms-Breadcrumb',\n list: 'ms-Breadcrumb-list',\n listItem: 'ms-Breadcrumb-listItem',\n chevron: 'ms-Breadcrumb-chevron',\n overflow: 'ms-Breadcrumb-overflow',\n overflowButton: 'ms-Breadcrumb-overflowButton',\n itemLink: 'ms-Breadcrumb-itemLink',\n item: 'ms-Breadcrumb-item',\n};\nvar SingleLineTextStyle = {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n};\nvar overflowButtonFontSize = 16;\nvar chevronSmallFontSize = 8;\nvar itemLineHeight = 36;\nvar itemFontSize = 18;\nvar MinimumScreenSelector = getScreenSelector(0, ScreenWidthMaxSmall);\nvar MediumScreenSelector = getScreenSelector(ScreenWidthMinMedium, ScreenWidthMaxMedium);\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n var className = props.className, theme = props.theme;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n // Tokens\n var itemBackgroundHoveredColor = semanticColors.menuItemBackgroundHovered;\n var itemBackgroundPressedColor = semanticColors.menuItemBackgroundPressed;\n var itemTextColor = palette.neutralSecondary;\n var itemTextFontWeight = FontWeights.regular;\n var itemTextHoveredOrPressedColor = palette.neutralPrimary;\n var itemLastChildTextColor = palette.neutralPrimary;\n var itemLastChildTextFontWeight = FontWeights.semibold;\n var chevronButtonColor = palette.neutralSecondary;\n var overflowButtonColor = palette.neutralSecondary;\n var lastChildItemStyles = {\n fontWeight: itemLastChildTextFontWeight,\n color: itemLastChildTextColor,\n };\n var itemStateSelectors = {\n ':hover': {\n color: itemTextHoveredOrPressedColor,\n backgroundColor: itemBackgroundHoveredColor,\n cursor: 'pointer',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n color: 'Highlight',\n backgroundColor: 'transparent',\n },\n _a),\n },\n ':active': {\n backgroundColor: itemBackgroundPressedColor,\n color: itemTextHoveredOrPressedColor,\n },\n '&:active:hover': {\n color: itemTextHoveredOrPressedColor,\n backgroundColor: itemBackgroundPressedColor,\n },\n '&:active, &:hover, &:active:hover': {\n textDecoration: 'none',\n },\n };\n var commonItemStyles = {\n color: itemTextColor,\n padding: '0 8px',\n lineHeight: itemLineHeight,\n fontSize: itemFontSize,\n fontWeight: itemTextFontWeight,\n };\n var overflowButtonHighContrastFocus = {\n left: 1,\n right: 1,\n top: 1,\n bottom: 1,\n };\n return {\n root: [\n classNames.root,\n fonts.medium,\n {\n margin: '11px 0 1px',\n },\n className,\n ],\n list: [\n classNames.list,\n {\n whiteSpace: 'nowrap',\n padding: 0,\n margin: 0,\n display: 'flex',\n alignItems: 'stretch',\n },\n ],\n listItem: [\n classNames.listItem,\n {\n listStyleType: 'none',\n margin: '0',\n padding: '0',\n display: 'flex',\n position: 'relative',\n alignItems: 'center',\n selectors: {\n '&:last-child .ms-Breadcrumb-itemLink': __assign(__assign({}, lastChildItemStyles), (_b = {}, _b[HighContrastSelector] = {\n MsHighContrastAdjust: 'auto',\n forcedColorAdjust: 'auto',\n }, _b)),\n '&:last-child .ms-Breadcrumb-item': lastChildItemStyles,\n },\n },\n ],\n chevron: [\n classNames.chevron,\n {\n color: chevronButtonColor,\n fontSize: fonts.small.fontSize,\n selectors: (_c = {},\n _c[HighContrastSelector] = __assign({ color: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _c[MediumScreenSelector] = {\n fontSize: chevronSmallFontSize,\n },\n _c[MinimumScreenSelector] = {\n fontSize: chevronSmallFontSize,\n },\n _c),\n },\n ],\n overflow: [\n classNames.overflow,\n {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n },\n ],\n overflowButton: [\n classNames.overflowButton,\n getFocusStyle(theme, { highContrastStyle: overflowButtonHighContrastFocus }),\n SingleLineTextStyle,\n {\n fontSize: overflowButtonFontSize,\n color: overflowButtonColor,\n height: '100%',\n cursor: 'pointer',\n selectors: __assign(__assign({}, itemStateSelectors), (_d = {}, _d[MinimumScreenSelector] = {\n padding: '4px 6px',\n }, _d[MediumScreenSelector] = {\n fontSize: fonts.mediumPlus.fontSize,\n }, _d)),\n },\n ],\n itemLink: [\n classNames.itemLink,\n getFocusStyle(theme),\n SingleLineTextStyle,\n __assign(__assign({}, commonItemStyles), { selectors: __assign((_e = { ':focus': {\n color: palette.neutralDark,\n } }, _e[\".\".concat(IsFocusVisibleClassName, \" &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus\")] = {\n outline: \"none\",\n }, _e), itemStateSelectors) }),\n ],\n item: [\n classNames.item,\n __assign(__assign({}, commonItemStyles), { selectors: {\n ':hover': {\n cursor: 'default',\n },\n } }),\n ],\n };\n};\n//# sourceMappingURL=Breadcrumb.styles.js.map","import { styled } from '../../Utilities';\nimport { BreadcrumbBase } from './Breadcrumb.base';\nimport { getStyles } from './Breadcrumb.styles';\nexport var Breadcrumb = styled(BreadcrumbBase, getStyles, undefined, { scope: 'Breadcrumb' });\n//# sourceMappingURL=Breadcrumb.js.map","/**\n * The days of the week\n * {@docCategory DateTimeUtilities}\n */\nexport var DayOfWeek;\n(function (DayOfWeek) {\n DayOfWeek[DayOfWeek[\"Sunday\"] = 0] = \"Sunday\";\n DayOfWeek[DayOfWeek[\"Monday\"] = 1] = \"Monday\";\n DayOfWeek[DayOfWeek[\"Tuesday\"] = 2] = \"Tuesday\";\n DayOfWeek[DayOfWeek[\"Wednesday\"] = 3] = \"Wednesday\";\n DayOfWeek[DayOfWeek[\"Thursday\"] = 4] = \"Thursday\";\n DayOfWeek[DayOfWeek[\"Friday\"] = 5] = \"Friday\";\n DayOfWeek[DayOfWeek[\"Saturday\"] = 6] = \"Saturday\";\n})(DayOfWeek || (DayOfWeek = {}));\n/**\n * The months\n * {@docCategory DateTimeUtilities}\n */\nexport var MonthOfYear;\n(function (MonthOfYear) {\n MonthOfYear[MonthOfYear[\"January\"] = 0] = \"January\";\n MonthOfYear[MonthOfYear[\"February\"] = 1] = \"February\";\n MonthOfYear[MonthOfYear[\"March\"] = 2] = \"March\";\n MonthOfYear[MonthOfYear[\"April\"] = 3] = \"April\";\n MonthOfYear[MonthOfYear[\"May\"] = 4] = \"May\";\n MonthOfYear[MonthOfYear[\"June\"] = 5] = \"June\";\n MonthOfYear[MonthOfYear[\"July\"] = 6] = \"July\";\n MonthOfYear[MonthOfYear[\"August\"] = 7] = \"August\";\n MonthOfYear[MonthOfYear[\"September\"] = 8] = \"September\";\n MonthOfYear[MonthOfYear[\"October\"] = 9] = \"October\";\n MonthOfYear[MonthOfYear[\"November\"] = 10] = \"November\";\n MonthOfYear[MonthOfYear[\"December\"] = 11] = \"December\";\n})(MonthOfYear || (MonthOfYear = {}));\n/**\n * First week of the year settings types\n * {@docCategory DateTimeUtilities}\n */\nexport var FirstWeekOfYear;\n(function (FirstWeekOfYear) {\n FirstWeekOfYear[FirstWeekOfYear[\"FirstDay\"] = 0] = \"FirstDay\";\n FirstWeekOfYear[FirstWeekOfYear[\"FirstFullWeek\"] = 1] = \"FirstFullWeek\";\n FirstWeekOfYear[FirstWeekOfYear[\"FirstFourDayWeek\"] = 2] = \"FirstFourDayWeek\";\n})(FirstWeekOfYear || (FirstWeekOfYear = {}));\n/**\n * The supported date range types\n * {@docCategory DateTimeUtilities}\n */\nexport var DateRangeType;\n(function (DateRangeType) {\n DateRangeType[DateRangeType[\"Day\"] = 0] = \"Day\";\n DateRangeType[DateRangeType[\"Week\"] = 1] = \"Week\";\n DateRangeType[DateRangeType[\"Month\"] = 2] = \"Month\";\n DateRangeType[DateRangeType[\"WorkWeek\"] = 3] = \"WorkWeek\";\n})(DateRangeType || (DateRangeType = {}));\nexport var DAYS_IN_WEEK = 7;\n//# sourceMappingURL=dateValues.js.map","export var TimeConstants = {\n MillisecondsInOneDay: 86400000,\n MillisecondsIn1Sec: 1000,\n MillisecondsIn1Min: 60000,\n MillisecondsIn30Mins: 1800000,\n MillisecondsIn1Hour: 3600000,\n MinutesInOneDay: 1440,\n MinutesInOneHour: 60,\n DaysInOneWeek: 7,\n MonthInOneYear: 12,\n HoursInOneDay: 24,\n SecondsInOneMinute: 60,\n OffsetTo24HourFormat: 12,\n /**\n * Matches a time string. Groups:\n * 1. hours (with or without leading 0)\n * 2. minutes\n * 3. seconds (optional)\n * 4. meridiem (am/pm, case-insensitive, optional)\n */\n TimeFormatRegex: /^(\\d\\d?):(\\d\\d):?(\\d\\d)? ?([ap]m)?/i,\n};\n//# sourceMappingURL=timeConstants.js.map","import { DayOfWeek, MonthOfYear, FirstWeekOfYear, DateRangeType } from '../dateValues/dateValues';\nimport { TimeConstants } from '../dateValues/timeConstants';\n/**\n * Returns a date offset from the given date by the specified number of days.\n * @param date - The origin date\n * @param days - The number of days to offset. 'days' can be negative.\n * @returns A new Date object offset from the origin date by the given number of days\n */\nexport function addDays(date, days) {\n var result = new Date(date.getTime());\n result.setDate(result.getDate() + days);\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of weeks.\n * @param date - The origin date\n * @param weeks - The number of weeks to offset. 'weeks' can be negative.\n * @returns A new Date object offset from the origin date by the given number of weeks\n */\nexport function addWeeks(date, weeks) {\n return addDays(date, weeks * TimeConstants.DaysInOneWeek);\n}\n/**\n * Returns a date offset from the given date by the specified number of months.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param months - The number of months to offset. 'months' can be negative.\n * @returns A new Date object offset from the origin date by the given number of months\n */\nexport function addMonths(date, months) {\n var result = new Date(date.getTime());\n var newMonth = result.getMonth() + months;\n result.setMonth(newMonth);\n // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n if (result.getMonth() !==\n ((newMonth % TimeConstants.MonthInOneYear) + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n return result;\n}\n/**\n * Returns a date offset from the given date by the specified number of years.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param years - The number of years to offset. 'years' can be negative.\n * @returns A new Date object offset from the origin date by the given number of years\n */\nexport function addYears(date, years) {\n var result = new Date(date.getTime());\n result.setFullYear(date.getFullYear() + years);\n // We want to maintain the same day-of-month, but that may not be possible if the new month doesn't have enough days.\n // Loop until we back up to a day the new month has.\n // (Weird modulo math is due to Javascript's treatment of negative numbers in modulo)\n if (result.getMonth() !==\n ((date.getMonth() % TimeConstants.MonthInOneYear) + TimeConstants.MonthInOneYear) % TimeConstants.MonthInOneYear) {\n result = addDays(result, -result.getDate());\n }\n return result;\n}\n/**\n * Returns a date that is the first day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the month.\n */\nexport function getMonthStart(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the month of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the month.\n */\nexport function getMonthEnd(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the first day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the first day of the year.\n */\nexport function getYearStart(date) {\n return new Date(date.getFullYear(), 0, 1, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is the last day of the year of the provided date.\n * @param date - The origin date\n * @returns A new Date object with the day set to the last day of the year.\n */\nexport function getYearEnd(date) {\n return new Date(date.getFullYear() + 1, 0, 0, 0, 0, 0, 0);\n}\n/**\n * Returns a date that is a copy of the given date, aside from the month changing to the given month.\n * The method tries to preserve the day-of-month; however, if the new month does not have enough days\n * to contain the original day-of-month, we'll use the last day of the new month.\n * @param date - The origin date\n * @param month - The 0-based index of the month to set on the date.\n * @returns A new Date object with the given month set.\n */\nexport function setMonth(date, month) {\n return addMonths(date, month - date.getMonth());\n}\n/**\n * Compares two dates, and returns true if the two dates (not accounting for time-of-day) are equal.\n * @returns True if the two dates represent the same date (regardless of time-of-day), false otherwise.\n */\nexport function compareDates(date1, date2) {\n if (!date1 && !date2) {\n return true;\n }\n else if (!date1 || !date2) {\n return false;\n }\n else {\n return (date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate());\n }\n}\n/**\n * Compare the date parts of two dates\n * @param date1 - The first date to compare\n * @param date2 - The second date to compare\n * @returns A negative value if date1 is earlier than date2, 0 if the dates are equal, or a positive value\n * if date1 is later than date2.\n */\nexport function compareDatePart(date1, date2) {\n return getDatePartHashValue(date1) - getDatePartHashValue(date2);\n}\n/**\n * Gets the date range array including the specified date. The date range array is calculated as the list\n * of dates accounting for the specified first day of the week and date range type.\n * @param date - The input date\n * @param dateRangeType - The desired date range type, i.e., day, week, month, etc.\n * @param firstDayOfWeek - The first day of the week.\n * @param workWeekDays - The allowed days in work week. If not provided, assumes all days are allowed.\n * @param daysToSelectInDayView - The number of days to include when using dateRangeType === DateRangeType.Day\n * for multiday view. Defaults to 1\n * @returns An array of dates representing the date range containing the specified date.\n */\nexport function getDateRangeArray(date, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView) {\n if (daysToSelectInDayView === void 0) { daysToSelectInDayView = 1; }\n var datesArray = [];\n var startDate;\n var endDate = null;\n if (!workWeekDays) {\n workWeekDays = [DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday];\n }\n daysToSelectInDayView = Math.max(daysToSelectInDayView, 1);\n switch (dateRangeType) {\n case DateRangeType.Day:\n startDate = getDatePart(date);\n endDate = addDays(startDate, daysToSelectInDayView);\n break;\n case DateRangeType.Week:\n case DateRangeType.WorkWeek:\n startDate = getStartDateOfWeek(getDatePart(date), firstDayOfWeek);\n endDate = addDays(startDate, TimeConstants.DaysInOneWeek);\n break;\n case DateRangeType.Month:\n startDate = new Date(date.getFullYear(), date.getMonth(), 1);\n endDate = addMonths(startDate, 1);\n break;\n default:\n throw new Error('Unexpected object: ' + dateRangeType);\n }\n // Populate the dates array with the dates in range\n var nextDate = startDate;\n do {\n if (dateRangeType !== DateRangeType.WorkWeek) {\n // push all days not in work week view\n datesArray.push(nextDate);\n }\n else if (workWeekDays.indexOf(nextDate.getDay()) !== -1) {\n datesArray.push(nextDate);\n }\n nextDate = addDays(nextDate, 1);\n } while (!compareDates(nextDate, endDate));\n return datesArray;\n}\n/**\n * Checks whether the specified date is in the given date range.\n * @param date - The origin date\n * @param dateRange - An array of dates to do the lookup on\n * @returns True if the date matches one of the dates in the specified array, false otherwise.\n */\nexport function isInDateRangeArray(date, dateRange) {\n for (var _i = 0, dateRange_1 = dateRange; _i < dateRange_1.length; _i++) {\n var dateInRange = dateRange_1[_i];\n if (compareDates(date, dateInRange)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param navigatedDate - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The weeks number array for the current month.\n */\nexport function getWeekNumbersInMonth(weeksInMonth, firstDayOfWeek, firstWeekOfYear, navigatedDate) {\n var selectedYear = navigatedDate.getFullYear();\n var selectedMonth = navigatedDate.getMonth();\n var dayOfMonth = 1;\n var fistDayOfMonth = new Date(selectedYear, selectedMonth, dayOfMonth);\n var endOfFirstWeek = dayOfMonth +\n (firstDayOfWeek + TimeConstants.DaysInOneWeek - 1) -\n adjustWeekDay(firstDayOfWeek, fistDayOfMonth.getDay());\n var endOfWeekRange = new Date(selectedYear, selectedMonth, endOfFirstWeek);\n dayOfMonth = endOfWeekRange.getDate();\n var weeksArray = [];\n for (var i = 0; i < weeksInMonth; i++) {\n // Get week number for end of week\n weeksArray.push(getWeekNumber(endOfWeekRange, firstDayOfWeek, firstWeekOfYear));\n dayOfMonth += TimeConstants.DaysInOneWeek;\n endOfWeekRange = new Date(selectedYear, selectedMonth, dayOfMonth);\n }\n return weeksArray;\n}\n/**\n * Returns the week number for a date.\n * Week numbers are 1 - 52 (53) in a year\n * @param date - A date to find the week number for.\n * @param firstDayOfWeek - The first day of the week (0-6, Sunday = 0)\n * @param firstWeekOfYear - The first week of the year (1-2)\n * @returns The week's number in the year.\n */\nexport function getWeekNumber(date, firstDayOfWeek, firstWeekOfYear) {\n // First four-day week of the year - minumum days count\n var fourDayWeek = 4;\n switch (firstWeekOfYear) {\n case FirstWeekOfYear.FirstFullWeek:\n return getWeekOfYearFullDays(date, firstDayOfWeek, TimeConstants.DaysInOneWeek);\n case FirstWeekOfYear.FirstFourDayWeek:\n return getWeekOfYearFullDays(date, firstDayOfWeek, fourDayWeek);\n default:\n return getFirstDayWeekOfYear(date, firstDayOfWeek);\n }\n}\n/**\n * Gets the date for the first day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\nexport function getStartDateOfWeek(date, firstDayOfWeek) {\n var daysOffset = firstDayOfWeek - date.getDay();\n if (daysOffset > 0) {\n // If first day of week is > date, go 1 week back, to ensure resulting date is in the past.\n daysOffset -= TimeConstants.DaysInOneWeek;\n }\n return addDays(date, daysOffset);\n}\n/**\n * Gets the date for the last day of the week based on the given date assuming\n * the specified first day of the week.\n * @param date - The date to find the beginning of the week date for.\n * @returns A new date object representing the first day of the week containing the input date.\n */\nexport function getEndDateOfWeek(date, firstDayOfWeek) {\n var lastDayOfWeek = firstDayOfWeek - 1 >= 0 ? firstDayOfWeek - 1 : TimeConstants.DaysInOneWeek - 1;\n var daysOffset = lastDayOfWeek - date.getDay();\n if (daysOffset < 0) {\n // If last day of week is < date, go 1 week forward, to ensure resulting date is in the future.\n daysOffset += TimeConstants.DaysInOneWeek;\n }\n return addDays(date, daysOffset);\n}\n/**\n * Gets a new date with the time portion zeroed out, i.e., set to midnight\n * @param date - The origin date\n * @returns A new date with the time set to midnight\n */\nfunction getDatePart(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\n/**\n * Helper function to assist in date comparisons\n */\nexport function getDatePartHashValue(date) {\n // Generate date hash value created as sum of Date (up to 31 = 5 bits), Month (up to 11 = 4 bits) and Year.\n // eslint-disable-next-line no-bitwise\n return date.getDate() + (date.getMonth() << 5) + (date.getFullYear() << 9);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns week number for a date.\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param numberOfFullDays - week settings.\n * @returns The week's number in the year.\n */\nfunction getWeekOfYearFullDays(date, firstDayOfWeek, numberOfFullDays) {\n var dayOfYear = getDayOfYear(date) - 1;\n var num = date.getDay() - (dayOfYear % TimeConstants.DaysInOneWeek);\n var lastDayOfPrevYear = new Date(date.getFullYear() - 1, MonthOfYear.December, 31);\n var daysInYear = getDayOfYear(lastDayOfPrevYear) - 1;\n var num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n if (num2 !== 0 && num2 >= numberOfFullDays) {\n num2 -= TimeConstants.DaysInOneWeek;\n }\n var num3 = dayOfYear - num2;\n if (num3 < 0) {\n num -= daysInYear % TimeConstants.DaysInOneWeek;\n num2 = (firstDayOfWeek - num + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n if (num2 !== 0 && num2 + 1 >= numberOfFullDays) {\n num2 -= TimeConstants.DaysInOneWeek;\n }\n num3 = daysInYear - num2;\n }\n return Math.floor(num3 / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns week number for a date.\n * @param date - current selected date.\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @returns The week's number in the year.\n */\nfunction getFirstDayWeekOfYear(date, firstDayOfWeek) {\n var num = getDayOfYear(date) - 1;\n var num2 = date.getDay() - (num % TimeConstants.DaysInOneWeek);\n var num3 = (num2 - firstDayOfWeek + 2 * TimeConstants.DaysInOneWeek) % TimeConstants.DaysInOneWeek;\n return Math.floor((num + num3) / TimeConstants.DaysInOneWeek + 1);\n}\n/**\n * Helper function for `getWeekNumber`.\n * Returns adjusted week day number when `firstDayOfWeek` is other than Sunday.\n * For Week Day Number comparison checks\n * @param firstDayOfWeek - The first day of week (0-6, Sunday = 0)\n * @param dateWeekDay - shifts number forward to 1 week in case passed as true\n * @returns The day of week adjusted to `firstDayOfWeek`; e.g. when `firstDayOfWeek` is Monday (1),\n * Sunday becomes 7.\n */\nfunction adjustWeekDay(firstDayOfWeek, dateWeekDay) {\n return firstDayOfWeek !== DayOfWeek.Sunday && dateWeekDay < firstDayOfWeek\n ? dateWeekDay + TimeConstants.DaysInOneWeek\n : dateWeekDay;\n}\n/**\n * Returns the day number for a date in a year:\n * the number of days since January 1st in the particular year.\n * @param date - A date to find the day number for.\n * @returns The day's number in the year.\n */\nfunction getDayOfYear(date) {\n var month = date.getMonth();\n var year = date.getFullYear();\n var daysUntilDate = 0;\n for (var i = 0; i < month; i++) {\n daysUntilDate += daysInMonth(i + 1, year);\n }\n daysUntilDate += date.getDate();\n return daysUntilDate;\n}\n/**\n * Returns the number of days in the month\n * @param month - The month number to target (months 1-12).\n * @param year - The year to target.\n * @returns The number of days in the month.\n */\nfunction daysInMonth(month, year) {\n return new Date(year, month, 0).getDate();\n}\n//# sourceMappingURL=dateMath.js.map","import { __assign } from \"tslib\";\n/**\n * Format date to a day string representation\n * @param date - input date to format\n */\nexport var formatDay = function (date) { return date.getDate().toString(); };\n/**\n * Format date to a month-day-year string\n * @param date - input date to format\n * @param strings - localized strings\n */\nexport var formatMonthDayYear = function (date, strings) {\n return strings.months[date.getMonth()] + ' ' + date.getDate() + ', ' + date.getFullYear();\n};\n/**\n * Format date to a month-year string\n * @param date - input date to format\n * @param strings - localized strings\n */\nexport var formatMonthYear = function (date, strings) {\n return strings.months[date.getMonth()] + ' ' + date.getFullYear();\n};\n/**\n * Format date to a month string\n * @param date - input date to format\n * @param strings - localized strings\n */\nexport var formatMonth = function (date, strings) { return strings.months[date.getMonth()]; };\n/**\n * Format date to a year string representation\n * @param date - input date to format\n */\nexport var formatYear = function (date) { return date.getFullYear().toString(); };\nexport var DEFAULT_DATE_GRID_STRINGS = {\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n};\nexport var DEFAULT_DATE_FORMATTING = {\n formatDay: formatDay,\n formatMonth: formatMonth,\n formatYear: formatYear,\n formatMonthDayYear: formatMonthDayYear,\n formatMonthYear: formatMonthYear,\n};\nexport var DEFAULT_CALENDAR_STRINGS = __assign(__assign({}, DEFAULT_DATE_GRID_STRINGS), { goToToday: 'Go to today', weekNumberFormatString: 'Week number {0}', prevMonthAriaLabel: 'Previous month', nextMonthAriaLabel: 'Next month', prevYearAriaLabel: 'Previous year', nextYearAriaLabel: 'Next year', prevYearRangeAriaLabel: 'Previous year range', nextYearRangeAriaLabel: 'Next year range', closeButtonAriaLabel: 'Close', selectedDateFormatString: 'Selected date {0}', todayDateFormatString: \"Today's date {0}\", monthPickerHeaderAriaLabel: '{0}, change year', yearPickerHeaderAriaLabel: '{0}, change month', dayMarkedAriaLabel: 'marked' });\n//# sourceMappingURL=dateFormatting.defaults.js.map","import { compareDatePart } from '../dateMath/dateMath';\n/**\n * Checks if `date` happens earlier than min date\n * @param date - date to check\n * @param options - object with min date to check against\n */\nexport var isBeforeMinDate = function (date, options) {\n var minDate = options.minDate;\n return minDate ? compareDatePart(minDate, date) >= 1 : false;\n};\n//# sourceMappingURL=isBeforeMinDate.js.map","import { compareDatePart } from '../dateMath/dateMath';\n/**\n * Checks if `date` happens later than max date\n * @param date - date to check\n * @param options - object with max date to check against\n */\nexport var isAfterMaxDate = function (date, options) {\n var maxDate = options.maxDate;\n return maxDate ? compareDatePart(date, maxDate) >= 1 : false;\n};\n//# sourceMappingURL=isAfterMaxDate.js.map","import { compareDates } from '../dateMath/dateMath';\nimport { isBeforeMinDate } from './isBeforeMinDate';\nimport { isAfterMaxDate } from './isAfterMaxDate';\n/**\n * Checks if `date` falls into the restricted `options`\n * @param date - date to check\n * @param options - restriction options (min date, max date and list of restricted dates)\n */\nexport var isRestrictedDate = function (date, options) {\n var restrictedDates = options.restrictedDates, minDate = options.minDate, maxDate = options.maxDate;\n if (!restrictedDates && !minDate && !maxDate) {\n return false;\n }\n var inRestrictedDates = restrictedDates && restrictedDates.some(function (rd) { return compareDates(rd, date); });\n return inRestrictedDates || isBeforeMinDate(date, options) || isAfterMaxDate(date, options);\n};\n//# sourceMappingURL=isRestrictedDate.js.map","import { __rest } from \"tslib\";\nimport { isRestrictedDate } from './isRestrictedDate';\nimport { isAfterMaxDate } from './isAfterMaxDate';\nimport { isBeforeMinDate } from './isBeforeMinDate';\nimport { compareDatePart, addDays } from '../dateMath/dateMath';\n/**\n * Returns closest available date given the restriction `options`, or undefined otherwise\n * @param options - list of search options\n */\nexport var findAvailableDate = function (options) {\n var targetDate = options.targetDate, initialDate = options.initialDate, direction = options.direction, restrictedDateOptions = __rest(options, [\"targetDate\", \"initialDate\", \"direction\"]);\n var availableDate = targetDate;\n // if the target date is available, return it immediately\n if (!isRestrictedDate(targetDate, restrictedDateOptions)) {\n return targetDate;\n }\n while (compareDatePart(initialDate, availableDate) !== 0 &&\n isRestrictedDate(availableDate, restrictedDateOptions) &&\n !isAfterMaxDate(availableDate, restrictedDateOptions) &&\n !isBeforeMinDate(availableDate, restrictedDateOptions)) {\n availableDate = addDays(availableDate, direction);\n }\n if (compareDatePart(initialDate, availableDate) !== 0 && !isRestrictedDate(availableDate, restrictedDateOptions)) {\n return availableDate;\n }\n return undefined;\n};\n//# sourceMappingURL=findAvailableDate.js.map","import { __spreadArray } from \"tslib\";\nimport { compareDatePart } from '../dateMath/dateMath';\n/**\n * Generates a list of dates, bounded by min and max dates\n * @param dateRange - input date range\n * @param minDate - min date to limit the range\n * @param maxDate - max date to limit the range\n */\nexport var getBoundedDateRange = function (dateRange, minDate, maxDate) {\n var boundedDateRange = __spreadArray([], dateRange, true);\n if (minDate) {\n boundedDateRange = boundedDateRange.filter(function (date) { return compareDatePart(date, minDate) >= 0; });\n }\n if (maxDate) {\n boundedDateRange = boundedDateRange.filter(function (date) { return compareDatePart(date, maxDate) <= 0; });\n }\n return boundedDateRange;\n};\n//# sourceMappingURL=getBoundedDateRange.js.map","/**\n * Returns whether provided week days are contiguous.\n * @param days - list of days in a week\n * @param isSingleWeek - decides whether the contiguous logic applies across week boundaries or not\n * @param firstDayOfWeek - decides which day of week is the first one in the order.\n */\nexport var isContiguous = function (days, isSingleWeek, firstDayOfWeek) {\n var daySet = new Set(days);\n var amountOfNoNeighbors = 0;\n for (var _i = 0, days_1 = days; _i < days_1.length; _i++) {\n var day = days_1[_i];\n var nextDay = (day + 1) % 7;\n if (!(daySet.has(nextDay) && (!isSingleWeek || firstDayOfWeek !== nextDay))) {\n amountOfNoNeighbors++;\n }\n }\n // In case the full week is provided, then each day has a neighbor\n //, otherwise the last day does not have a neighbor.\n return amountOfNoNeighbors < 2;\n};\n//# sourceMappingURL=isContiguous.js.map","import { DateRangeType } from '../dateValues/dateValues';\nimport { isContiguous } from './isContiguous';\n/**\n * Return corrected date range type, given `dateRangeType` and list of working days.\n * For non-contiguous working days and working week range type, returns general week range type.\n * For other cases returns input date range type.\n * @param dateRangeType - input type of range\n * @param workWeekDays - list of working days in a week\n */\nexport var getDateRangeTypeToUse = function (dateRangeType, workWeekDays, firstDayOfWeek) {\n if (workWeekDays && dateRangeType === DateRangeType.WorkWeek) {\n if (!isContiguous(workWeekDays, true, firstDayOfWeek) || workWeekDays.length === 0) {\n return DateRangeType.Week;\n }\n }\n return dateRangeType;\n};\n//# sourceMappingURL=getDateRangeTypeToUse.js.map","import { addDays, compareDates, getDateRangeArray, isInDateRangeArray } from '../dateMath/dateMath';\nimport { DAYS_IN_WEEK } from '../dateValues/dateValues';\nimport { getDateRangeTypeToUse } from './getDateRangeTypeToUse';\nimport { getBoundedDateRange } from './getBoundedDateRange';\nimport { isRestrictedDate } from './isRestrictedDate';\n/**\n * Generates a grid of days, given the `options`.\n * Returns one additional week at the begining from the previous range\n * and one at the end from the future range\n * @param options - parameters to specify date related restrictions for the resulting grid\n */\nexport var getDayGrid = function (options) {\n var selectedDate = options.selectedDate, dateRangeType = options.dateRangeType, firstDayOfWeek = options.firstDayOfWeek, today = options.today, minDate = options.minDate, maxDate = options.maxDate, weeksToShow = options.weeksToShow, workWeekDays = options.workWeekDays, daysToSelectInDayView = options.daysToSelectInDayView, restrictedDates = options.restrictedDates, markedDays = options.markedDays;\n var restrictedDateOptions = { minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates };\n var todaysDate = today || new Date();\n var navigatedDate = options.navigatedDate ? options.navigatedDate : todaysDate;\n var date;\n if (weeksToShow && weeksToShow <= 4) {\n // if showing less than a full month, just use date == navigatedDate\n date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), navigatedDate.getDate());\n }\n else {\n date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), 1);\n }\n var weeks = [];\n // Cycle the date backwards to get to the first day of the week.\n while (date.getDay() !== firstDayOfWeek) {\n date.setDate(date.getDate() - 1);\n }\n // add the transition week as last week of previous range\n date = addDays(date, -DAYS_IN_WEEK);\n // a flag to indicate whether all days of the week are outside the month\n var isAllDaysOfWeekOutOfMonth = false;\n // in work week view if the days aren't contiguous we use week view instead\n var selectedDateRangeType = getDateRangeTypeToUse(dateRangeType, workWeekDays, firstDayOfWeek);\n var selectedDates = [];\n if (selectedDate) {\n selectedDates = getDateRangeArray(selectedDate, selectedDateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView);\n selectedDates = getBoundedDateRange(selectedDates, minDate, maxDate);\n }\n var shouldGetWeeks = true;\n for (var weekIndex = 0; shouldGetWeeks; weekIndex++) {\n var week = [];\n isAllDaysOfWeekOutOfMonth = true;\n var _loop_1 = function (dayIndex) {\n var originalDate = new Date(date.getTime());\n var dayInfo = {\n key: date.toString(),\n date: date.getDate().toString(),\n originalDate: originalDate,\n isInMonth: date.getMonth() === navigatedDate.getMonth(),\n isToday: compareDates(todaysDate, date),\n isSelected: isInDateRangeArray(date, selectedDates),\n isInBounds: !isRestrictedDate(date, restrictedDateOptions),\n isMarked: (markedDays === null || markedDays === void 0 ? void 0 : markedDays.some(function (markedDay) { return compareDates(originalDate, markedDay); })) || false,\n };\n week.push(dayInfo);\n if (dayInfo.isInMonth) {\n isAllDaysOfWeekOutOfMonth = false;\n }\n date.setDate(date.getDate() + 1);\n };\n for (var dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++) {\n _loop_1(dayIndex);\n }\n // We append the condition of the loop depending upon the showSixWeeksByDefault prop.\n shouldGetWeeks = weeksToShow ? weekIndex < weeksToShow + 1 : !isAllDaysOfWeekOutOfMonth || weekIndex === 0;\n // we don't check shouldGetWeeks before pushing because we want to add one extra week for transition state\n weeks.push(week);\n }\n return weeks;\n};\n//# sourceMappingURL=getDayGrid.js.map","import * as React from 'react';\nimport { css, findIndex } from '@fluentui/utilities';\nimport { DAYS_IN_WEEK } from '@fluentui/date-time-utilities';\nexport var CalendarMonthHeaderRow = function (props) {\n var showWeekNumbers = props.showWeekNumbers, strings = props.strings, firstDayOfWeek = props.firstDayOfWeek, allFocusable = props.allFocusable, weeksToShow = props.weeksToShow, weeks = props.weeks, classNames = props.classNames;\n var dayLabels = strings.shortDays.slice();\n var firstOfMonthIndex = findIndex(weeks[1], function (day) { return day.originalDate.getDate() === 1; });\n if (weeksToShow === 1 && firstOfMonthIndex >= 0) {\n // if we only show one week, replace the header with short month name\n var firstOfMonthIndexOffset = (firstOfMonthIndex + firstDayOfWeek) % DAYS_IN_WEEK;\n dayLabels[firstOfMonthIndexOffset] = strings.shortMonths[weeks[1][firstOfMonthIndex].originalDate.getMonth()];\n }\n return (React.createElement(\"tr\", null,\n showWeekNumbers && React.createElement(\"th\", { className: classNames.dayCell }),\n dayLabels.map(function (val, index) {\n var i = (index + firstDayOfWeek) % DAYS_IN_WEEK;\n var label = strings.days[i];\n return (React.createElement(\"th\", { className: css(classNames.dayCell, classNames.weekDayLabelCell), scope: \"col\", key: dayLabels[i] + ' ' + index, title: label, \"aria-label\": label, \"data-is-focusable\": allFocusable ? true : undefined }, dayLabels[i]));\n })));\n};\n//# sourceMappingURL=CalendarMonthHeaderRow.js.map","import * as React from 'react';\nimport { KeyCodes, css, getRTLSafeKeyCode } from '@fluentui/utilities';\nimport { addDays, addWeeks, compareDates, findAvailableDate, DateRangeType } from '@fluentui/date-time-utilities';\nexport var CalendarGridDayCell = function (props) {\n var _a;\n var navigatedDate = props.navigatedDate, dateTimeFormatter = props.dateTimeFormatter, allFocusable = props.allFocusable, strings = props.strings, activeDescendantId = props.activeDescendantId, navigatedDayRef = props.navigatedDayRef, calculateRoundedStyles = props.calculateRoundedStyles, weeks = props.weeks, classNames = props.classNames, day = props.day, dayIndex = props.dayIndex, weekIndex = props.weekIndex, weekCorners = props.weekCorners, ariaHidden = props.ariaHidden, customDayCellRef = props.customDayCellRef, dateRangeType = props.dateRangeType, daysToSelectInDayView = props.daysToSelectInDayView, onSelectDate = props.onSelectDate, restrictedDates = props.restrictedDates, minDate = props.minDate, maxDate = props.maxDate, onNavigateDate = props.onNavigateDate, getDayInfosInRangeOfDay = props.getDayInfosInRangeOfDay, getRefsFromDayInfos = props.getRefsFromDayInfos;\n var cornerStyle = (_a = weekCorners === null || weekCorners === void 0 ? void 0 : weekCorners[weekIndex + '_' + dayIndex]) !== null && _a !== void 0 ? _a : '';\n var isNavigatedDate = compareDates(navigatedDate, day.originalDate);\n var navigateMonthEdge = function (ev, date) {\n var targetDate = undefined;\n var direction = 1; // by default search forward\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.up) {\n targetDate = addWeeks(date, -1);\n direction = -1;\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === KeyCodes.down) {\n targetDate = addWeeks(date, 1);\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === getRTLSafeKeyCode(KeyCodes.left)) {\n targetDate = addDays(date, -1);\n direction = -1;\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === getRTLSafeKeyCode(KeyCodes.right)) {\n targetDate = addDays(date, 1);\n }\n if (!targetDate) {\n // if we couldn't find a target date at all, do nothing\n return;\n }\n var findAvailableDateOptions = {\n initialDate: date,\n targetDate: targetDate,\n direction: direction,\n restrictedDates: restrictedDates,\n minDate: minDate,\n maxDate: maxDate,\n };\n // target date is restricted, search in whatever direction until finding the next possible date,\n // stopping at boundaries\n var nextDate = findAvailableDate(findAvailableDateOptions);\n if (!nextDate) {\n // if no dates available in initial direction, try going backwards\n findAvailableDateOptions.direction = -direction;\n nextDate = findAvailableDate(findAvailableDateOptions);\n }\n // if the nextDate is still inside the same focusZone area, let the focusZone handle setting the focus so we\n // don't jump the view unnecessarily\n var isInCurrentView = weeks &&\n nextDate &&\n weeks.slice(1, weeks.length - 1).some(function (week) {\n return week.some(function (dayToCompare) {\n return compareDates(dayToCompare.originalDate, nextDate);\n });\n });\n if (isInCurrentView) {\n return;\n }\n // else, fire navigation on the date to change the view to show it\n if (nextDate) {\n onNavigateDate(nextDate, true);\n ev.preventDefault();\n }\n };\n var onMouseOverDay = function (ev) {\n var dayInfos = getDayInfosInRangeOfDay(day);\n var dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach(function (dayRef, index) {\n var _a;\n if (dayRef) {\n dayRef.classList.add('ms-CalendarDay-hoverStyle');\n if (!dayInfos[index].isSelected &&\n dateRangeType === DateRangeType.Day &&\n daysToSelectInDayView &&\n daysToSelectInDayView > 1) {\n // remove the static classes first to overwrite them\n dayRef.classList.remove(classNames.bottomLeftCornerDate, classNames.bottomRightCornerDate, classNames.topLeftCornerDate, classNames.topRightCornerDate);\n var classNamesToAdd = calculateRoundedStyles(classNames, false, false, index > 0, index < dayRefs.length - 1).trim();\n if (classNamesToAdd) {\n (_a = dayRef.classList).add.apply(_a, classNamesToAdd.split(' '));\n }\n }\n }\n });\n };\n var onMouseDownDay = function (ev) {\n var dayInfos = getDayInfosInRangeOfDay(day);\n var dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach(function (dayRef) {\n if (dayRef) {\n dayRef.classList.add('ms-CalendarDay-pressedStyle');\n }\n });\n };\n var onMouseUpDay = function (ev) {\n var dayInfos = getDayInfosInRangeOfDay(day);\n var dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach(function (dayRef) {\n if (dayRef) {\n dayRef.classList.remove('ms-CalendarDay-pressedStyle');\n }\n });\n };\n var onMouseOutDay = function (ev) {\n var dayInfos = getDayInfosInRangeOfDay(day);\n var dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach(function (dayRef, index) {\n var _a;\n if (dayRef) {\n dayRef.classList.remove('ms-CalendarDay-hoverStyle');\n dayRef.classList.remove('ms-CalendarDay-pressedStyle');\n if (!dayInfos[index].isSelected &&\n dateRangeType === DateRangeType.Day &&\n daysToSelectInDayView &&\n daysToSelectInDayView > 1) {\n var classNamesToAdd = calculateRoundedStyles(classNames, false, false, index > 0, index < dayRefs.length - 1).trim();\n if (classNamesToAdd) {\n (_a = dayRef.classList).remove.apply(_a, classNamesToAdd.split(' '));\n }\n }\n }\n });\n };\n var onDayKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(day.originalDate);\n }\n else {\n navigateMonthEdge(ev, day.originalDate);\n }\n };\n var ariaLabel = day.originalDate.getDate() +\n ', ' +\n strings.months[day.originalDate.getMonth()] +\n ', ' +\n day.originalDate.getFullYear();\n if (day.isMarked) {\n ariaLabel = ariaLabel + ', ' + strings.dayMarkedAriaLabel;\n }\n return (React.createElement(\"td\", { className: css(classNames.dayCell, weekCorners && cornerStyle, day.isSelected && classNames.daySelected, day.isSelected && 'ms-CalendarDay-daySelected', !day.isInBounds && classNames.dayOutsideBounds, !day.isInMonth && classNames.dayOutsideNavigatedMonth), ref: function (element) {\n customDayCellRef === null || customDayCellRef === void 0 ? void 0 : customDayCellRef(element, day.originalDate, classNames);\n day.setRef(element);\n isNavigatedDate && (navigatedDayRef.current = element);\n }, \"aria-hidden\": ariaHidden, \"aria-disabled\": !ariaHidden && !day.isInBounds, onClick: day.isInBounds && !ariaHidden ? day.onSelected : undefined, onMouseOver: !ariaHidden ? onMouseOverDay : undefined, onMouseDown: !ariaHidden ? onMouseDownDay : undefined, onMouseUp: !ariaHidden ? onMouseUpDay : undefined, onMouseOut: !ariaHidden ? onMouseOutDay : undefined, onKeyDown: !ariaHidden ? onDayKeyDown : undefined, role: \"gridcell\", tabIndex: isNavigatedDate ? 0 : undefined, \"aria-current\": day.isToday ? 'date' : undefined, \"aria-selected\": day.isInBounds ? day.isSelected : undefined, \"data-is-focusable\": !ariaHidden && (allFocusable || (day.isInBounds ? true : undefined)) },\n React.createElement(\"button\", { key: day.key + 'button', \"aria-hidden\": ariaHidden, className: css(classNames.dayButton, day.isToday && classNames.dayIsToday, day.isToday && 'ms-CalendarDay-dayIsToday'), \"aria-label\": ariaLabel, id: isNavigatedDate ? activeDescendantId : undefined, disabled: !ariaHidden && !day.isInBounds, type: \"button\", tabIndex: -1, \"data-is-focusable\": \"false\" },\n React.createElement(\"span\", { \"aria-hidden\": \"true\" }, dateTimeFormatter.formatDay(day.originalDate)),\n day.isMarked && React.createElement(\"div\", { \"aria-hidden\": \"true\", className: classNames.dayMarker }))));\n};\n//# sourceMappingURL=CalendarGridDayCell.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { format } from '@fluentui/utilities';\nimport { getWeekNumbersInMonth } from '@fluentui/date-time-utilities';\nimport { CalendarGridDayCell } from './CalendarGridDayCell';\nexport var CalendarGridRow = function (props) {\n var classNames = props.classNames, week = props.week, weeks = props.weeks, weekIndex = props.weekIndex, rowClassName = props.rowClassName, ariaRole = props.ariaRole, showWeekNumbers = props.showWeekNumbers, firstDayOfWeek = props.firstDayOfWeek, firstWeekOfYear = props.firstWeekOfYear, navigatedDate = props.navigatedDate, strings = props.strings;\n var weekNumbers = showWeekNumbers\n ? getWeekNumbersInMonth(weeks.length, firstDayOfWeek, firstWeekOfYear, navigatedDate)\n : null;\n var titleString = weekNumbers\n ? strings.weekNumberFormatString && format(strings.weekNumberFormatString, weekNumbers[weekIndex])\n : '';\n return (React.createElement(\"tr\", { role: ariaRole, className: rowClassName, key: weekIndex + '_' + week[0].key },\n showWeekNumbers && weekNumbers && (React.createElement(\"th\", { className: classNames.weekNumberCell, key: weekIndex, title: titleString, \"aria-label\": titleString, scope: \"row\" },\n React.createElement(\"span\", null, weekNumbers[weekIndex]))),\n week.map(function (day, dayIndex) { return (React.createElement(CalendarGridDayCell, __assign({}, props, { key: day.key, day: day, dayIndex: dayIndex }))); })));\n};\n//# sourceMappingURL=CalendarGridRow.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { getRTL, classNamesFunction } from '@fluentui/utilities';\nimport { FocusZone } from '../../FocusZone';\nimport { getDateRangeArray, getDayGrid, getBoundedDateRange, isRestrictedDate, DAYS_IN_WEEK, compareDates, DateRangeType, } from '@fluentui/date-time-utilities';\nimport { usePrevious, useId } from '@fluentui/react-hooks';\nimport { CalendarMonthHeaderRow } from './CalendarMonthHeaderRow';\nimport { CalendarGridRow } from './CalendarGridRow';\nvar getClassNames = classNamesFunction();\nfunction useDayRefs() {\n var daysRef = React.useRef({});\n var getSetRefCallback = function (dayKey) { return function (element) {\n if (element === null) {\n delete daysRef.current[dayKey];\n }\n else {\n daysRef.current[dayKey] = element;\n }\n }; };\n return [daysRef, getSetRefCallback];\n}\nfunction useWeeks(props, onSelectDate, getSetRefCallback) {\n /**\n * Initial parsing of the given props to generate IDayInfo two dimensional array, which contains a representation\n * of every day in the grid. Convenient for helping with conversions between day refs and Date objects in callbacks.\n */\n var weeks = React.useMemo(function () {\n var _a;\n var weeksGrid = getDayGrid(props);\n var firstVisibleDay = weeksGrid[1][0].originalDate;\n var lastVisibleDay = weeksGrid[weeksGrid.length - 1][6].originalDate;\n var markedDays = ((_a = props.getMarkedDays) === null || _a === void 0 ? void 0 : _a.call(props, firstVisibleDay, lastVisibleDay)) || [];\n /**\n * Weeks is a 2D array. Weeks[0] contains the last week of the prior range,\n * Weeks[weeks.length - 1] contains first week of next range. These are for transition states.\n *\n * Weeks[1... weeks.length - 2] contains the actual visible data\n */\n var returnValue = [];\n for (var weekIndex = 0; weekIndex < weeksGrid.length; weekIndex++) {\n var week = [];\n var _loop_1 = function (dayIndex) {\n var day = weeksGrid[weekIndex][dayIndex];\n var dayInfo = __assign(__assign({ onSelected: function () { return onSelectDate(day.originalDate); }, setRef: getSetRefCallback(day.key) }, day), { isMarked: day.isMarked || (markedDays === null || markedDays === void 0 ? void 0 : markedDays.some(function (markedDay) { return compareDates(day.originalDate, markedDay); })) });\n week.push(dayInfo);\n };\n for (var dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++) {\n _loop_1(dayIndex);\n }\n returnValue.push(week);\n }\n return returnValue;\n // TODO: this is missing deps on getSetRefCallback and onSelectDate (and depending on the entire\n // props object may not be a good idea due to likely frequent mutation). It would be easy to\n // fix getSetRefCallback to not mutate every render, but onSelectDate is passed down from\n // Calendar and trying to fix it requires a huge cascade of changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props]);\n return weeks;\n}\n/**\n * Hook to determine whether to animate the CalendarDayGrid forwards or backwards\n * @returns true if the grid should animate backwards; false otherwise\n */\nfunction useAnimateBackwards(weeks) {\n var previousNavigatedDate = usePrevious(weeks[0][0].originalDate);\n if (!previousNavigatedDate || previousNavigatedDate.getTime() === weeks[0][0].originalDate.getTime()) {\n return undefined;\n }\n else if (previousNavigatedDate <= weeks[0][0].originalDate) {\n return false;\n }\n else {\n return true;\n }\n}\nfunction useWeekCornerStyles(props) {\n /**\n *\n * Section for setting the rounded corner styles on individual day cells. Individual day cells need different\n * corners to be rounded depending on which date range type and where the cell is located in the current grid.\n * If we just round all of the corners, there isn't a good overlap and we get gaps between contiguous day boxes\n * in Edge browser.\n *\n */\n var getWeekCornerStyles = function (classNames, initialWeeks) {\n var weekCornersStyled = {};\n /* need to handle setting all of the corners on arbitrarily shaped blobs\n __\n __|A |\n |B |C |__\n |D |E |F |\n \n in this case, A needs top left rounded, top right rounded\n B needs top left rounded\n C doesn't need any rounding\n D needs bottom left rounded\n E doesn't need any rounding\n F needs top right rounding\n */\n // cut off the animation transition weeks\n var weeks = initialWeeks.slice(1, initialWeeks.length - 1);\n // if there's an item above, lose both top corners. Item below, lose both bottom corners, etc.\n weeks.forEach(function (week, weekIndex) {\n week.forEach(function (day, dayIndex) {\n var above = weeks[weekIndex - 1] &&\n weeks[weekIndex - 1][dayIndex] &&\n isInSameHoverRange(weeks[weekIndex - 1][dayIndex].originalDate, day.originalDate, weeks[weekIndex - 1][dayIndex].isSelected, day.isSelected);\n var below = weeks[weekIndex + 1] &&\n weeks[weekIndex + 1][dayIndex] &&\n isInSameHoverRange(weeks[weekIndex + 1][dayIndex].originalDate, day.originalDate, weeks[weekIndex + 1][dayIndex].isSelected, day.isSelected);\n var left = weeks[weekIndex][dayIndex - 1] &&\n isInSameHoverRange(weeks[weekIndex][dayIndex - 1].originalDate, day.originalDate, weeks[weekIndex][dayIndex - 1].isSelected, day.isSelected);\n var right = weeks[weekIndex][dayIndex + 1] &&\n isInSameHoverRange(weeks[weekIndex][dayIndex + 1].originalDate, day.originalDate, weeks[weekIndex][dayIndex + 1].isSelected, day.isSelected);\n var style = [];\n style.push(calculateRoundedStyles(classNames, above, below, left, right));\n style.push(calculateBorderStyles(classNames, above, below, left, right));\n weekCornersStyled[weekIndex + '_' + dayIndex] = style.join(' ');\n });\n });\n return weekCornersStyled;\n };\n var calculateRoundedStyles = function (classNames, above, below, left, right) {\n var style = [];\n var roundedTopLeft = !above && !left;\n var roundedTopRight = !above && !right;\n var roundedBottomLeft = !below && !left;\n var roundedBottomRight = !below && !right;\n if (roundedTopLeft) {\n style.push(getRTL() ? classNames.topRightCornerDate : classNames.topLeftCornerDate);\n }\n if (roundedTopRight) {\n style.push(getRTL() ? classNames.topLeftCornerDate : classNames.topRightCornerDate);\n }\n if (roundedBottomLeft) {\n style.push(getRTL() ? classNames.bottomRightCornerDate : classNames.bottomLeftCornerDate);\n }\n if (roundedBottomRight) {\n style.push(getRTL() ? classNames.bottomLeftCornerDate : classNames.bottomRightCornerDate);\n }\n return style.join(' ');\n };\n var calculateBorderStyles = function (classNames, above, below, left, right) {\n var style = [];\n if (!above) {\n style.push(classNames.datesAbove);\n }\n if (!below) {\n style.push(classNames.datesBelow);\n }\n if (!left) {\n style.push(getRTL() ? classNames.datesRight : classNames.datesLeft);\n }\n if (!right) {\n style.push(getRTL() ? classNames.datesLeft : classNames.datesRight);\n }\n return style.join(' ');\n };\n var isInSameHoverRange = function (date1, date2, date1Selected, date2Selected) {\n var dateRangeType = props.dateRangeType, firstDayOfWeek = props.firstDayOfWeek, workWeekDays = props.workWeekDays;\n // The hover state looks weird with non-contiguous days in work week view. In work week, show week hover state\n var dateRangeHoverType = dateRangeType === DateRangeType.WorkWeek ? DateRangeType.Week : dateRangeType;\n // we do not pass daysToSelectInDayView because we handle setting those styles dyanamically in onMouseOver\n var dateRange = getDateRangeArray(date1, dateRangeHoverType, firstDayOfWeek, workWeekDays);\n if (date1Selected !== date2Selected) {\n // if one is selected and the other is not, they can't be in the same range\n return false;\n }\n else if (date1Selected && date2Selected) {\n // if they're both selected at the same time they must be in the same range\n return true;\n }\n // otherwise, both must be unselected, so check the dateRange\n return dateRange.filter(function (date) { return date.getTime() === date2.getTime(); }).length > 0;\n };\n return [getWeekCornerStyles, calculateRoundedStyles];\n}\nexport var CalendarDayGridBase = function (props) {\n var navigatedDayRef = React.useRef(null);\n var activeDescendantId = useId();\n var onSelectDate = function (selectedDate) {\n var _a, _b;\n var firstDayOfWeek = props.firstDayOfWeek, minDate = props.minDate, maxDate = props.maxDate, workWeekDays = props.workWeekDays, daysToSelectInDayView = props.daysToSelectInDayView, restrictedDates = props.restrictedDates;\n var restrictedDatesOptions = { minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates };\n var dateRange = getDateRangeArray(selectedDate, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView);\n dateRange = getBoundedDateRange(dateRange, minDate, maxDate);\n dateRange = dateRange.filter(function (d) {\n return !isRestrictedDate(d, restrictedDatesOptions);\n });\n (_a = props.onSelectDate) === null || _a === void 0 ? void 0 : _a.call(props, selectedDate, dateRange);\n (_b = props.onNavigateDate) === null || _b === void 0 ? void 0 : _b.call(props, selectedDate, true);\n };\n var _a = useDayRefs(), daysRef = _a[0], getSetRefCallback = _a[1];\n var weeks = useWeeks(props, onSelectDate, getSetRefCallback);\n var animateBackwards = useAnimateBackwards(weeks);\n var _b = useWeekCornerStyles(props), getWeekCornerStyles = _b[0], calculateRoundedStyles = _b[1];\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n var _a, _b;\n (_b = (_a = navigatedDayRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n }); }, []);\n /**\n *\n * Section for setting hover/pressed styles. Because we want arbitrary blobs of days to be selectable, to support\n * highlighting every day in the month for month view, css :hover style isn't enough, so we need mouse callbacks\n * to set classnames on all relevant child refs to apply the styling\n *\n */\n var getDayInfosInRangeOfDay = function (dayToCompare) {\n // The hover state looks weird with non-contiguous days in work week view. In work week, show week hover state\n var dateRangeHoverType = getDateRangeTypeToUse(props.dateRangeType, props.workWeekDays);\n // gets all the dates for the given date range type that are in the same date range as the given day\n var dateRange = getDateRangeArray(dayToCompare.originalDate, dateRangeHoverType, props.firstDayOfWeek, props.workWeekDays, props.daysToSelectInDayView).map(function (date) { return date.getTime(); });\n // gets all the day refs for the given dates\n var dayInfosInRange = weeks.reduce(function (accumulatedValue, currentWeek) {\n return accumulatedValue.concat(currentWeek.filter(function (weekDay) { return dateRange.indexOf(weekDay.originalDate.getTime()) !== -1; }));\n }, []);\n return dayInfosInRange;\n };\n var getRefsFromDayInfos = function (dayInfosInRange) {\n var dayRefs = [];\n dayRefs = dayInfosInRange.map(function (dayInfo) { return daysRef.current[dayInfo.key]; });\n return dayRefs;\n };\n var styles = props.styles, theme = props.theme, className = props.className, dateRangeType = props.dateRangeType, showWeekNumbers = props.showWeekNumbers, labelledBy = props.labelledBy, lightenDaysOutsideNavigatedMonth = props.lightenDaysOutsideNavigatedMonth, animationDirection = props.animationDirection;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n dateRangeType: dateRangeType,\n showWeekNumbers: showWeekNumbers,\n lightenDaysOutsideNavigatedMonth: lightenDaysOutsideNavigatedMonth === undefined ? true : lightenDaysOutsideNavigatedMonth,\n animationDirection: animationDirection,\n animateBackwards: animateBackwards,\n });\n // When the month is highlighted get the corner dates so that styles can be added to them\n var weekCorners = getWeekCornerStyles(classNames, weeks);\n var partialWeekProps = {\n weeks: weeks,\n navigatedDayRef: navigatedDayRef,\n calculateRoundedStyles: calculateRoundedStyles,\n activeDescendantId: activeDescendantId,\n classNames: classNames,\n weekCorners: weekCorners,\n getDayInfosInRangeOfDay: getDayInfosInRangeOfDay,\n getRefsFromDayInfos: getRefsFromDayInfos,\n };\n return (React.createElement(FocusZone, { className: classNames.wrapper, preventDefaultWhenHandled: true },\n React.createElement(\"table\", { className: classNames.table, \"aria-multiselectable\": \"false\", \"aria-labelledby\": labelledBy, \"aria-activedescendant\": activeDescendantId, role: \"grid\" },\n React.createElement(\"tbody\", null,\n React.createElement(CalendarMonthHeaderRow, __assign({}, props, { classNames: classNames, weeks: weeks })),\n React.createElement(CalendarGridRow, __assign({}, props, partialWeekProps, { week: weeks[0], weekIndex: -1, rowClassName: classNames.firstTransitionWeek, ariaRole: \"presentation\", ariaHidden: true })),\n weeks.slice(1, weeks.length - 1).map(function (week, weekIndex) { return (React.createElement(CalendarGridRow, __assign({}, props, partialWeekProps, { key: weekIndex, week: week, weekIndex: weekIndex, rowClassName: classNames.weekRow }))); }),\n React.createElement(CalendarGridRow, __assign({}, props, partialWeekProps, { week: weeks[weeks.length - 1], weekIndex: -2, rowClassName: classNames.lastTransitionWeek, ariaRole: \"presentation\", ariaHidden: true }))))));\n};\nCalendarDayGridBase.displayName = 'CalendarDayGridBase';\n/**\n * When given work week, if the days are non-contiguous, the hover states look really weird. So for non-contiguous\n * work weeks, we'll just show week view instead.\n */\nfunction getDateRangeTypeToUse(dateRangeType, workWeekDays) {\n if (workWeekDays && dateRangeType === DateRangeType.WorkWeek) {\n var sortedWWDays = workWeekDays.slice().sort();\n var isContiguous = true;\n for (var i = 1; i < sortedWWDays.length; i++) {\n if (sortedWWDays[i] !== sortedWWDays[i - 1] + 1) {\n isContiguous = false;\n break;\n }\n }\n if (!isContiguous || workWeekDays.length === 0) {\n return DateRangeType.Week;\n }\n }\n return dateRangeType;\n}\n//# sourceMappingURL=CalendarDayGrid.base.js.map","/**\n * {@docCategory Calendar}\n */\nexport var AnimationDirection;\n(function (AnimationDirection) {\n /**\n * Grid will transition out and in horizontally\n */\n AnimationDirection[AnimationDirection[\"Horizontal\"] = 0] = \"Horizontal\";\n /**\n * Grid will transition out and in vertically\n */\n AnimationDirection[AnimationDirection[\"Vertical\"] = 1] = \"Vertical\";\n})(AnimationDirection || (AnimationDirection = {}));\n//# sourceMappingURL=Calendar.types.js.map","import { __assign } from \"tslib\";\nimport { FontSizes, FontWeights, getFocusStyle, getGlobalClassNames, AnimationStyles, keyframes, HighContrastSelector, getHighContrastNoAdjustStyle, } from '@fluentui/style-utilities';\nimport { DateRangeType } from '@fluentui/date-time-utilities';\nimport { AnimationDirection } from '../Calendar/Calendar.types';\nvar GlobalClassNames = {\n hoverStyle: 'ms-CalendarDay-hoverStyle',\n pressedStyle: 'ms-CalendarDay-pressedStyle',\n dayIsTodayStyle: 'ms-CalendarDay-dayIsToday',\n daySelectedStyle: 'ms-CalendarDay-daySelected',\n};\nvar transitionRowDisappearance = keyframes({\n '100%': {\n width: 0,\n height: 0,\n overflow: 'hidden',\n },\n '99.9%': {\n width: '100%',\n height: 28,\n overflow: 'visible',\n },\n '0%': {\n width: '100%',\n height: 28,\n overflow: 'visible',\n },\n});\nexport var styles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n var theme = props.theme, dateRangeType = props.dateRangeType, showWeekNumbers = props.showWeekNumbers, lightenDaysOutsideNavigatedMonth = props.lightenDaysOutsideNavigatedMonth, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var rowAnimationStyle = {};\n if (animateBackwards !== undefined) {\n if (animationDirection === AnimationDirection.Horizontal) {\n rowAnimationStyle = animateBackwards ? AnimationStyles.slideRightIn20 : AnimationStyles.slideLeftIn20;\n }\n else {\n rowAnimationStyle = animateBackwards ? AnimationStyles.slideDownIn20 : AnimationStyles.slideUpIn20;\n }\n }\n var firstTransitionRowAnimationStyle = {};\n var lastTransitionRowAnimationStyle = {};\n if (animateBackwards !== undefined) {\n if (animationDirection !== AnimationDirection.Horizontal) {\n firstTransitionRowAnimationStyle = animateBackwards ? { animationName: '' } : AnimationStyles.slideUpOut20;\n lastTransitionRowAnimationStyle = animateBackwards ? AnimationStyles.slideDownOut20 : { animationName: '' };\n }\n }\n var disabledStyle = {\n selectors: {\n '&, &:disabled, & button': {\n color: palette.neutralTertiaryAlt,\n pointerEvents: 'none',\n },\n },\n };\n return {\n wrapper: {\n paddingBottom: 10,\n },\n table: [\n {\n textAlign: 'center',\n borderCollapse: 'collapse',\n borderSpacing: '0',\n tableLayout: 'fixed',\n fontSize: 'inherit',\n marginTop: 4,\n width: 196,\n position: 'relative',\n paddingBottom: 10,\n },\n showWeekNumbers && {\n width: 226,\n },\n ],\n dayCell: [\n getFocusStyle(theme, { inset: -3 }),\n {\n margin: 0,\n padding: 0,\n width: 28,\n height: 28,\n lineHeight: 28,\n fontSize: FontSizes.small,\n fontWeight: FontWeights.regular,\n color: palette.neutralPrimary,\n cursor: 'pointer',\n position: 'relative',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'WindowText', backgroundColor: 'transparent', zIndex: 0 }, getHighContrastNoAdjustStyle()),\n _a['&.' + classNames.hoverStyle] = {\n backgroundColor: palette.neutralLighter,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n zIndex: 3,\n backgroundColor: 'Window',\n outline: '1px solid Highlight',\n },\n _b),\n },\n _a['&.' + classNames.pressedStyle] = {\n backgroundColor: palette.neutralLight,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n backgroundColor: 'Window',\n },\n _c),\n },\n _a['&.' + classNames.pressedStyle + '.' + classNames.hoverStyle] = {\n selectors: (_d = {},\n _d[HighContrastSelector] = {\n backgroundColor: 'Window',\n outline: '1px solid Highlight',\n },\n _d),\n },\n _a),\n },\n ],\n daySelected: [\n dateRangeType !== DateRangeType.Month && {\n backgroundColor: palette.neutralLight + '!important',\n selectors: (_e = {\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n }\n },\n _e['&:hover, &.' + classNames.hoverStyle + ', &.' + classNames.pressedStyle] = (_f = {\n backgroundColor: palette.neutralLight + '!important'\n },\n _f[HighContrastSelector] = {\n color: 'HighlightText!important',\n background: 'Highlight!important',\n },\n _f),\n _e[HighContrastSelector] = __assign({ background: 'Highlight!important', color: 'HighlightText!important', borderColor: 'Highlight!important' }, getHighContrastNoAdjustStyle()),\n _e),\n },\n ],\n weekRow: rowAnimationStyle,\n weekDayLabelCell: AnimationStyles.fadeIn200,\n weekNumberCell: {\n margin: 0,\n padding: 0,\n borderRight: '1px solid',\n borderColor: palette.neutralLight,\n backgroundColor: palette.neutralLighterAlt,\n color: palette.neutralSecondary,\n boxSizing: 'border-box',\n width: 28,\n height: 28,\n fontWeight: FontWeights.regular,\n fontSize: FontSizes.small,\n },\n dayOutsideBounds: disabledStyle,\n dayOutsideNavigatedMonth: lightenDaysOutsideNavigatedMonth && {\n color: palette.neutralSecondary,\n fontWeight: FontWeights.regular,\n },\n dayButton: {\n width: 24,\n height: 24,\n lineHeight: 24,\n fontSize: FontSizes.small,\n fontWeight: 'inherit',\n borderRadius: 2,\n border: 'none',\n padding: 0,\n color: 'inherit',\n backgroundColor: 'transparent',\n cursor: 'pointer',\n overflow: 'visible',\n selectors: {\n span: {\n height: 'inherit',\n lineHeight: 'inherit',\n },\n },\n },\n dayIsToday: {\n backgroundColor: palette.themePrimary + '!important',\n borderRadius: '100%',\n color: palette.white + '!important',\n fontWeight: (FontWeights.semibold + '!important'),\n selectors: (_g = {},\n _g[HighContrastSelector] = __assign({ background: 'WindowText!important', color: 'Window!important', borderColor: 'WindowText!important' }, getHighContrastNoAdjustStyle()),\n _g),\n },\n firstTransitionWeek: __assign(__assign({ position: 'absolute', opacity: 0, width: 0, height: 0, overflow: 'hidden' }, firstTransitionRowAnimationStyle), { animationName: firstTransitionRowAnimationStyle.animationName + ',' + transitionRowDisappearance }),\n lastTransitionWeek: __assign(__assign({ position: 'absolute', opacity: 0, width: 0, height: 0, overflow: 'hidden', marginTop: -28 }, lastTransitionRowAnimationStyle), { animationName: lastTransitionRowAnimationStyle.animationName + ',' + transitionRowDisappearance }),\n dayMarker: {\n width: 4,\n height: 4,\n backgroundColor: palette.neutralSecondary,\n borderRadius: '100%',\n bottom: 1,\n left: 0,\n right: 0,\n position: 'absolute',\n margin: 'auto',\n selectors: (_h = {},\n _h['.' + classNames.dayIsTodayStyle + ' &'] = {\n backgroundColor: palette.white,\n selectors: (_j = {},\n _j[HighContrastSelector] = {\n backgroundColor: 'Window',\n },\n _j),\n },\n _h['.' + classNames.daySelectedStyle + ' &'] = {\n selectors: (_k = {},\n _k[HighContrastSelector] = {\n backgroundColor: 'HighlightText',\n },\n _k),\n },\n _h[HighContrastSelector] = __assign({ backgroundColor: 'WindowText' }, getHighContrastNoAdjustStyle()),\n _h),\n },\n topRightCornerDate: {\n borderTopRightRadius: '2px',\n },\n topLeftCornerDate: {\n borderTopLeftRadius: '2px',\n },\n bottomRightCornerDate: {\n borderBottomRightRadius: '2px',\n },\n bottomLeftCornerDate: {\n borderBottomLeftRadius: '2px',\n },\n datesAbove: {\n '&::before': {\n borderTop: \"1px solid \".concat(palette.neutralSecondary),\n },\n },\n datesBelow: {\n '&::before': {\n borderBottom: \"1px solid \".concat(palette.neutralSecondary),\n },\n },\n datesLeft: {\n '&::before': {\n borderLeft: \"1px solid \".concat(palette.neutralSecondary),\n },\n },\n datesRight: {\n '&::before': {\n borderRight: \"1px solid \".concat(palette.neutralSecondary),\n },\n },\n };\n};\n//# sourceMappingURL=CalendarDayGrid.styles.js.map","import { CalendarDayGridBase } from './CalendarDayGrid.base';\nimport { styles } from './CalendarDayGrid.styles';\nimport { styled } from '../../Utilities';\nexport var CalendarDayGrid = styled(CalendarDayGridBase, styles, undefined, { scope: 'CalendarDayGrid' });\n//# sourceMappingURL=CalendarDayGrid.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, css, classNamesFunction, format } from '@fluentui/utilities';\nimport { Icon } from '../../../Icon';\nimport { addMonths, compareDatePart, getMonthStart, getMonthEnd } from '@fluentui/date-time-utilities';\nimport { CalendarDayGrid } from '../../CalendarDayGrid/CalendarDayGrid';\nimport { useId } from '@fluentui/react-hooks';\nvar getClassNames = classNamesFunction();\nexport var CalendarDayBase = function (props) {\n var dayGrid = React.useRef(null);\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n var _a, _b;\n (_b = (_a = dayGrid.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n }); }, []);\n var strings = props.strings, navigatedDate = props.navigatedDate, dateTimeFormatter = props.dateTimeFormatter, styles = props.styles, theme = props.theme, className = props.className, onHeaderSelect = props.onHeaderSelect, showSixWeeksByDefault = props.showSixWeeksByDefault, minDate = props.minDate, maxDate = props.maxDate, restrictedDates = props.restrictedDates, onNavigateDate = props.onNavigateDate, showWeekNumbers = props.showWeekNumbers, dateRangeType = props.dateRangeType, animationDirection = props.animationDirection;\n var monthAndYearId = useId();\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n headerIsClickable: !!onHeaderSelect,\n showWeekNumbers: showWeekNumbers,\n animationDirection: animationDirection,\n });\n var monthAndYear = dateTimeFormatter.formatMonthYear(navigatedDate, strings);\n var HeaderButtonComponentType = onHeaderSelect ? 'button' : 'div';\n var headerAriaLabel = strings.yearPickerHeaderAriaLabel\n ? format(strings.yearPickerHeaderAriaLabel, monthAndYear)\n : monthAndYear;\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"div\", { className: classNames.header },\n React.createElement(HeaderButtonComponentType, { \"aria-label\": onHeaderSelect ? headerAriaLabel : undefined, className: classNames.monthAndYear, onClick: onHeaderSelect, \"data-is-focusable\": !!onHeaderSelect, tabIndex: onHeaderSelect ? 0 : -1, onKeyDown: onButtonKeyDown(onHeaderSelect), type: \"button\" },\n React.createElement(\"span\", { id: monthAndYearId, \"aria-live\": \"polite\", \"aria-atomic\": \"true\" }, monthAndYear)),\n React.createElement(CalendarDayNavigationButtons, __assign({}, props, { classNames: classNames }))),\n React.createElement(CalendarDayGrid, __assign({}, props, { styles: styles, componentRef: dayGrid, strings: strings, navigatedDate: navigatedDate, weeksToShow: showSixWeeksByDefault ? 6 : undefined, dateTimeFormatter: dateTimeFormatter, minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates, onNavigateDate: onNavigateDate, labelledBy: monthAndYearId, dateRangeType: dateRangeType }))));\n};\nCalendarDayBase.displayName = 'CalendarDayBase';\nvar CalendarDayNavigationButtons = function (props) {\n var _a, _b;\n var minDate = props.minDate, maxDate = props.maxDate, navigatedDate = props.navigatedDate, allFocusable = props.allFocusable, strings = props.strings, navigationIcons = props.navigationIcons, showCloseButton = props.showCloseButton, classNames = props.classNames, onNavigateDate = props.onNavigateDate, onDismiss = props.onDismiss;\n var onSelectNextMonth = function () {\n onNavigateDate(addMonths(navigatedDate, 1), false);\n };\n var onSelectPrevMonth = function () {\n onNavigateDate(addMonths(navigatedDate, -1), false);\n };\n var leftNavigationIcon = navigationIcons.leftNavigation;\n var rightNavigationIcon = navigationIcons.rightNavigation;\n var closeNavigationIcon = navigationIcons.closeIcon;\n // determine if previous/next months are in bounds\n var prevMonthInBounds = minDate ? compareDatePart(minDate, getMonthStart(navigatedDate)) < 0 : true;\n var nextMonthInBounds = maxDate ? compareDatePart(getMonthEnd(navigatedDate), maxDate) < 0 : true;\n // use aria-disabled instead of disabled so focus is not lost\n // when a prev/next button becomes disabled after being clicked\n return (React.createElement(\"div\", { className: classNames.monthComponents },\n React.createElement(\"button\", { className: css(classNames.headerIconButton, (_a = {},\n _a[classNames.disabledStyle] = !prevMonthInBounds,\n _a)), tabIndex: prevMonthInBounds ? undefined : allFocusable ? 0 : -1, \"aria-disabled\": !prevMonthInBounds, onClick: prevMonthInBounds ? onSelectPrevMonth : undefined, onKeyDown: prevMonthInBounds ? onButtonKeyDown(onSelectPrevMonth) : undefined, title: strings.prevMonthAriaLabel\n ? strings.prevMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, -1).getMonth()]\n : undefined, type: \"button\" },\n React.createElement(Icon, { iconName: leftNavigationIcon })),\n React.createElement(\"button\", { className: css(classNames.headerIconButton, (_b = {},\n _b[classNames.disabledStyle] = !nextMonthInBounds,\n _b)), tabIndex: nextMonthInBounds ? undefined : allFocusable ? 0 : -1, \"aria-disabled\": !nextMonthInBounds, onClick: nextMonthInBounds ? onSelectNextMonth : undefined, onKeyDown: nextMonthInBounds ? onButtonKeyDown(onSelectNextMonth) : undefined, title: strings.nextMonthAriaLabel\n ? strings.nextMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, 1).getMonth()]\n : undefined, type: \"button\" },\n React.createElement(Icon, { iconName: rightNavigationIcon })),\n showCloseButton && (React.createElement(\"button\", { className: css(classNames.headerIconButton), onClick: onDismiss, onKeyDown: onButtonKeyDown(onDismiss), title: strings.closeButtonAriaLabel, type: \"button\" },\n React.createElement(Icon, { iconName: closeNavigationIcon })))));\n};\nCalendarDayNavigationButtons.displayName = 'CalendarDayNavigationButtons';\nvar onButtonKeyDown = function (callback) {\n return function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n callback === null || callback === void 0 ? void 0 : callback();\n break;\n }\n };\n};\n//# sourceMappingURL=CalendarDay.base.js.map","import { __assign } from \"tslib\";\nimport { normalize, FontSizes, FontWeights, getFocusStyle, AnimationStyles, HighContrastSelector, } from '@fluentui/style-utilities';\nexport var styles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, headerIsClickable = props.headerIsClickable, showWeekNumbers = props.showWeekNumbers;\n var palette = theme.palette;\n var disabledStyle = {\n selectors: (_a = {\n '&, &:disabled, & button': {\n color: palette.neutralTertiaryAlt,\n pointerEvents: 'none',\n }\n },\n _a[HighContrastSelector] = {\n color: 'GrayText',\n forcedColorAdjust: 'none',\n },\n _a),\n };\n return {\n root: [\n normalize,\n {\n width: 196,\n padding: 12,\n boxSizing: 'content-box',\n },\n showWeekNumbers && {\n width: 226,\n },\n className,\n ],\n header: {\n position: 'relative',\n display: 'inline-flex',\n height: 28,\n lineHeight: 44,\n width: '100%',\n },\n monthAndYear: [\n getFocusStyle(theme, { inset: 1 }),\n __assign(__assign({}, AnimationStyles.fadeIn200), { alignItems: 'center', fontSize: FontSizes.medium, fontFamily: 'inherit', color: palette.neutralPrimary, display: 'inline-block', flexGrow: 1, fontWeight: FontWeights.semibold, padding: '0 4px 0 10px', border: 'none', backgroundColor: 'transparent', borderRadius: 2, lineHeight: 28, overflow: 'hidden', whiteSpace: 'nowrap', textAlign: 'left', textOverflow: 'ellipsis' }),\n headerIsClickable && {\n selectors: {\n '&:hover': {\n cursor: 'pointer',\n background: palette.neutralLight,\n color: palette.black,\n },\n },\n },\n ],\n monthComponents: {\n display: 'inline-flex',\n alignSelf: 'flex-end',\n },\n headerIconButton: [\n getFocusStyle(theme, { inset: -1 }),\n {\n width: 28,\n height: 28,\n display: 'block',\n textAlign: 'center',\n lineHeight: 28,\n fontSize: FontSizes.small,\n fontFamily: 'inherit',\n color: palette.neutralPrimary,\n borderRadius: 2,\n position: 'relative',\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0,\n overflow: 'visible',\n selectors: {\n '&:hover': {\n color: palette.neutralDark,\n backgroundColor: palette.neutralLight,\n cursor: 'pointer',\n outline: '1px solid transparent',\n },\n },\n },\n ],\n disabledStyle: disabledStyle,\n };\n};\n//# sourceMappingURL=CalendarDay.styles.js.map","import { CalendarDayBase } from './CalendarDay.base';\nimport { styles } from './CalendarDay.styles';\nimport { styled } from '../../../Utilities';\nexport var CalendarDay = styled(CalendarDayBase, styles, undefined, {\n scope: 'CalendarDay',\n});\n//# sourceMappingURL=CalendarDay.js.map","import { __assign } from \"tslib\";\nimport { normalize, FontSizes, FontWeights, getFocusStyle, AnimationStyles, HighContrastSelector, getHighContrastNoAdjustStyle, } from '@fluentui/style-utilities';\nimport { AnimationDirection } from '../Calendar.types';\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g;\n var className = props.className, theme = props.theme, hasHeaderClickCallback = props.hasHeaderClickCallback, highlightCurrent = props.highlightCurrent, highlightSelected = props.highlightSelected, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection;\n var palette = theme.palette;\n var animationStyle = {};\n if (animateBackwards !== undefined) {\n if (animationDirection === AnimationDirection.Horizontal) {\n animationStyle = animateBackwards ? AnimationStyles.slideRightIn20 : AnimationStyles.slideLeftIn20;\n }\n else {\n animationStyle = animateBackwards ? AnimationStyles.slideDownIn20 : AnimationStyles.slideUpIn20;\n }\n }\n var headerAnimationStyle = animateBackwards !== undefined ? AnimationStyles.fadeIn200 : {};\n return {\n root: [\n normalize,\n {\n width: 196,\n padding: 12,\n boxSizing: 'content-box',\n overflow: 'hidden',\n },\n className,\n ],\n headerContainer: {\n display: 'flex',\n },\n currentItemButton: [\n getFocusStyle(theme, { inset: -1 }),\n __assign(__assign({}, headerAnimationStyle), { fontSize: FontSizes.medium, fontWeight: FontWeights.semibold, fontFamily: 'inherit', textAlign: 'left', color: 'inherit', backgroundColor: 'transparent', flexGrow: 1, padding: '0 4px 0 10px', border: 'none', overflow: 'visible' }),\n hasHeaderClickCallback && {\n selectors: {\n '&:hover, &:active': {\n cursor: !hasHeaderClickCallback ? 'default' : 'pointer',\n color: palette.neutralDark,\n outline: '1px solid transparent',\n backgroundColor: palette.neutralLight,\n },\n },\n },\n ],\n navigationButtonsContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n navigationButton: [\n getFocusStyle(theme, { inset: -1 }),\n {\n fontFamily: 'inherit',\n width: 28,\n minWidth: 28,\n height: 28,\n minHeight: 28,\n display: 'block',\n textAlign: 'center',\n lineHeight: 28,\n fontSize: FontSizes.small,\n color: palette.neutralPrimary,\n borderRadius: 2,\n position: 'relative',\n backgroundColor: 'transparent',\n border: 'none',\n padding: 0,\n overflow: 'visible',\n selectors: {\n '&:hover': {\n color: palette.neutralDark,\n cursor: 'pointer',\n outline: '1px solid transparent',\n backgroundColor: palette.neutralLight,\n },\n },\n },\n ],\n gridContainer: {\n marginTop: 4,\n },\n buttonRow: __assign(__assign({}, animationStyle), { marginBottom: 16, selectors: {\n '&:nth-child(n + 3)': {\n marginBottom: 0,\n },\n } }),\n itemButton: [\n getFocusStyle(theme, { inset: -1 }),\n {\n width: 40,\n height: 40,\n minWidth: 40,\n minHeight: 40,\n lineHeight: 40,\n fontSize: FontSizes.small,\n fontFamily: 'inherit',\n padding: 0,\n margin: '0 12px 0 0',\n color: palette.neutralPrimary,\n backgroundColor: 'transparent',\n border: 'none',\n borderRadius: 2,\n overflow: 'visible',\n selectors: {\n '&:nth-child(4n + 4)': {\n marginRight: 0,\n },\n '&:nth-child(n + 9)': {\n marginBottom: 0,\n },\n '& div': {\n fontWeight: FontWeights.regular,\n },\n '&:hover': {\n color: palette.neutralDark,\n backgroundColor: palette.neutralLight,\n cursor: 'pointer',\n outline: '1px solid transparent',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ background: 'Window', color: 'WindowText', outline: '1px solid Highlight' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n '&:active': {\n backgroundColor: palette.themeLight,\n selectors: (_b = {},\n _b[HighContrastSelector] = __assign({ background: 'Window', color: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _b),\n },\n },\n },\n ],\n current: highlightCurrent\n ? {\n color: palette.white,\n backgroundColor: palette.themePrimary,\n selectors: (_c = {\n '& div': {\n fontWeight: FontWeights.semibold,\n },\n '&:hover': {\n backgroundColor: palette.themePrimary,\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ backgroundColor: 'WindowText', color: 'Window' }, getHighContrastNoAdjustStyle()),\n _d),\n }\n },\n _c[HighContrastSelector] = __assign({ backgroundColor: 'WindowText', color: 'Window' }, getHighContrastNoAdjustStyle()),\n _c),\n }\n : {},\n selected: highlightSelected\n ? {\n color: palette.neutralPrimary,\n backgroundColor: palette.themeLight,\n fontWeight: FontWeights.semibold,\n selectors: (_e = {\n '& div': {\n fontWeight: FontWeights.semibold,\n },\n '&:hover, &:active': {\n backgroundColor: palette.themeLight,\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ color: 'Window', background: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _f),\n }\n },\n _e[HighContrastSelector] = __assign({ background: 'Highlight', color: 'Window' }, getHighContrastNoAdjustStyle()),\n _e),\n }\n : {},\n disabled: {\n selectors: (_g = {\n '&, &:disabled, & button': {\n color: palette.neutralTertiaryAlt,\n pointerEvents: 'none',\n }\n },\n _g[HighContrastSelector] = {\n color: 'GrayText',\n forcedColorAdjust: 'none',\n },\n _g),\n },\n };\n};\n//# sourceMappingURL=CalendarPicker.styles.js.map","import { getStyles as getPickerStyles } from '../CalendarPicker/CalendarPicker.styles';\nexport var getStyles = function (props) {\n /* Return styles from the base class.\n * If this component has extra styles not in the base, apply them here i.e.:\n * const myStyle: IStyle = {\n * display: \"block\"\n * }; *\n * return {...getPickerStyles(props), myStyle};\n */\n return getPickerStyles(props);\n};\n//# sourceMappingURL=CalendarMonth.styles.js.map","import { getStyles as getPickerStyles } from '../CalendarPicker/CalendarPicker.styles';\nexport var getStyles = function (props) {\n /* Return styles from the base class.\n * If this component has extra styles not in the base, apply them here i.e.:\n * const myStyle: IStyle = {\n * display: \"block\"\n * };\n * return {...getPickerStyles(props), myStyle};\n */\n return getPickerStyles(props);\n};\n//# sourceMappingURL=CalendarYear.styles.js.map","import { DEFAULT_CALENDAR_STRINGS } from '@fluentui/date-time-utilities';\nexport var defaultCalendarStrings = DEFAULT_CALENDAR_STRINGS;\n/**\n * @deprecated Use `defaultCalendarStrings`\n */\nexport var defaultDayPickerStrings = defaultCalendarStrings;\nexport var defaultCalendarNavigationIcons = {\n leftNavigation: 'Up',\n rightNavigation: 'Down',\n closeIcon: 'CalculatorMultiply',\n};\n//# sourceMappingURL=defaults.js.map","import { __assign, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { KeyCodes, getRTL, classNamesFunction, css, format } from '../../../Utilities';\nimport { FocusZone } from '../../../FocusZone';\nimport { Icon } from '../../../Icon';\nimport { usePrevious } from '@fluentui/react-hooks';\nimport { defaultCalendarNavigationIcons } from '../defaults';\nvar getClassNames = classNamesFunction();\nvar CELL_COUNT = 12;\nvar CELLS_PER_ROW = 4;\nvar DefaultCalendarYearStrings = {\n prevRangeAriaLabel: undefined,\n nextRangeAriaLabel: undefined,\n};\nvar CalendarYearGridCell = function (props) {\n var _a;\n var _b;\n var styles = props.styles, theme = props.theme, className = props.className, highlightCurrentYear = props.highlightCurrentYear, highlightSelectedYear = props.highlightSelectedYear, year = props.year, selected = props.selected, disabled = props.disabled, componentRef = props.componentRef, onSelectYear = props.onSelectYear, onRenderYear = props.onRenderYear;\n var buttonRef = React.useRef(null);\n React.useImperativeHandle(componentRef, function () { return ({\n focus: function () {\n var _a, _b;\n (_b = (_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n }); }, []);\n var onClick = function () {\n onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);\n };\n var onKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);\n }\n };\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n highlightCurrent: highlightCurrentYear,\n highlightSelected: highlightSelectedYear,\n });\n return (React.createElement(\"button\", { className: css(classNames.itemButton, (_a = {},\n _a[classNames.selected] = selected,\n _a[classNames.disabled] = disabled,\n _a)), type: \"button\", role: \"gridcell\", onClick: !disabled ? onClick : undefined, onKeyDown: !disabled ? onKeyDown : undefined, disabled: disabled, \"aria-selected\": selected, ref: buttonRef }, (_b = onRenderYear === null || onRenderYear === void 0 ? void 0 : onRenderYear(year)) !== null && _b !== void 0 ? _b : year));\n};\nCalendarYearGridCell.displayName = 'CalendarYearGridCell';\nvar CalendarYearGrid = function (props) {\n var styles = props.styles, theme = props.theme, className = props.className, fromYear = props.fromYear, toYear = props.toYear, animationDirection = props.animationDirection, animateBackwards = props.animateBackwards, minYear = props.minYear, maxYear = props.maxYear, onSelectYear = props.onSelectYear, selectedYear = props.selectedYear, componentRef = props.componentRef;\n var selectedCellRef = React.useRef(null);\n var currentCellRef = React.useRef(null);\n React.useImperativeHandle(componentRef, function () { return ({\n focus: function () {\n var _a, _b;\n (_b = (_a = (selectedCellRef.current || currentCellRef.current)) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n }); }, []);\n var renderCell = function (yearToRender) {\n var selected = yearToRender === selectedYear;\n var disabled = (minYear !== undefined && yearToRender < minYear) || (maxYear !== undefined && yearToRender > maxYear);\n var current = yearToRender === new Date().getFullYear();\n return (React.createElement(CalendarYearGridCell, __assign({}, props, { key: yearToRender, year: yearToRender, selected: selected, current: current, disabled: disabled, onSelectYear: onSelectYear, componentRef: selected ? selectedCellRef : current ? currentCellRef : undefined, theme: theme })));\n };\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n animateBackwards: animateBackwards,\n animationDirection: animationDirection,\n });\n var onRenderYear = function (value) {\n var _a, _b;\n return (_b = (_a = props.onRenderYear) === null || _a === void 0 ? void 0 : _a.call(props, value)) !== null && _b !== void 0 ? _b : value;\n };\n var gridAriaLabel = \"\".concat(onRenderYear(fromYear), \" - \").concat(onRenderYear(toYear));\n var year = fromYear;\n var cells = [];\n for (var i = 0; i < (toYear - fromYear + 1) / CELLS_PER_ROW; i++) {\n cells.push([]);\n for (var j = 0; j < CELLS_PER_ROW; j++) {\n cells[i].push(renderCell(year));\n year++;\n }\n }\n return (React.createElement(FocusZone, null,\n React.createElement(\"div\", { className: classNames.gridContainer, role: \"grid\", \"aria-label\": gridAriaLabel }, cells.map(function (cellRow, index) {\n return (React.createElement.apply(React, __spreadArray([\"div\", { key: 'yearPickerRow_' + index + '_' + fromYear, role: \"row\", className: classNames.buttonRow }], cellRow, false)));\n }))));\n};\nCalendarYearGrid.displayName = 'CalendarYearGrid';\nvar CalendarYearNavDirection;\n(function (CalendarYearNavDirection) {\n CalendarYearNavDirection[CalendarYearNavDirection[\"Previous\"] = 0] = \"Previous\";\n CalendarYearNavDirection[CalendarYearNavDirection[\"Next\"] = 1] = \"Next\";\n})(CalendarYearNavDirection || (CalendarYearNavDirection = {}));\nvar CalendarYearNavArrow = function (props) {\n var _a;\n var styles = props.styles, theme = props.theme, className = props.className, _b = props.navigationIcons, navigationIcons = _b === void 0 ? defaultCalendarNavigationIcons : _b, _c = props.strings, strings = _c === void 0 ? DefaultCalendarYearStrings : _c, direction = props.direction, onSelectPrev = props.onSelectPrev, onSelectNext = props.onSelectNext, fromYear = props.fromYear, toYear = props.toYear, maxYear = props.maxYear, minYear = props.minYear;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var ariaLabel = direction === CalendarYearNavDirection.Previous ? strings.prevRangeAriaLabel : strings.nextRangeAriaLabel;\n var newRangeOffset = direction === CalendarYearNavDirection.Previous ? -CELL_COUNT : CELL_COUNT;\n var newRange = { fromYear: fromYear + newRangeOffset, toYear: toYear + newRangeOffset };\n var ariaLabelString = ariaLabel ? (typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange)) : undefined;\n var disabled = direction === CalendarYearNavDirection.Previous\n ? minYear !== undefined && fromYear < minYear\n : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;\n var onNavigate = function () {\n direction === CalendarYearNavDirection.Previous ? onSelectPrev === null || onSelectPrev === void 0 ? void 0 : onSelectPrev() : onSelectNext === null || onSelectNext === void 0 ? void 0 : onSelectNext();\n };\n var onKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n onNavigate();\n }\n };\n // can be condensed, but leaving verbose for clarity due to regressions\n var isLeftNavigation = getRTL()\n ? direction === CalendarYearNavDirection.Next\n : direction === CalendarYearNavDirection.Previous;\n return (React.createElement(\"button\", { className: css(classNames.navigationButton, (_a = {},\n _a[classNames.disabled] = disabled,\n _a)), onClick: !disabled ? onNavigate : undefined, onKeyDown: !disabled ? onKeyDown : undefined, type: \"button\", title: ariaLabelString, disabled: disabled },\n React.createElement(Icon, { iconName: isLeftNavigation ? navigationIcons.leftNavigation : navigationIcons.rightNavigation })));\n};\nCalendarYearNavArrow.displayName = 'CalendarYearNavArrow';\nvar CalendarYearNav = function (props) {\n var styles = props.styles, theme = props.theme, className = props.className;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", { className: classNames.navigationButtonsContainer },\n React.createElement(CalendarYearNavArrow, __assign({}, props, { direction: CalendarYearNavDirection.Previous })),\n React.createElement(CalendarYearNavArrow, __assign({}, props, { direction: CalendarYearNavDirection.Next }))));\n};\nCalendarYearNav.displayName = 'CalendarYearNav';\nvar CalendarYearTitle = function (props) {\n var styles = props.styles, theme = props.theme, className = props.className, fromYear = props.fromYear, toYear = props.toYear, _a = props.strings, strings = _a === void 0 ? DefaultCalendarYearStrings : _a, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection;\n var onHeaderSelect = function () {\n var _a;\n (_a = props.onHeaderSelect) === null || _a === void 0 ? void 0 : _a.call(props, true);\n };\n var onHeaderKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) {\n onHeaderSelect();\n }\n };\n var onRenderYear = function (year) {\n var _a, _b;\n return (_b = (_a = props.onRenderYear) === null || _a === void 0 ? void 0 : _a.call(props, year)) !== null && _b !== void 0 ? _b : year;\n };\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards: animateBackwards,\n animationDirection: animationDirection,\n });\n if (props.onHeaderSelect) {\n var rangeAriaLabel = strings.rangeAriaLabel;\n var headerAriaLabelFormatString = strings.headerAriaLabelFormatString;\n var currentDateRange = rangeAriaLabel\n ? typeof rangeAriaLabel === 'string'\n ? rangeAriaLabel\n : rangeAriaLabel(props)\n : undefined;\n var ariaLabel = headerAriaLabelFormatString\n ? format(headerAriaLabelFormatString, currentDateRange)\n : currentDateRange;\n return (React.createElement(\"button\", { className: classNames.currentItemButton, onClick: onHeaderSelect, onKeyDown: onHeaderKeyDown, \"aria-label\": ariaLabel, role: \"button\", type: \"button\" },\n React.createElement(\"span\", { \"aria-live\": \"assertive\", \"aria-atomic\": \"true\" },\n onRenderYear(fromYear),\n \" - \",\n onRenderYear(toYear))));\n }\n return (React.createElement(\"div\", { className: classNames.current },\n onRenderYear(fromYear),\n \" - \",\n onRenderYear(toYear)));\n};\nCalendarYearTitle.displayName = 'CalendarYearTitle';\nvar CalendarYearHeader = function (props) {\n var _a;\n var styles = props.styles, theme = props.theme, className = props.className, animateBackwards = props.animateBackwards, animationDirection = props.animationDirection, onRenderTitle = props.onRenderTitle;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards: animateBackwards,\n animationDirection: animationDirection,\n });\n return (React.createElement(\"div\", { className: classNames.headerContainer }, (_a = onRenderTitle === null || onRenderTitle === void 0 ? void 0 : onRenderTitle(props)) !== null && _a !== void 0 ? _a : React.createElement(CalendarYearTitle, __assign({}, props)),\n React.createElement(CalendarYearNav, __assign({}, props))));\n};\nCalendarYearHeader.displayName = 'CalendarYearHeader';\nfunction useAnimateBackwards(_a) {\n var selectedYear = _a.selectedYear, navigatedYear = _a.navigatedYear;\n var rangeYear = selectedYear || navigatedYear || new Date().getFullYear();\n var fromYear = Math.floor(rangeYear / 10) * 10;\n var previousFromYear = usePrevious(fromYear);\n if (!previousFromYear || previousFromYear === fromYear) {\n return undefined;\n }\n else if (previousFromYear > fromYear) {\n return true;\n }\n else {\n return false;\n }\n}\nfunction useYearRangeState(_a) {\n var selectedYear = _a.selectedYear, navigatedYear = _a.navigatedYear;\n var rangeYear = React.useMemo(function () {\n return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;\n }, [navigatedYear, selectedYear]);\n var _b = React.useState(rangeYear), fromYear = _b[0], setFromYear = _b[1];\n var onNavNext = function () {\n setFromYear(function (year) { return year + CELL_COUNT; });\n };\n var onNavPrevious = function () {\n setFromYear(function (year) { return year - CELL_COUNT; });\n };\n React.useEffect(function () {\n setFromYear(rangeYear);\n }, [rangeYear]);\n var toYear = fromYear + CELL_COUNT - 1;\n return [fromYear, toYear, onNavNext, onNavPrevious];\n}\nexport var CalendarYearBase = function (props) {\n var animateBackwards = useAnimateBackwards(props);\n var _a = useYearRangeState(props), fromYear = _a[0], toYear = _a[1], onNavNext = _a[2], onNavPrevious = _a[3];\n var gridRef = React.useRef(null);\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n var _a, _b;\n (_b = (_a = gridRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n },\n }); });\n var styles = props.styles, theme = props.theme, className = props.className;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(CalendarYearHeader, __assign({}, props, { fromYear: fromYear, toYear: toYear, onSelectPrev: onNavPrevious, onSelectNext: onNavNext, animateBackwards: animateBackwards })),\n React.createElement(CalendarYearGrid, __assign({}, props, { fromYear: fromYear, toYear: toYear, animateBackwards: animateBackwards, componentRef: gridRef }))));\n};\nCalendarYearBase.displayName = 'CalendarYearBase';\n//# sourceMappingURL=CalendarYear.base.js.map","import { getStyles } from './CalendarYear.styles';\nimport { styled } from '../../../Utilities';\nimport { CalendarYearBase } from './CalendarYear.base';\nexport var CalendarYear = styled(CalendarYearBase, getStyles, undefined, { scope: 'CalendarYear' });\n//# sourceMappingURL=CalendarYear.js.map","import * as React from 'react';\nimport { FocusZone } from '../../../FocusZone';\nimport { addYears, setMonth, getYearStart, getYearEnd, getMonthStart, getMonthEnd, compareDatePart, DEFAULT_DATE_FORMATTING, } from '@fluentui/date-time-utilities';\nimport { Icon } from '../../../Icon';\nimport { getStyles } from './CalendarMonth.styles';\nimport { css, getRTL, classNamesFunction, KeyCodes, format, getPropsWithDefaults } from '@fluentui/utilities';\nimport { CalendarYear } from '../CalendarYear/CalendarYear';\nimport { usePrevious } from '@fluentui/react-hooks';\nimport { defaultCalendarNavigationIcons } from '../defaults';\nvar MONTHS_PER_ROW = 4;\nvar getClassNames = classNamesFunction();\nvar DEFAULT_PROPS = {\n styles: getStyles,\n strings: undefined,\n navigationIcons: defaultCalendarNavigationIcons,\n dateTimeFormatter: DEFAULT_DATE_FORMATTING,\n yearPickerHidden: false,\n};\nfunction useAnimateBackwards(_a) {\n var navigatedDate = _a.navigatedDate;\n var currentYear = navigatedDate.getFullYear();\n var previousYear = usePrevious(currentYear);\n if (previousYear === undefined || previousYear === currentYear) {\n return undefined;\n }\n else {\n return previousYear > currentYear;\n }\n}\nfunction useFocusLogic(_a) {\n var componentRef = _a.componentRef;\n var navigatedMonthRef = React.useRef(null);\n var calendarYearRef = React.useRef(null);\n var focusOnUpdate = React.useRef(false);\n var focus = React.useCallback(function () {\n if (calendarYearRef.current) {\n calendarYearRef.current.focus();\n }\n else if (navigatedMonthRef.current) {\n navigatedMonthRef.current.focus();\n }\n }, []);\n React.useImperativeHandle(componentRef, function () { return ({ focus: focus }); }, [focus]);\n React.useEffect(function () {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n var focusOnNextUpdate = function () {\n focusOnUpdate.current = true;\n };\n return [navigatedMonthRef, calendarYearRef, focusOnNextUpdate];\n}\nexport var CalendarMonthBase = function (propsWithoutDefaults) {\n var _a, _b;\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var _c = useFocusLogic(props), navigatedMonthRef = _c[0], calendarYearRef = _c[1], focusOnNextUpdate = _c[2];\n var _d = React.useState(false), isYearPickerVisible = _d[0], setIsYearPickerVisible = _d[1];\n var animateBackwards = useAnimateBackwards(props);\n var navigatedDate = props.navigatedDate, selectedDate = props.selectedDate, strings = props.strings, _e = props.today, today = _e === void 0 ? new Date() : _e, navigationIcons = props.navigationIcons, dateTimeFormatter = props.dateTimeFormatter, minDate = props.minDate, maxDate = props.maxDate, theme = props.theme, styles = props.styles, className = props.className, allFocusable = props.allFocusable, highlightCurrentMonth = props.highlightCurrentMonth, highlightSelectedMonth = props.highlightSelectedMonth, animationDirection = props.animationDirection, yearPickerHidden = props.yearPickerHidden, onNavigateDate = props.onNavigateDate;\n var selectMonthCallback = function (newMonth) {\n return function () { return onSelectMonth(newMonth); };\n };\n var onSelectNextYear = function () {\n onNavigateDate(addYears(navigatedDate, 1), false);\n };\n var onSelectPrevYear = function () {\n onNavigateDate(addYears(navigatedDate, -1), false);\n };\n var onSelectMonth = function (newMonth) {\n var _a;\n // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked\n (_a = props.onHeaderSelect) === null || _a === void 0 ? void 0 : _a.call(props);\n onNavigateDate(setMonth(navigatedDate, newMonth), true);\n };\n var onHeaderSelect = function () {\n var _a;\n if (!yearPickerHidden) {\n focusOnNextUpdate();\n setIsYearPickerVisible(true);\n }\n else {\n (_a = props.onHeaderSelect) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n };\n var onSelectYear = function (selectedYear) {\n focusOnNextUpdate();\n var navYear = navigatedDate.getFullYear();\n if (navYear !== selectedYear) {\n var newNavigationDate = new Date(navigatedDate.getTime());\n newNavigationDate.setFullYear(selectedYear);\n // for min and max dates, adjust the new navigation date - perhaps this should be\n // checked on the master navigation date handler (i.e. in Calendar)\n if (maxDate && newNavigationDate > maxDate) {\n newNavigationDate = setMonth(newNavigationDate, maxDate.getMonth());\n }\n else if (minDate && newNavigationDate < minDate) {\n newNavigationDate = setMonth(newNavigationDate, minDate.getMonth());\n }\n onNavigateDate(newNavigationDate, true);\n }\n setIsYearPickerVisible(false);\n };\n var onYearPickerHeaderSelect = function (focus) {\n focusOnNextUpdate();\n setIsYearPickerVisible(false);\n };\n // navigationIcons has a default value in defaultProps, but typescript doesn't recognize this\n var leftNavigationIcon = navigationIcons.leftNavigation;\n var rightNavigationIcon = navigationIcons.rightNavigation;\n var dateFormatter = dateTimeFormatter;\n // determine if previous/next years are in bounds\n var isPrevYearInBounds = minDate ? compareDatePart(minDate, getYearStart(navigatedDate)) < 0 : true;\n var isNextYearInBounds = maxDate ? compareDatePart(getYearEnd(navigatedDate), maxDate) < 0 : true;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n hasHeaderClickCallback: !!props.onHeaderSelect || !yearPickerHidden,\n highlightCurrent: highlightCurrentMonth,\n highlightSelected: highlightSelectedMonth,\n animateBackwards: animateBackwards,\n animationDirection: animationDirection,\n });\n if (isYearPickerVisible) {\n var _f = getYearStrings(props), onRenderYear = _f[0], yearStrings = _f[1];\n // use navigated date for the year picker\n return (React.createElement(CalendarYear, { key: 'calendarYear', minYear: minDate ? minDate.getFullYear() : undefined, maxYear: maxDate ? maxDate.getFullYear() : undefined, \n // eslint-disable-next-line react/jsx-no-bind\n onSelectYear: onSelectYear, navigationIcons: navigationIcons, \n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onYearPickerHeaderSelect, selectedYear: selectedDate ? selectedDate.getFullYear() : navigatedDate ? navigatedDate.getFullYear() : undefined, navigatedYear: navigatedDate.getFullYear(), onRenderYear: onRenderYear, strings: yearStrings, componentRef: calendarYearRef, styles: styles, highlightCurrentYear: highlightCurrentMonth, highlightSelectedYear: highlightSelectedMonth, animationDirection: animationDirection }));\n }\n var rowIndexes = [];\n for (var i = 0; i < strings.shortMonths.length / MONTHS_PER_ROW; i++) {\n rowIndexes.push(i);\n }\n var yearString = dateFormatter.formatYear(navigatedDate);\n var headerAriaLabel = strings.monthPickerHeaderAriaLabel\n ? format(strings.monthPickerHeaderAriaLabel, yearString)\n : yearString;\n return (React.createElement(\"div\", { className: classNames.root },\n React.createElement(\"div\", { className: classNames.headerContainer },\n React.createElement(\"button\", { className: classNames.currentItemButton, onClick: onHeaderSelect, onKeyDown: onButtonKeyDown(onHeaderSelect), \"aria-label\": headerAriaLabel, \"data-is-focusable\": !!props.onHeaderSelect || !yearPickerHidden, tabIndex: !!props.onHeaderSelect || !yearPickerHidden ? 0 : -1, type: \"button\" },\n React.createElement(\"span\", { \"aria-live\": \"polite\", \"aria-atomic\": \"true\" }, yearString)),\n React.createElement(\"div\", { className: classNames.navigationButtonsContainer },\n React.createElement(\"button\", { className: css(classNames.navigationButton, (_a = {},\n _a[classNames.disabled] = !isPrevYearInBounds,\n _a)), \"aria-disabled\": !isPrevYearInBounds, tabIndex: isPrevYearInBounds ? undefined : allFocusable ? 0 : -1, onClick: isPrevYearInBounds ? onSelectPrevYear : undefined, onKeyDown: isPrevYearInBounds ? onButtonKeyDown(onSelectPrevYear) : undefined, title: strings.prevYearAriaLabel\n ? strings.prevYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, -1))\n : undefined, type: \"button\" },\n React.createElement(Icon, { iconName: getRTL() ? rightNavigationIcon : leftNavigationIcon })),\n React.createElement(\"button\", { className: css(classNames.navigationButton, (_b = {},\n _b[classNames.disabled] = !isNextYearInBounds,\n _b)), \"aria-disabled\": !isNextYearInBounds, tabIndex: isNextYearInBounds ? undefined : allFocusable ? 0 : -1, onClick: isNextYearInBounds ? onSelectNextYear : undefined, onKeyDown: isNextYearInBounds ? onButtonKeyDown(onSelectNextYear) : undefined, title: strings.nextYearAriaLabel\n ? strings.nextYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, 1))\n : undefined, type: \"button\" },\n React.createElement(Icon, { iconName: getRTL() ? leftNavigationIcon : rightNavigationIcon })))),\n React.createElement(FocusZone, null,\n React.createElement(\"div\", { className: classNames.gridContainer, role: \"grid\", \"aria-label\": yearString }, rowIndexes.map(function (rowNum) {\n var monthsForRow = strings.shortMonths.slice(rowNum * MONTHS_PER_ROW, (rowNum + 1) * MONTHS_PER_ROW);\n return (React.createElement(\"div\", { key: 'monthRow_' + rowNum + navigatedDate.getFullYear(), role: \"row\", className: classNames.buttonRow }, monthsForRow.map(function (month, index) {\n var _a;\n var monthIndex = rowNum * MONTHS_PER_ROW + index;\n var indexedMonth = setMonth(navigatedDate, monthIndex);\n var isNavigatedMonth = navigatedDate.getMonth() === monthIndex;\n var isSelectedMonth = selectedDate.getMonth() === monthIndex;\n var isSelectedYear = selectedDate.getFullYear() === navigatedDate.getFullYear();\n var isInBounds = (minDate ? compareDatePart(minDate, getMonthEnd(indexedMonth)) < 1 : true) &&\n (maxDate ? compareDatePart(getMonthStart(indexedMonth), maxDate) < 1 : true);\n return (React.createElement(\"button\", { ref: isNavigatedMonth ? navigatedMonthRef : undefined, role: 'gridcell', className: css(classNames.itemButton, (_a = {},\n _a[classNames.current] = highlightCurrentMonth && isCurrentMonth(monthIndex, navigatedDate.getFullYear(), today),\n _a[classNames.selected] = highlightSelectedMonth && isSelectedMonth && isSelectedYear,\n _a[classNames.disabled] = !isInBounds,\n _a)), disabled: !allFocusable && !isInBounds, key: monthIndex, onClick: isInBounds ? selectMonthCallback(monthIndex) : undefined, onKeyDown: isInBounds ? onButtonKeyDown(selectMonthCallback(monthIndex)) : undefined, \"aria-label\": dateFormatter.formatMonth(indexedMonth, strings), \"aria-selected\": isNavigatedMonth, \"data-is-focusable\": isInBounds ? true : undefined, type: \"button\" }, month));\n })));\n })))));\n};\nCalendarMonthBase.displayName = 'CalendarMonthBase';\nfunction getYearStrings(_a) {\n var strings = _a.strings, navigatedDate = _a.navigatedDate, dateTimeFormatter = _a.dateTimeFormatter;\n var yearToString = function (year) {\n if (dateTimeFormatter) {\n // create a date based on the current nav date\n var yearFormattingDate = new Date(navigatedDate.getTime());\n yearFormattingDate.setFullYear(year);\n return dateTimeFormatter.formatYear(yearFormattingDate);\n }\n return String(year);\n };\n var yearRangeToString = function (yearRange) {\n return \"\".concat(yearToString(yearRange.fromYear), \" - \").concat(yearToString(yearRange.toYear));\n };\n var yearRangeToNextDecadeLabel = function (yearRange) {\n return strings.nextYearRangeAriaLabel ? \"\".concat(strings.nextYearRangeAriaLabel, \" \").concat(yearRangeToString(yearRange)) : '';\n };\n var yearRangeToPrevDecadeLabel = function (yearRange) {\n return strings.prevYearRangeAriaLabel ? \"\".concat(strings.prevYearRangeAriaLabel, \" \").concat(yearRangeToString(yearRange)) : '';\n };\n return [\n yearToString,\n {\n rangeAriaLabel: yearRangeToString,\n prevRangeAriaLabel: yearRangeToPrevDecadeLabel,\n nextRangeAriaLabel: yearRangeToNextDecadeLabel,\n headerAriaLabelFormatString: strings.yearPickerHeaderAriaLabel,\n },\n ];\n}\nfunction isCurrentMonth(month, year, today) {\n return today.getFullYear() === year && today.getMonth() === month;\n}\nfunction onButtonKeyDown(callback) {\n return function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n callback();\n break;\n }\n };\n}\n//# sourceMappingURL=CalendarMonth.base.js.map","import { CalendarMonthBase } from './CalendarMonth.base';\nimport { getStyles } from './CalendarMonth.styles';\nimport { styled } from '../../../Utilities';\nexport var CalendarMonth = styled(CalendarMonthBase, getStyles, undefined, { scope: 'CalendarMonth' });\n//# sourceMappingURL=CalendarMonth.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DayOfWeek, FirstWeekOfYear, DateRangeType, addMonths, addYears, DEFAULT_CALENDAR_STRINGS, DEFAULT_DATE_FORMATTING, } from '@fluentui/date-time-utilities';\nimport { CalendarDay } from './CalendarDay/CalendarDay';\nimport { CalendarMonth } from './CalendarMonth/CalendarMonth';\nimport { css, KeyCodes, classNamesFunction, focusAsync, format, FocusRects, getPropsWithDefaults, getWindow, } from '@fluentui/utilities';\nimport { useControllableValue } from '@fluentui/react-hooks';\nimport { defaultCalendarNavigationIcons } from './defaults';\nvar MIN_SIZE_FORCE_OVERLAY = 440;\nvar getClassNames = classNamesFunction();\nvar defaultWorkWeekDays = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday,\n];\nvar DEFAULT_PROPS = {\n isMonthPickerVisible: true,\n isDayPickerVisible: true,\n showMonthPickerAsOverlay: false,\n today: new Date(),\n firstDayOfWeek: DayOfWeek.Sunday,\n dateRangeType: DateRangeType.Day,\n showGoToToday: true,\n strings: DEFAULT_CALENDAR_STRINGS,\n highlightCurrentMonth: false,\n highlightSelectedMonth: false,\n navigationIcons: defaultCalendarNavigationIcons,\n showWeekNumbers: false,\n firstWeekOfYear: FirstWeekOfYear.FirstDay,\n dateTimeFormatter: DEFAULT_DATE_FORMATTING,\n showSixWeeksByDefault: false,\n workWeekDays: defaultWorkWeekDays,\n showCloseButton: false,\n allFocusable: false,\n};\nfunction useDateState(props) {\n var value = props.value, todayProp = props.today, onSelectDate = props.onSelectDate;\n var today = React.useMemo(function () {\n if (todayProp === undefined) {\n return new Date();\n }\n return todayProp;\n }, [todayProp]);\n /** The currently selected date in the calendar */\n var _a = useControllableValue(value, today), _b = _a[0], selectedDate = _b === void 0 ? today : _b, setSelectedDate = _a[1];\n /** The currently focused date in the day picker, but not necessarily selected */\n var _c = React.useState(value), _d = _c[0], navigatedDay = _d === void 0 ? today : _d, setNavigatedDay = _c[1];\n /** The currently focused date in the month picker, but not necessarily selected */\n var _e = React.useState(value), _f = _e[0], navigatedMonth = _f === void 0 ? today : _f, setNavigatedMonth = _e[1];\n /** If using a controlled value, when that value changes, navigate to that date */\n var _g = React.useState(value), _h = _g[0], lastSelectedDate = _h === void 0 ? today : _h, setLastSelectedDate = _g[1];\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n var navigateMonth = function (date) {\n setNavigatedMonth(date);\n };\n var navigateDay = function (date) {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n var onDateSelected = function (date, selectedDateRangeArray) {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date, selectedDateRangeArray);\n };\n return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth];\n}\nfunction useVisibilityState(props) {\n /** State used to show/hide month picker */\n var _a = useControllableValue(getShowMonthPickerAsOverlay(props) ? undefined : props.isMonthPickerVisible, false), _b = _a[0], isMonthPickerVisible = _b === void 0 ? true : _b, setIsMonthPickerVisible = _a[1];\n /** State used to show/hide day picker */\n var _c = useControllableValue(getShowMonthPickerAsOverlay(props) ? undefined : props.isDayPickerVisible, true), _d = _c[0], isDayPickerVisible = _d === void 0 ? true : _d, setIsDayPickerVisible = _c[1];\n var toggleDayMonthPickerVisibility = function () {\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility];\n}\nfunction useFocusLogic(_a, isDayPickerVisible, isMonthPickerVisible) {\n var componentRef = _a.componentRef;\n var dayPicker = React.useRef(null);\n var monthPicker = React.useRef(null);\n var focusOnUpdate = React.useRef(false);\n var focus = React.useCallback(function () {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n }\n else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [isDayPickerVisible, isMonthPickerVisible]);\n React.useImperativeHandle(componentRef, function () { return ({ focus: focus }); }, [focus]);\n React.useEffect(function () {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n var focusOnNextUpdate = function () {\n focusOnUpdate.current = true;\n };\n return [dayPicker, monthPicker, focusOnNextUpdate];\n}\nexport var CalendarBase = React.forwardRef(function (propsWithoutDefaults, forwardedRef) {\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var _a = useDateState(props), selectedDate = _a[0], navigatedDay = _a[1], navigatedMonth = _a[2], onDateSelected = _a[3], navigateDay = _a[4], navigateMonth = _a[5];\n var _b = useVisibilityState(props), isMonthPickerVisible = _b[0], isDayPickerVisible = _b[1], toggleDayMonthPickerVisibility = _b[2];\n var _c = useFocusLogic(props, isDayPickerVisible, isMonthPickerVisible), dayPicker = _c[0], monthPicker = _c[1], focusOnNextUpdate = _c[2];\n var renderGoToTodayButton = function () {\n var goTodayEnabled = showGoToToday;\n if (goTodayEnabled && today) {\n goTodayEnabled =\n navigatedDay.getFullYear() !== today.getFullYear() ||\n navigatedDay.getMonth() !== today.getMonth() ||\n navigatedMonth.getFullYear() !== today.getFullYear() ||\n navigatedMonth.getMonth() !== today.getMonth();\n }\n return (showGoToToday && (React.createElement(\"button\", { className: css('js-goToday', classes.goTodayButton), onClick: onGotoToday, onKeyDown: onButtonKeyDown(onGotoToday), type: \"button\", disabled: !goTodayEnabled }, strings.goToToday)));\n };\n var onNavigateDayDate = function (date, focusOnNavigatedDay) {\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n var onNavigateMonthDate = function (date, focusOnNavigatedDay) {\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n navigateDay(date);\n };\n var onHeaderSelect = getShowMonthPickerAsOverlay(props)\n ? function () {\n toggleDayMonthPickerVisibility();\n focusOnNextUpdate();\n }\n : undefined;\n var onGotoToday = function () {\n navigateDay(today);\n focusOnNextUpdate();\n };\n var onButtonKeyDown = function (callback) {\n return function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n case KeyCodes.space:\n callback();\n break;\n }\n };\n };\n var onDatePickerPopupKeyDown = function (ev) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.enter:\n ev.preventDefault();\n break;\n case KeyCodes.backspace:\n ev.preventDefault();\n break;\n case KeyCodes.escape:\n (_a = props.onDismiss) === null || _a === void 0 ? void 0 : _a.call(props);\n break;\n case KeyCodes.pageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n }\n else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case KeyCodes.pageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n }\n else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n var rootClass = 'ms-DatePicker';\n var firstDayOfWeek = props.firstDayOfWeek, dateRangeType = props.dateRangeType, strings = props.strings, showGoToToday = props.showGoToToday, highlightCurrentMonth = props.highlightCurrentMonth, highlightSelectedMonth = props.highlightSelectedMonth, navigationIcons = props.navigationIcons, minDate = props.minDate, maxDate = props.maxDate, restrictedDates = props.restrictedDates, id = props.id, className = props.className, showCloseButton = props.showCloseButton, allFocusable = props.allFocusable, styles = props.styles, showWeekNumbers = props.showWeekNumbers, theme = props.theme, calendarDayProps = props.calendarDayProps, calendarMonthProps = props.calendarMonthProps, dateTimeFormatter = props.dateTimeFormatter, _d = props.today, today = _d === void 0 ? new Date() : _d;\n var showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n var monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n var overlaidWithButton = showMonthPickerAsOverlay && showGoToToday;\n var classes = getClassNames(styles, {\n theme: theme,\n className: className,\n isMonthPickerVisible: isMonthPickerVisible,\n isDayPickerVisible: isDayPickerVisible,\n monthPickerOnly: monthPickerOnly,\n showMonthPickerAsOverlay: showMonthPickerAsOverlay,\n overlaidWithButton: overlaidWithButton,\n overlayedWithButton: overlaidWithButton,\n showGoToToday: showGoToToday,\n showWeekNumbers: showWeekNumbers,\n });\n var todayDateString = '';\n var selectedDateString = '';\n if (dateTimeFormatter && strings.todayDateFormatString) {\n todayDateString = format(strings.todayDateFormatString, dateTimeFormatter.formatMonthDayYear(today, strings));\n }\n if (dateTimeFormatter && strings.selectedDateFormatString) {\n var dateStringFormatter = monthPickerOnly\n ? dateTimeFormatter.formatMonthYear\n : dateTimeFormatter.formatMonthDayYear;\n selectedDateString = format(strings.selectedDateFormatString, dateStringFormatter(selectedDate, strings));\n }\n var selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n return (React.createElement(\"div\", { id: id, ref: forwardedRef, role: \"group\", \"aria-label\": selectionAndTodayString, className: css(rootClass, classes.root, className, 'ms-slideDownIn10'), onKeyDown: onDatePickerPopupKeyDown },\n React.createElement(\"div\", { className: classes.liveRegion, \"aria-live\": \"polite\", \"aria-atomic\": \"true\" },\n React.createElement(\"span\", null, selectedDateString)),\n isDayPickerVisible && (React.createElement(CalendarDay, __assign({ selectedDate: selectedDate, navigatedDate: navigatedDay, today: props.today, onSelectDate: onDateSelected, \n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateDayDate, onDismiss: props.onDismiss, firstDayOfWeek: firstDayOfWeek, dateRangeType: dateRangeType, strings: strings, \n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect, navigationIcons: navigationIcons, showWeekNumbers: props.showWeekNumbers, firstWeekOfYear: props.firstWeekOfYear, dateTimeFormatter: props.dateTimeFormatter, showSixWeeksByDefault: props.showSixWeeksByDefault, minDate: minDate, maxDate: maxDate, restrictedDates: restrictedDates, workWeekDays: props.workWeekDays, componentRef: dayPicker, showCloseButton: showCloseButton, allFocusable: allFocusable }, calendarDayProps))),\n isDayPickerVisible && isMonthPickerVisible && React.createElement(\"div\", { className: classes.divider }),\n isMonthPickerVisible ? (React.createElement(\"div\", { className: classes.monthPickerWrapper },\n React.createElement(CalendarMonth, __assign({ navigatedDate: navigatedMonth, selectedDate: navigatedDay, strings: strings, \n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateMonthDate, today: props.today, highlightCurrentMonth: highlightCurrentMonth, highlightSelectedMonth: highlightSelectedMonth, \n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect, navigationIcons: navigationIcons, dateTimeFormatter: props.dateTimeFormatter, minDate: minDate, maxDate: maxDate, componentRef: monthPicker }, calendarMonthProps)),\n renderGoToTodayButton())) : (renderGoToTodayButton()),\n React.createElement(FocusRects, null)));\n});\nCalendarBase.displayName = 'CalendarBase';\nfunction getShowMonthPickerAsOverlay(_a) {\n var showMonthPickerAsOverlay = _a.showMonthPickerAsOverlay, isDayPickerVisible = _a.isDayPickerVisible;\n var win = getWindow();\n return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n}\n//# sourceMappingURL=Calendar.base.js.map","import { normalize, FontSizes, getFocusStyle, HighContrastSelector } from '@fluentui/style-utilities';\nexport var styles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isDayPickerVisible = props.isDayPickerVisible, isMonthPickerVisible = props.isMonthPickerVisible, showWeekNumbers = props.showWeekNumbers;\n var palette = theme.palette;\n var totalWidth = isDayPickerVisible && isMonthPickerVisible ? 440 : 220;\n if (showWeekNumbers && isDayPickerVisible) {\n totalWidth += 30;\n }\n return {\n root: [\n normalize,\n {\n display: 'flex',\n width: totalWidth,\n },\n !isMonthPickerVisible && {\n flexDirection: 'column',\n },\n className,\n ],\n divider: {\n top: 0,\n borderRight: '1px solid',\n borderColor: palette.neutralLight,\n },\n monthPickerWrapper: [\n {\n display: 'flex',\n flexDirection: 'column',\n },\n ],\n goTodayButton: [\n getFocusStyle(theme, { inset: -1 }),\n {\n bottom: 0,\n color: palette.neutralPrimary,\n height: 30,\n lineHeight: 30,\n backgroundColor: 'transparent',\n border: 'none',\n boxSizing: 'content-box',\n padding: '0 4px',\n alignSelf: 'flex-end',\n marginRight: 16,\n marginTop: 3,\n fontSize: FontSizes.small,\n fontFamily: 'inherit',\n overflow: 'visible',\n selectors: {\n '& div': {\n fontSize: FontSizes.small,\n },\n '&:hover': {\n color: palette.themePrimary,\n backgroundColor: 'transparent',\n cursor: 'pointer',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n outline: '1px solid Buttontext',\n borderRadius: '2px',\n },\n _a),\n },\n '&:active': {\n color: palette.themeDark,\n },\n '&:disabled': {\n color: palette.neutralTertiaryAlt,\n pointerEvents: 'none',\n },\n },\n },\n ],\n liveRegion: {\n border: 0,\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n width: '1px',\n position: 'absolute',\n },\n };\n};\n//# sourceMappingURL=Calendar.styles.js.map","import { styled } from '@fluentui/utilities';\nimport { CalendarBase } from './Calendar.base';\nimport { styles } from './Calendar.styles';\nexport var Calendar = styled(CalendarBase, styles, undefined, {\n scope: 'Calendar',\n});\n//# sourceMappingURL=Calendar.js.map","import * as React from 'react';\nimport { Icon, FontIcon } from '../../Icon';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nexport var CheckBase = React.forwardRef(function (props, ref) {\n var _a = props.checked, checked = _a === void 0 ? false : _a, className = props.className, theme = props.theme, styles = props.styles, _b = props.useFastIcons, useFastIcons = _b === void 0 ? true : _b;\n var classNames = getClassNames(styles, { theme: theme, className: className, checked: checked });\n var IconComponent = useFastIcons ? FontIcon : Icon;\n return (React.createElement(\"div\", { className: classNames.root, ref: ref },\n React.createElement(IconComponent, { iconName: \"CircleRing\", className: classNames.circle }),\n React.createElement(IconComponent, { iconName: \"StatusCircleCheckmark\", className: classNames.check })));\n});\nCheckBase.displayName = 'CheckBase';\n//# sourceMappingURL=Check.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getGlobalClassNames, IconFontSizes, getHighContrastNoAdjustStyle } from '../../Styling';\nimport { getRTL } from '../../Utilities';\nexport var CheckGlobalClassNames = {\n root: 'ms-Check',\n circle: 'ms-Check-circle',\n check: 'ms-Check-check',\n /** Must be manually applied to the parent element of the check. */\n checkHost: 'ms-Check-checkHost',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e;\n // eslint-disable-next-line deprecation/deprecation\n var _f = props.height, height = _f === void 0 ? props.checkBoxHeight || '18px' : _f, checked = props.checked, className = props.className, theme = props.theme;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var isRTL = getRTL(theme);\n var classNames = getGlobalClassNames(CheckGlobalClassNames, theme);\n var sharedCircleCheck = {\n fontSize: height,\n position: 'absolute',\n left: 0,\n top: 0,\n width: height,\n height: height,\n textAlign: 'center',\n // inline-flex prevents the check from shifting with custom line height styles\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n verticalAlign: 'middle',\n };\n return {\n root: [\n classNames.root,\n fonts.medium,\n {\n // lineHeight currently needs to be a string to output without 'px'\n lineHeight: '1',\n width: height,\n height: height,\n verticalAlign: 'top',\n position: 'relative',\n userSelect: 'none',\n selectors: (_a = {\n ':before': {\n content: '\"\"',\n position: 'absolute',\n top: '1px',\n right: '1px',\n bottom: '1px',\n left: '1px',\n borderRadius: '50%',\n opacity: 1,\n background: semanticColors.bodyBackground,\n }\n },\n _a[\".\".concat(classNames.checkHost, \":hover &, .\").concat(classNames.checkHost, \":focus &, &:hover, &:focus\")] = {\n opacity: 1,\n },\n _a),\n },\n checked && [\n 'is-checked',\n {\n selectors: {\n ':before': {\n background: palette.themePrimary,\n opacity: 1,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n background: 'Window',\n },\n _b),\n },\n },\n },\n ],\n className,\n ],\n circle: [\n classNames.circle,\n sharedCircleCheck,\n {\n color: palette.neutralSecondary,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'WindowText',\n },\n _c),\n },\n checked && {\n color: palette.white,\n },\n ],\n check: [\n classNames.check,\n sharedCircleCheck,\n {\n opacity: 0,\n color: palette.neutralSecondary,\n fontSize: IconFontSizes.medium,\n left: isRTL ? '-0.5px' : '.5px',\n top: '-1px',\n selectors: (_d = {\n ':hover': {\n opacity: 1,\n }\n },\n _d[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _d),\n },\n checked && {\n opacity: 1,\n color: palette.white,\n fontWeight: 900,\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n border: 'none',\n color: 'WindowText',\n },\n _e),\n },\n ],\n checkHost: classNames.checkHost,\n };\n};\n//# sourceMappingURL=Check.styles.js.map","import { styled } from '../../Utilities';\nimport { CheckBase } from './Check.base';\nimport { getStyles } from './Check.styles';\nexport var Check = styled(CheckBase, getStyles, undefined, {\n scope: 'Check',\n}, true);\n//# sourceMappingURL=Check.js.map","export var MAX_COLOR_SATURATION = 100;\nexport var MAX_COLOR_HUE = 359;\nexport var MAX_COLOR_VALUE = 100;\nexport var MAX_COLOR_RGB = 255;\n/** @deprecated Use MAX_COLOR_RGB (255) or MAX_COLOR_ALPHA (100) */\nexport var MAX_COLOR_RGBA = MAX_COLOR_RGB;\nexport var MAX_COLOR_ALPHA = 100;\n/** Minimum length for a hexadecimal color string (not including the #) */\nexport var MIN_HEX_LENGTH = 3;\n/** Maximum length for a hexadecimal color string (not including the #) */\nexport var MAX_HEX_LENGTH = 6;\n/** Minimum length for a string of an RGBA color component */\nexport var MIN_RGBA_LENGTH = 1;\n/** Maximum length for a string of an RGBA color component */\nexport var MAX_RGBA_LENGTH = 3;\n/** Regular expression matching only valid hexadecimal chars */\nexport var HEX_REGEX = /^[\\da-f]{0,6}$/i;\n/** Regular expression matching only numbers */\nexport var RGBA_REGEX = /^\\d{0,3}$/;\n//# sourceMappingURL=consts.js.map","/** Converts HSL components to an HSV color. */\nexport function hsl2hsv(h, s, l) {\n s *= (l < 50 ? l : 100 - l) / 100;\n var v = l + s;\n return {\n h: h,\n s: v === 0 ? 0 : ((2 * s) / v) * 100,\n v: v,\n };\n}\n//# sourceMappingURL=hsl2hsv.js.map","import { MAX_COLOR_RGB } from './consts';\n/** Converts HSV components to an RGB color. Does not set the alpha value. */\nexport function hsv2rgb(h, s, v) {\n s = s / 100;\n v = v / 100;\n var rgb = [];\n var c = v * s;\n var hh = h / 60;\n var x = c * (1 - Math.abs((hh % 2) - 1));\n var m = v - c;\n switch (Math.floor(hh)) {\n case 0:\n rgb = [c, x, 0];\n break;\n case 1:\n rgb = [x, c, 0];\n break;\n case 2:\n rgb = [0, c, x];\n break;\n case 3:\n rgb = [0, x, c];\n break;\n case 4:\n rgb = [x, 0, c];\n break;\n case 5:\n rgb = [c, 0, x];\n break;\n }\n return {\n r: Math.round(MAX_COLOR_RGB * (rgb[0] + m)),\n g: Math.round(MAX_COLOR_RGB * (rgb[1] + m)),\n b: Math.round(MAX_COLOR_RGB * (rgb[2] + m)),\n };\n}\n//# sourceMappingURL=hsv2rgb.js.map","import { hsl2hsv } from './hsl2hsv';\nimport { hsv2rgb } from './hsv2rgb';\n/** Converts HSL components to an RGB color. Does not set the alpha value. */\nexport function hsl2rgb(h, s, l) {\n var hsv = hsl2hsv(h, s, l);\n return hsv2rgb(hsv.h, hsv.s, hsv.v);\n}\n//# sourceMappingURL=hsl2rgb.js.map","import { getDocument } from '@fluentui/utilities';\nimport { MAX_COLOR_ALPHA } from './consts';\nimport { hsl2rgb } from './hsl2rgb';\n/**\n * Converts a valid CSS color string to an RGB color.\n * Note that hex colors *must* be prefixed with # to be considered valid.\n * Alpha in returned color defaults to 100.\n * Four and eight digit hex values (with alpha) are supported if the current browser supports them.\n */\nexport function cssColor(color, doc) {\n if (!color) {\n return undefined;\n }\n var theDoc = doc !== null && doc !== void 0 ? doc : getDocument();\n // Need to check the following valid color formats: RGB(A), HSL(A), hex, named color\n // First check for well formatted RGB(A), HSL(A), and hex formats at the start.\n // This is for perf (no creating an element) and catches the intentional \"transparent\" color\n // case early on.\n var easyColor = _rgba(color) || _hex6(color) || _hex3(color) || _hsla(color);\n if (easyColor) {\n return easyColor;\n }\n // if the above fails, do the more expensive catch-all\n return _browserCompute(color, theDoc);\n}\n/**\n * Uses the browser's getComputedStyle() to determine what the passed-in color is.\n * This assumes _rgba, _hex6, _hex3, and _hsla have already been tried and all failed.\n * This works by attaching an element to the DOM, which may fail in server-side rendering\n * or with headless browsers.\n */\nfunction _browserCompute(str, doc) {\n var _a;\n if (typeof doc === 'undefined') {\n // don't throw an error when used server-side\n return undefined;\n }\n var elem = doc.createElement('div');\n elem.style.backgroundColor = str;\n // This element must be attached to the DOM for getComputedStyle() to have a value\n elem.style.position = 'absolute';\n elem.style.top = '-9999px';\n elem.style.left = '-9999px';\n elem.style.height = '1px';\n elem.style.width = '1px';\n doc.body.appendChild(elem);\n var eComputedStyle = (_a = doc.defaultView) === null || _a === void 0 ? void 0 : _a.getComputedStyle(elem);\n var computedColor = eComputedStyle && eComputedStyle.backgroundColor;\n doc.body.removeChild(elem);\n // computedColor is always an RGB(A) string, except for invalid colors in IE/Edge which return 'transparent'\n // browsers return one of these if the color string is invalid,\n // so need to differentiate between an actual error and intentionally passing in this color\n if (computedColor === 'rgba(0, 0, 0, 0)' || computedColor === 'transparent') {\n switch (str.trim()) {\n // RGB and HSL were already checked at the start of the function\n case 'transparent':\n case '#0000':\n case '#00000000':\n return { r: 0, g: 0, b: 0, a: 0 };\n }\n return undefined;\n }\n return _rgba(computedColor);\n}\n/**\n * If `str` is in valid `rgb()` or `rgba()` format, returns an RGB color (alpha defaults to 100).\n * Otherwise returns undefined.\n */\nfunction _rgba(str) {\n if (!str) {\n return undefined;\n }\n var match = str.match(/^rgb(a?)\\(([\\d., ]+)\\)$/);\n if (match) {\n var hasAlpha = !!match[1];\n var expectedPartCount = hasAlpha ? 4 : 3;\n var parts = match[2].split(/ *, */).map(Number);\n if (parts.length === expectedPartCount) {\n return {\n r: parts[0],\n g: parts[1],\n b: parts[2],\n a: hasAlpha ? parts[3] * 100 : MAX_COLOR_ALPHA,\n };\n }\n }\n}\n/**\n * If `str` is in `hsl()` or `hsla()` format, returns an RGB color (alpha defaults to 100).\n * Otherwise returns undefined.\n */\nfunction _hsla(str) {\n var match = str.match(/^hsl(a?)\\(([\\d., ]+)\\)$/);\n if (match) {\n var hasAlpha = !!match[1];\n var expectedPartCount = hasAlpha ? 4 : 3;\n var parts = match[2].split(/ *, */).map(Number);\n if (parts.length === expectedPartCount) {\n var rgba = hsl2rgb(parts[0], parts[1], parts[2]);\n rgba.a = hasAlpha ? parts[3] * 100 : MAX_COLOR_ALPHA;\n return rgba;\n }\n }\n}\n/**\n * If `str` is in valid 6-digit hex format *with* # prefix, returns an RGB color (with alpha 100).\n * Otherwise returns undefined.\n */\nfunction _hex6(str) {\n if (str[0] === '#' && str.length === 7 && /^#[\\da-fA-F]{6}$/.test(str)) {\n return {\n r: parseInt(str.slice(1, 3), 16),\n g: parseInt(str.slice(3, 5), 16),\n b: parseInt(str.slice(5, 7), 16),\n a: MAX_COLOR_ALPHA,\n };\n }\n}\n/**\n * If `str` is in valid 3-digit hex format *with* # prefix, returns an RGB color (with alpha 100).\n * Otherwise returns undefined.\n */\nfunction _hex3(str) {\n if (str[0] === '#' && str.length === 4 && /^#[\\da-fA-F]{3}$/.test(str)) {\n return {\n r: parseInt(str[1] + str[1], 16),\n g: parseInt(str[2] + str[2], 16),\n b: parseInt(str[3] + str[3], 16),\n a: MAX_COLOR_ALPHA,\n };\n }\n}\n//# sourceMappingURL=cssColor.js.map","/** Clamp a value to ensure it falls within a given range. */\nexport function clamp(value, max, min) {\n if (min === void 0) { min = 0; }\n return value < min ? min : value > max ? max : value;\n}\n//# sourceMappingURL=clamp.js.map","import { MAX_COLOR_RGB } from './consts';\nimport { clamp } from './clamp';\n/** Converts RGB components to a hex color string (without # prefix). */\nexport function rgb2hex(r, g, b) {\n return [_rgbToPaddedHex(r), _rgbToPaddedHex(g), _rgbToPaddedHex(b)].join('');\n}\n/** Converts an RGB component to a 0-padded hex component of length 2. */\nfunction _rgbToPaddedHex(num) {\n num = clamp(num, MAX_COLOR_RGB);\n var hex = num.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n}\n//# sourceMappingURL=rgb2hex.js.map","import { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\n/** Converts HSV components to a hex color string (without # prefix). */\nexport function hsv2hex(h, s, v) {\n var _a = hsv2rgb(h, s, v), r = _a.r, g = _a.g, b = _a.b;\n return rgb2hex(r, g, b);\n}\n//# sourceMappingURL=hsv2hex.js.map","import { MAX_COLOR_RGB } from './consts';\n/** Converts RGB components to an HSV color. */\nexport function rgb2hsv(r, g, b) {\n var h = NaN;\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var delta = max - min;\n // hue\n if (delta === 0) {\n h = 0;\n }\n else if (r === max) {\n h = ((g - b) / delta) % 6;\n }\n else if (g === max) {\n h = (b - r) / delta + 2;\n }\n else if (b === max) {\n h = (r - g) / delta + 4;\n }\n h = Math.round(h * 60);\n if (h < 0) {\n h += 360;\n }\n // saturation\n var s = Math.round((max === 0 ? 0 : delta / max) * 100);\n // value\n var v = Math.round((max / MAX_COLOR_RGB) * 100);\n return { h: h, s: s, v: v };\n}\n//# sourceMappingURL=rgb2hsv.js.map","import { MAX_COLOR_ALPHA } from './consts';\n/**\n * @internal\n * Get a CSS color string from some color components.\n * If `a` is specified and not 100, returns an `rgba()` string.\n * Otherwise returns `hex` prefixed with #.\n */\nexport function _rgbaOrHexString(r, g, b, a, hex) {\n return a === MAX_COLOR_ALPHA || typeof a !== 'number' ? \"#\".concat(hex) : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(a / MAX_COLOR_ALPHA, \")\");\n}\n//# sourceMappingURL=_rgbaOrHexString.js.map","import { MAX_COLOR_ALPHA } from './consts';\nimport { rgb2hsv } from './rgb2hsv';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/** Converts an RGBA color to a color object (alpha defaults to 100). */\nexport function getColorFromRGBA(rgba) {\n var _a = rgba.a, a = _a === void 0 ? MAX_COLOR_ALPHA : _a, b = rgba.b, g = rgba.g, r = rgba.r;\n var _b = rgb2hsv(r, g, b), h = _b.h, s = _b.s, v = _b.v;\n var hex = rgb2hex(r, g, b);\n var str = _rgbaOrHexString(r, g, b, a, hex);\n var t = MAX_COLOR_ALPHA - a;\n return { a: a, b: b, g: g, h: h, hex: hex, r: r, s: s, str: str, v: v, t: t };\n}\n//# sourceMappingURL=getColorFromRGBA.js.map","import { __assign } from \"tslib\";\nimport { getDocument } from '@fluentui/utilities';\nimport { cssColor } from './cssColor';\nimport { getColorFromRGBA } from './getColorFromRGBA';\n/**\n * Converts a CSS color string to a color object.\n * Note that hex colors *must* be prefixed with # to be considered valid.\n *\n * `inputColor` will be used unmodified as the `str` property of the returned object.\n * Alpha defaults to 100 if not specified in `inputColor`.\n * Returns undefined if the color string is invalid/not recognized.\n */\nexport function getColorFromString(inputColor, doc) {\n var theDoc = doc !== null && doc !== void 0 ? doc : getDocument();\n var color = cssColor(inputColor, theDoc);\n if (!color) {\n return;\n }\n return __assign(__assign({}, getColorFromRGBA(color)), { str: inputColor });\n}\n//# sourceMappingURL=getColorFromString.js.map","import { MAX_COLOR_SATURATION, MAX_COLOR_VALUE } from './consts';\nimport { hsv2hex } from './hsv2hex';\n/**\n * Converts a color hue to an HTML color string (with # prefix).\n * This implementation ignores all components of `color` except hue.\n */\nexport function getFullColorString(color) {\n return \"#\".concat(hsv2hex(color.h, MAX_COLOR_SATURATION, MAX_COLOR_VALUE));\n}\n//# sourceMappingURL=getFullColorString.js.map","import { __assign } from \"tslib\";\nimport { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/**\n * Gets a color with the same hue as `color` and other components updated to match the given\n * saturation and value.\n *\n * Does not modify the original `color` and does not supply a default alpha value.\n */\nexport function updateSV(color, s, v) {\n var _a = hsv2rgb(color.h, s, v), r = _a.r, g = _a.g, b = _a.b;\n var hex = rgb2hex(r, g, b);\n return __assign(__assign({}, color), { s: s, v: v, r: r, g: g, b: b, hex: hex, str: _rgbaOrHexString(r, g, b, color.a, hex) });\n}\n//# sourceMappingURL=updateSV.js.map","import { __assign } from \"tslib\";\nimport { hsv2rgb } from './hsv2rgb';\nimport { rgb2hex } from './rgb2hex';\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\n/**\n * Gets a color with the same saturation and value as `color` and the other components updated\n * to match the given hue.\n *\n * Does not modify the original `color` and does not supply a default alpha value.\n */\nexport function updateH(color, h) {\n var _a = hsv2rgb(h, color.s, color.v), r = _a.r, g = _a.g, b = _a.b;\n var hex = rgb2hex(r, g, b);\n return __assign(__assign({}, color), { h: h, r: r, g: g, b: b, hex: hex, str: _rgbaOrHexString(r, g, b, color.a, hex) });\n}\n//# sourceMappingURL=updateH.js.map","import { __assign } from \"tslib\";\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\nimport { MAX_COLOR_ALPHA } from './consts';\n/**\n * Gets a color with the given alpha value and the same other components as `color`.\n * Does not modify the original color.\n */\nexport function updateA(color, a) {\n return __assign(__assign({}, color), { a: a, t: MAX_COLOR_ALPHA - a, str: _rgbaOrHexString(color.r, color.g, color.b, a, color.hex) });\n}\n//# sourceMappingURL=updateA.js.map","import { MAX_COLOR_ALPHA, MAX_COLOR_RGB } from './consts';\nimport { clamp } from './clamp';\n/** Corrects an RGB color to fall within the valid range. */\nexport function correctRGB(color) {\n return {\n r: clamp(color.r, MAX_COLOR_RGB),\n g: clamp(color.g, MAX_COLOR_RGB),\n b: clamp(color.b, MAX_COLOR_RGB),\n a: typeof color.a === 'number' ? clamp(color.a, MAX_COLOR_ALPHA) : color.a,\n };\n}\n//# sourceMappingURL=correctRGB.js.map","import { MIN_HEX_LENGTH, MAX_HEX_LENGTH } from './consts';\n/**\n * Corrects a hex color to have length 3 or 6. Defaults to white if too short.\n * Does NOT check anything besides the length (such as valid characters) and does NOT handle\n * hex values starting with # sign.\n */\nexport function correctHex(hex) {\n if (!hex || hex.length < MIN_HEX_LENGTH) {\n return 'ffffff'; // not a valid color--default to white\n }\n if (hex.length >= MAX_HEX_LENGTH) {\n return hex.substring(0, MAX_HEX_LENGTH);\n }\n return hex.substring(0, MIN_HEX_LENGTH);\n}\n//# sourceMappingURL=correctHex.js.map","import { __assign } from \"tslib\";\nimport { _rgbaOrHexString } from './_rgbaOrHexString';\nimport { MAX_COLOR_ALPHA } from './consts';\n/**\n * Gets a color with the given transparency value and the same other components as `color`.\n * Does not modify the original color.\n */\nexport function updateT(color, t) {\n var a = MAX_COLOR_ALPHA - t;\n return __assign(__assign({}, color), { t: t, a: a, str: _rgbaOrHexString(color.r, color.g, color.b, a, color.hex) });\n}\n//# sourceMappingURL=updateT.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { divProperties, getNativeProps } from '../../Utilities';\nimport { classNamesFunction } from '../../Utilities';\nvar getClassNames = classNamesFunction({\n // Label is used a lot by other components.\n // It's likely to see expected cases which pass different className to the Label.\n // Therefore setting a larger cache size.\n cacheSize: 100,\n});\nvar LabelBase = /** @class */ (function (_super) {\n __extends(LabelBase, _super);\n function LabelBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LabelBase.prototype.render = function () {\n var _a = this.props, _b = _a.as, RootType = _b === void 0 ? 'label' : _b, children = _a.children, className = _a.className, disabled = _a.disabled, styles = _a.styles, required = _a.required, theme = _a.theme;\n var classNames = getClassNames(styles, {\n className: className,\n disabled: disabled,\n required: required,\n theme: theme,\n });\n return (React.createElement(RootType, __assign({}, getNativeProps(this.props, divProperties), { className: classNames.root }), children));\n };\n return LabelBase;\n}(React.Component));\nexport { LabelBase };\n//# sourceMappingURL=Label.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, FontWeights, getHighContrastNoAdjustStyle } from '../../Styling';\nexport var getStyles = function (props) {\n var _a;\n var theme = props.theme, className = props.className, disabled = props.disabled, required = props.required;\n var semanticColors = theme.semanticColors;\n // Tokens\n var labelFontWeight = FontWeights.semibold;\n var labelColor = semanticColors.bodyText;\n var labelDisabledColor = semanticColors.disabledBodyText;\n var labelRequiredStarColor = semanticColors.errorText;\n return {\n root: [\n 'ms-Label',\n theme.fonts.medium,\n {\n fontWeight: labelFontWeight,\n color: labelColor,\n boxSizing: 'border-box',\n boxShadow: 'none',\n margin: 0,\n display: 'block',\n padding: '5px 0',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n },\n disabled && {\n color: labelDisabledColor,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({ color: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _a),\n },\n required && {\n selectors: {\n '::after': {\n content: \"' *'\",\n color: labelRequiredStarColor,\n paddingRight: 12,\n },\n },\n },\n className,\n ],\n };\n};\n//# sourceMappingURL=Label.styles.js.map","import { styled } from '../../Utilities';\nimport { LabelBase } from './Label.base';\nimport { getStyles } from './Label.styles';\nexport var Label = styled(LabelBase, getStyles, undefined, {\n scope: 'Label',\n});\n//# sourceMappingURL=Label.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Label } from '../../Label';\nimport { Icon } from '../../Icon';\nimport { Async, classNamesFunction, DelayedRender, getId, getNativeProps, getWindow, initializeComponentRef, inputProperties, isControlled, isIE11, textAreaProperties, warn, warnControlledUsage, warnMutuallyExclusive, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DEFAULT_STATE_VALUE = '';\nvar COMPONENT_NAME = 'TextField';\nvar REVEAL_ICON_NAME = 'RedEye';\nvar HIDE_ICON_NAME = 'Hide';\nvar TextFieldBase = /** @class */ (function (_super) {\n __extends(TextFieldBase, _super);\n function TextFieldBase(props) {\n var _this = _super.call(this, props) || this;\n _this._textElement = React.createRef();\n _this._onFocus = function (ev) {\n if (_this.props.onFocus) {\n _this.props.onFocus(ev);\n }\n _this.setState({ isFocused: true }, function () {\n if (_this.props.validateOnFocusIn) {\n _this._validate(_this.value);\n }\n });\n };\n _this._onBlur = function (ev) {\n if (_this.props.onBlur) {\n _this.props.onBlur(ev);\n }\n _this.setState({ isFocused: false }, function () {\n if (_this.props.validateOnFocusOut) {\n _this._validate(_this.value);\n }\n });\n };\n _this._onRenderLabel = function (props) {\n var label = props.label, required = props.required;\n // IProcessedStyleSet definition requires casting for what Label expects as its styles prop\n var labelStyles = _this._classNames.subComponentStyles\n ? _this._classNames.subComponentStyles.label\n : undefined;\n if (label) {\n return (React.createElement(Label, { required: required, htmlFor: _this._id, styles: labelStyles, disabled: props.disabled, id: _this._labelId }, props.label));\n }\n return null;\n };\n _this._onRenderDescription = function (props) {\n if (props.description) {\n return React.createElement(\"span\", { className: _this._classNames.description }, props.description);\n }\n return null;\n };\n _this._onRevealButtonClick = function (event) {\n _this.setState(function (prevState) { return ({ isRevealingPassword: !prevState.isRevealingPassword }); });\n };\n _this._onInputChange = function (event) {\n // Previously, we needed to call both onInput and onChange due to some weird IE/React issues,\n // which have *probably* been fixed now:\n // - https://github.com/microsoft/fluentui/issues/744 (likely fixed)\n // - https://github.com/microsoft/fluentui/issues/824 (confirmed fixed)\n var _a, _b;\n // TODO (Fabric 8?) - Switch to calling only onChange. This switch is pretty disruptive for\n // tests (ours and maybe consumers' too), so it seemed best to do the switch in a major bump.\n var element = event.target;\n var value = element.value;\n // Ignore this event if any of the following are true:\n // - the value is undefined (in case one of the IE bugs comes back)\n // - it's a duplicate event (important since onInputChange is called twice per actual user event)\n // - it's the same as the previous value\n var previousValue = _getValue(_this.props, _this.state) || '';\n if (value === undefined || value === _this._lastChangeValue || value === previousValue) {\n _this._lastChangeValue = undefined;\n return;\n }\n _this._lastChangeValue = value;\n (_b = (_a = _this.props).onChange) === null || _b === void 0 ? void 0 : _b.call(_a, event, value);\n if (!_this._isControlled) {\n // ONLY if this is an uncontrolled component, update the displayed value.\n // (Controlled components must update the `value` prop from `onChange`.)\n _this.setState({ uncontrolledValue: value });\n }\n };\n initializeComponentRef(_this);\n _this._async = new Async(_this);\n if (process.env.NODE_ENV !== 'production') {\n warnMutuallyExclusive(COMPONENT_NAME, props, {\n errorMessage: 'onGetErrorMessage',\n });\n }\n _this._fallbackId = getId(COMPONENT_NAME);\n _this._descriptionId = getId(COMPONENT_NAME + 'Description');\n _this._labelId = getId(COMPONENT_NAME + 'Label');\n _this._prefixId = getId(COMPONENT_NAME + 'Prefix');\n _this._suffixId = getId(COMPONENT_NAME + 'Suffix');\n _this._warnControlledUsage();\n var _a = props.defaultValue, defaultValue = _a === void 0 ? DEFAULT_STATE_VALUE : _a;\n if (typeof defaultValue === 'number') {\n // This isn't allowed per the props, but happens anyway.\n defaultValue = String(defaultValue);\n }\n _this.state = {\n uncontrolledValue: _this._isControlled ? undefined : defaultValue,\n isFocused: false,\n errorMessage: '',\n };\n _this._delayedValidate = _this._async.debounce(_this._validate, _this.props.deferredValidationTime);\n _this._lastValidation = 0;\n return _this;\n }\n Object.defineProperty(TextFieldBase.prototype, \"value\", {\n /**\n * Gets the current value of the text field.\n */\n get: function () {\n return _getValue(this.props, this.state);\n },\n enumerable: false,\n configurable: true\n });\n TextFieldBase.prototype.componentDidMount = function () {\n this._adjustInputHeight();\n if (this.props.validateOnLoad) {\n this._validate(this.value);\n }\n };\n TextFieldBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n };\n TextFieldBase.prototype.getSnapshotBeforeUpdate = function (prevProps, prevState) {\n return {\n selection: [this.selectionStart, this.selectionEnd],\n };\n };\n TextFieldBase.prototype.componentDidUpdate = function (prevProps, prevState, snapshot) {\n var props = this.props;\n var _a = (snapshot || {}).selection, selection = _a === void 0 ? [null, null] : _a;\n var start = selection[0], end = selection[1];\n if (!!prevProps.multiline !== !!props.multiline && prevState.isFocused) {\n // The text field has just changed between single- and multi-line, so we need to reset focus\n // and selection/cursor.\n this.focus();\n if (start !== null && end !== null && start >= 0 && end >= 0) {\n this.setSelectionRange(start, end);\n }\n }\n if (prevProps.value !== props.value) {\n // Only if the value in props changed, reset the record of the last value seen by a\n // change/input event (don't do this if the value in state changed, since at least in tests\n // the state update may happen before the second event in a series)\n this._lastChangeValue = undefined;\n }\n var prevValue = _getValue(prevProps, prevState);\n var value = this.value;\n if (prevValue !== value) {\n // Handle controlled/uncontrolled warnings and status\n this._warnControlledUsage(prevProps);\n // Clear error message if needed\n // TODO: is there any way to do this without an extra render?\n if (this.state.errorMessage && !props.errorMessage) {\n this.setState({ errorMessage: '' });\n }\n // Adjust height if needed based on new value\n this._adjustInputHeight();\n // TODO: #5875 added logic to trigger validation in componentWillReceiveProps and other places.\n // This seems a bit odd and hard to integrate with the new approach.\n // (Starting to think we should just put the validation logic in a separate wrapper component...?)\n if (_shouldValidateAllChanges(props)) {\n this._delayedValidate(value);\n }\n }\n };\n TextFieldBase.prototype.render = function () {\n var _a = this.props, borderless = _a.borderless, className = _a.className, disabled = _a.disabled, invalid = _a.invalid, iconProps = _a.iconProps, inputClassName = _a.inputClassName, label = _a.label, multiline = _a.multiline, required = _a.required, underlined = _a.underlined, prefix = _a.prefix, resizable = _a.resizable, suffix = _a.suffix, theme = _a.theme, styles = _a.styles, autoAdjustHeight = _a.autoAdjustHeight, canRevealPassword = _a.canRevealPassword, revealPasswordAriaLabel = _a.revealPasswordAriaLabel, type = _a.type, _b = _a.onRenderPrefix, onRenderPrefix = _b === void 0 ? this._onRenderPrefix : _b, _c = _a.onRenderSuffix, onRenderSuffix = _c === void 0 ? this._onRenderSuffix : _c, _d = _a.onRenderLabel, onRenderLabel = _d === void 0 ? this._onRenderLabel : _d, _e = _a.onRenderDescription, onRenderDescription = _e === void 0 ? this._onRenderDescription : _e;\n var _f = this.state, isFocused = _f.isFocused, isRevealingPassword = _f.isRevealingPassword;\n var errorMessage = this._errorMessage;\n var isInvalid = typeof invalid === 'boolean' ? invalid : !!errorMessage;\n var hasRevealButton = !!canRevealPassword && type === 'password' && _browserNeedsRevealButton();\n var classNames = (this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n disabled: disabled,\n focused: isFocused,\n required: required,\n multiline: multiline,\n hasLabel: !!label,\n hasErrorMessage: isInvalid,\n borderless: borderless,\n resizable: resizable,\n hasIcon: !!iconProps,\n underlined: underlined,\n inputClassName: inputClassName,\n autoAdjustHeight: autoAdjustHeight,\n hasRevealButton: hasRevealButton,\n }));\n return (\n // eslint-disable-next-line deprecation/deprecation\n React.createElement(\"div\", { ref: this.props.elementRef, className: classNames.root },\n React.createElement(\"div\", { className: classNames.wrapper },\n onRenderLabel(this.props, this._onRenderLabel),\n React.createElement(\"div\", { className: classNames.fieldGroup },\n (prefix !== undefined || this.props.onRenderPrefix) && (React.createElement(\"div\", { className: classNames.prefix, id: this._prefixId }, onRenderPrefix(this.props, this._onRenderPrefix))),\n multiline ? this._renderTextArea() : this._renderInput(),\n iconProps && React.createElement(Icon, __assign({ className: classNames.icon }, iconProps)),\n hasRevealButton && (\n // Explicitly set type=\"button\" since the default button type within a form is \"submit\"\n React.createElement(\"button\", { \"aria-label\": revealPasswordAriaLabel, className: classNames.revealButton, onClick: this._onRevealButtonClick, \"aria-pressed\": !!isRevealingPassword, type: \"button\" },\n React.createElement(\"span\", { className: classNames.revealSpan },\n React.createElement(Icon, { className: classNames.revealIcon, iconName: isRevealingPassword ? HIDE_ICON_NAME : REVEAL_ICON_NAME })))),\n (suffix !== undefined || this.props.onRenderSuffix) && (React.createElement(\"div\", { className: classNames.suffix, id: this._suffixId }, onRenderSuffix(this.props, this._onRenderSuffix))))),\n this._isDescriptionAvailable && (React.createElement(\"span\", { id: this._descriptionId },\n onRenderDescription(this.props, this._onRenderDescription),\n errorMessage && (React.createElement(\"div\", { role: \"alert\" },\n React.createElement(DelayedRender, null, this._renderErrorMessage())))))));\n };\n /**\n * Sets focus on the text field\n */\n TextFieldBase.prototype.focus = function () {\n if (this._textElement.current) {\n this._textElement.current.focus();\n }\n };\n /**\n * Blurs the text field.\n */\n TextFieldBase.prototype.blur = function () {\n if (this._textElement.current) {\n this._textElement.current.blur();\n }\n };\n /**\n * Selects the text field\n */\n TextFieldBase.prototype.select = function () {\n if (this._textElement.current) {\n this._textElement.current.select();\n }\n };\n /**\n * Sets the selection start of the text field to a specified value\n */\n TextFieldBase.prototype.setSelectionStart = function (value) {\n if (this._textElement.current) {\n this._textElement.current.selectionStart = value;\n }\n };\n /**\n * Sets the selection end of the text field to a specified value\n */\n TextFieldBase.prototype.setSelectionEnd = function (value) {\n if (this._textElement.current) {\n this._textElement.current.selectionEnd = value;\n }\n };\n Object.defineProperty(TextFieldBase.prototype, \"selectionStart\", {\n /**\n * Gets the selection start of the text field\n */\n get: function () {\n return this._textElement.current ? this._textElement.current.selectionStart : -1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFieldBase.prototype, \"selectionEnd\", {\n /**\n * Gets the selection end of the text field\n */\n get: function () {\n return this._textElement.current ? this._textElement.current.selectionEnd : -1;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Sets the start and end positions of a selection in a text field.\n * @param start - Index of the start of the selection.\n * @param end - Index of the end of the selection.\n */\n TextFieldBase.prototype.setSelectionRange = function (start, end) {\n if (this._textElement.current) {\n this._textElement.current.setSelectionRange(start, end);\n }\n };\n TextFieldBase.prototype._warnControlledUsage = function (prevProps) {\n // Show warnings if props are being used in an invalid way\n warnControlledUsage({\n componentId: this._id,\n componentName: COMPONENT_NAME,\n props: this.props,\n oldProps: prevProps,\n valueProp: 'value',\n defaultValueProp: 'defaultValue',\n onChangeProp: 'onChange',\n readOnlyProp: 'readOnly',\n });\n if (this.props.value === null && !this._hasWarnedNullValue) {\n this._hasWarnedNullValue = true;\n warn(\"Warning: 'value' prop on '\".concat(COMPONENT_NAME, \"' should not be null. Consider using an \") +\n 'empty string to clear the component or undefined to indicate an uncontrolled component.');\n }\n };\n Object.defineProperty(TextFieldBase.prototype, \"_id\", {\n /** Returns `props.id` if available, or a fallback if not. */\n get: function () {\n return this.props.id || this._fallbackId;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFieldBase.prototype, \"_isControlled\", {\n get: function () {\n return isControlled(this.props, 'value');\n },\n enumerable: false,\n configurable: true\n });\n TextFieldBase.prototype._onRenderPrefix = function (props) {\n var prefix = props.prefix;\n return React.createElement(\"span\", { style: { paddingBottom: '1px' } }, prefix);\n };\n TextFieldBase.prototype._onRenderSuffix = function (props) {\n var suffix = props.suffix;\n return React.createElement(\"span\", { style: { paddingBottom: '1px' } }, suffix);\n };\n Object.defineProperty(TextFieldBase.prototype, \"_errorMessage\", {\n /**\n * Current error message from either `props.errorMessage` or the result of `props.onGetErrorMessage`.\n *\n * - If there is no validation error or we have not validated the input value, errorMessage is an empty string.\n * - If we have done the validation and there is validation error, errorMessage is the validation error message.\n */\n get: function () {\n var _a = this.props.errorMessage, errorMessage = _a === void 0 ? this.state.errorMessage : _a;\n return errorMessage || '';\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Renders error message based on the type of the message.\n *\n * - If error message is string, it will render using the built in styles.\n * - If error message is an element, user has full control over how it's rendered.\n */\n TextFieldBase.prototype._renderErrorMessage = function () {\n var errorMessage = this._errorMessage;\n return errorMessage ? (typeof errorMessage === 'string' ? (React.createElement(\"p\", { className: this._classNames.errorMessage },\n React.createElement(\"span\", { \"data-automation-id\": \"error-message\" }, errorMessage))) : (React.createElement(\"div\", { className: this._classNames.errorMessage, \"data-automation-id\": \"error-message\" }, errorMessage))) : null;\n };\n Object.defineProperty(TextFieldBase.prototype, \"_isDescriptionAvailable\", {\n /**\n * If a custom description render function is supplied then treat description as always available.\n * Otherwise defer to the presence of description or error message text.\n */\n get: function () {\n var props = this.props;\n return !!(props.onRenderDescription || props.description || this._errorMessage);\n },\n enumerable: false,\n configurable: true\n });\n TextFieldBase.prototype._renderTextArea = function () {\n var _a = this.props.invalid, invalid = _a === void 0 ? !!this._errorMessage : _a;\n var textAreaProps = getNativeProps(this.props, textAreaProperties, ['defaultValue']);\n var ariaLabelledBy = this.props['aria-labelledby'] || (this.props.label ? this._labelId : undefined);\n return (React.createElement(\"textarea\", __assign({ id: this._id }, textAreaProps, { ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, \"aria-labelledby\": ariaLabelledBy, \"aria-describedby\": this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], \"aria-invalid\": invalid, \"aria-label\": this.props.ariaLabel, readOnly: this.props.readOnly, onFocus: this._onFocus, onBlur: this._onBlur })));\n };\n TextFieldBase.prototype._renderInput = function () {\n var _a = this.props, ariaLabel = _a.ariaLabel, _b = _a.invalid, invalid = _b === void 0 ? !!this._errorMessage : _b, onRenderPrefix = _a.onRenderPrefix, onRenderSuffix = _a.onRenderSuffix, prefix = _a.prefix, suffix = _a.suffix, _c = _a.type, type = _c === void 0 ? 'text' : _c, label = _a.label;\n // build aria-labelledby list from label, prefix, and suffix\n var labelIds = [];\n label && labelIds.push(this._labelId);\n (prefix !== undefined || onRenderPrefix) && labelIds.push(this._prefixId);\n (suffix !== undefined || onRenderSuffix) && labelIds.push(this._suffixId);\n var inputProps = __assign(__assign({ type: this.state.isRevealingPassword ? 'text' : type, id: this._id }, getNativeProps(this.props, inputProperties, ['defaultValue', 'type'])), { 'aria-labelledby': this.props['aria-labelledby'] || (labelIds.length > 0 ? labelIds.join(' ') : undefined), ref: this._textElement, value: this.value || '', onInput: this._onInputChange, onChange: this._onInputChange, className: this._classNames.field, 'aria-label': ariaLabel, 'aria-describedby': this._isDescriptionAvailable ? this._descriptionId : this.props['aria-describedby'], 'aria-invalid': invalid, onFocus: this._onFocus, onBlur: this._onBlur });\n var defaultRender = function (updatedInputProps) {\n return React.createElement(\"input\", __assign({}, updatedInputProps));\n };\n var onRenderInput = this.props.onRenderInput || defaultRender;\n return onRenderInput(inputProps, defaultRender);\n };\n TextFieldBase.prototype._validate = function (value) {\n var _this = this;\n // In case _validate is called again while validation promise is executing\n if (this._latestValidateValue === value && _shouldValidateAllChanges(this.props)) {\n return;\n }\n this._latestValidateValue = value;\n var onGetErrorMessage = this.props.onGetErrorMessage;\n var result = onGetErrorMessage && onGetErrorMessage(value || '');\n if (result !== undefined) {\n if (typeof result === 'string' || !('then' in result)) {\n this.setState({ errorMessage: result });\n this._notifyAfterValidate(value, result);\n }\n else {\n var currentValidation_1 = ++this._lastValidation;\n result.then(function (errorMessage) {\n if (currentValidation_1 === _this._lastValidation) {\n _this.setState({ errorMessage: errorMessage });\n }\n _this._notifyAfterValidate(value, errorMessage);\n });\n }\n }\n else {\n this._notifyAfterValidate(value, '');\n }\n };\n TextFieldBase.prototype._notifyAfterValidate = function (value, errorMessage) {\n if (value === this.value && this.props.onNotifyValidationResult) {\n this.props.onNotifyValidationResult(errorMessage, value);\n }\n };\n TextFieldBase.prototype._adjustInputHeight = function () {\n var _a, _b;\n if (this._textElement.current && this.props.autoAdjustHeight && this.props.multiline) {\n var scrollTop = (_b = (_a = this.props.scrollContainerRef) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.scrollTop;\n var textField = this._textElement.current;\n textField.style.height = '';\n textField.style.height = textField.scrollHeight + 'px';\n if (scrollTop) {\n // Safe to assert not null, otherwise we wouldn't have a scrollTop;\n this.props.scrollContainerRef.current.scrollTop = scrollTop;\n }\n }\n };\n TextFieldBase.defaultProps = {\n resizable: true,\n deferredValidationTime: 200,\n validateOnLoad: true,\n };\n return TextFieldBase;\n}(React.Component));\nexport { TextFieldBase };\n/** Get the value from the given state and props (converting from number to string if needed) */\nfunction _getValue(props, state) {\n var _a = props.value, value = _a === void 0 ? state.uncontrolledValue : _a;\n if (typeof value === 'number') {\n // not allowed per typings, but happens anyway\n return String(value);\n }\n return value;\n}\n/**\n * If `validateOnFocusIn` or `validateOnFocusOut` is true, validation should run **only** on that event.\n * Otherwise, validation should run on every change.\n */\nfunction _shouldValidateAllChanges(props) {\n return !(props.validateOnFocusIn || props.validateOnFocusOut);\n}\n// Only calculate this once across all TextFields, since will stay the same\nvar __browserNeedsRevealButton;\nfunction _browserNeedsRevealButton() {\n if (typeof __browserNeedsRevealButton !== 'boolean') {\n var win = getWindow();\n if (win === null || win === void 0 ? void 0 : win.navigator) {\n // Edge, Chromium Edge\n var isEdge = /Edg/.test(win.navigator.userAgent || '');\n __browserNeedsRevealButton = !(isIE11() || isEdge);\n }\n else {\n __browserNeedsRevealButton = true;\n }\n }\n return __browserNeedsRevealButton;\n}\n//# sourceMappingURL=TextField.base.js.map","import { __assign } from \"tslib\";\nimport { AnimationClassNames, getFocusStyle, getGlobalClassNames, getInputFocusStyle, HighContrastSelector, normalize, getPlaceholderStyles, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nvar globalClassNames = {\n root: 'ms-TextField',\n description: 'ms-TextField-description',\n errorMessage: 'ms-TextField-errorMessage',\n field: 'ms-TextField-field',\n fieldGroup: 'ms-TextField-fieldGroup',\n prefix: 'ms-TextField-prefix',\n suffix: 'ms-TextField-suffix',\n wrapper: 'ms-TextField-wrapper',\n revealButton: 'ms-TextField-reveal',\n multiline: 'ms-TextField--multiline',\n borderless: 'ms-TextField--borderless',\n underlined: 'ms-TextField--underlined',\n unresizable: 'ms-TextField--unresizable',\n required: 'is-required',\n disabled: 'is-disabled',\n active: 'is-active',\n};\nfunction getLabelStyles(props) {\n var underlined = props.underlined, disabled = props.disabled, focused = props.focused, theme = props.theme;\n var palette = theme.palette, fonts = theme.fonts;\n return function () {\n var _a;\n return ({\n root: [\n underlined &&\n disabled && {\n color: palette.neutralTertiary,\n },\n underlined && {\n fontSize: fonts.medium.fontSize,\n marginRight: 8,\n paddingLeft: 12,\n paddingRight: 0,\n lineHeight: '22px',\n height: 32,\n },\n underlined &&\n focused && {\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n height: 31, // -1px to prevent jumpiness in HC with the increased border-width to 2px\n },\n _a),\n },\n ],\n });\n };\n}\nexport function getStyles(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var theme = props.theme, className = props.className, disabled = props.disabled, focused = props.focused, required = props.required, multiline = props.multiline, hasLabel = props.hasLabel, borderless = props.borderless, underlined = props.underlined, hasIcon = props.hasIcon, resizable = props.resizable, hasErrorMessage = props.hasErrorMessage, inputClassName = props.inputClassName, autoAdjustHeight = props.autoAdjustHeight, hasRevealButton = props.hasRevealButton;\n var semanticColors = theme.semanticColors, effects = theme.effects, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n var fieldPrefixSuffix = {\n // Suffix/Prefix are not editable so the disabled slot perfectly fits.\n background: semanticColors.disabledBackground,\n color: !disabled ? semanticColors.inputPlaceholderText : semanticColors.disabledText,\n display: 'flex',\n alignItems: 'center',\n padding: '0 10px',\n lineHeight: 1,\n whiteSpace: 'nowrap',\n flexShrink: 0,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n background: 'Window',\n color: disabled ? 'GrayText' : 'WindowText',\n },\n _a),\n };\n // placeholder style constants\n var placeholderStyles = [\n {\n color: semanticColors.inputPlaceholderText,\n opacity: 1,\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n color: 'GrayText',\n },\n _b),\n },\n ];\n var disabledPlaceholderStyles = {\n color: semanticColors.disabledText,\n selectors: (_c = {},\n _c[HighContrastSelector] = {\n color: 'GrayText',\n },\n _c),\n };\n return {\n root: [\n classNames.root,\n fonts.medium,\n required && classNames.required,\n disabled && classNames.disabled,\n focused && classNames.active,\n multiline && classNames.multiline,\n borderless && classNames.borderless,\n underlined && classNames.underlined,\n normalize,\n {\n position: 'relative',\n },\n className,\n ],\n wrapper: [\n classNames.wrapper,\n underlined && [\n {\n display: 'flex',\n borderBottom: \"1px solid \".concat(!hasErrorMessage ? semanticColors.inputBorder : semanticColors.errorText),\n width: '100%',\n },\n disabled && {\n borderBottomColor: semanticColors.disabledBackground,\n selectors: (_d = {},\n _d[HighContrastSelector] = __assign({ borderColor: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _d),\n },\n !disabled && {\n selectors: {\n ':hover': {\n borderBottomColor: !hasErrorMessage ? semanticColors.inputBorderHovered : semanticColors.errorText,\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign({ borderBottomColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _e),\n },\n },\n },\n focused && [\n {\n position: 'relative',\n },\n getInputFocusStyle(!hasErrorMessage ? semanticColors.inputFocusBorderAlt : semanticColors.errorText, 0, 'borderBottom'),\n ],\n ],\n ],\n fieldGroup: [\n classNames.fieldGroup,\n normalize,\n {\n border: \"1px solid \".concat(semanticColors.inputBorder),\n borderRadius: effects.roundedCorner2,\n background: semanticColors.inputBackground,\n cursor: 'text',\n height: 32,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'stretch',\n position: 'relative',\n },\n multiline && {\n minHeight: '60px',\n height: 'auto',\n display: 'flex',\n },\n !focused &&\n !disabled && {\n selectors: {\n ':hover': {\n borderColor: semanticColors.inputBorderHovered,\n selectors: (_f = {},\n _f[HighContrastSelector] = __assign({ borderColor: 'Highlight' }, getHighContrastNoAdjustStyle()),\n _f),\n },\n },\n },\n focused &&\n !underlined &&\n getInputFocusStyle(!hasErrorMessage ? semanticColors.inputFocusBorderAlt : semanticColors.errorText, effects.roundedCorner2),\n disabled && {\n borderColor: semanticColors.disabledBackground,\n selectors: (_g = {},\n _g[HighContrastSelector] = __assign({ borderColor: 'GrayText' }, getHighContrastNoAdjustStyle()),\n _g),\n cursor: 'default',\n },\n borderless && {\n border: 'none',\n },\n borderless &&\n focused && {\n border: 'none',\n selectors: {\n ':after': {\n border: 'none',\n },\n },\n },\n underlined && {\n flex: '1 1 0px',\n border: 'none',\n textAlign: 'left',\n },\n underlined &&\n disabled && {\n backgroundColor: 'transparent',\n },\n hasErrorMessage &&\n !underlined && {\n borderColor: semanticColors.errorText,\n selectors: {\n '&:hover': {\n borderColor: semanticColors.errorText,\n },\n },\n },\n !hasLabel &&\n required && {\n selectors: (_h = {\n ':before': {\n content: \"'*'\",\n color: semanticColors.errorText,\n position: 'absolute',\n top: -5,\n right: -10,\n }\n },\n _h[HighContrastSelector] = {\n selectors: {\n ':before': {\n color: 'WindowText',\n right: -14, // moving the * 4 pixel to right to alleviate border clipping in HC mode.\n },\n },\n },\n _h),\n },\n ],\n field: [\n fonts.medium,\n classNames.field,\n normalize,\n {\n borderRadius: 0,\n border: 'none',\n background: 'none',\n backgroundColor: 'transparent',\n color: semanticColors.inputText,\n padding: '0 8px',\n width: '100%',\n minWidth: 0,\n textOverflow: 'ellipsis',\n outline: 0,\n selectors: (_j = {\n '&:active, &:focus, &:hover': { outline: 0 },\n '::-ms-clear': {\n display: 'none',\n }\n },\n _j[HighContrastSelector] = {\n background: 'Window',\n color: disabled ? 'GrayText' : 'WindowText',\n },\n _j),\n },\n getPlaceholderStyles(placeholderStyles),\n multiline &&\n !resizable && [\n classNames.unresizable,\n {\n resize: 'none',\n },\n ],\n multiline && {\n minHeight: 'inherit',\n lineHeight: 17,\n flexGrow: 1,\n paddingTop: 6,\n paddingBottom: 6,\n overflow: 'auto',\n width: '100%',\n },\n multiline &&\n autoAdjustHeight && {\n overflow: 'hidden',\n },\n hasIcon &&\n !hasRevealButton && {\n paddingRight: 24,\n },\n multiline &&\n hasIcon && {\n paddingRight: 40,\n },\n disabled && [\n {\n backgroundColor: semanticColors.disabledBackground,\n color: semanticColors.disabledText,\n borderColor: semanticColors.disabledBackground,\n },\n getPlaceholderStyles(disabledPlaceholderStyles),\n ],\n underlined && {\n textAlign: 'left',\n },\n focused &&\n !borderless && {\n selectors: (_k = {},\n _k[HighContrastSelector] = {\n paddingLeft: 11,\n paddingRight: 11,\n },\n _k),\n },\n focused &&\n multiline &&\n !borderless && {\n selectors: (_l = {},\n _l[HighContrastSelector] = {\n paddingTop: 4, // take into consideration the 2px increased border-width (not when borderless).\n },\n _l),\n },\n inputClassName,\n ],\n icon: [\n multiline && {\n paddingRight: 24,\n alignItems: 'flex-end',\n },\n {\n pointerEvents: 'none',\n position: 'absolute',\n bottom: 6,\n right: 8,\n top: 'auto',\n fontSize: IconFontSizes.medium,\n lineHeight: 18,\n },\n disabled && {\n color: semanticColors.disabledText,\n },\n ],\n description: [\n classNames.description,\n {\n color: semanticColors.bodySubtext,\n fontSize: fonts.xSmall.fontSize,\n },\n ],\n errorMessage: [\n classNames.errorMessage,\n AnimationClassNames.slideDownIn20,\n fonts.small,\n {\n color: semanticColors.errorText,\n margin: 0,\n paddingTop: 5,\n display: 'flex',\n alignItems: 'center',\n },\n ],\n prefix: [classNames.prefix, fieldPrefixSuffix],\n suffix: [classNames.suffix, fieldPrefixSuffix],\n revealButton: [\n classNames.revealButton,\n 'ms-Button',\n 'ms-Button--icon',\n getFocusStyle(theme, { inset: 1 }),\n {\n height: 30,\n width: 32,\n border: 'none',\n padding: '0px 4px',\n backgroundColor: 'transparent',\n color: semanticColors.link,\n selectors: {\n ':hover': {\n outline: 0,\n color: semanticColors.primaryButtonBackgroundHovered,\n backgroundColor: semanticColors.buttonBackgroundHovered,\n selectors: (_m = {},\n _m[HighContrastSelector] = {\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n _m),\n },\n ':focus': { outline: 0 },\n },\n },\n hasIcon && {\n marginRight: 28,\n },\n ],\n revealSpan: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n },\n revealIcon: {\n margin: '0px 4px',\n pointerEvents: 'none',\n bottom: 6,\n right: 8,\n top: 'auto',\n fontSize: IconFontSizes.medium,\n lineHeight: 18,\n },\n subComponentStyles: {\n label: getLabelStyles(props),\n },\n };\n}\n//# sourceMappingURL=TextField.styles.js.map","import { styled } from '../../Utilities';\nimport { TextFieldBase } from './TextField.base';\nimport { getStyles } from './TextField.styles';\nexport var TextField = styled(TextFieldBase, getStyles, undefined, {\n scope: 'TextField',\n});\n//# sourceMappingURL=TextField.js.map","export var DEFAULT_MASK_FORMAT_CHARS = {\n '9': /[0-9]/,\n a: /[a-zA-Z]/,\n '*': /[a-zA-Z0-9]/,\n};\n/**\n * Takes in the mask string and the formatCharacters and returns an array of MaskValues\n * Example:\n * mask = 'Phone Number: (999) - 9999'\n * return = [\n * { value: undefined, displayIndex: 16, format: /[0-9]/ },\n * { value: undefined, displayIndex: 17, format: /[0-9]/ },\n * { value: undefined, displayIndex: 18, format: /[0-9]/ },\n * { value: undefined, displayIndex: 22, format: /[0-9]/ },\n * ]\n *\n * @param mask The string use to define the format of the displayed maskedValue.\n * @param formatChars An object defining how certain characters in the mask should accept input.\n */\nexport function parseMask(mask, formatChars) {\n if (formatChars === void 0) { formatChars = DEFAULT_MASK_FORMAT_CHARS; }\n if (!mask) {\n return [];\n }\n var maskCharData = [];\n // Count the escape characters in the mask string.\n var escapedChars = 0;\n for (var i = 0; i + escapedChars < mask.length; i++) {\n var maskChar = mask.charAt(i + escapedChars);\n if (maskChar === '\\\\') {\n escapedChars++;\n }\n else {\n // Check if the maskChar is a format character.\n var maskFormat = formatChars[maskChar];\n if (maskFormat) {\n maskCharData.push({\n /**\n * Do not add escapedChars to the displayIndex.\n * The index refers to a position in the mask's displayValue.\n * Since the backslashes don't appear in the displayValue,\n * we do not add them to the charData displayIndex.\n */\n displayIndex: i,\n format: maskFormat,\n });\n }\n }\n }\n return maskCharData;\n}\n/**\n * Takes in the mask string, an array of MaskValues, and the maskCharacter\n * returns the mask string formatted with the input values and maskCharacter.\n * If the maskChar is undefined, the maskDisplay is truncated to the last filled format character.\n * Example:\n * mask = 'Phone Number: (999) 999 - 9999'\n * maskCharData = '12345'\n * maskChar = '_'\n * return = 'Phone Number: (123) 45_ - ___'\n *\n * Example:\n * mask = 'Phone Number: (999) 999 - 9999'\n * value = '12345'\n * maskChar = undefined\n * return = 'Phone Number: (123) 45'\n *\n * @param mask The string use to define the format of the displayed maskedValue.\n * @param maskCharData The input values to insert into the mask string for displaying.\n * @param maskChar? A character to display in place of unfilled mask format characters.\n */\nexport function getMaskDisplay(mask, maskCharData, maskChar) {\n var maskDisplay = mask;\n if (!maskDisplay) {\n return '';\n }\n // Remove all backslashes\n maskDisplay = maskDisplay.replace(/\\\\/g, '');\n // lastDisplayIndex is is used to truncate the string if necessary.\n var lastDisplayIndex = 0;\n if (maskCharData.length > 0) {\n lastDisplayIndex = maskCharData[0].displayIndex - 1;\n }\n /**\n * For each input value, replace the character in the maskDisplay with the value.\n * If there is no value set for the format character, use the maskChar.\n */\n for (var _i = 0, maskCharData_1 = maskCharData; _i < maskCharData_1.length; _i++) {\n var charData = maskCharData_1[_i];\n var nextChar = ' ';\n if (charData.value) {\n nextChar = charData.value;\n if (charData.displayIndex > lastDisplayIndex) {\n lastDisplayIndex = charData.displayIndex;\n }\n }\n else {\n if (maskChar) {\n nextChar = maskChar;\n }\n }\n // Insert the character into the maskdisplay at its corresponding index\n maskDisplay = maskDisplay.slice(0, charData.displayIndex) + nextChar + maskDisplay.slice(charData.displayIndex + 1);\n }\n // Cut off all mask characters after the last filled format value\n if (!maskChar) {\n maskDisplay = maskDisplay.slice(0, lastDisplayIndex + 1);\n }\n return maskDisplay;\n}\n/**\n * Get the next format index right of or at a specified index.\n * If no index exists, returns the rightmost index.\n * @param maskCharData\n * @param index\n */\nexport function getRightFormatIndex(maskCharData, index) {\n for (var i = 0; i < maskCharData.length; i++) {\n if (maskCharData[i].displayIndex >= index) {\n return maskCharData[i].displayIndex;\n }\n }\n return maskCharData[maskCharData.length - 1].displayIndex;\n}\n/**\n * Get the next format index left of a specified index.\n * If no index exists, returns the leftmost index.\n * @param maskCharData\n * @param index\n */\nexport function getLeftFormatIndex(maskCharData, index) {\n for (var i = maskCharData.length - 1; i >= 0; i--) {\n if (maskCharData[i].displayIndex < index) {\n return maskCharData[i].displayIndex;\n }\n }\n return maskCharData[0].displayIndex;\n}\n/**\n * Deletes all values in maskCharData with a displayIndex that falls inside the specified range.\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n * @param selectionCount\n */\nexport function clearRange(maskCharData, selectionStart, selectionCount) {\n for (var i = 0; i < maskCharData.length; i++) {\n if (maskCharData[i].displayIndex >= selectionStart) {\n if (maskCharData[i].displayIndex >= selectionStart + selectionCount) {\n break;\n }\n maskCharData[i].value = undefined;\n }\n }\n return maskCharData;\n}\n/**\n * Deletes the input character at or after a specified index and returns the new array of charData\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n */\nexport function clearNext(maskCharData, selectionStart) {\n for (var i = 0; i < maskCharData.length; i++) {\n if (maskCharData[i].displayIndex >= selectionStart) {\n maskCharData[i].value = undefined;\n break;\n }\n }\n return maskCharData;\n}\n/**\n * Deletes the input character before a specified index and returns the new array of charData\n * maskCharData is modified inline and also returned.\n * @param maskCharData\n * @param selectionStart\n */\nexport function clearPrev(maskCharData, selectionStart) {\n for (var i = maskCharData.length - 1; i >= 0; i--) {\n if (maskCharData[i].displayIndex < selectionStart) {\n maskCharData[i].value = undefined;\n break;\n }\n }\n return maskCharData;\n}\n/**\n * Deletes all values in maskCharData with a displayIndex that falls inside the specified range.\n * Modifies the maskCharData inplace with the passed string and returns the display index of the\n * next format character after the inserted string.\n * @param maskCharData\n * @param selectionStart\n * @param selectionCount\n * @return The displayIndex of the next format character\n */\nexport function insertString(maskCharData, selectionStart, newString) {\n var stringIndex = 0;\n var nextIndex = 0;\n var isStringInserted = false;\n // Iterate through _maskCharData finding values with a displayIndex after the specified range start\n for (var i = 0; i < maskCharData.length && stringIndex < newString.length; i++) {\n if (maskCharData[i].displayIndex >= selectionStart) {\n isStringInserted = true;\n nextIndex = maskCharData[i].displayIndex;\n // Find the next character in the newString that matches the format\n while (stringIndex < newString.length) {\n // If the character matches the format regexp, set the maskCharData to the new character\n if (maskCharData[i].format.test(newString.charAt(stringIndex))) {\n maskCharData[i].value = newString.charAt(stringIndex++);\n // Set the nextIndex to the display index of the next mask format character.\n if (i + 1 < maskCharData.length) {\n nextIndex = maskCharData[i + 1].displayIndex;\n }\n else {\n nextIndex++;\n }\n break;\n }\n stringIndex++;\n }\n }\n }\n return isStringInserted ? nextIndex : selectionStart;\n}\n//# sourceMappingURL=inputMask.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { TextField } from '../TextField';\nimport { KeyCodes } from '../../../Utilities';\nimport { clearNext, clearPrev, clearRange, DEFAULT_MASK_FORMAT_CHARS, getLeftFormatIndex, getMaskDisplay, getRightFormatIndex, insertString, parseMask, } from './inputMask';\nimport { useConst, useIsomorphicLayoutEffect } from '@fluentui/react-hooks';\nvar COMPONENT_NAME = 'MaskedTextField';\nvar useComponentRef = function (componentRef, internalState, textField) {\n React.useImperativeHandle(componentRef, function () { return ({\n get value() {\n var value = '';\n for (var i = 0; i < internalState.maskCharData.length; i++) {\n if (!internalState.maskCharData[i].value) {\n return undefined;\n }\n value += internalState.maskCharData[i].value;\n }\n return value;\n },\n get selectionStart() {\n return textField.current && textField.current.selectionStart !== null ? textField.current.selectionStart : -1;\n },\n get selectionEnd() {\n return textField.current && textField.current.selectionEnd ? textField.current.selectionEnd : -1;\n },\n focus: function () {\n textField.current && textField.current.focus();\n },\n blur: function () {\n textField.current && textField.current.blur();\n },\n select: function () {\n textField.current && textField.current.select();\n },\n setSelectionStart: function (value) {\n textField.current && textField.current.setSelectionStart(value);\n },\n setSelectionEnd: function (value) {\n textField.current && textField.current.setSelectionEnd(value);\n },\n setSelectionRange: function (start, end) {\n textField.current && textField.current.setSelectionRange(start, end);\n },\n }); }, [internalState, textField]);\n};\nexport var DEFAULT_MASK_CHAR = '_';\nexport var MaskedTextField = React.forwardRef(function (props, ref) {\n var textField = React.useRef(null);\n var componentRef = props.componentRef, onFocus = props.onFocus, onBlur = props.onBlur, onMouseDown = props.onMouseDown, onMouseUp = props.onMouseUp, onChange = props.onChange, onPaste = props.onPaste, onKeyDown = props.onKeyDown, mask = props.mask, _a = props.maskChar, maskChar = _a === void 0 ? DEFAULT_MASK_CHAR : _a, _b = props.maskFormat, maskFormat = _b === void 0 ? DEFAULT_MASK_FORMAT_CHARS : _b, value = props.value;\n var internalState = useConst(function () { return ({\n maskCharData: parseMask(mask, maskFormat),\n isFocused: false,\n moveCursorOnMouseUp: false,\n changeSelectionData: null,\n }); });\n /** The index into the rendered value of the first unfilled format character */\n var _c = React.useState(), maskCursorPosition = _c[0], setMaskCursorPosition = _c[1];\n /**\n * The mask string formatted with the input value.\n * This is what is displayed inside the TextField\n * @example\n * `Phone Number: 12_ - 4___`\n */\n var _d = React.useState(function () {\n return getMaskDisplay(mask, internalState.maskCharData, maskChar);\n }), displayValue = _d[0], setDisplayValue = _d[1];\n var setValue = React.useCallback(function (newValue) {\n var valueIndex = 0;\n var charDataIndex = 0;\n while (valueIndex < newValue.length && charDataIndex < internalState.maskCharData.length) {\n // Test if the next character in the new value fits the next format character\n var testVal = newValue[valueIndex];\n if (internalState.maskCharData[charDataIndex].format.test(testVal)) {\n internalState.maskCharData[charDataIndex].value = testVal;\n charDataIndex++;\n }\n valueIndex++;\n }\n }, [internalState]);\n var handleFocus = React.useCallback(function (ev) {\n onFocus === null || onFocus === void 0 ? void 0 : onFocus(ev);\n internalState.isFocused = true;\n // Move the cursor position to the leftmost unfilled position\n for (var i = 0; i < internalState.maskCharData.length; i++) {\n if (!internalState.maskCharData[i].value) {\n setMaskCursorPosition(internalState.maskCharData[i].displayIndex);\n break;\n }\n }\n }, [internalState, onFocus]);\n var handleBlur = React.useCallback(function (ev) {\n onBlur === null || onBlur === void 0 ? void 0 : onBlur(ev);\n internalState.isFocused = false;\n internalState.moveCursorOnMouseUp = true;\n }, [internalState, onBlur]);\n var handleMouseDown = React.useCallback(function (ev) {\n onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(ev);\n if (!internalState.isFocused) {\n internalState.moveCursorOnMouseUp = true;\n }\n }, [internalState, onMouseDown]);\n var handleMouseUp = React.useCallback(function (ev) {\n onMouseUp === null || onMouseUp === void 0 ? void 0 : onMouseUp(ev);\n // Move the cursor on mouseUp after focusing the textField\n if (internalState.moveCursorOnMouseUp) {\n internalState.moveCursorOnMouseUp = false;\n // Move the cursor position to the rightmost unfilled position\n for (var i = 0; i < internalState.maskCharData.length; i++) {\n if (!internalState.maskCharData[i].value) {\n setMaskCursorPosition(internalState.maskCharData[i].displayIndex);\n break;\n }\n }\n }\n }, [internalState, onMouseUp]);\n var handleInputChange = React.useCallback(function (ev, inputValue) {\n if (internalState.changeSelectionData === null && textField.current) {\n internalState.changeSelectionData = {\n changeType: 'default',\n selectionStart: textField.current.selectionStart !== null ? textField.current.selectionStart : -1,\n selectionEnd: textField.current.selectionEnd !== null ? textField.current.selectionEnd : -1,\n };\n }\n if (!internalState.changeSelectionData) {\n return;\n }\n // The initial value of cursorPos does not matter\n var cursorPos = 0;\n var _a = internalState.changeSelectionData, changeType = _a.changeType, selectionStart = _a.selectionStart, selectionEnd = _a.selectionEnd;\n if (changeType === 'textPasted') {\n var charsSelected = selectionEnd - selectionStart;\n var charCount = inputValue.length + charsSelected - displayValue.length;\n var startPos = selectionStart;\n // eslint-disable-next-line deprecation/deprecation\n var pastedString = inputValue.substr(startPos, charCount);\n // Clear any selected characters\n if (charsSelected) {\n internalState.maskCharData = clearRange(internalState.maskCharData, selectionStart, charsSelected);\n }\n cursorPos = insertString(internalState.maskCharData, startPos, pastedString);\n }\n else if (changeType === 'delete' || changeType === 'backspace') {\n // isDel is true If the characters are removed LTR, otherwise RTL\n var isDel = changeType === 'delete';\n var charCount = selectionEnd - selectionStart;\n if (charCount) {\n // charCount is > 0 if range was deleted\n internalState.maskCharData = clearRange(internalState.maskCharData, selectionStart, charCount);\n cursorPos = getRightFormatIndex(internalState.maskCharData, selectionStart);\n }\n else {\n // If charCount === 0, there was no selection and a single character was deleted\n if (isDel) {\n internalState.maskCharData = clearNext(internalState.maskCharData, selectionStart);\n cursorPos = getRightFormatIndex(internalState.maskCharData, selectionStart);\n }\n else {\n internalState.maskCharData = clearPrev(internalState.maskCharData, selectionStart);\n cursorPos = getLeftFormatIndex(internalState.maskCharData, selectionStart);\n }\n }\n }\n else if (inputValue.length > displayValue.length) {\n // This case is if the user added characters\n var charCount = inputValue.length - displayValue.length;\n var startPos = selectionEnd - charCount;\n // eslint-disable-next-line deprecation/deprecation\n var enteredString = inputValue.substr(startPos, charCount);\n cursorPos = insertString(internalState.maskCharData, startPos, enteredString);\n }\n else if (inputValue.length <= displayValue.length) {\n /**\n * This case is reached only if the user has selected a block of 1 or more\n * characters and input a character replacing the characters they've selected.\n */\n var charCount = 1;\n var selectCount = displayValue.length + charCount - inputValue.length;\n var startPos = selectionEnd - charCount;\n // eslint-disable-next-line deprecation/deprecation\n var enteredString = inputValue.substr(startPos, charCount);\n // Clear the selected range\n internalState.maskCharData = clearRange(internalState.maskCharData, startPos, selectCount);\n // Insert the printed character\n cursorPos = insertString(internalState.maskCharData, startPos, enteredString);\n }\n internalState.changeSelectionData = null;\n var newValue = getMaskDisplay(mask, internalState.maskCharData, maskChar);\n setDisplayValue(newValue);\n setMaskCursorPosition(cursorPos);\n // Perform onChange after input has been processed. Return value is expected to be the displayed text\n onChange === null || onChange === void 0 ? void 0 : onChange(ev, newValue);\n }, [displayValue.length, internalState, mask, maskChar, onChange]);\n var handleKeyDown = React.useCallback(function (ev) {\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(ev);\n internalState.changeSelectionData = null;\n if (textField.current && textField.current.value) {\n // eslint-disable-next-line deprecation/deprecation\n var keyCode = ev.keyCode, ctrlKey = ev.ctrlKey, metaKey = ev.metaKey;\n // Ignore ctrl and meta keydown\n if (ctrlKey || metaKey) {\n return;\n }\n // On backspace or delete, store the selection and the keyCode\n if (keyCode === KeyCodes.backspace || keyCode === KeyCodes.del) {\n var selectionStart = ev.target.selectionStart;\n var selectionEnd = ev.target.selectionEnd;\n // Check if backspace or delete press is valid.\n if (!(keyCode === KeyCodes.backspace && selectionEnd && selectionEnd > 0) &&\n !(keyCode === KeyCodes.del && selectionStart !== null && selectionStart < textField.current.value.length)) {\n return;\n }\n internalState.changeSelectionData = {\n changeType: keyCode === KeyCodes.backspace ? 'backspace' : 'delete',\n selectionStart: selectionStart !== null ? selectionStart : -1,\n selectionEnd: selectionEnd !== null ? selectionEnd : -1,\n };\n }\n }\n }, [internalState, onKeyDown]);\n var handlePaste = React.useCallback(function (ev) {\n onPaste === null || onPaste === void 0 ? void 0 : onPaste(ev);\n var selectionStart = ev.target.selectionStart;\n var selectionEnd = ev.target.selectionEnd;\n // Store the paste selection range\n internalState.changeSelectionData = {\n changeType: 'textPasted',\n selectionStart: selectionStart !== null ? selectionStart : -1,\n selectionEnd: selectionEnd !== null ? selectionEnd : -1,\n };\n }, [internalState, onPaste]);\n // Updates the display value if mask or value props change.\n React.useEffect(function () {\n internalState.maskCharData = parseMask(mask, maskFormat);\n value !== undefined && setValue(value);\n setDisplayValue(getMaskDisplay(mask, internalState.maskCharData, maskChar));\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Should only update when mask or value changes.\n }, [mask, value]);\n // Run before browser paint to avoid flickering from selection reset.\n useIsomorphicLayoutEffect(function () {\n // Move the cursor to position before paint.\n if (maskCursorPosition !== undefined && textField.current) {\n textField.current.setSelectionRange(maskCursorPosition, maskCursorPosition);\n }\n }, [maskCursorPosition]);\n // Run after browser paint.\n React.useEffect(function () {\n // Move the cursor to the start of the mask format after values update.\n if (internalState.isFocused && maskCursorPosition !== undefined && textField.current) {\n textField.current.setSelectionRange(maskCursorPosition, maskCursorPosition);\n }\n });\n useComponentRef(componentRef, internalState, textField);\n return (React.createElement(TextField, __assign({}, props, { elementRef: ref, onFocus: handleFocus, onBlur: handleBlur, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, onChange: handleInputChange, onKeyDown: handleKeyDown, onPaste: handlePaste, value: displayValue || '', componentRef: textField })));\n});\nMaskedTextField.displayName = COMPONENT_NAME;\n//# sourceMappingURL=MaskedTextField.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, on, initializeComponentRef, KeyCodes, getId } from '../../../Utilities';\n// These imports are separated to help with bundling\nimport { MAX_COLOR_SATURATION, MAX_COLOR_VALUE } from '../../../utilities/color/consts';\nimport { getFullColorString } from '../../../utilities/color/getFullColorString';\nimport { updateSV } from '../../../utilities/color/updateSV';\nimport { clamp } from '../../../utilities/color/clamp';\nimport { WindowContext } from '@fluentui/react-window-provider';\nimport { getWindowEx } from '../../../utilities/dom';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorRectangleBase = /** @class */ (function (_super) {\n __extends(ColorRectangleBase, _super);\n function ColorRectangleBase(props) {\n var _this = _super.call(this, props) || this;\n _this._disposables = [];\n _this._root = React.createRef();\n _this._isAdjustingSaturation = true;\n _this._descriptionId = getId('ColorRectangle-description');\n _this._onKeyDown = function (ev) {\n var color = _this.state.color;\n var s = color.s, v = color.v;\n var increment = ev.shiftKey ? 10 : 1;\n // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n // and getting all the math and styles flipped correctly is tricky\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.up: {\n _this._isAdjustingSaturation = false;\n v += increment; // V = 100 (lightest) is at the top\n break;\n }\n case KeyCodes.down: {\n _this._isAdjustingSaturation = false;\n v -= increment; // V = 0 (darkest) is at the bottom\n break;\n }\n case KeyCodes.left: {\n _this._isAdjustingSaturation = true;\n s -= increment;\n break;\n }\n case KeyCodes.right: {\n _this._isAdjustingSaturation = true;\n s += increment;\n break;\n }\n default:\n return;\n }\n _this._updateColor(ev, updateSV(color, clamp(s, MAX_COLOR_SATURATION), clamp(v, MAX_COLOR_VALUE)));\n };\n _this._onMouseDown = function (ev) {\n var win = getWindowEx(_this.context); // Can only be called on the client\n _this._disposables.push(on(win, 'mousemove', _this._onMouseMove, true), on(win, 'mouseup', _this._disposeListeners, true));\n _this._onMouseMove(ev);\n };\n _this._onMouseMove = function (ev) {\n if (!_this._root.current) {\n return;\n }\n // Leaving the following commented code which is sometimes necessary for debugging:\n // If the primary button (1) isn't pressed, the user is no longer dragging, so turn off\n // the event handlers and exit.\n // if (!(ev.buttons & 1)) {\n // this._disposeListeners();\n // return;\n // }\n var newColor = _getNewColor(ev, _this.state.color, _this._root.current);\n if (newColor) {\n _this._updateColor(ev, newColor);\n }\n };\n _this._onTouchStart = function (ev) {\n if (!_this._root.current) {\n return;\n }\n // prevent touch from scrolling the page so that the touch can be dragged on the color rectangle.\n ev.stopPropagation();\n };\n _this._onTouchMove = function (ev) {\n if (!_this._root.current) {\n return;\n }\n var newColor = _getNewColor(ev, _this.state.color, _this._root.current);\n if (newColor) {\n _this._updateColor(ev, newColor);\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._disposeListeners = function () {\n _this._disposables.forEach(function (dispose) { return dispose(); });\n _this._disposables = [];\n };\n initializeComponentRef(_this);\n _this.state = { color: props.color };\n return _this;\n }\n Object.defineProperty(ColorRectangleBase.prototype, \"color\", {\n get: function () {\n return this.state.color;\n },\n enumerable: false,\n configurable: true\n });\n ColorRectangleBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n // if props changed (as opposed to a state update), set the value\n // TODO: switch to strict controlled pattern instead\n if (prevProps !== this.props && this.props.color) {\n this.setState({ color: this.props.color });\n }\n };\n ColorRectangleBase.prototype.componentDidMount = function () {\n if (this._root.current) {\n // with Chrome's passive DOM listeners, stopPropagation and preventDefault only work if passive is false.\n this._root.current.addEventListener('touchstart', this._onTouchStart, { capture: true, passive: false });\n this._root.current.addEventListener('touchmove', this._onTouchMove, { capture: true, passive: false });\n }\n };\n ColorRectangleBase.prototype.componentWillUnmount = function () {\n if (this._root.current) {\n this._root.current.removeEventListener('touchstart', this._onTouchStart);\n this._root.current.removeEventListener('touchmove', this._onTouchMove);\n }\n this._disposeListeners();\n };\n ColorRectangleBase.prototype.render = function () {\n var _a = this.props, minSize = _a.minSize, theme = _a.theme, className = _a.className, styles = _a.styles, ariaValueFormat = _a.ariaValueFormat, ariaLabel = _a.ariaLabel, ariaDescription = _a.ariaDescription;\n var color = this.state.color;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n minSize: minSize,\n });\n var valueText = ariaValueFormat.replace('{0}', String(color.s)).replace('{1}', String(color.v));\n return (React.createElement(\"div\", { ref: this._root, tabIndex: 0, className: classNames.root, style: { backgroundColor: getFullColorString(color) }, onMouseDown: this._onMouseDown, onKeyDown: this._onKeyDown, role: \"slider\", \"aria-valuetext\": valueText, \"aria-valuenow\": this._isAdjustingSaturation ? color.s : color.v, \"aria-valuemin\": 0, \"aria-valuemax\": MAX_COLOR_VALUE, \"aria-label\": ariaLabel, \"aria-describedby\": this._descriptionId, \"data-is-focusable\": true },\n React.createElement(\"div\", { className: classNames.description, id: this._descriptionId }, ariaDescription),\n React.createElement(\"div\", { className: classNames.light }),\n React.createElement(\"div\", { className: classNames.dark }),\n React.createElement(\"div\", { className: classNames.thumb, style: { left: color.s + '%', top: MAX_COLOR_VALUE - color.v + '%', backgroundColor: color.str } })));\n };\n ColorRectangleBase.prototype._updateColor = function (ev, color) {\n var onChange = this.props.onChange;\n var oldColor = this.state.color;\n if (color.s === oldColor.s && color.v === oldColor.v) {\n return; // no change\n }\n if (onChange) {\n onChange(ev, color);\n }\n if (!ev.defaultPrevented) {\n this.setState({ color: color });\n ev.preventDefault();\n }\n };\n ColorRectangleBase.contextType = WindowContext;\n ColorRectangleBase.defaultProps = {\n minSize: 220,\n ariaLabel: 'Saturation and brightness',\n ariaValueFormat: 'Saturation {0} brightness {1}',\n ariaDescription: 'Use left and right arrow keys to set saturation. Use up and down arrow keys to set brightness.',\n };\n return ColorRectangleBase;\n}(React.Component));\nexport { ColorRectangleBase };\n/**\n * Exported for testing only.\n * @internal\n */\nexport function _getNewColor(ev, prevColor, root) {\n var rectSize = root.getBoundingClientRect();\n var coords = undefined;\n var touchEvent = ev;\n if (touchEvent.touches) {\n var lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n if (lastTouch.clientX !== undefined && lastTouch.clientY !== undefined) {\n coords = {\n clientX: lastTouch.clientX,\n clientY: lastTouch.clientY,\n };\n }\n }\n if (!coords) {\n var mouseEvent = ev;\n if (mouseEvent.clientX !== undefined && mouseEvent.clientY !== undefined) {\n coords = {\n clientX: mouseEvent.clientX,\n clientY: mouseEvent.clientY,\n };\n }\n }\n if (coords) {\n var sPercentage = (coords.clientX - rectSize.left) / rectSize.width;\n var vPercentage = (coords.clientY - rectSize.top) / rectSize.height;\n return updateSV(prevColor, clamp(Math.round(sPercentage * MAX_COLOR_SATURATION), MAX_COLOR_SATURATION), clamp(Math.round(MAX_COLOR_VALUE - vPercentage * MAX_COLOR_VALUE), MAX_COLOR_VALUE));\n }\n}\n//# sourceMappingURL=ColorRectangle.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getHighContrastNoAdjustStyle } from '../../../Styling';\nimport { IsFocusVisibleClassName } from '../../../Utilities';\nimport { hiddenContentStyle } from '@fluentui/style-utilities';\nexport var getStyles = function (props) {\n var _a, _b;\n var className = props.className, theme = props.theme, minSize = props.minSize;\n var palette = theme.palette, effects = theme.effects;\n return {\n root: [\n 'ms-ColorPicker-colorRect',\n {\n position: 'relative',\n marginBottom: 8,\n border: \"1px solid \".concat(palette.neutralLighter),\n borderRadius: effects.roundedCorner2,\n minWidth: minSize,\n minHeight: minSize,\n outline: 'none',\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus, :host(.\").concat(IsFocusVisibleClassName, \") &:focus\")] = (_b = {\n outline: \"1px solid \".concat(palette.neutralSecondary)\n },\n _b[\"\".concat(HighContrastSelector)] = {\n outline: '2px solid CanvasText',\n },\n _b),\n _a),\n },\n className,\n ],\n light: [\n 'ms-ColorPicker-light',\n {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n // and getting all the math and styles flipped correctly is tricky\n background: 'linear-gradient(to right, white 0%, transparent 100%) /*@noflip*/',\n },\n ],\n dark: [\n 'ms-ColorPicker-dark',\n {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n background: 'linear-gradient(to bottom, transparent 0, #000 100%)',\n },\n ],\n thumb: [\n 'ms-ColorPicker-thumb',\n {\n position: 'absolute',\n width: 20,\n height: 20,\n background: 'white',\n border: \"1px solid \".concat(palette.neutralSecondaryAlt),\n borderRadius: '50%',\n boxShadow: effects.elevation8,\n transform: 'translate(-50%, -50%)',\n selectors: {\n ':before': {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n border: \"2px solid \".concat(palette.white),\n borderRadius: '50%',\n boxSizing: 'border-box',\n content: '\"\"',\n },\n },\n },\n ],\n description: hiddenContentStyle,\n };\n};\n//# sourceMappingURL=ColorRectangle.styles.js.map","import { styled } from '../../../Utilities';\nimport { ColorRectangleBase } from './ColorRectangle.base';\nimport { getStyles } from './ColorRectangle.styles';\nexport var ColorRectangle = styled(ColorRectangleBase, getStyles, undefined, { scope: 'ColorRectangle' });\n//# sourceMappingURL=ColorRectangle.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef, on, KeyCodes, getWindow, warnDeprecations, warn, } from '../../../Utilities';\nimport { clamp } from '../../../utilities/color/clamp';\nimport { MAX_COLOR_HUE, MAX_COLOR_ALPHA } from '../../../utilities/color/consts';\nvar getClassNames = classNamesFunction();\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorSliderBase = /** @class */ (function (_super) {\n __extends(ColorSliderBase, _super);\n function ColorSliderBase(props) {\n var _this = _super.call(this, props) || this;\n _this._disposables = [];\n _this._root = React.createRef();\n _this._onKeyDown = function (ev) {\n var currentValue = _this.value;\n var maxValue = _this._maxValue;\n var increment = ev.shiftKey ? 10 : 1;\n // Intentionally DO NOT flip the color picker in RTL: its orientation is not very meaningful,\n // and getting all the math and styles flipped correctly is tricky\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.which) {\n case KeyCodes.left: {\n currentValue -= increment;\n break;\n }\n case KeyCodes.right: {\n currentValue += increment;\n break;\n }\n case KeyCodes.home: {\n currentValue = 0;\n break;\n }\n case KeyCodes.end: {\n currentValue = maxValue;\n break;\n }\n default: {\n return;\n }\n }\n _this._updateValue(ev, clamp(currentValue, maxValue));\n };\n _this._onMouseDown = function (ev) {\n var win = getWindow(_this);\n if (win) {\n _this._disposables.push(on(win, 'mousemove', _this._onMouseMove, true), on(win, 'mouseup', _this._disposeListeners, true));\n }\n _this._onMouseMove(ev);\n };\n _this._onMouseMove = function (ev) {\n if (!_this._root.current) {\n return;\n }\n var maxValue = _this._maxValue;\n var rectSize = _this._root.current.getBoundingClientRect();\n var currentPercentage = (ev.clientX - rectSize.left) / rectSize.width;\n var newValue = clamp(Math.round(currentPercentage * maxValue), maxValue);\n _this._updateValue(ev, newValue);\n };\n _this._onTouchStart = function (ev) {\n if (!_this._root.current) {\n return;\n }\n // prevent touch from scrolling the page so that the touch can be dragged on the color rectangle.\n ev.stopPropagation();\n };\n _this._onTouchMove = function (ev) {\n if (!_this._root.current) {\n return;\n }\n var lastTouch = ev.touches[ev.touches.length - 1];\n if (lastTouch.clientX !== undefined) {\n var maxValue = _this._maxValue;\n var rectSize = _this._root.current.getBoundingClientRect();\n var currentPercentage = (lastTouch.clientX - rectSize.left) / rectSize.width;\n var newValue = clamp(Math.round(currentPercentage * maxValue), maxValue);\n _this._updateValue(ev, newValue);\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n _this._disposeListeners = function () {\n _this._disposables.forEach(function (dispose) { return dispose(); });\n _this._disposables = [];\n };\n initializeComponentRef(_this);\n warnDeprecations('ColorSlider', props, {\n thumbColor: 'styles.sliderThumb',\n overlayStyle: 'overlayColor',\n isAlpha: 'type',\n maxValue: 'type',\n minValue: 'type',\n });\n // eslint-disable-next-line deprecation/deprecation\n if (_this._type !== 'hue' && !(props.overlayColor || props.overlayStyle)) {\n warn(\"ColorSlider: 'overlayColor' is required when 'type' is \\\"alpha\\\" or \\\"transparency\\\"\");\n }\n _this.state = {\n currentValue: props.value || 0,\n };\n return _this;\n }\n Object.defineProperty(ColorSliderBase.prototype, \"value\", {\n get: function () {\n return this.state.currentValue;\n },\n enumerable: false,\n configurable: true\n });\n ColorSliderBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n // if props changed (as opposed to a state update), set the value\n // TODO: switch to strict controlled pattern instead\n if (prevProps !== this.props && this.props.value !== undefined) {\n this.setState({ currentValue: this.props.value });\n }\n };\n ColorSliderBase.prototype.componentDidMount = function () {\n if (this._root.current) {\n // with Chrome's passive DOM listeners, stopPropagation and preventDefault only work if passive is false.\n this._root.current.addEventListener('touchstart', this._onTouchStart, { capture: true, passive: false });\n this._root.current.addEventListener('touchmove', this._onTouchMove, { capture: true, passive: false });\n }\n };\n ColorSliderBase.prototype.componentWillUnmount = function () {\n if (this._root.current) {\n this._root.current.removeEventListener('touchstart', this._onTouchStart);\n this._root.current.removeEventListener('touchmove', this._onTouchMove);\n }\n this._disposeListeners();\n };\n ColorSliderBase.prototype.render = function () {\n var type = this._type;\n var maxValue = this._maxValue;\n var _a = this.props, \n // eslint-disable-next-line deprecation/deprecation\n overlayStyle = _a.overlayStyle, overlayColor = _a.overlayColor, theme = _a.theme, className = _a.className, styles = _a.styles, _b = _a.ariaLabel, ariaLabel = _b === void 0 ? type : _b;\n var currentValue = this.value;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n type: type,\n });\n var currentPercentage = (100 * currentValue) / maxValue;\n return (React.createElement(\"div\", { ref: this._root, className: classNames.root, tabIndex: 0, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, role: \"slider\", \"aria-valuenow\": currentValue, \"aria-valuetext\": String(currentValue), \"aria-valuemin\": 0, \"aria-valuemax\": maxValue, \"aria-label\": ariaLabel, \"data-is-focusable\": true },\n !!(overlayColor || overlayStyle) && (React.createElement(\"div\", { className: classNames.sliderOverlay, \n // this isn't included in getStyles because it may change frequently\n style: overlayColor\n ? {\n background: type === 'transparency'\n ? \"linear-gradient(to right, #\".concat(overlayColor, \", transparent)\")\n : \"linear-gradient(to right, transparent, #\".concat(overlayColor, \")\"),\n }\n : overlayStyle })),\n React.createElement(\"div\", { className: classNames.sliderThumb, style: { left: currentPercentage + '%' } })));\n };\n Object.defineProperty(ColorSliderBase.prototype, \"_type\", {\n get: function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = this.props, isAlpha = _a.isAlpha, _b = _a.type, type = _b === void 0 ? isAlpha ? 'alpha' : 'hue' : _b;\n return type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorSliderBase.prototype, \"_maxValue\", {\n get: function () {\n return this._type === 'hue' ? MAX_COLOR_HUE : MAX_COLOR_ALPHA;\n },\n enumerable: false,\n configurable: true\n });\n ColorSliderBase.prototype._updateValue = function (ev, newValue) {\n if (newValue === this.value) {\n return;\n }\n var onChange = this.props.onChange;\n if (onChange) {\n onChange(ev, newValue);\n }\n if (!ev.defaultPrevented) {\n this.setState({\n currentValue: newValue,\n });\n ev.preventDefault();\n }\n };\n ColorSliderBase.defaultProps = {\n value: 0,\n };\n return ColorSliderBase;\n}(React.Component));\nexport { ColorSliderBase };\n//# sourceMappingURL=ColorSlider.base.js.map","import { IsFocusVisibleClassName } from '../../../Utilities';\nimport { HighContrastSelector } from '../../../Styling';\nvar hueStyle = {\n background: \"linear-gradient(\".concat([\n 'to left',\n 'red 0',\n '#f09 10%',\n '#cd00ff 20%',\n '#3200ff 30%',\n '#06f 40%',\n '#00fffd 50%',\n '#0f6 60%',\n '#35ff00 70%',\n '#cdff00 80%',\n '#f90 90%',\n 'red 100%',\n ].join(','), \")\"),\n};\nvar alphaStyle = {\n backgroundImage: 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJUlEQVQYV2N89erVfwY0ICYmxoguxjgUFKI7GsTH5m4M3w1ChQC1/Ca8i2n1WgAAAABJRU5ErkJggg==)',\n};\nexport var getStyles = function (props) {\n var _a, _b;\n // eslint-disable-next-line deprecation/deprecation\n var theme = props.theme, className = props.className, _c = props.type, type = _c === void 0 ? 'hue' : _c, _d = props.isAlpha, useAlphaBackground = _d === void 0 ? type !== 'hue' : _d;\n var palette = theme.palette, effects = theme.effects;\n return {\n root: [\n 'ms-ColorPicker-slider',\n {\n position: 'relative',\n height: 20,\n marginBottom: 8,\n border: \"1px solid \".concat(palette.neutralLight),\n borderRadius: effects.roundedCorner2,\n boxSizing: 'border-box',\n outline: 'none',\n forcedColorAdjust: 'none',\n selectors: (_a = {},\n _a[\".\".concat(IsFocusVisibleClassName, \" &:focus\")] = (_b = {\n outline: \"1px solid \".concat(palette.neutralSecondary)\n },\n _b[\"\".concat(HighContrastSelector)] = {\n outline: '2px solid CanvasText',\n },\n _b),\n _a),\n },\n useAlphaBackground ? alphaStyle : hueStyle,\n className,\n ],\n sliderOverlay: [\n 'ms-ColorPicker-sliderOverlay',\n {\n content: '',\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n },\n ],\n sliderThumb: [\n 'ms-ColorPicker-thumb',\n 'is-slider',\n {\n position: 'absolute',\n width: 20,\n height: 20,\n background: 'white',\n border: \"1px solid \".concat(palette.neutralSecondaryAlt),\n borderRadius: '50%',\n boxShadow: effects.elevation8,\n transform: 'translate(-50%, -50%)',\n top: '50%',\n forcedColorAdjust: 'auto',\n },\n ],\n };\n};\n//# sourceMappingURL=ColorSlider.styles.js.map","import { styled } from '../../../Utilities';\nimport { ColorSliderBase } from './ColorSlider.base';\nimport { getStyles } from './ColorSlider.styles';\nexport var ColorSlider = styled(ColorSliderBase, getStyles, undefined, { scope: 'ColorSlider' });\n//# sourceMappingURL=ColorSlider.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, FocusRects, initializeComponentRef, warnDeprecations, warn } from '../../Utilities';\nimport { TextField } from '../../TextField';\nimport { TooltipHost } from '../../Tooltip';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { ColorRectangle } from './ColorRectangle/ColorRectangle';\nimport { ColorSlider } from './ColorSlider/ColorSlider';\nimport { MAX_COLOR_ALPHA, MAX_COLOR_RGB, MAX_HEX_LENGTH, MAX_RGBA_LENGTH, MIN_HEX_LENGTH, MIN_RGBA_LENGTH, HEX_REGEX, RGBA_REGEX, } from '../../utilities/color/consts';\n// These imports are separated to help with bundling\nimport { getColorFromString } from '../../utilities/color/getColorFromString';\nimport { getColorFromRGBA } from '../../utilities/color/getColorFromRGBA';\nimport { clamp } from '../../utilities/color/clamp';\nimport { updateA } from '../../utilities/color/updateA';\nimport { updateT } from '../../utilities/color/updateT';\nimport { updateH } from '../../utilities/color/updateH';\nimport { correctRGB } from '../../utilities/color/correctRGB';\nimport { correctHex } from '../../utilities/color/correctHex';\nimport { ColorRectangleBase } from './ColorRectangle/ColorRectangle.base';\nvar getClassNames = classNamesFunction();\nvar allColorComponents = ['hex', 'r', 'g', 'b', 'a', 't'];\nvar errorKeys = {\n hex: 'hexError',\n r: 'redError',\n g: 'greenError',\n b: 'blueError',\n a: 'alphaError',\n t: 'transparencyError',\n};\n/**\n * {@docCategory ColorPicker}\n */\nvar ColorPickerBase = /** @class */ (function (_super) {\n __extends(ColorPickerBase, _super);\n function ColorPickerBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onSVChanged = function (ev, color) {\n _this._updateColor(ev, color);\n };\n _this._onHChanged = function (ev, h) {\n _this._updateColor(ev, updateH(_this.state.color, h));\n };\n /** Callback for when the alpha/transparency slider changes */\n _this._onATChanged = function (ev, value) {\n var updater = _this.props.alphaType === 'transparency' ? updateT : updateA;\n _this._updateColor(ev, updater(_this.state.color, Math.round(value)));\n };\n _this._onBlur = function (event) {\n var _a;\n var _b = _this.state, color = _b.color, editingColor = _b.editingColor;\n if (!editingColor) {\n return;\n }\n // If there was an intermediate incorrect value (such as too large or empty), correct it.\n var value = editingColor.value, component = editingColor.component;\n var isHex = component === 'hex';\n var isAlpha = component === 'a';\n var isTransparency = component === 't';\n var minLength = isHex ? MIN_HEX_LENGTH : MIN_RGBA_LENGTH;\n if (value.length >= minLength && (isHex || !isNaN(Number(value)))) {\n // Real value. Clamp to appropriate length (hex) or range (rgba).\n var newColor = void 0;\n if (isHex) {\n newColor = getColorFromString('#' + correctHex(value));\n }\n else if (isAlpha || isTransparency) {\n var updater = isAlpha ? updateA : updateT;\n newColor = updater(color, clamp(Number(value), MAX_COLOR_ALPHA));\n }\n else {\n newColor = getColorFromRGBA(correctRGB(__assign(__assign({}, color), (_a = {}, _a[component] = Number(value), _a))));\n }\n // Update state and call onChange\n _this._updateColor(event, newColor);\n }\n else {\n // Intermediate value was an empty string or too short (hex only).\n // Just clear the intermediate state and revert to the previous value.\n _this.setState({ editingColor: undefined });\n }\n };\n initializeComponentRef(_this);\n var strings = props.strings; // always defined since it's in defaultProps\n warnDeprecations('ColorPicker', props, {\n hexLabel: 'strings.hex',\n redLabel: 'strings.red',\n greenLabel: 'strings.green',\n blueLabel: 'strings.blue',\n alphaLabel: 'strings.alpha',\n alphaSliderHidden: 'alphaType',\n });\n // eslint-disable-next-line deprecation/deprecation\n if (strings.hue) {\n // warnDeprecations can't handle nested deprecated props\n warn(\"ColorPicker property 'strings.hue' was used but has been deprecated. Use 'strings.hueAriaLabel' instead.\");\n }\n _this.state = {\n color: _getColorFromProps(props) || getColorFromString('#ffffff'),\n };\n _this._textChangeHandlers = {};\n for (var _i = 0, allColorComponents_1 = allColorComponents; _i < allColorComponents_1.length; _i++) {\n var component = allColorComponents_1[_i];\n _this._textChangeHandlers[component] = _this._onTextChange.bind(_this, component);\n }\n var defaultStrings = ColorPickerBase.defaultProps.strings;\n _this._textLabels = {\n /* eslint-disable deprecation/deprecation */\n r: props.redLabel || strings.red || defaultStrings.red,\n g: props.greenLabel || strings.green || defaultStrings.green,\n b: props.blueLabel || strings.blue || defaultStrings.blue,\n a: props.alphaLabel || strings.alpha || defaultStrings.alpha,\n hex: props.hexLabel || strings.hex || defaultStrings.hex,\n t: strings.transparency || defaultStrings.transparency,\n /* eslint-enable deprecation/deprecation */\n };\n _this._strings = __assign(__assign(__assign({}, defaultStrings), { \n // these aria labels default to the visible labels\n alphaAriaLabel: _this._textLabels.a, transparencyAriaLabel: _this._textLabels.t }), strings);\n return _this;\n }\n Object.defineProperty(ColorPickerBase.prototype, \"color\", {\n get: function () {\n return this.state.color;\n },\n enumerable: false,\n configurable: true\n });\n ColorPickerBase.prototype.componentDidUpdate = function (prevProps, prevState) {\n // if props changed (as opposed to a state update), update the color\n if (prevProps !== this.props) {\n var color = _getColorFromProps(this.props);\n if (color) {\n this._updateColor(undefined, color);\n }\n }\n };\n ColorPickerBase.prototype.render = function () {\n var _this = this;\n var props = this.props;\n var strings = this._strings;\n var textLabels = this._textLabels;\n var theme = props.theme, className = props.className, styles = props.styles, alphaType = props.alphaType, \n // eslint-disable-next-line deprecation/deprecation\n _a = props.alphaSliderHidden, \n // eslint-disable-next-line deprecation/deprecation\n alphaSliderHidden = _a === void 0 ? alphaType === 'none' : _a, tooltipProps = props.tooltipProps;\n var color = this.state.color;\n var useTransparency = alphaType === 'transparency';\n var colorComponents = ['hex', 'r', 'g', 'b', useTransparency ? 't' : 'a'];\n var atValue = useTransparency ? color.t : color.a;\n var atLabel = useTransparency ? textLabels.t : textLabels.a;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n alphaType: alphaType,\n });\n var selectedColorAriaParts = [textLabels.r, color.r, textLabels.g, color.g, textLabels.b, color.b];\n if (!alphaSliderHidden && typeof atValue === 'number') {\n selectedColorAriaParts.push(atLabel, \"\".concat(atValue, \"%\"));\n }\n var ariaLabel = strings.rootAriaLabelFormat.replace('{0}', selectedColorAriaParts.join(' '));\n return (React.createElement(\"div\", { className: classNames.root, role: \"group\", \"aria-label\": ariaLabel },\n React.createElement(\"div\", { className: classNames.panel },\n React.createElement(ColorRectangle, { color: color, onChange: this._onSVChanged, ariaLabel: strings.svAriaLabel, ariaDescription: strings.svAriaDescription, ariaValueFormat: strings.svAriaValueFormat, className: classNames.colorRectangle }),\n React.createElement(\"div\", { className: classNames.flexContainer },\n React.createElement(\"div\", { className: classNames.flexSlider },\n React.createElement(ColorSlider, { className: \"is-hue\", type: \"hue\", \n // eslint-disable-next-line deprecation/deprecation\n ariaLabel: strings.hue || strings.hueAriaLabel, value: color.h, onChange: this._onHChanged }),\n !alphaSliderHidden && (React.createElement(ColorSlider, { className: \"is-alpha\", type: alphaType, ariaLabel: useTransparency ? strings.transparencyAriaLabel : strings.alphaAriaLabel, overlayColor: color.hex, value: atValue, onChange: this._onATChanged }))),\n props.showPreview && (React.createElement(\"div\", { className: classNames.flexPreviewBox },\n React.createElement(\"div\", { className: classNames.colorSquare + ' is-preview', style: {\n backgroundColor: color.str,\n } })))),\n React.createElement(\"table\", { className: classNames.table, role: \"group\", cellPadding: \"0\", cellSpacing: \"0\" },\n React.createElement(\"thead\", null,\n React.createElement(\"tr\", { className: classNames.tableHeader },\n React.createElement(\"td\", { className: classNames.tableHexCell }, textLabels.hex),\n React.createElement(\"td\", null, textLabels.r),\n React.createElement(\"td\", null, textLabels.g),\n React.createElement(\"td\", null, textLabels.b),\n !alphaSliderHidden && React.createElement(\"td\", { className: classNames.tableAlphaCell }, atLabel))),\n React.createElement(\"tbody\", null,\n React.createElement(\"tr\", null, colorComponents.map(function (comp) {\n if ((comp === 'a' || comp === 't') && alphaSliderHidden) {\n return null;\n }\n var tooltipContent = _this._getTooltipValue(comp);\n return (React.createElement(\"td\", { key: comp },\n React.createElement(TooltipHost, __assign({ content: tooltipContent, directionalHint: DirectionalHint.bottomCenter, role: \"alert\" }, tooltipProps),\n React.createElement(TextField, { className: classNames.input, onChange: _this._textChangeHandlers[comp], onBlur: _this._onBlur, value: _this._getDisplayValue(comp), spellCheck: false, ariaLabel: textLabels[comp], autoComplete: \"off\", invalid: !!tooltipContent }))));\n }))))),\n React.createElement(FocusRects, null)));\n };\n ColorPickerBase.prototype._getDisplayValue = function (component) {\n var _a = this.state, color = _a.color, editingColor = _a.editingColor;\n if (editingColor && editingColor.component === component) {\n return editingColor.value;\n }\n if (component === 'hex') {\n return color[component] || '';\n }\n else if (typeof color[component] === 'number' && !isNaN(color[component])) {\n return String(color[component]);\n }\n return '';\n };\n /* Get the error tooltip value for a component if the component is in an invalid state */\n ColorPickerBase.prototype._getTooltipValue = function (component) {\n var editingColor = this.state.editingColor;\n // if the component does not have an interim value, it is valid\n if (!editingColor || editingColor.component !== component) {\n return undefined;\n }\n var value = editingColor.value;\n // for hex, do not show a tooltip if the value is between 3-6 characters\n if (component === 'hex' && value.length >= MIN_HEX_LENGTH && value.length <= MAX_HEX_LENGTH) {\n return undefined;\n }\n var errorKey = errorKeys[component];\n return this._strings[errorKey];\n };\n ColorPickerBase.prototype._onTextChange = function (component, event, newValue) {\n var _a;\n var color = this.state.color;\n var isHex = component === 'hex';\n var isAlpha = component === 'a';\n var isTransparency = component === 't';\n // eslint-disable-next-line deprecation/deprecation\n newValue = (newValue || '').substr(0, isHex ? MAX_HEX_LENGTH : MAX_RGBA_LENGTH);\n // Ignore what the user typed if it contains invalid characters\n var validCharsRegex = isHex ? HEX_REGEX : RGBA_REGEX;\n if (!validCharsRegex.test(newValue)) {\n return;\n }\n // Determine if the entry is valid (different methods for hex, alpha, and RGB)\n var isValid;\n if (newValue === '') {\n // Empty string is obviously not valid\n isValid = false;\n }\n else if (isHex) {\n // Technically hex values of length 3 are also valid, but committing the value here would\n // cause it to be automatically converted to a value of length 6, which may not be what the\n // user wanted if they're not finished typing. (Values of length 3 will be committed on blur.)\n isValid = newValue.length === MAX_HEX_LENGTH;\n }\n else if (isAlpha || isTransparency) {\n isValid = Number(newValue) <= MAX_COLOR_ALPHA;\n }\n else {\n isValid = Number(newValue) <= MAX_COLOR_RGB;\n }\n if (!isValid) {\n // If the new value is an empty string or other invalid value, save that to display.\n // (if the user still hasn't entered anything on blur, the last value is restored)\n this.setState({ editingColor: { component: component, value: newValue } });\n }\n else if (String(color[component]) === newValue) {\n // If the new value is the same as the current value, mostly ignore it.\n // Exception is that if the user was previously editing the value (but hadn't yet entered\n // a new valid value), we should clear the intermediate value.\n if (this.state.editingColor) {\n this.setState({ editingColor: undefined });\n }\n }\n else {\n // Should be a valid color. Update the value.\n var newColor = isHex\n ? getColorFromString('#' + newValue)\n : isTransparency\n ? updateT(color, Number(newValue))\n : getColorFromRGBA(__assign(__assign({}, color), (_a = {}, _a[component] = Number(newValue), _a)));\n this._updateColor(event, newColor);\n }\n };\n /**\n * Update the displayed color and call change handlers if appropriate.\n * @param ev - Event if call was triggered by an event (undefined if triggered by props change)\n * @param newColor - Updated color\n */\n ColorPickerBase.prototype._updateColor = function (ev, newColor) {\n if (!newColor) {\n return;\n }\n var _a = this.state, color = _a.color, editingColor = _a.editingColor;\n // For black or white, the hue can change without changing the string.\n var isDifferentColor = newColor.h !== color.h || newColor.str !== color.str;\n if (isDifferentColor || editingColor) {\n // If ev is undefined, it's an update from props (which should be unconditionally respected\n // and not call onChange).\n if (ev && this.props.onChange) {\n this.props.onChange(ev, newColor);\n if (ev.defaultPrevented) {\n return;\n }\n }\n this.setState({ color: newColor, editingColor: undefined });\n }\n };\n ColorPickerBase.defaultProps = {\n alphaType: 'alpha',\n strings: {\n rootAriaLabelFormat: 'Color picker, {0} selected.',\n hex: 'Hex',\n red: 'Red',\n green: 'Green',\n blue: 'Blue',\n alpha: 'Alpha',\n transparency: 'Transparency',\n hueAriaLabel: 'Hue',\n svAriaLabel: ColorRectangleBase.defaultProps.ariaLabel,\n svAriaValueFormat: ColorRectangleBase.defaultProps.ariaValueFormat,\n svAriaDescription: ColorRectangleBase.defaultProps.ariaDescription,\n hexError: 'Hex values must be between 3 and 6 characters long',\n alphaError: 'Alpha must be between 0 and 100',\n transparencyError: 'Transparency must be between 0 and 100',\n redError: 'Red must be between 0 and 255',\n greenError: 'Green must be between 0 and 255',\n blueError: 'Blue must be between 0 and 255',\n },\n };\n return ColorPickerBase;\n}(React.Component));\nexport { ColorPickerBase };\nfunction _getColorFromProps(props) {\n var color = props.color;\n return typeof color === 'string' ? getColorFromString(color) : color;\n}\n//# sourceMappingURL=ColorPicker.base.js.map","export var getStyles = function (props) {\n var className = props.className, theme = props.theme, alphaType = props.alphaType;\n return {\n root: [\n 'ms-ColorPicker',\n theme.fonts.medium,\n {\n position: 'relative',\n maxWidth: 300,\n },\n className,\n ],\n panel: [\n 'ms-ColorPicker-panel',\n {\n padding: '16px',\n },\n ],\n table: [\n 'ms-ColorPicker-table',\n {\n tableLayout: 'fixed',\n width: '100%',\n selectors: {\n 'tbody td:last-of-type .ms-ColorPicker-input': {\n paddingRight: 0,\n },\n },\n },\n ],\n tableHeader: [\n theme.fonts.small,\n {\n selectors: {\n td: {\n paddingBottom: 4,\n },\n },\n },\n ],\n tableHexCell: {\n width: '25%',\n },\n // Account for \"Transparency\" being a longer word\n tableAlphaCell: alphaType === 'transparency' && {\n width: '22%',\n },\n colorSquare: [\n 'ms-ColorPicker-colorSquare',\n {\n width: 48,\n height: 48,\n margin: '0 0 0 8px',\n border: '1px solid #c8c6c4',\n forcedColorAdjust: 'none',\n },\n ],\n flexContainer: {\n display: 'flex',\n },\n flexSlider: {\n flexGrow: '1',\n },\n flexPreviewBox: {\n flexGrow: '0',\n },\n input: [\n 'ms-ColorPicker-input',\n {\n width: '100%',\n border: 'none',\n boxSizing: 'border-box',\n height: 30,\n selectors: {\n '&.ms-TextField': {\n paddingRight: 4,\n },\n '& .ms-TextField-field': {\n minWidth: 'auto',\n padding: 5,\n textOverflow: 'clip',\n },\n },\n },\n ],\n };\n};\n//# sourceMappingURL=ColorPicker.styles.js.map","import { styled } from '../../Utilities';\nimport { ColorPickerBase } from './ColorPicker.base';\nimport { getStyles } from './ColorPicker.styles';\nexport var ColorPicker = styled(ColorPickerBase, getStyles, undefined, { scope: 'ColorPicker' });\n//# sourceMappingURL=ColorPicker.js.map","/**\n * {@docCategory Dialog}\n */\nexport var DialogType;\n(function (DialogType) {\n /** Standard dialog */\n DialogType[DialogType[\"normal\"] = 0] = \"normal\";\n /** Dialog with large header banner */\n DialogType[DialogType[\"largeHeader\"] = 1] = \"largeHeader\";\n /** Dialog with an 'x' close button in the upper-right corner */\n DialogType[DialogType[\"close\"] = 2] = \"close\";\n})(DialogType || (DialogType = {}));\n//# sourceMappingURL=DialogContent.types.js.map","import { AnimationVariables, getGlobalClassNames, ZIndexes } from '../../Styling';\nexport var animationDuration = AnimationVariables.durationValue2;\nvar globalClassNames = {\n root: 'ms-Modal',\n main: 'ms-Dialog-main',\n scrollableContent: 'ms-Modal-scrollableContent',\n isOpen: 'is-open',\n layer: 'ms-Modal-Layer',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, containerClassName = props.containerClassName, scrollableContentClassName = props.scrollableContentClassName, isOpen = props.isOpen, isVisible = props.isVisible, hasBeenOpened = props.hasBeenOpened, modalRectangleTop = props.modalRectangleTop, theme = props.theme, topOffsetFixed = props.topOffsetFixed, isModeless = props.isModeless, layerClassName = props.layerClassName, isDefaultDragHandle = props.isDefaultDragHandle, windowInnerHeight = props.windowInnerHeight;\n var palette = theme.palette, effects = theme.effects, fonts = theme.fonts;\n var classNames = getGlobalClassNames(globalClassNames, theme);\n return {\n root: [\n classNames.root,\n fonts.medium,\n {\n backgroundColor: 'transparent',\n position: 'fixed',\n height: '100%',\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n opacity: 0,\n pointerEvents: 'none',\n transition: \"opacity \".concat(animationDuration),\n },\n topOffsetFixed &&\n typeof modalRectangleTop === 'number' &&\n hasBeenOpened && {\n alignItems: 'flex-start',\n },\n isOpen && classNames.isOpen,\n isVisible && {\n opacity: 1,\n },\n isVisible &&\n !isModeless && {\n pointerEvents: 'auto',\n },\n className,\n ],\n main: [\n classNames.main,\n {\n boxShadow: effects.elevation64,\n borderRadius: effects.roundedCorner2,\n backgroundColor: palette.white,\n boxSizing: 'border-box',\n position: 'relative',\n textAlign: 'left',\n outline: '3px solid transparent',\n maxHeight: 'calc(100% - 32px)',\n maxWidth: 'calc(100% - 32px)',\n minHeight: '176px',\n minWidth: '288px',\n overflowY: 'auto',\n zIndex: isModeless ? ZIndexes.Layer : undefined,\n },\n isModeless && {\n pointerEvents: 'auto',\n },\n topOffsetFixed &&\n typeof modalRectangleTop === 'number' &&\n hasBeenOpened && {\n top: modalRectangleTop,\n },\n isDefaultDragHandle && {\n cursor: 'move',\n },\n containerClassName,\n ],\n scrollableContent: [\n classNames.scrollableContent,\n {\n overflowY: 'auto',\n flexGrow: 1,\n maxHeight: '100vh',\n selectors: (_a = {},\n _a['@supports (-webkit-overflow-scrolling: touch)'] = {\n maxHeight: windowInnerHeight,\n },\n _a),\n },\n scrollableContentClassName,\n ],\n layer: isModeless && [layerClassName, classNames.layer, { pointerEvents: 'none' }],\n keyboardMoveIconContainer: {\n position: 'absolute',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n padding: '3px 0px',\n },\n keyboardMoveIcon: {\n // eslint-disable-next-line deprecation/deprecation\n fontSize: fonts.xLargePlus.fontSize,\n width: '24px',\n },\n };\n};\n//# sourceMappingURL=Modal.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getNativeProps, divProperties, enableBodyScroll, disableBodyScroll, initializeComponentRef, } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar OverlayBase = /** @class */ (function (_super) {\n __extends(OverlayBase, _super);\n function OverlayBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n return _this;\n }\n OverlayBase.prototype.componentDidMount = function () {\n !this._allowTouchBodyScroll && disableBodyScroll();\n };\n OverlayBase.prototype.componentWillUnmount = function () {\n !this._allowTouchBodyScroll && enableBodyScroll();\n };\n OverlayBase.prototype.render = function () {\n var _a = this.props, isDark = _a.isDarkThemed, className = _a.className, theme = _a.theme, styles = _a.styles;\n var divProps = getNativeProps(this.props, divProperties);\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isDark: isDark,\n });\n return React.createElement(\"div\", __assign({}, divProps, { className: classNames.root }));\n };\n return OverlayBase;\n}(React.Component));\nexport { OverlayBase };\n//# sourceMappingURL=Overlay.base.js.map","import { HighContrastSelector, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Overlay',\n rootDark: 'ms-Overlay--dark',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isNone = props.isNone, isDark = props.isDark;\n var palette = theme.palette;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n {\n backgroundColor: palette.whiteTranslucent40,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n position: 'absolute',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: '1px solid WindowText',\n opacity: 0,\n },\n _a),\n },\n isNone && {\n visibility: 'hidden',\n },\n isDark && [\n classNames.rootDark,\n {\n backgroundColor: palette.blackTranslucent40,\n },\n ],\n className,\n ],\n };\n};\n//# sourceMappingURL=Overlay.styles.js.map","import { styled } from '../../Utilities';\nimport { OverlayBase } from './Overlay.base';\nimport { getStyles } from './Overlay.styles';\nexport var Overlay = styled(OverlayBase, getStyles, undefined, {\n scope: 'Overlay',\n});\n//# sourceMappingURL=Overlay.js.map","import { memoizeFunction } from '../../Utilities';\nimport { mergeStyles } from '../../Styling';\nexport var getClassNames = memoizeFunction(function (className, isDragging) {\n return {\n root: mergeStyles(className, isDragging && {\n touchAction: 'none',\n selectors: {\n '& *': {\n userSelect: 'none',\n },\n },\n }),\n };\n});\n//# sourceMappingURL=DraggableZone.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { getClassNames } from './DraggableZone.styles';\nimport { on } from '../../Utilities';\nimport { WindowContext } from '@fluentui/react-window-provider';\nimport { getDocumentEx } from '../dom';\nvar eventMapping = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend',\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup',\n },\n};\nvar DraggableZone = /** @class */ (function (_super) {\n __extends(DraggableZone, _super);\n function DraggableZone(props) {\n var _this = _super.call(this, props) || this;\n _this._currentEventType = eventMapping.mouse;\n _this._events = [];\n _this._onMouseDown = function (event) {\n var onMouseDown = React.Children.only(_this.props.children).props.onMouseDown;\n if (onMouseDown) {\n onMouseDown(event);\n }\n _this._currentEventType = eventMapping.mouse;\n return _this._onDragStart(event);\n };\n _this._onMouseUp = function (event) {\n var onMouseUp = React.Children.only(_this.props.children).props.onMouseUp;\n if (onMouseUp) {\n onMouseUp(event);\n }\n _this._currentEventType = eventMapping.mouse;\n return _this._onDragStop(event);\n };\n _this._onTouchStart = function (event) {\n var onTouchStart = React.Children.only(_this.props.children).props.onTouchStart;\n if (onTouchStart) {\n onTouchStart(event);\n }\n _this._currentEventType = eventMapping.touch;\n return _this._onDragStart(event);\n };\n _this._onTouchEnd = function (event) {\n var onTouchEnd = React.Children.only(_this.props.children).props.onTouchEnd;\n if (onTouchEnd) {\n onTouchEnd(event);\n }\n _this._currentEventType = eventMapping.touch;\n _this._onDragStop(event);\n };\n _this._onDragStart = function (event) {\n // Only handle left click for dragging\n if (typeof event.button === 'number' && event.button !== 0) {\n return false;\n }\n // If the target doesn't match the handleSelector OR\n // if the target does match the preventDragSelector, bail out\n if ((_this.props.handleSelector && !_this._matchesSelector(event.target, _this.props.handleSelector)) ||\n (_this.props.preventDragSelector &&\n _this._matchesSelector(event.target, _this.props.preventDragSelector))) {\n return;\n }\n // Remember the touch identifier if this is a touch event so we can\n // distinguish between individual touches in multitouch scenarios\n // by remembering which touch point we were given\n _this._touchId = _this._getTouchId(event);\n var position = _this._getControlPosition(event);\n if (position === undefined) {\n return;\n }\n var dragData = _this._createDragDataFromPosition(position);\n _this.props.onStart && _this.props.onStart(event, dragData);\n _this.setState({\n isDragging: true,\n lastPosition: position,\n });\n // hook up the appropriate mouse/touch events to the body to ensure\n // smooth dragging\n var doc = getDocumentEx(_this.context);\n _this._events = [\n on(doc.body, _this._currentEventType.move, _this._onDrag, true /* use capture phase */),\n on(doc.body, _this._currentEventType.stop, _this._onDragStop, true /* use capture phase */),\n ];\n };\n _this._onDrag = function (event) {\n // Prevent scrolling on mobile devices\n if (event.type === 'touchmove') {\n event.preventDefault();\n }\n var position = _this._getControlPosition(event);\n if (!position) {\n return;\n }\n // create the updated drag data from the position data\n var updatedData = _this._createUpdatedDragData(_this._createDragDataFromPosition(position));\n var updatedPosition = updatedData.position;\n _this.props.onDragChange && _this.props.onDragChange(event, updatedData);\n _this.setState({\n position: updatedPosition,\n lastPosition: position,\n });\n };\n _this._onDragStop = function (event) {\n if (!_this.state.isDragging) {\n return;\n }\n var position = _this._getControlPosition(event);\n if (!position) {\n return;\n }\n var baseDragData = _this._createDragDataFromPosition(position);\n // Set dragging to false and reset the lastPosition\n _this.setState({\n isDragging: false,\n lastPosition: undefined,\n });\n _this.props.onStop && _this.props.onStop(event, baseDragData);\n if (_this.props.position) {\n _this.setState({\n position: _this.props.position,\n });\n }\n // Remove event handlers\n _this._events.forEach(function (dispose) { return dispose(); });\n };\n _this.state = {\n isDragging: false,\n position: _this.props.position || { x: 0, y: 0 },\n lastPosition: undefined,\n };\n return _this;\n }\n DraggableZone.prototype.componentDidUpdate = function (prevProps) {\n if (this.props.position && (!prevProps.position || this.props.position !== prevProps.position)) {\n this.setState({ position: this.props.position });\n }\n };\n DraggableZone.prototype.componentWillUnmount = function () {\n this._events.forEach(function (dispose) { return dispose(); });\n };\n DraggableZone.prototype.render = function () {\n var child = React.Children.only(this.props.children);\n var props = child.props;\n var position = this.props.position;\n var _a = this.state, statePosition = _a.position, isDragging = _a.isDragging;\n var x = statePosition.x;\n var y = statePosition.y;\n if (position && !isDragging) {\n x = position.x;\n y = position.y;\n }\n return React.cloneElement(child, {\n style: __assign(__assign({}, props.style), { transform: \"translate(\".concat(x, \"px, \").concat(y, \"px)\") }),\n className: getClassNames(props.className, this.state.isDragging).root,\n onMouseDown: this._onMouseDown,\n onMouseUp: this._onMouseUp,\n onTouchStart: this._onTouchStart,\n onTouchEnd: this._onTouchEnd,\n });\n };\n /**\n * Get the control position based off the event that fired\n * @param event - The event to get offsets from\n */\n DraggableZone.prototype._getControlPosition = function (event) {\n var touchObj = this._getActiveTouch(event);\n // did we get the right touch?\n if (this._touchId !== undefined && !touchObj) {\n return undefined;\n }\n var eventToGetOffset = touchObj || event;\n return {\n x: eventToGetOffset.clientX,\n y: eventToGetOffset.clientY,\n };\n };\n /**\n * Get the active touch point that we have saved from the event's TouchList\n * @param event - The event used to get the TouchList for the active touch point\n */\n DraggableZone.prototype._getActiveTouch = function (event) {\n return ((event.targetTouches && this._findTouchInTouchList(event.targetTouches)) ||\n (event.changedTouches && this._findTouchInTouchList(event.changedTouches)));\n };\n /**\n * Get the initial touch identifier associated with the given event\n * @param event - The event that contains the TouchList\n */\n DraggableZone.prototype._getTouchId = function (event) {\n var touch = (event.targetTouches && event.targetTouches[0]) || (event.changedTouches && event.changedTouches[0]);\n if (touch) {\n return touch.identifier;\n }\n };\n /**\n * Returns if an element (or any of the element's parents) match the given selector\n */\n DraggableZone.prototype._matchesSelector = function (element, selector) {\n var _a;\n if (!element || element === ((_a = getDocumentEx(this.context)) === null || _a === void 0 ? void 0 : _a.body)) {\n return false;\n }\n var matchesSelectorFn = \n // eslint-disable-next-line deprecation/deprecation\n element.matches || element.webkitMatchesSelector || element.msMatchesSelector; /* for IE */\n if (!matchesSelectorFn) {\n return false;\n }\n return matchesSelectorFn.call(element, selector) || this._matchesSelector(element.parentElement, selector);\n };\n /**\n * Attempts to find the Touch that matches the identifier we stored in dragStart\n * @param touchList The TouchList to look for the stored identifier from dragStart\n */\n DraggableZone.prototype._findTouchInTouchList = function (touchList) {\n if (this._touchId === undefined) {\n return;\n }\n for (var i = 0; i < touchList.length; i++) {\n if (touchList[i].identifier === this._touchId) {\n return touchList[i];\n }\n }\n return undefined;\n };\n /**\n * Create DragData based off of the last known position and the new position passed in\n * @param position The new position as part of the drag\n */\n DraggableZone.prototype._createDragDataFromPosition = function (position) {\n var lastPosition = this.state.lastPosition;\n // If we have no lastPosition, use the given position\n // for last position\n if (lastPosition === undefined) {\n return {\n delta: { x: 0, y: 0 },\n lastPosition: position,\n position: position,\n };\n }\n return {\n delta: {\n x: position.x - lastPosition.x,\n y: position.y - lastPosition.y,\n },\n lastPosition: lastPosition,\n position: position,\n };\n };\n /**\n * Creates an updated DragData based off the current position and given baseDragData\n * @param baseDragData The base DragData (from _createDragDataFromPosition) used to calculate the updated positions\n */\n DraggableZone.prototype._createUpdatedDragData = function (baseDragData) {\n var position = this.state.position;\n return {\n position: {\n x: position.x + baseDragData.delta.x,\n y: position.y + baseDragData.delta.y,\n },\n delta: baseDragData.delta,\n lastPosition: position,\n };\n };\n DraggableZone.contextType = WindowContext;\n return DraggableZone;\n}(React.Component));\nexport { DraggableZone };\n//# sourceMappingURL=DraggableZone.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, allowScrollOnElement, allowOverscrollOnElement, getPropsWithDefaults, KeyCodes, elementContains, EventGroup, } from '../../Utilities';\nimport { FocusTrapZone } from '../../FocusTrapZone';\nimport { animationDuration } from './Modal.styles';\nimport { Overlay } from '../../Overlay';\nimport { Layer } from '../../Layer';\nimport { Popup } from '../../Popup';\nimport { ResponsiveMode, useResponsiveMode } from '../../ResponsiveMode';\nimport { DirectionalHint } from '../../common/DirectionalHint';\nimport { Icon } from '../../Icon';\nimport { DraggableZone } from '../../utilities/DraggableZone/index';\nimport { useWindow } from '@fluentui/react-window-provider';\nimport { useBoolean, useMergedRefs, useWarnings, useConst, useSetTimeout, useId, useUnmount, } from '@fluentui/react-hooks';\nvar ZERO = { x: 0, y: 0 };\nvar DEFAULT_PROPS = {\n isOpen: false,\n isDarkOverlay: true,\n className: '',\n containerClassName: '',\n enableAriaHiddenSiblings: true,\n};\nvar getClassNames = classNamesFunction();\nvar getMoveDelta = function (ev) {\n var delta = 10;\n if (ev.shiftKey) {\n if (!ev.ctrlKey) {\n delta = 50;\n }\n }\n else if (ev.ctrlKey) {\n delta = 1;\n }\n return delta;\n};\nvar useComponentRef = function (props, focusTrapZone) {\n React.useImperativeHandle(props.componentRef, function () { return ({\n focus: function () {\n if (focusTrapZone.current) {\n focusTrapZone.current.focus();\n }\n },\n }); }, [focusTrapZone]);\n};\nexport var ModalBase = React.forwardRef(function (propsWithoutDefaults, ref) {\n var _a, _b, _c, _d, _e;\n var props = getPropsWithDefaults(DEFAULT_PROPS, propsWithoutDefaults);\n var allowTouchBodyScroll = props.allowTouchBodyScroll, className = props.className, children = props.children, containerClassName = props.containerClassName, scrollableContentClassName = props.scrollableContentClassName, elementToFocusOnDismiss = props.elementToFocusOnDismiss, firstFocusableSelector = props.firstFocusableSelector, focusTrapZoneProps = props.focusTrapZoneProps, forceFocusInsideTrap = props.forceFocusInsideTrap, \n // eslint-disable-next-line deprecation/deprecation\n _f = props.disableRestoreFocus, \n // eslint-disable-next-line deprecation/deprecation\n disableRestoreFocus = _f === void 0 ? props.ignoreExternalFocusing : _f, isBlocking = props.isBlocking, isAlert = props.isAlert, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, isDarkOverlay = props.isDarkOverlay, onDismiss = props.onDismiss, layerProps = props.layerProps, overlay = props.overlay, isOpen = props.isOpen, titleAriaId = props.titleAriaId, styles = props.styles, subtitleAriaId = props.subtitleAriaId, theme = props.theme, topOffsetFixed = props.topOffsetFixed, responsiveMode = props.responsiveMode, \n // eslint-disable-next-line deprecation/deprecation\n onLayerDidMount = props.onLayerDidMount, isModeless = props.isModeless, dragOptions = props.dragOptions, onDismissed = props.onDismissed, \n // eslint-disable-next-line deprecation/deprecation\n enableAriaHiddenSiblings = props.enableAriaHiddenSiblings, popupProps = props.popupProps;\n var rootRef = React.useRef(null);\n var focusTrapZone = React.useRef(null);\n var focusTrapZoneRef = useMergedRefs(focusTrapZone, focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.componentRef);\n var focusTrapZoneElm = React.useRef(null);\n var mergedRef = useMergedRefs(rootRef, ref);\n var modalResponsiveMode = useResponsiveMode(mergedRef);\n var focusTrapZoneId = useId('ModalFocusTrapZone', focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.id);\n var win = useWindow();\n var _g = useSetTimeout(), setTimeout = _g.setTimeout, clearTimeout = _g.clearTimeout;\n var _h = React.useState(isOpen), isModalOpen = _h[0], setIsModalOpen = _h[1];\n var _j = React.useState(isOpen), isVisible = _j[0], setIsVisible = _j[1];\n var _k = React.useState(ZERO), coordinates = _k[0], setCoordinates = _k[1];\n var _l = React.useState(), modalRectangleTop = _l[0], setModalRectangleTop = _l[1];\n var _m = useBoolean(false), isModalMenuOpen = _m[0], _o = _m[1], toggleModalMenuOpen = _o.toggle, setModalMenuClose = _o.setFalse;\n var internalState = useConst(function () { return ({\n onModalCloseTimer: 0,\n allowTouchBodyScroll: allowTouchBodyScroll,\n scrollableContent: null,\n lastSetCoordinates: ZERO,\n events: new EventGroup({}),\n }); });\n var keepInBounds = (dragOptions || {}).keepInBounds;\n var isAlertRole = isAlert !== null && isAlert !== void 0 ? isAlert : (isBlocking && !isModeless);\n var layerClassName = layerProps === undefined ? '' : layerProps.className;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n containerClassName: containerClassName,\n scrollableContentClassName: scrollableContentClassName,\n isOpen: isOpen,\n isVisible: isVisible,\n hasBeenOpened: internalState.hasBeenOpened,\n modalRectangleTop: modalRectangleTop,\n topOffsetFixed: topOffsetFixed,\n isModeless: isModeless,\n layerClassName: layerClassName,\n windowInnerHeight: win === null || win === void 0 ? void 0 : win.innerHeight,\n isDefaultDragHandle: dragOptions && !dragOptions.dragHandleSelector,\n });\n var mergedLayerProps = __assign(__assign({ eventBubblingEnabled: false }, layerProps), { onLayerDidMount: layerProps && layerProps.onLayerDidMount ? layerProps.onLayerDidMount : onLayerDidMount, insertFirst: (layerProps === null || layerProps === void 0 ? void 0 : layerProps.insertFirst) || isModeless, className: classNames.layer });\n // Allow the user to scroll within the modal but not on the body\n var allowScrollOnModal = React.useCallback(function (elt) {\n if (elt) {\n if (internalState.allowTouchBodyScroll) {\n allowOverscrollOnElement(elt, internalState.events);\n }\n else {\n allowScrollOnElement(elt, internalState.events);\n }\n }\n else {\n internalState.events.off(internalState.scrollableContent);\n }\n internalState.scrollableContent = elt;\n }, [internalState]);\n var registerInitialModalPosition = function () {\n var dialogMain = focusTrapZoneElm.current;\n var modalRectangle = dialogMain === null || dialogMain === void 0 ? void 0 : dialogMain.getBoundingClientRect();\n if (modalRectangle) {\n if (topOffsetFixed) {\n setModalRectangleTop(modalRectangle.top);\n }\n if (keepInBounds) {\n // x/y are unavailable in IE, so use the equivalent left/top\n internalState.minPosition = { x: -modalRectangle.left, y: -modalRectangle.top };\n internalState.maxPosition = { x: modalRectangle.left, y: modalRectangle.top };\n }\n }\n };\n /**\n * Clamps an axis to a specified min and max position.\n *\n * @param axis A string that represents the axis (x/y).\n * @param position The position on the axis.\n */\n var getClampedAxis = React.useCallback(function (axis, position) {\n var minPosition = internalState.minPosition, maxPosition = internalState.maxPosition;\n if (keepInBounds && minPosition && maxPosition) {\n position = Math.max(minPosition[axis], position);\n position = Math.min(maxPosition[axis], position);\n }\n return position;\n }, [keepInBounds, internalState]);\n var handleModalClose = function () {\n var _a;\n internalState.lastSetCoordinates = ZERO;\n setModalMenuClose();\n internalState.isInKeyboardMoveMode = false;\n setIsModalOpen(false);\n setCoordinates(ZERO);\n (_a = internalState.disposeOnKeyUp) === null || _a === void 0 ? void 0 : _a.call(internalState);\n onDismissed === null || onDismissed === void 0 ? void 0 : onDismissed();\n };\n var handleDragStart = React.useCallback(function () {\n setModalMenuClose();\n internalState.isInKeyboardMoveMode = false;\n }, [internalState, setModalMenuClose]);\n var handleDrag = React.useCallback(function (ev, dragData) {\n setCoordinates(function (prevValue) { return ({\n x: getClampedAxis('x', prevValue.x + dragData.delta.x),\n y: getClampedAxis('y', prevValue.y + dragData.delta.y),\n }); });\n }, [getClampedAxis]);\n var handleDragStop = React.useCallback(function () {\n if (focusTrapZone.current) {\n focusTrapZone.current.focus();\n }\n }, []);\n var handleEnterKeyboardMoveMode = function () {\n // We need a global handleKeyDown event when we are in the move mode so that we can\n // handle the key presses and the components inside the modal do not get the events\n var handleKeyDown = function (ev) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.altKey && ev.ctrlKey && ev.keyCode === KeyCodes.space) {\n // CTRL + ALT + SPACE is handled during keyUp\n ev.preventDefault();\n ev.stopPropagation();\n return;\n }\n // eslint-disable-next-line deprecation/deprecation\n var newLocal = ev.altKey || ev.keyCode === KeyCodes.escape;\n if (isModalMenuOpen && newLocal) {\n setModalMenuClose();\n }\n // eslint-disable-next-line deprecation/deprecation\n if (internalState.isInKeyboardMoveMode && (ev.keyCode === KeyCodes.escape || ev.keyCode === KeyCodes.enter)) {\n internalState.isInKeyboardMoveMode = false;\n ev.preventDefault();\n ev.stopPropagation();\n }\n if (internalState.isInKeyboardMoveMode) {\n var handledEvent = true;\n var delta_1 = getMoveDelta(ev);\n // eslint-disable-next-line deprecation/deprecation\n switch (ev.keyCode) {\n /* eslint-disable no-fallthrough */\n case KeyCodes.escape:\n setCoordinates(internalState.lastSetCoordinates);\n case KeyCodes.enter: {\n // TODO: determine if fallthrough was intentional\n /* eslint-enable no-fallthrough */\n internalState.lastSetCoordinates = ZERO;\n // setIsInKeyboardMoveMode(false);\n break;\n }\n case KeyCodes.up: {\n setCoordinates(function (prevValue) { return ({ x: prevValue.x, y: getClampedAxis('y', prevValue.y - delta_1) }); });\n break;\n }\n case KeyCodes.down: {\n setCoordinates(function (prevValue) { return ({ x: prevValue.x, y: getClampedAxis('y', prevValue.y + delta_1) }); });\n break;\n }\n case KeyCodes.left: {\n setCoordinates(function (prevValue) { return ({ x: getClampedAxis('x', prevValue.x - delta_1), y: prevValue.y }); });\n break;\n }\n case KeyCodes.right: {\n setCoordinates(function (prevValue) { return ({ x: getClampedAxis('x', prevValue.x + delta_1), y: prevValue.y }); });\n break;\n }\n default: {\n handledEvent = false;\n }\n }\n if (handledEvent) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n internalState.lastSetCoordinates = coordinates;\n setModalMenuClose();\n internalState.isInKeyboardMoveMode = true;\n internalState.events.on(win, 'keydown', handleKeyDown, true /* useCapture */);\n internalState.disposeOnKeyDown = function () {\n internalState.events.off(win, 'keydown', handleKeyDown, true /* useCapture */);\n internalState.disposeOnKeyDown = undefined;\n };\n };\n var handleExitKeyboardMoveMode = function (ev) {\n var _a, _b;\n (_a = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(focusTrapZoneProps, ev);\n internalState.lastSetCoordinates = ZERO;\n internalState.isInKeyboardMoveMode = false;\n (_b = internalState.disposeOnKeyDown) === null || _b === void 0 ? void 0 : _b.call(internalState);\n };\n var registerForKeyUp = function () {\n var handleKeyUp = function (ev) {\n // Needs to handle the CTRL + ALT + SPACE key during keyup due to FireFox bug:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n // eslint-disable-next-line deprecation/deprecation\n if (ev.altKey && ev.ctrlKey && ev.keyCode === KeyCodes.space) {\n if (elementContains(internalState.scrollableContent, ev.target)) {\n toggleModalMenuOpen();\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n };\n if (!internalState.disposeOnKeyUp) {\n internalState.events.on(win, 'keyup', handleKeyUp, true /* useCapture */);\n internalState.disposeOnKeyUp = function () {\n internalState.events.off(win, 'keyup', handleKeyUp, true /* useCapture */);\n internalState.disposeOnKeyUp = undefined;\n };\n }\n };\n React.useEffect(function () {\n clearTimeout(internalState.onModalCloseTimer);\n // Opening the dialog\n if (isOpen) {\n // This must be done after the modal content has rendered\n requestAnimationFrame(function () { return setTimeout(registerInitialModalPosition, 0); });\n setIsModalOpen(true);\n // Add a keyUp handler for all key up events once the dialog is open.\n if (dragOptions) {\n registerForKeyUp();\n }\n internalState.hasBeenOpened = true;\n setIsVisible(true);\n }\n // Closing the dialog\n if (!isOpen && isModalOpen) {\n internalState.onModalCloseTimer = setTimeout(handleModalClose, parseFloat(animationDuration) * 1000);\n setIsVisible(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- should only run if isModalOpen or isOpen mutates.\n }, [isModalOpen, isOpen]);\n useUnmount(function () {\n internalState.events.dispose();\n if (internalState.onModalCloseTimer) {\n clearTimeout(internalState.onModalCloseTimer);\n internalState.onModalCloseTimer = 0;\n }\n });\n useComponentRef(props, focusTrapZone);\n useDebugWarnings(props);\n var modalContent = (React.createElement(FocusTrapZone, __assign({}, focusTrapZoneProps, { id: focusTrapZoneId, ref: focusTrapZoneElm, componentRef: focusTrapZoneRef, className: css(classNames.main, focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.className), elementToFocusOnDismiss: (_a = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.elementToFocusOnDismiss) !== null && _a !== void 0 ? _a : elementToFocusOnDismiss, isClickableOutsideFocusTrap: (_b = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.isClickableOutsideFocusTrap) !== null && _b !== void 0 ? _b : (isModeless || isClickableOutsideFocusTrap || !isBlocking), disableRestoreFocus: (_c = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.disableRestoreFocus) !== null && _c !== void 0 ? _c : disableRestoreFocus, forceFocusInsideTrap: ((_d = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.forceFocusInsideTrap) !== null && _d !== void 0 ? _d : forceFocusInsideTrap) && !isModeless, \n // eslint-disable-next-line deprecation/deprecation\n firstFocusableSelector: (focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.firstFocusableSelector) || firstFocusableSelector, focusPreviouslyFocusedInnerElement: (_e = focusTrapZoneProps === null || focusTrapZoneProps === void 0 ? void 0 : focusTrapZoneProps.focusPreviouslyFocusedInnerElement) !== null && _e !== void 0 ? _e : true, onBlur: internalState.isInKeyboardMoveMode ? handleExitKeyboardMoveMode : undefined }),\n dragOptions && internalState.isInKeyboardMoveMode && (React.createElement(\"div\", { className: classNames.keyboardMoveIconContainer }, dragOptions.keyboardMoveIconProps ? (React.createElement(Icon, __assign({}, dragOptions.keyboardMoveIconProps))) : (React.createElement(Icon, { iconName: \"move\", className: classNames.keyboardMoveIcon })))),\n React.createElement(\"div\", { ref: allowScrollOnModal, className: classNames.scrollableContent, \"data-is-scrollable\": true },\n dragOptions && isModalMenuOpen && (React.createElement(dragOptions.menu, { items: [\n { key: 'move', text: dragOptions.moveMenuItemText, onClick: handleEnterKeyboardMoveMode },\n { key: 'close', text: dragOptions.closeMenuItemText, onClick: handleModalClose },\n ], onDismiss: setModalMenuClose, alignTargetEdge: true, coverTarget: true, directionalHint: DirectionalHint.topLeftEdge, directionalHintFixed: true, shouldFocusOnMount: true, target: internalState.scrollableContent })),\n children)));\n return ((isModalOpen && modalResponsiveMode >= (responsiveMode || ResponsiveMode.small) && (React.createElement(Layer, __assign({ ref: mergedRef }, mergedLayerProps),\n React.createElement(Popup, __assign({ role: isAlertRole ? 'alertdialog' : 'dialog', ariaLabelledBy: titleAriaId, ariaDescribedBy: subtitleAriaId, onDismiss: onDismiss, shouldRestoreFocus: !disableRestoreFocus, \n // Modeless modals shouldn't hide siblings.\n // Popup will automatically handle this based on the aria-modal setting.\n enableAriaHiddenSiblings: enableAriaHiddenSiblings, \"aria-modal\": !isModeless }, popupProps),\n React.createElement(\"div\", { className: classNames.root, role: !isModeless ? 'document' : undefined },\n !isModeless && (React.createElement(Overlay, __assign({ \"aria-hidden\": true, isDarkThemed: isDarkOverlay, onClick: isBlocking ? undefined : onDismiss, allowTouchBodyScroll: allowTouchBodyScroll }, overlay))),\n dragOptions ? (React.createElement(DraggableZone, { handleSelector: dragOptions.dragHandleSelector || \"#\".concat(focusTrapZoneId), preventDragSelector: \"button\", onStart: handleDragStart, onDragChange: handleDrag, onStop: handleDragStop, position: coordinates }, modalContent)) : (modalContent)))))) ||\n null);\n});\nModalBase.displayName = 'Modal';\nfunction useDebugWarnings(props) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks -- build-time conditional\n useWarnings({\n name: 'Modal',\n props: props,\n deprecations: { onLayerDidMount: 'layerProps.onLayerDidMount' },\n });\n }\n}\n//# sourceMappingURL=Modal.base.js.map","import { styled } from '../../Utilities';\nimport { ModalBase } from './Modal.base';\nimport { getStyles } from './Modal.styles';\nexport var Modal = styled(ModalBase, getStyles, undefined, {\n scope: 'Modal',\n fields: ['theme', 'styles', 'enableAriaHiddenSiblings'],\n});\nModal.displayName = 'Modal';\n//# sourceMappingURL=Modal.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, initializeComponentRef } from '../../Utilities';\nvar getClassNames = classNamesFunction();\nvar DialogFooterBase = /** @class */ (function (_super) {\n __extends(DialogFooterBase, _super);\n function DialogFooterBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n return _this;\n }\n DialogFooterBase.prototype.render = function () {\n var _a = this.props, className = _a.className, styles = _a.styles, theme = _a.theme;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n return (React.createElement(\"div\", { className: this._classNames.actions },\n React.createElement(\"div\", { className: this._classNames.actionsRight }, this._renderChildrenAsActions())));\n };\n DialogFooterBase.prototype._renderChildrenAsActions = function () {\n var _this = this;\n return React.Children.map(this.props.children, function (child) {\n return child ? React.createElement(\"span\", { className: _this._classNames.action }, child) : null;\n });\n };\n return DialogFooterBase;\n}(React.Component));\nexport { DialogFooterBase };\n//# sourceMappingURL=DialogFooter.base.js.map","import { getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n actions: 'ms-Dialog-actions',\n action: 'ms-Dialog-action',\n actionsRight: 'ms-Dialog-actionsRight',\n};\nexport var getStyles = function (props) {\n var className = props.className, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n actions: [\n classNames.actions,\n {\n position: 'relative',\n width: '100%',\n minHeight: '24px',\n lineHeight: '24px',\n margin: '16px 0 0',\n fontSize: '0',\n selectors: {\n '.ms-Button': {\n lineHeight: 'normal',\n verticalAlign: 'middle',\n },\n },\n },\n className,\n ],\n action: [\n classNames.action,\n {\n margin: '0 4px',\n },\n ],\n actionsRight: [\n classNames.actionsRight,\n {\n alignItems: 'center',\n display: 'flex',\n fontSize: '0',\n justifyContent: 'flex-end',\n marginRight: '-4px',\n },\n ],\n };\n};\n//# sourceMappingURL=DialogFooter.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogFooterBase } from './DialogFooter.base';\nimport { getStyles } from './DialogFooter.styles';\nexport var DialogFooter = styled(DialogFooterBase, getStyles, undefined, { scope: 'DialogFooter' });\nDialogFooter.displayName = 'DialogFooter';\n//# sourceMappingURL=DialogFooter.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, css, warnDeprecations, initializeComponentRef } from '../../Utilities';\nimport { DialogType } from './DialogContent.types';\nimport { IconButton } from '../../Button';\nimport { DialogFooter } from './DialogFooter';\nimport { withResponsiveMode } from '../../ResponsiveMode';\nvar getClassNames = classNamesFunction();\nvar DialogFooterType = (React.createElement(DialogFooter, null)).type;\nvar COMPONENT_NAME = 'DialogContent';\n// eslint-disable-next-line deprecation/deprecation\nvar DialogContentBase = /** @class */ (function (_super) {\n __extends(DialogContentBase, _super);\n function DialogContentBase(props) {\n var _this = _super.call(this, props) || this;\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n titleId: 'titleProps.id',\n });\n return _this;\n }\n DialogContentBase.prototype.render = function () {\n var _a = this.props, showCloseButton = _a.showCloseButton, className = _a.className, closeButtonAriaLabel = _a.closeButtonAriaLabel, onDismiss = _a.onDismiss, subTextId = _a.subTextId, subText = _a.subText, _b = _a.titleProps, titleProps = _b === void 0 ? {} : _b, \n // eslint-disable-next-line deprecation/deprecation\n titleId = _a.titleId, title = _a.title, type = _a.type, styles = _a.styles, theme = _a.theme, draggableHeaderClassName = _a.draggableHeaderClassName;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n isLargeHeader: type === DialogType.largeHeader,\n isClose: type === DialogType.close,\n draggableHeaderClassName: draggableHeaderClassName,\n });\n var groupings = this._groupChildren();\n var subTextContent;\n if (subText) {\n subTextContent = (React.createElement(\"p\", { className: classNames.subText, id: subTextId }, subText));\n }\n return (React.createElement(\"div\", { className: classNames.content },\n React.createElement(\"div\", { className: classNames.header },\n React.createElement(\"div\", __assign({ id: titleId, role: \"heading\", \"aria-level\": 1 }, titleProps, { className: css(classNames.title, titleProps.className) }), title),\n React.createElement(\"div\", { className: classNames.topButton },\n this.props.topButtonsProps.map(function (props, index) { return (React.createElement(IconButton, __assign({ key: props.uniqueId || index }, props))); }),\n (type === DialogType.close || (showCloseButton && type !== DialogType.largeHeader)) && (React.createElement(IconButton, { className: classNames.button, iconProps: { iconName: 'Cancel' }, ariaLabel: closeButtonAriaLabel, onClick: onDismiss })))),\n React.createElement(\"div\", { className: classNames.inner },\n React.createElement(\"div\", { className: classNames.innerContent },\n subTextContent,\n groupings.contents),\n groupings.footers)));\n };\n // @TODO - typing the footers as an array of DialogFooter is difficult because\n // casing \"child as DialogFooter\" causes a problem because\n // \"Neither type 'ReactElement' nor type 'DialogFooter' is assignable to the other.\"\n DialogContentBase.prototype._groupChildren = function () {\n var groupings = {\n footers: [],\n contents: [],\n };\n React.Children.map(this.props.children, function (child) {\n if (typeof child === 'object' && child !== null && child.type === DialogFooterType) {\n groupings.footers.push(child);\n }\n else {\n groupings.contents.push(child);\n }\n });\n return groupings;\n };\n DialogContentBase.defaultProps = {\n showCloseButton: false,\n className: '',\n topButtonsProps: [],\n closeButtonAriaLabel: 'Close',\n };\n DialogContentBase = __decorate([\n withResponsiveMode\n ], DialogContentBase);\n return DialogContentBase;\n}(React.Component));\nexport { DialogContentBase };\n//# sourceMappingURL=DialogContent.base.js.map","import { FontWeights, getGlobalClassNames, IconFontSizes, ScreenWidthMinSmall, ScreenWidthMaxSmall, } from '../../Styling';\nvar GlobalClassNames = {\n contentLgHeader: 'ms-Dialog-lgHeader',\n close: 'ms-Dialog--close',\n subText: 'ms-Dialog-subText',\n header: 'ms-Dialog-header',\n headerLg: 'ms-Dialog--lgHeader',\n button: 'ms-Dialog-button ms-Dialog-button--close',\n inner: 'ms-Dialog-inner',\n content: 'ms-Dialog-content',\n title: 'ms-Dialog-title',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c;\n var className = props.className, theme = props.theme, isLargeHeader = props.isLargeHeader, isClose = props.isClose, hidden = props.hidden, isMultiline = props.isMultiline, draggableHeaderClassName = props.draggableHeaderClassName;\n var palette = theme.palette, fonts = theme.fonts, effects = theme.effects, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n content: [\n isLargeHeader && [\n classNames.contentLgHeader,\n {\n borderTop: \"4px solid \".concat(palette.themePrimary),\n },\n ],\n isClose && classNames.close,\n {\n flexGrow: 1,\n overflowY: 'hidden', // required for allowScrollOnElement\n },\n className,\n ],\n subText: [\n classNames.subText,\n fonts.medium,\n {\n margin: '0 0 24px 0',\n color: semanticColors.bodySubtext,\n lineHeight: '1.5',\n wordWrap: 'break-word',\n fontWeight: FontWeights.regular,\n },\n ],\n header: [\n classNames.header,\n {\n position: 'relative',\n width: '100%',\n boxSizing: 'border-box',\n },\n isClose && classNames.close,\n draggableHeaderClassName && [\n draggableHeaderClassName,\n {\n cursor: 'move',\n },\n ],\n ],\n button: [\n classNames.button,\n hidden && {\n selectors: {\n '.ms-Icon.ms-Icon--Cancel': {\n color: semanticColors.buttonText,\n fontSize: IconFontSizes.medium,\n },\n },\n },\n ],\n inner: [\n classNames.inner,\n {\n padding: '0 24px 24px',\n selectors: (_a = {},\n _a[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n padding: '0 16px 16px',\n },\n _a),\n },\n ],\n innerContent: [\n classNames.content,\n {\n position: 'relative',\n width: '100%',\n },\n ],\n title: [\n classNames.title,\n fonts.xLarge,\n {\n color: semanticColors.bodyText,\n margin: '0',\n minHeight: fonts.xLarge.fontSize,\n padding: '16px 46px 20px 24px',\n lineHeight: 'normal',\n selectors: (_b = {},\n _b[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n padding: '16px 46px 16px 16px',\n },\n _b),\n },\n isLargeHeader && {\n color: semanticColors.menuHeader,\n },\n isMultiline && { fontSize: fonts.xxLarge.fontSize },\n ],\n topButton: [\n {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n position: 'absolute',\n top: '0',\n right: '0',\n padding: '15px 15px 0 0',\n selectors: (_c = {\n '> *': {\n flex: '0 0 auto',\n },\n '.ms-Dialog-button': {\n color: semanticColors.buttonText,\n },\n '.ms-Dialog-button:hover': {\n color: semanticColors.buttonTextHovered,\n borderRadius: effects.roundedCorner2,\n }\n },\n _c[\"@media (min-width: \".concat(ScreenWidthMinSmall, \"px) and (max-width: \").concat(ScreenWidthMaxSmall, \"px)\")] = {\n padding: '15px 8px 0 0',\n },\n _c),\n },\n ],\n };\n};\n//# sourceMappingURL=DialogContent.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogContentBase } from './DialogContent.base';\nimport { getStyles } from './DialogContent.styles';\nexport var DialogContent = styled(DialogContentBase, getStyles, undefined, { scope: 'DialogContent' });\nDialogContent.displayName = 'DialogContent';\n//# sourceMappingURL=DialogContent.js.map","import { __assign, __decorate, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { warnDeprecations, classNamesFunction, getId } from '../../Utilities';\nimport { DialogType } from './DialogContent.types';\nimport { Modal } from '../../Modal';\nimport { withResponsiveMode } from '../../ResponsiveMode';\nvar getClassNames = classNamesFunction();\nimport { DialogContent } from './DialogContent';\nvar DefaultModalProps = {\n isDarkOverlay: false,\n isBlocking: false,\n className: '',\n containerClassName: '',\n topOffsetFixed: false,\n enableAriaHiddenSiblings: true,\n};\nvar DefaultDialogContentProps = {\n type: DialogType.normal,\n className: '',\n topButtonsProps: [],\n};\n// eslint-disable-next-line deprecation/deprecation\nvar DialogBase = /** @class */ (function (_super) {\n __extends(DialogBase, _super);\n function DialogBase(props) {\n var _this = _super.call(this, props) || this;\n _this._getSubTextId = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, ariaDescribedById = _a.ariaDescribedById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, subText = _a.subText;\n var id = (modalProps && modalProps.subtitleAriaId) || ariaDescribedById;\n if (!id) {\n id = ((dialogContentProps && dialogContentProps.subText) || subText) && _this._defaultSubTextId;\n }\n return id;\n };\n _this._getTitleTextId = function () {\n // eslint-disable-next-line deprecation/deprecation\n var _a = _this.props, ariaLabelledById = _a.ariaLabelledById, modalProps = _a.modalProps, dialogContentProps = _a.dialogContentProps, title = _a.title;\n var id = (modalProps && modalProps.titleAriaId) || ariaLabelledById;\n if (!id) {\n id = ((dialogContentProps && dialogContentProps.title) || title) && _this._defaultTitleTextId;\n }\n return id;\n };\n _this._id = getId('Dialog');\n _this._defaultTitleTextId = _this._id + '-title';\n _this._defaultSubTextId = _this._id + '-subText';\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecations('Dialog', props, {\n isOpen: 'hidden',\n type: 'dialogContentProps.type',\n subText: 'dialogContentProps.subText',\n contentClassName: 'dialogContentProps.className',\n topButtonsProps: 'dialogContentProps.topButtonsProps',\n className: 'modalProps.className',\n isDarkOverlay: 'modalProps.isDarkOverlay',\n isBlocking: 'modalProps.isBlocking',\n containerClassName: 'modalProps.containerClassName',\n onDismissed: 'modalProps.onDismissed',\n onLayerDidMount: 'modalProps.layerProps.onLayerDidMount',\n ariaDescribedById: 'modalProps.subtitleAriaId',\n ariaLabelledById: 'modalProps.titleAriaId',\n });\n }\n return _this;\n }\n DialogBase.prototype.render = function () {\n var _a, _b, _c;\n var props = this.props;\n var \n /* eslint-disable deprecation/deprecation */\n className = props.className, containerClassName = props.containerClassName, contentClassName = props.contentClassName, elementToFocusOnDismiss = props.elementToFocusOnDismiss, firstFocusableSelector = props.firstFocusableSelector, forceFocusInsideTrap = props.forceFocusInsideTrap, styles = props.styles, hidden = props.hidden, _d = props.disableRestoreFocus, disableRestoreFocus = _d === void 0 ? props.ignoreExternalFocusing : _d, isBlocking = props.isBlocking, isClickableOutsideFocusTrap = props.isClickableOutsideFocusTrap, isDarkOverlay = props.isDarkOverlay, _e = props.isOpen, isOpen = _e === void 0 ? !hidden : _e, onDismiss = props.onDismiss, onDismissed = props.onDismissed, onLayerDidMount = props.onLayerDidMount, responsiveMode = props.responsiveMode, subText = props.subText, theme = props.theme, title = props.title, topButtonsProps = props.topButtonsProps, type = props.type, \n /* eslint-enable deprecation/deprecation */\n minWidth = props.minWidth, maxWidth = props.maxWidth, modalProps = props.modalProps;\n var mergedLayerProps = __assign({ onLayerDidMount: onLayerDidMount }, modalProps === null || modalProps === void 0 ? void 0 : modalProps.layerProps);\n var dialogDraggableClassName;\n var dragOptions;\n // If dragOptions are provided, but no drag handle is specified, we supply a drag handle,\n // and inform dialog contents to add class to draggable class to the header\n if ((modalProps === null || modalProps === void 0 ? void 0 : modalProps.dragOptions) && !((_a = modalProps.dragOptions) === null || _a === void 0 ? void 0 : _a.dragHandleSelector)) {\n // spread options to avoid mutating props\n dragOptions = __assign({}, modalProps.dragOptions);\n dialogDraggableClassName = 'ms-Dialog-draggable-header';\n dragOptions.dragHandleSelector = \".\".concat(dialogDraggableClassName);\n }\n var mergedModalProps = __assign(__assign(__assign(__assign({}, DefaultModalProps), { elementToFocusOnDismiss: elementToFocusOnDismiss, firstFocusableSelector: firstFocusableSelector, forceFocusInsideTrap: forceFocusInsideTrap, disableRestoreFocus: disableRestoreFocus, isClickableOutsideFocusTrap: isClickableOutsideFocusTrap, responsiveMode: responsiveMode, className: className, containerClassName: containerClassName, isBlocking: isBlocking, isDarkOverlay: isDarkOverlay, onDismissed: onDismissed }), modalProps), { dragOptions: dragOptions, layerProps: mergedLayerProps, isOpen: isOpen });\n var dialogContentProps = __assign(__assign(__assign({ className: contentClassName, subText: subText, title: title, topButtonsProps: topButtonsProps, type: type }, DefaultDialogContentProps), props.dialogContentProps), { draggableHeaderClassName: dialogDraggableClassName, titleProps: __assign({ \n // eslint-disable-next-line deprecation/deprecation\n id: ((_b = props.dialogContentProps) === null || _b === void 0 ? void 0 : _b.titleId) || this._defaultTitleTextId }, (_c = props.dialogContentProps) === null || _c === void 0 ? void 0 : _c.titleProps) });\n var classNames = getClassNames(styles, {\n theme: theme,\n className: mergedModalProps.className,\n containerClassName: mergedModalProps.containerClassName,\n hidden: hidden,\n dialogDefaultMinWidth: minWidth,\n dialogDefaultMaxWidth: maxWidth,\n });\n return (React.createElement(Modal, __assign({}, mergedModalProps, { className: classNames.root, containerClassName: classNames.main, onDismiss: onDismiss || mergedModalProps.onDismiss, subtitleAriaId: this._getSubTextId(), titleAriaId: this._getTitleTextId() }),\n React.createElement(DialogContent, __assign({ subTextId: this._defaultSubTextId, showCloseButton: mergedModalProps.isBlocking, onDismiss: onDismiss }, dialogContentProps), props.children)));\n };\n DialogBase.defaultProps = {\n hidden: true,\n };\n DialogBase = __decorate([\n withResponsiveMode\n ], DialogBase);\n return DialogBase;\n}(React.Component));\nexport { DialogBase };\n//# sourceMappingURL=Dialog.base.js.map","import { ScreenWidthMinMedium, getGlobalClassNames } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Dialog',\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, containerClassName = props.containerClassName, // eslint-disable-line deprecation/deprecation\n _b = props.dialogDefaultMinWidth, // eslint-disable-line deprecation/deprecation\n dialogDefaultMinWidth = _b === void 0 ? '288px' : _b, _c = props.dialogDefaultMaxWidth, dialogDefaultMaxWidth = _c === void 0 ? '340px' : _c, hidden = props.hidden, theme = props.theme;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [classNames.root, theme.fonts.medium, className],\n main: [\n {\n width: dialogDefaultMinWidth,\n outline: '3px solid transparent',\n selectors: (_a = {},\n _a[\"@media (min-width: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n width: 'auto',\n maxWidth: dialogDefaultMaxWidth,\n minWidth: dialogDefaultMinWidth,\n },\n _a),\n },\n !hidden && { display: 'flex' },\n containerClassName,\n ],\n };\n};\n//# sourceMappingURL=Dialog.styles.js.map","import { styled } from '../../Utilities';\nimport { DialogBase } from './Dialog.base';\nimport { getStyles } from './Dialog.styles';\nexport var Dialog = styled(DialogBase, getStyles, undefined, { scope: 'Dialog' });\nDialog.displayName = 'Dialog';\n//# sourceMappingURL=Dialog.js.map","import { EventGroup, getDocument } from '../../Utilities';\nvar MOUSEDOWN_PRIMARY_BUTTON = 0; // for mouse down event we are using ev.button property, 0 means left button\nvar MOUSEMOVE_PRIMARY_BUTTON = 1; // for mouse move event we are using ev.buttons property, 1 means left button\nvar DragDropHelper = /** @class */ (function () {\n function DragDropHelper(params) {\n this._selection = params.selection;\n this._dragEnterCounts = {};\n this._activeTargets = {};\n this._lastId = 0;\n // To make this class cheap to create, which allows simplifying some logic elsewhere,\n // only initialize the event group and global event handlers as needed.\n this._initialized = false;\n }\n DragDropHelper.prototype.dispose = function () {\n if (this._events) {\n this._events.dispose();\n }\n };\n DragDropHelper.prototype.subscribe = function (root, events, dragDropOptions) {\n var _this = this;\n if (!this._initialized) {\n this._events = new EventGroup(this);\n var doc = getDocument();\n // clear drag data when mouse up, use capture event to ensure it will be run\n if (doc) {\n this._events.on(doc.body, 'mouseup', this._onMouseUp.bind(this), true);\n this._events.on(doc, 'mouseup', this._onDocumentMouseUp.bind(this), true);\n }\n this._initialized = true;\n }\n var _a = dragDropOptions.key, key = _a === void 0 ? \"\".concat(++this._lastId) : _a;\n var handlers = [];\n var onDragStart;\n var onDragLeave;\n var onDragEnter;\n var onDragEnd;\n var onDrop;\n var onDragOver;\n var onMouseDown;\n var isDraggable;\n var isDroppable;\n var activeTarget;\n if (dragDropOptions && root) {\n var eventMap = dragDropOptions.eventMap, context = dragDropOptions.context, updateDropState_1 = dragDropOptions.updateDropState;\n var dragDropTarget = {\n root: root,\n options: dragDropOptions,\n key: key,\n };\n isDraggable = this._isDraggable(dragDropTarget);\n isDroppable = this._isDroppable(dragDropTarget);\n if (isDraggable || isDroppable) {\n if (eventMap) {\n for (var _i = 0, eventMap_1 = eventMap; _i < eventMap_1.length; _i++) {\n var event_1 = eventMap_1[_i];\n var handler = {\n callback: event_1.callback.bind(null, context),\n eventName: event_1.eventName,\n };\n handlers.push(handler);\n this._events.on(root, handler.eventName, handler.callback);\n }\n }\n }\n if (isDroppable) {\n // If the target is droppable, wire up global event listeners to track drop-related events.\n onDragLeave = function (event) {\n if (!event.isHandled) {\n event.isHandled = true;\n _this._dragEnterCounts[key]--;\n if (_this._dragEnterCounts[key] === 0) {\n updateDropState_1(false /* isDropping */, event);\n }\n }\n };\n onDragEnter = function (event) {\n event.preventDefault(); // needed for IE\n if (!event.isHandled) {\n event.isHandled = true;\n _this._dragEnterCounts[key]++;\n if (_this._dragEnterCounts[key] === 1) {\n updateDropState_1(true /* isDropping */, event);\n }\n }\n };\n onDragEnd = function (event) {\n _this._dragEnterCounts[key] = 0;\n updateDropState_1(false /* isDropping */, event);\n };\n onDrop = function (event) {\n _this._dragEnterCounts[key] = 0;\n updateDropState_1(false /* isDropping */, event);\n if (dragDropOptions.onDrop) {\n dragDropOptions.onDrop(dragDropOptions.context.data, event);\n }\n };\n onDragOver = function (event) {\n event.preventDefault();\n if (dragDropOptions.onDragOver) {\n dragDropOptions.onDragOver(dragDropOptions.context.data, event);\n }\n };\n this._dragEnterCounts[key] = 0;\n // dragenter and dragleave will be fired when hover to the child element\n // but we only want to change state when enter or leave the current element\n // use the count to ensure it.\n events.on(root, 'dragenter', onDragEnter);\n events.on(root, 'dragleave', onDragLeave);\n events.on(root, 'dragend', onDragEnd);\n events.on(root, 'drop', onDrop);\n events.on(root, 'dragover', onDragOver);\n }\n if (isDraggable) {\n // If the target is draggable, wire up local event listeners for mouse events.\n onMouseDown = this._onMouseDown.bind(this, dragDropTarget);\n onDragEnd = this._onDragEnd.bind(this, dragDropTarget);\n // We need to add in data so that on Firefox we show the ghost element when dragging\n onDragStart = function (event) {\n var options = dragDropOptions;\n if (options && options.onDragStart) {\n options.onDragStart(options.context.data, options.context.index, _this._selection.getSelection(), event);\n }\n _this._isDragging = true;\n if (event.dataTransfer) {\n event.dataTransfer.setData('id', root.id);\n }\n };\n events.on(root, 'dragstart', onDragStart);\n events.on(root, 'mousedown', onMouseDown);\n events.on(root, 'dragend', onDragEnd);\n }\n activeTarget = {\n target: dragDropTarget,\n dispose: function () {\n if (_this._activeTargets[key] === activeTarget) {\n delete _this._activeTargets[key];\n }\n if (root) {\n for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {\n var handler = handlers_1[_i];\n _this._events.off(root, handler.eventName, handler.callback);\n }\n if (isDroppable) {\n events.off(root, 'dragenter', onDragEnter);\n events.off(root, 'dragleave', onDragLeave);\n events.off(root, 'dragend', onDragEnd);\n events.off(root, 'dragover', onDragOver);\n events.off(root, 'drop', onDrop);\n }\n if (isDraggable) {\n events.off(root, 'dragstart', onDragStart);\n events.off(root, 'mousedown', onMouseDown);\n events.off(root, 'dragend', onDragEnd);\n }\n }\n },\n };\n this._activeTargets[key] = activeTarget;\n }\n return {\n key: key,\n dispose: function () {\n if (activeTarget) {\n activeTarget.dispose();\n }\n },\n };\n };\n DragDropHelper.prototype.unsubscribe = function (root, key) {\n var activeTarget = this._activeTargets[key];\n if (activeTarget) {\n activeTarget.dispose();\n }\n };\n DragDropHelper.prototype._onDragEnd = function (target, event) {\n var options = target.options;\n if (options.onDragEnd) {\n options.onDragEnd(options.context.data, event);\n }\n };\n /**\n * clear drag data when mouse up on body\n */\n DragDropHelper.prototype._onMouseUp = function (event) {\n this._isDragging = false;\n if (this._dragData) {\n for (var _i = 0, _a = Object.keys(this._activeTargets); _i < _a.length; _i++) {\n var key = _a[_i];\n var activeTarget = this._activeTargets[key];\n if (activeTarget.target.root) {\n this._events.off(activeTarget.target.root, 'mousemove');\n this._events.off(activeTarget.target.root, 'mouseleave');\n }\n }\n if (this._dragData.dropTarget) {\n // raise dragleave event to let dropTarget know it need to remove dropping style\n EventGroup.raise(this._dragData.dropTarget.root, 'dragleave');\n EventGroup.raise(this._dragData.dropTarget.root, 'drop');\n }\n }\n this._dragData = null;\n };\n /**\n * clear drag data when mouse up outside of the document\n */\n DragDropHelper.prototype._onDocumentMouseUp = function (event) {\n var doc = getDocument();\n if (doc && event.target === doc.documentElement) {\n this._onMouseUp(event);\n }\n };\n /**\n * when mouse move over a new drop target while dragging some items,\n * fire dragleave on the old target and fire dragenter to the new target\n * The target will handle style change on dragenter and dragleave events.\n */\n DragDropHelper.prototype._onMouseMove = function (target, event) {\n var \n // use buttons property here since ev.button in some edge case is not updating well during the move.\n // but firefox doesn't support it, so we set the default value when it is not defined.\n _a = event.buttons, \n // use buttons property here since ev.button in some edge case is not updating well during the move.\n // but firefox doesn't support it, so we set the default value when it is not defined.\n buttons = _a === void 0 ? MOUSEMOVE_PRIMARY_BUTTON : _a;\n if (this._dragData && buttons !== MOUSEMOVE_PRIMARY_BUTTON) {\n // cancel mouse down event and return early when the primary button is not pressed\n this._onMouseUp(event);\n return;\n }\n var root = target.root, key = target.key;\n if (this._isDragging) {\n if (this._isDroppable(target)) {\n // we can have nested drop targets in the DOM, like a folder inside a group. In that case, when we drag into\n // the inner target (folder), we first set dropTarget to the inner element. But the same event is bubbled to the\n // outer target too, and we need to prevent the outer one from taking over.\n // So, check if the last dropTarget is not a child of the current.\n if (this._dragData) {\n if (this._dragData.dropTarget &&\n this._dragData.dropTarget.key !== key &&\n !this._isChild(root, this._dragData.dropTarget.root)) {\n if (this._dragEnterCounts[this._dragData.dropTarget.key] > 0) {\n EventGroup.raise(this._dragData.dropTarget.root, 'dragleave');\n EventGroup.raise(root, 'dragenter');\n this._dragData.dropTarget = target;\n }\n }\n }\n }\n }\n };\n /**\n * when mouse leave a target while dragging some items, fire dragleave to the target\n */\n DragDropHelper.prototype._onMouseLeave = function (target, event) {\n if (this._isDragging) {\n if (this._dragData && this._dragData.dropTarget && this._dragData.dropTarget.key === target.key) {\n EventGroup.raise(target.root, 'dragleave');\n this._dragData.dropTarget = undefined;\n }\n }\n };\n /**\n * when mouse down on a draggable item, we start to track dragdata.\n */\n DragDropHelper.prototype._onMouseDown = function (target, event) {\n if (event.button !== MOUSEDOWN_PRIMARY_BUTTON) {\n // Ignore anything except the primary button.\n return;\n }\n if (this._isDraggable(target)) {\n this._dragData = {\n clientX: event.clientX,\n clientY: event.clientY,\n eventTarget: event.target,\n dragTarget: target,\n };\n for (var _i = 0, _a = Object.keys(this._activeTargets); _i < _a.length; _i++) {\n var key = _a[_i];\n var activeTarget = this._activeTargets[key];\n if (activeTarget.target.root) {\n this._events.on(activeTarget.target.root, 'mousemove', this._onMouseMove.bind(this, activeTarget.target));\n this._events.on(activeTarget.target.root, 'mouseleave', this._onMouseLeave.bind(this, activeTarget.target));\n }\n }\n }\n else {\n this._dragData = null;\n }\n };\n /**\n * determine whether the child target is a descendant of the parent\n */\n DragDropHelper.prototype._isChild = function (parentElement, childElement) {\n while (childElement && childElement.parentElement) {\n if (childElement.parentElement === parentElement) {\n return true;\n }\n childElement = childElement.parentElement;\n }\n return false;\n };\n DragDropHelper.prototype._isDraggable = function (target) {\n var options = target.options;\n return !!(options.canDrag && options.canDrag(options.context.data));\n };\n DragDropHelper.prototype._isDroppable = function (target) {\n // TODO: take the drag item into consideration to prevent dragging an item into the same group\n var options = target.options;\n var dragContext = this._dragData && this._dragData.dragTarget ? this._dragData.dragTarget.options.context : undefined;\n return !!(options.canDrop && options.canDrop(options.context, dragContext));\n };\n return DragDropHelper;\n}());\nexport { DragDropHelper };\n//# sourceMappingURL=DragDropHelper.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { Async, EventGroup, KeyCodes, elementContains, findScrollableParent, getParent, getDocument, getWindow, isElementTabbable, css, initializeComponentRef, FocusRects, } from '../../Utilities';\nimport { SelectionMode } from './interfaces';\n// Selection definitions:\n//\n// Anchor index: the point from which a range selection starts.\n// Focus index: the point from which layout movement originates from.\n//\n// These two can differ. Tests:\n//\n// If you start at index 5\n// Shift click to index 10\n// The focus is 10, the anchor is 5.\n// If you shift click at index 0\n// The anchor remains at 5, the items between 0 and 5 are selected and everything else is cleared.\n// If you click index 8\n// The anchor and focus are set to 8.\nvar SELECTION_DISABLED_ATTRIBUTE_NAME = 'data-selection-disabled';\nvar SELECTION_INDEX_ATTRIBUTE_NAME = 'data-selection-index';\nvar SELECTION_SPAN_ATTRIBUTE_NAME = 'data-selection-span';\nvar SELECTION_TOGGLE_ATTRIBUTE_NAME = 'data-selection-toggle';\nvar SELECTION_INVOKE_ATTRIBUTE_NAME = 'data-selection-invoke';\nvar SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME = 'data-selection-touch-invoke';\nvar SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME = 'data-selection-all-toggle';\nvar SELECTION_SELECT_ATTRIBUTE_NAME = 'data-selection-select';\n/**\n * {@docCategory Selection}\n */\nvar SelectionZone = /** @class */ (function (_super) {\n __extends(SelectionZone, _super);\n function SelectionZone(props) {\n var _this = _super.call(this, props) || this;\n _this._root = React.createRef();\n /**\n * In some cases, the consuming scenario requires to set focus on a row without having SelectionZone\n * react to the event. Note that focus events in IE \\<= 11 will occur asynchronously after .focus() has\n * been called on an element, so we need a flag to store the idea that we will bypass the \"next\"\n * focus event that occurs. This method does that.\n */\n _this.ignoreNextFocus = function () {\n _this._handleNextFocus(false);\n };\n _this._onSelectionChange = function () {\n var selection = _this.props.selection;\n var isModal = selection.isModal && selection.isModal();\n _this.setState({\n isModal: isModal,\n });\n };\n _this._onMouseDownCapture = function (ev) {\n var target = ev.target;\n var win = getWindow(_this._root.current);\n var doc = win === null || win === void 0 ? void 0 : win.document;\n if ((doc === null || doc === void 0 ? void 0 : doc.activeElement) !== target && !elementContains(doc === null || doc === void 0 ? void 0 : doc.activeElement, target)) {\n _this.ignoreNextFocus();\n return;\n }\n if (!elementContains(target, _this._root.current)) {\n return;\n }\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n _this.ignoreNextFocus();\n break;\n }\n target = getParent(target);\n }\n };\n /**\n * When we focus an item, for single/multi select scenarios, we should try to select it immediately\n * as long as the focus did not originate from a mouse down/touch event. For those cases, we handle them\n * specially.\n */\n _this._onFocus = function (ev) {\n var target = ev.target;\n var selection = _this.props.selection;\n var isToggleModifierPressed = _this._isCtrlPressed || _this._isMetaPressed;\n var selectionMode = _this._getSelectionMode();\n if (_this._shouldHandleFocus && selectionMode !== SelectionMode.none) {\n var isToggle = _this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME);\n var itemRoot = _this._findItemRoot(target);\n if (!isToggle && itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n if (span === undefined) {\n if (isToggleModifierPressed) {\n // set anchor only.\n selection.setIndexSelected(index, selection.isIndexSelected(index), true);\n if (_this.props.enterModalOnTouch && _this._isTouch && selection.setModal) {\n selection.setModal(true);\n _this._setIsTouch(false);\n }\n }\n else {\n if (_this.props.isSelectedOnFocus) {\n _this._onItemSurfaceClick('focus', index);\n }\n }\n }\n }\n }\n _this._handleNextFocus(false);\n };\n _this._onMouseDown = function (ev) {\n _this._updateModifiers(ev);\n var toggleWithoutModifierPressed = _this.props.toggleWithoutModifierPressed;\n var target = ev.target;\n var itemRoot = _this._findItemRoot(target);\n // No-op if selection is disabled\n if (_this._isSelectionDisabled(target)) {\n return;\n }\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n break;\n }\n else if (itemRoot) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n break;\n }\n else if (_this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n break;\n }\n else if ((target === itemRoot || _this._shouldAutoSelect(target)) &&\n !_this._isShiftPressed &&\n !_this._isCtrlPressed &&\n !_this._isMetaPressed &&\n !toggleWithoutModifierPressed) {\n _this._onInvokeMouseDown(ev, _this._getItemIndex(itemRoot), _this._getItemSpan(itemRoot));\n break;\n }\n else if (_this.props.disableAutoSelectOnInputElements &&\n (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT')) {\n return;\n }\n }\n target = getParent(target);\n }\n };\n _this._onTouchStartCapture = function (ev) {\n _this._setIsTouch(true);\n };\n _this._onClick = function (ev) {\n var _a = _this.props.enableTouchInvocationTarget, enableTouchInvocationTarget = _a === void 0 ? false : _a;\n _this._updateModifiers(ev);\n var target = ev.target;\n var itemRoot = _this._findItemRoot(target);\n var isSelectionDisabled = _this._isSelectionDisabled(target);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME)) {\n if (!isSelectionDisabled) {\n _this._onToggleAllClick(ev);\n }\n break;\n }\n else if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n if (!isSelectionDisabled) {\n if (_this._isShiftPressed) {\n _this._onItemSurfaceClick('click', index, span);\n }\n else {\n _this._onToggleClick(ev, index, span);\n }\n }\n break;\n }\n else if ((_this._isTouch &&\n enableTouchInvocationTarget &&\n _this._hasAttribute(target, SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME)) ||\n _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n if (span === undefined) {\n // Items should be invokable even if selection is disabled.\n _this._onInvokeClick(ev, index);\n }\n break;\n }\n else if (target === itemRoot) {\n if (!isSelectionDisabled) {\n _this._onItemSurfaceClick('click', index, span);\n }\n break;\n }\n else if (target.tagName === 'A' || target.tagName === 'BUTTON' || target.tagName === 'INPUT') {\n return;\n }\n }\n target = getParent(target);\n }\n };\n _this._onContextMenu = function (ev) {\n var target = ev.target;\n var _a = _this.props, onItemContextMenu = _a.onItemContextMenu, selection = _a.selection;\n if (onItemContextMenu) {\n var itemRoot = _this._findItemRoot(target);\n if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n _this._onInvokeMouseDown(ev, index);\n var skipPreventDefault = onItemContextMenu(selection.getItems()[index], index, ev.nativeEvent);\n // In order to keep back compat, if the value here is undefined, then we should still\n // call preventDefault(). Only in the case where true is explicitly returned should\n // the call be skipped.\n if (!skipPreventDefault) {\n ev.preventDefault();\n }\n }\n }\n };\n /**\n * In multi selection, if you double click within an item's root (but not within the invoke element or\n * input elements), we should execute the invoke handler.\n */\n _this._onDoubleClick = function (ev) {\n var target = ev.target;\n var onItemInvoked = _this.props.onItemInvoked;\n var itemRoot = _this._findItemRoot(target);\n if (itemRoot && onItemInvoked && !_this._isInputElement(target)) {\n var index = _this._getItemIndex(itemRoot);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME) ||\n _this._hasAttribute(target, SELECTION_INVOKE_ATTRIBUTE_NAME)) {\n break;\n }\n else if (target === itemRoot) {\n _this._onInvokeClick(ev, index);\n break;\n }\n target = getParent(target);\n }\n target = getParent(target);\n }\n };\n _this._onKeyDownCapture = function (ev) {\n _this._updateModifiers(ev);\n _this._handleNextFocus(true);\n };\n _this._onKeyDown = function (ev) {\n _this._updateModifiers(ev);\n var target = ev.target;\n var isSelectionDisabled = _this._isSelectionDisabled(target);\n var _a = _this.props, selection = _a.selection, selectionClearedOnEscapePress = _a.selectionClearedOnEscapePress;\n // eslint-disable-next-line deprecation/deprecation\n var isSelectAllKey = ev.which === KeyCodes.a && (_this._isCtrlPressed || _this._isMetaPressed);\n // eslint-disable-next-line deprecation/deprecation\n var isClearSelectionKey = ev.which === KeyCodes.escape;\n // Ignore key downs from input elements.\n if (_this._isInputElement(target)) {\n // A key was pressed while an item in this zone was focused.\n return;\n }\n var selectionMode = _this._getSelectionMode();\n // If ctrl-a is pressed, select all (if all are not already selected.)\n if (isSelectAllKey && selectionMode === SelectionMode.multiple && !selection.isAllSelected()) {\n if (!isSelectionDisabled) {\n selection.setAllSelected(true);\n }\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n // If escape is pressed and the component is configured to clear on escape press,\n // clear selection (if any are selected.)\n if (selectionClearedOnEscapePress && isClearSelectionKey && selection.getSelectedCount() > 0) {\n if (!isSelectionDisabled) {\n selection.setAllSelected(false);\n }\n ev.stopPropagation();\n ev.preventDefault();\n return;\n }\n var itemRoot = _this._findItemRoot(target);\n // If a key was pressed within an item, we should treat \"enters\" as invokes and \"space\" as toggle\n if (itemRoot) {\n var index = _this._getItemIndex(itemRoot);\n var span = _this._getItemSpan(itemRoot);\n while (target !== _this._root.current) {\n if (_this._hasAttribute(target, SELECTION_TOGGLE_ATTRIBUTE_NAME)) {\n // For toggle elements, assuming they are rendered as buttons, they will generate a click event,\n // so we can no-op for any keydowns in this case.\n break;\n }\n else if (_this._shouldAutoSelect(target)) {\n if (!isSelectionDisabled && span === undefined) {\n // If the event went to an element which should trigger auto-select, select it and then let\n // the default behavior kick in.\n _this._onInvokeMouseDown(ev, index, span);\n }\n break;\n }\n else if (\n // eslint-disable-next-line deprecation/deprecation\n (ev.which === KeyCodes.enter || ev.which === KeyCodes.space) &&\n (target.tagName === 'BUTTON' ||\n target.tagName === 'A' ||\n target.tagName === 'INPUT' ||\n target.tagName === 'SUMMARY')) {\n return false;\n }\n else if (target === itemRoot) {\n // eslint-disable-next-line deprecation/deprecation\n if (ev.which === KeyCodes.enter) {\n if (span === undefined) {\n // Items should be invokable even if selection is disabled.\n _this._onInvokeClick(ev, index);\n ev.preventDefault();\n }\n return;\n // eslint-disable-next-line deprecation/deprecation\n }\n else if (ev.which === KeyCodes.space) {\n if (!isSelectionDisabled) {\n _this._onToggleClick(ev, index, span);\n }\n ev.preventDefault();\n return;\n }\n break;\n }\n target = getParent(target);\n }\n }\n };\n _this._events = new EventGroup(_this);\n _this._async = new Async(_this);\n initializeComponentRef(_this);\n var selection = _this.props.selection;\n // Reflect the initial modal state of selection into the state.\n var isModal = selection.isModal && selection.isModal();\n _this.state = {\n isModal: isModal,\n };\n return _this;\n }\n SelectionZone.getDerivedStateFromProps = function (nextProps, prevState) {\n var isModal = nextProps.selection.isModal && nextProps.selection.isModal();\n return __assign(__assign({}, prevState), { isModal: isModal });\n };\n SelectionZone.prototype.componentDidMount = function () {\n var win = getWindow(this._root.current);\n var doc = win === null || win === void 0 ? void 0 : win.document;\n // Track the latest modifier keys globally.\n this._events.on(win, 'keydown, keyup', this._updateModifiers, true);\n this._events.on(doc, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n this._events.on(doc === null || doc === void 0 ? void 0 : doc.body, 'touchstart', this._onTouchStartCapture, true);\n this._events.on(doc === null || doc === void 0 ? void 0 : doc.body, 'touchend', this._onTouchStartCapture, true);\n // Subscribe to the selection to keep modal state updated.\n this._events.on(this.props.selection, 'change', this._onSelectionChange);\n };\n SelectionZone.prototype.render = function () {\n var isModal = this.state.isModal;\n return (React.createElement(\"div\", { className: css('ms-SelectionZone', this.props.className, {\n 'ms-SelectionZone--modal': !!isModal,\n }), ref: this._root, onKeyDown: this._onKeyDown, onMouseDown: this._onMouseDown, onKeyDownCapture: this._onKeyDownCapture, onClick: this._onClick, role: \"presentation\", onDoubleClick: this._onDoubleClick, onContextMenu: this._onContextMenu, onMouseDownCapture: this._onMouseDownCapture, onFocusCapture: this._onFocus, \"data-selection-is-modal\": isModal ? true : undefined },\n this.props.children,\n React.createElement(FocusRects, null)));\n };\n SelectionZone.prototype.componentDidUpdate = function (previousProps) {\n var selection = this.props.selection;\n if (selection !== previousProps.selection) {\n // Whenever selection changes, update the subscripton to keep modal state updated.\n this._events.off(previousProps.selection);\n this._events.on(selection, 'change', this._onSelectionChange);\n }\n };\n SelectionZone.prototype.componentWillUnmount = function () {\n this._events.dispose();\n this._async.dispose();\n };\n SelectionZone.prototype._isSelectionDisabled = function (target) {\n if (this._getSelectionMode() === SelectionMode.none) {\n return true;\n }\n while (target !== this._root.current) {\n if (this._hasAttribute(target, SELECTION_DISABLED_ATTRIBUTE_NAME)) {\n return true;\n }\n target = getParent(target);\n }\n return false;\n };\n SelectionZone.prototype._onToggleAllClick = function (ev) {\n var selection = this.props.selection;\n var selectionMode = this._getSelectionMode();\n if (selectionMode === SelectionMode.multiple) {\n selection.toggleAllSelected();\n ev.stopPropagation();\n ev.preventDefault();\n }\n };\n SelectionZone.prototype._onToggleClick = function (ev, index, span) {\n var selection = this.props.selection;\n var selectionMode = this._getSelectionMode();\n selection.setChangeEvents(false);\n if (this.props.enterModalOnTouch &&\n this._isTouch &&\n (span !== undefined ? !selection.isRangeSelected(index, span) : !selection.isIndexSelected(index)) &&\n selection.setModal) {\n selection.setModal(true);\n this._setIsTouch(false);\n }\n if (selectionMode === SelectionMode.multiple) {\n if (span !== undefined) {\n selection.toggleRangeSelected(index, span);\n }\n else {\n selection.toggleIndexSelected(index);\n }\n }\n else if (selectionMode === SelectionMode.single) {\n if (span === undefined || span === 1) {\n var isSelected = selection.isIndexSelected(index);\n var isModal = selection.isModal && selection.isModal();\n selection.setAllSelected(false);\n selection.setIndexSelected(index, !isSelected, true);\n if (isModal && selection.setModal) {\n // Since the above call to setAllSelected(false) clears modal state,\n // restore it. This occurs because the SelectionMode of the Selection\n // may differ from the SelectionZone.\n selection.setModal(true);\n }\n }\n }\n else {\n selection.setChangeEvents(true);\n return;\n }\n selection.setChangeEvents(true);\n ev.stopPropagation();\n // NOTE: ev.preventDefault is not called for toggle clicks, because this will kill the browser behavior\n // for checkboxes if you use a checkbox for the toggle.\n };\n SelectionZone.prototype._onInvokeClick = function (ev, index) {\n var _a = this.props, selection = _a.selection, onItemInvoked = _a.onItemInvoked;\n if (onItemInvoked) {\n onItemInvoked(selection.getItems()[index], index, ev.nativeEvent);\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n SelectionZone.prototype._onItemSurfaceClick = function (type, index, span) {\n var _a;\n var _b = this.props, selection = _b.selection, toggleWithoutModifierPressed = _b.toggleWithoutModifierPressed;\n var isToggleModifierPressed = this._isCtrlPressed || this._isMetaPressed;\n var selectionMode = this._getSelectionMode();\n if (selectionMode === SelectionMode.multiple) {\n if (this._isShiftPressed && !this._isTabPressed) {\n if (span !== undefined) {\n (_a = selection.selectToRange) === null || _a === void 0 ? void 0 : _a.call(selection, index, span, !isToggleModifierPressed);\n }\n else {\n selection.selectToIndex(index, !isToggleModifierPressed);\n }\n }\n else if (type === 'click' && (isToggleModifierPressed || toggleWithoutModifierPressed)) {\n if (span !== undefined) {\n selection.toggleRangeSelected(index, span);\n }\n else {\n selection.toggleIndexSelected(index);\n }\n }\n else {\n this._clearAndSelectIndex(index, span);\n }\n }\n else if (selectionMode === SelectionMode.single) {\n this._clearAndSelectIndex(index, span);\n }\n };\n SelectionZone.prototype._onInvokeMouseDown = function (ev, index, span) {\n var selection = this.props.selection;\n if (span !== undefined) {\n if (selection.isRangeSelected(index, span)) {\n return;\n }\n }\n else {\n // Only do work if item is not selected.\n if (selection.isIndexSelected(index)) {\n return;\n }\n }\n this._clearAndSelectIndex(index, span);\n };\n /**\n * To avoid high startup cost of traversing the DOM on component mount,\n * defer finding the scrollable parent until a click interaction.\n *\n * The styles will probably already calculated since we're running in a click handler,\n * so this is less likely to cause layout thrashing then doing it in mount.\n */\n SelectionZone.prototype._findScrollParentAndTryClearOnEmptyClick = function (ev) {\n var win = getWindow(this._root.current);\n var doc = win === null || win === void 0 ? void 0 : win.document;\n var scrollParent = findScrollableParent(this._root.current);\n // unbind this handler and replace binding with a binding on the actual scrollable parent\n this._events.off(doc, 'click', this._findScrollParentAndTryClearOnEmptyClick);\n this._events.on(scrollParent, 'click', this._tryClearOnEmptyClick);\n // If we clicked inside the scrollable parent, call through to the handler on this click.\n if ((scrollParent && ev.target instanceof Node && scrollParent.contains(ev.target)) || scrollParent === ev.target) {\n this._tryClearOnEmptyClick(ev);\n }\n };\n SelectionZone.prototype._tryClearOnEmptyClick = function (ev) {\n if (!this.props.selectionPreservedOnEmptyClick && this._isNonHandledClick(ev.target)) {\n this.props.selection.setAllSelected(false);\n }\n };\n SelectionZone.prototype._clearAndSelectIndex = function (index, span) {\n var _a;\n var _b = this.props, selection = _b.selection, _c = _b.selectionClearedOnSurfaceClick, selectionClearedOnSurfaceClick = _c === void 0 ? true : _c;\n var isAlreadySingleSelected = (span === undefined || span === 1) && selection.getSelectedCount() === 1 && selection.isIndexSelected(index);\n if (!isAlreadySingleSelected && selectionClearedOnSurfaceClick) {\n var isModal = selection.isModal && selection.isModal();\n selection.setChangeEvents(false);\n selection.setAllSelected(false);\n if (span !== undefined) {\n (_a = selection.setRangeSelected) === null || _a === void 0 ? void 0 : _a.call(selection, index, span, true, true);\n }\n else {\n selection.setIndexSelected(index, true, true);\n }\n if (isModal || (this.props.enterModalOnTouch && this._isTouch)) {\n if (selection.setModal) {\n selection.setModal(true);\n }\n if (this._isTouch) {\n this._setIsTouch(false);\n }\n }\n selection.setChangeEvents(true);\n }\n };\n /**\n * We need to track the modifier key states so that when focus events occur, which do not contain\n * modifier states in the Event object, we know how to behave.\n */\n SelectionZone.prototype._updateModifiers = function (ev) {\n this._isShiftPressed = ev.shiftKey;\n this._isCtrlPressed = ev.ctrlKey;\n this._isMetaPressed = ev.metaKey;\n // eslint-disable-next-line deprecation/deprecation\n var keyCode = ev.keyCode;\n this._isTabPressed = keyCode ? keyCode === KeyCodes.tab : false;\n };\n SelectionZone.prototype._findItemRoot = function (target) {\n var selection = this.props.selection;\n while (target !== this._root.current) {\n var indexValue = target.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME);\n var index = Number(indexValue);\n if (indexValue !== null && index >= 0 && index < selection.getItems().length) {\n break;\n }\n target = getParent(target);\n }\n if (target === this._root.current) {\n return undefined;\n }\n return target;\n };\n SelectionZone.prototype._getItemIndex = function (itemRoot) {\n var _a;\n var indexValue = parseInt((_a = itemRoot.getAttribute(SELECTION_INDEX_ATTRIBUTE_NAME)) !== null && _a !== void 0 ? _a : '', 10);\n return isNaN(indexValue) ? -1 : indexValue;\n };\n SelectionZone.prototype._getItemSpan = function (itemRoot) {\n var _a;\n var spanValue = parseInt((_a = itemRoot.getAttribute(SELECTION_SPAN_ATTRIBUTE_NAME)) !== null && _a !== void 0 ? _a : '', 10);\n return isNaN(spanValue) ? undefined : spanValue;\n };\n SelectionZone.prototype._shouldAutoSelect = function (element) {\n return this._hasAttribute(element, SELECTION_SELECT_ATTRIBUTE_NAME);\n };\n SelectionZone.prototype._hasAttribute = function (element, attributeName) {\n var isToggle = false;\n while (!isToggle && element !== this._root.current) {\n var value = element.getAttribute(attributeName);\n if (value === 'false') {\n isToggle = false;\n break;\n }\n isToggle = value === 'true';\n element = getParent(element);\n }\n return isToggle;\n };\n SelectionZone.prototype._isInputElement = function (element) {\n return (element.tagName === 'INPUT' ||\n element.tagName === 'TEXTAREA' ||\n element.getAttribute('contenteditable') === 'true' ||\n element.getAttribute('contenteditable') === '');\n };\n SelectionZone.prototype._isNonHandledClick = function (element) {\n var doc = getDocument();\n if (doc && element) {\n while (element && element !== doc.documentElement) {\n if (isElementTabbable(element) || element.hasAttribute('data-selection-index')) {\n return false;\n }\n element = getParent(element);\n }\n }\n return true;\n };\n SelectionZone.prototype._handleNextFocus = function (handleFocus) {\n var _this = this;\n if (this._shouldHandleFocusTimeoutId) {\n this._async.clearTimeout(this._shouldHandleFocusTimeoutId);\n this._shouldHandleFocusTimeoutId = undefined;\n }\n this._shouldHandleFocus = handleFocus;\n if (handleFocus) {\n this._async.setTimeout(function () {\n _this._shouldHandleFocus = false;\n }, 100);\n }\n };\n SelectionZone.prototype._setIsTouch = function (isTouch) {\n var _this = this;\n if (this._isTouchTimeoutId) {\n this._async.clearTimeout(this._isTouchTimeoutId);\n this._isTouchTimeoutId = undefined;\n }\n this._isTouch = true;\n if (isTouch) {\n this._async.setTimeout(function () {\n _this._isTouch = false;\n }, 300);\n }\n };\n SelectionZone.prototype._getSelectionMode = function () {\n var selection = this.props.selection;\n var _a = this.props.selectionMode, selectionMode = _a === void 0 ? selection ? selection.mode : SelectionMode.none : _a;\n return selectionMode;\n };\n SelectionZone.defaultProps = {\n isSelectedOnFocus: true,\n toggleWithoutModifierPressed: false,\n selectionMode: SelectionMode.multiple,\n selectionClearedOnEscapePress: true,\n };\n return SelectionZone;\n}(React.Component));\nexport { SelectionZone };\n//# sourceMappingURL=SelectionZone.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none',\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-a13498cf.woff') format('woff')\"),\n },\n icons: {\n GlobalNavButton: '\\uE700',\n ChevronDown: '\\uE70D',\n ChevronUp: '\\uE70E',\n Edit: '\\uE70F',\n Add: '\\uE710',\n Cancel: '\\uE711',\n More: '\\uE712',\n Settings: '\\uE713',\n Mail: '\\uE715',\n Filter: '\\uE71C',\n Search: '\\uE721',\n Share: '\\uE72D',\n BlockedSite: '\\uE72F',\n FavoriteStar: '\\uE734',\n FavoriteStarFill: '\\uE735',\n CheckMark: '\\uE73E',\n Delete: '\\uE74D',\n ChevronLeft: '\\uE76B',\n ChevronRight: '\\uE76C',\n Calendar: '\\uE787',\n Megaphone: '\\uE789',\n Undo: '\\uE7A7',\n Flag: '\\uE7C1',\n Page: '\\uE7C3',\n Pinned: '\\uE840',\n View: '\\uE890',\n Clear: '\\uE894',\n Download: '\\uE896',\n Upload: '\\uE898',\n Folder: '\\uE8B7',\n Sort: '\\uE8CB',\n AlignRight: '\\uE8E2',\n AlignLeft: '\\uE8E4',\n Tag: '\\uE8EC',\n AddFriend: '\\uE8FA',\n Info: '\\uE946',\n SortLines: '\\uE9D0',\n List: '\\uEA37',\n CircleRing: '\\uEA3A',\n Heart: '\\uEB51',\n HeartFill: '\\uEB52',\n Tiles: '\\uECA5',\n Embed: '\\uECCE',\n Glimmer: '\\uECF4',\n Ascending: '\\uEDC0',\n Descending: '\\uEDC1',\n SortUp: '\\uEE68',\n SortDown: '\\uEE69',\n SyncToPC: '\\uEE6E',\n LargeGrid: '\\uEECB',\n SkypeCheck: '\\uEF80',\n SkypeClock: '\\uEF81',\n SkypeMinus: '\\uEF82',\n ClearFilter: '\\uEF8F',\n Flow: '\\uEF90',\n StatusCircleCheckmark: '\\uF13E',\n MoreVertical: '\\uF2BC',\n },\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-0\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-0-467ee27f.woff') format('woff')\")\n },\n icons: {\n 'PageLink': '\\uE302',\n 'CommentSolid': '\\uE30E',\n 'ChangeEntitlements': '\\uE310',\n 'Installation': '\\uE311',\n 'WebAppBuilderModule': '\\uE313',\n 'WebAppBuilderFragment': '\\uE314',\n 'WebAppBuilderSlot': '\\uE315',\n 'BullseyeTargetEdit': '\\uE319',\n 'WebAppBuilderFragmentCreate': '\\uE31B',\n 'PageData': '\\uE31C',\n 'PageHeaderEdit': '\\uE31D',\n 'ProductList': '\\uE31E',\n 'UnpublishContent': '\\uE31F',\n 'DependencyAdd': '\\uE344',\n 'DependencyRemove': '\\uE345',\n 'EntitlementPolicy': '\\uE346',\n 'EntitlementRedemption': '\\uE347',\n 'SchoolDataSyncLogo': '\\uE34C',\n 'PinSolid12': '\\uE352',\n 'PinSolidOff12': '\\uE353',\n 'AddLink': '\\uE35E',\n 'SharepointAppIcon16': '\\uE365',\n 'DataflowsLink': '\\uE366',\n 'TimePicker': '\\uE367',\n 'UserWarning': '\\uE368',\n 'ComplianceAudit': '\\uE369',\n 'InternetSharing': '\\uE704',\n 'Brightness': '\\uE706',\n 'MapPin': '\\uE707',\n 'Airplane': '\\uE709',\n 'Tablet': '\\uE70A',\n 'QuickNote': '\\uE70B',\n 'Video': '\\uE714',\n 'People': '\\uE716',\n 'Phone': '\\uE717',\n 'Pin': '\\uE718',\n 'Shop': '\\uE719',\n 'Stop': '\\uE71A',\n 'Link': '\\uE71B',\n 'AllApps': '\\uE71D',\n 'Zoom': '\\uE71E',\n 'ZoomOut': '\\uE71F',\n 'Microphone': '\\uE720',\n 'Camera': '\\uE722',\n 'Attach': '\\uE723',\n 'Send': '\\uE724',\n 'FavoriteList': '\\uE728',\n 'PageSolid': '\\uE729',\n 'Forward': '\\uE72A',\n 'Back': '\\uE72B',\n 'Refresh': '\\uE72C',\n 'Lock': '\\uE72E',\n 'ReportHacked': '\\uE730',\n 'EMI': '\\uE731',\n 'MiniLink': '\\uE732',\n 'Blocked': '\\uE733',\n 'ReadingMode': '\\uE736',\n 'Favicon': '\\uE737',\n 'Remove': '\\uE738',\n 'Checkbox': '\\uE739',\n 'CheckboxComposite': '\\uE73A',\n 'CheckboxFill': '\\uE73B',\n 'CheckboxIndeterminate': '\\uE73C',\n 'CheckboxCompositeReversed': '\\uE73D',\n 'BackToWindow': '\\uE73F',\n 'FullScreen': '\\uE740',\n 'Print': '\\uE749',\n 'Up': '\\uE74A',\n 'Down': '\\uE74B',\n 'OEM': '\\uE74C',\n 'Save': '\\uE74E',\n 'ReturnKey': '\\uE751',\n 'Cloud': '\\uE753',\n 'Flashlight': '\\uE754',\n 'CommandPrompt': '\\uE756',\n 'Sad': '\\uE757',\n 'RealEstate': '\\uE758',\n 'SIPMove': '\\uE759',\n 'EraseTool': '\\uE75C',\n 'GripperTool': '\\uE75E',\n 'Dialpad': '\\uE75F',\n 'PageLeft': '\\uE760',\n 'PageRight': '\\uE761',\n 'MultiSelect': '\\uE762',\n 'KeyboardClassic': '\\uE765',\n 'Play': '\\uE768',\n 'Pause': '\\uE769',\n 'InkingTool': '\\uE76D',\n 'Emoji2': '\\uE76E',\n 'GripperBarHorizontal': '\\uE76F',\n 'System': '\\uE770',\n 'Personalize': '\\uE771',\n 'SearchAndApps': '\\uE773',\n 'Globe': '\\uE774',\n 'EaseOfAccess': '\\uE776',\n 'ContactInfo': '\\uE779',\n 'Unpin': '\\uE77A',\n 'Contact': '\\uE77B',\n 'Memo': '\\uE77C',\n 'IncomingCall': '\\uE77E'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-0.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-1\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-1-4d521695.woff') format('woff')\")\n },\n icons: {\n 'Paste': '\\uE77F',\n 'WindowsLogo': '\\uE782',\n 'Error': '\\uE783',\n 'GripperBarVertical': '\\uE784',\n 'Unlock': '\\uE785',\n 'Slideshow': '\\uE786',\n 'Trim': '\\uE78A',\n 'AutoEnhanceOn': '\\uE78D',\n 'AutoEnhanceOff': '\\uE78E',\n 'Color': '\\uE790',\n 'SaveAs': '\\uE792',\n 'Light': '\\uE793',\n 'Filters': '\\uE795',\n 'AspectRatio': '\\uE799',\n 'Contrast': '\\uE7A1',\n 'Redo': '\\uE7A6',\n 'Crop': '\\uE7A8',\n 'PhotoCollection': '\\uE7AA',\n 'Album': '\\uE7AB',\n 'Rotate': '\\uE7AD',\n 'PanoIndicator': '\\uE7B0',\n 'Translate': '\\uE7B2',\n 'RedEye': '\\uE7B3',\n 'ViewOriginal': '\\uE7B4',\n 'ThumbnailView': '\\uE7B6',\n 'Package': '\\uE7B8',\n 'Telemarketer': '\\uE7B9',\n 'Warning': '\\uE7BA',\n 'Financial': '\\uE7BB',\n 'Education': '\\uE7BE',\n 'ShoppingCart': '\\uE7BF',\n 'Train': '\\uE7C0',\n 'Move': '\\uE7C2',\n 'TouchPointer': '\\uE7C9',\n 'Merge': '\\uE7D5',\n 'TurnRight': '\\uE7DB',\n 'Ferry': '\\uE7E3',\n 'Highlight': '\\uE7E6',\n 'PowerButton': '\\uE7E8',\n 'Tab': '\\uE7E9',\n 'Admin': '\\uE7EF',\n 'TVMonitor': '\\uE7F4',\n 'Speakers': '\\uE7F5',\n 'Game': '\\uE7FC',\n 'HorizontalTabKey': '\\uE7FD',\n 'UnstackSelected': '\\uE7FE',\n 'StackIndicator': '\\uE7FF',\n 'Nav2DMapView': '\\uE800',\n 'StreetsideSplitMinimize': '\\uE802',\n 'Car': '\\uE804',\n 'Bus': '\\uE806',\n 'EatDrink': '\\uE807',\n 'SeeDo': '\\uE808',\n 'LocationCircle': '\\uE80E',\n 'Home': '\\uE80F',\n 'SwitcherStartEnd': '\\uE810',\n 'ParkingLocation': '\\uE811',\n 'IncidentTriangle': '\\uE814',\n 'Touch': '\\uE815',\n 'MapDirections': '\\uE816',\n 'CaretHollow': '\\uE817',\n 'CaretSolid': '\\uE818',\n 'History': '\\uE81C',\n 'Location': '\\uE81D',\n 'MapLayers': '\\uE81E',\n 'SearchNearby': '\\uE820',\n 'Work': '\\uE821',\n 'Recent': '\\uE823',\n 'Hotel': '\\uE824',\n 'Bank': '\\uE825',\n 'LocationDot': '\\uE827',\n 'Dictionary': '\\uE82D',\n 'ChromeBack': '\\uE830',\n 'FolderOpen': '\\uE838',\n 'PinnedFill': '\\uE842',\n 'RevToggleKey': '\\uE845',\n 'USB': '\\uE88E',\n 'Previous': '\\uE892',\n 'Next': '\\uE893',\n 'Sync': '\\uE895',\n 'Help': '\\uE897',\n 'Emoji': '\\uE899',\n 'MailForward': '\\uE89C',\n 'ClosePane': '\\uE89F',\n 'OpenPane': '\\uE8A0',\n 'PreviewLink': '\\uE8A1',\n 'ZoomIn': '\\uE8A3',\n 'Bookmarks': '\\uE8A4',\n 'Document': '\\uE8A5',\n 'ProtectedDocument': '\\uE8A6',\n 'OpenInNewWindow': '\\uE8A7',\n 'MailFill': '\\uE8A8',\n 'ViewAll': '\\uE8A9',\n 'Switch': '\\uE8AB',\n 'Rename': '\\uE8AC',\n 'Go': '\\uE8AD',\n 'Remote': '\\uE8AF',\n 'SelectAll': '\\uE8B3',\n 'Orientation': '\\uE8B4',\n 'Import': '\\uE8B5'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-1.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-2\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-2-63c99abf.woff') format('woff')\")\n },\n icons: {\n 'Picture': '\\uE8B9',\n 'ChromeClose': '\\uE8BB',\n 'ShowResults': '\\uE8BC',\n 'Message': '\\uE8BD',\n 'CalendarDay': '\\uE8BF',\n 'CalendarWeek': '\\uE8C0',\n 'MailReplyAll': '\\uE8C2',\n 'Read': '\\uE8C3',\n 'Cut': '\\uE8C6',\n 'PaymentCard': '\\uE8C7',\n 'Copy': '\\uE8C8',\n 'Important': '\\uE8C9',\n 'MailReply': '\\uE8CA',\n 'GotoToday': '\\uE8D1',\n 'Font': '\\uE8D2',\n 'FontColor': '\\uE8D3',\n 'FolderFill': '\\uE8D5',\n 'Permissions': '\\uE8D7',\n 'DisableUpdates': '\\uE8D8',\n 'Unfavorite': '\\uE8D9',\n 'Italic': '\\uE8DB',\n 'Underline': '\\uE8DC',\n 'Bold': '\\uE8DD',\n 'MoveToFolder': '\\uE8DE',\n 'Dislike': '\\uE8E0',\n 'Like': '\\uE8E1',\n 'AlignCenter': '\\uE8E3',\n 'OpenFile': '\\uE8E5',\n 'ClearSelection': '\\uE8E6',\n 'FontDecrease': '\\uE8E7',\n 'FontIncrease': '\\uE8E8',\n 'FontSize': '\\uE8E9',\n 'CellPhone': '\\uE8EA',\n 'RepeatOne': '\\uE8ED',\n 'RepeatAll': '\\uE8EE',\n 'Calculator': '\\uE8EF',\n 'Library': '\\uE8F1',\n 'PostUpdate': '\\uE8F3',\n 'NewFolder': '\\uE8F4',\n 'CalendarReply': '\\uE8F5',\n 'UnsyncFolder': '\\uE8F6',\n 'SyncFolder': '\\uE8F7',\n 'BlockContact': '\\uE8F8',\n 'Accept': '\\uE8FB',\n 'BulletedList': '\\uE8FD',\n 'Preview': '\\uE8FF',\n 'News': '\\uE900',\n 'Chat': '\\uE901',\n 'Group': '\\uE902',\n 'World': '\\uE909',\n 'Comment': '\\uE90A',\n 'DockLeft': '\\uE90C',\n 'DockRight': '\\uE90D',\n 'Repair': '\\uE90F',\n 'Accounts': '\\uE910',\n 'Street': '\\uE913',\n 'RadioBullet': '\\uE915',\n 'Stopwatch': '\\uE916',\n 'Clock': '\\uE917',\n 'WorldClock': '\\uE918',\n 'AlarmClock': '\\uE919',\n 'Photo': '\\uE91B',\n 'ActionCenter': '\\uE91C',\n 'Hospital': '\\uE91D',\n 'Timer': '\\uE91E',\n 'FullCircleMask': '\\uE91F',\n 'LocationFill': '\\uE920',\n 'ChromeMinimize': '\\uE921',\n 'ChromeRestore': '\\uE923',\n 'Annotation': '\\uE924',\n 'Fingerprint': '\\uE928',\n 'Handwriting': '\\uE929',\n 'ChromeFullScreen': '\\uE92D',\n 'Completed': '\\uE930',\n 'Label': '\\uE932',\n 'FlickDown': '\\uE935',\n 'FlickUp': '\\uE936',\n 'FlickLeft': '\\uE937',\n 'FlickRight': '\\uE938',\n 'MiniExpand': '\\uE93A',\n 'MiniContract': '\\uE93B',\n 'Streaming': '\\uE93E',\n 'MusicInCollection': '\\uE940',\n 'OneDriveLogo': '\\uE941',\n 'CompassNW': '\\uE942',\n 'Code': '\\uE943',\n 'LightningBolt': '\\uE945',\n 'CalculatorMultiply': '\\uE947',\n 'CalculatorAddition': '\\uE948',\n 'CalculatorSubtract': '\\uE949',\n 'CalculatorPercentage': '\\uE94C',\n 'CalculatorEqualTo': '\\uE94E',\n 'PrintfaxPrinterFile': '\\uE956',\n 'StorageOptical': '\\uE958',\n 'Communications': '\\uE95A',\n 'Headset': '\\uE95B',\n 'Health': '\\uE95E',\n 'Webcam2': '\\uE960',\n 'FrontCamera': '\\uE96B',\n 'ChevronUpSmall': '\\uE96D'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-2.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-3\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-3-089e217a.woff') format('woff')\")\n },\n icons: {\n 'ChevronDownSmall': '\\uE96E',\n 'ChevronLeftSmall': '\\uE96F',\n 'ChevronRightSmall': '\\uE970',\n 'ChevronUpMed': '\\uE971',\n 'ChevronDownMed': '\\uE972',\n 'ChevronLeftMed': '\\uE973',\n 'ChevronRightMed': '\\uE974',\n 'Devices2': '\\uE975',\n 'PC1': '\\uE977',\n 'PresenceChickletVideo': '\\uE979',\n 'Reply': '\\uE97A',\n 'HalfAlpha': '\\uE97E',\n 'ConstructionCone': '\\uE98F',\n 'DoubleChevronLeftMed': '\\uE991',\n 'Volume0': '\\uE992',\n 'Volume1': '\\uE993',\n 'Volume2': '\\uE994',\n 'Volume3': '\\uE995',\n 'Chart': '\\uE999',\n 'Robot': '\\uE99A',\n 'Manufacturing': '\\uE99C',\n 'LockSolid': '\\uE9A2',\n 'FitPage': '\\uE9A6',\n 'FitWidth': '\\uE9A7',\n 'BidiLtr': '\\uE9AA',\n 'BidiRtl': '\\uE9AB',\n 'RightDoubleQuote': '\\uE9B1',\n 'Sunny': '\\uE9BD',\n 'CloudWeather': '\\uE9BE',\n 'Cloudy': '\\uE9BF',\n 'PartlyCloudyDay': '\\uE9C0',\n 'PartlyCloudyNight': '\\uE9C1',\n 'ClearNight': '\\uE9C2',\n 'RainShowersDay': '\\uE9C3',\n 'Rain': '\\uE9C4',\n 'Thunderstorms': '\\uE9C6',\n 'RainSnow': '\\uE9C7',\n 'Snow': '\\uE9C8',\n 'BlowingSnow': '\\uE9C9',\n 'Frigid': '\\uE9CA',\n 'Fog': '\\uE9CB',\n 'Squalls': '\\uE9CC',\n 'Duststorm': '\\uE9CD',\n 'Unknown': '\\uE9CE',\n 'Precipitation': '\\uE9CF',\n 'Ribbon': '\\uE9D1',\n 'AreaChart': '\\uE9D2',\n 'Assign': '\\uE9D3',\n 'FlowChart': '\\uE9D4',\n 'CheckList': '\\uE9D5',\n 'Diagnostic': '\\uE9D9',\n 'Generate': '\\uE9DA',\n 'LineChart': '\\uE9E6',\n 'Equalizer': '\\uE9E9',\n 'BarChartHorizontal': '\\uE9EB',\n 'BarChartVertical': '\\uE9EC',\n 'Freezing': '\\uE9EF',\n 'FunnelChart': '\\uE9F1',\n 'Processing': '\\uE9F5',\n 'Quantity': '\\uE9F8',\n 'ReportDocument': '\\uE9F9',\n 'StackColumnChart': '\\uE9FC',\n 'SnowShowerDay': '\\uE9FD',\n 'HailDay': '\\uEA00',\n 'WorkFlow': '\\uEA01',\n 'HourGlass': '\\uEA03',\n 'StoreLogoMed20': '\\uEA04',\n 'TimeSheet': '\\uEA05',\n 'TriangleSolid': '\\uEA08',\n 'UpgradeAnalysis': '\\uEA0B',\n 'VideoSolid': '\\uEA0C',\n 'RainShowersNight': '\\uEA0F',\n 'SnowShowerNight': '\\uEA11',\n 'Teamwork': '\\uEA12',\n 'HailNight': '\\uEA13',\n 'PeopleAdd': '\\uEA15',\n 'Glasses': '\\uEA16',\n 'DateTime2': '\\uEA17',\n 'Shield': '\\uEA18',\n 'Header1': '\\uEA19',\n 'PageAdd': '\\uEA1A',\n 'NumberedList': '\\uEA1C',\n 'PowerBILogo': '\\uEA1E',\n 'Info2': '\\uEA1F',\n 'MusicInCollectionFill': '\\uEA36',\n 'Asterisk': '\\uEA38',\n 'ErrorBadge': '\\uEA39',\n 'CircleFill': '\\uEA3B',\n 'Record2': '\\uEA3F',\n 'AllAppsMirrored': '\\uEA40',\n 'BookmarksMirrored': '\\uEA41',\n 'BulletedListMirrored': '\\uEA42',\n 'CaretHollowMirrored': '\\uEA45',\n 'CaretSolidMirrored': '\\uEA46',\n 'ChromeBackMirrored': '\\uEA47',\n 'ClearSelectionMirrored': '\\uEA48',\n 'ClosePaneMirrored': '\\uEA49',\n 'DockLeftMirrored': '\\uEA4C',\n 'DoubleChevronLeftMedMirrored': '\\uEA4D',\n 'GoMirrored': '\\uEA4F'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-3.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-4\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-4-a656cc0a.woff') format('woff')\")\n },\n icons: {\n 'HelpMirrored': '\\uEA51',\n 'ImportMirrored': '\\uEA52',\n 'ImportAllMirrored': '\\uEA53',\n 'ListMirrored': '\\uEA55',\n 'MailForwardMirrored': '\\uEA56',\n 'MailReplyMirrored': '\\uEA57',\n 'MailReplyAllMirrored': '\\uEA58',\n 'MiniContractMirrored': '\\uEA59',\n 'MiniExpandMirrored': '\\uEA5A',\n 'OpenPaneMirrored': '\\uEA5B',\n 'ParkingLocationMirrored': '\\uEA5E',\n 'SendMirrored': '\\uEA63',\n 'ShowResultsMirrored': '\\uEA65',\n 'ThumbnailViewMirrored': '\\uEA67',\n 'Media': '\\uEA69',\n 'Devices3': '\\uEA6C',\n 'Focus': '\\uEA6F',\n 'VideoLightOff': '\\uEA74',\n 'Lightbulb': '\\uEA80',\n 'StatusTriangle': '\\uEA82',\n 'VolumeDisabled': '\\uEA85',\n 'Puzzle': '\\uEA86',\n 'EmojiNeutral': '\\uEA87',\n 'EmojiDisappointed': '\\uEA88',\n 'HomeSolid': '\\uEA8A',\n 'Ringer': '\\uEA8F',\n 'PDF': '\\uEA90',\n 'HeartBroken': '\\uEA92',\n 'StoreLogo16': '\\uEA96',\n 'MultiSelectMirrored': '\\uEA98',\n 'Broom': '\\uEA99',\n 'AddToShoppingList': '\\uEA9A',\n 'Cocktails': '\\uEA9D',\n 'Wines': '\\uEABF',\n 'Articles': '\\uEAC1',\n 'Cycling': '\\uEAC7',\n 'DietPlanNotebook': '\\uEAC8',\n 'Pill': '\\uEACB',\n 'ExerciseTracker': '\\uEACC',\n 'HandsFree': '\\uEAD0',\n 'Medical': '\\uEAD4',\n 'Running': '\\uEADA',\n 'Weights': '\\uEADB',\n 'Trackers': '\\uEADF',\n 'AddNotes': '\\uEAE3',\n 'AllCurrency': '\\uEAE4',\n 'BarChart4': '\\uEAE7',\n 'CirclePlus': '\\uEAEE',\n 'Coffee': '\\uEAEF',\n 'Cotton': '\\uEAF3',\n 'Market': '\\uEAFC',\n 'Money': '\\uEAFD',\n 'PieDouble': '\\uEB04',\n 'PieSingle': '\\uEB05',\n 'RemoveFilter': '\\uEB08',\n 'Savings': '\\uEB0B',\n 'Sell': '\\uEB0C',\n 'StockDown': '\\uEB0F',\n 'StockUp': '\\uEB11',\n 'Lamp': '\\uEB19',\n 'Source': '\\uEB1B',\n 'MSNVideos': '\\uEB1C',\n 'Cricket': '\\uEB1E',\n 'Golf': '\\uEB1F',\n 'Baseball': '\\uEB20',\n 'Soccer': '\\uEB21',\n 'MoreSports': '\\uEB22',\n 'AutoRacing': '\\uEB24',\n 'CollegeHoops': '\\uEB25',\n 'CollegeFootball': '\\uEB26',\n 'ProFootball': '\\uEB27',\n 'ProHockey': '\\uEB28',\n 'Rugby': '\\uEB2D',\n 'SubstitutionsIn': '\\uEB31',\n 'Tennis': '\\uEB33',\n 'Arrivals': '\\uEB34',\n 'Design': '\\uEB3C',\n 'Website': '\\uEB41',\n 'Drop': '\\uEB42',\n 'HistoricalWeather': '\\uEB43',\n 'SkiResorts': '\\uEB45',\n 'Snowflake': '\\uEB46',\n 'BusSolid': '\\uEB47',\n 'FerrySolid': '\\uEB48',\n 'AirplaneSolid': '\\uEB4C',\n 'TrainSolid': '\\uEB4D',\n 'Ticket': '\\uEB54',\n 'WifiWarning4': '\\uEB63',\n 'Devices4': '\\uEB66',\n 'AzureLogo': '\\uEB6A',\n 'BingLogo': '\\uEB6B',\n 'MSNLogo': '\\uEB6C',\n 'OutlookLogoInverse': '\\uEB6D',\n 'OfficeLogo': '\\uEB6E',\n 'SkypeLogo': '\\uEB6F',\n 'Door': '\\uEB75',\n 'EditMirrored': '\\uEB7E',\n 'GiftCard': '\\uEB8E',\n 'DoubleBookmark': '\\uEB8F',\n 'StatusErrorFull': '\\uEB90'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-4.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-5\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-5-f95ba260.woff') format('woff')\")\n },\n icons: {\n 'Certificate': '\\uEB95',\n 'FastForward': '\\uEB9D',\n 'Rewind': '\\uEB9E',\n 'Photo2': '\\uEB9F',\n 'OpenSource': '\\uEBC2',\n 'Movers': '\\uEBCD',\n 'CloudDownload': '\\uEBD3',\n 'Family': '\\uEBDA',\n 'WindDirection': '\\uEBE6',\n 'Bug': '\\uEBE8',\n 'SiteScan': '\\uEBEC',\n 'BrowserScreenShot': '\\uEBED',\n 'F12DevTools': '\\uEBEE',\n 'CSS': '\\uEBEF',\n 'JS': '\\uEBF0',\n 'DeliveryTruck': '\\uEBF4',\n 'ReminderPerson': '\\uEBF7',\n 'ReminderGroup': '\\uEBF8',\n 'ReminderTime': '\\uEBF9',\n 'TabletMode': '\\uEBFC',\n 'Umbrella': '\\uEC04',\n 'NetworkTower': '\\uEC05',\n 'CityNext': '\\uEC06',\n 'CityNext2': '\\uEC07',\n 'Section': '\\uEC0C',\n 'OneNoteLogoInverse': '\\uEC0D',\n 'ToggleFilled': '\\uEC11',\n 'ToggleBorder': '\\uEC12',\n 'SliderThumb': '\\uEC13',\n 'ToggleThumb': '\\uEC14',\n 'Documentation': '\\uEC17',\n 'Badge': '\\uEC1B',\n 'Giftbox': '\\uEC1F',\n 'VisualStudioLogo': '\\uEC22',\n 'HomeGroup': '\\uEC26',\n 'ExcelLogoInverse': '\\uEC28',\n 'WordLogoInverse': '\\uEC29',\n 'PowerPointLogoInverse': '\\uEC2A',\n 'Cafe': '\\uEC32',\n 'SpeedHigh': '\\uEC4A',\n 'Commitments': '\\uEC4D',\n 'ThisPC': '\\uEC4E',\n 'MusicNote': '\\uEC4F',\n 'MicOff': '\\uEC54',\n 'PlaybackRate1x': '\\uEC57',\n 'EdgeLogo': '\\uEC60',\n 'CompletedSolid': '\\uEC61',\n 'AlbumRemove': '\\uEC62',\n 'MessageFill': '\\uEC70',\n 'TabletSelected': '\\uEC74',\n 'MobileSelected': '\\uEC75',\n 'LaptopSelected': '\\uEC76',\n 'TVMonitorSelected': '\\uEC77',\n 'DeveloperTools': '\\uEC7A',\n 'Shapes': '\\uEC7C',\n 'InsertTextBox': '\\uEC7D',\n 'LowerBrightness': '\\uEC8A',\n 'WebComponents': '\\uEC8B',\n 'OfflineStorage': '\\uEC8C',\n 'DOM': '\\uEC8D',\n 'CloudUpload': '\\uEC8E',\n 'ScrollUpDown': '\\uEC8F',\n 'DateTime': '\\uEC92',\n 'Event': '\\uECA3',\n 'Cake': '\\uECA4',\n 'Org': '\\uECA6',\n 'PartyLeader': '\\uECA7',\n 'DRM': '\\uECA8',\n 'CloudAdd': '\\uECA9',\n 'AppIconDefault': '\\uECAA',\n 'Photo2Add': '\\uECAB',\n 'Photo2Remove': '\\uECAC',\n 'Calories': '\\uECAD',\n 'POI': '\\uECAF',\n 'AddTo': '\\uECC8',\n 'RadioBtnOff': '\\uECCA',\n 'RadioBtnOn': '\\uECCB',\n 'ExploreContent': '\\uECCD',\n 'Product': '\\uECDC',\n 'ProgressLoopInner': '\\uECDE',\n 'ProgressLoopOuter': '\\uECDF',\n 'Blocked2': '\\uECE4',\n 'FangBody': '\\uECEB',\n 'Toolbox': '\\uECED',\n 'PageHeader': '\\uECEE',\n 'ChatInviteFriend': '\\uECFE',\n 'Brush': '\\uECFF',\n 'Shirt': '\\uED00',\n 'Crown': '\\uED01',\n 'Diamond': '\\uED02',\n 'ScaleUp': '\\uED09',\n 'QRCode': '\\uED14',\n 'Feedback': '\\uED15',\n 'SharepointLogoInverse': '\\uED18',\n 'YammerLogo': '\\uED19',\n 'Hide': '\\uED1A',\n 'Uneditable': '\\uED1D',\n 'ReturnToSession': '\\uED24',\n 'OpenFolderHorizontal': '\\uED25',\n 'CalendarMirrored': '\\uED28'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-5.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-6\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-6-ef6fd590.woff') format('woff')\")\n },\n icons: {\n 'SwayLogoInverse': '\\uED29',\n 'OutOfOffice': '\\uED34',\n 'Trophy': '\\uED3F',\n 'ReopenPages': '\\uED50',\n 'EmojiTabSymbols': '\\uED58',\n 'AADLogo': '\\uED68',\n 'AccessLogo': '\\uED69',\n 'AdminALogoInverse32': '\\uED6A',\n 'AdminCLogoInverse32': '\\uED6B',\n 'AdminDLogoInverse32': '\\uED6C',\n 'AdminELogoInverse32': '\\uED6D',\n 'AdminLLogoInverse32': '\\uED6E',\n 'AdminMLogoInverse32': '\\uED6F',\n 'AdminOLogoInverse32': '\\uED70',\n 'AdminPLogoInverse32': '\\uED71',\n 'AdminSLogoInverse32': '\\uED72',\n 'AdminYLogoInverse32': '\\uED73',\n 'DelveLogoInverse': '\\uED76',\n 'ExchangeLogoInverse': '\\uED78',\n 'LyncLogo': '\\uED79',\n 'OfficeVideoLogoInverse': '\\uED7A',\n 'SocialListeningLogo': '\\uED7C',\n 'VisioLogoInverse': '\\uED7D',\n 'Balloons': '\\uED7E',\n 'Cat': '\\uED7F',\n 'MailAlert': '\\uED80',\n 'MailCheck': '\\uED81',\n 'MailLowImportance': '\\uED82',\n 'MailPause': '\\uED83',\n 'MailRepeat': '\\uED84',\n 'SecurityGroup': '\\uED85',\n 'Table': '\\uED86',\n 'VoicemailForward': '\\uED87',\n 'VoicemailReply': '\\uED88',\n 'Waffle': '\\uED89',\n 'RemoveEvent': '\\uED8A',\n 'EventInfo': '\\uED8B',\n 'ForwardEvent': '\\uED8C',\n 'WipePhone': '\\uED8D',\n 'AddOnlineMeeting': '\\uED8E',\n 'JoinOnlineMeeting': '\\uED8F',\n 'RemoveLink': '\\uED90',\n 'PeopleBlock': '\\uED91',\n 'PeopleRepeat': '\\uED92',\n 'PeopleAlert': '\\uED93',\n 'PeoplePause': '\\uED94',\n 'TransferCall': '\\uED95',\n 'AddPhone': '\\uED96',\n 'UnknownCall': '\\uED97',\n 'NoteReply': '\\uED98',\n 'NoteForward': '\\uED99',\n 'NotePinned': '\\uED9A',\n 'RemoveOccurrence': '\\uED9B',\n 'Timeline': '\\uED9C',\n 'EditNote': '\\uED9D',\n 'CircleHalfFull': '\\uED9E',\n 'Room': '\\uED9F',\n 'Unsubscribe': '\\uEDA0',\n 'Subscribe': '\\uEDA1',\n 'HardDrive': '\\uEDA2',\n 'RecurringTask': '\\uEDB2',\n 'TaskManager': '\\uEDB7',\n 'TaskManagerMirrored': '\\uEDB8',\n 'Combine': '\\uEDBB',\n 'Split': '\\uEDBC',\n 'DoubleChevronUp': '\\uEDBD',\n 'DoubleChevronLeft': '\\uEDBE',\n 'DoubleChevronRight': '\\uEDBF',\n 'TextBox': '\\uEDC2',\n 'TextField': '\\uEDC3',\n 'NumberField': '\\uEDC4',\n 'Dropdown': '\\uEDC5',\n 'PenWorkspace': '\\uEDC6',\n 'BookingsLogo': '\\uEDC7',\n 'ClassNotebookLogoInverse': '\\uEDC8',\n 'DelveAnalyticsLogo': '\\uEDCA',\n 'DocsLogoInverse': '\\uEDCB',\n 'Dynamics365Logo': '\\uEDCC',\n 'DynamicSMBLogo': '\\uEDCD',\n 'OfficeAssistantLogo': '\\uEDCE',\n 'OfficeStoreLogo': '\\uEDCF',\n 'OneNoteEduLogoInverse': '\\uEDD0',\n 'PlannerLogo': '\\uEDD1',\n 'PowerApps': '\\uEDD2',\n 'Suitcase': '\\uEDD3',\n 'ProjectLogoInverse': '\\uEDD4',\n 'CaretLeft8': '\\uEDD5',\n 'CaretRight8': '\\uEDD6',\n 'CaretUp8': '\\uEDD7',\n 'CaretDown8': '\\uEDD8',\n 'CaretLeftSolid8': '\\uEDD9',\n 'CaretRightSolid8': '\\uEDDA',\n 'CaretUpSolid8': '\\uEDDB',\n 'CaretDownSolid8': '\\uEDDC',\n 'ClearFormatting': '\\uEDDD',\n 'Superscript': '\\uEDDE',\n 'Subscript': '\\uEDDF',\n 'Strikethrough': '\\uEDE0',\n 'Export': '\\uEDE1',\n 'ExportMirrored': '\\uEDE2'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-6.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-7\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-7-2b97bb99.woff') format('woff')\")\n },\n icons: {\n 'SingleBookmark': '\\uEDFF',\n 'SingleBookmarkSolid': '\\uEE00',\n 'DoubleChevronDown': '\\uEE04',\n 'FollowUser': '\\uEE05',\n 'ReplyAll': '\\uEE0A',\n 'WorkforceManagement': '\\uEE0F',\n 'RecruitmentManagement': '\\uEE12',\n 'Questionnaire': '\\uEE19',\n 'ManagerSelfService': '\\uEE23',\n 'ProductionFloorManagement': '\\uEE29',\n 'ProductRelease': '\\uEE2E',\n 'ProductVariant': '\\uEE30',\n 'ReplyMirrored': '\\uEE35',\n 'ReplyAllMirrored': '\\uEE36',\n 'Medal': '\\uEE38',\n 'AddGroup': '\\uEE3D',\n 'QuestionnaireMirrored': '\\uEE4B',\n 'CloudImportExport': '\\uEE55',\n 'TemporaryUser': '\\uEE58',\n 'CaretSolid16': '\\uEE62',\n 'GroupedDescending': '\\uEE66',\n 'GroupedAscending': '\\uEE67',\n 'AwayStatus': '\\uEE6A',\n 'MyMoviesTV': '\\uEE6C',\n 'GenericScan': '\\uEE6F',\n 'AustralianRules': '\\uEE70',\n 'WifiEthernet': '\\uEE77',\n 'TrackersMirrored': '\\uEE92',\n 'DateTimeMirrored': '\\uEE93',\n 'StopSolid': '\\uEE95',\n 'DoubleChevronUp12': '\\uEE96',\n 'DoubleChevronDown12': '\\uEE97',\n 'DoubleChevronLeft12': '\\uEE98',\n 'DoubleChevronRight12': '\\uEE99',\n 'CalendarAgenda': '\\uEE9A',\n 'ConnectVirtualMachine': '\\uEE9D',\n 'AddEvent': '\\uEEB5',\n 'AssetLibrary': '\\uEEB6',\n 'DataConnectionLibrary': '\\uEEB7',\n 'DocLibrary': '\\uEEB8',\n 'FormLibrary': '\\uEEB9',\n 'FormLibraryMirrored': '\\uEEBA',\n 'ReportLibrary': '\\uEEBB',\n 'ReportLibraryMirrored': '\\uEEBC',\n 'ContactCard': '\\uEEBD',\n 'CustomList': '\\uEEBE',\n 'CustomListMirrored': '\\uEEBF',\n 'IssueTracking': '\\uEEC0',\n 'IssueTrackingMirrored': '\\uEEC1',\n 'PictureLibrary': '\\uEEC2',\n 'OfficeAddinsLogo': '\\uEEC7',\n 'OfflineOneDriveParachute': '\\uEEC8',\n 'OfflineOneDriveParachuteDisabled': '\\uEEC9',\n 'TriangleSolidUp12': '\\uEECC',\n 'TriangleSolidDown12': '\\uEECD',\n 'TriangleSolidLeft12': '\\uEECE',\n 'TriangleSolidRight12': '\\uEECF',\n 'TriangleUp12': '\\uEED0',\n 'TriangleDown12': '\\uEED1',\n 'TriangleLeft12': '\\uEED2',\n 'TriangleRight12': '\\uEED3',\n 'ArrowUpRight8': '\\uEED4',\n 'ArrowDownRight8': '\\uEED5',\n 'DocumentSet': '\\uEED6',\n 'GoToDashboard': '\\uEEED',\n 'DelveAnalytics': '\\uEEEE',\n 'ArrowUpRightMirrored8': '\\uEEEF',\n 'ArrowDownRightMirrored8': '\\uEEF0',\n 'CompanyDirectory': '\\uEF0D',\n 'OpenEnrollment': '\\uEF1C',\n 'CompanyDirectoryMirrored': '\\uEF2B',\n 'OneDriveAdd': '\\uEF32',\n 'ProfileSearch': '\\uEF35',\n 'Header2': '\\uEF36',\n 'Header3': '\\uEF37',\n 'Header4': '\\uEF38',\n 'RingerSolid': '\\uEF3A',\n 'Eyedropper': '\\uEF3C',\n 'MarketDown': '\\uEF42',\n 'CalendarWorkWeek': '\\uEF51',\n 'SidePanel': '\\uEF52',\n 'GlobeFavorite': '\\uEF53',\n 'CaretTopLeftSolid8': '\\uEF54',\n 'CaretTopRightSolid8': '\\uEF55',\n 'ViewAll2': '\\uEF56',\n 'DocumentReply': '\\uEF57',\n 'PlayerSettings': '\\uEF58',\n 'ReceiptForward': '\\uEF59',\n 'ReceiptReply': '\\uEF5A',\n 'ReceiptCheck': '\\uEF5B',\n 'Fax': '\\uEF5C',\n 'RecurringEvent': '\\uEF5D',\n 'ReplyAlt': '\\uEF5E',\n 'ReplyAllAlt': '\\uEF5F',\n 'EditStyle': '\\uEF60',\n 'EditMail': '\\uEF61',\n 'Lifesaver': '\\uEF62',\n 'LifesaverLock': '\\uEF63',\n 'InboxCheck': '\\uEF64',\n 'FolderSearch': '\\uEF65'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-7.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-8\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-8-6fdf1528.woff') format('woff')\")\n },\n icons: {\n 'CollapseMenu': '\\uEF66',\n 'ExpandMenu': '\\uEF67',\n 'Boards': '\\uEF68',\n 'SunAdd': '\\uEF69',\n 'SunQuestionMark': '\\uEF6A',\n 'LandscapeOrientation': '\\uEF6B',\n 'DocumentSearch': '\\uEF6C',\n 'PublicCalendar': '\\uEF6D',\n 'PublicContactCard': '\\uEF6E',\n 'PublicEmail': '\\uEF6F',\n 'PublicFolder': '\\uEF70',\n 'WordDocument': '\\uEF71',\n 'PowerPointDocument': '\\uEF72',\n 'ExcelDocument': '\\uEF73',\n 'GroupedList': '\\uEF74',\n 'ClassroomLogo': '\\uEF75',\n 'Sections': '\\uEF76',\n 'EditPhoto': '\\uEF77',\n 'Starburst': '\\uEF78',\n 'ShareiOS': '\\uEF79',\n 'AirTickets': '\\uEF7A',\n 'PencilReply': '\\uEF7B',\n 'Tiles2': '\\uEF7C',\n 'SkypeCircleCheck': '\\uEF7D',\n 'SkypeCircleClock': '\\uEF7E',\n 'SkypeCircleMinus': '\\uEF7F',\n 'SkypeMessage': '\\uEF83',\n 'ClosedCaption': '\\uEF84',\n 'ATPLogo': '\\uEF85',\n 'OfficeFormsLogoInverse': '\\uEF86',\n 'RecycleBin': '\\uEF87',\n 'EmptyRecycleBin': '\\uEF88',\n 'Hide2': '\\uEF89',\n 'Breadcrumb': '\\uEF8C',\n 'BirthdayCake': '\\uEF8D',\n 'TimeEntry': '\\uEF95',\n 'CRMProcesses': '\\uEFB1',\n 'PageEdit': '\\uEFB6',\n 'PageArrowRight': '\\uEFB8',\n 'PageRemove': '\\uEFBA',\n 'Database': '\\uEFC7',\n 'DataManagementSettings': '\\uEFC8',\n 'CRMServices': '\\uEFD2',\n 'EditContact': '\\uEFD3',\n 'ConnectContacts': '\\uEFD4',\n 'AppIconDefaultAdd': '\\uEFDA',\n 'AppIconDefaultList': '\\uEFDE',\n 'ActivateOrders': '\\uEFE0',\n 'DeactivateOrders': '\\uEFE1',\n 'ProductCatalog': '\\uEFE8',\n 'ScatterChart': '\\uEFEB',\n 'AccountActivity': '\\uEFF4',\n 'DocumentManagement': '\\uEFFC',\n 'CRMReport': '\\uEFFE',\n 'KnowledgeArticle': '\\uF000',\n 'Relationship': '\\uF003',\n 'HomeVerify': '\\uF00E',\n 'ZipFolder': '\\uF012',\n 'SurveyQuestions': '\\uF01B',\n 'TextDocument': '\\uF029',\n 'TextDocumentShared': '\\uF02B',\n 'PageCheckedOut': '\\uF02C',\n 'PageShared': '\\uF02D',\n 'SaveAndClose': '\\uF038',\n 'Script': '\\uF03A',\n 'Archive': '\\uF03F',\n 'ActivityFeed': '\\uF056',\n 'Compare': '\\uF057',\n 'EventDate': '\\uF059',\n 'ArrowUpRight': '\\uF069',\n 'CaretRight': '\\uF06B',\n 'SetAction': '\\uF071',\n 'ChatBot': '\\uF08B',\n 'CaretSolidLeft': '\\uF08D',\n 'CaretSolidDown': '\\uF08E',\n 'CaretSolidRight': '\\uF08F',\n 'CaretSolidUp': '\\uF090',\n 'PowerAppsLogo': '\\uF091',\n 'PowerApps2Logo': '\\uF092',\n 'SearchIssue': '\\uF09A',\n 'SearchIssueMirrored': '\\uF09B',\n 'FabricAssetLibrary': '\\uF09C',\n 'FabricDataConnectionLibrary': '\\uF09D',\n 'FabricDocLibrary': '\\uF09E',\n 'FabricFormLibrary': '\\uF09F',\n 'FabricFormLibraryMirrored': '\\uF0A0',\n 'FabricReportLibrary': '\\uF0A1',\n 'FabricReportLibraryMirrored': '\\uF0A2',\n 'FabricPublicFolder': '\\uF0A3',\n 'FabricFolderSearch': '\\uF0A4',\n 'FabricMovetoFolder': '\\uF0A5',\n 'FabricUnsyncFolder': '\\uF0A6',\n 'FabricSyncFolder': '\\uF0A7',\n 'FabricOpenFolderHorizontal': '\\uF0A8',\n 'FabricFolder': '\\uF0A9',\n 'FabricFolderFill': '\\uF0AA',\n 'FabricNewFolder': '\\uF0AB',\n 'FabricPictureLibrary': '\\uF0AC',\n 'PhotoVideoMedia': '\\uF0B1',\n 'AddFavorite': '\\uF0C8'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-8.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-9\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-9-c6162b42.woff') format('woff')\")\n },\n icons: {\n 'AddFavoriteFill': '\\uF0C9',\n 'BufferTimeBefore': '\\uF0CF',\n 'BufferTimeAfter': '\\uF0D0',\n 'BufferTimeBoth': '\\uF0D1',\n 'PublishContent': '\\uF0D4',\n 'ClipboardList': '\\uF0E3',\n 'ClipboardListMirrored': '\\uF0E4',\n 'CannedChat': '\\uF0F2',\n 'SkypeForBusinessLogo': '\\uF0FC',\n 'TabCenter': '\\uF100',\n 'PageCheckedin': '\\uF104',\n 'PageList': '\\uF106',\n 'ReadOutLoud': '\\uF112',\n 'CaretBottomLeftSolid8': '\\uF121',\n 'CaretBottomRightSolid8': '\\uF122',\n 'FolderHorizontal': '\\uF12B',\n 'MicrosoftStaffhubLogo': '\\uF130',\n 'GiftboxOpen': '\\uF133',\n 'StatusCircleOuter': '\\uF136',\n 'StatusCircleInner': '\\uF137',\n 'StatusCircleRing': '\\uF138',\n 'StatusTriangleOuter': '\\uF139',\n 'StatusTriangleInner': '\\uF13A',\n 'StatusTriangleExclamation': '\\uF13B',\n 'StatusCircleExclamation': '\\uF13C',\n 'StatusCircleErrorX': '\\uF13D',\n 'StatusCircleInfo': '\\uF13F',\n 'StatusCircleBlock': '\\uF140',\n 'StatusCircleBlock2': '\\uF141',\n 'StatusCircleQuestionMark': '\\uF142',\n 'StatusCircleSync': '\\uF143',\n 'Toll': '\\uF160',\n 'ExploreContentSingle': '\\uF164',\n 'CollapseContent': '\\uF165',\n 'CollapseContentSingle': '\\uF166',\n 'InfoSolid': '\\uF167',\n 'GroupList': '\\uF168',\n 'ProgressRingDots': '\\uF16A',\n 'CaloriesAdd': '\\uF172',\n 'BranchFork': '\\uF173',\n 'MuteChat': '\\uF17A',\n 'AddHome': '\\uF17B',\n 'AddWork': '\\uF17C',\n 'MobileReport': '\\uF18A',\n 'ScaleVolume': '\\uF18C',\n 'HardDriveGroup': '\\uF18F',\n 'FastMode': '\\uF19A',\n 'ToggleLeft': '\\uF19E',\n 'ToggleRight': '\\uF19F',\n 'TriangleShape': '\\uF1A7',\n 'RectangleShape': '\\uF1A9',\n 'CubeShape': '\\uF1AA',\n 'Trophy2': '\\uF1AE',\n 'BucketColor': '\\uF1B6',\n 'BucketColorFill': '\\uF1B7',\n 'Taskboard': '\\uF1C2',\n 'SingleColumn': '\\uF1D3',\n 'DoubleColumn': '\\uF1D4',\n 'TripleColumn': '\\uF1D5',\n 'ColumnLeftTwoThirds': '\\uF1D6',\n 'ColumnRightTwoThirds': '\\uF1D7',\n 'AccessLogoFill': '\\uF1DB',\n 'AnalyticsLogo': '\\uF1DE',\n 'AnalyticsQuery': '\\uF1DF',\n 'NewAnalyticsQuery': '\\uF1E0',\n 'AnalyticsReport': '\\uF1E1',\n 'WordLogo': '\\uF1E3',\n 'WordLogoFill': '\\uF1E4',\n 'ExcelLogo': '\\uF1E5',\n 'ExcelLogoFill': '\\uF1E6',\n 'OneNoteLogo': '\\uF1E7',\n 'OneNoteLogoFill': '\\uF1E8',\n 'OutlookLogo': '\\uF1E9',\n 'OutlookLogoFill': '\\uF1EA',\n 'PowerPointLogo': '\\uF1EB',\n 'PowerPointLogoFill': '\\uF1EC',\n 'PublisherLogo': '\\uF1ED',\n 'PublisherLogoFill': '\\uF1EE',\n 'ScheduleEventAction': '\\uF1EF',\n 'FlameSolid': '\\uF1F3',\n 'ServerProcesses': '\\uF1FE',\n 'Server': '\\uF201',\n 'SaveAll': '\\uF203',\n 'LinkedInLogo': '\\uF20A',\n 'Decimals': '\\uF218',\n 'SidePanelMirrored': '\\uF221',\n 'ProtectRestrict': '\\uF22A',\n 'Blog': '\\uF22B',\n 'UnknownMirrored': '\\uF22E',\n 'PublicContactCardMirrored': '\\uF230',\n 'GridViewSmall': '\\uF232',\n 'GridViewMedium': '\\uF233',\n 'GridViewLarge': '\\uF234',\n 'Step': '\\uF241',\n 'StepInsert': '\\uF242',\n 'StepShared': '\\uF243',\n 'StepSharedAdd': '\\uF244',\n 'StepSharedInsert': '\\uF245',\n 'ViewDashboard': '\\uF246',\n 'ViewList': '\\uF247'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-9.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-10\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-10-c4ded8e4.woff') format('woff')\")\n },\n icons: {\n 'ViewListGroup': '\\uF248',\n 'ViewListTree': '\\uF249',\n 'TriggerAuto': '\\uF24A',\n 'TriggerUser': '\\uF24B',\n 'PivotChart': '\\uF24C',\n 'StackedBarChart': '\\uF24D',\n 'StackedLineChart': '\\uF24E',\n 'BuildQueue': '\\uF24F',\n 'BuildQueueNew': '\\uF250',\n 'UserFollowed': '\\uF25C',\n 'ContactLink': '\\uF25F',\n 'Stack': '\\uF26F',\n 'Bullseye': '\\uF272',\n 'VennDiagram': '\\uF273',\n 'FiveTileGrid': '\\uF274',\n 'FocalPoint': '\\uF277',\n 'Insert': '\\uF278',\n 'RingerRemove': '\\uF279',\n 'TeamsLogoInverse': '\\uF27A',\n 'TeamsLogo': '\\uF27B',\n 'TeamsLogoFill': '\\uF27C',\n 'SkypeForBusinessLogoFill': '\\uF27D',\n 'SharepointLogo': '\\uF27E',\n 'SharepointLogoFill': '\\uF27F',\n 'DelveLogo': '\\uF280',\n 'DelveLogoFill': '\\uF281',\n 'OfficeVideoLogo': '\\uF282',\n 'OfficeVideoLogoFill': '\\uF283',\n 'ExchangeLogo': '\\uF284',\n 'ExchangeLogoFill': '\\uF285',\n 'Signin': '\\uF286',\n 'DocumentApproval': '\\uF28B',\n 'CloneToDesktop': '\\uF28C',\n 'InstallToDrive': '\\uF28D',\n 'Blur': '\\uF28E',\n 'Build': '\\uF28F',\n 'ProcessMetaTask': '\\uF290',\n 'BranchFork2': '\\uF291',\n 'BranchLocked': '\\uF292',\n 'BranchCommit': '\\uF293',\n 'BranchCompare': '\\uF294',\n 'BranchMerge': '\\uF295',\n 'BranchPullRequest': '\\uF296',\n 'BranchSearch': '\\uF297',\n 'BranchShelveset': '\\uF298',\n 'RawSource': '\\uF299',\n 'MergeDuplicate': '\\uF29A',\n 'RowsGroup': '\\uF29B',\n 'RowsChild': '\\uF29C',\n 'Deploy': '\\uF29D',\n 'Redeploy': '\\uF29E',\n 'ServerEnviroment': '\\uF29F',\n 'VisioDiagram': '\\uF2A0',\n 'HighlightMappedShapes': '\\uF2A1',\n 'TextCallout': '\\uF2A2',\n 'IconSetsFlag': '\\uF2A4',\n 'VisioLogo': '\\uF2A7',\n 'VisioLogoFill': '\\uF2A8',\n 'VisioDocument': '\\uF2A9',\n 'TimelineProgress': '\\uF2AA',\n 'TimelineDelivery': '\\uF2AB',\n 'Backlog': '\\uF2AC',\n 'TeamFavorite': '\\uF2AD',\n 'TaskGroup': '\\uF2AE',\n 'TaskGroupMirrored': '\\uF2AF',\n 'ScopeTemplate': '\\uF2B0',\n 'AssessmentGroupTemplate': '\\uF2B1',\n 'NewTeamProject': '\\uF2B2',\n 'CommentAdd': '\\uF2B3',\n 'CommentNext': '\\uF2B4',\n 'CommentPrevious': '\\uF2B5',\n 'ShopServer': '\\uF2B6',\n 'LocaleLanguage': '\\uF2B7',\n 'QueryList': '\\uF2B8',\n 'UserSync': '\\uF2B9',\n 'UserPause': '\\uF2BA',\n 'StreamingOff': '\\uF2BB',\n 'ArrowTallUpLeft': '\\uF2BD',\n 'ArrowTallUpRight': '\\uF2BE',\n 'ArrowTallDownLeft': '\\uF2BF',\n 'ArrowTallDownRight': '\\uF2C0',\n 'FieldEmpty': '\\uF2C1',\n 'FieldFilled': '\\uF2C2',\n 'FieldChanged': '\\uF2C3',\n 'FieldNotChanged': '\\uF2C4',\n 'RingerOff': '\\uF2C5',\n 'PlayResume': '\\uF2C6',\n 'BulletedList2': '\\uF2C7',\n 'BulletedList2Mirrored': '\\uF2C8',\n 'ImageCrosshair': '\\uF2C9',\n 'GitGraph': '\\uF2CA',\n 'Repo': '\\uF2CB',\n 'RepoSolid': '\\uF2CC',\n 'FolderQuery': '\\uF2CD',\n 'FolderList': '\\uF2CE',\n 'FolderListMirrored': '\\uF2CF',\n 'LocationOutline': '\\uF2D0',\n 'POISolid': '\\uF2D1',\n 'CalculatorNotEqualTo': '\\uF2D2',\n 'BoxSubtractSolid': '\\uF2D3'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-10.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-11\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-11-2a8393d6.woff') format('woff')\")\n },\n icons: {\n 'BoxAdditionSolid': '\\uF2D4',\n 'BoxMultiplySolid': '\\uF2D5',\n 'BoxPlaySolid': '\\uF2D6',\n 'BoxCheckmarkSolid': '\\uF2D7',\n 'CirclePauseSolid': '\\uF2D8',\n 'CirclePause': '\\uF2D9',\n 'MSNVideosSolid': '\\uF2DA',\n 'CircleStopSolid': '\\uF2DB',\n 'CircleStop': '\\uF2DC',\n 'NavigateBack': '\\uF2DD',\n 'NavigateBackMirrored': '\\uF2DE',\n 'NavigateForward': '\\uF2DF',\n 'NavigateForwardMirrored': '\\uF2E0',\n 'UnknownSolid': '\\uF2E1',\n 'UnknownMirroredSolid': '\\uF2E2',\n 'CircleAddition': '\\uF2E3',\n 'CircleAdditionSolid': '\\uF2E4',\n 'FilePDB': '\\uF2E5',\n 'FileTemplate': '\\uF2E6',\n 'FileSQL': '\\uF2E7',\n 'FileJAVA': '\\uF2E8',\n 'FileASPX': '\\uF2E9',\n 'FileCSS': '\\uF2EA',\n 'FileSass': '\\uF2EB',\n 'FileLess': '\\uF2EC',\n 'FileHTML': '\\uF2ED',\n 'JavaScriptLanguage': '\\uF2EE',\n 'CSharpLanguage': '\\uF2EF',\n 'CSharp': '\\uF2F0',\n 'VisualBasicLanguage': '\\uF2F1',\n 'VB': '\\uF2F2',\n 'CPlusPlusLanguage': '\\uF2F3',\n 'CPlusPlus': '\\uF2F4',\n 'FSharpLanguage': '\\uF2F5',\n 'FSharp': '\\uF2F6',\n 'TypeScriptLanguage': '\\uF2F7',\n 'PythonLanguage': '\\uF2F8',\n 'PY': '\\uF2F9',\n 'CoffeeScript': '\\uF2FA',\n 'MarkDownLanguage': '\\uF2FB',\n 'FullWidth': '\\uF2FE',\n 'FullWidthEdit': '\\uF2FF',\n 'Plug': '\\uF300',\n 'PlugSolid': '\\uF301',\n 'PlugConnected': '\\uF302',\n 'PlugDisconnected': '\\uF303',\n 'UnlockSolid': '\\uF304',\n 'Variable': '\\uF305',\n 'Parameter': '\\uF306',\n 'CommentUrgent': '\\uF307',\n 'Storyboard': '\\uF308',\n 'DiffInline': '\\uF309',\n 'DiffSideBySide': '\\uF30A',\n 'ImageDiff': '\\uF30B',\n 'ImagePixel': '\\uF30C',\n 'FileBug': '\\uF30D',\n 'FileCode': '\\uF30E',\n 'FileComment': '\\uF30F',\n 'BusinessHoursSign': '\\uF310',\n 'FileImage': '\\uF311',\n 'FileSymlink': '\\uF312',\n 'AutoFillTemplate': '\\uF313',\n 'WorkItem': '\\uF314',\n 'WorkItemBug': '\\uF315',\n 'LogRemove': '\\uF316',\n 'ColumnOptions': '\\uF317',\n 'Packages': '\\uF318',\n 'BuildIssue': '\\uF319',\n 'AssessmentGroup': '\\uF31A',\n 'VariableGroup': '\\uF31B',\n 'FullHistory': '\\uF31C',\n 'Wheelchair': '\\uF31F',\n 'SingleColumnEdit': '\\uF321',\n 'DoubleColumnEdit': '\\uF322',\n 'TripleColumnEdit': '\\uF323',\n 'ColumnLeftTwoThirdsEdit': '\\uF324',\n 'ColumnRightTwoThirdsEdit': '\\uF325',\n 'StreamLogo': '\\uF329',\n 'PassiveAuthentication': '\\uF32A',\n 'AlertSolid': '\\uF331',\n 'MegaphoneSolid': '\\uF332',\n 'TaskSolid': '\\uF333',\n 'ConfigurationSolid': '\\uF334',\n 'BugSolid': '\\uF335',\n 'CrownSolid': '\\uF336',\n 'Trophy2Solid': '\\uF337',\n 'QuickNoteSolid': '\\uF338',\n 'ConstructionConeSolid': '\\uF339',\n 'PageListSolid': '\\uF33A',\n 'PageListMirroredSolid': '\\uF33B',\n 'StarburstSolid': '\\uF33C',\n 'ReadingModeSolid': '\\uF33D',\n 'SadSolid': '\\uF33E',\n 'HealthSolid': '\\uF33F',\n 'ShieldSolid': '\\uF340',\n 'GiftBoxSolid': '\\uF341',\n 'ShoppingCartSolid': '\\uF342',\n 'MailSolid': '\\uF343',\n 'ChatSolid': '\\uF344',\n 'RibbonSolid': '\\uF345'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-11.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-12\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-12-7e945a1e.woff') format('woff')\")\n },\n icons: {\n 'FinancialSolid': '\\uF346',\n 'FinancialMirroredSolid': '\\uF347',\n 'HeadsetSolid': '\\uF348',\n 'PermissionsSolid': '\\uF349',\n 'ParkingSolid': '\\uF34A',\n 'ParkingMirroredSolid': '\\uF34B',\n 'DiamondSolid': '\\uF34C',\n 'AsteriskSolid': '\\uF34D',\n 'OfflineStorageSolid': '\\uF34E',\n 'BankSolid': '\\uF34F',\n 'DecisionSolid': '\\uF350',\n 'Parachute': '\\uF351',\n 'ParachuteSolid': '\\uF352',\n 'FiltersSolid': '\\uF353',\n 'ColorSolid': '\\uF354',\n 'ReviewSolid': '\\uF355',\n 'ReviewRequestSolid': '\\uF356',\n 'ReviewRequestMirroredSolid': '\\uF357',\n 'ReviewResponseSolid': '\\uF358',\n 'FeedbackRequestSolid': '\\uF359',\n 'FeedbackRequestMirroredSolid': '\\uF35A',\n 'FeedbackResponseSolid': '\\uF35B',\n 'WorkItemBar': '\\uF35C',\n 'WorkItemBarSolid': '\\uF35D',\n 'Separator': '\\uF35E',\n 'NavigateExternalInline': '\\uF35F',\n 'PlanView': '\\uF360',\n 'TimelineMatrixView': '\\uF361',\n 'EngineeringGroup': '\\uF362',\n 'ProjectCollection': '\\uF363',\n 'CaretBottomRightCenter8': '\\uF364',\n 'CaretBottomLeftCenter8': '\\uF365',\n 'CaretTopRightCenter8': '\\uF366',\n 'CaretTopLeftCenter8': '\\uF367',\n 'DonutChart': '\\uF368',\n 'ChevronUnfold10': '\\uF369',\n 'ChevronFold10': '\\uF36A',\n 'DoubleChevronDown8': '\\uF36B',\n 'DoubleChevronUp8': '\\uF36C',\n 'DoubleChevronLeft8': '\\uF36D',\n 'DoubleChevronRight8': '\\uF36E',\n 'ChevronDownEnd6': '\\uF36F',\n 'ChevronUpEnd6': '\\uF370',\n 'ChevronLeftEnd6': '\\uF371',\n 'ChevronRightEnd6': '\\uF372',\n 'ContextMenu': '\\uF37C',\n 'AzureAPIManagement': '\\uF37F',\n 'AzureServiceEndpoint': '\\uF380',\n 'VSTSLogo': '\\uF381',\n 'VSTSAltLogo1': '\\uF382',\n 'VSTSAltLogo2': '\\uF383',\n 'FileTypeSolution': '\\uF387',\n 'WordLogoInverse16': '\\uF390',\n 'WordLogo16': '\\uF391',\n 'WordLogoFill16': '\\uF392',\n 'PowerPointLogoInverse16': '\\uF393',\n 'PowerPointLogo16': '\\uF394',\n 'PowerPointLogoFill16': '\\uF395',\n 'ExcelLogoInverse16': '\\uF396',\n 'ExcelLogo16': '\\uF397',\n 'ExcelLogoFill16': '\\uF398',\n 'OneNoteLogoInverse16': '\\uF399',\n 'OneNoteLogo16': '\\uF39A',\n 'OneNoteLogoFill16': '\\uF39B',\n 'OutlookLogoInverse16': '\\uF39C',\n 'OutlookLogo16': '\\uF39D',\n 'OutlookLogoFill16': '\\uF39E',\n 'PublisherLogoInverse16': '\\uF39F',\n 'PublisherLogo16': '\\uF3A0',\n 'PublisherLogoFill16': '\\uF3A1',\n 'VisioLogoInverse16': '\\uF3A2',\n 'VisioLogo16': '\\uF3A3',\n 'VisioLogoFill16': '\\uF3A4',\n 'TestBeaker': '\\uF3A5',\n 'TestBeakerSolid': '\\uF3A6',\n 'TestExploreSolid': '\\uF3A7',\n 'TestAutoSolid': '\\uF3A8',\n 'TestUserSolid': '\\uF3A9',\n 'TestImpactSolid': '\\uF3AA',\n 'TestPlan': '\\uF3AB',\n 'TestStep': '\\uF3AC',\n 'TestParameter': '\\uF3AD',\n 'TestSuite': '\\uF3AE',\n 'TestCase': '\\uF3AF',\n 'Sprint': '\\uF3B0',\n 'SignOut': '\\uF3B1',\n 'TriggerApproval': '\\uF3B2',\n 'Rocket': '\\uF3B3',\n 'AzureKeyVault': '\\uF3B4',\n 'Onboarding': '\\uF3BA',\n 'Transition': '\\uF3BC',\n 'LikeSolid': '\\uF3BF',\n 'DislikeSolid': '\\uF3C0',\n 'CRMCustomerInsightsApp': '\\uF3C8',\n 'EditCreate': '\\uF3C9',\n 'PlayReverseResume': '\\uF3E4',\n 'PlayReverse': '\\uF3E5',\n 'SearchData': '\\uF3F1',\n 'UnSetColor': '\\uF3F9',\n 'DeclineCall': '\\uF405'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-12.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-13\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-13-c3989a02.woff') format('woff')\")\n },\n icons: {\n 'RectangularClipping': '\\uF407',\n 'TeamsLogo16': '\\uF40A',\n 'TeamsLogoFill16': '\\uF40B',\n 'Spacer': '\\uF40D',\n 'SkypeLogo16': '\\uF40E',\n 'SkypeForBusinessLogo16': '\\uF40F',\n 'SkypeForBusinessLogoFill16': '\\uF410',\n 'FilterSolid': '\\uF412',\n 'MailUndelivered': '\\uF415',\n 'MailTentative': '\\uF416',\n 'MailTentativeMirrored': '\\uF417',\n 'MailReminder': '\\uF418',\n 'ReceiptUndelivered': '\\uF419',\n 'ReceiptTentative': '\\uF41A',\n 'ReceiptTentativeMirrored': '\\uF41B',\n 'Inbox': '\\uF41C',\n 'IRMReply': '\\uF41D',\n 'IRMReplyMirrored': '\\uF41E',\n 'IRMForward': '\\uF41F',\n 'IRMForwardMirrored': '\\uF420',\n 'VoicemailIRM': '\\uF421',\n 'EventAccepted': '\\uF422',\n 'EventTentative': '\\uF423',\n 'EventTentativeMirrored': '\\uF424',\n 'EventDeclined': '\\uF425',\n 'IDBadge': '\\uF427',\n 'BackgroundColor': '\\uF42B',\n 'OfficeFormsLogoInverse16': '\\uF433',\n 'OfficeFormsLogo': '\\uF434',\n 'OfficeFormsLogoFill': '\\uF435',\n 'OfficeFormsLogo16': '\\uF436',\n 'OfficeFormsLogoFill16': '\\uF437',\n 'OfficeFormsLogoInverse24': '\\uF43A',\n 'OfficeFormsLogo24': '\\uF43B',\n 'OfficeFormsLogoFill24': '\\uF43C',\n 'PageLock': '\\uF43F',\n 'NotExecuted': '\\uF440',\n 'NotImpactedSolid': '\\uF441',\n 'FieldReadOnly': '\\uF442',\n 'FieldRequired': '\\uF443',\n 'BacklogBoard': '\\uF444',\n 'ExternalBuild': '\\uF445',\n 'ExternalTFVC': '\\uF446',\n 'ExternalXAML': '\\uF447',\n 'IssueSolid': '\\uF448',\n 'DefectSolid': '\\uF449',\n 'LadybugSolid': '\\uF44A',\n 'NugetLogo': '\\uF44C',\n 'TFVCLogo': '\\uF44D',\n 'ProjectLogo32': '\\uF47E',\n 'ProjectLogoFill32': '\\uF47F',\n 'ProjectLogo16': '\\uF480',\n 'ProjectLogoFill16': '\\uF481',\n 'SwayLogo32': '\\uF482',\n 'SwayLogoFill32': '\\uF483',\n 'SwayLogo16': '\\uF484',\n 'SwayLogoFill16': '\\uF485',\n 'ClassNotebookLogo32': '\\uF486',\n 'ClassNotebookLogoFill32': '\\uF487',\n 'ClassNotebookLogo16': '\\uF488',\n 'ClassNotebookLogoFill16': '\\uF489',\n 'ClassNotebookLogoInverse32': '\\uF48A',\n 'ClassNotebookLogoInverse16': '\\uF48B',\n 'StaffNotebookLogo32': '\\uF48C',\n 'StaffNotebookLogoFill32': '\\uF48D',\n 'StaffNotebookLogo16': '\\uF48E',\n 'StaffNotebookLogoFill16': '\\uF48F',\n 'StaffNotebookLogoInverted32': '\\uF490',\n 'StaffNotebookLogoInverted16': '\\uF491',\n 'KaizalaLogo': '\\uF492',\n 'TaskLogo': '\\uF493',\n 'ProtectionCenterLogo32': '\\uF494',\n 'GallatinLogo': '\\uF496',\n 'Globe2': '\\uF49A',\n 'Guitar': '\\uF49B',\n 'Breakfast': '\\uF49C',\n 'Brunch': '\\uF49D',\n 'BeerMug': '\\uF49E',\n 'Vacation': '\\uF49F',\n 'Teeth': '\\uF4A0',\n 'Taxi': '\\uF4A1',\n 'Chopsticks': '\\uF4A2',\n 'SyncOccurence': '\\uF4A3',\n 'UnsyncOccurence': '\\uF4A4',\n 'GIF': '\\uF4A9',\n 'PrimaryCalendar': '\\uF4AE',\n 'SearchCalendar': '\\uF4AF',\n 'VideoOff': '\\uF4B0',\n 'MicrosoftFlowLogo': '\\uF4B1',\n 'BusinessCenterLogo': '\\uF4B2',\n 'ToDoLogoBottom': '\\uF4B3',\n 'ToDoLogoTop': '\\uF4B4',\n 'EditSolid12': '\\uF4B5',\n 'EditSolidMirrored12': '\\uF4B6',\n 'UneditableSolid12': '\\uF4B7',\n 'UneditableSolidMirrored12': '\\uF4B8',\n 'UneditableMirrored': '\\uF4B9',\n 'AdminALogo32': '\\uF4BA',\n 'AdminALogoFill32': '\\uF4BB',\n 'ToDoLogoInverse': '\\uF4BC'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-13.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-14\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-14-5cf58db8.woff') format('woff')\")\n },\n icons: {\n 'Snooze': '\\uF4BD',\n 'WaffleOffice365': '\\uF4E0',\n 'ImageSearch': '\\uF4E8',\n 'NewsSearch': '\\uF4E9',\n 'VideoSearch': '\\uF4EA',\n 'R': '\\uF4EB',\n 'FontColorA': '\\uF4EC',\n 'FontColorSwatch': '\\uF4ED',\n 'LightWeight': '\\uF4EE',\n 'NormalWeight': '\\uF4EF',\n 'SemiboldWeight': '\\uF4F0',\n 'GroupObject': '\\uF4F1',\n 'UngroupObject': '\\uF4F2',\n 'AlignHorizontalLeft': '\\uF4F3',\n 'AlignHorizontalCenter': '\\uF4F4',\n 'AlignHorizontalRight': '\\uF4F5',\n 'AlignVerticalTop': '\\uF4F6',\n 'AlignVerticalCenter': '\\uF4F7',\n 'AlignVerticalBottom': '\\uF4F8',\n 'HorizontalDistributeCenter': '\\uF4F9',\n 'VerticalDistributeCenter': '\\uF4FA',\n 'Ellipse': '\\uF4FB',\n 'Line': '\\uF4FC',\n 'Octagon': '\\uF4FD',\n 'Hexagon': '\\uF4FE',\n 'Pentagon': '\\uF4FF',\n 'RightTriangle': '\\uF500',\n 'HalfCircle': '\\uF501',\n 'QuarterCircle': '\\uF502',\n 'ThreeQuarterCircle': '\\uF503',\n '6PointStar': '\\uF504',\n '12PointStar': '\\uF505',\n 'ArrangeBringToFront': '\\uF506',\n 'ArrangeSendToBack': '\\uF507',\n 'ArrangeSendBackward': '\\uF508',\n 'ArrangeBringForward': '\\uF509',\n 'BorderDash': '\\uF50A',\n 'BorderDot': '\\uF50B',\n 'LineStyle': '\\uF50C',\n 'LineThickness': '\\uF50D',\n 'WindowEdit': '\\uF50E',\n 'HintText': '\\uF50F',\n 'MediaAdd': '\\uF510',\n 'AnchorLock': '\\uF511',\n 'AutoHeight': '\\uF512',\n 'ChartSeries': '\\uF513',\n 'ChartXAngle': '\\uF514',\n 'ChartYAngle': '\\uF515',\n 'Combobox': '\\uF516',\n 'LineSpacing': '\\uF517',\n 'Padding': '\\uF518',\n 'PaddingTop': '\\uF519',\n 'PaddingBottom': '\\uF51A',\n 'PaddingLeft': '\\uF51B',\n 'PaddingRight': '\\uF51C',\n 'NavigationFlipper': '\\uF51D',\n 'AlignJustify': '\\uF51E',\n 'TextOverflow': '\\uF51F',\n 'VisualsFolder': '\\uF520',\n 'VisualsStore': '\\uF521',\n 'PictureCenter': '\\uF522',\n 'PictureFill': '\\uF523',\n 'PicturePosition': '\\uF524',\n 'PictureStretch': '\\uF525',\n 'PictureTile': '\\uF526',\n 'Slider': '\\uF527',\n 'SliderHandleSize': '\\uF528',\n 'DefaultRatio': '\\uF529',\n 'NumberSequence': '\\uF52A',\n 'GUID': '\\uF52B',\n 'ReportAdd': '\\uF52C',\n 'DashboardAdd': '\\uF52D',\n 'MapPinSolid': '\\uF52E',\n 'WebPublish': '\\uF52F',\n 'PieSingleSolid': '\\uF530',\n 'BlockedSolid': '\\uF531',\n 'DrillDown': '\\uF532',\n 'DrillDownSolid': '\\uF533',\n 'DrillExpand': '\\uF534',\n 'DrillShow': '\\uF535',\n 'SpecialEvent': '\\uF536',\n 'OneDriveFolder16': '\\uF53B',\n 'FunctionalManagerDashboard': '\\uF542',\n 'BIDashboard': '\\uF543',\n 'CodeEdit': '\\uF544',\n 'RenewalCurrent': '\\uF545',\n 'RenewalFuture': '\\uF546',\n 'SplitObject': '\\uF547',\n 'BulkUpload': '\\uF548',\n 'DownloadDocument': '\\uF549',\n 'GreetingCard': '\\uF54B',\n 'Flower': '\\uF54E',\n 'WaitlistConfirm': '\\uF550',\n 'WaitlistConfirmMirrored': '\\uF551',\n 'LaptopSecure': '\\uF552',\n 'DragObject': '\\uF553',\n 'EntryView': '\\uF554',\n 'EntryDecline': '\\uF555',\n 'ContactCardSettings': '\\uF556',\n 'ContactCardSettingsMirrored': '\\uF557'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-14.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-15\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-15-3807251b.woff') format('woff')\")\n },\n icons: {\n 'CalendarSettings': '\\uF558',\n 'CalendarSettingsMirrored': '\\uF559',\n 'HardDriveLock': '\\uF55A',\n 'HardDriveUnlock': '\\uF55B',\n 'AccountManagement': '\\uF55C',\n 'ReportWarning': '\\uF569',\n 'TransitionPop': '\\uF5B2',\n 'TransitionPush': '\\uF5B3',\n 'TransitionEffect': '\\uF5B4',\n 'LookupEntities': '\\uF5B5',\n 'ExploreData': '\\uF5B6',\n 'AddBookmark': '\\uF5B7',\n 'SearchBookmark': '\\uF5B8',\n 'DrillThrough': '\\uF5B9',\n 'MasterDatabase': '\\uF5BA',\n 'CertifiedDatabase': '\\uF5BB',\n 'MaximumValue': '\\uF5BC',\n 'MinimumValue': '\\uF5BD',\n 'VisualStudioIDELogo32': '\\uF5D0',\n 'PasteAsText': '\\uF5D5',\n 'PasteAsCode': '\\uF5D6',\n 'BrowserTab': '\\uF5D7',\n 'BrowserTabScreenshot': '\\uF5D8',\n 'DesktopScreenshot': '\\uF5D9',\n 'FileYML': '\\uF5DA',\n 'ClipboardSolid': '\\uF5DC',\n 'FabricUserFolder': '\\uF5E5',\n 'FabricNetworkFolder': '\\uF5E6',\n 'BullseyeTarget': '\\uF5F0',\n 'AnalyticsView': '\\uF5F1',\n 'Video360Generic': '\\uF609',\n 'Untag': '\\uF60B',\n 'Leave': '\\uF627',\n 'Trending12': '\\uF62D',\n 'Blocked12': '\\uF62E',\n 'Warning12': '\\uF62F',\n 'CheckedOutByOther12': '\\uF630',\n 'CheckedOutByYou12': '\\uF631',\n 'CircleShapeSolid': '\\uF63C',\n 'SquareShapeSolid': '\\uF63D',\n 'TriangleShapeSolid': '\\uF63E',\n 'DropShapeSolid': '\\uF63F',\n 'RectangleShapeSolid': '\\uF640',\n 'ZoomToFit': '\\uF649',\n 'InsertColumnsLeft': '\\uF64A',\n 'InsertColumnsRight': '\\uF64B',\n 'InsertRowsAbove': '\\uF64C',\n 'InsertRowsBelow': '\\uF64D',\n 'DeleteColumns': '\\uF64E',\n 'DeleteRows': '\\uF64F',\n 'DeleteRowsMirrored': '\\uF650',\n 'DeleteTable': '\\uF651',\n 'AccountBrowser': '\\uF652',\n 'VersionControlPush': '\\uF664',\n 'StackedColumnChart2': '\\uF666',\n 'TripleColumnWide': '\\uF66E',\n 'QuadColumn': '\\uF66F',\n 'WhiteBoardApp16': '\\uF673',\n 'WhiteBoardApp32': '\\uF674',\n 'PinnedSolid': '\\uF676',\n 'InsertSignatureLine': '\\uF677',\n 'ArrangeByFrom': '\\uF678',\n 'Phishing': '\\uF679',\n 'CreateMailRule': '\\uF67A',\n 'PublishCourse': '\\uF699',\n 'DictionaryRemove': '\\uF69A',\n 'UserRemove': '\\uF69B',\n 'UserEvent': '\\uF69C',\n 'Encryption': '\\uF69D',\n 'PasswordField': '\\uF6AA',\n 'OpenInNewTab': '\\uF6AB',\n 'Hide3': '\\uF6AC',\n 'VerifiedBrandSolid': '\\uF6AD',\n 'MarkAsProtected': '\\uF6AE',\n 'AuthenticatorApp': '\\uF6B1',\n 'WebTemplate': '\\uF6B2',\n 'DefenderTVM': '\\uF6B3',\n 'MedalSolid': '\\uF6B9',\n 'D365TalentLearn': '\\uF6BB',\n 'D365TalentInsight': '\\uF6BC',\n 'D365TalentHRCore': '\\uF6BD',\n 'BacklogList': '\\uF6BF',\n 'ButtonControl': '\\uF6C0',\n 'TableGroup': '\\uF6D9',\n 'MountainClimbing': '\\uF6DB',\n 'TagUnknown': '\\uF6DF',\n 'TagUnknownMirror': '\\uF6E0',\n 'TagUnknown12': '\\uF6E1',\n 'TagUnknown12Mirror': '\\uF6E2',\n 'Link12': '\\uF6E3',\n 'Presentation': '\\uF6E4',\n 'Presentation12': '\\uF6E5',\n 'Lock12': '\\uF6E6',\n 'BuildDefinition': '\\uF6E9',\n 'ReleaseDefinition': '\\uF6EA',\n 'SaveTemplate': '\\uF6EC',\n 'UserGauge': '\\uF6ED',\n 'BlockedSiteSolid12': '\\uF70A',\n 'TagSolid': '\\uF70E',\n 'OfficeChat': '\\uF70F'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-15.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-16\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-16-9cf93f3b.woff') format('woff')\")\n },\n icons: {\n 'OfficeChatSolid': '\\uF710',\n 'MailSchedule': '\\uF72E',\n 'WarningSolid': '\\uF736',\n 'Blocked2Solid': '\\uF737',\n 'SkypeCircleArrow': '\\uF747',\n 'SkypeArrow': '\\uF748',\n 'SyncStatus': '\\uF751',\n 'SyncStatusSolid': '\\uF752',\n 'ProjectDocument': '\\uF759',\n 'ToDoLogoOutline': '\\uF75B',\n 'VisioOnlineLogoFill32': '\\uF75F',\n 'VisioOnlineLogo32': '\\uF760',\n 'VisioOnlineLogoCloud32': '\\uF761',\n 'VisioDiagramSync': '\\uF762',\n 'Event12': '\\uF763',\n 'EventDateMissed12': '\\uF764',\n 'UserOptional': '\\uF767',\n 'ResponsesMenu': '\\uF768',\n 'DoubleDownArrow': '\\uF769',\n 'DistributeDown': '\\uF76A',\n 'BookmarkReport': '\\uF76B',\n 'FilterSettings': '\\uF76C',\n 'GripperDotsVertical': '\\uF772',\n 'MailAttached': '\\uF774',\n 'AddIn': '\\uF775',\n 'LinkedDatabase': '\\uF779',\n 'TableLink': '\\uF77A',\n 'PromotedDatabase': '\\uF77D',\n 'BarChartVerticalFilter': '\\uF77E',\n 'BarChartVerticalFilterSolid': '\\uF77F',\n 'MicOff2': '\\uF781',\n 'MicrosoftTranslatorLogo': '\\uF782',\n 'ShowTimeAs': '\\uF787',\n 'FileRequest': '\\uF789',\n 'WorkItemAlert': '\\uF78F',\n 'PowerBILogo16': '\\uF790',\n 'PowerBILogoBackplate16': '\\uF791',\n 'BulletedListText': '\\uF792',\n 'BulletedListBullet': '\\uF793',\n 'BulletedListTextMirrored': '\\uF794',\n 'BulletedListBulletMirrored': '\\uF795',\n 'NumberedListText': '\\uF796',\n 'NumberedListNumber': '\\uF797',\n 'NumberedListTextMirrored': '\\uF798',\n 'NumberedListNumberMirrored': '\\uF799',\n 'RemoveLinkChain': '\\uF79A',\n 'RemoveLinkX': '\\uF79B',\n 'FabricTextHighlight': '\\uF79C',\n 'ClearFormattingA': '\\uF79D',\n 'ClearFormattingEraser': '\\uF79E',\n 'Photo2Fill': '\\uF79F',\n 'IncreaseIndentText': '\\uF7A0',\n 'IncreaseIndentArrow': '\\uF7A1',\n 'DecreaseIndentText': '\\uF7A2',\n 'DecreaseIndentArrow': '\\uF7A3',\n 'IncreaseIndentTextMirrored': '\\uF7A4',\n 'IncreaseIndentArrowMirrored': '\\uF7A5',\n 'DecreaseIndentTextMirrored': '\\uF7A6',\n 'DecreaseIndentArrowMirrored': '\\uF7A7',\n 'CheckListText': '\\uF7A8',\n 'CheckListCheck': '\\uF7A9',\n 'CheckListTextMirrored': '\\uF7AA',\n 'CheckListCheckMirrored': '\\uF7AB',\n 'NumberSymbol': '\\uF7AC',\n 'Coupon': '\\uF7BC',\n 'VerifiedBrand': '\\uF7BD',\n 'ReleaseGate': '\\uF7BE',\n 'ReleaseGateCheck': '\\uF7BF',\n 'ReleaseGateError': '\\uF7C0',\n 'M365InvoicingLogo': '\\uF7C1',\n 'RemoveFromShoppingList': '\\uF7D5',\n 'ShieldAlert': '\\uF7D7',\n 'FabricTextHighlightComposite': '\\uF7DA',\n 'Dataflows': '\\uF7DD',\n 'GenericScanFilled': '\\uF7DE',\n 'DiagnosticDataBarTooltip': '\\uF7DF',\n 'SaveToMobile': '\\uF7E0',\n 'Orientation2': '\\uF7E1',\n 'ScreenCast': '\\uF7E2',\n 'ShowGrid': '\\uF7E3',\n 'SnapToGrid': '\\uF7E4',\n 'ContactList': '\\uF7E5',\n 'NewMail': '\\uF7EA',\n 'EyeShadow': '\\uF7EB',\n 'FabricFolderConfirm': '\\uF7FF',\n 'InformationBarriers': '\\uF803',\n 'CommentActive': '\\uF804',\n 'ColumnVerticalSectionEdit': '\\uF806',\n 'WavingHand': '\\uF807',\n 'ShakeDevice': '\\uF80A',\n 'SmartGlassRemote': '\\uF80B',\n 'Rotate90Clockwise': '\\uF80D',\n 'Rotate90CounterClockwise': '\\uF80E',\n 'CampaignTemplate': '\\uF811',\n 'ChartTemplate': '\\uF812',\n 'PageListFilter': '\\uF813',\n 'SecondaryNav': '\\uF814',\n 'ColumnVerticalSection': '\\uF81E',\n 'SkypeCircleSlash': '\\uF825',\n 'SkypeSlash': '\\uF826'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-16.js.map","// Your use of the content in the files referenced here is subject to the terms of the license at https://aka.ms/fluentui-assets-license\nimport { registerIcons } from '@fluentui/style-utilities';\nexport function initializeIcons(baseUrl, options) {\n if (baseUrl === void 0) { baseUrl = ''; }\n var subset = {\n style: {\n MozOsxFontSmoothing: 'grayscale',\n WebkitFontSmoothing: 'antialiased',\n fontStyle: 'normal',\n fontWeight: 'normal',\n speak: 'none'\n },\n fontFace: {\n fontFamily: \"\\\"FabricMDL2Icons-17\\\"\",\n src: \"url('\".concat(baseUrl, \"fabric-icons-17-0c4ed701.woff') format('woff')\")\n },\n icons: {\n 'CustomizeToolbar': '\\uF828',\n 'DuplicateRow': '\\uF82A',\n 'RemoveFromTrash': '\\uF82B',\n 'MailOptions': '\\uF82C',\n 'Childof': '\\uF82D',\n 'Footer': '\\uF82E',\n 'Header': '\\uF82F',\n 'BarChartVerticalFill': '\\uF830',\n 'StackedColumnChart2Fill': '\\uF831',\n 'PlainText': '\\uF834',\n 'AccessibiltyChecker': '\\uF835',\n 'DatabaseSync': '\\uF842',\n 'ReservationOrders': '\\uF845',\n 'TabOneColumn': '\\uF849',\n 'TabTwoColumn': '\\uF84A',\n 'TabThreeColumn': '\\uF84B',\n 'BulletedTreeList': '\\uF84C',\n 'MicrosoftTranslatorLogoGreen': '\\uF852',\n 'MicrosoftTranslatorLogoBlue': '\\uF853',\n 'InternalInvestigation': '\\uF854',\n 'AddReaction': '\\uF85D',\n 'ContactHeart': '\\uF862',\n 'VisuallyImpaired': '\\uF866',\n 'EventToDoLogo': '\\uF869',\n 'Variable2': '\\uF86D',\n 'ModelingView': '\\uF871',\n 'DisconnectVirtualMachine': '\\uF873',\n 'ReportLock': '\\uF875',\n 'Uneditable2': '\\uF876',\n 'Uneditable2Mirrored': '\\uF877',\n 'BarChartVerticalEdit': '\\uF89D',\n 'GlobalNavButtonActive': '\\uF89F',\n 'PollResults': '\\uF8A0',\n 'Rerun': '\\uF8A1',\n 'QandA': '\\uF8A2',\n 'QandAMirror': '\\uF8A3',\n 'BookAnswers': '\\uF8A4',\n 'AlertSettings': '\\uF8B6',\n 'TrimStart': '\\uF8BB',\n 'TrimEnd': '\\uF8BC',\n 'TableComputed': '\\uF8F5',\n 'DecreaseIndentLegacy': '\\uE290',\n 'IncreaseIndentLegacy': '\\uE291',\n 'SizeLegacy': '\\uE2B2'\n }\n };\n registerIcons(subset, options);\n}\n//# sourceMappingURL=fabric-icons-17.js.map","import { registerIconAlias } from '@fluentui/style-utilities';\nexport var registerIconAliases = function () {\n registerIconAlias('trash', 'delete');\n registerIconAlias('onedrive', 'onedrivelogo');\n registerIconAlias('alertsolid12', 'eventdatemissed12');\n registerIconAlias('sixpointstar', '6pointstar');\n registerIconAlias('twelvepointstar', '12pointstar');\n registerIconAlias('toggleon', 'toggleleft');\n registerIconAlias('toggleoff', 'toggleright');\n};\nexport default registerIconAliases;\n//# sourceMappingURL=iconAliases.js.map","// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/font-icons-mdl2', '8.5.55');\n//# sourceMappingURL=version.js.map","import { initializeIcons as i } from './fabric-icons';\nimport { initializeIcons as i0 } from './fabric-icons-0';\nimport { initializeIcons as i1 } from './fabric-icons-1';\nimport { initializeIcons as i2 } from './fabric-icons-2';\nimport { initializeIcons as i3 } from './fabric-icons-3';\nimport { initializeIcons as i4 } from './fabric-icons-4';\nimport { initializeIcons as i5 } from './fabric-icons-5';\nimport { initializeIcons as i6 } from './fabric-icons-6';\nimport { initializeIcons as i7 } from './fabric-icons-7';\nimport { initializeIcons as i8 } from './fabric-icons-8';\nimport { initializeIcons as i9 } from './fabric-icons-9';\nimport { initializeIcons as i10 } from './fabric-icons-10';\nimport { initializeIcons as i11 } from './fabric-icons-11';\nimport { initializeIcons as i12 } from './fabric-icons-12';\nimport { initializeIcons as i13 } from './fabric-icons-13';\nimport { initializeIcons as i14 } from './fabric-icons-14';\nimport { initializeIcons as i15 } from './fabric-icons-15';\nimport { initializeIcons as i16 } from './fabric-icons-16';\nimport { initializeIcons as i17 } from './fabric-icons-17';\nimport { FLUENT_CDN_BASE_URL } from '@fluentui/style-utilities';\nimport { registerIconAliases } from './iconAliases';\nimport { getWindow } from '@fluentui/utilities';\nvar DEFAULT_BASE_URL = \"\".concat(FLUENT_CDN_BASE_URL, \"/assets/icons/\");\nvar win = getWindow();\nexport function initializeIcons(baseUrl, options) {\n var _a, _b;\n if (baseUrl === void 0) { baseUrl = ((_a = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _a === void 0 ? void 0 : _a.iconBaseUrl) || ((_b = win === null || win === void 0 ? void 0 : win.FabricConfig) === null || _b === void 0 ? void 0 : _b.fontBaseUrl) || DEFAULT_BASE_URL; }\n [i, i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17].forEach(function (initialize) { return initialize(baseUrl, options); });\n registerIconAliases();\n}\n/* eslint-enable deprecation/deprecation */\nimport './version';\n//# sourceMappingURL=index.js.map","/**\n * {@docCategory MessageBar}\n */\nexport var MessageBarType;\n(function (MessageBarType) {\n /** Info styled MessageBar */\n MessageBarType[MessageBarType[\"info\"] = 0] = \"info\";\n /** Error styled MessageBar */\n MessageBarType[MessageBarType[\"error\"] = 1] = \"error\";\n /** Blocked styled MessageBar */\n MessageBarType[MessageBarType[\"blocked\"] = 2] = \"blocked\";\n /** SevereWarning styled MessageBar */\n MessageBarType[MessageBarType[\"severeWarning\"] = 3] = \"severeWarning\";\n /** Success styled MessageBar */\n MessageBarType[MessageBarType[\"success\"] = 4] = \"success\";\n /** Warning styled MessageBar */\n MessageBarType[MessageBarType[\"warning\"] = 5] = \"warning\";\n})(MessageBarType || (MessageBarType = {}));\n//# sourceMappingURL=MessageBar.types.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { DelayedRender, classNamesFunction, getNativeProps, htmlElementProperties, css } from '../../Utilities';\nimport { IconButton } from '../../Button';\nimport { Icon } from '../../Icon';\nimport { MessageBarType } from './MessageBar.types';\nimport { useId, useBoolean } from '@fluentui/react-hooks';\nvar ICON_MAP = (_a = {},\n _a[MessageBarType.info] = 'Info',\n _a[MessageBarType.warning] = 'Info',\n _a[MessageBarType.error] = 'ErrorBadge',\n _a[MessageBarType.blocked] = 'Blocked2',\n _a[MessageBarType.severeWarning] = 'Warning',\n _a[MessageBarType.success] = 'Completed',\n _a);\nvar COMPONENT_NAME = 'MessageBar';\nvar getClassNames = classNamesFunction();\nvar getAnnouncementPriority = function (messageBarType) {\n switch (messageBarType) {\n case MessageBarType.blocked:\n case MessageBarType.error:\n case MessageBarType.severeWarning:\n return 'assertive';\n }\n return 'polite';\n};\nvar getRole = function (messageBarType) {\n switch (messageBarType) {\n case MessageBarType.blocked:\n case MessageBarType.error:\n case MessageBarType.severeWarning:\n return 'alert';\n }\n return 'status';\n};\nexport var MessageBarBase = React.forwardRef(function (props, ref) {\n var _a = useBoolean(false), expandSingleLine = _a[0], toggleExpandSingleLine = _a[1].toggle;\n var labelId = useId('MessageBar');\n var actions = props.actions, className = props.className, children = props.children, \n // eslint-disable-next-line deprecation/deprecation\n overflowButtonAriaLabel = props.overflowButtonAriaLabel, dismissIconProps = props.dismissIconProps, styles = props.styles, theme = props.theme, _b = props.messageBarType, messageBarType = _b === void 0 ? MessageBarType.info : _b, _c = props.onDismiss, onDismiss = _c === void 0 ? undefined : _c, _d = props.isMultiline, isMultiline = _d === void 0 ? true : _d, truncated = props.truncated, dismissButtonAriaLabel = props.dismissButtonAriaLabel, messageBarIconProps = props.messageBarIconProps, role = props.role, _e = props.delayedRender, delayedRender = _e === void 0 ? true : _e, expandButtonProps = props.expandButtonProps, _f = props.onExpandButtonToggled, onExpandButtonToggled = _f === void 0 ? undefined : _f, showExpandButton = props.showExpandButton;\n // Wrap 'toggleExpandSingleLine' to execute the 'onExpandButtonToggled' callback whenever the expand button toggles\n var handleToggleExpandSingleLine = React.useCallback(function () {\n toggleExpandSingleLine();\n if (onExpandButtonToggled) {\n // We use the opposite of 'expandSingleLine' here because at this point the useBoolean's\n // useState hasn't been updated yet.\n onExpandButtonToggled(!expandSingleLine);\n }\n }, [expandSingleLine, onExpandButtonToggled, toggleExpandSingleLine]);\n var nativeProps = getNativeProps(props, htmlElementProperties, [\n 'className',\n 'role',\n ]);\n var classNames = getClassNames(styles, {\n theme: theme,\n messageBarType: messageBarType || MessageBarType.info,\n onDismiss: onDismiss !== undefined,\n actions: actions !== undefined,\n truncated: truncated,\n isMultiline: isMultiline,\n expandSingleLine: expandSingleLine,\n className: className,\n });\n var expandIconProps = { iconName: expandSingleLine ? 'DoubleChevronUp' : 'DoubleChevronDown' };\n var regionProps = actions || onDismiss ? { 'aria-describedby': labelId, role: 'region' } : {};\n var actionsDiv = actions ? React.createElement(\"div\", { className: classNames.actions }, actions) : null;\n var dismissButton = onDismiss ? (React.createElement(IconButton, { disabled: false, className: classNames.dismissal, onClick: onDismiss, iconProps: dismissIconProps ? dismissIconProps : { iconName: 'Clear' }, title: dismissButtonAriaLabel, ariaLabel: dismissButtonAriaLabel })) : null;\n return (React.createElement(\"div\", __assign({ ref: ref, className: classNames.root }, regionProps),\n React.createElement(\"div\", { className: classNames.content },\n React.createElement(\"div\", { className: classNames.iconContainer, \"aria-hidden\": true }, messageBarIconProps ? (React.createElement(Icon, __assign({}, messageBarIconProps, { className: css(classNames.icon, messageBarIconProps.className) }))) : (React.createElement(Icon, { iconName: ICON_MAP[messageBarType], className: classNames.icon }))),\n React.createElement(\"div\", { className: classNames.text, id: labelId, role: role || getRole(messageBarType), \"aria-live\": getAnnouncementPriority(messageBarType) },\n React.createElement(\"span\", __assign({ className: classNames.innerText }, nativeProps), delayedRender ? (React.createElement(DelayedRender, null,\n React.createElement(\"span\", null, children))) : (\n // this span is probably not necessary, but preserving it for now in case anyone\n // has styling that expects it to be present\n React.createElement(\"span\", null, children)))),\n /* singleline expand/collapse button */ (showExpandButton || (!isMultiline && !actionsDiv && truncated)) && (React.createElement(\"div\", { className: classNames.expandSingleLine },\n React.createElement(IconButton, __assign({ disabled: false, className: classNames.expand, onClick: handleToggleExpandSingleLine, iconProps: expandIconProps, ariaLabel: overflowButtonAriaLabel, \"aria-expanded\": expandSingleLine }, expandButtonProps)))),\n !isMultiline && actionsDiv,\n /* singleline dismiss */ !isMultiline && dismissButton && (React.createElement(\"div\", { className: classNames.dismissSingleLine }, dismissButton)),\n isMultiline && dismissButton),\n isMultiline && actionsDiv));\n});\nMessageBarBase.displayName = COMPONENT_NAME;\n//# sourceMappingURL=MessageBar.base.js.map","var _a, _b, _c, _d;\nimport { __assign } from \"tslib\";\nimport { HighContrastSelector, HighContrastSelectorWhite, ScreenWidthMaxSmall, getScreenSelector, getGlobalClassNames, getFocusStyle, IconFontSizes, getHighContrastNoAdjustStyle, } from '../../Styling';\nimport { MessageBarType } from './MessageBar.types';\nvar GlobalClassNames = {\n root: 'ms-MessageBar',\n error: 'ms-MessageBar--error',\n blocked: 'ms-MessageBar--blocked',\n severeWarning: 'ms-MessageBar--severeWarning',\n success: 'ms-MessageBar--success',\n warning: 'ms-MessageBar--warning',\n multiline: 'ms-MessageBar-multiline',\n singleline: 'ms-MessageBar-singleline',\n dismissalSingleLine: 'ms-MessageBar-dismissalSingleLine',\n expandingSingleLine: 'ms-MessageBar-expandingSingleLine',\n content: 'ms-MessageBar-content',\n iconContainer: 'ms-MessageBar-icon',\n text: 'ms-MessageBar-text',\n innerText: 'ms-MessageBar-innerText',\n dismissSingleLine: 'ms-MessageBar-dismissSingleLine',\n expandSingleLine: 'ms-MessageBar-expandSingleLine',\n dismissal: 'ms-MessageBar-dismissal',\n expand: 'ms-MessageBar-expand',\n actions: 'ms-MessageBar-actions',\n actionsSingleline: 'ms-MessageBar-actionsSingleLine',\n};\nvar backgroundColor = (_a = {},\n _a[MessageBarType.error] = 'errorBackground',\n _a[MessageBarType.blocked] = 'errorBackground',\n _a[MessageBarType.success] = 'successBackground',\n _a[MessageBarType.warning] = 'warningBackground',\n _a[MessageBarType.severeWarning] = 'severeWarningBackground',\n _a[MessageBarType.info] = 'infoBackground',\n _a);\nvar iconColor = (_b = {},\n _b[MessageBarType.error] = 'errorIcon',\n _b[MessageBarType.blocked] = 'errorIcon',\n _b[MessageBarType.success] = 'successIcon',\n _b[MessageBarType.warning] = 'warningIcon',\n _b[MessageBarType.severeWarning] = 'severeWarningIcon',\n _b[MessageBarType.info] = 'infoIcon',\n _b);\nvar highContrastBorderColor = (_c = {},\n _c[MessageBarType.error] = '#ff0000',\n _c[MessageBarType.blocked] = '#ff0000',\n _c[MessageBarType.success] = '#bad80a',\n _c[MessageBarType.warning] = '#fff100',\n _c[MessageBarType.severeWarning] = '#ff0000',\n _c[MessageBarType.info] = 'WindowText',\n _c);\nvar highContrastWhiteBorderColor = (_d = {},\n _d[MessageBarType.error] = '#e81123',\n _d[MessageBarType.blocked] = '#e81123',\n _d[MessageBarType.success] = '#107c10',\n _d[MessageBarType.warning] = '#966400',\n _d[MessageBarType.severeWarning] = '#d83b01',\n _d[MessageBarType.info] = 'WindowText',\n _d);\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n var theme = props.theme, className = props.className, onDismiss = props.onDismiss, truncated = props.truncated, isMultiline = props.isMultiline, expandSingleLine = props.expandSingleLine, _m = props.messageBarType, messageBarType = _m === void 0 ? MessageBarType.info : _m;\n var semanticColors = theme.semanticColors, fonts = theme.fonts;\n var SmallScreenSelector = getScreenSelector(0, ScreenWidthMaxSmall);\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var dismissalAndExpandIconStyle = {\n fontSize: IconFontSizes.xSmall,\n height: 10,\n lineHeight: '10px',\n color: semanticColors.messageText,\n selectors: (_a = {},\n _a[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),\n _a),\n };\n var dismissalAndExpandStyle = [\n getFocusStyle(theme, {\n inset: 1,\n highContrastStyle: {\n outlineOffset: '-6px',\n outline: '1px solid Highlight',\n },\n borderColor: 'transparent',\n }),\n {\n flexShrink: 0,\n width: 32,\n height: 32,\n padding: '8px 12px',\n selectors: {\n '& .ms-Button-icon': dismissalAndExpandIconStyle,\n ':hover': {\n backgroundColor: 'transparent',\n },\n ':active': {\n backgroundColor: 'transparent',\n },\n },\n },\n ];\n return {\n root: [\n classNames.root,\n fonts.medium,\n messageBarType === MessageBarType.error && classNames.error,\n messageBarType === MessageBarType.blocked && classNames.blocked,\n messageBarType === MessageBarType.severeWarning && classNames.severeWarning,\n messageBarType === MessageBarType.success && classNames.success,\n messageBarType === MessageBarType.warning && classNames.warning,\n isMultiline ? classNames.multiline : classNames.singleline,\n !isMultiline && onDismiss && classNames.dismissalSingleLine,\n !isMultiline && truncated && classNames.expandingSingleLine,\n {\n background: semanticColors[backgroundColor[messageBarType]],\n boxSizing: 'border-box',\n color: semanticColors.messageText,\n minHeight: 32,\n width: '100%',\n display: 'flex',\n wordBreak: 'break-word',\n selectors: (_b = {\n '.ms-Link': {\n color: semanticColors.messageLink,\n selectors: {\n ':hover': {\n color: semanticColors.messageLinkHovered,\n },\n },\n }\n },\n _b[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { background: 'transparent', border: \"1px solid \".concat(highContrastBorderColor[messageBarType]), color: 'WindowText' }),\n _b[HighContrastSelectorWhite] = {\n border: \"1px solid \".concat(highContrastWhiteBorderColor[messageBarType]),\n },\n _b),\n },\n isMultiline && {\n flexDirection: 'column',\n },\n className,\n ],\n content: [\n classNames.content,\n (_c = {\n display: 'flex',\n width: '100%',\n lineHeight: 'normal'\n },\n _c[SmallScreenSelector] = {\n display: 'grid',\n gridTemplateColumns: 'auto 1fr auto',\n gridTemplateRows: '1fr auto',\n gridTemplateAreas: \"\\n \\\"icon text close\\\"\\n \\\"action action action\\\"\\n \",\n },\n _c),\n ],\n iconContainer: [\n classNames.iconContainer,\n (_d = {\n fontSize: IconFontSizes.medium,\n minWidth: 16,\n minHeight: 16,\n display: 'flex',\n flexShrink: 0,\n margin: '8px 0 8px 12px'\n },\n _d[SmallScreenSelector] = {\n gridArea: 'icon',\n },\n _d),\n ],\n icon: {\n color: semanticColors[iconColor[messageBarType]],\n selectors: (_e = {},\n _e[HighContrastSelector] = __assign(__assign({}, getHighContrastNoAdjustStyle()), { color: 'WindowText' }),\n _e),\n },\n text: [\n classNames.text,\n __assign(__assign({ minWidth: 0, display: 'flex', flexGrow: 1, margin: 8 }, fonts.small), (_f = {}, _f[SmallScreenSelector] = {\n gridArea: 'text',\n }, _f.selectors = (_g = {},\n _g[HighContrastSelector] = __assign({}, getHighContrastNoAdjustStyle()),\n _g), _f)),\n !onDismiss && {\n marginRight: 12,\n },\n ],\n innerText: [\n classNames.innerText,\n {\n lineHeight: 16,\n selectors: {\n '& span a:last-child': {\n paddingLeft: 4,\n },\n },\n },\n truncated && {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n !isMultiline && {\n // In high contrast this causes the top and bottom of links' focus outline to be clipped\n // (not sure of a good way around that while still maintaining text clipping)\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n !isMultiline &&\n !truncated && {\n selectors: (_h = {},\n _h[SmallScreenSelector] = {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n _h),\n },\n expandSingleLine && {\n overflow: 'visible',\n whiteSpace: 'pre-wrap',\n },\n ],\n dismissSingleLine: [\n classNames.dismissSingleLine,\n (_j = {},\n _j[SmallScreenSelector] = {\n gridArea: 'close',\n },\n _j),\n ],\n expandSingleLine: classNames.expandSingleLine,\n dismissal: [classNames.dismissal, dismissalAndExpandStyle],\n expand: [classNames.expand, dismissalAndExpandStyle],\n actions: [\n isMultiline ? classNames.actions : classNames.actionsSingleline,\n (_k = {\n display: 'flex',\n flexGrow: 0,\n flexShrink: 0,\n flexBasis: 'auto',\n flexDirection: 'row-reverse',\n alignItems: 'center',\n margin: '0 12px 0 8px',\n // reset forced colors to browser control for inner actions\n forcedColorAdjust: 'auto',\n MsHighContrastAdjust: 'auto'\n },\n _k[SmallScreenSelector] = {\n gridArea: 'action',\n marginRight: 8,\n marginBottom: 8,\n },\n _k.selectors = {\n '& button:nth-child(n+2)': (_l = {\n marginLeft: 8\n },\n _l[SmallScreenSelector] = {\n marginBottom: 0,\n },\n _l),\n },\n _k),\n isMultiline && {\n marginBottom: 8,\n },\n onDismiss &&\n !isMultiline && {\n marginRight: 0,\n },\n ],\n };\n};\n//# sourceMappingURL=MessageBar.styles.js.map","import { styled } from '../../Utilities';\nimport { MessageBarBase } from './MessageBar.base';\nimport { getStyles } from './MessageBar.styles';\nexport var MessageBar = styled(MessageBarBase, getStyles, undefined, {\n scope: 'MessageBar',\n});\n//# sourceMappingURL=MessageBar.js.map","import { AnimationClassNames, getFocusStyle, ZIndexes, getGlobalClassNames, HighContrastSelector, FontWeights, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Nav',\n linkText: 'ms-Nav-linkText',\n compositeLink: 'ms-Nav-compositeLink',\n link: 'ms-Nav-link',\n chevronButton: 'ms-Nav-chevronButton',\n chevronIcon: 'ms-Nav-chevron',\n navItem: 'ms-Nav-navItem',\n navItems: 'ms-Nav-navItems',\n group: 'ms-Nav-group',\n groupContent: 'ms-Nav-groupContent',\n};\nexport var buttonStyles = {\n textContainer: {\n overflow: 'hidden',\n },\n label: {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n },\n};\nexport var getStyles = function (props) {\n var _a;\n var className = props.className, theme = props.theme, isOnTop = props.isOnTop, isExpanded = props.isExpanded, isGroup = props.isGroup, isLink = props.isLink, isSelected = props.isSelected, isDisabled = props.isDisabled, isButtonEntry = props.isButtonEntry, _b = props.navHeight, navHeight = _b === void 0 ? 44 : _b, position = props.position, _c = props.leftPadding, leftPadding = _c === void 0 ? 20 : _c, _d = props.leftPaddingExpanded, leftPaddingExpanded = _d === void 0 ? 28 : _d, _e = props.rightPadding, rightPadding = _e === void 0 ? 20 : _e;\n var palette = theme.palette, semanticColors = theme.semanticColors, fonts = theme.fonts;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n return {\n root: [\n classNames.root,\n className,\n fonts.medium,\n {\n overflowY: 'auto',\n userSelect: 'none',\n WebkitOverflowScrolling: 'touch',\n },\n isOnTop && [\n {\n position: 'absolute',\n },\n AnimationClassNames.slideRightIn40,\n ],\n ],\n linkText: [\n classNames.linkText,\n {\n margin: '0 4px',\n overflow: 'hidden',\n verticalAlign: 'middle',\n textAlign: 'left',\n textOverflow: 'ellipsis',\n },\n ],\n compositeLink: [\n classNames.compositeLink,\n {\n display: 'block',\n position: 'relative',\n color: semanticColors.bodyText,\n },\n isExpanded && 'is-expanded',\n isSelected && 'is-selected',\n isDisabled && 'is-disabled',\n isDisabled && {\n color: semanticColors.disabledText,\n },\n ],\n link: [\n classNames.link,\n getFocusStyle(theme),\n {\n display: 'block',\n position: 'relative',\n height: navHeight,\n width: '100%',\n lineHeight: \"\".concat(navHeight, \"px\"),\n textDecoration: 'none',\n cursor: 'pointer',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n paddingLeft: leftPadding,\n paddingRight: rightPadding,\n color: semanticColors.bodyText,\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: 0,\n selectors: {\n ':focus': {\n border: '1px solid WindowText',\n },\n },\n },\n _a),\n },\n !isDisabled && {\n selectors: {\n '.ms-Nav-compositeLink:hover &': {\n backgroundColor: semanticColors.bodyBackgroundHovered,\n },\n },\n },\n isSelected && {\n color: semanticColors.bodyTextChecked,\n fontWeight: FontWeights.semibold,\n backgroundColor: semanticColors.bodyBackgroundChecked,\n selectors: {\n '&:after': {\n borderLeft: \"2px solid \".concat(palette.themePrimary),\n content: '\"\"',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n pointerEvents: 'none',\n },\n },\n },\n isDisabled && {\n color: semanticColors.disabledText,\n },\n isButtonEntry && {\n color: palette.themePrimary,\n },\n ],\n chevronButton: [\n classNames.chevronButton,\n getFocusStyle(theme),\n fonts.small,\n {\n display: 'block',\n textAlign: 'left',\n lineHeight: \"\".concat(navHeight, \"px\"),\n margin: '5px 0',\n padding: \"0px, \".concat(rightPadding, \"px, 0px, \").concat(leftPaddingExpanded, \"px\"),\n border: 'none',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n cursor: 'pointer',\n color: semanticColors.bodyText,\n backgroundColor: 'transparent',\n selectors: {\n '&:visited': {\n color: semanticColors.bodyText,\n },\n },\n },\n isGroup && {\n fontSize: fonts.large.fontSize,\n width: '100%',\n height: navHeight,\n borderBottom: \"1px solid \".concat(semanticColors.bodyDivider),\n },\n isLink && {\n display: 'block',\n width: leftPaddingExpanded - 2,\n height: navHeight - 2,\n position: 'absolute',\n top: '1px',\n left: \"\".concat(position, \"px\"),\n zIndex: ZIndexes.Nav,\n padding: 0,\n margin: 0,\n },\n ],\n chevronIcon: [\n classNames.chevronIcon,\n {\n position: 'absolute',\n left: '8px',\n height: navHeight,\n // inline-flex prevents the chevron from shifting with custom line height styles\n display: 'inline-flex',\n alignItems: 'center',\n lineHeight: \"\".concat(navHeight, \"px\"),\n fontSize: fonts.small.fontSize,\n transition: 'transform .1s linear',\n },\n isExpanded && {\n transform: 'rotate(-180deg)',\n },\n isLink && {\n top: 0,\n },\n ],\n navItem: [\n classNames.navItem,\n {\n padding: 0,\n },\n ],\n navItems: [\n classNames.navItems,\n {\n listStyleType: 'none',\n padding: 0,\n margin: 0, // remove default

    styles\n },\n ],\n group: [classNames.group, isExpanded && 'is-expanded'],\n groupContent: [\n classNames.groupContent,\n {\n display: 'none',\n marginBottom: '40px',\n },\n AnimationClassNames.slideDownIn20,\n isExpanded && {\n display: 'block',\n },\n ],\n };\n};\n//# sourceMappingURL=Nav.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { ActionButton } from '../../Button';\nimport { buttonStyles } from './Nav.styles';\nimport { classNamesFunction, divProperties, getNativeProps, getWindow, initializeComponentRef } from '../../Utilities';\nimport { FocusZone, FocusZoneDirection } from '../../FocusZone';\nimport { Icon } from '../../Icon';\nimport { composeComponentAs, composeRenderFunction } from '@fluentui/utilities';\nimport { WindowContext } from '@fluentui/react-window-provider';\nimport { getDocumentEx } from '../../utilities/dom';\n// The number pixels per indentation level for Nav links.\nvar _indentationSize = 14;\n// The number of pixels of left margin\nvar _baseIndent = 3;\n// global var used in _isLinkSelectedKey\nvar _urlResolver;\nexport function isRelativeUrl(url) {\n // A URL is relative if it has no protocol.\n return !!url && !/^[a-z0-9+-.]+:\\/\\//i.test(url);\n}\nvar getClassNames = classNamesFunction();\nvar NavBase = /** @class */ (function (_super) {\n __extends(NavBase, _super);\n function NavBase(props) {\n var _this = _super.call(this, props) || this;\n _this._focusZone = React.createRef();\n _this._onRenderLink = function (link) {\n var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var classNames = getClassNames(styles, { theme: theme, groups: groups });\n return React.createElement(\"div\", { className: classNames.linkText }, link.name);\n };\n _this._renderGroup = function (group, groupIndex) {\n var _a = _this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme, _b = _a.onRenderGroupHeader, onRenderGroupHeader = _b === void 0 ? _this._renderGroupHeader : _b;\n var isExpanded = _this._isGroupExpanded(group);\n var classNames = getClassNames(styles, {\n theme: theme,\n isGroup: true,\n isExpanded: isExpanded,\n groups: groups,\n });\n var finalOnHeaderClick = function (ev, isCollapsing) {\n _this._onGroupHeaderClicked(group, ev);\n };\n var groupProps = __assign(__assign({}, group), { isExpanded: isExpanded, onHeaderClick: finalOnHeaderClick });\n return (React.createElement(\"div\", { key: groupIndex, className: classNames.group },\n groupProps.name ? onRenderGroupHeader(groupProps, _this._renderGroupHeader) : null,\n React.createElement(\"div\", { className: classNames.groupContent }, _this._renderLinks(groupProps.links, 0 /* nestingLevel */))));\n };\n _this._renderGroupHeader = function (group) {\n var _a;\n // eslint-disable-next-line deprecation/deprecation\n var _b = _this.props, styles = _b.styles, groups = _b.groups, theme = _b.theme, expandButtonAriaLabel = _b.expandButtonAriaLabel;\n var isExpanded = group.isExpanded;\n var classNames = getClassNames(styles, {\n theme: theme,\n isGroup: true,\n isExpanded: isExpanded,\n groups: groups,\n });\n // respect deprecated collapseAriaLabel, but default to expandAriaLabel for both states\n // eslint-disable-next-line deprecation/deprecation\n var collapseAriaLabel = (_a = group.collapseAriaLabel) !== null && _a !== void 0 ? _a : group.expandAriaLabel;\n var label = (isExpanded ? collapseAriaLabel : group.expandAriaLabel) || expandButtonAriaLabel;\n var onHeaderClick = group.onHeaderClick;\n var onClick = onHeaderClick\n ? function (ev) {\n onHeaderClick(ev, isExpanded);\n }\n : undefined;\n return (React.createElement(\"button\", { className: classNames.chevronButton, onClick: onClick, \"aria-label\": label, \"aria-expanded\": isExpanded },\n React.createElement(Icon, { className: classNames.chevronIcon, iconName: \"ChevronDown\" }),\n group.name));\n };\n initializeComponentRef(_this);\n _this.state = {\n isGroupCollapsed: {},\n isLinkExpandStateChanged: false,\n selectedKey: props.initialSelectedKey || props.selectedKey,\n };\n return _this;\n }\n NavBase.prototype.render = function () {\n var _a = this.props, styles = _a.styles, groups = _a.groups, className = _a.className, isOnTop = _a.isOnTop, _b = _a.role, role = _b === void 0 ? 'navigation' : _b, theme = _a.theme;\n if (!groups) {\n return null;\n }\n var groupElements = groups.map(this._renderGroup);\n var classNames = getClassNames(styles, { theme: theme, className: className, isOnTop: isOnTop, groups: groups });\n return (React.createElement(FocusZone, __assign({ direction: FocusZoneDirection.vertical, componentRef: this._focusZone }, this.props.focusZoneProps),\n React.createElement(\"nav\", { role: role, className: classNames.root, \"aria-label\": this.props.ariaLabel }, groupElements)));\n };\n Object.defineProperty(NavBase.prototype, \"selectedKey\", {\n get: function () {\n return this.state.selectedKey;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Sets focus to the first tabbable item in the zone.\n * @param forceIntoFirstElement - If true, focus will be forced into the first element, even\n * if focus is already in the focus zone.\n * @returns True if focus could be set to an active element, false if no operation was taken.\n */\n NavBase.prototype.focus = function (forceIntoFirstElement) {\n if (forceIntoFirstElement === void 0) { forceIntoFirstElement = false; }\n if (this._focusZone && this._focusZone.current) {\n return this._focusZone.current.focus(forceIntoFirstElement);\n }\n return false;\n };\n NavBase.prototype._renderNavLink = function (link, linkIndex, nestingLevel) {\n var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var isLinkWithIcon = link.icon || link.iconProps;\n var isSelectedLink = this._isLinkSelected(link);\n var _b = link.ariaCurrent, ariaCurrent = _b === void 0 ? 'page' : _b;\n var classNames = getClassNames(styles, {\n theme: theme,\n isSelected: isSelectedLink,\n isDisabled: link.disabled,\n isButtonEntry: link.onClick && !link.forceAnchor,\n leftPadding: _indentationSize * nestingLevel + _baseIndent + (isLinkWithIcon ? 0 : 24),\n groups: groups,\n });\n // Prevent hijacking of the parent window if link.target is defined\n var rel = link.url && link.target && !isRelativeUrl(link.url) ? 'noopener noreferrer' : undefined;\n var LinkAs = this.props.linkAs ? composeComponentAs(this.props.linkAs, ActionButton) : ActionButton;\n var onRenderLink = this.props.onRenderLink\n ? composeRenderFunction(this.props.onRenderLink, this._onRenderLink)\n : this._onRenderLink;\n return (React.createElement(LinkAs, { className: classNames.link, styles: buttonStyles, href: link.url || (link.forceAnchor ? '#' : undefined), iconProps: link.iconProps || { iconName: link.icon }, \n // eslint-disable-next-line react/jsx-no-bind\n onClick: link.onClick ? this._onNavButtonLinkClicked.bind(this, link) : this._onNavAnchorLinkClicked.bind(this, link), title: link.title !== undefined ? link.title : link.name, target: link.target, rel: rel, disabled: link.disabled, \"aria-current\": isSelectedLink ? ariaCurrent : undefined, \"aria-label\": link.ariaLabel ? link.ariaLabel : undefined, link: link }, onRenderLink(link)));\n };\n NavBase.prototype._renderCompositeLink = function (link, linkIndex, nestingLevel) {\n var _a;\n var divProps = __assign({}, getNativeProps(link, divProperties, ['onClick']));\n // eslint-disable-next-line deprecation/deprecation\n var _b = this.props, expandButtonAriaLabel = _b.expandButtonAriaLabel, styles = _b.styles, groups = _b.groups, theme = _b.theme;\n var classNames = getClassNames(styles, {\n theme: theme,\n isExpanded: !!link.isExpanded,\n isSelected: this._isLinkSelected(link),\n isLink: true,\n isDisabled: link.disabled,\n position: _indentationSize * nestingLevel + 1,\n groups: groups,\n });\n var finalExpandBtnAriaLabel = '';\n if (link.links && link.links.length > 0) {\n if (link.collapseAriaLabel || link.expandAriaLabel) {\n // still respect link.collapseAriaLabel, even though it's deprecated in favor of expandAriaLabel\n var collapseAriaLabel = (_a = link.collapseAriaLabel) !== null && _a !== void 0 ? _a : link.expandAriaLabel;\n finalExpandBtnAriaLabel = link.isExpanded ? collapseAriaLabel : link.expandAriaLabel;\n }\n else {\n // TODO remove when `expandButtonAriaLabel` is removed. This is not an ideal concatenation for localization.\n finalExpandBtnAriaLabel = expandButtonAriaLabel ? \"\".concat(link.name, \" \").concat(expandButtonAriaLabel) : link.name;\n }\n }\n return (React.createElement(\"div\", __assign({}, divProps, { key: link.key || linkIndex, className: classNames.compositeLink }),\n link.links && link.links.length > 0 ? (React.createElement(\"button\", { className: classNames.chevronButton, onClick: this._onLinkExpandClicked.bind(this, link), \"aria-label\": finalExpandBtnAriaLabel, \"aria-expanded\": link.isExpanded ? 'true' : 'false' },\n React.createElement(Icon, { className: classNames.chevronIcon, iconName: \"ChevronDown\" }))) : null,\n this._renderNavLink(link, linkIndex, nestingLevel)));\n };\n NavBase.prototype._renderLink = function (link, linkIndex, nestingLevel) {\n var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var classNames = getClassNames(styles, { theme: theme, groups: groups });\n return (React.createElement(\"li\", { key: link.key || linkIndex, role: \"listitem\", className: classNames.navItem },\n this._renderCompositeLink(link, linkIndex, nestingLevel),\n link.isExpanded ? this._renderLinks(link.links, ++nestingLevel) : null));\n };\n NavBase.prototype._renderLinks = function (links, nestingLevel) {\n var _this = this;\n if (!links || !links.length) {\n return null;\n }\n var linkElements = links.map(function (link, linkIndex) {\n return _this._renderLink(link, linkIndex, nestingLevel);\n });\n var _a = this.props, styles = _a.styles, groups = _a.groups, theme = _a.theme;\n var classNames = getClassNames(styles, { theme: theme, groups: groups });\n return (React.createElement(\"ul\", { role: \"list\", className: classNames.navItems }, linkElements));\n };\n NavBase.prototype._onGroupHeaderClicked = function (group, ev) {\n if (group.onHeaderClick) {\n group.onHeaderClick(ev, this._isGroupExpanded(group));\n }\n if (group.isExpanded === undefined) {\n this._toggleCollapsed(group);\n }\n if (ev) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n };\n NavBase.prototype._onLinkExpandClicked = function (link, ev) {\n var onLinkExpandClick = this.props.onLinkExpandClick;\n if (onLinkExpandClick) {\n onLinkExpandClick(ev, link);\n }\n if (!ev.defaultPrevented) {\n link.isExpanded = !link.isExpanded;\n this.setState({ isLinkExpandStateChanged: true });\n }\n ev.preventDefault();\n ev.stopPropagation();\n };\n NavBase.prototype._preventBounce = function (link, ev) {\n if (!link.url && link.forceAnchor) {\n ev.preventDefault();\n }\n };\n NavBase.prototype._onNavAnchorLinkClicked = function (link, ev) {\n // If the href is \"#\" we should call preventDefault to prevent scrolling to the top of the page\n this._preventBounce(link, ev);\n if (this.props.onLinkClick) {\n this.props.onLinkClick(ev, link);\n }\n if (!link.url && link.links && link.links.length > 0) {\n this._onLinkExpandClicked(link, ev);\n }\n this.setState({ selectedKey: link.key });\n };\n NavBase.prototype._onNavButtonLinkClicked = function (link, ev) {\n // If the href is \"#\" we should call preventDefault to prevent scrolling to the top of the page\n this._preventBounce(link, ev);\n if (link.onClick) {\n link.onClick(ev, link);\n }\n if (!link.url && link.links && link.links.length > 0) {\n this._onLinkExpandClicked(link, ev);\n }\n this.setState({ selectedKey: link.key });\n };\n NavBase.prototype._isLinkSelected = function (link) {\n // if caller passes in selectedKey, use it as first choice or\n // if current state.selectedKey (from addressbar) is match to the link or\n // check if URL is matching location.href (if link.url exists)\n if (this.props.selectedKey !== undefined) {\n return link.key === this.props.selectedKey;\n }\n else if (this.state.selectedKey !== undefined) {\n return link.key === this.state.selectedKey;\n }\n else if (typeof getWindow() === 'undefined' || !link.url) {\n // resolve is not supported for ssr\n return false;\n }\n else {\n var doc = getDocumentEx(this.context); // there is an SSR check above so this is safe\n // If selectedKey is undefined in props and state, then check URL\n _urlResolver = _urlResolver || doc.createElement('a');\n _urlResolver.href = link.url || '';\n var target = _urlResolver.href;\n if (location.href === target) {\n return true;\n }\n // If selectedKey is not defined in state, then check URL to determine link selected status\n if (location.protocol + '//' + location.host + location.pathname === target) {\n return true;\n }\n if (location.hash) {\n // Match the hash to the url.\n if (location.hash === link.url) {\n return true;\n }\n // Match a rebased url. (e.g. #foo becomes http://hostname/foo)\n _urlResolver.href = location.hash.substring(1);\n return _urlResolver.href === target;\n }\n }\n return false;\n };\n NavBase.prototype._isGroupExpanded = function (group) {\n if (group.isExpanded !== undefined) {\n return group.isExpanded;\n }\n if (group.name && this.state.isGroupCollapsed.hasOwnProperty(group.name)) {\n return !this.state.isGroupCollapsed[group.name];\n }\n if (group.collapseByDefault !== undefined) {\n return !group.collapseByDefault;\n }\n return true;\n };\n NavBase.prototype._toggleCollapsed = function (group) {\n var _a;\n if (group.name) {\n var newGroupCollapsed = __assign(__assign({}, this.state.isGroupCollapsed), (_a = {}, _a[group.name] = this._isGroupExpanded(group), _a));\n this.setState({ isGroupCollapsed: newGroupCollapsed });\n }\n };\n NavBase.defaultProps = {\n groups: null,\n };\n NavBase.contextType = WindowContext;\n return NavBase;\n}(React.Component));\nexport { NavBase };\n//# sourceMappingURL=Nav.base.js.map","import { styled } from '../../Utilities';\nimport { NavBase } from './Nav.base';\nimport { getStyles } from './Nav.styles';\nexport var Nav = styled(NavBase, getStyles, undefined, {\n scope: 'Nav',\n});\n//# sourceMappingURL=Nav.js.map","/**\n * {@docCategory Panel}\n */\nexport var PanelType;\n(function (PanelType) {\n /**\n * Renders the Panel with a `fluid` (full screen) width.\n * Recommended for use on small screen breakpoints.\n * - Small (320-479): full screen width, 16px left/right padding\n * - Medium (480-639): full screen width, 16px left/right padding\n * - Large (640-1023): full screen width, 32px left/right padding\n * - XLarge (1024-1365): full screen width, 32px left/right padding\n * - XXLarge (1366-up): full screen width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFluid\"] = 0] = \"smallFluid\";\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): 340px width, 16px left/right padding\n * - Large (640-1023): 340px width, 32px left/right padding\n * - XLarge (1024-1365): 340px width, 32px left/right padding\n * - XXLarge (1366-up): 340px width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFixedFar\"] = 1] = \"smallFixedFar\";\n /**\n * Renders the Panel in fixed-width `small` size, anchored to the near side (left in LTR mode).\n * - Small (320-479): 272px width, 16px left/right padding\n * - Medium (480-639): 272px width, 16px left/right padding\n * - Large (640-1023): 272px width, 32px left/right padding\n * - XLarge (1024-1365): 272px width, 32px left/right padding\n * - XXLarge (1366-up): 272px width, 40px left/right padding\n */\n PanelType[PanelType[\"smallFixedNear\"] = 2] = \"smallFixedNear\";\n /**\n * Renders the Panel in `medium` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): 592px width, 32px left/right padding\n * - XLarge (1024-1365): 644px width, 32px left/right padding\n * - XXLarge (1366-up): 644px width, 40px left/right padding\n */\n PanelType[PanelType[\"medium\"] = 3] = \"medium\";\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 428px fixed left margin, fluid width, 40px left/right padding\n */\n PanelType[PanelType[\"large\"] = 4] = \"large\";\n /**\n * Renders the Panel in `large` size, anchored to the far side (right in LTR mode), with a fixed width at\n * XX-Large breakpoint.\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): 48px fixed left margin, fluid width, 32px left/right padding\n * - XXLarge (1366-up): 940px width, 40px left/right padding\n */\n PanelType[PanelType[\"largeFixed\"] = 5] = \"largeFixed\";\n /**\n * Renders the Panel in `extra large` size, anchored to the far side (right in LTR mode).\n * - Small (320-479): adapts to `PanelType.smallFluid` at this breakpoint\n * - Medium (480-639): adapts to `PanelType.smallFixedFar` at this breakpoint\n * - Large (640-1023): adapts to `PanelType.medium` at this breakpoint\n * - XLarge (1024-1365): adapts to `PanelType.large` at this breakpoint\n * - XXLarge (1366-1919): 176px fixed left margin, fluid width, 40px left/right padding\n * - XXXLarge (1920-up): 176px fixed left margin, fluid width, 40px left/right padding\n */\n PanelType[PanelType[\"extraLarge\"] = 6] = \"extraLarge\";\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the far side (right in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n PanelType[PanelType[\"custom\"] = 7] = \"custom\";\n /**\n * Renders the Panel in `custom` size using `customWidth`, anchored to the near side (left in LTR mode).\n * - Has a fixed width provided by the `customWidth` prop\n * - When screen width reaches the `customWidth` value it will behave like a fluid width Panel\n * taking up 100% of the viewport width\n */\n PanelType[PanelType[\"customNear\"] = 8] = \"customNear\";\n})(PanelType || (PanelType = {}));\n//# sourceMappingURL=Panel.types.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { IconButton } from '../../Button';\nimport { Layer } from '../../Layer';\nimport { Overlay } from '../../Overlay';\nimport { Popup } from '../../Popup';\nimport { allowScrollOnElement, allowOverscrollOnElement, classNamesFunction, divProperties, elementContains, getId, getNativeProps, getRTL, css, warnDeprecations, Async, EventGroup, initializeComponentRef, } from '../../Utilities';\nimport { FocusTrapZone } from '../FocusTrapZone/index';\nimport { PanelType } from './Panel.types';\nimport { WindowContext } from '@fluentui/react-window-provider';\nimport { getDocumentEx, getWindowEx } from '../../utilities/dom';\nvar getClassNames = classNamesFunction();\nvar COMPONENT_NAME = 'Panel';\nvar PanelVisibilityState;\n(function (PanelVisibilityState) {\n PanelVisibilityState[PanelVisibilityState[\"closed\"] = 0] = \"closed\";\n PanelVisibilityState[PanelVisibilityState[\"animatingOpen\"] = 1] = \"animatingOpen\";\n PanelVisibilityState[PanelVisibilityState[\"open\"] = 2] = \"open\";\n PanelVisibilityState[PanelVisibilityState[\"animatingClosed\"] = 3] = \"animatingClosed\";\n})(PanelVisibilityState || (PanelVisibilityState = {}));\nvar PanelBase = /** @class */ (function (_super) {\n __extends(PanelBase, _super);\n function PanelBase(props) {\n var _this = _super.call(this, props) || this;\n _this._panel = React.createRef();\n _this._animationCallback = null;\n _this._hasCustomNavigation = !!(_this.props.onRenderNavigation || _this.props.onRenderNavigationContent);\n _this.dismiss = function (ev) {\n if (_this.props.onDismiss && _this.isActive) {\n _this.props.onDismiss(ev);\n }\n if (!ev || (ev && !ev.defaultPrevented)) {\n _this.close();\n }\n };\n // Allow the user to scroll within the panel but not on the body\n _this._allowScrollOnPanel = function (elt) {\n if (elt) {\n if (_this._allowTouchBodyScroll) {\n allowOverscrollOnElement(elt, _this._events);\n }\n else {\n allowScrollOnElement(elt, _this._events);\n }\n }\n else {\n _this._events.off(_this._scrollableContent);\n }\n _this._scrollableContent = elt;\n };\n _this._onRenderNavigation = function (props) {\n if (!_this.props.onRenderNavigationContent && !_this.props.onRenderNavigation && !_this.props.hasCloseButton) {\n return null;\n }\n var _a = _this.props.onRenderNavigationContent, onRenderNavigationContent = _a === void 0 ? _this._onRenderNavigationContent : _a;\n return (React.createElement(\"div\", { className: _this._classNames.navigation }, onRenderNavigationContent(props, _this._onRenderNavigationContent)));\n };\n _this._onRenderNavigationContent = function (props) {\n var _a;\n var closeButtonAriaLabel = props.closeButtonAriaLabel, hasCloseButton = props.hasCloseButton, _b = props.onRenderHeader, onRenderHeader = _b === void 0 ? _this._onRenderHeader : _b;\n if (hasCloseButton) {\n var iconButtonStyles = (_a = _this._classNames.subComponentStyles) === null || _a === void 0 ? void 0 : _a.closeButton();\n return (React.createElement(React.Fragment, null,\n !_this._hasCustomNavigation && onRenderHeader(_this.props, _this._onRenderHeader, _this._headerTextId),\n React.createElement(IconButton, { styles: iconButtonStyles, className: _this._classNames.closeButton, onClick: _this._onPanelClick, ariaLabel: closeButtonAriaLabel, title: closeButtonAriaLabel, \"data-is-visible\": true, iconProps: { iconName: 'Cancel' } })));\n }\n return null;\n };\n _this._onRenderHeader = function (props, defaultRender, headerTextId) {\n var headerText = props.headerText, _a = props.headerTextProps, headerTextProps = _a === void 0 ? {} : _a;\n if (headerText) {\n return (React.createElement(\"div\", { className: _this._classNames.header },\n React.createElement(\"div\", __assign({ id: headerTextId, role: \"heading\", \"aria-level\": 1 }, headerTextProps, { className: css(_this._classNames.headerText, headerTextProps.className) }), headerText)));\n }\n return null;\n };\n _this._onRenderBody = function (props) {\n return React.createElement(\"div\", { className: _this._classNames.content }, props.children);\n };\n _this._onRenderFooter = function (props) {\n var _a = _this.props.onRenderFooterContent, onRenderFooterContent = _a === void 0 ? null : _a;\n if (onRenderFooterContent) {\n return (React.createElement(\"div\", { className: _this._classNames.footer },\n React.createElement(\"div\", { className: _this._classNames.footerInner }, onRenderFooterContent())));\n }\n return null;\n };\n _this._animateTo = function (newVisibilityState) {\n if (newVisibilityState === PanelVisibilityState.open && _this.props.onOpen) {\n _this.props.onOpen();\n }\n _this._animationCallback = _this._async.setTimeout(function () {\n _this.setState({ visibility: newVisibilityState });\n _this._onTransitionComplete(newVisibilityState);\n }, 200);\n };\n _this._clearExistingAnimationTimer = function () {\n if (_this._animationCallback !== null) {\n _this._async.clearTimeout(_this._animationCallback);\n }\n };\n _this._onPanelClick = function (ev) {\n _this.dismiss(ev);\n };\n _this._onTransitionComplete = function (newVisibilityState) {\n _this._updateFooterPosition();\n if (newVisibilityState === PanelVisibilityState.open && _this.props.onOpened) {\n _this.props.onOpened();\n }\n if (newVisibilityState === PanelVisibilityState.closed && _this.props.onDismissed) {\n _this.props.onDismissed();\n }\n };\n var _a = _this.props.allowTouchBodyScroll, allowTouchBodyScroll = _a === void 0 ? false : _a;\n _this._allowTouchBodyScroll = allowTouchBodyScroll;\n initializeComponentRef(_this);\n warnDeprecations(COMPONENT_NAME, props, {\n ignoreExternalFocusing: 'focusTrapZoneProps',\n forceFocusInsideTrap: 'focusTrapZoneProps',\n firstFocusableSelector: 'focusTrapZoneProps',\n });\n _this.state = {\n isFooterSticky: false,\n // intentionally ignore props so animation takes place during componentDidMount\n visibility: PanelVisibilityState.closed,\n id: getId('Panel'),\n };\n return _this;\n }\n PanelBase.getDerivedStateFromProps = function (nextProps, prevState) {\n if (nextProps.isOpen === undefined) {\n return null; // no state update\n }\n if (nextProps.isOpen &&\n (prevState.visibility === PanelVisibilityState.closed ||\n prevState.visibility === PanelVisibilityState.animatingClosed)) {\n return { visibility: PanelVisibilityState.animatingOpen };\n }\n if (!nextProps.isOpen &&\n (prevState.visibility === PanelVisibilityState.open ||\n prevState.visibility === PanelVisibilityState.animatingOpen)) {\n return { visibility: PanelVisibilityState.animatingClosed };\n }\n return null;\n };\n PanelBase.prototype.componentDidMount = function () {\n this._async = new Async(this);\n this._events = new EventGroup(this);\n var win = getWindowEx(this.context);\n var doc = getDocumentEx(this.context);\n this._events.on(win, 'resize', this._updateFooterPosition);\n if (this._shouldListenForOuterClick(this.props)) {\n this._events.on(doc === null || doc === void 0 ? void 0 : doc.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n if (this.props.isOpen) {\n this.setState({ visibility: PanelVisibilityState.animatingOpen });\n }\n };\n PanelBase.prototype.componentDidUpdate = function (previousProps, previousState) {\n var shouldListenOnOuterClick = this._shouldListenForOuterClick(this.props);\n var previousShouldListenOnOuterClick = this._shouldListenForOuterClick(previousProps);\n if (this.state.visibility !== previousState.visibility) {\n this._clearExistingAnimationTimer();\n if (this.state.visibility === PanelVisibilityState.animatingOpen) {\n this._animateTo(PanelVisibilityState.open);\n }\n else if (this.state.visibility === PanelVisibilityState.animatingClosed) {\n this._animateTo(PanelVisibilityState.closed);\n }\n }\n var doc = getDocumentEx(this.context);\n if (shouldListenOnOuterClick && !previousShouldListenOnOuterClick) {\n this._events.on(doc === null || doc === void 0 ? void 0 : doc.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n else if (!shouldListenOnOuterClick && previousShouldListenOnOuterClick) {\n this._events.off(doc === null || doc === void 0 ? void 0 : doc.body, 'mousedown', this._dismissOnOuterClick, true);\n }\n };\n PanelBase.prototype.componentWillUnmount = function () {\n this._async.dispose();\n this._events.dispose();\n };\n PanelBase.prototype.render = function () {\n var _a = this.props, _b = _a.className, className = _b === void 0 ? '' : _b, elementToFocusOnDismiss = _a.elementToFocusOnDismiss, \n /* eslint-disable deprecation/deprecation */\n firstFocusableSelector = _a.firstFocusableSelector, focusTrapZoneProps = _a.focusTrapZoneProps, forceFocusInsideTrap = _a.forceFocusInsideTrap, hasCloseButton = _a.hasCloseButton, headerText = _a.headerText, _c = _a.headerClassName, headerClassName = _c === void 0 ? '' : _c, ignoreExternalFocusing = _a.ignoreExternalFocusing, isBlocking = _a.isBlocking, isFooterAtBottom = _a.isFooterAtBottom, isLightDismiss = _a.isLightDismiss, isHiddenOnDismiss = _a.isHiddenOnDismiss, layerProps = _a.layerProps, overlayProps = _a.overlayProps, popupProps = _a.popupProps, type = _a.type, styles = _a.styles, theme = _a.theme, customWidth = _a.customWidth, _d = _a.onLightDismissClick, onLightDismissClick = _d === void 0 ? this._onPanelClick : _d, _e = _a.onRenderNavigation, onRenderNavigation = _e === void 0 ? this._onRenderNavigation : _e, _f = _a.onRenderHeader, onRenderHeader = _f === void 0 ? this._onRenderHeader : _f, _g = _a.onRenderBody, onRenderBody = _g === void 0 ? this._onRenderBody : _g, _h = _a.onRenderFooter, onRenderFooter = _h === void 0 ? this._onRenderFooter : _h;\n var _j = this.state, isFooterSticky = _j.isFooterSticky, visibility = _j.visibility, id = _j.id;\n var isLeft = type === PanelType.smallFixedNear || type === PanelType.customNear ? true : false;\n var isRTL = getRTL(theme);\n var isOnRightSide = isRTL ? isLeft : !isLeft;\n var customWidthStyles = type === PanelType.custom || type === PanelType.customNear ? { width: customWidth } : {};\n var nativeProps = getNativeProps(this.props, divProperties);\n var isOpen = this.isActive;\n var isAnimating = visibility === PanelVisibilityState.animatingClosed || visibility === PanelVisibilityState.animatingOpen;\n this._headerTextId = headerText && id + '-headerText';\n if (!isOpen && !isAnimating && !isHiddenOnDismiss) {\n return null;\n }\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n focusTrapZoneClassName: focusTrapZoneProps ? focusTrapZoneProps.className : undefined,\n hasCloseButton: hasCloseButton,\n headerClassName: headerClassName,\n isAnimating: isAnimating,\n isFooterSticky: isFooterSticky,\n isFooterAtBottom: isFooterAtBottom,\n isOnRightSide: isOnRightSide,\n isOpen: isOpen,\n isHiddenOnDismiss: isHiddenOnDismiss,\n type: type,\n hasCustomNavigation: this._hasCustomNavigation,\n });\n var _k = this, _classNames = _k._classNames, _allowTouchBodyScroll = _k._allowTouchBodyScroll;\n var overlay;\n if (isBlocking && isOpen) {\n overlay = (React.createElement(Overlay, __assign({ className: _classNames.overlay, isDarkThemed: false, onClick: isLightDismiss ? onLightDismissClick : undefined, allowTouchBodyScroll: _allowTouchBodyScroll }, overlayProps)));\n }\n return (React.createElement(Layer, __assign({}, layerProps),\n React.createElement(Popup, __assign({ role: \"dialog\", \"aria-modal\": isBlocking ? 'true' : undefined, ariaLabelledBy: this._headerTextId ? this._headerTextId : undefined, onDismiss: this.dismiss, className: _classNames.hiddenPanel, enableAriaHiddenSiblings: isOpen ? true : false }, popupProps),\n React.createElement(\"div\", __assign({ \"aria-hidden\": !isOpen && isAnimating }, nativeProps, { ref: this._panel, className: _classNames.root }),\n overlay,\n React.createElement(FocusTrapZone, __assign({ ignoreExternalFocusing: ignoreExternalFocusing, forceFocusInsideTrap: !isBlocking || (isHiddenOnDismiss && !isOpen) ? false : forceFocusInsideTrap, firstFocusableSelector: firstFocusableSelector, isClickableOutsideFocusTrap: true }, focusTrapZoneProps, { className: _classNames.main, style: customWidthStyles, elementToFocusOnDismiss: elementToFocusOnDismiss }),\n React.createElement(\"div\", { className: _classNames.contentInner },\n React.createElement(\"div\", { ref: this._allowScrollOnPanel, className: _classNames.scrollableContent, \"data-is-scrollable\": true },\n React.createElement(\"div\", { className: _classNames.commands, \"data-is-visible\": true }, onRenderNavigation(this.props, this._onRenderNavigation)),\n (this._hasCustomNavigation || !hasCloseButton) &&\n onRenderHeader(this.props, this._onRenderHeader, this._headerTextId),\n onRenderBody(this.props, this._onRenderBody),\n onRenderFooter(this.props, this._onRenderFooter))))))));\n };\n PanelBase.prototype.open = function () {\n if (this.props.isOpen !== undefined) {\n return;\n }\n if (this.isActive) {\n return;\n }\n this.setState({ visibility: PanelVisibilityState.animatingOpen });\n };\n PanelBase.prototype.close = function () {\n if (this.props.isOpen !== undefined) {\n return;\n }\n if (!this.isActive) {\n return;\n }\n this.setState({ visibility: PanelVisibilityState.animatingClosed });\n };\n Object.defineProperty(PanelBase.prototype, \"isActive\", {\n /** isActive is true when panel is open or opening. */\n get: function () {\n return (this.state.visibility === PanelVisibilityState.open ||\n this.state.visibility === PanelVisibilityState.animatingOpen);\n },\n enumerable: false,\n configurable: true\n });\n PanelBase.prototype._shouldListenForOuterClick = function (props) {\n return !!props.isBlocking && !!props.isOpen;\n };\n PanelBase.prototype._updateFooterPosition = function () {\n var scrollableContent = this._scrollableContent;\n if (scrollableContent) {\n var height = scrollableContent.clientHeight;\n var innerHeight_1 = scrollableContent.scrollHeight;\n this.setState({\n isFooterSticky: height < innerHeight_1 ? true : false,\n });\n }\n };\n PanelBase.prototype._dismissOnOuterClick = function (ev) {\n var panel = this._panel.current;\n if (this.isActive && panel && !ev.defaultPrevented) {\n if (!elementContains(panel, ev.target)) {\n if (this.props.onOuterClick) {\n this.props.onOuterClick(ev);\n }\n else {\n this.dismiss(ev);\n }\n }\n }\n };\n PanelBase.defaultProps = {\n isHiddenOnDismiss: false,\n isOpen: undefined,\n isBlocking: true,\n hasCloseButton: true,\n type: PanelType.smallFixedFar,\n };\n PanelBase.contextType = WindowContext;\n return PanelBase;\n}(React.Component));\nexport { PanelBase };\n//# sourceMappingURL=Panel.base.js.map","var _a, _b, _c, _d, _e;\nimport { __assign } from \"tslib\";\nimport { PanelType } from './Panel.types';\nimport { AnimationClassNames, AnimationVariables, getGlobalClassNames, HighContrastSelector, ScreenWidthMinMedium, ScreenWidthMinLarge, ScreenWidthMinXLarge, ScreenWidthMinXXLarge, ScreenWidthMinUhfMobile, IconFontSizes, } from '../../Styling';\nvar GlobalClassNames = {\n root: 'ms-Panel',\n main: 'ms-Panel-main',\n commands: 'ms-Panel-commands',\n contentInner: 'ms-Panel-contentInner',\n scrollableContent: 'ms-Panel-scrollableContent',\n navigation: 'ms-Panel-navigation',\n closeButton: 'ms-Panel-closeButton ms-PanelAction-close',\n header: 'ms-Panel-header',\n headerText: 'ms-Panel-headerText',\n content: 'ms-Panel-content',\n footer: 'ms-Panel-footer',\n footerInner: 'ms-Panel-footerInner',\n isOpen: 'is-open',\n hasCloseButton: 'ms-Panel--hasCloseButton',\n smallFluid: 'ms-Panel--smFluid',\n smallFixedNear: 'ms-Panel--smLeft',\n smallFixedFar: 'ms-Panel--sm',\n medium: 'ms-Panel--md',\n large: 'ms-Panel--lg',\n largeFixed: 'ms-Panel--fixed',\n extraLarge: 'ms-Panel--xl',\n custom: 'ms-Panel--custom',\n customNear: 'ms-Panel--customLeft',\n};\nvar panelWidth = {\n full: '100%',\n auto: 'auto',\n xs: 272,\n sm: 340,\n md1: 592,\n md2: 644,\n lg: 940,\n};\nvar panelMargin = {\n auto: 'auto',\n none: 0,\n md: 48,\n lg: 428,\n xl: 176,\n};\n// Following consts are used below in `getPanelBreakpoints()` function to provide\n// necessary fallbacks for different types of Panel in different breakpoints.\nvar smallPanelSelectors = (_a = {},\n _a[\"@media (min-width: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n width: panelWidth.sm,\n },\n _a);\nvar mediumPanelSelectors = (_b = {},\n _b[\"@media (min-width: \".concat(ScreenWidthMinLarge, \"px)\")] = {\n width: panelWidth.md1,\n },\n _b[\"@media (min-width: \".concat(ScreenWidthMinXLarge, \"px)\")] = {\n width: panelWidth.md2,\n },\n _b);\nvar largePanelSelectors = (_c = {},\n _c[\"@media (min-width: \".concat(ScreenWidthMinUhfMobile, \"px)\")] = {\n left: panelMargin.md,\n width: panelWidth.auto,\n },\n _c[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n left: panelMargin.lg,\n },\n _c);\nvar largeFixedPanelSelectors = (_d = {},\n _d[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n left: panelMargin.auto,\n width: panelWidth.lg,\n },\n _d);\nvar extraLargePanelSelectors = (_e = {},\n _e[\"@media (min-width: \".concat(ScreenWidthMinXXLarge, \"px)\")] = {\n left: panelMargin.xl,\n },\n _e);\n// Make sure Panels have fallbacks to different breakpoints by reusing same selectors.\n// This is done in the effort to follow design redlines.\nvar getPanelBreakpoints = function (type) {\n var selectors;\n // Panel types `smallFluid`, `smallFixedNear`, `custom` and `customNear`\n // are not checked in here because they render the same in all the breakpoints\n // and have the checks done separately in the `getStyles` function below.\n switch (type) {\n case PanelType.smallFixedFar:\n selectors = __assign({}, smallPanelSelectors);\n break;\n case PanelType.medium:\n selectors = __assign(__assign({}, smallPanelSelectors), mediumPanelSelectors);\n break;\n case PanelType.large:\n selectors = __assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors);\n break;\n case PanelType.largeFixed:\n selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), largeFixedPanelSelectors);\n break;\n case PanelType.extraLarge:\n selectors = __assign(__assign(__assign(__assign({}, smallPanelSelectors), mediumPanelSelectors), largePanelSelectors), extraLargePanelSelectors);\n break;\n default:\n break;\n }\n return selectors;\n};\nvar commandBarHeight = '44px';\nvar sharedPaddingStyles = {\n paddingLeft: '24px',\n paddingRight: '24px',\n};\nexport var getStyles = function (props) {\n var _a, _b, _c, _d;\n var className = props.className, focusTrapZoneClassName = props.focusTrapZoneClassName, hasCloseButton = props.hasCloseButton, headerClassName = props.headerClassName, isAnimating = props.isAnimating, isFooterSticky = props.isFooterSticky, isFooterAtBottom = props.isFooterAtBottom, isOnRightSide = props.isOnRightSide, isOpen = props.isOpen, isHiddenOnDismiss = props.isHiddenOnDismiss, hasCustomNavigation = props.hasCustomNavigation, theme = props.theme, _e = props.type, type = _e === void 0 ? PanelType.smallFixedFar : _e;\n var effects = theme.effects, fonts = theme.fonts, semanticColors = theme.semanticColors;\n var classNames = getGlobalClassNames(GlobalClassNames, theme);\n var isCustomPanel = type === PanelType.custom || type === PanelType.customNear;\n return {\n root: [\n classNames.root,\n theme.fonts.medium,\n isOpen && classNames.isOpen,\n hasCloseButton && classNames.hasCloseButton,\n {\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n isCustomPanel && isOnRightSide && classNames.custom,\n isCustomPanel && !isOnRightSide && classNames.customNear,\n className,\n ],\n overlay: [\n {\n pointerEvents: 'auto',\n cursor: 'pointer',\n },\n isOpen && isAnimating && AnimationClassNames.fadeIn100,\n !isOpen && isAnimating && AnimationClassNames.fadeOut100,\n ],\n hiddenPanel: [\n !isOpen &&\n !isAnimating &&\n isHiddenOnDismiss && {\n visibility: 'hidden',\n },\n ],\n main: [\n classNames.main,\n {\n backgroundColor: semanticColors.bodyBackground,\n boxShadow: effects.elevation64,\n pointerEvents: 'auto',\n position: 'absolute',\n display: 'flex',\n flexDirection: 'column',\n overflowX: 'hidden',\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch',\n bottom: 0,\n top: 0,\n // left, right, width are overridden depending on the type of the Panel and the screen breakpoint.\n left: panelMargin.auto,\n right: panelMargin.none,\n width: panelWidth.full,\n selectors: __assign((_a = {}, _a[HighContrastSelector] = {\n borderLeft: \"3px solid \".concat(semanticColors.variantBorder),\n borderRight: \"3px solid \".concat(semanticColors.variantBorder),\n }, _a), getPanelBreakpoints(type)),\n },\n type === PanelType.smallFluid && {\n left: panelMargin.none,\n },\n type === PanelType.smallFixedNear && {\n left: panelMargin.none,\n right: panelMargin.auto,\n width: panelWidth.xs,\n },\n type === PanelType.customNear && {\n right: 'auto',\n left: 0,\n },\n isCustomPanel && {\n maxWidth: '100vw',\n },\n isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideRightIn40,\n isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideLeftIn40,\n !isOpen && isAnimating && !isOnRightSide && AnimationClassNames.slideLeftOut40,\n !isOpen && isAnimating && isOnRightSide && AnimationClassNames.slideRightOut40,\n focusTrapZoneClassName,\n ],\n commands: [\n classNames.commands,\n {\n // Ensures that the sticky header always has a background to prevent overlaps on scroll.\n backgroundColor: semanticColors.bodyBackground,\n paddingTop: 18,\n selectors: (_b = {},\n _b[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n position: 'sticky',\n top: 0,\n zIndex: 1,\n },\n _b),\n },\n hasCustomNavigation && {\n paddingTop: 'inherit',\n },\n ],\n navigation: [\n classNames.navigation,\n {\n display: 'flex',\n justifyContent: 'flex-end',\n },\n hasCustomNavigation && {\n height: commandBarHeight,\n },\n ],\n contentInner: [\n classNames.contentInner,\n {\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n overflowY: 'hidden',\n },\n ],\n header: [\n classNames.header,\n sharedPaddingStyles,\n {\n alignSelf: 'flex-start',\n },\n hasCloseButton &&\n !hasCustomNavigation && {\n flexGrow: 1,\n },\n hasCustomNavigation && {\n // Ensure that title doesn't shrink if screen is too small\n flexShrink: 0,\n },\n ],\n headerText: [\n classNames.headerText,\n fonts.xLarge,\n {\n color: semanticColors.bodyText,\n lineHeight: '27px',\n overflowWrap: 'break-word',\n wordWrap: 'break-word',\n wordBreak: 'break-word',\n hyphens: 'auto',\n },\n headerClassName,\n ],\n scrollableContent: [\n classNames.scrollableContent,\n {\n overflowY: 'auto',\n },\n isFooterAtBottom && {\n flexGrow: 1,\n display: 'inherit',\n flexDirection: 'inherit',\n },\n ],\n content: [\n classNames.content,\n sharedPaddingStyles,\n {\n paddingBottom: 20,\n },\n isFooterAtBottom && {\n selectors: (_c = {},\n _c[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n flexGrow: 1,\n },\n _c),\n },\n ],\n footer: [\n classNames.footer,\n {\n // Ensure that footer doesn't shrink if screen is too small\n flexShrink: 0,\n borderTop: '1px solid transparent',\n transition: \"opacity \".concat(AnimationVariables.durationValue3, \" \").concat(AnimationVariables.easeFunction2),\n selectors: (_d = {},\n _d[\"@media (min-height: \".concat(ScreenWidthMinMedium, \"px)\")] = {\n position: 'sticky',\n bottom: 0,\n },\n _d),\n },\n isFooterSticky && {\n backgroundColor: semanticColors.bodyBackground,\n borderTopColor: semanticColors.variantBorder,\n },\n ],\n footerInner: [\n classNames.footerInner,\n sharedPaddingStyles,\n {\n paddingBottom: 16,\n paddingTop: 16,\n },\n ],\n subComponentStyles: {\n closeButton: {\n root: [\n classNames.closeButton,\n {\n marginRight: 14,\n color: theme.palette.neutralSecondary,\n fontSize: IconFontSizes.large,\n },\n hasCustomNavigation && {\n marginRight: 0,\n height: 'auto',\n width: '44px',\n },\n ],\n rootHovered: {\n color: theme.palette.neutralPrimary,\n },\n },\n },\n };\n};\n//# sourceMappingURL=Panel.styles.js.map","import { styled } from '../../Utilities';\nimport { PanelBase } from './Panel.base';\nimport { getStyles } from './Panel.styles';\n/**\n * Panel description\n */\nexport var Panel = styled(PanelBase, getStyles, undefined, {\n scope: 'Panel',\n});\n//# sourceMappingURL=Panel.js.map","import { getWindow } from '@fluentui/utilities';\n/**\n * Wrapper for ResizeObserver, with fallback for browsers that don't support ResizeObserver.\n *\n * Calls the onResize callback once layout is complete, and again whenever any of the target(s) change size.\n * Or if ResizeObserver isn't supported, calls the callback whenever the window changes size.\n *\n * @param target - Either a single element, or array of elements to watch for size changes.\n * @param onResize - Callback to be notified when layout is complete, and when the target(s) change size.\n * If this browser supports ResizeObserver, the callback will be passed the ResizeObserverEntry[] array.\n * Otherwise, the entries array will be undefined, and you'll need to find another way to get the element's size,\n * (e.g. clientWidth/clientHeight or getBoundingClientRect).\n *\n * @returns A function to clean up the observer/listener.\n */\nexport var observeResize = function (target, onResize) {\n if (typeof ResizeObserver !== 'undefined') {\n var observer_1 = new ResizeObserver(onResize);\n if (Array.isArray(target)) {\n target.forEach(function (t) { return observer_1.observe(t); });\n }\n else {\n observer_1.observe(target);\n }\n return function () { return observer_1.disconnect(); };\n }\n else {\n // Fallback for browsers that don't support ResizeObserver\n var onResizeWrapper_1 = function () { return onResize(undefined); };\n var win_1 = getWindow(Array.isArray(target) ? target[0] : target);\n if (!win_1) {\n // Can't listen for resize if we can't get the window object\n return function () {\n // Nothing to clean up\n };\n }\n // Listen for the first animation frame, which will happen after layout is complete\n var animationFrameId_1 = win_1.requestAnimationFrame(onResizeWrapper_1);\n win_1.addEventListener('resize', onResizeWrapper_1, false);\n return function () {\n win_1.cancelAnimationFrame(animationFrameId_1);\n win_1.removeEventListener('resize', onResizeWrapper_1, false);\n };\n }\n};\n//# sourceMappingURL=observeResize.js.map","import * as React from 'react';\nimport { useIsomorphicLayoutEffect, useRefEffect } from '@fluentui/react-hooks';\nimport { getWindow } from '@fluentui/utilities';\nimport { observeResize } from './observeResize';\n/**\n * Track whether any items don't fit within their container, and move them to the overflow menu.\n * Items are moved into the overflow menu from back to front, excluding pinned items.\n *\n * The overflow menu button must be the last sibling of all of the items that can be put into the overflow, and it\n * must be hooked up to the `setMenuButtonRef` setter function that's returned by `useOverflow`:\n * ```ts\n * const overflow = useOverflow(...);\n * ```\n * ```jsx\n * \n * // Index 0\n * // Index 1\n * ...\n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\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 return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import{jsxs as e,jsx as t}from\"react/jsx-runtime\";import{useRef as r}from\"react\";import i from\"react-transition-group/CSSTransition\";import{classNamesFunction as n,styled as a,Stack as o,FontIcon as s,IconButton as l,Text as c}from\"@fluentui/react\";import{dataAttribute as d,DataAttributes as p}from\"../../utilities/data-attribute.js\";import\"../../utilities/transitions.js\";import{Heading as m}from\"../typography/Heading/Heading.js\";import{Card as h}from\"./Card.js\";import{CardDataAttributes as g}from\"./Card.types.js\";import{getStyles as u,getDynamicHeightToggleStyles as v}from\"./CollapsibleCard.styles.js\";const N=n(),f=n=>{const{className:a,styles:u,theme:f,heading:x,headingLevel:b,subHeading:A,icon:C,button:j,children:D,iconName:H,openSpeed:y=500,closeSpeed:S=250,onRenderHeading:E,isOpened:w,setIsOpened:z,disabled:I}=n,k=r(null),O=N(u,{theme:f,className:a}),T=v({height:k.current?.clientHeight?k.current?.clientHeight:0,openSpeed:y,closeSpeed:S}),G=e(o,{className:O.header,children:[e(o,{horizontal:!0,horizontalAlign:\"space-between\",verticalAlign:\"center\",children:[E?E(w):e(m,{className:O.heading,variant:b,children:[H&&t(s,{iconName:H,className:I?O.disabledIcon:O.icon}),!H&&C,x]}),e(o,{horizontal:!0,verticalAlign:\"center\",tokens:{childrenGap:24},children:[j,t(l,{className:O.toggleIcon,children:t(s,{iconName:\"ChevronDown\",style:{transform:w?\"rotate(180deg)\":\"rotate(0deg)\",transition:`transform ${S}ms`,color:I?f?.semanticColors.disabledText:\"inherit\"}})})]})]}),A&&t(c,{className:O.subHeading,children:A})]}),L=t(\"div\",{...d(p.Element,g.heading),className:O.headerWrapper,onClick:()=>z(!w),children:G});return t(h,{...d(p.Element,g.card),header:L,...n,children:t(i,{in:!w,timeout:{enter:y,exit:S},appear:!0,classNames:{appear:T.appearEnter,appearActive:T.appearEnterActive,appearDone:T.appearDone,enter:T.enter,enterActive:T.enterActive,enterDone:T.enterDone,exit:T.exit,exitActive:T.exitActive,exitDone:T.exitDone},children:t(\"div\",{...d(p.Element,g.wrapper),className:O.wrapper,children:t(\"div\",{ref:k,className:O.collapseContent,children:D})})})})},x=a(f,u);export{x as CollapsibleCardControlled,f as CollapsibleCardControlledBase};\n//# sourceMappingURL=CollapsibleCardControlled.js.map\n","import{jsx as r}from\"react/jsx-runtime\";import{useState as e,useEffect as o}from\"react\";import{styled as t}from\"@fluentui/react\";import{getStyles as s}from\"./CollapsibleCard.styles.js\";import{CollapsibleCardControlledBase as m}from\"./CollapsibleCardControlled.js\";const n=t=>{const{openOnRender:s}=t,[n,p]=e(!!s);return o((()=>{s&&!n&&p(!0)}),[s]),r(m,{isOpened:n,setIsOpened:p,...t})},p=t(n,s);export{p as CollapsibleCard,n as CollapsibleCardBase};\n//# sourceMappingURL=CollapsibleCard.js.map\n","import{FontWeights as e,FontSizes as o,noWrap as t}from\"@fluentui/react\";import\"../../../utilities/data-attribute.js\";import{getSecondaryFocusStyles as i,getPrimaryFocusStyles as r}from\"../../../utilities/common-styles.js\";import\"../../../utilities/transitions.js\";const l=l=>{const{hasOptions:n,selectedKeys:a,theme:s,showCountCoin:d,className:c,allChecked:p,hideCountCoinWhenAllSelected:u,multiSelect:h,hideSelectAllButton:g,hidden:m,hideSearchOption:b}=l,f=u&&p,C=Array.isArray(a)&&d&&a.length>0&&!f,v=l.listHeight??260,w=`1px solid ${s.palette.neutralLighter}`,x=i(s),y=r(s,void 0,!0),S=h&&!g,k={display:C?\"flex\":\"none\",justifyContent:\"center\",alignItems:\"center\",position:\"absolute\",content:a?`\"${a.length}\"`:void 0,width:24,height:24,borderRadius:\"50%\",backgroundColor:s.palette.themePrimary,color:\"white\",fontWeight:e.semibold,top:3,left:3};return{root:[\"bp-GenericSelect\",{minWidth:0},c],field:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",position:\"relative\",paddingRight:6,paddingLeft:C?30:6,border:`1px solid ${s.semanticColors.inputBorder}`,backgroundColor:s.semanticColors.inputBackground,borderRadius:2,minHeight:32,cursor:\"pointer\",boxSizing:\"border-box\",outline:\"none\",\"&[data-disabled]\":{backgroundColor:s.semanticColors.disabledBackground,borderColor:\"transparent\",color:s.semanticColors.disabledText,cursor:\"default\",pointerEvents:\"none\"},\"&[data-disabled] span\":{color:s.semanticColors.disabledText},\"&:focus-visible::after\":y,\"&::after\":!m&&b?y:void 0,\"&::before\":k,\"&[data-disabled]::before\":{backgroundColor:s.semanticColors.disabledText},\"& span\":{fontSize:o.size14,color:a&&a.length?s.palette.neutralPrimary:s.palette.neutralSecondary},\"& span:first-child\":{whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\"}},fieldContent:{display:\"flex\",width:\"calc(100% - 20px)\"},list:{overflowY:\"auto\",maxHeight:n?v:\"auto\",padding:0,margin:0,listStyleType:\"none\"},cell:{position:\"relative\",fontSize:o.size14,cursor:\"pointer\",\"&:hover\":{backgroundColor:s.semanticColors.listHeaderBackgroundHovered},outline:\"none\",\"&:focus-visible::after\":x},cellDisabled:{color:s.semanticColors.disabledText,backgroundColor:s.semanticColors.disabledBackground,cursor:\"default\",\"&:hover\":{backgroundColor:s.semanticColors.disabledBackground}},heading:{fontSize:o.size14,fontWeight:e.semibold,padding:10,color:s.palette.themePrimary},divider:{borderBottom:w},searchOption:{\"& .ms-SearchBox-iconContainer\":{display:\"none\"}},singleOption:{width:\"100%\",padding:10,textAlign:\"left\",\"&.singleOption--selected\":{backgroundColor:s.semanticColors.listHeaderBackgroundPressed}},multiOption:{display:\"flex\",alignItems:\"center\",width:\"100%\",padding:10,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",\"& > div:first-child\":{paddingRight:8},\"& span\":{overflow:\"hidden\",textOverflow:\"ellipsis\"}},calloutFooter:{display:\"flex\",justifyContent:S?\"space-between\":\"flex-end\",borderTop:w,padding:4},clearAllOption:{},selectAllButton:{...t,\"&:hover\":{color:\"initial\"},\"&:hover:disabled\":{color:s.semanticColors.disabledText}},showMore:{position:\"relative\",color:s.palette.white,cursor:\"pointer\",fontStyle:\"italic\",padding:10,outline:\"none\",\"&:focus-visible::after\":x,\"&:hover\":{backgroundColor:s.semanticColors.listHeaderBackgroundHovered}},showMoreEllipses:{color:s.palette.themePrimary,marginRight:8},showMoreText:{color:s.palette.neutralSecondary},searchOptionRow:{padding:8,borderBottom:n?w:\"none\"},label:{color:m?\"initial\":s.semanticColors.inputFocusBorderAlt,cursor:\"pointer\",\"&[data-disabled]\":{pointerEvents:\"none\",cursor:\"default\",color:s.semanticColors.disabledText}},caretDown:{color:s.palette.neutralSecondaryAlt,fontSize:o.size12,marginLeft:8},count:{paddingLeft:4}}};export{l as getGenericSelectStyles};\n//# sourceMappingURL=GenericSelect.styles.js.map\n","import{jsxs as e,Fragment as o,jsx as t}from\"react/jsx-runtime\";import{IKeyCodes as i}from\"@bps/utils\";import{ActionButton as a,FontSizes as n}from\"@fluentui/react\";import{dataAttribute as l,DataAttributes as r}from\"../../utilities/data-attribute.js\";import\"../../utilities/transitions.js\";const s=({onClick:s,className:c,dataAttr:d=\"clear-button\",disabled:m,iconName:u=\"Clear\",buttonText:b=\"Clear\",closeCalendar:p})=>e(o,{children:[p&&t(a,{...l(r.Element,\"date-range-close-button\"),onClick:p,onKeyDown:e=>{e.code!==i.Space&&e.code!==i.Enter||p()},tabIndex:0,\"data-is-focusable\":\"true\",iconProps:{iconName:\"DoubleChevronUp\"},styles:{labelHovered:{color:\"initial\"},icon:{fontSize:n.size12}},className:c,children:\"Close\"}),t(a,{...l(r.Element,d),onClick:s,onKeyDown:e=>{e.code!==i.Space&&e.code!==i.Enter||s(e)},disabled:m,tabIndex:0,\"data-is-focusable\":\"true\",iconProps:{iconName:u},styles:{labelHovered:{color:\"initial\"},icon:{fontSize:n.size12}},className:c,children:b})]});export{s as ClearCloseButton};\n//# sourceMappingURL=ClearCloseButton.js.map\n","import{jsx as e,jsxs as t,Fragment as l}from\"react/jsx-runtime\";import{Stack as o,ActionButton as i,FontSizes as n}from\"@fluentui/react\";import{dataAttribute as s,DataAttributes as r}from\"../../../utilities/data-attribute.js\";import\"../../../utilities/transitions.js\";import{ClearCloseButton as a}from\"../../buttons/ClearCloseButton.js\";const c=({classNames:c,selectedKeys:d,hide:u,onChangeSelectedKeys:m,onAllSelected:p,multiSelect:h,selectAllButtonText:f=\"Select all\",hideSelectAllButton:A,hideClearButton:C,onRenderCalloutFooter:b,disabled:y,options:S,allChecked:k,onClear:B,searchText:N})=>{if(!b&&C&&A)return null;const g=S.every((e=>e.disabled)),j=e=>{e.preventDefault(),B()},x=()=>{if(y)return;const e=S.filter((e=>!e.disabled||d?.includes(e.key))).map((e=>e.key));p&&p(!0),m(e),u()};if(C&&!A)return null;const z=()=>t(l,{children:[!A&&h&&e(i,{...s(r.Element,\"select-all-options\"),iconProps:{iconName:\"AllApps\"},styles:{icon:{fontSize:n.size12}},disabled:y||k||g,onClick:x,className:c.selectAllButton,children:f}),!C&&e(a,{onClick:j,disabled:(!d||!d.length||g)&&!N,dataAttr:\"clear-options\",className:c.clearAllOption})]});return e(o,{horizontal:!0,verticalAlign:\"center\",horizontalAlign:\"space-between\",className:c.calloutFooter,children:b?b(z):z()})};export{c as GenericSelectCalloutFooter};\n//# sourceMappingURL=GenericSelectCalloutFooter.js.map\n","import{isDefined as t}from\"@bps/utils\";const e=e=>{const{options:r,selectedKeys:i=[],showAllSelected:n,multiSelect:l}=e,o=r.map((t=>{if(l&&Array.isArray(i)?i.includes(t.key):i===t.key)return t})).filter(t);if(!l){return{text:o[0]?.text??\"\"}}if(n){return{text:o.map((t=>t?.text)).join(\", \")}}return{text:o.find((t=>t.key===i[0]))?.text??\"\",count:o.length>1?`(+${o.length-1})`:void 0}};export{e as generateResultsPlaceholder};\n//# sourceMappingURL=utils.js.map\n","import{jsxs as e,jsx as t}from\"react/jsx-runtime\";import{IKeyCodes as l}from\"@bps/utils\";import{Label as i,FontIcon as o}from\"@fluentui/react\";import{dataAttribute as d,DataAttributes as n}from\"../../../utilities/data-attribute.js\";import\"../../../utilities/transitions.js\";import{generateResultsPlaceholder as s}from\"./utils.js\";const a=({onClick:a,selectedKeys:c,showAllSelected:r,options:m,classNames:u,placeholder:h,multiSelect:p,label:f,required:v,disabled:b,onRenderFieldContent:C,onRenderCount:N,hideCount:w})=>{const{text:x,count:j}=c&&c.length>0?s({showAllSelected:r,selectedKeys:c,options:m,multiSelect:p}):{text:h??\"\"};return e(\"div\",{children:[f&&t(i,{\"data-disabled\":b||void 0,required:v,className:u.label,onClick:a,children:f}),e(\"div\",{...d(n.Element,\"select-field\"),\"data-disabled\":b||void 0,className:u.field,onClick:a,tabIndex:b?void 0:0,\"data-is-focusable\":b?void 0:\"true\",onKeyDown:e=>{b||e.code!==l.Enter||a(e)},children:[e(\"div\",{className:u.fieldContent,children:[t(\"span\",{\"data-selected\":!!(c&&c.length>0)||void 0,children:C?C(m.filter((e=>c&&c.includes(e.key)))):x}),!w&&j&&(N?N(j):t(\"span\",{\"data-selected\":!!(c&&c.length>0)||void 0,...d(n.Element,\"select-field-count\"),className:u.count,children:j}))]}),t(o,{className:u.caretDown,iconName:\"ChevronDown\"})]})]})};export{a as GenericSelectField};\n//# sourceMappingURL=GenericSelectField.js.map\n","import{jsxs as o,jsx as e}from\"react/jsx-runtime\";import{IKeyCodes as t}from\"@bps/utils\";import{FontIcon as i}from\"@fluentui/react\";import{dataAttribute as r,DataAttributes as s}from\"../../../utilities/data-attribute.js\";import\"../../../utilities/transitions.js\";const n=\"show-more-option\",a=({initialNumOfOptions:a,onRenderShowMore:l,onClickShowMore:m,options:c,classNames:p,hideShowMoreOption:h})=>{if(h)return null;const u=c.length-(a||0),d=l?l(u):\"Show more\";return o(\"div\",{...r(s.Element,n),className:p.showMore,onClick:o=>{m?.(o)},onKeyDown:o=>{o.code!==t.Space&&o.code!==t.Enter||m?.(o)},tabIndex:0,\"data-is-focusable\":\"true\",children:[e(\"span\",{className:p.showMoreEllipses,children:e(i,{iconName:\"More\"})}),e(\"span\",{className:p.showMoreText,children:d})]})};export{a as GenericSelectShowMoreOption,n as SHOW_MORE_DATA_ATTR};\n//# sourceMappingURL=GenericSelectShowMoreOption.js.map\n","import{useRef as e,useEffect as i,createElement as t}from\"react\";import{jsxs as o,Fragment as n,jsx as s}from\"react/jsx-runtime\";import{IKeyCodes as r}from\"@bps/utils\";import{FocusZone as l,FocusZoneDirection as a,mergeStyles as c,Toggle as d,Checkbox as m}from\"@fluentui/react\";import{dataAttribute as u,DataAttributes as p}from\"../../../utilities/data-attribute.js\";import\"../../../utilities/transitions.js\";import{GenericSelectShowMoreOption as h}from\"./GenericSelectShowMoreOption.js\";const f=({options:f,classNames:O,multiSelect:b,selectedKeys:g,onRenderOption:N,optionsWithToggle:v,onSelectKey:S,hideSearchOption:k,showMoreOptionProps:y})=>{const x=e(null);i((()=>{if(k&&x.current){const e=x.current?.querySelectorAll('li[data-is-focusable=\"true\"]');e.length>0&&e[0].focus()}}),[k]);const w=!(y?.initialNumOfOptions&&f.length>y.initialNumOfOptions),M=w?f:f.slice(0,y?.initialNumOfOptions);return o(n,{children:[s(\"ul\",{ref:e=>{k&&(x.current=e)},className:O.list,children:s(l,{className:O.focusZone,direction:a.vertical,isCircularNavigation:!0,role:\"grid\",children:M.map(((e,i)=>{if(!!e.isHeading)return t(\"li\",{...u(p.Element,\"option-heading\"),className:c(O.heading,e.isDivider?O.divider:void 0),key:i},e.text);const n=i=>{if(i.preventDefault(),!e.disabled)return S(e)};return t(\"li\",{...u(p.Element,\"select-option\"),...u(p.Id,e.key),key:i,tabIndex:0,\"data-is-focusable\":\"true\",className:c(O.cell,e.disabled?O.cellDisabled:void 0,e.isDivider?O.divider:void 0),onClick:n,onKeyDown:e=>{e.code===r.Space&&n(e)}},b&&(e=>{const i=!!g&&g.includes(e.key);return o(\"div\",{className:O.multiOption,children:[v?s(d,{\"data-is-focusable\":!1,disabled:e.disabled,tabIndex:-1,checked:i,styles:{root:{marginBottom:0,marginRight:4},container:{marginTop:0}}}):s(m,{inputProps:{\"data-is-focusable\":!1,tabIndex:-1},checked:i,disabled:e.disabled,className:O.checkbox}),N?N({...e,selected:i}):s(\"span\",{children:e.text})]})})(e),!b&&s(\"div\",{className:`${O.singleOption} ${g===e.key?\"singleOption--selected\":\"\"}`,children:N?N(e):e.text}))}))})}),s(h,{hideShowMoreOption:w,onClickShowMore:y?.onClickShowMore,options:f,onRenderShowMore:y?.onRenderShowMore,initialNumOfOptions:y?.initialNumOfOptions,classNames:O})]})};export{f as GenericSelectOptionsList};\n//# sourceMappingURL=GenericSelectOptionsList.js.map\n","import{jsxs as e,Fragment as r,jsx as t}from\"react/jsx-runtime\";import{Fragment as a}from\"react\";import{Spinner as o,MessageBar as s,MessageBarType as i}from\"@fluentui/react\";import{dataAttribute as c,DataAttributes as m}from\"../../../utilities/data-attribute.js\";import\"../../../utilities/transitions.js\";import{SearchBox as n}from\"../../SearchBox/SearchBox.js\";const l=({loading:l,errorMessage:p,hideSearchOption:h,classNames:d,searchBoxProps:x,searchText:u,setSearchText:f,...g})=>e(r,{children:[!h&&t(\"div\",{className:d.searchOptionRow,children:t(n,{...c(m.Element,\"select-search-box\"),...x,value:u,onChange:(e,r)=>{f(r??\"\")},placeholder:void 0,autoFocus:!0,className:d.searchOption})}),l?t(o,{styles:{root:{padding:\"5px 100px\"}}}):p?t(s,{messageBarType:i.error,children:p}):t(a,{...g})]});export{l as GenericSelectSearchBox};\n//# sourceMappingURL=GenericSelectSearchBox.js.map\n","import{jsxs as e,jsx as t}from\"react/jsx-runtime\";import{useRef as l,useState as o,useEffect as n}from\"react\";import{classNamesFunction as i,styled as s,Callout as r,Overlay as d}from\"@fluentui/react\";import{getGenericSelectStyles as c}from\"./GenericSelect.styles.js\";import{GenericSelectCalloutFooter as a}from\"./GenericSelectCalloutFooter.js\";import{GenericSelectField as h}from\"./GenericSelectField.js\";import{GenericSelectOptionsList as u}from\"./GenericSelectOptionsList.js\";import{GenericSelectSearchBox as p}from\"./GenericSelectSearchBox.js\";const m=i(),S=s((({options:i,selectedKeys:s,loading:c,errorMessage:S,onChangeSelectedKeys:C,multiSelect:y,selectAllButtonText:f,onRenderOption:g,showCountCoin:A,hideSelectAllButton:B,showAllSelected:O,styles:k,searchBoxProps:x,onListOpened:b,placeholder:K,className:v,label:F,required:R,calloutWidth:W,listHeight:N,hideSearchOption:T,hideClearButton:j,hideCountCoinWhenAllSelected:w,optionsWithToggle:G,onAllSelected:M,isAllSelected:P,theme:q,disabled:D,onRenderFieldContent:H,onRenderCount:E,disableCallout:L,showMoreOptionProps:z,onRenderCalloutFooter:I,onBlur:V,onFocus:J,hideCount:Q,onRenderField:U,preventDismissOnEvent:X,...Y})=>{const Z=l(null),[$,_]=o(!0),[ee,te]=o(\"\"),le=l(!1);n((()=>{le.current&&b&&b(!$),le.current=!0}),[$]);const oe=P??i.every((e=>s&&s.includes(e.key))),ne=m(k,{theme:q,hasOptions:!!i.length,selectedKeys:s,showCountCoin:A,className:v,hideCountCoinWhenAllSelected:w,listHeight:N,allChecked:oe,multiSelect:y,hideSelectAllButton:B,hidden:$,hideSearchOption:T}),ie=()=>{_((e=>!e))},se=!y||B||j?void 0:185,re={options:i,selectedKeys:s,onChangeSelectedKeys:C,hidden:$,setHidden:_,label:F,disabled:D,required:R,placeholder:K};return e(\"div\",{...Y,ref:Z,className:ne.root,children:[U?U(re):t(h,{onClick:ie,disabled:D,selectedKeys:s,showAllSelected:O,options:i,placeholder:K,classNames:ne,multiSelect:y,label:F,required:R,onRenderFieldContent:H,onRenderCount:E,hideCount:Q}),!$&&t(r,{isBeakVisible:!1,calloutWidth:W??Z.current?.offsetWidth,calloutMinWidth:se,target:Z,hidden:!1,onDismiss:ie,gapSpace:1,onBlur:V,onFocus:J,preventDismissOnEvent:X,children:e(\"div\",{style:{position:\"relative\"},children:[L&&t(d,{styles:{root:{zIndex:1000001}}}),t(p,{loading:!!c,errorMessage:S,classNames:ne,searchBoxProps:x,hideSearchOption:T,searchText:ee,setSearchText:te,children:t(u,{multiSelect:y,classNames:ne,onRenderOption:g,selectedKeys:s,onSelectKey:e=>{if(y){let t=[e.key];s&&(t=s.includes(e.key)?s.filter((t=>t!==e.key)):[...s,e.key]),C(t)}else{if(!Array.isArray(s)&&s===e.key)return;C(e.key),ie()}},hideSearchOption:T,optionsWithToggle:G,showMoreOptionProps:z,options:i})}),t(a,{classNames:ne,hide:ie,options:i,selectedKeys:s,onChangeSelectedKeys:C,onRenderCalloutFooter:I,multiSelect:y,onAllSelected:M,hideSelectAllButton:B,selectAllButtonText:f,hideClearButton:j,allChecked:oe,disabled:D,onClear:()=>{const e=y?s.filter((e=>i.find((t=>t.key===e))?.disabled)):\"\";C(e),M&&M(!1),te(\"\"),x.onSearch?.(\"\"),ie()},searchText:ee})]})})]})}),c);export{S as GenericSelect};\n//# sourceMappingURL=GenericSelect.js.map\n","import{useState as e}from\"react\";const t=(t,o)=>{const[r,s]=e(\"\");return{filteredOptions:t.filter((e=>o&&o.includes(e.key)&&!e.text.toLowerCase().includes(r.toLowerCase())||e.text.toLowerCase().includes(r.toLowerCase()))).filter((e=>!(e.isHeading&&r))),onSearch:s}};export{t as useFilteredOptions};\n//# sourceMappingURL=useFilteredOptions.js.map\n","import{FontWeights as e,IconFontSizes as t,FontSizes as i}from\"@fluentui/react\";import\"../../../utilities/data-attribute.js\";import{mergeFuncStyles as o}from\"../../../utilities/fluent-ui-utils.js\";import{CanvasMeasure as r}from\"../../../utilities/canvas-measure.js\";import\"../../../utilities/transitions.js\";const s=(e,t)=>e.disabled?t.palette.neutralTertiary:e.hasErrorMessage?t.semanticColors.errorText:e.focused?t.semanticColors.inputFocusBorderAlt:\"initial\",n=new r,l=r=>{const{theme:l,value:a,disabled:d,readonly:c}=r,u={position:\"absolute\",content:\"''\",borderWidth:1,borderStyle:\"solid\",borderColor:l.palette.neutralSecondary,pointerEvents:\"none\",height:18,top:-9,left:-3},m={position:\"relative\",pointerEvents:\"initial\",cursor:d?\"default\":\"pointer\",fontSize:i.mediumPlus,color:d?l.semanticColors.disabledText:l.semanticColors.inputIcon,outline:\"none\",\"&:focus-visible::after\":[u,{width:21}]};return{mergeTextFieldStyles:(t,i)=>{const{defaultFontStyle:r}=l;n.fontSize=r?.fontSize,n.fontFamily=r?.fontFamily.split(\",\")[0],\"object\"==typeof t&&t.field?n.fontWeight=t.field.fontWeight:i&&(n.fontWeight=e.semibold);const d=n.getTextWidth(a);return o((({theme:e,hasErrorMessage:t,focused:i,disabled:o})=>({field:{width:d,lineHeight:30,paddingRight:4,boxSizing:\"content-box\",textOverflow:\"initial\",cursor:c?\"pointer\":\"text\"},suffix:{position:\"relative\",backgroundColor:\"transparent\",padding:\"7px 7px 7px 0px\",lineHeight:0,\"&:before\":{position:\"absolute\",content:\"''\",display:o?\"block\":\"none\",width:\"100%\",height:\"100%\",backgroundColor:e.semanticColors.disabledBackground}},fieldGroup:{width:\"min-content\",justifyContent:\"space-between\"},subComponentStyles:{label:{root:{color:s({hasErrorMessage:t,disabled:o,focused:i},e)}}}})),t)},clearIconStyles:e=>({position:\"relative\",visibility:e?\"visible\":\"hidden\",cursor:d?\"default\":\"pointer\",marginRight:4,fontSize:t.small,outline:\"none\",\"&:focus-visible::after\":[u,{width:16}]}),datePickerCalloutStyle:{root:{\".ms-DatePicker-day--disabled\":{color:l.semanticColors.disabledText},\".ms-DatePicker-nextYear--disabled, .ms-DatePicker-prevYear--disabled\":{color:l.semanticColors.disabledText},\".ms-DatePicker-nextMonth--disabled, .ms-DatePicker-prevMonth--disabled, .ms-DatePicker-monthOption--disabled\":{color:l.semanticColors.disabledText},\".ms-DatePicker-goToday\":{right:\"13px\"},\".ms-DatePicker-goToday[disabled]\":{color:l.semanticColors.disabledText},\".ms-DatePicker-goToday:hover\":{textDecoration:\"underline\"}}},calendarIconStyles:m}};export{l as getDatePickerStyles};\n//# sourceMappingURL=DatePicker.styles.js.map\n","const _={fullValidDate:/[0-9][0-9]\\/[0-1][0-9]\\/[0-9][0-9][0-9][0-9]/g,fullDate:/[0-9][0-9]\\/[0-9][0-9]\\/[0-9][0-9][0-9][0-9]/g,sixDigitsDate:/[0-9][0-9]\\/[0-1][0-9]\\/[0-9][0-9]__/g,noDate:/__\\/__\\/____/g,dayOfDate:/^[0-9]*/g},L=\"99/99/9999\",t=\"date-picker-calendar-btn\";var y,T;!function(_){_.DAY_DEFAULT_FORMAT=\"dd/LL/yyyy\",_.SHORT_YEAR_FORMAT=\"dd/LL/yy\",_.DAY_TEXT_MONTH_YEAR_SHORT=\"d LLL yyyy\",_.DAY_ONLY_NUMBER=\"d\",_.MONTH_ONLY_TEXT=\"LLLL yyyy\",_.SHORT_DAY_AND_MONTH=\"d LLL\",_.DAY_TEXT_MONTH_YEAR=\"dd LLLL yyyy\"}(y||(y={})),function(_){_.TH=\"th\",_.ST=\"st\",_.RD=\"rd\",_.ND=\"nd\"}(T||(T={}));const a={leftNavigation:\"ChevronLeft\",rightNavigation:\"ChevronRight\"};export{t as CALENDAR_ICON_DATA_ATTR,y as DataTimeFormats,T as DaySuffixes,L as SINGLE_DATE_MASK,a as navigationIcons,_ as regExps};\n//# sourceMappingURL=DatePicker.types.js.map\n","import{DateTime as t}from\"@bps/utils\";import{DateRangeType as e}from\"@fluentui/react\";import{DaySuffixes as r,CALENDAR_ICON_DATA_ATTR as o,DataTimeFormats as a,regExps as _}from\"./DatePicker.types.js\";const T=(e,r)=>{if(e?.endsWith(\"__\")){const o=e.slice(0,e.length-2);return t.fromFormat(o,r??a.SHORT_YEAR_FORMAT).isValid}return!!e&&t.fromFormat(e,r??a.DAY_DEFAULT_FORMAT).isValid},m=new Intl.PluralRules(\"en-US\",{type:\"ordinal\"}),n=new Map([[\"one\",r.ST],[\"two\",r.ND],[\"few\",r.RD],[\"other\",r.TH]]),s=t=>{const e=m.select(t);return`${t}${n.get(e)}`},O=t=>{const e=t.startOf(\"week\"),r=t.startOf(\"week\").plus({days:6});return e.year!==r.year?`${e.toFormat(a.DAY_TEXT_MONTH_YEAR_SHORT)} - ${r.toFormat(a.DAY_TEXT_MONTH_YEAR_SHORT)}`:e.month!==r.month?`${e.toFormat(a.SHORT_DAY_AND_MONTH)} - ${r.toFormat(a.DAY_TEXT_MONTH_YEAR_SHORT)}`:`${e.toFormat(a.DAY_ONLY_NUMBER)} - ${r.toFormat(a.DAY_TEXT_MONTH_YEAR_SHORT)}`},A=(r,o)=>r?o===e.Week?O(t.fromJSDate(r)):o===e.Month?t.fromJSDate(r).toFormat(a.MONTH_ONLY_TEXT):t.fromJSDate(r).toFormat(a.DAY_TEXT_MONTH_YEAR).replace(_.dayOfDate,s(r.getDate())):r,D=t=>{const e=t?.target?.dataset?.bpTestElement;return e===o||\"resize\"===t.type};export{O as formatDateRange,A as getTimeRangeReadOnlyValue,T as isValidDateByFormat,s as ordinal,D as preventDismissOnEvent};\n//# sourceMappingURL=utils.js.map\n","import{jsx as e}from\"react/jsx-runtime\";import{TextField as r}from\"@fluentui/react\";import{getTimeRangeReadOnlyValue as t}from\"./utils.js\";const o=({calendarProps:o,setTextFieldRef:a,value:m,commonProps:l,valueOverride:i})=>e(r,{...l,elementRef:e=>{e&&a&&a(e)},readOnly:!0,value:i??t(m,o?.dateRangeType)});export{o as ReadOnlyInFormatField};\n//# sourceMappingURL=ReadOnlyInFormatField.js.map\n","import{jsxs as e,Fragment as t,jsx as a}from\"react/jsx-runtime\";import{memo as i}from\"react\";import{IKeyCodes as o}from\"@bps/utils\";import{classNamesFunction as r,useTheme as l,FontIcon as n,mergeStyles as s}from\"@fluentui/react\";import{dataAttribute as c,DataAttributes as d}from\"../../../utilities/data-attribute.js\";import\"../../../utilities/transitions.js\";import{getDatePickerStyles as m}from\"./DatePicker.styles.js\";import{CALENDAR_ICON_DATA_ATTR as p}from\"./DatePicker.types.js\";const u=r(),f=i((({allowClear:i,onClearClicked:r,toggleHideCalendar:f,styles:b,hasValue:C,disabled:y,hideCalendarIcon:k})=>{const h=u(b),j=l(),{clearIconStyles:I,calendarIconStyles:v}=m({theme:j,disabled:y});return e(t,{children:[i&&a(\"div\",{children:a(n,{...c(d.Element,\"date-picker-clear-btn\"),tabIndex:y?void 0:0,\"data-is-focusable\":!y&&!!C,iconName:\"Clear\",onClick:r,onKeyDown:e=>{!y&&i&&r&&e.code===o.Enter&&r()},className:s(I(C))})}),!k&&a(n,{...c(d.Element,p),tabIndex:y?void 0:0,\"data-is-focusable\":y?void 0:\"true\",onClick:()=>{f()},onKeyDown:e=>{y||e.code!==o.Enter||f()},iconName:\"Calendar\",className:s(v,h.icon)})]})}));export{f as Suffix};\n//# sourceMappingURL=Suffix.js.map\n","import{jsx as e,Fragment as t}from\"react/jsx-runtime\";import{useRef as r,useState as a,useEffect as o}from\"react\";import{IKeyCodes as i,DateTime as l}from\"@bps/utils\";import{useTheme as s,MaskedTextField as n}from\"@fluentui/react\";import{dataAttribute as d,DataAttributes as m}from\"../../../utilities/data-attribute.js\";import{setComponentRef as u,focusElement as c}from\"../../../utilities/fluent-ui-utils.js\";import\"../../../utilities/transitions.js\";import{getDatePickerStyles as p}from\"./DatePicker.styles.js\";import{SINGLE_DATE_MASK as f,regExps as g,DataTimeFormats as v}from\"./DatePicker.types.js\";import{ReadOnlyInFormatField as y}from\"./ReadOnlyInFormatField.js\";import{Suffix as D}from\"./Suffix.js\";import{getTimeRangeReadOnlyValue as b,isValidDateByFormat as x}from\"./utils.js\";let R;const F=({readOnlyInFormat:F,valueOverride:h,allowClear:w,textFieldProps:C,calendarProps:P,name:j,value:E,adjustWidthAsPlaceholder:S,formatDateValidationDelay:T,onChange:k,toggleHideCalendar:M,setTextFieldRef:N,hideCalendarIcon:O,overrideBold:I,mask:B=f})=>{const V=s(),_=r(null),A=E?`${String(E.getDate()).padStart(2,\"0\")}/${String(E.getMonth()+1).padStart(2,\"0\")}/${String(E.getFullYear()).padStart(4,\"0\")}`:void 0,[G,H]=a(!1),[K,$]=a(A),Y=(F&&void 0===h?b(E??new Date,P?.dateRangeType):void 0)||(h||void 0)||B,W=!E&&!h,{mergeTextFieldStyles:q}=p({theme:V,value:S?F||!G&&!F?W?C?.placeholder:Y:f:Y,readonly:F});o((()=>{A?$(A):E||G||$(void 0)}),[K,E,G,A]),o((()=>()=>{clearTimeout(R)}),[]);const z=()=>{C?.disabled||(E&&(H(!1),k&&k(void 0)),c(_.current))},J=e=>{const t=e.target.value;if(t&&new RegExp(g.sixDigitsDate).test(t)&&x(t)){const e=t.replace(/_/g,\"\"),r=l.fromFormat(e,v.SHORT_YEAR_FORMAT).year,[a,o]=e.split(\"/\");let i=new Date(r,Number(o)-1,Number(a));P?.maxDate&&i>P?.maxDate&&(i=new Date(r-100,Number(o)-1,Number(a))),i&&k&&k(i)}C?.onBlur&&C.onBlur(e),H(!1)},L={...d(m.Element,\"date-picker\"),\"data-selected\":!(!E&&!h)||void 0,name:j,value:K,...C,styles:q(C?.styles,I),onRenderSuffix:()=>e(D,{hideCalendarIcon:O,styles:C?.styles,onClearClicked:z,toggleHideCalendar:()=>{M&&(M(),c(_.current))},allowClear:w,hasValue:!!E,disabled:C?.disabled}),onFocus:e=>{C?.onFocus&&C.onFocus(e),H(!0)},errorMessage:C?.disabled?void 0:C?.errorMessage,onClick:F?M:void 0};return e(t,{children:F?e(y,{valueOverride:h,commonProps:L,value:E,calendarProps:P,setTextFieldRef:N}):e(n,{...L,componentRef:e=>{_.current||(_.current=e),u(L.componentRef,e)},ref:e=>{e&&N&&N(e)},mask:!C?.placeholder||G||E?B:void 0,onChange:e=>{const t=e.target.value.replace(/_/g,\"\");if(k)if(t&&x(t)&&new RegExp(g.fullValidDate).test(t)){const[e,r,a]=t.split(\"/\"),o=new Date(Number(a),Number(r)-1,Number(e));k(o)}else k(void 0)},onBlur:J,onKeyPress:e=>{C?.disabled||e.key!==i.Enter||(e.preventDefault(),J(e)),C&&C.onKeyPress&&C.onKeyPress(e)},onGetErrorMessage:e=>{if(C?.disabled)return;const t=!!e&&!new RegExp(g.noDate).test(e)&&!new RegExp(g.fullValidDate).test(e);return t?new Promise((e=>{t&&(R=setTimeout((()=>e(\"Invalid date format.\")),T))})):(clearTimeout(R),C?.onGetErrorMessage?C.onGetErrorMessage(e):void 0)}})})};export{F as DatePickerInputField};\n//# sourceMappingURL=DatePickerInputField.js.map\n","import{jsx as t}from\"react/jsx-runtime\";import{Link as a}from\"@fluentui/react\";const e=({calendarProps:e})=>{const o=e?.today||new Date,n=o.getMonth(),r=e.calendarDayProps?.navigatedDate?.getMonth()===n&&e.calendarMonthProps?.navigatedDate?.getMonth()===n;return t(a,{styles:{root:{paddingLeft:16,paddingBottom:8,fontSize:12}},disabled:r,onClick:()=>{e.calendarDayProps?.onNavigateDate?.(o,!0),e.calendarMonthProps?.onNavigateDate?.(o,!0)},children:\"Today\"})};export{e as DatePickerTodayLink};\n//# sourceMappingURL=DatePickerTodayLink.js.map\n","import{jsxs as e,jsx as t}from\"react/jsx-runtime\";import{useRef as a,useState as r,useEffect as o}from\"react\";import{DateTime as i}from\"@bps/utils\";import{useTheme as n,mergeStyleSets as s,Callout as l,Calendar as d,DayOfWeek as c}from\"@fluentui/react\";import\"../../../utilities/data-attribute.js\";import{calendarStrings as m}from\"../../../utilities/calendar-strings.js\";import\"../../../utilities/transitions.js\";import{getDatePickerStyles as p}from\"./DatePicker.styles.js\";import{navigationIcons as u}from\"./DatePicker.types.js\";import{DatePickerInputField as D}from\"./DatePickerInputField.js\";import{DatePickerTodayLink as y}from\"./DatePickerTodayLink.js\";import{preventDismissOnEvent as f}from\"./utils.js\";const P=({value:P,onChange:g,allowClear:v,calendarProps:h,textFieldProps:j,name:k,className:F,adjustWidthAsPlaceholder:b,formatDateValidationDelay:C=3e3,readOnlyInFormat:w,overrideBold:x,onRenderHeader:N,onRenderFooter:S,...T})=>{const B=n(),I=a(null),O=a(null),[R,V]=r(!0),[M,W]=r(h?.today||new Date),[A,H]=r(h?.today||new Date);o((()=>{R||setTimeout((()=>{O.current&&O.current.focus()}),0)}),[R]);const q=()=>{j?.disabled||V((e=>!e))},{datePickerCalloutStyle:E}=p({theme:B}),G=P&&i.fromJSDate(P).isValid?P:void 0,J={navigatedDate:M,onNavigateDate:(e,t)=>{W(e),t&&H(e)},...h?.calendarDayProps,styles:s(h?.calendarDayProps?.styles,{root:{paddingBottom:2}})},L={...h,calendarDayProps:J,calendarMonthProps:{navigatedDate:A,onNavigateDate:(e,t)=>{H(e),t&&J.onNavigateDate?.(e,!1)},...h?.calendarMonthProps}};return e(\"div\",{...T,className:`bp-DatePicker ${F}`,children:[t(D,{value:G,onChange:g,name:k,allowClear:v,textFieldProps:j,calendarProps:L,adjustWidthAsPlaceholder:b,formatDateValidationDelay:C,readOnlyInFormat:w,toggleHideCalendar:q,setTextFieldRef:e=>{I.current=e.querySelector(\"input\")},overrideBold:!0}),!R&&e(l,{target:I,onDismiss:q,preventDismissOnEvent:f,isBeakVisible:!1,gapSpace:1,styles:E,children:[N&&N(),t(d,{...L,componentRef:e=>{O.current=e},allFocusable:!0,showGoToToday:!1,firstDayOfWeek:c.Monday,navigationIcons:u,strings:m,value:G,onSelectDate:e=>{g(e),q()}}),S?S():t(y,{calendarProps:L})]})]})};export{P as DatePicker};\n//# sourceMappingURL=DatePicker.js.map\n","import{jsxs as o,jsx as r}from\"react/jsx-runtime\";import{useState as t,useEffect as e}from\"react\";import{DateTime as n}from\"@bps/utils\";import{Stack as i,IconButton as c,Text as a}from\"@fluentui/react\";const m=({onChanged:m,year:l})=>{const[s,p]=t(l?n.fromJSDate(l):n.now());return e((()=>{m(s.toJSDate())}),[s,m]),o(i,{horizontal:!0,verticalAlign:\"center\",children:[r(c,{iconProps:{iconName:\"ChevronLeft\"},onClick:()=>p((o=>o.minus({year:1})))}),r(a,{styles:{root:{lineHeight:20}},children:s.toFormat(\"yyyy\")}),r(c,{iconProps:{iconName:\"ChevronRight\"},onClick:()=>p((o=>o.plus({year:1})))})]})};export{m as YearCarousel};\n//# sourceMappingURL=YearCarousel.js.map\n","import{jsxs as e,jsx as t}from\"react/jsx-runtime\";import{useRef as a,useState as r,useEffect as o}from\"react\";import{DateTime as i}from\"@bps/utils\";import{useTheme as n,Stack as s,Calendar as l,DayOfWeek as d}from\"@fluentui/react\";import\"../../../../utilities/data-attribute.js\";import{calendarStrings as c}from\"../../../../utilities/calendar-strings.js\";import\"../../../../utilities/transitions.js\";import{navigationIcons as m}from\"../DatePicker.types.js\";import{DatePickerInputField as p}from\"../DatePickerInputField.js\";import{YearCarousel as u}from\"./YearCarousel.js\";const g=({label:g,autoFocus:h,hiddenCalendar:D,value:f,onChange:y,name:v,resetDatesRange:S,maxDate:j,minDate:k,errorMessage:w,id:C,today:P})=>{const b=n(),I=a(f?i.fromJSDate(f).toISODate():void 0),M=a(null),[x,F]=r(new Date);o((()=>{f&&I.current!==i.fromJSDate(f).toISODate()&&F(f)}),[f]),o((()=>{h&&!D&&setTimeout((()=>{M.current&&M.current.focus()}),0)}),[D,h]);return e(s,{tokens:{childrenGap:b.spacing.s1},children:[e(s,{horizontal:!0,verticalAlign:\"end\",tokens:{childrenGap:b.spacing.s1},children:[t(p,{name:v,value:f,onChange:y,textFieldProps:{id:C,styles:{root:{width:112},fieldGroup:{padding:0}},label:g,errorMessage:w},hideCalendarIcon:!0,allowClear:!0}),t(u,{year:f,onChanged:F})]}),t(l,{today:P,onSelectDate:e=>{y(e),S()},value:f,allFocusable:!0,componentRef:e=>{M.current=e},styles:{root:{width:\"auto\"}},firstDayOfWeek:d.Monday,navigationIcons:m,strings:c,showMonthPickerAsOverlay:!0,highlightSelectedMonth:!0,showGoToToday:!1,maxDate:j,minDate:k,calendarMonthProps:{navigatedDate:x,onNavigateDate:F,yearPickerHidden:!0},calendarDayProps:{navigatedDate:x,onNavigateDate:F,allFocusable:!0,styles:{wrapper:{padding:0},root:{padding:0},monthAndYear:{padding:0}}}},f?i.fromJSDate(f).toISODate():void 0)]})};export{g as DateRangeCalendar};\n//# sourceMappingURL=DateRangeCalendar.js.map\n","var e,t;!function(e){e[e.today=1]=\"today\",e[e.lastWeek=2]=\"lastWeek\",e[e.lastMonth=3]=\"lastMonth\",e[e.lastFortnight=4]=\"lastFortnight\",e[e.lastYear=5]=\"lastYear\",e[e.yesterday=6]=\"yesterday\",e[e.tomorrow=7]=\"tomorrow\",e[e.thisWeek=8]=\"thisWeek\",e[e.thisMonth=9]=\"thisMonth\",e[e.previousMonth=10]=\"previousMonth\"}(e||(e={})),function(e){e[e.oneWeek=1]=\"oneWeek\",e[e.twoWeeks=2]=\"twoWeeks\",e[e.threeWeeks=3]=\"threeWeeks\",e[e.fourWeeks=4]=\"fourWeeks\",e[e.fiveWeeks=5]=\"fiveWeeks\",e[e.sixWeeks=6]=\"sixWeeks\",e[e.sevenWeeks=7]=\"sevenWeeks\"}(t||(t={}));const s=[e.today,e.lastWeek,e.lastMonth,e.lastFortnight,e.lastYear],o=[t.oneWeek,t.twoWeeks,t.threeWeeks,t.fourWeeks,t.fiveWeeks,t.sixWeeks,t.sevenWeeks],k=[{key:t.oneWeek,text:\"1\"},{key:t.twoWeeks,text:\"2\"},{key:t.threeWeeks,text:\"3\"},{key:t.fourWeeks,text:\"4\"},{key:t.fiveWeeks,text:\"5\"},{key:t.sixWeeks,text:\"6\"},{key:t.sevenWeeks,text:\"7\"}],r=[{key:e.today,text:\"Today\"},{key:e.lastWeek,text:\"Last week\"},{key:e.lastFortnight,text:\"Last fortnight\"},{key:e.lastMonth,text:\"Last month\"},{key:e.thisMonth,text:\"This month\"},{key:e.previousMonth,text:\"Previous month\"},{key:e.lastYear,text:\"Last year\"},{key:e.yesterday,text:\"Yesterday\"},{key:e.tomorrow,text:\"Tomorrow\"},{key:e.thisWeek,text:\"This week\"}];export{e as StandardRangesOptionsKeys,t as StandardWeekRangesOptionsKeys,s as defaultStandardRangesOptionsKeys,o as defaultStandardWeekRangesOptionsKeys,r as standardRangesOptions,k as standardWeekRangesOptions};\n//# sourceMappingURL=DatesRangePicker.types.js.map\n","import{jsx as t}from\"react/jsx-runtime\";import{DateTime as e}from\"@bps/utils\";import{TooltipHost as o,IconButton as a}from\"@fluentui/react\";const r=({startDateProps:r,endDateProps:n})=>t(o,{content:\"End date same as start date\",calloutProps:{gapSpace:-30},children:t(a,{iconProps:{iconName:\"ForwardEvent\"},disabled:!r.value,onClick:()=>{r.value&&n.onChange(e.fromJSDate(r.value).endOf(\"day\").toJSDate(),void 0,!0)},styles:{root:{marginTop:30}}})});export{r as PasteStartDateButton};\n//# sourceMappingURL=PasteStartDateButton.js.map\n","import{DateTime as r}from\"@bps/utils\";import{DataTimeFormats as t}from\"../DatePicker.types.js\";const e=e=>r.fromJSDate(e).toFormat(t.DAY_DEFAULT_FORMAT),o=(r,t)=>{if(r&&t){const o=e(r),n=e(t);return o!==n?`${o} - ${n}`:o}return\"\"},n=(r,t)=>r?r.reduce(((r,e)=>{const o=t.find((r=>r.key===e));return o?[...r,o]:r}),[]):[];export{n as getFilteredRangesOptions,o as getValue};\n//# sourceMappingURL=utils.js.map\n","import{jsx as t,jsxs as e}from\"react/jsx-runtime\";import{useState as a,useEffect as o}from\"react\";import{DateTime as n}from\"@bps/utils\";import{useTheme as s,Callout as r,Stack as i}from\"@fluentui/react\";import\"../../../buttons/ActionButtonWithMaxedReached/ActionButtonWithMaxReached.js\";import\"../../../buttons/PillButton.js\";import{ButtonsGroupChoice as d}from\"../../../buttons/ButtonsGroupChoice/ButtonsGroupChoice.js\";import\"lodash.debounce\";import\"browser-image-compression\";import\"../../../../utilities/data-attribute.js\";import\"../../../../utilities/transitions.js\";import\"../../../buttons/SplitButton/SplitButton.js\";import{ClearCloseButton as l}from\"../../../buttons/ClearCloseButton.js\";import{Heading as m}from\"../../../typography/Heading/Heading.js\";import{preventDismissOnEvent as u}from\"../utils.js\";import{DateRangeCalendar as c}from\"./DateRangeCalendar.js\";import{defaultStandardRangesOptionsKeys as h,StandardRangesOptionsKeys as p,standardRangesOptions as g,standardWeekRangesOptions as D}from\"./DatesRangePicker.types.js\";import{PasteStartDateButton as f}from\"./PasteStartDateButton.js\";import{getFilteredRangesOptions as S}from\"./utils.js\";const b=({startDateProps:b,endDateProps:C,hidePasteStartButton:k,closeCalloutOnSelection:J,renderCloseBtn:y,target:v,toggleHideCalendar:w,hiddenCalendar:j,standardRanges:O=h,weekRanges:B,renderSelection:P,today:R})=>{const x=s(),[I,M]=a(void 0);if(o((()=>{if(void 0!==I){if(O){const t=R?n.fromJSDate(R).startOf(\"day\"):n.now().startOf(\"day\"),e=t.endOf(\"day\");let a=t.toJSDate(),o=e.toJSDate();switch(I){case p.yesterday:a=t.minus({days:1}).toJSDate(),o=e.minus({days:1}).toJSDate();break;case p.today:a=t.toJSDate();break;case p.tomorrow:a=t.plus({days:1}).toJSDate(),o=e.plus({days:1}).toJSDate();break;case p.lastWeek:a=t.minus({week:1}).toJSDate();break;case p.thisWeek:a=t.startOf(\"week\").toJSDate();break;case p.lastFortnight:a=t.minus({week:2}).toJSDate();break;case p.lastMonth:a=t.minus({month:1}).toJSDate();break;case p.thisMonth:a=t.startOf(\"month\").toJSDate();break;case p.previousMonth:a=t.minus({month:1}).startOf(\"month\").toJSDate(),o=t.minus({month:1}).endOf(\"month\").toJSDate();break;case p.lastYear:a=t.minus({year:1}).toJSDate()}b.onChange(a,I),C.onChange(o,I)}if(B){const t=n.now().startOf(\"day\"),e=n.now().endOf(\"day\"),a=t.toJSDate(),o=e.plus({week:I}).toJSDate();b.onChange(a,I),C.onChange(o,I)}}}),[I]),j)return null;const A=()=>{M(void 0)};return t(r,{target:v,onDismiss:w,preventDismissOnEvent:u,isBeakVisible:!1,gapSpace:1,children:e(i,{tokens:{childrenGap:x.spacing.m,padding:x.spacing.m},children:[P&&t(i.Item,{children:P(b,C)}),e(i,{horizontal:!0,tokens:{childrenGap:x.spacing.s2},horizontalAlign:\"space-between\",children:[t(c,{...b,label:b.label??\"Start date\",autoFocus:!0,onChange:t=>{!!t&&n.fromJSDate(t)>n.now()||C.value||C.onChange(n.now().endOf(\"day\").toJSDate()),b.onChange(t)},resetDatesRange:A,maxDate:b.maxDate??C.value,today:R}),!k&&t(f,{startDateProps:b,endDateProps:C}),t(c,{...C,label:C.label??\"End date\",minDate:C.minDate??b.value,resetDatesRange:A,onChange:t=>{C.onChange(t?n.fromJSDate(t).endOf(\"day\").toJSDate():t)},today:R})]}),!B&&(O??g).length&&e(i.Item,{children:[t(m,{labelPaddings:!0,children:\"Standard ranges\"}),t(d,{options:S(O,g),value:I,onChange:t=>{M(t),J&&w()}})]}),B&&B.length&&e(i.Item,{children:[t(m,{labelPaddings:!0,children:\"In (weeks)\"}),t(d,{options:S(B,D),value:I,onChange:t=>{M(t),J&&w()}})]}),t(i.Item,{align:\"end\",children:t(l,{onClick:()=>{A(),b.onChange(void 0),C.onChange(void 0),w()},disabled:!(b.value||C.value),dataAttr:\"date-range-clear-button\",closeCalendar:y?w:void 0})})]})})};export{b as DatesRangeCallout};\n//# sourceMappingURL=DatesRangeCallout.js.map\n","import{jsxs as e,jsx as t}from\"react/jsx-runtime\";import{useState as r,useRef as a,useEffect as l}from\"react\";import{dataAttribute as n,DataAttributes as s}from\"../../../../utilities/data-attribute.js\";import\"@fluentui/react\";import\"../../../../utilities/transitions.js\";import{DatePickerInputField as o}from\"../DatePickerInputField.js\";import{DatesRangeCallout as i}from\"./DatesRangeCallout.js\";import{getValue as d}from\"./utils.js\";const u=({startDateProps:u,endDateProps:c,label:p,placeholder:m,closeCalloutOnSelection:g,renderCloseBtn:P,hidePasteStartButton:f,required:h,disabled:C,className:j,id:D,styles:R,onBlur:S,onFocus:b,standardRanges:y,weekRanges:k,renderSelection:v,renderValue:B,today:F,...x})=>{const[O,q]=r(!0),w=a(!1);l((()=>{w.current&&(O?S&&S({}):b&&b({})),w.current||(w.current=!0)}),[O]);const H=a(null),I=()=>{C||q((e=>!e))};return e(\"div\",{...n(s.Element,\"dates-range-picker\"),className:`bp-DatesRangePicker ${j}`,id:D,children:[t(o,{readOnlyInFormat:!0,adjustWidthAsPlaceholder:!0,valueOverride:B?B(u,c):d(u.value,c.value),toggleHideCalendar:I,textFieldProps:{styles:R,label:p,placeholder:m,disabled:C,required:h},setTextFieldRef:e=>{!H.current&&e&&(H.current=e.querySelector(\"input\"))},...x}),t(i,{closeCalloutOnSelection:g,renderCloseBtn:P,hidePasteStartButton:f,hiddenCalendar:O,target:H.current,toggleHideCalendar:I,endDateProps:c,startDateProps:u,standardRanges:y,weekRanges:k,renderSelection:v,today:F})]})};export{u as DatesRangePicker};\n//# sourceMappingURL=DatesRangePicker.js.map\n","import{jsx as t}from\"react/jsx-runtime\";import{useState as o}from\"react\";import{GenericSelect as e}from\"../../GenericSelect/GenericSelect.js\";import\"@fluentui/react\";import\"../../../../utilities/data-attribute.js\";import\"../../../../utilities/transitions.js\";import\"@bps/utils\";import{useFilteredOptions as i}from\"../../GenericSelect/useFilteredOptions.js\";const r=({searchBoxProps:r,options:s,showMoreOptionProps:n,...p})=>{const[c,l]=o(n?.initialNumOfOptions??s.length),{filteredOptions:m,onSearch:a}=i(s,p.selectedKeys);return t(e,{...p,options:m,searchBoxProps:{onSearch:a,...r},showMoreOptionProps:{...n,initialNumOfOptions:c,onClickShowMore:()=>l(s.length)}})};export{r as OptionsSelect};\n//# sourceMappingURL=OptionsSelect.js.map\n","import{jsx as e,jsxs as t}from\"react/jsx-runtime\";import{mergeStyleSets as n,TooltipHost as o,FontIcon as l,Stack as i,Text as r}from\"@fluentui/react\";import{OptionsSelect as c}from\"../OptionsSelect/OptionsSelect.js\";const s=s=>e(c,{...s,multiSelect:!1,selectedKeys:s.selectedKeys,onChangeSelectedKeys:e=>s.onChangeSelectedKeys(e),styles:n(s.styles,{focusZone:{display:\"grid\",gridTemplateColumns:\"repeat(auto-fill, 34px)\",justifyContent:\"center\"},field:{justifyContent:\"space-between\"}}),onRenderOption:t=>e(o,{content:t.text,children:e(l,{iconName:t.key})}),calloutWidth:250,onRenderFieldContent:n=>n[0]?(n=>{const{onRenderFieldContent:o}=s;return o?o(n):t(i,{horizontal:!0,tokens:{childrenGap:8},verticalAlign:\"center\",children:[e(l,{iconName:n[0].key}),e(r,{nowrap:!0,children:n[0].text})]})})(n):s.placeholder});export{s as IconSelect};\n//# sourceMappingURL=IconSelect.js.map\n","import{classNamesFunction as o}from\"@fluentui/react\";const e=o=>{const{theme:e,hidden:r,borderless:i,disabled:n}=o;return{fieldTags:{display:\"flex\",flexDirection:\"row\",alignItems:\"center\",flexWrap:\"wrap\"},field:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",borderWidth:i?0:1,borderStyle:\"solid\",borderColor:n?e.semanticColors.disabledBackground:e.semanticColors.inputBorder,backgroundColor:n?e.semanticColors.disabledBackground:e.semanticColors.inputBackground,borderRadius:2,minHeight:32,boxSizing:\"border-box\"},fieldPlaceholder:{paddingTop:e.spacing.s2,paddingBottom:e.spacing.s2,paddingLeft:e.spacing.s1,paddingRight:e.spacing.s1,color:n?e.semanticColors.disabledText:e.semanticColors.inputPlaceholderText},fieldLabel:{color:r?\"initial\":e.semanticColors.inputFocusBorderAlt,cursor:\"pointer\",\"&[data-disabled]\":{pointerEvents:\"none\",cursor:\"default\"}}}},r=o(),i={close:{\"&:focus:hover\":{backgroundColor:\"transparent\",color:\"initial\"},\"&:focus\":{backgroundColor:\"transparent\",color:\"initial\"},\"&:focus::after\":{display:\"none\"}}};export{r as getTagsSelectFieldClassNames,e as getTagsSelectFieldStyles,i as tagItemStyles};\n//# sourceMappingURL=TagsSelectField.styles.js.map\n","import{jsxs as e,jsx as d}from\"react/jsx-runtime\";import{styled as l,Label as i,TagItem as s}from\"@fluentui/react\";import{getTagsSelectFieldStyles as r,getTagsSelectFieldClassNames as a,tagItemStyles as t}from\"./TagsSelectField.styles.js\";const n=l((({label:l,disabled:r,required:n,theme:c,placeholder:o,styles:m,selectedKeys:h,options:f,setHidden:y,hidden:p,onChangeSelectedKeys:b,borderless:k})=>{const{fieldWrapper:u,field:v,fieldTags:x,fieldLabel:N,fieldPlaceholder:g}=a(m,{theme:c,hidden:p,borderless:k,disabled:r}),j=f.filter((e=>h?.includes(e.key))),q=()=>{!r&&y((e=>!e))},C=e=>{p||q(),(e=>{if(!r){const d=j.filter((d=>d.key!==e)).map((e=>e.key));b(d)}})(e)};return e(\"div\",{className:u,children:[l&&d(i,{\"data-disabled\":r||void 0,disabled:r,required:n,className:N,children:l}),d(\"div\",{className:v,children:e(\"div\",{className:x,children:[j.map(((e,l)=>d(s,{disabled:r,item:{key:e.key,name:e.text},index:l,onRemoveItem:()=>C(e.key),styles:t,children:e.text},e.key))),d(\"span\",{className:g,onClick:q,children:o})]})})]})}),r);export{n as TagsSelectField};\n//# sourceMappingURL=TagsSelectField.js.map\n","import{FontSizes as e,FontWeights as o}from\"@fluentui/react\";import\"../../../../utilities/data-attribute.js\";import{getPrimaryFocusStyles as t}from\"../../../../utilities/common-styles.js\";import\"../../../../utilities/transitions.js\";const r=r=>{const{theme:i,className:a,value:n,hidden:l,disabled:d}=r,s=t(i,void 0,!0),c=!l&&!d;return{root:[\"bp-ColourSelect\",{minWidth:0},a],field:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",position:\"relative\",paddingRight:6,marginTop:5,border:`1px solid ${i.semanticColors.inputBorder}`,backgroundColor:i.semanticColors.inputBackground,borderRadius:2,minHeight:32,cursor:\"pointer\",boxSizing:\"border-box\",outline:\"none\",\"&[data-disabled]\":{backgroundColor:i.semanticColors.disabledBackground,borderColor:\"transparent\",color:i.semanticColors.disabledText,cursor:\"default\",pointerEvents:\"none\"},\"&:focus-visible::after\":s,\"&::after\":c?s:void 0},fieldContent:{display:\"flex\",width:\"calc(100% - 20px)\",backgroundColor:n??\"transparent\",cursor:\"pointer\",borderRadius:2,height:22,border:\"none\",color:\"transparent\",outline:\"none\",marginLeft:6,\"&:disabled\":{opacity:.3}},description:{fontSize:e.size10,fontWeight:o.regular,color:i.palette.neutralPrimary,\"&[data-disabled]\":{color:i.semanticColors.disabledText}},label:{color:c?i.semanticColors.inputFocusBorderAlt:i.palette.neutralPrimary,paddingBottom:0,\"&[data-disabled]\":{color:i.semanticColors.disabledText}},caretDown:{color:i.palette.neutralSecondaryAlt,fontSize:e.size12,marginLeft:8}}},i={panel:{padding:12},root:{minWidth:\"100%\",maxWidth:\"100%\"},colorRectangle:{height:268}};export{i as colourPickerStyles,r as getColourSelectStyles};\n//# sourceMappingURL=ColourSelect.styles.js.map\n","const f=\"#ffffff\",o=352;export{o as DEFAULT_COLOURS_SELECT_CALLOUT_WIDTH,f as DEFAULT_COLOURS_SELECT_VALUE};\n//# sourceMappingURL=ColourSelect.types.js.map\n","import{jsxs as e,jsx as a}from\"react/jsx-runtime\";import{IKeyCodes as d}from\"@bps/utils\";import{Label as i,FontIcon as l}from\"@fluentui/react\";const o=({onClick:o,disabled:r,classNames:s,placeholder:n,value:c,description:t,label:m,required:u})=>{const p=r||void 0;return e(\"div\",{children:[m&&a(i,{className:s?.label,\"data-disabled\":p,required:u,onClick:r?void 0:o,children:m}),t&&a(\"span\",{className:s.description,\"data-disabled\":p,children:t}),e(\"div\",{className:s?.field,onClick:o,\"data-disabled\":p,tabIndex:r?void 0:0,\"data-is-focusable\":r?void 0:\"true\",onKeyDown:e=>{r||e.code!==d.Enter||o(e)},children:[a(\"input\",{placeholder:n,readOnly:!0,className:s?.fieldContent,value:c,disabled:p}),a(l,{className:s?.caretDown,iconName:\"ChevronDown\"})]})]})};export{o as ColourSelectField};\n//# sourceMappingURL=ColourSelectField.js.map\n","import{jsxs as e,jsx as l}from\"react/jsx-runtime\";import{useRef as o,useState as r,useEffect as s}from\"react\";import{classNamesFunction as t,styled as i,Callout as a,ColorPicker as c}from\"@fluentui/react\";import{getColourSelectStyles as d,colourPickerStyles as m}from\"./ColourSelect.styles.js\";import{DEFAULT_COLOURS_SELECT_CALLOUT_WIDTH as n,DEFAULT_COLOURS_SELECT_VALUE as u}from\"./ColourSelect.types.js\";import{ColourSelectField as p}from\"./ColourSelectField.js\";const h=t(),f=i((({theme:t,disabled:i,required:d,label:f,styles:b,className:C,placeholder:v,description:N,calloutWidth:g,onChange:j,value:k,colourPickerProps:y,onFocus:S,onBlur:P,...q})=>{const w=o(null),[x,B]=r(!0),F=()=>{B((e=>!e))};s((()=>{x?P?.():S?.()}),[x,P,S]);const W=h(b,{theme:t,className:C,value:k,hidden:x,disabled:i});return e(\"div\",{...q,ref:w,className:W.root,children:[l(p,{required:d,value:k,onClick:F,classNames:W,placeholder:v,label:f,description:N,disabled:i}),l(a,{isBeakVisible:!1,hidden:x,onDismiss:F,gapSpace:1,target:w,calloutWidth:g??n,children:l(c,{showPreview:!0,styles:m,...y,className:W.picker,color:k??u,onChange:(e,l)=>{j(l.str)}})})]})}),d);export{f as ColourSelect};\n//# sourceMappingURL=ColourSelect.js.map\n","import{jsx as e}from\"react/jsx-runtime\";import{useRef as t}from\"react\";import{ComboBox as n}from\"@fluentui/react\";const o=({onChange:o,onRenderFieldText:r,dynamicOptions:i,...c})=>{const s=[...c.options],l=t(s),u=i&&!c.multiSelect;return e(n,{...c,onChange:(e,t,n,r)=>{if(o)if(c.multiSelect){const i=c.selectedKey??[];if(t?.key){const r=i.includes(t?.key)?i.filter((e=>t?.key!==e)):[...i,t?.key.toString()];o(e,r,t,n)}else if(r){const c=i.includes(r)?i.filter((e=>r!==e)):[...i,r];l.current.push({key:r,text:r}),o(e,c,t,n)}}else t?.key?o(e,t.key.toString(),t,n):r&&(l.current.push({key:r,text:r}),o(e,r,t,n))},options:u?s:l.current,text:(()=>{const{selectedKey:e,options:t}=c;return r?r(e,t):u&&!t.map((e=>e.key)).includes(e)?e:void 0})()})};export{o as ChoiceComboBox};\n//# sourceMappingURL=ChoiceComboBox.js.map\n","import{FontWeights as o,FontSizes as e}from\"@fluentui/react\";const t=t=>{const{className:r,theme:n,placeholder:s,hasValue:a,notAllowFreeTextInput:i,readonly:l}=t;return{subComponentStyles:{textField:({focused:o,hasErrorMessage:t,disabled:d})=>{let c=n.semanticColors.bodyText;d?c=n.semanticColors.disabledText:t?c=n.semanticColors.errorText:o&&(c=n.semanticColors.inputFocusBorderAlt);const u=!(t||!s||o||a),b=i&&!l;return{root:[r,{width:100}],subComponentStyles:{label:{root:{color:c}}},fieldGroup:{\"&:before\":u?{content:`\"${s}\"`,position:\"absolute\",display:\"flex\",alignItems:\"center\",height:30,width:76,top:0,left:0,paddingLeft:8,backgroundColor:d?n.semanticColors.buttonBackgroundDisabled:n.semanticColors.bodyBackground,color:d?n.semanticColors.disabledText:n.semanticColors.inputPlaceholderText}:void 0},field:{position:\"relative\",lineHeight:30,boxSizing:\"content-box\",textOverflow:\"initial\",cursor:\"text\",opacity:u?0:1,\"&:read-only, &:disabled\":{cursor:\"default\",pointerEvents:\"none\"},\"&:read-only + *\":{cursor:b&&!d?\"pointer\":\"default\"},\"&:read-only + *:hover\":{backgroundColor:b?n.semanticColors.buttonBackgroundHovered:n.semanticColors.bodyBackground},\"&:read-only + *:active\":{backgroundColor:b?n.semanticColors.buttonBackgroundPressed:n.semanticColors.bodyBackground},\"&:disabled + *:hover\":{backgroundColor:n.semanticColors.buttonBackgroundDisabled}},icon:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",pointerEvents:\"auto\",fontSize:e.size12,width:24,height:\"calc(100% - 2px)\",bottom:0,right:0,cursor:\"pointer\",backgroundColor:d?n.semanticColors.buttonBackgroundDisabled:n.semanticColors.bodyBackground,\"&:hover\":{backgroundColor:n.semanticColors.buttonBackgroundHovered},\"&:active\":{backgroundColor:n.semanticColors.buttonBackgroundPressed}}}},button:{root:{border:\"none\",width:\"100%\"},label:{fontWeight:o.regular,color:\"initial\"}}},suggestionList:{listStyle:\"none\",margin:0,padding:0,overflowY:\"auto\",maxHeight:300},suggestionItem:{width:\"100%\"}}};export{t as getTimePickerStyles};\n//# sourceMappingURL=TimePicker.styles.js.map\n","const m=\"HH:mm\",s=\"hh:mm a\",a=[\"h:mm a\",\"h:mma\",\"h:mm:ss a\",m,\"HH:mm:ss\",s,\"H:mm\",\"HHmm\",\"HH\",\"H\",\"HHm\",\"H:mm:ss\",\"h:m:s a\",\"hh mm\",\"hh mm ss\"],t=\"Invalid time format.\",e=\"aa:aa bc\",H=\"__:__ __\",h={a:/[0-9]/,b:/a|A|p|P/,c:/m|M/},n={hours:{start:0,end:2},minutes:{start:3,end:5},meridiem:{start:6,end:8}},r=\"_\",i=1e3,o=\"ChevronDown\",_=\"time-picker-suggestions-btn\";export{_ as CALLOUT_ICON_DATA_ATTR,H as DEFAULT_TIME_MASK_VALUE,o as ICON_NAME,t as INVALID_TIME,r as MASK_CHAR,m as TIME_FORMAT_24,s as TIME_FORMAT_WITH_MIDDAY_FULL,e as TIME_MASK,i as VALIDATION_TIMEOUT,h as maskFormat,n as maskIntervals,a as timeFormats};\n//# sourceMappingURL=TimePicker.types.js.map\n","import{DateTime as t}from\"@bps/utils\";import{memoizeFunction as r}from\"@fluentui/react\";import{TIME_FORMAT_24 as o,TIME_FORMAT_WITH_MIDDAY_FULL as e,timeFormats as s,CALLOUT_ICON_DATA_ATTR as a}from\"./TimePicker.types.js\";class i{static parseFormats(r,o){for(let e=0;et===n,l=r(((t,r)=>{let e=0;if(r.min){const o=i.timeToMinutes(r.min);for(;er?t.toFormat(r):t.toFormat(e).toLowerCase(),c=r=>t.now().startOf(\"day\").plus({minutes:r}),f=r((t=>{if(!t)return t;const r=i.parseTimeFormat(t.replace(\" \",\"\"));return r?r?.toFormat(o):void 0})),F=r((r=>{if(!r)return\"\";const o=t.fromISO(r);return o.isValid?o.toFormat(e).toLowerCase():r})),T=r(((t,r)=>{const e=i.timeToMinutes(t);return c(e-e%r).toFormat(o)})),d=t=>{const r=t?.target?.dataset?.bpTestElement;return r===a};export{i as TimePickerHelper,F as formatTime,T as getRoundedTime,l as getTimeSuggestions,u as isEndOfDaySelected,d as preventDismissOnEvent,f as tryParseTime};\n//# sourceMappingURL=TimePickerHelper.js.map\n","import{jsxs as e,jsx as t}from\"react/jsx-runtime\";import{useRef as r,useState as i,useEffect as n,createElement as o}from\"react\";import{IKeyCodes as s}from\"@bps/utils\";import{classNamesFunction as a,styled as l,useTheme as m,getId as c,MaskedTextField as u,Callout as d,DirectionalHint as p,DefaultButton as f}from\"@fluentui/react\";import{dataAttribute as g,DataAttributes as v}from\"../../../utilities/data-attribute.js\";import\"../../../utilities/transitions.js\";import{getTimePickerStyles as y}from\"./TimePicker.styles.js\";import{MASK_CHAR as h,TIME_MASK as k,maskFormat as b,CALLOUT_ICON_DATA_ATTR as x,ICON_NAME as F,maskIntervals as T,DEFAULT_TIME_MASK_VALUE as S,INVALID_TIME as C,VALIDATION_TIMEOUT as P}from\"./TimePicker.types.js\";import{formatTime as E,tryParseTime as I,getTimeSuggestions as j,preventDismissOnEvent as N,isEndOfDaySelected as w,TimePickerHelper as D,getRoundedTime as R}from\"./TimePickerHelper.js\";const H=a();let M;const V=l((({className:a,styles:l,suggestionInterval:y=60,min:V,max:B,errorMessage:q,label:A,placeholder:L,name:O,displayFormat:G,readonly:K,onBlur:$,onFocus:z,value:J,onChange:Q,hideSuggestions:U,disabled:W,required:X,notAllowFreeTextInput:Y,componentRef:Z,fullDaySpan:_})=>{const ee=m(),te=r(c()),re=r(null),ie=r(J),ne=r(!1),[oe,se]=i(J?E(J):\"\"),[ae,le]=i(),me=H(l,{theme:ee,className:a,placeholder:L,hasValue:!!J,notAllowFreeTextInput:Y,readonly:K});n((()=>{if(J!==ie.current){const e=oe?I(oe):void 0,t=J?I(J):void 0;if(e!==t){E(t)?se(E(t)):J||ne.current||se(void 0)}}ie.current=J}),[J]),n((()=>()=>{M&&clearTimeout(M)}),[]);const ce=()=>{le(!1)},ue=ae&&!U,de=ue&&j(y,{min:V,max:B,displayFormat:G,fullDaySpan:_})||[];return e(\"div\",{className:\"bp-TimePicker\",children:[t(u,{id:te.current,...g(v.Element,\"time-picker\"),maskChar:h,mask:k,maskFormat:b,readOnly:K||Y,autoComplete:\"off\",label:A,errorMessage:q,onGetErrorMessage:e=>{if(W||!e)return;const t=!D.parseTimeFormat(e);return t&&e!==S?new Promise((e=>{t&&(M=setTimeout((()=>e(C)),P))})):void clearTimeout(M)},styles:me.subComponentStyles.textField,onFocus:e=>{ne.current=!0,z&&z(e)},onBlur:e=>{if(Q){const t=I(e.target.value);Q(void 0!==t?t:void 0,w(e.target.value))}ne.current=!1,$&&$(e)},onChange:(e,t)=>{const r=D.parseTimeFormat(t);if(Q&&r){const e=I(t);Q(e,w(t))}},onClick:e=>{if(e.target&&!K){const t=e.target.selectionStart??0;if(t<=T.hours.end)return e.target.setSelectionRange(T.hours.start,T.hours.end);if(t>=T.minutes.start&&t<=T.minutes.end)return e.target.setSelectionRange(T.minutes.start,T.minutes.end);if(t>T.minutes.end&&t<=T.meridiem.end)return e.target.setSelectionRange(T.meridiem.start,T.meridiem.end)}},value:oe,iconProps:{...g(v.Element,x),iconName:F,onClick:()=>!W&&!K&&le((e=>!e))},name:O,onKeyPress:e=>{e.key===s.Enter&&e.preventDefault()},disabled:W,required:X,componentRef:Z}),ue&&!!de.length&&t(d,{directionalHint:p.bottomLeftEdge,directionalHintFixed:!0,isBeakVisible:!1,target:`#${te.current}`,gapSpace:1,onDismiss:ce,preventDismissOnEvent:N,calloutMaxHeight:300,onPositioned:()=>{const e=re.current;e&&e.scrollIntoView&&e.scrollIntoView(!1)},children:((e,r)=>{const i=r.subComponentStyles.button,n=J?R(J,y):void 0;return t(\"ul\",{className:r.suggestionList,children:e.map((e=>{const s=e.time===J;return o(\"li\",{...g(v.Element,\"time-option\"),ref:t=>{(s||n===e.time)&&(re.current=t)},key:e.time,className:r.suggestionItem},t(f,{checked:s,tabIndex:-1,styles:\"function\"==typeof i?i({}):i,text:e.text,onClick:()=>{ce(),(e=>{if(oe!==e){if(!Q)return;const t=e?I(e):void 0;se(E(t)),void 0!==t&&t!==J?Q(t,w(e)):ce()}})(e.time)}}))}))})})(de,me)})]})}),y);export{V as TimePicker};\n//# sourceMappingURL=TimePicker.js.map\n","export var COMMON_MIME_TYPES = new Map([\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n ['aac', 'audio/aac'],\n ['abw', 'application/x-abiword'],\n ['arc', 'application/x-freearc'],\n ['avif', 'image/avif'],\n ['avi', 'video/x-msvideo'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['bin', 'application/octet-stream'],\n ['bmp', 'image/bmp'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['cda', 'application/x-cdf'],\n ['csh', 'application/x-csh'],\n ['css', 'text/css'],\n ['csv', 'text/csv'],\n ['doc', 'application/msword'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['epub', 'application/epub+zip'],\n ['gz', 'application/gzip'],\n ['gif', 'image/gif'],\n ['heic', 'image/heic'],\n ['heif', 'image/heif'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['ico', 'image/vnd.microsoft.icon'],\n ['ics', 'text/calendar'],\n ['jar', 'application/java-archive'],\n ['jpeg', 'image/jpeg'],\n ['jpg', 'image/jpeg'],\n ['js', 'text/javascript'],\n ['json', 'application/json'],\n ['jsonld', 'application/ld+json'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mjs', 'text/javascript'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mpeg', 'video/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['opus', 'audio/opus'],\n ['otf', 'font/otf'],\n ['png', 'image/png'],\n ['pdf', 'application/pdf'],\n ['php', 'application/x-httpd-php'],\n ['ppt', 'application/vnd.ms-powerpoint'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['rar', 'application/vnd.rar'],\n ['rtf', 'application/rtf'],\n ['sh', 'application/x-sh'],\n ['svg', 'image/svg+xml'],\n ['swf', 'application/x-shockwave-flash'],\n ['tar', 'application/x-tar'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['ts', 'video/mp2t'],\n ['ttf', 'font/ttf'],\n ['txt', 'text/plain'],\n ['vsd', 'application/vnd.visio'],\n ['wav', 'audio/wav'],\n ['weba', 'audio/webm'],\n ['webm', 'video/webm'],\n ['webp', 'image/webp'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['xhtml', 'application/xhtml+xml'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xml', 'application/xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['zip', 'application/zip'],\n ['7z', 'application/x-7z-compressed'],\n // Others\n ['mkv', 'video/x-matroska'],\n ['mov', 'video/quicktime'],\n ['msg', 'application/vnd.ms-outlook']\n]);\nexport function toFileWithPath(file, path) {\n var f = withMimeType(file);\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n var webkitRelativePath = file.webkitRelativePath;\n Object.defineProperty(f, 'path', {\n value: typeof path === 'string'\n ? path\n // If is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n return f;\n}\nfunction withMimeType(file) {\n var name = file.name;\n var hasExtension = name && name.lastIndexOf('.') !== -1;\n if (hasExtension && !file.type) {\n var ext = name.split('.')\n .pop().toLowerCase();\n var type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n return file;\n}\n//# sourceMappingURL=file.js.map","import { __awaiter, __generator, __read, __spread } from \"tslib\";\nimport { toFileWithPath } from './file';\nvar FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store',\n 'Thumbs.db' // Windows\n];\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport function fromEvent(evt) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (isObject(evt) && isDataTransfer(evt)) {\n return [2 /*return*/, getDataTransferFiles(evt.dataTransfer, evt.type)];\n }\n else if (isChangeEvt(evt)) {\n return [2 /*return*/, getInputFiles(evt)];\n }\n else if (Array.isArray(evt) && evt.every(function (item) { return 'getFile' in item && typeof item.getFile === 'function'; })) {\n return [2 /*return*/, getFsHandleFiles(evt)];\n }\n return [2 /*return*/, []];\n });\n });\n}\nfunction isDataTransfer(value) {\n return isObject(value.dataTransfer);\n}\nfunction isChangeEvt(value) {\n return isObject(value) && isObject(value.target);\n}\nfunction isObject(v) {\n return typeof v === 'object' && v !== null;\n}\nfunction getInputFiles(evt) {\n return fromList(evt.target.files).map(function (file) { return toFileWithPath(file); });\n}\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nfunction getFsHandleFiles(handles) {\n return __awaiter(this, void 0, void 0, function () {\n var files;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, Promise.all(handles.map(function (h) { return h.getFile(); }))];\n case 1:\n files = _a.sent();\n return [2 /*return*/, files.map(function (file) { return toFileWithPath(file); })];\n }\n });\n });\n}\nfunction getDataTransferFiles(dt, type) {\n return __awaiter(this, void 0, void 0, function () {\n var items, files;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (dt === null) {\n return [2 /*return*/, []];\n }\n if (!dt.items) return [3 /*break*/, 2];\n items = fromList(dt.items)\n .filter(function (item) { return item.kind === 'file'; });\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return [2 /*return*/, items];\n }\n return [4 /*yield*/, Promise.all(items.map(toFilePromises))];\n case 1:\n files = _a.sent();\n return [2 /*return*/, noIgnoredFiles(flatten(files))];\n case 2: return [2 /*return*/, noIgnoredFiles(fromList(dt.files)\n .map(function (file) { return toFileWithPath(file); }))];\n }\n });\n });\n}\nfunction noIgnoredFiles(files) {\n return files.filter(function (file) { return FILES_TO_IGNORE.indexOf(file.name) === -1; });\n}\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items) {\n if (items === null) {\n return [];\n }\n var files = [];\n // tslint:disable: prefer-for-of\n for (var i = 0; i < items.length; i++) {\n var file = items[i];\n files.push(file);\n }\n return files;\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n var entry = item.webkitGetAsEntry();\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry);\n }\n return fromDataTransferItem(item);\n}\nfunction flatten(items) {\n return items.reduce(function (acc, files) { return __spread(acc, (Array.isArray(files) ? flatten(files) : [files])); }, []);\n}\nfunction fromDataTransferItem(item) {\n var file = item.getAsFile();\n if (!file) {\n return Promise.reject(item + \" is not a File\");\n }\n var fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nfunction fromEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry)];\n });\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry) {\n var reader = entry.createReader();\n return new Promise(function (resolve, reject) {\n var entries = [];\n function readEntries() {\n var _this = this;\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries(function (batch) { return __awaiter(_this, void 0, void 0, function () {\n var files, err_1, items;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!batch.length) return [3 /*break*/, 5];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, Promise.all(entries)];\n case 2:\n files = _a.sent();\n resolve(files);\n return [3 /*break*/, 4];\n case 3:\n err_1 = _a.sent();\n reject(err_1);\n return [3 /*break*/, 4];\n case 4: return [3 /*break*/, 6];\n case 5:\n items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n // Continue reading\n readEntries();\n _a.label = 6;\n case 6: return [2 /*return*/];\n }\n });\n }); }, function (err) {\n reject(err);\n });\n }\n readEntries();\n });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nfunction fromFileEntry(entry) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n entry.file(function (file) {\n var fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, function (err) {\n reject(err);\n });\n })];\n });\n });\n}\n//# sourceMappingURL=file-selector.js.map","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from \"attr-accept\"; // Error codes\n\nexport var FILE_INVALID_TYPE = \"file-invalid-type\";\nexport var FILE_TOO_LARGE = \"file-too-large\";\nexport var FILE_TOO_SMALL = \"file-too-small\";\nexport var TOO_MANY_FILES = \"too-many-files\";\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n}; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(\", \")) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: \"Too many files\"\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === \"application/x-moz-file\" || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n *\n * @param {object} options\n * @param {File[]} options.files\n * @param {string|string[]} [options.accept]\n * @param {number} [options.minSize]\n * @param {number} [options.maxSize]\n * @param {boolean} [options.multiple]\n * @param {number} [options.maxFiles]\n * @param {(f: File) => FileError|FileError[]|null} [options.validator]\n * @returns\n */\n\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles,\n validator = _ref.validator;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n var customErrors = validator ? validator(file) : null;\n return accepted && sizeMatch && !customErrors;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === \"function\") {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== \"undefined\") {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === \"Files\" || type === \"application/x-moz-file\";\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === \"object\" && item !== null && item.kind === \"file\";\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf(\"MSIE\") !== -1 || userAgent.indexOf(\"Trident/\") !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf(\"Edge/\") !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return 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 return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return \"showOpenFilePicker\" in window;\n}\n/**\n * Convert the `{accept}` dropzone prop to the\n * `{types}` option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n *\n * @param {AcceptProp} accept\n * @returns {{accept: string[]}[]}\n */\n\nexport function pickerOptionsFromAccept(accept) {\n if (isDefined(accept)) {\n return Object.entries(accept).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n mimeType = _ref3[0],\n ext = _ref3[1];\n\n var ok = true;\n\n if (!isMIMEType(mimeType)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.\"));\n ok = false;\n }\n\n if (!Array.isArray(ext) || !ext.every(isExt)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because an invalid file extension was provided.\"));\n ok = false;\n }\n\n return ok;\n }).map(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n mimeType = _ref5[0],\n ext = _ref5[1];\n\n return {\n accept: _defineProperty({}, mimeType, ext)\n };\n });\n }\n\n return accept;\n}\n/**\n * Convert the `{accept}` dropzone prop to an array of MIME types/extensions.\n * @param {AcceptProp} accept\n * @returns {string}\n */\n\nexport function acceptPropAsAcceptAttr(accept) {\n if (isDefined(accept)) {\n return Object.entries(accept).reduce(function (a, _ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n mimeType = _ref7[0],\n ext = _ref7[1];\n\n return [].concat(_toConsumableArray(a), [mimeType], _toConsumableArray(ext));\n }, []) // Silently discard invalid entries as pickerOptionsFromAccept warns about these\n .filter(function (v) {\n return isMIMEType(v) || isExt(v);\n }).join(\",\");\n }\n\n return undefined;\n}\n/**\n * Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is an abort exception.\n */\n\nexport function isAbort(v) {\n return v instanceof DOMException && (v.name === \"AbortError\" || v.code === v.ABORT_ERR);\n}\n/**\n * Check if v is a security error.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is a security error.\n */\n\nexport function isSecurityError(v) {\n return v instanceof DOMException && (v.name === \"SecurityError\" || v.code === v.SECURITY_ERR);\n}\n/**\n * Check if v is a MIME type string.\n *\n * See accepted format: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers.\n *\n * @param {string} v\n */\n\nexport function isMIMEType(v) {\n return v === \"audio/*\" || v === \"video/*\" || v === \"image/*\" || v === \"text/*\" || /\\w+\\/[-+.\\w]+/g.test(v);\n}\n/**\n * Check if v is a file extension.\n * @param {string} v\n */\n\nexport function isExt(v) {\n return /^.*\\.[\\w]+$/.test(v);\n}\n/**\n * @typedef {Object.} AcceptProp\n */\n\n/**\n * @typedef {object} FileError\n * @property {string} message\n * @property {ErrorCode|string} code\n */\n\n/**\n * @typedef {\"file-invalid-type\"|\"file-too-large\"|\"file-too-small\"|\"too-many-files\"} ErrorCode\n */","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { fromEvent } from \"file-selector\";\nimport { acceptPropAsAcceptAttr, allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, canUseFileSystemAccessAPI, isAbort, isEvtWithFiles, isIeOrEdge, isPropagationStopped, isSecurityError, onDocumentDragOver, pickerOptionsFromAccept, TOO_MANY_FILES_REJECTION } from \"./utils/index\";\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
\n * \n *

Drag 'n' drop some files here, or click to select files

\n *
\n * )}\n *
\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = \"Dropzone\"; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: true,\n autoFocus: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n */\n accept: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Set to true to focus the root element on render\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Cb for when there's some error from any of the promises.\n *\n * @param {Error} error\n */\n onError: PropTypes.func,\n\n /**\n * Custom validation function. It must return null if there's no errors.\n * @param {File} file\n * @returns {FileError|FileError[]|null}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state.\n *\n * @typedef {object} DropzoneState\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\n/**\n * An object with the dropzone methods.\n *\n * @typedef {object} DropzoneMethods\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
\n * \n *

Drag and drop some files here, or click to select files

\n *
\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {import(\"./utils\").AcceptProp} [props.accept] Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n * @param {boolean} autoFocus Set to true to auto focus the root element.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be an object with keys as a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) and the value an array of file extensions (optional).\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n * @param {(error: Error) => void} [props.onError]\n *\n * @returns {DropzoneState & DropzoneMethods}\n */\n\nexport function useDropzone() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n accept = _defaultProps$props.accept,\n disabled = _defaultProps$props.disabled,\n getFilesFromEvent = _defaultProps$props.getFilesFromEvent,\n maxSize = _defaultProps$props.maxSize,\n minSize = _defaultProps$props.minSize,\n multiple = _defaultProps$props.multiple,\n maxFiles = _defaultProps$props.maxFiles,\n onDragEnter = _defaultProps$props.onDragEnter,\n onDragLeave = _defaultProps$props.onDragLeave,\n onDragOver = _defaultProps$props.onDragOver,\n onDrop = _defaultProps$props.onDrop,\n onDropAccepted = _defaultProps$props.onDropAccepted,\n onDropRejected = _defaultProps$props.onDropRejected,\n onFileDialogCancel = _defaultProps$props.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$props.onFileDialogOpen,\n useFsAccessApi = _defaultProps$props.useFsAccessApi,\n autoFocus = _defaultProps$props.autoFocus,\n preventDropOnDocument = _defaultProps$props.preventDropOnDocument,\n noClick = _defaultProps$props.noClick,\n noKeyboard = _defaultProps$props.noKeyboard,\n noDrag = _defaultProps$props.noDrag,\n noDragEventsBubbling = _defaultProps$props.noDragEventsBubbling,\n onError = _defaultProps$props.onError,\n validator = _defaultProps$props.validator;\n\n var acceptAttr = useMemo(function () {\n return acceptPropAsAcceptAttr(accept);\n }, [accept]);\n var pickerTypes = useMemo(function () {\n return pickerOptionsFromAccept(accept);\n }, [accept]);\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === \"function\" ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === \"function\" ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n /**\n * @constant\n * @type {React.MutableRefObject}\n */\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive;\n var fsAccessApiWorksRef = useRef(typeof window !== \"undefined\" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (!fsAccessApiWorksRef.current && isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: \"closeDialog\"\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener(\"focus\", onWindowFocus, false);\n return function () {\n window.removeEventListener(\"focus\", onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener(\"dragover\", onDocumentDragOver, false);\n document.addEventListener(\"drop\", onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener(\"dragover\", onDocumentDragOver);\n document.removeEventListener(\"drop\", onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]); // Auto focus the root when autoFocus is true\n\n useEffect(function () {\n if (!disabled && autoFocus && rootRef.current) {\n rootRef.current.focus();\n }\n\n return function () {};\n }, [rootRef, autoFocus, disabled]);\n var onErrCb = useCallback(function (e) {\n if (onError) {\n onError(e);\n } else {\n // Let the user know something's gone wrong if they haven't provided the onError cb.\n console.error(e);\n }\n }, [onError]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var fileCount = files.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: files,\n accept: acceptAttr,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles,\n validator: validator\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n dispatch({\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isDragActive: true,\n type: \"setDraggedFiles\"\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n }, [getFilesFromEvent, onDragEnter, onErrCb, noDragEventsBubbling, acceptAttr, minSize, maxSize, multiple, maxFiles, validator]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = \"copy\";\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n type: \"setDraggedFiles\",\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, acceptAttr),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: \"setFiles\"\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, acceptAttr, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n\n dispatch({\n type: \"reset\"\n });\n }, [getFilesFromEvent, setFiles, onErrCb, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n // No point to use FS access APIs if context is not secure\n // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection\n if (fsAccessApiWorksRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: pickerTypes\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n setFiles(files, null);\n dispatch({\n type: \"closeDialog\"\n });\n }).catch(function (e) {\n // AbortError means the user canceled\n if (isAbort(e)) {\n onFileDialogCancelCb(e);\n dispatch({\n type: \"closeDialog\"\n });\n } else if (isSecurityError(e)) {\n fsAccessApiWorksRef.current = false; // CORS, so cannot use this API\n // Try using the input\n\n if (inputRef.current) {\n inputRef.current.value = null;\n inputRef.current.click();\n }\n } else {\n onErrCb(e);\n }\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, onErrCb, pickerTypes, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.key === \" \" || event.key === \"Enter\" || event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: \"focus\"\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: \"blur\"\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? \"ref\" : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === \"string\" && role !== \"\" ? role : \"presentation\"\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? \"ref\" : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: acceptAttr,\n multiple: multiple,\n type: \"file\",\n style: {\n display: \"none\"\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n/**\n * @param {DropzoneState} state\n * @param {{type: string} & DropzoneState} action\n * @returns {DropzoneState}\n */\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case \"focus\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case \"blur\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case \"openDialog\":\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case \"closeDialog\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case \"setDraggedFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragActive: action.isDragActive,\n isDragAccept: action.isDragAccept,\n isDragReject: action.isDragReject\n });\n\n case \"setFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case \"reset\":\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from \"./utils\";","import{FontSizes as e}from\"@fluentui/react\";const o=1000001,i=i=>{const{theme:n,coinRadius:r,loading:t,imageUrl:a,hasError:s,coinSize:l=100}=i;return{root:[\"bp-ProfilePhotoPicker\",{display:\"flex\",flexDirection:\"column\",paddingTop:2,margin:0,alignItems:\"center\"}],container:[{position:\"relative\",padding:n.spacing.s1,\"& .ms-Persona-initials\":{borderRadius:r},\"& .ms-Persona-image\":{borderRadius:r}},a&&!t?{\"& .profile-photo-picker-remove-overlay\":{display:\"none\",position:\"absolute\",width:l,height:l,textAlign:\"center\",wordBreak:\"break-word\",zIndex:o,borderRadius:r,backgroundColor:n.semanticColors.infoBackground},\"&:hover\":{background:n.palette.neutralLight},\"&:hover .profile-photo-picker-remove-overlay\":{display:\"flex\"},\"&:hover .ms-Persona-coin\":{visibility:\"hidden\"}}:{}],overlay:{display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\",backgroundColor:s?n.semanticColors.errorBackground:n.semanticColors.infoBackground,boxShadow:n.effects.elevation4,zIndex:o},addLink:{textAlign:\"center\"},removeLink:{textAlign:\"center\",padding:\"0 8px\"},removeIcon:{top:-2,right:-2,cursor:\"pointer\",position:\"absolute\",fontSize:e.size14,padding:n.spacing.s1,zIndex:1000002},uploadingText:{fontSize:e.size12,color:s?n.semanticColors.errorText:n.semanticColors.link,marginBottom:n.spacing.s1,padding:\"0 8px\",textAlign:\"center\"},subComponentStyles:{personaCoin:{image:{padding:0,margin:0}}}}};export{i as getProfilePhotoPickerStyles};\n//# sourceMappingURL=ProfilePhotoPicker.styles.js.map\n","import{jsx as o}from\"react/jsx-runtime\";import{FontIcon as e}from\"@fluentui/react\";const m=({onClick:m,className:r})=>o(e,{className:r,iconName:\"ChromeClose\",onClick:m});export{m as RemoveButton};\n//# sourceMappingURL=RemoveButton.js.map\n","import{jsx as e}from\"react/jsx-runtime\";import{Link as o}from\"@fluentui/react\";const r=({removePhotoLinkText:r=\"Remove profile photo\",onPictureRemoved:i,className:t})=>e(\"div\",{className:\"profile-photo-picker-remove-overlay\",children:e(o,{className:t,onClick:i,children:r})});export{r as RemoveOverlay};\n//# sourceMappingURL=RemoveOverlay.js.map\n","import{jsxs as a,jsx as e}from\"react/jsx-runtime\";import{Overlay as r,Link as s,Spinner as l}from\"@fluentui/react\";const n=({overlayClassName:n,uploadingTextClassName:o,hasError:c,retryLinkClassName:t,onRetry:i})=>a(r,{className:n,children:[e(\"span\",{className:o,children:c?\"Upload unsuccessful\":\"Uploading...\"}),c?e(s,{className:t,onClick:i,children:\"Retry\"}):e(l,{})]});export{n as UploadingOverlay};\n//# sourceMappingURL=UploadingOverlay.js.map\n","import{jsxs as o,Fragment as e,jsx as r}from\"react/jsx-runtime\";import{useRef as t,useCallback as i,useEffect as n}from\"react\";import{useDropzone as a}from\"react-dropzone\";import{classNamesFunction as s,styled as l,getId as m,PersonaCoin as c,getPersonaInitialsColor as p,PersonaSize as d,Stack as h,Link as u,TooltipHost as f,DirectionalHint as v,FontSizes as g}from\"@fluentui/react\";import{dataAttribute as y,DataAttributes as k}from\"../../../utilities/data-attribute.js\";import\"../../../utilities/transitions.js\";import{FontIcon as x}from\"../../FontIcon/FontIcon.js\";import{getProfilePhotoPickerStyles as C}from\"./ProfilePhotoPicker.styles.js\";import{RemoveButton as N}from\"./RemoveButton.js\";import{RemoveOverlay as P}from\"./RemoveOverlay.js\";import{UploadingOverlay as z}from\"./UploadingOverlay.js\";const j=s(),R=l((({onDropAccepted:s,id:l,addPhotoLinkText:C,removePhotoLinkText:R,imageUrl:T,loading:L,onPictureRemoved:b,coinRadius:I=\"50%\",styles:E,theme:S,hasError:U,onOpened:A,toolTipText:F,...O})=>{const D=t(m()),w=j(E,{theme:S,coinRadius:I,imageUrl:T,loading:L,hasError:U,coinSize:O.coinSize}),{getRootProps:B,getInputProps:G,open:H}=a({noClick:!0,noKeyboard:!0,accept:{\"image/*\":[]},onDropAccepted:s}),K=i(H,[H]);return n((()=>{A&&A(K)}),[A,K]),o(\"div\",{...B(),className:w.root,...y(k.Element,\"profile-photo-picker\"),children:[o(\"div\",{className:w.container,children:[T&&!L&&!U&&o(e,{children:[r(N,{onClick:b,className:w.removeIcon}),r(P,{onPictureRemoved:b,removePhotoLinkText:R,className:w.removeLink})]}),(L||U)&&r(z,{hasError:U,overlayClassName:w.overlay,uploadingTextClassName:w.uploadingText,retryLinkClassName:w.removeLink,onRetry:K}),r(c,{...O,initialsColor:p({text:l}),size:d.size100,imageUrl:T,styles:w.subComponentStyles.personaCoin})]}),o(\"label\",{htmlFor:l??D.current,style:{padding:\"4px 0\"},children:[r(\"input\",{...G(),id:D.current}),o(h,{horizontal:!0,horizontalAlign:\"center\",tokens:{childrenGap:5},children:[r(u,{disabled:L,className:w.addLink,onClick:K,children:C??\"New profile photo\"}),F&&r(f,{content:F,directionalHint:v.bottomCenter,styles:{root:{paddingTop:2}},children:r(x,{iconName:\"Info\",styles:{root:{fontSize:g.size12,cursor:\"pointer\"}}})})]})]})]})}),C);export{R as ProfilePhotoPicker};\n//# sourceMappingURL=ProfilePhotoPicker.js.map\n","import{getGlobalClassNames as e,getFocusStyle as r,HighContrastSelector as o,noWrap as t,getRTL as l}from\"@fluentui/react\";const n={root:\"ms-TagItem\",text:\"ms-TagItem-text\",close:\"ms-TagItem-close\",isSelected:\"is-selected\"};function a(a){const{className:c,theme:s,selected:i,disabled:d}=a,{palette:u,effects:m,fonts:h,semanticColors:g}=s,x=e(n,s);return{root:[x.root,h.medium,r(s),{boxSizing:\"content-box\",flexShrink:\"1\",margin:2,height:26,lineHeight:26,cursor:\"default\",userSelect:\"none\",display:\"flex\",flexWrap:\"nowrap\",minWidth:0,borderRadius:m.roundedCorner2,color:d?g.disabledText:g.inputText,background:!i||d?u.neutralLighter:u.themePrimary,selectors:{\":hover\":[!d&&!i&&{color:u.neutralDark,background:u.neutralLight,selectors:{\".ms-TagItem-close\":{color:u.neutralPrimary}}},d&&{background:u.neutralLighter},i&&!d&&{background:u.themePrimary}],[o]:{border:\"1px solid \"+(i?\"WindowFrame\":\"WindowText\")}}},d&&{selectors:{[o]:{borderColor:\"GrayText\"}}},i&&!d&&[x.isSelected,{color:u.white}],c],text:[x.text,{...t,minWidth:30,margin:\"0 8px\"},d&&{selectors:{[o]:{color:\"GrayText\"}}}],close:[x.close,{color:u.neutralSecondary,width:30,height:\"100%\",flex:\"0 0 auto\",borderRadius:l(s)?`${m.roundedCorner2} 0 0 ${m.roundedCorner2}`:`0 ${m.roundedCorner2} ${m.roundedCorner2} 0`,selectors:{\":hover\":{background:u.neutralQuaternaryAlt,color:u.neutralPrimary},\":active\":{color:u.white}}},i&&{color:u.white,selectors:{\":hover\":{color:u.white,background:u.themeDark}}},d&&{selectors:{\".ms-Button-icon\":{color:u.neutralSecondary}}}]}}export{a as getMultiTagItemStyles};\n//# sourceMappingURL=MultiTagPickerItem.styles.js.map\n","import{jsxs as e,jsx as t}from\"react/jsx-runtime\";import{classNamesFunction as a,styled as s,IconButton as i}from\"@fluentui/react\";import{getMultiTagItemStyles as l}from\"./MultiTagPickerItem.styles.js\";const o=a(),c=a=>{const{theme:s,styles:l,selected:c,disabled:r,enableTagFocusInDisabledPicker:n,children:d,className:m,index:b,onRemoveItem:u,removeButtonAriaLabel:p,disableFocus:f,title:h=(\"string\"==typeof a.children?a.children:a.item.name)}=a,x=o(l,{theme:s,className:m,selected:c,disabled:r});return e(\"div\",{className:x.root,role:\"listitem\",\"data-selection-index\":b,\"data-is-focusable\":(n||!r)&&!f,children:[t(\"span\",{className:x.text,\"aria-label\":h,title:h,children:d}),t(i,{\"data-is-focusable\":!f&&void 0,onClick:u,disabled:r,iconProps:{iconName:\"Cancel\",styles:{root:{fontSize:\"12px\"}}},className:x.close,ariaLabel:p})]},b)},r=s(c,l,void 0,{scope:\"TagItem\"});export{r as MultiTagPickerItem,c as MultiTagPickerItemBase};\n//# sourceMappingURL=MultiTagPickerItem.js.map\n","import{jsx as s,jsxs as t,Fragment as e}from\"react/jsx-runtime\";import*as i from\"react\";import{Spinner as o,SpinnerSize as n,KeyCodes as r,MessageBar as p,MessageBarType as h}from\"@fluentui/react\";import\"../../../utilities/data-attribute.js\";import{setComponentRef as c}from\"../../../utilities/fluent-ui-utils.js\";import\"../../../utilities/transitions.js\";const a=a=>{class l extends i.Component{static{this.defaultProps={pickerSuggestionsProps:{searchForMoreText:\"Show more\"},resolveDelay:500,ignoreWhitespaceOnly:!0,excludeSelectedItems:!0}}componentWillUnmount(){this.unmounted=!0}async componentDidMount(){await this._loadAnyMissingItem()}componentDidUpdate(s){const{selectedKeys:t}=this.props;s.selectedKeys!==t&&JSON.stringify(s.selectedKeys)!==JSON.stringify(t)&&this._loadAnyMissingItem()}async _loadAnyMissingItem(){if(this.props.selectedKeys){const s=this.props.selectedKeys.filter((s=>!this.itemsMap.get(s)));if(s.length){this.setState({isLoadingMissingItems:!0});try{const t=await this.props.onFetchItems(s);this._cacheItems(t)}catch(s){this.setState({error:s.message,isLoadingMissingItems:!1})}this.unmounted||this.setState({isLoadingMissingItems:!1})}}}static{this.displayName=`${a.displayName||a.name}`}constructor(s){super(s),this.pickerInstance=null,this.unmounted=!1,this.itemsMap=new Map,this._cacheItems=s=>{for(const t of s)this.itemsMap.set(this.props.keyAccessor(t),t)},this._getSelectedSuggestionItems=()=>{if(this.props.selectedKeys)return this.state.isLoadingMissingItems?[{key:this.props.selectedKeys[0]}]:this.props.selectedKeys.map((s=>({key:s,item:this.itemsMap.get(s)}))).filter((s=>s.item)).map((({key:s,item:t})=>({...this.props.onResolveSuggestionItem(t,{role:\"selection\"}),key:s})))},this._onChange=s=>{const t=(s?.length??0)<(this.props.selectedKeys?.length??0);if(this.props.onChange){const t=s.map((s=>s.key)).map((s=>this.itemsMap.get(s)));this.props.onChange(s.map((s=>s.key))??[],t)}t&&this.pickerInstance?.input.current?.clear()},this.filterItems=(s,t)=>{const e=t?.length?s.filter((s=>!(t??[]).includes(this.props.keyAccessor(s)))):s;return this.props.excludeSelectedItems&&!this.props.excludeItemsFilter?e:!this.props.excludeSelectedItems&&this.props.excludeItemsFilter?this.props.excludeItemsFilter(s,t??[]):this.props.excludeSelectedItems&&this.props.excludeItemsFilter?this.props.excludeItemsFilter(e,t??[]):s},this._resolveSuggestionItemsFromItems=s=>(this.props.excludeSelectedItems||this.props.excludeItemsFilter?this.filterItems(s,this.props.selectedKeys):s).map((s=>({...this.props.onResolveSuggestionItem(s,{role:\"suggestion\"}),key:this.props.keyAccessor(s)}))),this._onResolveSuggestions=async s=>{if(this.setState({lastSearchResult:void 0}),this.props.ignoreWhitespaceOnly&&\"\"===s.trim())return[];const t=this.props.minimumCharactersToSearch&&\"function\"==typeof this.props.minimumCharactersToSearch?this.props.minimumCharactersToSearch(s):this.props.minimumCharactersToSearch;if(s?.length<(t??0))return this.setState({canSearch:!1}),[];this.setState({canSearch:!0});const e=await this.props.onSearchItems(s);this._cacheItems(e.results);const i=this._resolveSuggestionItemsFromItems(e.results);return this.unmounted||this.setState({lastSearchResult:e}),i},this._onGetMoreResults=async s=>{const t=this.state.lastSearchResult;this.setState({lastSearchResult:void 0});const e=await this.props.onSearchItems(s,t);this._cacheItems(e.results);const i=function(s,t,e){const i=[...s];return t.forEach((t=>{-1===s.findIndex((s=>e(t)===e(s)))&&i.push(t)})),i}(t?.results||[],e.results,this.props.keyAccessor);return this._resolveSuggestionItemsFromItems(i)},this._getItemFromSuggestionItem=s=>{const t=s?.key;return this.itemsMap.get(t)},this._onEmptyResolveSuggestions=async()=>{if(!this.props.onEmptySearchItems)return[];const s=await this.props.onEmptySearchItems();return this._cacheItems(s),this._resolveSuggestionItemsFromItems(s)},this._onPickerBlur=s=>{const{clearInputOnBlur:t=!0}=this.props;this.props.onBlur&&this.props.onBlur(s),t&&this.pickerInstance?.input.current?.clear()},this.enableEmptySuggestions=()=>{this.setState({disableEmptySuggestions:!1},(()=>{this.pickerInstance&&this.pickerInstance.input?.current?.inputElement?.click()}))},this.state={isInputEmpty:!0,disableEmptySuggestions:!s.showEmptySuggestionsOnFocus}}render(){const i=!this.props.selectedKeys?.length,l=!this.pickerInstance?.input.current?.value.trim(),{onRenderItem:m,onRenderSuggestionsItem:g}=this.props,d=m?s=>m(s,this._getItemFromSuggestionItem(s.item)):void 0,S=g?(s,t)=>g(s,t,this._getItemFromSuggestionItem(s)):void 0;let y;l||(void 0!==this.props.pickerSuggestionsProps?.noResultsFoundText?y=this.props.pickerSuggestionsProps.noResultsFoundText:this.state.canSearch&&(y=\"No matches found\"));const I={...this.props.pickerSuggestionsProps,searchForMoreText:this.state.lastSearchResult&&u(this.state.lastSearchResult)?this.props.pickerSuggestionsProps?.searchForMoreText:void 0,noResultsFoundText:y},{onItemSelected:k,...f}=this.props,v=this.state.isLoadingMissingItems?()=>s(o,{size:n.xSmall},\"loading\"):d;return t(e,{children:[s(a,{...f,componentRef:s=>{const t=s;this.pickerInstance=t,c(this.props.componentRef,t)},inputProps:{autoComplete:\"off\",...this.props.inputProps,placeholder:i||this.props.alwaysShowPlaceholder?this.props.inputProps?.placeholder:void 0,onFocus:s=>{this.props.showEmptySuggestionsOnFocus||this.state.disableEmptySuggestions||this.setState({disableEmptySuggestions:!0}),this.props.inputProps?.onFocus&&this.props.inputProps.onFocus(s)},onClick:s=>{this.state.disableEmptySuggestions&&this.enableEmptySuggestions(),this.props.inputProps?.onClick&&this.props.inputProps.onClick(s)},onBlur:s=>{this.props.showEmptySuggestionsOnFocus||this.state.disableEmptySuggestions||this.setState({disableEmptySuggestions:!0}),this.props.inputProps?.onBlur&&this.props.inputProps.onBlur(s)},onKeyDown:s=>{if(s.keyCode===r.enter&&this.state.isInputEmpty&&this.pickerInstance)this.pickerInstance.state.suggestionsVisible?this.pickerInstance.setState({suggestionsVisible:!1}):this.enableEmptySuggestions();else if(this.state.disableEmptySuggestions&&this.state.isInputEmpty&&!this.pickerInstance?.state.suggestionsVisible)switch(s.keyCode){case r.tab:case r.escape:break;default:this.enableEmptySuggestions()}this.props.inputProps?.onKeyDown&&this.props.inputProps.onKeyDown(s)}},selectedItems:this._getSelectedSuggestionItems(),onResolveSuggestions:this._onResolveSuggestions,onChange:this._onChange,onEmptyResolveSuggestions:this.state.disableEmptySuggestions?void 0:this._onEmptyResolveSuggestions,pickerSuggestionsProps:I,onBlur:this._onPickerBlur,onGetMoreResults:this._onGetMoreResults,onItemSelected:s=>{this.setState({error:void 0});const t=s?.key,e=t?this.itemsMap.get(t):void 0;return t&&this.props.selectedKeys?.includes(t)?null:k?k(s,e):s||null},onRenderItem:v,onRenderSuggestionsItem:S}),this.state.error&&s(p,{messageBarType:h.error,children:this.state.error})]})}}return l};function u({total:s,results:t,skip:e,take:i}){return void 0!==s&&void 0!==e&&void 0!==i&&(!!t.length&&e+i{class i extends e.Component{constructor(t){super(t),this._getDataSource=async()=>{this.datasourcePromise&&!this.props.refetchDataSource||(this.datasourcePromise=Promise.resolve(this.props.fetchDataSource()));const t=await this.datasourcePromise;return this.state.items&&!this.props.refetchDataSource||this.setState({items:t}),t},this._onSearchItems=async(t,e)=>{const s=await this._getDataSource(),i=e?this.props.searchMoreLimit:this.props.searchLimit,r=await Promise.resolve(this.props.onFilterItems(t,{take:i,items:s}));return{results:r.slice(0,i),take:i,skip:0,total:r.length}},this._onFetchItems=async t=>(await this._getDataSource()).filter((e=>t.includes(this.props.keyAccessor(e)))),this.state={}}static{this.defaultProps={searchLimit:20,searchMoreLimit:100,ignoreWhitespaceOnly:!1,excludeSelectedItems:!1}}static{this.displayName=`${s.displayName||s.name}`}render(){const{itemLimit:e=this.state.items?.length,onEmptySearchItems:i=()=>this._getDataSource(),...r}=this.props;return t(s,{itemLimit:e,...r,onFetchItems:this._onFetchItems,onSearchItems:this._onSearchItems,onEmptySearchItems:i})}}return i};export{s as withStaticItems};\n//# sourceMappingURL=withStaticItems.js.map\n","import{jsx as e}from\"react/jsx-runtime\";import{TagPicker as t,TagItemSuggestion as i,FontWeights as r}from\"@fluentui/react\";import\"../../../utilities/data-attribute.js\";import{mergeFuncStyles as s}from\"../../../utilities/fluent-ui-utils.js\";import\"../../../utilities/transitions.js\";import{MultiTagPickerItem as o}from\"./MultiTagPickerItem/MultiTagPickerItem.js\";import{extendPicker as n}from\"./extendPicker.js\";import{withStaticItems as m}from\"./withStaticItems.js\";const l=n(t),u=t=>{const n=l,m=t.onRenderSuggestionsItem??((o,n,m)=>{const l=!!t.selectedKeys?.includes(o.key),u=t.withTagItemSuggestionProps?t.withTagItemSuggestionProps(m):{};return e(i,{...n,...u,styles:s((({theme:e})=>({suggestionTextOverflow:l&&{fontWeight:r.semibold,width:\"100%\",textAlign:\"left\",backgroundColor:e.semanticColors.menuItemBackgroundChecked}})),u.styles),children:u.children||o.name})}),u=t.onRenderItem??((i,r)=>{const s=t.withTagItemProps?t.withTagItemProps(r):{};return e(o,{...i,...s,children:s.children||i.item.name})});return e(n,{...t,onRenderSuggestionsItem:m,onRenderItem:u})},c=m(u),g=t=>e(u,{...t,onResolveSuggestionItem:e=>e,keyAccessor:e=>e.key}),a=t=>e(c,{...t,onResolveSuggestionItem:e=>e,keyAccessor:e=>e.key,onFilterItems:(e,i)=>t.onFilterItems?t.onFilterItems(e,i):i.items.filter((t=>t.name.toUpperCase().startsWith(e.trim().toUpperCase())))});export{u as GenericMultiTagPicker,g as MultiTagPicker,c as StaticExtendedPickerBase,a as StaticMultiTagPicker};\n//# sourceMappingURL=MultiTagPicker.js.map\n","import{jsx as t}from\"react/jsx-runtime\";import*as e from\"react\";import\"../../../utilities/data-attribute.js\";import{setComponentRef as s,focusOnNextElement as n,mergeFuncStyles as i}from\"../../../utilities/fluent-ui-utils.js\";import\"../../../utilities/transitions.js\";import\"@fluentui/react\";const o=(o,r)=>{class p extends e.Component{static{this.displayName=`${o.displayName||o.name}`}constructor(t){super(t),this.basePicker=null,this.state={isInputEmpty:!0}}render(){const{onChange:e,focusNextOnChange:p,selectedKey:a,styles:u,...l}=this.props,c=e?(t,s)=>{e(t&&t.length?t[t.length-1]:void 0,s&&s.length?s[s.length-1]:void 0),t?.length&&p&&n(this.basePicker?.input?.current?.inputElement??null)}:void 0,m=i((t=>({...r({...t,isInputEmpty:this.state.isInputEmpty}),input:{position:\"absolute\",width:a||!t.isFocused?\"calc(100% - 43px)\":\"calc(100% - 11px)\"},text:{boxSizing:\"content-box\",backgroundColor:t.theme.palette.white}})),u);return t(o,{...l,onChange:c,componentRef:t=>{this.basePicker=t,s(this.props.componentRef,t)},selectedKeys:a?[a]:[],itemLimit:2,styles:m,onInputChange:t=>{const e=!t;return this.state.isInputEmpty!==e&&this.setState({isInputEmpty:e}),this.props.onInputChange?this.props.onInputChange(t):t}})}}return p},r=s=>{class n extends e.Component{static{this.displayName=`${s.displayName||s.name}`}render(){const{onFetchItem:e,...n}=this.props;return t(s,{...n,onFetchItems:async t=>t.length?[await Promise.resolve(e(t[0]))]:[]})}}return n};export{o as extendToSinglePicker,r as withSingleItemFetch};\n//# sourceMappingURL=extendToSinglePicker.js.map\n","import{jsx as t}from\"react/jsx-runtime\";import\"../../../utilities/data-attribute.js\";import{mergeFuncStyles as e}from\"../../../utilities/fluent-ui-utils.js\";import\"../../../utilities/transitions.js\";import\"@fluentui/react\";import{extendToSinglePicker as i}from\"./extendToSinglePicker.js\";const r=r=>{const o=i(r,(t=>({itemsWrapper:[{\"& > .ms-TagItem\":{position:\"initial\"},\"& > .ms-TagItem .ms-TagItem-close\":{position:\"absolute\",right:0,top:0}},{\"& > .ms-TagItem .ms-TagItem-text\":{paddingRight:32}},t.isFocused&&{\"& > .ms-TagItem .ms-TagItem-text\":{opacity:t.isInputEmpty?1:0}}]})));return i=>t(o,{...i,withTagItemProps:t=>{const r=i.withTagItemProps?i.withTagItemProps(t):{},o=e((({theme:{palette:t}})=>({text:{marginLeft:0,marginRight:0,paddingLeft:8,paddingRight:8,minWidth:22},root:{background:t.white,color:t.neutralPrimary,selectors:{\":hover\":{background:t.white}}},close:{color:t.neutralSecondary,background:t.white,selectors:{\"&:hover\":{color:t.neutralPrimary,background:t.neutralLighter},\"&:active\":{color:t.neutralPrimary,background:t.neutralLighter}}}})),r.styles);return{...r,styles:o,disableFocus:!0}}})};export{r as extendToSingleTagPicker};\n//# sourceMappingURL=extendToSingleTagPicker.js.map\n","import{StaticMultiTagPicker as o}from\"./MultiTagPicker.js\";import{extendToSingleTagPicker as r}from\"./extendToSingleTagPicker.js\";const e=r(o);export{e as StaticPicker};\n//# sourceMappingURL=StaticPicker.js.map\n","import{jsx as r}from\"react/jsx-runtime\";import{GenericMultiTagPicker as e}from\"./MultiTagPicker.js\";import{withSingleItemFetch as o}from\"./extendToSinglePicker.js\";import{extendToSingleTagPicker as i}from\"./extendToSingleTagPicker.js\";const t=o(i(e)),m=e=>r(t,{...e});export{m as GenericPicker};\n//# sourceMappingURL=GenericPicker.js.map\n","import{FontWeights as o}from\"@fluentui/react\";const t=t=>{const{className:r,horizontal:e,wrap:i}=t;return{root:[\"bp-CheckboxGroup\",r],legend:[\"bp-CheckboxGroup-legend\",{padding:0,paddingBottom:5,paddingTop:5,fontWeight:o.semibold}],itemsWrapper:{display:\"flex\",flexDirection:e?\"row\":\"column\",flexWrap:i?\"wrap\":\"nowrap\",\"& .ms-Checkbox\":e?{marginRight:8,\"&:last-child\":{marginRight:0}}:{marginBottom:8,\"&:last-child\":{marginBottom:0}}}}};export{t as getCheckboxGroupStyles};\n//# sourceMappingURL=CheckboxGroup.styles.js.map\n","import{jsxs as e,jsx as t}from\"react/jsx-runtime\";import{PureComponent as s}from\"react\";import{classNamesFunction as l,styled as o,memoizeFunction as n,Checkbox as h,mergeStyleSets as r}from\"@fluentui/react\";import{getCheckboxGroupStyles as a}from\"./CheckboxGroup.styles.js\";const i=l();const c=o(class extends s{constructor(){super(...arguments),this.handleCheckAllChecked=()=>{const{options:e,value:t}=this.props,s=p(e,t)?[]:e.map((e=>e.value));this.props.onChange&&this.props.onChange(s)},this.handleCheckboxChange=(e,t,s)=>{const l=this.props.value||[],o=t?[...l,s]:l.filter((e=>e!==s));this.props.onChange&&this.props.onChange(o)}}render(){const{className:s,styles:l,theme:o,legend:n,value:a,options:c,checkAllOption:p,disabled:d,horizontal:m,wrap:u,checkboxWidth:C}=this.props,g=i(l,{theme:o,className:s,horizontal:m,wrap:u}),k=u?{root:{\"&:not(:first-child)\":{marginLeft:0},marginBottom:8,marginRight:8,width:C}}:{};return e(\"fieldset\",{className:g.root,children:[n&&t(\"legend\",{className:g.legend,children:n}),e(\"div\",{className:g.itemsWrapper,children:[!!c.length&&p&&this.renderCheckAllCheckbox(),c.map((e=>{const{label:s,checkboxProps:o}=e,n=a&&a.includes(e.value);return t(h,{...o,label:o&&o.label||s,checked:n,onChange:(t,s)=>this.handleCheckboxChange(t,s,e.value),disabled:d||e.disabled,styles:r(k,l)},e.value)}))]})]})}renderCheckAllCheckbox(){const{options:e,value:s,checkAllOption:l}=this.props,o=p(e,s),n=!o&&s&&!!s.length;return t(h,{...l,checked:o,indeterminate:n,onChange:this.handleCheckAllChecked})}},a),p=n(((e,t)=>t&&!!t.length&&e.every((e=>t.includes(e.value)))));export{c as CheckboxGroup};\n//# sourceMappingURL=CheckboxGroup.js.map\n","const t=(t,e)=>({tileStyles:{root:{justifyContent:\"center\",padding:16,minHeight:130,borderWidth:e?1:0,borderStyle:\"solid\",borderColor:e?t.semanticColors.errorText:t.palette.neutralTertiary},content:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\"}},textStyles:{root:{fontSize:t.fonts.medium.fontSize,fontStyle:\"italic\",textAlign:\"center\",color:e?t.semanticColors.errorText:t.palette.neutralTertiary}}});export{t as getNoDataTileStyles};\n//# sourceMappingURL=NoDataTile.styles.js.map\n","import{jsx as t,jsxs as e}from\"react/jsx-runtime\";import{useTheme as i,mergeStyleSets as o,Stack as r,Text as l,Link as n}from\"@fluentui/react\";import{dataAttribute as s,DataAttributes as a}from\"../../utilities/data-attribute.js\";import\"../../utilities/transitions.js\";import{Tile as d}from\"../Tile/Tile.js\";import{getNoDataTileStyles as m}from\"./NoDataTile.styles.js\";const c=({styles:c,invalid:h,textProps:p,linkProps:y,id:x,showBoxShadow:u,greyView:f,dataAttr:w=\"no-data-tile\"})=>{const j=i(),{tileStyles:k,textStyles:S}=m(j,h);return t(d,{...s(a.Element,w),id:x,styles:o(k,c),greyView:f,showBoxShadow:u,children:e(r,{horizontalAlign:\"center\",tokens:{childrenGap:8},children:[t(l,{styles:o(S,p.styles),children:p.text}),y.onRender?y.onRender():!y.hidden&&t(n,{...s(a.Element,\"no-data-tile-link\"),onClick:y.onClick,children:y.text})]})})};export{c as NoDataTile};\n//# sourceMappingURL=NoDataTile.js.map\n","import{FontWeights as t}from\"@fluentui/react\";const e=e=>{const r={fontWeight:t.regular,backgroundColor:e.palette.neutralLighter,color:e.palette.neutralPrimary},o={fontWeight:t.semibold,backgroundColor:e.palette.neutralLight,color:e.palette.neutralPrimary};return{pivotTabsStyles:{link:{padding:\"12px 16px\",color:e.palette.neutralPrimary,margin:0,\"&:active\":o,\"&:hover\":r},linkIsSelected:{\"&&\":o,\"&&:hover\":o}}}};export{e as getStylesPivotTabs};\n//# sourceMappingURL=PivotTabs.styles.js.map\n","import{jsx as t}from\"react/jsx-runtime\";import{useTheme as s,Pivot as r,mergeStyleSets as o}from\"@fluentui/react\";import{getStylesPivotTabs as e}from\"./PivotTabs.styles.js\";const i=({styles:i,...m})=>{const a=s(),l=e(a);return t(r,{styles:o(i,l.pivotTabsStyles),linkFormat:\"tabs\",...m})};export{i as PivotTabs};\n//# sourceMappingURL=PivotTabs.js.map\n","const e=e=>{const{vertical:t,itemsGap:i=8}=e,o=t?\"column\":\"row\",r=t?{marginBottom:i}:{marginRight:i},a={width:t?\"auto\":\"100%\",height:t?\"100%\":\"auto\"};return{wrapper:[\"bp-ResizableOverflowBar\",{...a,display:\"flex\",flexDirection:o}],container:{...a,overflow:\"hidden\",display:\"flex\",flexDirection:o,alignItems:\"center\"},item:r,overflow:{}}};export{e as getResizableOverflowBarStyles};\n//# sourceMappingURL=ResizableOverflowBar.styles.js.map\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\nmodule.exports = isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\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\nmodule.exports = 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\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\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\nmodule.exports = baseGetTag;\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\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","import*as React from'react';import {cloneElement,isValidElement,createRef,PureComponent,Component,forwardRef,useRef,useState,useEffect,useLayoutEffect}from'react';import {findDOMNode}from'react-dom';import debounce from'lodash/debounce';import throttle from'lodash/throttle';/*! *****************************************************************************\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\nfunction __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\nvar __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\nfunction __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}var patchResizeHandler = function (resizeCallback, refreshMode, refreshRate, refreshOptions) {\n switch (refreshMode) {\n case 'debounce':\n return debounce(resizeCallback, refreshRate, refreshOptions);\n case 'throttle':\n return throttle(resizeCallback, refreshRate, refreshOptions);\n default:\n return resizeCallback;\n }\n};\nvar isFunction = function (fn) { return typeof fn === 'function'; };\nvar isSSR = function () { return typeof window === 'undefined'; };\nvar isDOMElement = function (element) {\n return element instanceof Element || element instanceof HTMLDocument;\n};\nvar createNotifier = function (onResize, setSize, handleWidth, handleHeight) {\n return function (_a) {\n var width = _a.width, height = _a.height;\n setSize(function (prev) {\n if (prev.width === width && prev.height === height) {\n // skip if dimensions haven't changed\n return prev;\n }\n if ((prev.width === width && !handleHeight) || (prev.height === height && !handleWidth)) {\n // process `handleHeight/handleWidth` props\n return prev;\n }\n onResize === null || onResize === void 0 ? void 0 : onResize(width, height);\n return { width: width, height: height };\n });\n };\n};var ResizeDetector = /** @class */ (function (_super) {\n __extends(ResizeDetector, _super);\n function ResizeDetector(props) {\n var _this = _super.call(this, props) || this;\n _this.cancelHandler = function () {\n if (_this.resizeHandler && _this.resizeHandler.cancel) {\n // cancel debounced handler\n _this.resizeHandler.cancel();\n _this.resizeHandler = null;\n }\n };\n _this.attachObserver = function () {\n var _a = _this.props, targetRef = _a.targetRef, observerOptions = _a.observerOptions;\n if (isSSR()) {\n return;\n }\n if (targetRef && targetRef.current) {\n _this.targetRef.current = targetRef.current;\n }\n var element = _this.getElement();\n if (!element) {\n // can't find element to observe\n return;\n }\n if (_this.observableElement && _this.observableElement === element) {\n // element is already observed\n return;\n }\n _this.observableElement = element;\n _this.resizeObserver.observe(element, observerOptions);\n };\n _this.getElement = function () {\n var _a = _this.props, querySelector = _a.querySelector, targetDomEl = _a.targetDomEl;\n if (isSSR())\n return null;\n // in case we pass a querySelector\n if (querySelector)\n return document.querySelector(querySelector);\n // in case we pass a DOM element\n if (targetDomEl && isDOMElement(targetDomEl))\n return targetDomEl;\n // in case we pass a React ref using React.createRef()\n if (_this.targetRef && isDOMElement(_this.targetRef.current))\n return _this.targetRef.current;\n // the worse case when we don't receive any information from the parent and the library doesn't add any wrappers\n // we have to use a deprecated `findDOMNode` method in order to find a DOM element to attach to\n var currentElement = findDOMNode(_this);\n if (!currentElement)\n return null;\n var renderType = _this.getRenderType();\n switch (renderType) {\n case 'renderProp':\n return currentElement;\n case 'childFunction':\n return currentElement;\n case 'child':\n return currentElement;\n case 'childArray':\n return currentElement;\n default:\n return currentElement.parentElement;\n }\n };\n _this.createResizeHandler = function (entries) {\n var _a = _this.props, _b = _a.handleWidth, handleWidth = _b === void 0 ? true : _b, _c = _a.handleHeight, handleHeight = _c === void 0 ? true : _c, onResize = _a.onResize;\n if (!handleWidth && !handleHeight)\n return;\n var notifyResize = createNotifier(onResize, _this.setState.bind(_this), handleWidth, handleHeight);\n entries.forEach(function (entry) {\n var _a = (entry && entry.contentRect) || {}, width = _a.width, height = _a.height;\n var shouldSetSize = !_this.skipOnMount && !isSSR();\n if (shouldSetSize) {\n notifyResize({ width: width, height: height });\n }\n _this.skipOnMount = false;\n });\n };\n _this.getRenderType = function () {\n var _a = _this.props, render = _a.render, children = _a.children;\n if (isFunction(render)) {\n // DEPRECATED. Use `Child Function Pattern` instead\n return 'renderProp';\n }\n if (isFunction(children)) {\n return 'childFunction';\n }\n if (isValidElement(children)) {\n return 'child';\n }\n if (Array.isArray(children)) {\n // DEPRECATED. Wrap children with a single parent\n return 'childArray';\n }\n // DEPRECATED. Use `Child Function Pattern` instead\n return 'parent';\n };\n var skipOnMount = props.skipOnMount, refreshMode = props.refreshMode, _a = props.refreshRate, refreshRate = _a === void 0 ? 1000 : _a, refreshOptions = props.refreshOptions;\n _this.state = {\n width: undefined,\n height: undefined\n };\n _this.skipOnMount = skipOnMount;\n _this.targetRef = createRef();\n _this.observableElement = null;\n if (isSSR()) {\n return _this;\n }\n _this.resizeHandler = patchResizeHandler(_this.createResizeHandler, refreshMode, refreshRate, refreshOptions);\n _this.resizeObserver = new window.ResizeObserver(_this.resizeHandler);\n return _this;\n }\n ResizeDetector.prototype.componentDidMount = function () {\n this.attachObserver();\n };\n ResizeDetector.prototype.componentDidUpdate = function () {\n this.attachObserver();\n };\n ResizeDetector.prototype.componentWillUnmount = function () {\n if (isSSR()) {\n return;\n }\n this.observableElement = null;\n this.resizeObserver.disconnect();\n this.cancelHandler();\n };\n ResizeDetector.prototype.render = function () {\n var _a = this.props, render = _a.render, children = _a.children, _b = _a.nodeType, WrapperTag = _b === void 0 ? 'div' : _b;\n var _c = this.state, width = _c.width, height = _c.height;\n var childProps = { width: width, height: height, targetRef: this.targetRef };\n var renderType = this.getRenderType();\n switch (renderType) {\n case 'renderProp':\n return render === null || render === void 0 ? void 0 : render(childProps);\n case 'childFunction': {\n var childFunction = children;\n return childFunction === null || childFunction === void 0 ? void 0 : childFunction(childProps);\n }\n case 'child': {\n // @TODO bug prone logic\n var child = children;\n if (child.type && typeof child.type === 'string') {\n // child is a native DOM elements such as div, span etc\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n childProps.targetRef; var nativeProps = __rest(childProps, [\"targetRef\"]);\n return cloneElement(child, nativeProps);\n }\n // class or functional component otherwise\n return cloneElement(child, childProps);\n }\n case 'childArray': {\n var childArray = children;\n return childArray.map(function (el) { return !!el && cloneElement(el, childProps); });\n }\n default:\n return React.createElement(WrapperTag, null);\n }\n };\n return ResizeDetector;\n}(PureComponent));function withResizeDetector(ComponentInner, options) {\n if (options === void 0) { options = {}; }\n var ResizeDetectorHOC = /** @class */ (function (_super) {\n __extends(ResizeDetectorHOC, _super);\n function ResizeDetectorHOC() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ref = createRef();\n return _this;\n }\n ResizeDetectorHOC.prototype.render = function () {\n var _a = this.props, forwardedRef = _a.forwardedRef, rest = __rest(_a, [\"forwardedRef\"]);\n var targetRef = forwardedRef !== null && forwardedRef !== void 0 ? forwardedRef : this.ref;\n return (React.createElement(ResizeDetector, __assign({}, options, { targetRef: targetRef }),\n React.createElement(ComponentInner, __assign({ targetRef: targetRef }, rest))));\n };\n return ResizeDetectorHOC;\n }(Component));\n function forwardRefWrapper(props, ref) {\n return React.createElement(ResizeDetectorHOC, __assign({}, props, { forwardedRef: ref }));\n }\n var name = ComponentInner.displayName || ComponentInner.name;\n forwardRefWrapper.displayName = \"withResizeDetector(\".concat(name, \")\");\n return forwardRef(forwardRefWrapper);\n}var useEnhancedEffect = isSSR() ? useEffect : useLayoutEffect;\nfunction useResizeDetector(props) {\n if (props === void 0) { props = {}; }\n var _a = props.skipOnMount, skipOnMount = _a === void 0 ? false : _a, refreshMode = props.refreshMode, _b = props.refreshRate, refreshRate = _b === void 0 ? 1000 : _b, refreshOptions = props.refreshOptions, _c = props.handleWidth, handleWidth = _c === void 0 ? true : _c, _d = props.handleHeight, handleHeight = _d === void 0 ? true : _d, targetRef = props.targetRef, observerOptions = props.observerOptions, onResize = props.onResize;\n var skipResize = useRef(skipOnMount);\n var localRef = useRef(null);\n var resizeHandler = useRef();\n var ref = targetRef !== null && targetRef !== void 0 ? targetRef : localRef;\n var _e = useState({\n width: undefined,\n height: undefined\n }), size = _e[0], setSize = _e[1];\n useEnhancedEffect(function () {\n if (!handleWidth && !handleHeight)\n return;\n var notifyResize = createNotifier(onResize, setSize, handleWidth, handleHeight);\n var resizeCallback = function (entries) {\n if (!handleWidth && !handleHeight)\n return;\n entries.forEach(function (entry) {\n var _a = (entry && entry.contentRect) || {}, width = _a.width, height = _a.height;\n var shouldSetSize = !skipResize.current;\n if (shouldSetSize) {\n notifyResize({ width: width, height: height });\n }\n skipResize.current = false;\n });\n };\n resizeHandler.current = patchResizeHandler(resizeCallback, refreshMode, refreshRate, refreshOptions);\n var resizeObserver = new window.ResizeObserver(resizeHandler.current);\n if (ref.current) {\n resizeObserver.observe(ref.current, observerOptions);\n }\n return function () {\n var _a, _b;\n resizeObserver.disconnect();\n (_b = (_a = resizeHandler.current).cancel) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n }, [refreshMode, refreshRate, refreshOptions, handleWidth, handleHeight, onResize, observerOptions, ref.current]);\n return __assign({ ref: ref }, size);\n}export{ResizeDetector as default,useResizeDetector,withResizeDetector};//# sourceMappingURL=index.esm.js.map\n","import{jsxs as e,jsx as r}from\"react/jsx-runtime\";import{memo as t,useState as i,useEffect as o}from\"react\";import{useResizeDetector as l}from\"react-resize-detector\";import{classNamesFunction as s,useTheme as n,styled as c}from\"@fluentui/react\";import{getResizableOverflowBarStyles as a}from\"./ResizableOverflowBar.styles.js\";const d=s(),h=e=>r(m,{...e}),m=c(t((({items:t,renderItems:s,onRenderItem:c,onRenderOverflow:a,itemSize:h,activeItemSize:m,itemsGap:f=8,styles:p,vertical:v,onRenderItemsUpdated:w})=>{const[g,u]=i({render:[],overflow:[]}),R=n(),z=d(p,{theme:R,itemsGap:f,vertical:v}),I=s&&s.length>0,N=(e,r)=>{const i=v?r:e;let o=[],l=[];if(I){const e=s.reduce(((e,r)=>e+r.width+f),0)+(m??0);if(i&&e{r.width+e<=i?(o.push(r),e+=r.width):l.push(r)}))}}else{const e=(t?.length??0)*(h+f)+(m??0);if(i&&e{N(j,b)}),[t,s,h]),e(\"div\",{className:z.wrapper,children:[r(\"div\",{ref:y,className:z.container,children:g.render.map((e=>r(\"div\",{className:z.item,children:I?e.item:c&&c(e)},e.key)))}),!!g.overflow.length&&r(\"div\",{className:z.overflow,children:a(g.overflow)})]})})),a);export{h as ResizableOverflowBar};\n//# sourceMappingURL=ResizableOverflowBar.js.map\n","import{FontSizes as e}from\"@fluentui/react\";const t=({theme:t,centerAlign:r,className:l})=>({root:[\"bp-StateBlock\",l,{display:\"flex\",flexGrow:1,flexBasis:1,flexDirection:\"column\",alignItems:r?\"center\":\"flex-start\",justifyContent:\"center\",padding:16,borderWidth:1,borderStyle:\"solid\",borderColor:t.palette.neutralLight}],description:{},label:{fontSize:e.size10,color:t.palette.neutralSecondary,marginBottom:4},link:{},wrapper:{marginBottom:4,display:\"flex\",flexDirection:\"column\",alignItems:r?\"center\":\"flex-start\"}});export{t as getStateBlockStyles};\n//# sourceMappingURL=StateBlock.styles.js.map\n","import{jsxs as e,jsx as t}from\"react/jsx-runtime\";import{classNamesFunction as i,styled as s,useTheme as l,Link as r}from\"@fluentui/react\";import{dataAttribute as a,DataAttributes as c}from\"../../utilities/data-attribute.js\";import\"../../utilities/transitions.js\";import{getStateBlockStyles as n}from\"./StateBlock.styles.js\";const o=i(),m=s((({descText:i,labelText:s,centerAlign:n,onLickClick:m,styles:d,className:p,linkText:k,id:u,...N})=>{const h=l(),f=o(d,{theme:h,className:p,centerAlign:n});return e(\"div\",{...a(c.Element,\"state-block\"),id:u,className:f.root,...N,children:[e(\"div\",{className:f.wrapper,children:[t(\"div\",{className:f.label,children:s}),t(\"div\",{className:f.description,children:i})]}),m&&k&&t(r,{className:f.link,onClick:m,children:k})]})}),n);export{m as StateBlock};\n//# sourceMappingURL=StateBlock.js.map\n","import{FontWeights as e,FontSizes as t}from\"@fluentui/react\";const r=r=>{const{className:o,theme:i,hasChildren:a}=r;return{root:[\"bp-SideRailMenu\",o,{display:\"flex\",height:\"100%\",width:a?\"100%\":\"auto\"}],container:{},item:{borderLeft:\"3px solid transparent\",cursor:\"pointer\",selectors:{\"&:hover\":{color:i.palette.themePrimary}}},link:{display:\"block\",padding:\"10px 0 10px 5px\"},active:{borderColor:i.palette.themePrimary,fontWeight:e.semibold},note:{backgroundColor:i.semanticColors.severeWarningBackground,marginLeft:5,fontSize:t.xSmall,display:\"inline-flex\",width:15,alignItems:\"center\",height:15,borderRadius:7.5,justifyContent:\"center\",transform:\"translateY(-5px)\",color:i.palette.black},containerWrapper:{position:\"sticky\",top:0,height:\"auto\",marginRight:a?16:0}}};export{r as getSideRailMenuStyles};\n//# sourceMappingURL=SideRailMenu.styles.js.map\n","import{jsx as e,jsxs as t}from\"react/jsx-runtime\";const a=({handleSetSelectedId:a,item:i,classNames:c,selectedId:n,onPathChange:s,pathname:d,predicate:l})=>e(\"li\",{className:`${c.item} ${(s?l?l(d,i.id):d&&d.match(i.id):l?l(n,i.id):i.id===n)?c.active:\"\"}`,children:t(\"a\",{className:c.link,onClick:()=>{a(i.id)},children:[i.text,i.notes&&e(\"span\",{className:c.note,children:i.notes})]})});export{a as SideRailMenuListItem};\n//# sourceMappingURL=SideRailMenuListItem.js.map\n","import{jsxs as e,jsx as t}from\"react/jsx-runtime\";import{useState as r,createRef as n,useRef as o,useEffect as s,useCallback as i}from\"react\";import{classNamesFunction as l,styled as c,useTheme as a}from\"@fluentui/react\";import\"../../utilities/data-attribute.js\";import\"../../utilities/transitions.js\";import{Smooth as u}from\"../../utilities/scrolling-options.js\";import{getSideRailMenuStyles as m}from\"./SideRailMenu.styles.js\";import{SideRailMenuListItem as d}from\"./SideRailMenuListItem.js\";const f=l();let h=null;const p=c((({items:l,defaultId:c,onMenuItemClicked:m,delay:p,className:g,styles:v,onPathChange:I,scrollOptions:H,pathname:T,children:j,extraItems:y,predicate:N})=>{const S=a(),[b,C]=r(l[0]?.id),E=n(),x=o(null),L=o(),M=!!j;s((()=>{!I&&c&&B(c)}),[c]);const k=i((e=>{const t=l.map((e=>e.id)),{scrollHeight:r,offsetHeight:n,scrollTop:o}=e;if(r<=o+n){const e=t[t.length-1],r=L.current?L.current:e;return r!==b&&C(r),!1}for(let e=0;eo){const r=L.current?L.current:t[e];r!==b&&C(r);break}}}),[l,b]),q=i(((e,t)=>{h&&clearTimeout(h),h=setTimeout(t,200),k(e)}),[k]);s((()=>{const e=e=>{const{scrollHeight:t,offsetHeight:r,scrollTop:n}=e.target;requestAnimationFrame((()=>{q({scrollHeight:t,offsetHeight:r,scrollTop:n},(()=>{L.current=void 0}))}))};if(!I)return E.current&&(x.current=M?E.current.querySelector(\"*[data-is-scrollable='true']\"):E.current.closest(\"*[data-is-scrollable='true']\"),x.current&&x.current.addEventListener(\"scroll\",e)),()=>{x.current&&x.current.removeEventListener(\"scroll\",e)}}),[q,I,E]);const B=e=>{if(I)return void I(e);if(m&&b!==e&&m(e),e===b)return void(L.current=void 0);L.current=e,C(e);const t=document.getElementById(e);t&&setTimeout((()=>{t.scrollIntoView(H??u)}),p??1)};if(0===l.length)return null;const P=f(v,{theme:S,className:g,hasChildren:M});return e(\"div\",{className:P.root,ref:E,children:[e(\"div\",{className:P.containerWrapper,children:[t(\"ul\",{className:P.container,children:l.map((e=>t(d,{item:e,selectedId:b,classNames:P,handleSetSelectedId:B,onPathChange:I,pathname:T,predicate:N},e.id)))}),y]}),j]})}),m);export{p as SideRailMenu};\n//# sourceMappingURL=SideRailMenu.js.map\n","import{jsx as r}from\"react/jsx-runtime\";import{Sticky as t,StickyPositionType as i}from\"@fluentui/react\";const o=(o,e)=>r(t,{stickyPosition:i.Header,stickyBackgroundColor:\"transparent\",children:r(\"div\",{children:e(o)})});export{o as handleRenderDetailsStickyHeader};\n//# sourceMappingURL=utils.js.map\n","const e=\"solid\",r=r=>{const{theme:o,bordersVariant:t}=r,l=o.palette.neutralLight,s={borderWidth:1,borderStyle:e,borderColor:l,\".ms-List-page .ms-List-cell:last-child .ms-DetailsRow\":{border:\"none\"}},d={\".ms-List-page .ms-List-cell .ms-DetailsRow\":{border:\"none\"}},a={\".ms-DetailsHeader\":{border:\"none\"}},i={...s,...d,...a},b={...s,...d},n={...d,borderTopWidth:1,borderTopStyle:e,borderTopColor:l},m={...d,...a};return t?{full:s,frameOnly:i,frameWithHeader:b,fullHeader:n,bottomHeader:d,borderless:m}[t]:void 0};export{r as getListStyles};\n//# sourceMappingURL=withBorderStyles.styles.js.map\n","import{jsx as t}from\"react/jsx-runtime\";import{useTheme as r,mergeStyles as e}from\"@fluentui/react\";import{dataAttribute as i,DataAttributes as s}from\"../../../utilities/data-attribute.js\";import\"../../../utilities/transitions.js\";import{getListStyles as m}from\"./withBorderStyles.styles.js\";const o=o=>a=>{const{bordersVariant:n,...l}=a,p=r();return t(\"div\",{className:e(\"bp-list-wrapper\",m({...a,theme:p})),...i(s.Loading,!!l.enableShimmer),...i(s.Element,a.setKey??\"shimmer-list\"),children:t(o,{...a})})};export{o as withBorderStyles};\n//# sourceMappingURL=withBorderStyles.js.map\n","const e=3,t=\"reset-cell-padding\";export{t as RESET_CELLS_PADDING_CLASSNAME,e as TRAILING_SHIMMER_ROWS};\n//# sourceMappingURL=ShimmeredDetailsList.types.js.map\n","import{jsx as e}from\"react/jsx-runtime\";import{useRef as r,useEffect as t}from\"react\";import{ShimmeredDetailsList as o,CheckboxVisibility as i,SelectionMode as s}from\"@fluentui/react\";import{SelectableIcon as n}from\"../../SelectableIcon.js\";import{handleRenderDetailsStickyHeader as l}from\"../utils.js\";import{withBorderStyles as c}from\"../withBorderStyles/withBorderStyles.js\";import{TRAILING_SHIMMER_ROWS as a}from\"./ShimmeredDetailsList.types.js\";const m=c((c=>{const m=r(null);t((()=>{if(m.current&&m.current._root.current){const e=m.current._root.current.querySelectorAll(\".ms-DetailsHeader .ms-DetailsHeader-cellTitle\"),r=\"data-is-focusable\",t=\"tabindex\";e&&e.length&&e.forEach((e=>{e.removeAttribute(r),e.setAttribute(t,\"-1\")}))}}),[]);const{enableTrailingShimmer:d,items:u,onShouldVirtualize:h=e=>!!e.items&&e.items.length>100,errorMessage:f,...p}=c,y=d?(e=>[...e,...Array.from(Array(a).keys()).map((()=>{}))])(u):u;return f&&c.onRenderError?c.onRenderError(f):e(o,{...p,checkboxVisibility:i.always,onRenderCheckbox:r=>e(n,{checked:r?.checked,selectionMode:p.selectionMode}),selectionMode:p.selectionMode??s.none,componentRef:e=>{m.current=e},items:y,onShouldVirtualize:h,onRenderDetailsHeader:c.stickyHeader?l:c.onRenderDetailsHeader})}));export{m as ShimmeredDetailsList};\n//# sourceMappingURL=ShimmeredDetailsList.js.map\n","import{jsx as e}from\"react/jsx-runtime\";import{DetailsList as o,SelectionMode as t}from\"@fluentui/react\";export{CheckboxVisibility,ColumnActionsMode,ConstrainMode,DetailsHeader,DetailsListLayoutMode,DetailsRowFields}from\"@fluentui/react\";import{SelectableIcon as i}from\"../../SelectableIcon.js\";import{handleRenderDetailsStickyHeader as r}from\"../utils.js\";import{withBorderStyles as s}from\"../withBorderStyles/withBorderStyles.js\";const n=s((s=>e(o,{...s,onRenderCheckbox:o=>e(i,{checked:o?.checked,selectionMode:s.selectionMode}),selectionMode:s.selectionMode??t.none,onRenderDetailsHeader:s.stickyHeader?r:s.onRenderDetailsHeader})));export{n as DetailsList};\n//# sourceMappingURL=DetailsList.js.map\n","import{jsx as e}from\"react/jsx-runtime\";import{DetailsRow as o,CheckboxVisibility as t}from\"@fluentui/react\";import{SelectableIcon as c}from\"../../SelectableIcon.js\";const i=i=>e(o,{...i,checkboxVisibility:t.always,onRenderDetailsCheckbox:o=>i.onRenderDetailsCheckbox?i.onRenderDetailsCheckbox(o):e(c,{checked:o?.checked,selectionMode:i.selectionMode})});export{i as DetailsRow};\n//# sourceMappingURL=DetailsRow.js.map\n","import{jsx as t}from\"react/jsx-runtime\";import{DetailsRow as r}from\"./components/DetailsRow.js\";const o=o=>{if(!o)return null;const e=o.item;return t(r,{...o,id:e.id})};export{o as DtoDetailsRow};\n//# sourceMappingURL=DtoDetailRow.js.map\n","const t=t=>{const{className:i}=t;return{root:[\"bp-NativeList\",i,{margin:0,padding:0,listStyle:\"inherit\",marginLeft:24}]}};export{t as getStyles};\n//# sourceMappingURL=NativeList.styles.js.map\n","import{jsx as t}from\"react/jsx-runtime\";import{classNamesFunction as e,styled as s}from\"@fluentui/react\";import{getStyles as r}from\"./NativeList.styles.js\";const o=e(),m=s((e=>{const{styles:s,orderedList:r,theme:m,...a}=e,i=o(s,{className:a.className});return t(r?\"ol\":\"ul\",{...a,className:i.root})}),r);export{m as NativeList};\n//# sourceMappingURL=NativeList.js.map\n","const e={spacing:{l1:\"24px\"},defaultFontStyle:{fontFamily:\"'Open Sans', sans-serif;\"},palette:{themePrimary:\"#246ec9\",themeLighterAlt:\"#f5f8fd\",themeLighter:\"#d6e5f6\",themeLight:\"#b4cfef\",themeTertiary:\"#71a3df\",themeSecondary:\"#3a7dd0\",themeDarkAlt:\"#2164b5\",themeDark:\"#1c5499\",themeDarker:\"#143e71\",neutralLighterAlt:\"#f8f8f8\",neutralLighter:\"#daf4f4\",neutralLight:\"#d1eaea\",neutralQuaternaryAlt:\"#c3dada\",neutralQuaternary:\"#bad0d0\",neutralTertiaryAlt:\"#b2c8c8\",neutralTertiary:\"#b1afad\",neutralSecondary:\"#605e5c\",neutralPrimaryAlt:\"#4c4a48\",neutralPrimary:\"#181817\",neutralDark:\"#4b4948\",black:\"#000000\",white:\"#ffffff\",green:\"#107C10\",yellowDark:\"#857F00\"},appointmentStatusesColors:{bookedPrimary:\"#18A0FB\",bookedSecondary:\"#E6F5FF\",waitingPrimary:\"#FFFB84\",waitingSecondary:\"#FFFEE6\",providerPrimary:\"#8482FF\",providerSecondary:\"#F5F5FF\",billingPrimary:\"#84FF84\",billingSecondary:\"#E5FFE5\",notAttendedPrimary:\"#FF9294\",notAttendedSecondary:\"#FFDBDC\",completedPrimary:\"#CECBCE\",completedSecondary:\"#EBEAEB\",urgentPrimary:\"#FF0000\",urgentSecondary:\"#FF8A8A\",urgentAndWaitingPrimary:\"#FF7D42\",urgentAndWaitingSecondary:\"#FFCAB2\",customisedAppointment:\"#87BD87\"},locationColors:{red:\"#BB1D1D\",orange:\"#FB9435\",gold:\"#F2C744\",olive:\"#A7A844\",teal:\"#3BBFAD\",cyan:\"#79FBF3\",cobalt:\"#004AA0\",lavender:\"#AFB9F2\",mauve:\"#A46583\",pink:\"#FFA9F1\"},semanticColors:{buttonBackgroundDisabled:\"#f4f4f4\",disabledBackground:\"#f4f4f4\",bodyBackground:\"#ffffff\",primaryButtonBackgroundDisabled:\"#f4f4f4\",primaryButtonTextDisabled:\"#d2d0ce\",mainHeaderBackground:\"#001529\"}},r={\":global(body), :global(html), :global(#root), :global(#root > div)\":{margin:0,padding:0,height:\"100%\"},\":global([role='link']), :global([role='button'])\":{cursor:\"pointer\"}};export{e as defaultTheme,r as globalAppStyles};\n//# sourceMappingURL=defaultTheme.js.map\n","import{FontSizes as t}from\"@fluentui/react\";const e=[\"smallPlus\",\"small\",\"xSmall\",\"tiny\"],o=e=>\"More\"===e?t.size18:\"initial\",l={TextField:{styles:{root:{width:\"100%\"}}},Text:{styles:(t,o)=>({root:{color:t.variant&&e.includes(t.variant)?o.palette.neutralSecondary:o.palette.neutralPrimary}})},Separator:{styles:({vertical:t,theme:e})=>({root:[!t&&{selectors:{\":before\":{backgroundColor:e?.palette.neutralLight}}}]})},DetailsRow:{styles:t=>({root:[t.theme?.fonts.medium,{\"&:hover\":{backgroundColor:\"transparent\"}}],fields:{\"& .reset-cell-padding\":{padding:0,display:\"inline-flex\",flexDirection:\"column\",justifyContent:\"center\"}},cell:{display:\"flex\",alignItems:\"center\"}})},DetailsHeader:{styles:()=>({root:{paddingTop:0,\"& .ms-DetailsHeader-cell:hover\":{backgroundColor:\"transparent\"}}})},PeoplePickerItemSuggestion:{styles:()=>({personaWrapper:{width:\"auto\",maxWidth:300}})},DialogContent:{styles:()=>({content:{overflowX:\"hidden\"},title:{paddingBottom:24,paddingTop:24},topButton:{paddingTop:23}})},ScrollablePane:{styles:{stickyBelow:{zIndex:-1}}},ActionButton:{styles:{root:{height:32}}},CommandButton:{styles:{root:{height:32}}},DefaultButton:{styles:t=>({icon:{color:t.primary?t.theme?.palette.white:t.theme?.palette.themePrimary},splitButtonContainer:{alignItems:\"flex-start\"},splitButtonMenuButton:{\"&:focus&:focus\":{position:\"inherit\"}}})},IconButton:{styles:t=>({icon:{fontSize:o(t.iconProps?.iconName)},menuIcon:{fontSize:o(t.menuIconProps?.iconName)}})},CalendarDay:{styles:t=>({dayOutsideNavigatedMonth:{color:t.theme?.palette.neutralTertiary}})}};export{l as scopedSettings};\n//# sourceMappingURL=scopedSettings.js.map\n","import{jsxs as t,jsx as o}from\"react/jsx-runtime\";import{useRef as n,useEffect as r}from\"react\";import{Dialog as e,DialogType as i,mergeStyleSets as c,FocusZone as s,Stack as l,Spinner as m,PrimaryButton as a,DefaultButton as d}from\"@fluentui/react\";import{HideStack as u}from\"../layout-helpers/HideStack/HideStack.js\";import\"../layout-helpers/Grid/Grid.js\";import\"../layout-helpers/Grid/GridItem/GridItem.js\";const p=p=>{const h=n(),f=n();r((()=>{p.hidden||p.focusOnPrimaryButton?p.focusOnPrimaryButton&&setTimeout((()=>{f.current?.focus()}),100):setTimeout((()=>{h.current?.focus()}),100)}),[p.focusOnPrimaryButton,p.hidden]);const{dialogContentProps:y,modalProps:C,cancelButtonProps:P={text:\"Cancel\"},confirmButtonProps:k={text:\"Ok\"},children:B,confirming:g=!1,isBlocking:x=!0,minWidth:G=0,maxWidth:j=450,...b}=p;return t(e,{onDismiss:p.onCancel,dialogContentProps:{type:i.normal,showCloseButton:!1,...y},modalProps:{isBlocking:x,...C,styles:c({main:{minHeight:\"auto\"}},C&&C.styles)},minWidth:G,maxWidth:j,...b,children:[B,o(s,{children:t(l,{horizontal:!0,tokens:{childrenGap:8},styles:{root:{marginTop:24,justifyContent:\"flex-end\"}},children:[g&&o(m,{}),k&&o(a,{id:\"confirm-button\",disabled:g,onClick:p.onConfirm,...k,componentRef:t=>{f.current=t}}),P&&p.onCancel&&o(d,{id:\"cancel-button\",onClick:p.onCancel,...P})]})}),o(u,{when:!0,children:o(\"button\",{ref:t=>{h.current=t}})})]})};export{p as ConfirmDialog};\n//# sourceMappingURL=ConfirmDialog.js.map\n","import{jsx as e}from\"react/jsx-runtime\";import*as o from\"react-dom\";import{ThemeProvider as t}from\"@fluentui/react\";import{defaultTheme as m}from\"../../theme/defaultTheme.js\";import{scopedSettings as n}from\"../../theme/scopedSettings.js\";import{ConfirmDialog as r}from\"./ConfirmDialog.js\";function i(i){return new Promise((c=>{const d=document.createElement(\"div\"),{...f}=i;o.render(e(t,{theme:{...m,components:n},children:e(r,{...f,onCancel:()=>{c(!1),o.unmountComponentAtNode(d)},onConfirm:()=>{c(!0),o.unmountComponentAtNode(d)},hidden:!1})}),d)}))}export{i as confirm};\n//# sourceMappingURL=confirm.js.map\n","import{useState as e,useEffect as r}from\"react\";const t=()=>{const[t,n]=e(void 0),[o,s]=e(void 0);return r((()=>{const e=new ResizeObserver((e=>{n(e[0])}));return o&&e.observe(o),()=>{o&&e.unobserve(o)}}),[o]),{resizeObserverEntry:t,setElement:s,element:o}};export{t as useResizeElementObserver};\n//# sourceMappingURL=useResizeElementObserver.js.map\n","import{jsx as t}from\"react/jsx-runtime\";import{Toggle as i}from\"@fluentui/react/lib/Toggle\";export{ToggleBase}from\"@fluentui/react/lib/Toggle\";import{dataAttribute as e,DataAttributes as o}from\"../../utilities/data-attribute.js\";import\"@fluentui/react\";import\"../../utilities/transitions.js\";const r=({automationAttribute:r,...a})=>t(i,{...e(o.Element,r),...a});export{r as Toggle};\n//# sourceMappingURL=Toggle.js.map\n","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var 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 match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var 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\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\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 */\n function 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\n /**\n * A specialized version of `_.forEachRight` 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 */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` 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 {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\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 */\n function 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\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\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 */\n function 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\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 */\n function 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\n /**\n * A specialized version of `_.reduce` 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 * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` 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 * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` 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 {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` 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 {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\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 */\n function 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\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\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 */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\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 */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\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 */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\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 */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\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 */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\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 */\n var 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\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function 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 /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\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 */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\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 */\n function 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\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 */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\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 */\n function 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\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function 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 /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\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 */\n function 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\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 */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\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 */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\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 */\n function 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\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\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 */\n function 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 /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\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 */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\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 */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\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 */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\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 */\n function 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\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\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 */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\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 */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\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 */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\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 */\n function stackHas(key) {\n return this.__data__.has(key);\n }\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 */\n function 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\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\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 */\n function 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\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\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 */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\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 */\n function 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\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 */\n function 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\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\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 */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\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 */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\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 */\n function 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\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\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 */\n function 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\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\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 */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\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 */\n function 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\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\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 */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\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 */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\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 */\n function 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\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\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 */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\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 */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\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 */\n function 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\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 */\n function 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\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\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 */\n function 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 (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\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\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\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 */\n function 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\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\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 */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\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 */\n function 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\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 */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\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 */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\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 */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\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 */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\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 */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\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 */\n function 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\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 */\n function 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\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 */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\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 */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\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 */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\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 */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\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 */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\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 */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\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 */\n function 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\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 */\n var 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\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 */\n var 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\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((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\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\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 */\n function 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\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 */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\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 */\n function 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\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\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 */\n function 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\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\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 */\n function 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\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 */\n function 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\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\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 */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\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 */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\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 */\n function 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\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\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 */\n function 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\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 */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\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 */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\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 */\n var 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\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 */\n function 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\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 */\n function 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\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\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 (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\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 */\n function 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`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\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 */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\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 */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\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 */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\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 */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` 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 an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\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 */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or 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 boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\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 */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` 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 date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\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 DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\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 empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.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 * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\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 * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\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 an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\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 finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\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 */\n function 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\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\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 an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\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 */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\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 */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\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 */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\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 */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\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 `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\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 native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\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 `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\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 nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\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 number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\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 */\n function 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\n /**\n * Checks if `value` is classified as a `RegExp` 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 regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\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 safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\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 */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\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 */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\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 */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` 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 weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` 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 weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.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 `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is 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 convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\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 */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\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 */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\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 */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\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 */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.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 * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.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 {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.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 {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\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 values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values 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 values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '' + '');\n printWindow.document.close();\n printWindow.focus();\n // eslint-disable-next-line\n var interval = setInterval(function () {\n if (printWindow.ready) {\n printWindow.print();\n printWindow.close();\n clearInterval(interval);\n }\n }, 500);\n return printWindow;\n}\n/**\n * Function to normalize the units applied to the element.\n *\n * @param {number|string} value ?\n * @returns {string} result\n * @private\n */\nexport function formatUnit(value) {\n var result = value + '';\n if (result.match(/auto|cm|mm|in|px|pt|pc|%|em|ex|ch|rem|vw|vh|vmin|vmax/)) {\n return result;\n }\n return result + 'px';\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function enableBlazorMode() {\n isBlazorPlatform = true;\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {boolean} result\n * @private\n */\nexport function isBlazor() {\n return isBlazorPlatform;\n}\n/**\n * Function to convert xPath to DOM element in blazor platform\n *\n * @returns {HTMLElement} result\n * @param {HTMLElement | object} element ?\n * @private\n */\nexport function getElement(element) {\n var xPath = 'xPath';\n if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element[\"\" + xPath])) {\n return document.evaluate(element[\"\" + xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\n }\n return element;\n}\n/**\n * Function to fetch the Instances of a HTML element for the given component.\n *\n * @param {string | HTMLElement} element ?\n * @param {any} component ?\n * @returns {Object} ?\n * @private\n */\n// eslint-disable-next-line\nexport function getInstance(element, component) {\n // eslint-disable-next-line\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n for (var _i = 0, _a = elem[\"\" + instances]; _i < _a.length; _i++) {\n var inst = _a[_i];\n if (inst instanceof component) {\n return inst;\n }\n }\n }\n return null;\n}\n/**\n * Function to add instances for the given element.\n *\n * @param {string | HTMLElement} element ?\n * @param {Object} instance ?\n * @returns {void} ?\n * @private\n */\nexport function addInstance(element, instance) {\n // eslint-disable-next-line\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n elem[\"\" + instances].push(instance);\n }\n else {\n elem[\"\" + instances] = [instance];\n }\n}\n/**\n * Function to generate the unique id.\n *\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function uniqueID() {\n if ((typeof window) === 'undefined') {\n return;\n }\n // eslint-disable-next-line\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n return intCrypto.getRandomValues(num);\n}\n/**\n *\n * @param {Int16Array} num ?\n * @returns {string} ?\n */\nfunction combineArray(num) {\n var ret = '';\n for (var i = 0; i < 5; i++) {\n ret += (i ? ',' : '') + num[parseInt(i.toString(), 10)];\n }\n return ret;\n}\n","/**\n * Parser\n */\nvar defaultNumberingSystem = {\n 'latn': {\n '_digits': '0123456789',\n '_type': 'numeric'\n }\n};\nimport { isUndefined, getValue, isBlazor } from '../util';\nvar defaultNumberSymbols = {\n 'decimal': '.',\n 'group': ',',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'exponential': 'E'\n};\nvar latnNumberSystem = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n/**\n * Interface for parser base\n *\n * @private\n */\nvar ParserBase = /** @class */ (function () {\n function ParserBase() {\n }\n /**\n * Returns the cldr object for the culture specifies\n *\n * @param {Object} obj - Specifies the object from which culture object to be acquired.\n * @param {string} cName - Specifies the culture name.\n * @returns {Object} ?\n */\n ParserBase.getMainObject = function (obj, cName) {\n var value = isBlazor() ? cName : 'main.' + cName;\n return getValue(value, obj);\n };\n /**\n * Returns the numbering system object from given cldr data.\n *\n * @param {Object} obj - Specifies the object from which number system is acquired.\n * @returns {Object} ?\n */\n ParserBase.getNumberingSystem = function (obj) {\n return getValue('supplemental.numberingSystems', obj) || this.numberingSystems;\n };\n /**\n * Returns the reverse of given object keys or keys specified.\n *\n * @param {Object} prop - Specifies the object to be reversed.\n * @param {number[]} keys - Optional parameter specifies the custom keyList for reversal.\n * @returns {Object} ?\n */\n ParserBase.reverseObject = function (prop, keys) {\n var propKeys = keys || Object.keys(prop);\n var res = {};\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var key = propKeys_1[_i];\n // eslint-disable-next-line\n if (!res.hasOwnProperty(prop[key])) {\n // eslint-disable-next-line\n res[prop[key]] = key;\n }\n }\n return res;\n };\n /**\n * Returns the symbol regex by skipping the escape sequence.\n *\n * @param {string[]} props - Specifies the array values to be skipped.\n * @returns {RegExp} ?\n */\n ParserBase.getSymbolRegex = function (props) {\n var regexStr = props.map(function (str) {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n }).join('|');\n var regExp = RegExp;\n return new regExp(regexStr, 'g');\n };\n /**\n *\n * @param {Object} prop ?\n * @returns {Object} ?\n */\n ParserBase.getSymbolMatch = function (prop) {\n var matchKeys = Object.keys(defaultNumberSymbols);\n var ret = {};\n for (var _i = 0, matchKeys_1 = matchKeys; _i < matchKeys_1.length; _i++) {\n var key = matchKeys_1[_i];\n // eslint-disable-next-line\n ret[prop[key]] = defaultNumberSymbols[key];\n }\n return ret;\n };\n /**\n * Returns regex string for provided value\n *\n * @param {string} val ?\n * @returns {string} ?\n */\n ParserBase.constructRegex = function (val) {\n var len = val.length;\n var ret = '';\n for (var i = 0; i < len; i++) {\n if (i !== len - 1) {\n ret += val[parseInt(i.toString(), 10)] + '|';\n }\n else {\n ret += val[parseInt(i.toString(), 10)];\n }\n }\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {string} value - Specifies the values to be replaced.\n * @param {RegExp} regex - Specifies the regex to search.\n * @param {Object} obj - Specifies the object matcher to be replace value parts.\n * @returns {string} ?\n */\n ParserBase.convertValueParts = function (value, regex, obj) {\n return value.replace(regex, function (str) {\n // eslint-disable-next-line\n return obj[str];\n });\n };\n /**\n * Returns default numbering system object for formatting from cldr data\n *\n * @param {Object} obj ?\n * @returns {NumericObject} ?\n */\n ParserBase.getDefaultNumberingSystem = function (obj) {\n var ret = {};\n ret.obj = getValue('numbers', obj);\n ret.nSystem = getValue('defaultNumberingSystem', ret.obj);\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} needSymbols ?\n * @param {boolean} blazorMode ?\n * @returns {Object} ?\n */\n ParserBase.getCurrentNumericOptions = function (curObj, numberSystem, needSymbols, blazorMode) {\n var ret = {};\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem) || blazorMode) {\n var digits = blazorMode ? getValue('obj.mapperDigits', cur) : getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n ret.numericPair = this.reverseObject(digits, latnNumberSystem);\n var regExp = RegExp;\n ret.numberParseRegex = new regExp(this.constructRegex(digits), 'g');\n ret.numericRegex = '[' + digits[0] + '-' + digits[9] + ']';\n if (needSymbols) {\n ret.numericRegex = digits[0] + '-' + digits[9];\n ret.symbolNumberSystem = getValue(blazorMode ? 'numberSymbols' : 'symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.symbolMatch = this.getSymbolMatch(ret.symbolNumberSystem);\n ret.numberSystem = cur.nSystem;\n }\n }\n }\n return ret;\n };\n /**\n * Returns number mapper object for the provided cldr data\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} isNumber ?\n * @returns {NumberMapper} ?\n */\n // eslint-disable-next-line\n ParserBase.getNumberMapper = function (curObj, numberSystem, isNumber) {\n var ret = { mapper: {} };\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem)) {\n ret.numberSystem = cur.nSystem;\n ret.numberSymbols = getValue('symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.timeSeparator = getValue('timeSeparator', ret.numberSymbols);\n var digits = getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n for (var _i = 0, latnNumberSystem_1 = latnNumberSystem; _i < latnNumberSystem_1.length; _i++) {\n var i = latnNumberSystem_1[_i];\n // eslint-disable-next-line\n ret.mapper[i] = digits[i];\n }\n }\n }\n return ret;\n };\n ParserBase.nPair = 'numericPair';\n ParserBase.nRegex = 'numericRegex';\n ParserBase.numberingSystems = defaultNumberingSystem;\n return ParserBase;\n}());\nexport { ParserBase };\n/**\n * @private\n */\nvar blazorCurrencyData = {\n 'DJF': 'Fdj',\n 'ERN': 'Nfk',\n 'ETB': 'Br',\n 'NAD': '$',\n 'ZAR': 'R',\n 'XAF': 'FCFA',\n 'GHS': 'GH₵',\n 'XDR': 'XDR',\n 'AED': 'د.إ.',\n 'BHD': 'د.ب.',\n 'DZD': 'د.ج.',\n 'EGP': 'ج.م.',\n 'ILS': '₪',\n 'IQD': 'د.ع.',\n 'JOD': 'د.ا.',\n 'KMF': 'CF',\n 'KWD': 'د.ك.',\n 'LBP': 'ل.ل.',\n 'LYD': 'د.ل.',\n 'MAD': 'د.م.',\n 'MRU': 'أ.م.',\n 'OMR': 'ر.ع.',\n 'QAR': 'ر.ق.',\n 'SAR': 'ر.س.',\n 'SDG': 'ج.س.',\n 'SOS': 'S',\n 'SSP': '£',\n 'SYP': 'ل.س.',\n 'TND': 'د.ت.',\n 'YER': 'ر.ي.',\n 'CLP': '$',\n 'INR': '₹',\n 'TZS': 'TSh',\n 'EUR': '€',\n 'AZN': '₼',\n 'RUB': '₽',\n 'BYN': 'Br',\n 'ZMW': 'K',\n 'BGN': 'лв.',\n 'NGN': '₦',\n 'XOF': 'CFA',\n 'BDT': '৳',\n 'CNY': '¥',\n 'BAM': 'КМ',\n 'UGX': 'USh',\n 'USD': '$',\n 'CZK': 'Kč',\n 'GBP': '£',\n 'DKK': 'kr.',\n 'KES': 'Ksh',\n 'CHF': 'CHF',\n 'MVR': 'ރ.',\n 'BTN': 'Nu.',\n 'XCD': 'EC$',\n 'AUD': '$',\n 'BBD': '$',\n 'BIF': 'FBu',\n 'BMD': '$',\n 'BSD': '$',\n 'BWP': 'P',\n 'BZD': '$',\n 'CAD': '$',\n 'NZD': '$',\n 'FJD': '$',\n 'FKP': '£',\n 'GIP': '£',\n 'GMD': 'D',\n 'GYD': '$',\n 'HKD': '$',\n 'IDR': 'Rp',\n 'JMD': '$',\n 'KYD': '$',\n 'LRD': '$',\n 'MGA': 'Ar',\n 'MOP': 'MOP$',\n 'MUR': 'Rs',\n 'MWK': 'MK',\n 'MYR': 'RM',\n 'PGK': 'K',\n 'PHP': '₱',\n 'PKR': 'Rs',\n 'RWF': 'RF',\n 'SBD': '$',\n 'SCR': 'SR',\n 'SEK': 'kr',\n 'SGD': '$',\n 'SHP': '£',\n 'SLL': 'Le',\n 'ANG': 'NAf.',\n 'SZL': 'E',\n 'TOP': 'T$',\n 'TTD': '$',\n 'VUV': 'VT',\n 'WST': 'WS$',\n 'ARS': '$',\n 'BOB': 'Bs',\n 'BRL': 'R$',\n 'COP': '$',\n 'CRC': '₡',\n 'CUP': '$',\n 'DOP': '$',\n 'GTQ': 'Q',\n 'HNL': 'L',\n 'MXN': '$',\n 'NIO': 'C$',\n 'PAB': 'B/.',\n 'PEN': 'S/',\n 'PYG': '₲',\n 'UYU': '$',\n 'VES': 'Bs.S',\n 'IRR': 'ريال',\n 'GNF': 'FG',\n 'CDF': 'FC',\n 'HTG': 'G',\n 'XPF': 'FCFP',\n 'HRK': 'kn',\n 'HUF': 'Ft',\n 'AMD': '֏',\n 'ISK': 'kr',\n 'JPY': '¥',\n 'GEL': '₾',\n 'CVE': '​',\n 'KZT': '₸',\n 'KHR': '៛',\n 'KPW': '₩',\n 'KRW': '₩',\n 'KGS': 'сом',\n 'AOA': 'Kz',\n 'LAK': '₭',\n 'MZN': 'MTn',\n 'MKD': 'ден',\n 'MNT': '₮',\n 'BND': '$',\n 'MMK': 'K',\n 'NOK': 'kr',\n 'NPR': 'रु',\n 'AWG': 'Afl.',\n 'SRD': '$',\n 'PLN': 'zł',\n 'AFN': '؋',\n 'STN': 'Db',\n 'MDL': 'L',\n 'RON': 'lei',\n 'UAH': '₴',\n 'LKR': 'රු.',\n 'ALL': 'Lekë',\n 'RSD': 'дин.',\n 'TJS': 'смн',\n 'THB': '฿',\n 'TMT': 'm.',\n 'TRY': '₺',\n 'UZS': 'сўм',\n 'VND': '₫',\n 'TWD': 'NT$'\n};\n/**\n *\n * @param {string} currencyCode ?\n * @returns {string} ?\n */\nexport function getBlazorCurrencySymbol(currencyCode) {\n return getValue(currencyCode || '', blazorCurrencyData);\n}\n","/***\n * Hijri parser\n */\n// eslint-disable-next-line\nexport var HijriParser;\n(function (HijriParser) {\n var dateCorrection = [28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990,\n 29019, 29049, 29078, 29108, 29137, 29167, 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522,\n 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053,\n 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585,\n 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, 30968, 30998, 31027, 31057, 31086, 31116,\n 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, 31559, 31589, 31618, 31648,\n 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, 32150, 32180,\n 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,\n 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243,\n 33272, 33302, 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775,\n 33804, 33834, 33863, 33893, 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306,\n 34336, 34365, 34395, 34424, 34454, 34483, 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837,\n 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370,\n 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901,\n 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, 36284, 36314, 36343, 36373, 36403, 36433,\n 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, 36875, 36904, 36934, 36963,\n 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, 37465, 37495,\n 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,\n 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558,\n 38587, 38617, 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089,\n 39118, 39148, 39178, 39208, 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621,\n 39650, 39680, 39709, 39739, 39768, 39798, 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153,\n 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685,\n 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216,\n 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, 41599, 41629, 41658, 41688, 41718, 41748,\n 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, 42190, 42220, 42249, 42279,\n 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, 42780, 42810,\n 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,\n 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873,\n 43903, 43932, 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405,\n 44434, 44464, 44493, 44523, 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936,\n 44966, 44996, 45025, 45055, 45084, 45114, 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468,\n 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999,\n 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531,\n 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, 46915, 46944, 46974, 47003, 47033, 47063,\n 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, 47506, 47535, 47565, 47594,\n 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, 48096, 48125,\n 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,\n 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189,\n 49218, 49248, 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720,\n 49749, 49779, 49809, 49838, 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252,\n 50281, 50311, 50340, 50370, 50400, 50429, 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784,\n 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315,\n 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846,\n 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, 52230, 52260, 52290, 52319, 52349, 52379,\n 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, 52822, 52851, 52881, 52910,\n 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, 53412, 53441,\n 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,\n 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505,\n 54535, 54564, 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036,\n 55066, 55095, 55125, 55154, 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567,\n 55597, 55627, 55657, 55686, 55716, 55745, 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100,\n 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631,\n 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162,\n 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, 57546, 57576, 57605, 57634, 57664, 57694,\n 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, 58137, 58167, 58196, 58226,\n 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, 58727, 58757,\n 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,\n 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820,\n 59850, 59879, 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352,\n 60381, 60411, 60440, 60469, 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883,\n 60912, 60942, 60972, 61002, 61031, 61061, 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415,\n 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947,\n 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478,\n 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, 62862, 62891, 62921, 62950, 62980, 63009,\n 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, 63453, 63482, 63512, 63541,\n 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, 64043, 64073,\n 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,\n 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136,\n 65166, 65195, 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667,\n 65697, 65726, 65755, 65785, 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199,\n 66228, 66258, 66287, 66317, 66346, 66376, 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730,\n 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262,\n 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793,\n 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148, 68177, 68207, 68236, 68266, 68295, 68325,\n 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, 68768, 68797, 68827, 68857,\n 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, 69359, 69388,\n 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,\n 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451,\n 70481, 70510, 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983,\n 71013, 71042, 71071, 71101, 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514,\n 71543, 71573, 71602, 71632, 71662, 71691, 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046,\n 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577,\n 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109,\n 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, 73493, 73523, 73552, 73581, 73611, 73640,\n 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, 74083, 74113, 74142, 74172,\n 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, 74675, 74704,\n 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,\n 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766,\n 75796, 75826, 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299,\n 76328, 76358, 76387, 76416, 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830,\n 76859, 76889, 76918, 76948, 76977, 77007, 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361,\n 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893,\n 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425,\n 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, 78808, 78838, 78867, 78897, 78926, 78956,\n 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, 79399, 79428, 79458, 79487,\n 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, 79990\n ];\n /**\n *\n * @param {Date} gDate ?\n * @returns {Object} ?\n */\n function getHijriDate(gDate) {\n var day = gDate.getDate();\n var month = gDate.getMonth();\n var year = gDate.getFullYear();\n var tMonth = month + 1;\n var tYear = year;\n if (tMonth < 3) {\n tYear -= 1;\n tMonth += 12;\n }\n var yPrefix = Math.floor(tYear / 100.);\n var julilanOffset = yPrefix - Math.floor(yPrefix / 4.) - 2;\n var julianNumber = Math.floor(365.25 * (tYear + 4716)) + Math.floor(30.6001 * (tMonth + 1)) + day - julilanOffset - 1524;\n yPrefix = Math.floor((julianNumber - 1867216.25) / 36524.25);\n julilanOffset = yPrefix - Math.floor(yPrefix / 4.) + 1;\n var b = julianNumber + julilanOffset + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var tempMonth = Math.floor((b - d) / 30.6001);\n day = (b - d) - Math.floor(30.6001 * tempMonth);\n month = Math.floor((b - d) / 20.6001);\n if (month > 13) {\n c += 1;\n month -= 12;\n }\n month -= 1;\n year = c - 4716;\n var modifiedJulianDate = julianNumber - 2400000;\n // date calculation for year after 2077\n var iyear = 10631. / 30.;\n var z = julianNumber - 1948084;\n var cyc = Math.floor(z / 10631.);\n z = z - 10631 * cyc;\n var j = Math.floor((z - 0.1335) / iyear);\n var iy = 30 * cyc + j;\n z = z - Math.floor(j * iyear + 0.1335);\n var im = Math.floor((z + 28.5001) / 29.5);\n /* istanbul ignore next */\n if (im === 13) {\n im = 12;\n }\n var tempDay = z - Math.floor(29.5001 * im - 29);\n var i = 0;\n for (; i < dateCorrection.length; i++) {\n if (dateCorrection[parseInt(i.toString(), 10)] > modifiedJulianDate) {\n break;\n }\n }\n var iln = i + 16260;\n var ii = Math.floor((iln - 1) / 12);\n var hYear = ii + 1;\n var hmonth = iln - 12 * ii;\n var hDate = modifiedJulianDate - dateCorrection[i - 1] + 1;\n if ((hDate + '').length > 2) {\n hDate = tempDay;\n hmonth = im;\n hYear = iy;\n }\n return { year: hYear, month: hmonth, date: hDate };\n }\n HijriParser.getHijriDate = getHijriDate;\n /**\n *\n * @param {number} year ?\n * @param {number} month ?\n * @param {number} day ?\n * @returns {Date} ?\n */\n function toGregorian(year, month, day) {\n var iy = year;\n var im = month;\n var id = day;\n var ii = iy - 1;\n var iln = (ii * 12) + 1 + (im - 1);\n var i = iln - 16260;\n var mcjdn = id + dateCorrection[i - 1] - 1;\n var julianDate = mcjdn + 2400000;\n var z = Math.floor(julianDate + 0.5);\n var a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var gDay = b - d - Math.floor(e * 30.6001);\n var gMonth = e - (e > 13.5 ? 13 : 1);\n var gYear = c - (gMonth > 2.5 ? 4716 : 4715);\n /* istanbul ignore next */\n if (gYear <= 0) {\n gMonth--;\n } // No year zero\n return new Date(gYear + '/' + (gMonth) + '/' + gDay);\n }\n HijriParser.toGregorian = toGregorian;\n})(HijriParser || (HijriParser = {}));\n","import { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nimport { isUndefined, throwError, getValue, isBlazor } from '../util';\nimport { HijriParser } from '../hijri-parser';\nimport { isNullOrUndefined, extend } from '../util';\nvar abbreviateRegexGlobal = /\\/MMMMM|MMMM|MMM|a|LLLL|LLL|EEEEE|EEEE|E|K|cccc|ccc|WW|W|G+|z+/gi;\nvar standalone = 'stand-alone';\nvar weekdayKey = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nexport var basicPatterns = ['short', 'medium', 'long', 'full'];\nvar timeSetter = {\n m: 'getMinutes',\n h: 'getHours',\n H: 'getHours',\n s: 'getSeconds',\n d: 'getDate',\n f: 'getMilliseconds'\n};\nexport var datePartMatcher = {\n 'M': 'month',\n 'd': 'day',\n 'E': 'weekday',\n 'c': 'weekday',\n 'y': 'year',\n 'm': 'minute',\n 'h': 'hour',\n 'H': 'hour',\n 's': 'second',\n 'L': 'month',\n 'a': 'designator',\n 'z': 'timeZone',\n 'Z': 'timeZone',\n 'G': 'era',\n 'f': 'milliseconds'\n};\nvar timeSeparator = 'timeSeparator';\n/* tslint:disable no-any */\n/**\n * Date Format is a framework provides support for date formatting.\n *\n * @private\n */\nvar DateFormat = /** @class */ (function () {\n function DateFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which date will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateFormat.dateFormat = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numObject = getValue('parserObject.numbers', dependable);\n var dateObject = dependable.dateObject;\n var formatOptions = { isIslamic: base.islamicRegex.test(option.calendar) };\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n formatOptions.dateSeperator = isBlazor() ? getValue('dateSeperator', dateObject) : base.getDateSeparator(dependable.dateObject);\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n if (isBlazor()) {\n resPattern = resPattern.replace(/tt/, 'a');\n }\n formatOptions.pattern = resPattern;\n formatOptions.numMapper = isBlazor() ?\n extend({}, numObject) : parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n var patternMatch = resPattern.match(abbreviateRegexGlobal) || [];\n for (var _i = 0, patternMatch_1 = patternMatch; _i < patternMatch_1.length; _i++) {\n var str = patternMatch_1[_i];\n var len = str.length;\n var char = str[0];\n if (char === 'K') {\n char = 'h';\n }\n switch (char) {\n case 'E':\n case 'c':\n if (isBlazor()) {\n // eslint-disable-next-line\n formatOptions.weekday = getValue('days.' + base.monthIndex[len], dateObject);\n }\n else {\n // eslint-disable-next-line\n formatOptions.weekday = dependable.dateObject[base.days][standalone][base.monthIndex[len]];\n }\n break;\n case 'M':\n case 'L':\n if (isBlazor()) {\n // eslint-disable-next-line\n formatOptions.month = getValue('months.' + base.monthIndex[len], dateObject);\n }\n else {\n // eslint-disable-next-line\n formatOptions.month = dependable.dateObject[base.month][standalone][base.monthIndex[len]];\n }\n break;\n case 'a':\n formatOptions.designator = isBlazor() ?\n getValue('dayPeriods', dateObject) : getValue('dayPeriods.format.wide', dateObject);\n break;\n case 'G':\n // eslint-disable-next-line\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n formatOptions.era = isBlazor() ? getValue('eras', dateObject) : getValue('eras.' + eText, dependable.dateObject);\n break;\n case 'z':\n formatOptions.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n break;\n }\n }\n }\n return function (value) {\n if (isNaN(value.getDate())) {\n return null;\n }\n return _this.intDateFormatter(value, formatOptions);\n };\n };\n /**\n * Returns formatted date string based on options passed.\n *\n * @param {Date} value ?\n * @param {FormatOptions} options ?\n * @returns {string} ?\n */\n DateFormat.intDateFormatter = function (value, options) {\n var pattern = options.pattern;\n var ret = '';\n var matches = pattern.match(base.dateParseRegex);\n var dObject = this.getCurrentDateValue(value, options.isIslamic);\n for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\n var match = matches_1[_i];\n var length_1 = match.length;\n var char = match[0];\n if (char === 'K') {\n char = 'h';\n }\n var curval = void 0;\n var curvalstr = '';\n var isNumber = void 0;\n var processNumber = void 0;\n var curstr = '';\n switch (char) {\n case 'M':\n case 'L':\n curval = dObject.month;\n if (length_1 > 2) {\n // eslint-disable-next-line\n ret += options.month[curval];\n }\n else {\n isNumber = true;\n }\n break;\n case 'E':\n case 'c':\n // eslint-disable-next-line\n ret += options.weekday[weekdayKey[value.getDay()]];\n break;\n case 'H':\n case 'h':\n case 'm':\n case 's':\n case 'd':\n case 'f':\n isNumber = true;\n if (char === 'd') {\n curval = dObject.date;\n }\n else if (char === 'f') {\n isNumber = false;\n processNumber = true;\n // eslint-disable-next-line\n curvalstr = value[timeSetter[char]]().toString();\n curvalstr = curvalstr.substring(0, length_1);\n var curlength = curvalstr.length;\n if (length_1 !== curlength) {\n if (length_1 > 3) {\n continue;\n }\n for (var i = 0; i < length_1 - curlength; i++) {\n curvalstr = '0' + curvalstr.toString();\n }\n }\n curstr += curvalstr;\n }\n else {\n // eslint-disable-next-line\n curval = value[timeSetter[char]]();\n }\n if (char === 'h') {\n curval = curval % 12 || 12;\n }\n break;\n case 'y':\n processNumber = true;\n curstr += dObject.year;\n if (length_1 === 2) {\n curstr = curstr.substr(curstr.length - 2);\n }\n break;\n case 'a':\n // eslint-disable-next-line\n var desig = value.getHours() < 12 ? 'am' : 'pm';\n // eslint-disable-next-line\n ret += options.designator[desig];\n break;\n case 'G':\n // eslint-disable-next-line\n var dec = value.getFullYear() < 0 ? 0 : 1;\n // eslint-disable-next-line\n var retu = options.era[dec];\n if (isNullOrUndefined(retu)) {\n // eslint-disable-next-line\n retu = options.era[dec ? 0 : 1];\n }\n ret += retu || '';\n break;\n case '\\'':\n ret += (match === '\\'\\'') ? '\\'' : match.replace(/'/g, '');\n break;\n case 'z':\n // eslint-disable-next-line\n var timezone = value.getTimezoneOffset();\n // eslint-disable-next-line\n var pattern_1 = (length_1 < 4) ? '+H;-H' : options.timeZone.hourFormat;\n pattern_1 = pattern_1.replace(/:/g, options.numMapper.timeSeparator);\n if (timezone === 0) {\n ret += options.timeZone.gmtZeroFormat;\n }\n else {\n processNumber = true;\n curstr = this.getTimeZoneValue(timezone, pattern_1);\n }\n curstr = options.timeZone.gmtFormat.replace(/\\{0\\}/, curstr);\n break;\n case ':':\n // eslint-disable-next-line\n ret += options.numMapper.numberSymbols[timeSeparator];\n break;\n case '/':\n ret += options.dateSeperator;\n break;\n case 'W':\n isNumber = true;\n curval = base.getWeekOfYear(value);\n break;\n default:\n ret += match;\n }\n if (isNumber) {\n processNumber = true;\n curstr = this.checkTwodigitNumber(curval, length_1);\n }\n if (processNumber) {\n ret += parser.convertValueParts(curstr, base.latnParseRegex, options.numMapper.mapper);\n }\n }\n return ret;\n };\n DateFormat.getCurrentDateValue = function (value, isIslamic) {\n if (isIslamic) {\n return HijriParser.getHijriDate(value);\n }\n return { year: value.getFullYear(), month: value.getMonth() + 1, date: value.getDate() };\n };\n /**\n * Returns two digit numbers for given value and length\n *\n * @param {number} val ?\n * @param {number} len ?\n * @returns {string} ?\n */\n DateFormat.checkTwodigitNumber = function (val, len) {\n var ret = val + '';\n if (len === 2 && ret.length !== 2) {\n return '0' + ret;\n }\n return ret;\n };\n /**\n * Returns the value of the Time Zone.\n *\n * @param {number} tVal ?\n * @param {string} pattern ?\n * @returns {string} ?\n * @private\n */\n DateFormat.getTimeZoneValue = function (tVal, pattern) {\n var _this = this;\n var splt = pattern.split(';');\n var curPattern = splt[tVal > 0 ? 1 : 0];\n var no = Math.abs(tVal);\n return curPattern = curPattern.replace(/HH?|mm/g, function (str) {\n var len = str.length;\n var ishour = str.indexOf('H') !== -1;\n return _this.checkTwodigitNumber(Math.floor(ishour ? (no / 60) : (no % 60)), len);\n });\n };\n return DateFormat;\n}());\nexport { DateFormat };\n","import { isUndefined, throwError, isNullOrUndefined, extend, isBlazor, getValue } from '../util';\nimport { defaultCurrencyCode } from '../internationalization';\nimport { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nvar errorText = {\n 'ms': 'minimumSignificantDigits',\n 'ls': 'maximumSignificantDigits',\n 'mf': 'minimumFractionDigits',\n 'lf': 'maximumFractionDigits'\n};\nvar integerError = 'minimumIntegerDigits';\nvar percentSign = 'percentSign';\nvar minusSign = 'minusSign';\nvar spaceRegex = /\\s/;\nvar mapper = ['infinity', 'nan', 'group', 'decimal', 'exponential'];\nvar infinity = 'infinity';\nvar nan = 'nan';\n/**\n * Module for number formatting.\n *\n * @private\n */\nvar NumberFormat = /** @class */ (function () {\n function NumberFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberFormat.numberFormatter = function (culture, option, cldr) {\n var _this = this;\n var fOptions = extend({}, option);\n var cOptions = {};\n var dOptions = {};\n var symbolPattern;\n var dependable = base.getDependables(cldr, culture, '', true);\n var numObject = dependable.numericObject;\n dOptions.numberMapper = isBlazor() ? extend({}, numObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n dOptions.currencySymbol = isBlazor() ? getValue('currencySymbol', numObject) : base.getCurrencySymbol(dependable.numericObject, fOptions.currency || defaultCurrencyCode, option.altSymbol);\n /* eslint-disable @typescript-eslint/no-explicit-any */\n dOptions.percentSymbol = isBlazor() ? getValue('numberSymbols.percentSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + percentSign];\n dOptions.minusSymbol = isBlazor() ? getValue('numberSymbols.minusSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + minusSign];\n var symbols = dOptions.numberMapper.numberSymbols;\n if ((option.format) && !(base.formatRegex.test(option.format))) {\n cOptions = base.customFormat(option.format, dOptions, dependable.numericObject);\n }\n else {\n extend(fOptions, base.getProperNumericSkeleton(option.format || 'N'));\n fOptions.isCurrency = fOptions.type === 'currency';\n fOptions.isPercent = fOptions.type === 'percent';\n if (!isBlazor()) {\n symbolPattern = base.getSymbolPattern(fOptions.type, dOptions.numberMapper.numberSystem, dependable.numericObject, fOptions.isAccount);\n }\n fOptions.groupOne = this.checkValueRange(fOptions.maximumSignificantDigits, fOptions.minimumSignificantDigits, true);\n this.checkValueRange(fOptions.maximumFractionDigits, fOptions.minimumFractionDigits, false, true);\n if (!isUndefined(fOptions.fractionDigits)) {\n fOptions.minimumFractionDigits = fOptions.maximumFractionDigits = fOptions.fractionDigits;\n }\n if (isUndefined(fOptions.useGrouping)) {\n fOptions.useGrouping = true;\n }\n if (fOptions.isCurrency && !isBlazor()) {\n symbolPattern = symbolPattern.replace(/\\u00A4/g, base.defaultCurrency);\n }\n if (!isBlazor()) {\n var split = symbolPattern.split(';');\n cOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, dOptions.currencySymbol);\n cOptions.pData = base.getFormatData(split[0], false, dOptions.currencySymbol);\n if (fOptions.useGrouping) {\n fOptions.groupSeparator = symbols[mapper[2]];\n fOptions.groupData = this.getGroupingDetails(split[0]);\n }\n }\n else {\n cOptions.nData = extend({}, {}, getValue(fOptions.type + 'nData', numObject));\n cOptions.pData = extend({}, {}, getValue(fOptions.type + 'pData', numObject));\n if (fOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([cOptions.pData, cOptions.nData], dOptions.currencySymbol, option.currency);\n }\n }\n var minFrac = isUndefined(fOptions.minimumFractionDigits);\n if (minFrac) {\n fOptions.minimumFractionDigits = cOptions.nData.minimumFraction;\n }\n if (isUndefined(fOptions.maximumFractionDigits)) {\n var mval = cOptions.nData.maximumFraction;\n fOptions.maximumFractionDigits = isUndefined(mval) && fOptions.isPercent ? 0 : mval;\n }\n var mfrac = fOptions.minimumFractionDigits;\n var lfrac = fOptions.maximumFractionDigits;\n if (!isUndefined(mfrac) && !isUndefined(lfrac)) {\n if (mfrac > lfrac) {\n fOptions.maximumFractionDigits = mfrac;\n }\n }\n }\n extend(cOptions.nData, fOptions);\n extend(cOptions.pData, fOptions);\n return function (value) {\n if (isNaN(value)) {\n return symbols[mapper[1]];\n }\n else if (!isFinite(value)) {\n return symbols[mapper[0]];\n }\n return _this.intNumberFormatter(value, cOptions, dOptions, option);\n };\n };\n /**\n * Returns grouping details for the pattern provided\n *\n * @param {string} pattern ?\n * @returns {GroupDetails} ?\n */\n NumberFormat.getGroupingDetails = function (pattern) {\n var ret = {};\n var match = pattern.match(base.negativeDataRegex);\n if (match && match[4]) {\n var pattern_1 = match[4];\n var p = pattern_1.lastIndexOf(',');\n if (p !== -1) {\n var temp = pattern_1.split('.')[0];\n ret.primary = (temp.length - p) - 1;\n var s = pattern_1.lastIndexOf(',', p - 1);\n if (s !== -1) {\n ret.secondary = p - 1 - s;\n }\n }\n }\n return ret;\n };\n /**\n * Returns if the provided integer range is valid.\n *\n * @param {number} val1 ?\n * @param {number} val2 ?\n * @param {boolean} checkbothExist ?\n * @param {boolean} isFraction ?\n * @returns {boolean} ?\n */\n NumberFormat.checkValueRange = function (val1, val2, checkbothExist, isFraction) {\n var decide = isFraction ? 'f' : 's';\n var dint = 0;\n var str1 = errorText['l' + decide];\n // eslint-disable-next-line\n var str2 = errorText['m' + decide];\n if (!isUndefined(val1)) {\n this.checkRange(val1, str1, isFraction);\n dint++;\n }\n if (!isUndefined(val2)) {\n this.checkRange(val2, str2, isFraction);\n dint++;\n }\n if (dint === 2) {\n if (val1 < val2) {\n throwError(str2 + 'specified must be less than the' + str1);\n }\n else {\n return true;\n }\n }\n else if (checkbothExist && dint === 1) {\n throwError('Both' + str2 + 'and' + str2 + 'must be present');\n }\n return false;\n };\n /**\n * Check if the provided fraction range is valid\n *\n * @param {number} val ?\n * @param {string} text ?\n * @param {boolean} isFraction ?\n * @returns {void} ?\n */\n NumberFormat.checkRange = function (val, text, isFraction) {\n var range = isFraction ? [0, 20] : [1, 21];\n if (val < range[0] || val > range[1]) {\n throwError(text + 'value must be within the range' + range[0] + 'to' + range[1]);\n }\n };\n /**\n * Returns formatted numeric string for provided formatting options\n *\n * @param {number} value ?\n * @param {base.GenericFormatOptions} fOptions ?\n * @param {CommonOptions} dOptions ?\n * @returns {string} ?\n */\n NumberFormat.intNumberFormatter = function (value, fOptions, dOptions, option) {\n var curData;\n if (isUndefined(fOptions.nData.type)) {\n return undefined;\n }\n else {\n if (value < 0) {\n value = value * -1;\n curData = fOptions.nData;\n }\n else if (value === 0) {\n curData = fOptions.zeroData || fOptions.pData;\n }\n else {\n curData = fOptions.pData;\n }\n var fValue = '';\n if (curData.isPercent) {\n value = value * 100;\n }\n if (curData.groupOne) {\n fValue = this.processSignificantDigits(value, curData.minimumSignificantDigits, curData.maximumSignificantDigits);\n }\n else {\n fValue = this.processFraction(value, curData.minimumFractionDigits, curData.maximumFractionDigits, option);\n if (curData.minimumIntegerDigits) {\n fValue = this.processMinimumIntegers(fValue, curData.minimumIntegerDigits);\n }\n if (dOptions.isCustomFormat && curData.minimumFractionDigits < curData.maximumFractionDigits\n && /\\d+\\.\\d+/.test(fValue)) {\n var temp = fValue.split('.');\n var decimalPart = temp[1];\n var len = decimalPart.length;\n for (var i = len - 1; i >= 0; i--) {\n if (decimalPart[\"\" + i] === '0' && i >= curData.minimumFractionDigits) {\n decimalPart = decimalPart.slice(0, i);\n }\n else {\n break;\n }\n }\n fValue = temp[0] + '.' + decimalPart;\n }\n }\n if (curData.type === 'scientific') {\n fValue = value.toExponential(curData.maximumFractionDigits);\n fValue = fValue.replace('e', dOptions.numberMapper.numberSymbols[mapper[4]]);\n }\n fValue = fValue.replace('.', dOptions.numberMapper.numberSymbols[mapper[3]]);\n fValue = curData.format === \"#,###,,;(#,###,,)\" ? this.customPivotFormat(parseInt(fValue)) : fValue;\n if (curData.useGrouping) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n fValue = this.groupNumbers(fValue, curData.groupData.primary, curData.groupSeparator || ',', dOptions.numberMapper.numberSymbols[mapper[3]] || '.', curData.groupData.secondary);\n }\n fValue = parser.convertValueParts(fValue, base.latnParseRegex, dOptions.numberMapper.mapper);\n if (curData.nlead === 'N/A') {\n return curData.nlead;\n }\n else {\n if (fValue === '0' && option && option.format === '0') {\n return fValue + curData.nend;\n }\n return curData.nlead + fValue + curData.nend;\n }\n }\n };\n /**\n * Returns significant digits processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processSignificantDigits = function (value, min, max) {\n var temp = value + '';\n var tn;\n var length = temp.length;\n if (length < min) {\n return value.toPrecision(min);\n }\n else {\n temp = value.toPrecision(max);\n tn = +temp;\n return tn + '';\n }\n };\n /**\n * Returns grouped numeric string\n *\n * @param {string} val ?\n * @param {number} level1 ?\n * @param {string} sep ?\n * @param {string} decimalSymbol ?\n * @param {number} level2 ?\n * @returns {string} ?\n */\n NumberFormat.groupNumbers = function (val, level1, sep, decimalSymbol, level2) {\n var flag = !isNullOrUndefined(level2) && level2 !== 0;\n var split = val.split(decimalSymbol);\n var prefix = split[0];\n var length = prefix.length;\n var str = '';\n while (length > level1) {\n str = prefix.slice(length - level1, length) + (str.length ?\n (sep + str) : '');\n length -= level1;\n if (flag) {\n level1 = level2;\n flag = false;\n }\n }\n split[0] = prefix.slice(0, length) + (str.length ? sep : '') + str;\n return split.join(decimalSymbol);\n };\n /**\n * Returns fraction processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processFraction = function (value, min, max, option) {\n var temp = (value + '').split('.')[1];\n var length = temp ? temp.length : 0;\n if (min && length < min) {\n var ret = '';\n if (length === 0) {\n ret = value.toFixed(min);\n }\n else {\n ret += value;\n for (var j = 0; j < min - length; j++) {\n ret += '0';\n }\n return ret;\n }\n return value.toFixed(min);\n }\n else if (!isNullOrUndefined(max) && (length > max || max === 0)) {\n return value.toFixed(max);\n }\n var str = value + '';\n if (str[0] === '0' && option && option.format === '###.00') {\n str = str.slice(1);\n }\n return str;\n };\n /**\n * Returns integer processed numeric string\n *\n * @param {string} value ?\n * @param {number} min ?\n * @returns {string} ?\n */\n NumberFormat.processMinimumIntegers = function (value, min) {\n var temp = value.split('.');\n var lead = temp[0];\n var len = lead.length;\n if (len < min) {\n for (var i = 0; i < min - len; i++) {\n lead = '0' + lead;\n }\n temp[0] = lead;\n }\n return temp.join('.');\n };\n /**\n * Returns custom format for pivot table\n *\n * @param {number} value ?\n */\n NumberFormat.customPivotFormat = function (value) {\n if (value >= 500000) {\n value /= 1000000;\n var _a = value.toString().split(\".\"), integer = _a[0], decimal = _a[1];\n return decimal && +decimal.substring(0, 1) >= 5\n ? Math.ceil(value).toString()\n : Math.floor(value).toString();\n }\n return \"\";\n };\n return NumberFormat;\n}());\nexport { NumberFormat };\n","import { isNullOrUndefined, getValue, extend, isBlazor } from './util';\nvar Observer = /** @class */ (function () {\n function Observer(context) {\n this.ranArray = [];\n this.boundedEvents = {};\n if (isNullOrUndefined(context)) {\n return;\n }\n this.context = context;\n }\n /**\n * To attach handler for given property in current context.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Specifies the handler function to be called while event notified.\n * @param {Object} context - Specifies the context binded to the handler.\n * @param {string} id - specifies the random generated id.\n * @returns {void}\n */\n Observer.prototype.on = function (property, handler, context, id) {\n if (isNullOrUndefined(handler)) {\n return;\n }\n var cntxt = context || this.context;\n if (this.notExist(property)) {\n this.boundedEvents[\"\" + property] = [{ handler: handler, context: cntxt }];\n return;\n }\n if (!isNullOrUndefined(id)) {\n if (this.ranArray.indexOf(id) === -1) {\n this.ranArray.push(id);\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt, id: id });\n }\n }\n else if (!this.isHandlerPresent(this.boundedEvents[\"\" + property], handler)) {\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt });\n }\n };\n /**\n * To remove handlers from a event attached using on() function.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Optional argument specifies the handler function to be called while event notified.\n * @param {string} id - specifies the random generated id.\n * @returns {void} ?\n */\n Observer.prototype.off = function (property, handler, id) {\n if (this.notExist(property)) {\n return;\n }\n var curObject = getValue(property, this.boundedEvents);\n if (handler) {\n for (var i = 0; i < curObject.length; i++) {\n if (id) {\n if (curObject[parseInt(i.toString(), 10)].id === id) {\n curObject.splice(i, 1);\n var indexLocation = this.ranArray.indexOf(id);\n if (indexLocation !== -1) {\n this.ranArray.splice(indexLocation, 1);\n }\n break;\n }\n }\n else if (handler === curObject[parseInt(i.toString(), 10)].handler) {\n curObject.splice(i, 1);\n break;\n }\n }\n }\n else {\n delete this.boundedEvents[\"\" + property];\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it was failure to call.\n * @returns {void} ?\n */\n Observer.prototype.notify = function (property, argument, successHandler, errorHandler) {\n if (this.notExist(property)) {\n if (successHandler) {\n successHandler.call(this, argument);\n }\n return;\n }\n if (argument) {\n argument.name = property;\n }\n var blazor = 'Blazor';\n var curObject = getValue(property, this.boundedEvents).slice(0);\n if (window[\"\" + blazor]) {\n return this.blazorCallback(curObject, argument, successHandler, errorHandler, 0);\n }\n else {\n for (var _i = 0, curObject_1 = curObject; _i < curObject_1.length; _i++) {\n var cur = curObject_1[_i];\n cur.handler.call(cur.context, argument);\n }\n if (successHandler) {\n successHandler.call(this, argument);\n }\n }\n };\n Observer.prototype.blazorCallback = function (objs, argument, successHandler, errorHandler, index) {\n var _this = this;\n var isTrigger = index === objs.length - 1;\n if (index < objs.length) {\n var obj_1 = objs[parseInt(index.toString(), 10)];\n var promise = obj_1.handler.call(obj_1.context, argument);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n return promise;\n }\n promise.then(function (data) {\n data = typeof data === 'string' && _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data;\n extend(argument, argument, data, true);\n if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return _this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }).catch(function (data) {\n if (errorHandler) {\n errorHandler.call(obj_1.context, typeof data === 'string' &&\n _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data);\n }\n });\n }\n else if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }\n };\n // eslint-disable-next-line\n Observer.prototype.dateReviver = function (key, value) {\n var dPattern = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/;\n if (isBlazor && typeof value === 'string' && value.match(dPattern) !== null) {\n return (new Date(value));\n }\n return (value);\n };\n Observer.prototype.isJson = function (value) {\n try {\n JSON.parse(value);\n }\n catch (e) {\n return false;\n }\n return true;\n };\n /**\n * To destroy handlers in the event\n *\n * @returns {void} ?\n */\n Observer.prototype.destroy = function () {\n this.boundedEvents = this.context = undefined;\n };\n /**\n * Returns if the property exists.\n *\n * @param {string} prop ?\n * @returns {boolean} ?\n */\n Observer.prototype.notExist = function (prop) {\n // eslint-disable-next-line\n return this.boundedEvents.hasOwnProperty(prop) === false || this.boundedEvents[prop].length <= 0;\n };\n /**\n * Returns if the handler is present.\n *\n * @param {BoundOptions[]} boundedEvents ?\n * @param {Function} handler ?\n * @returns {boolean} ?\n */\n Observer.prototype.isHandlerPresent = function (boundedEvents, handler) {\n for (var _i = 0, boundedEvents_1 = boundedEvents; _i < boundedEvents_1.length; _i++) {\n var cur = boundedEvents_1[_i];\n if (cur.handler === handler) {\n return true;\n }\n }\n return false;\n };\n return Observer;\n}());\nexport { Observer };\n","import { DateFormat } from './intl/date-formatter';\nimport { NumberFormat } from './intl/number-formatter';\nimport { DateParser } from './intl/date-parser';\nimport { NumberParser } from './intl/number-parser';\nimport { IntlBase } from './intl/intl-base';\nimport { extend, getValue, isBlazor } from './util';\nimport { Observer } from './observer';\n/**\n * Specifies the observer used for external change detection.\n */\nexport var onIntlChange = new Observer();\n/**\n * Specifies the default rtl status for EJ2 components.\n */\nexport var rightToLeft = false;\n/**\n * Specifies the CLDR data loaded for internationalization functionalities.\n *\n * @private\n */\nexport var cldrData = {};\n/**\n * Specifies the default culture value to be considered.\n *\n * @private\n */\nexport var defaultCulture = 'en-US';\n/**\n * Specifies default currency code to be considered\n *\n * @private\n */\nexport var defaultCurrencyCode = 'USD';\nvar mapper = ['numericObject', 'dateObject'];\n/**\n * Internationalization class provides support to parse and format the number and date object to the desired format.\n * ```typescript\n * // To set the culture globally\n * setCulture('en-GB');\n *\n * // To set currency code globally\n * setCurrencyCode('EUR');\n *\n * //Load cldr data\n * loadCldr(gregorainData);\n * loadCldr(timeZoneData);\n * loadCldr(numbersData);\n * loadCldr(numberSystemData);\n *\n * // To use formatter in component side\n * let Intl:Internationalization = new Internationalization();\n *\n * // Date formatting\n * let dateFormatter: Function = Intl.getDateFormat({skeleton:'long',type:'dateTime'});\n * dateFormatter(new Date('11/2/2016'));\n * dateFormatter(new Date('25/2/2030'));\n * Intl.formatDate(new Date(),{skeleton:'E'});\n *\n * //Number formatting\n * let numberFormatter: Function = Intl.getNumberFormat({skeleton:'C5'})\n * numberFormatter(24563334);\n * Intl.formatNumber(123123,{skeleton:'p2'});\n *\n * // Date parser\n * let dateParser: Function = Intl.getDateParser({skeleton:'short',type:'time'});\n * dateParser('10:30 PM');\n * Intl.parseDate('10',{skeleton:'H'});\n * ```\n */\nvar Internationalization = /** @class */ (function () {\n function Internationalization(cultureName) {\n if (cultureName) {\n this.culture = cultureName;\n }\n }\n /**\n * Returns the format function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateFormat = function (options) {\n return DateFormat.dateFormat(this.getCulture(), options || { type: 'date', skeleton: 'short' }, cldrData);\n };\n /**\n * Returns the format function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberFormat = function (options) {\n if (options && !options.currency) {\n options.currency = defaultCurrencyCode;\n }\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberFormat.numberFormatter(this.getCulture(), options || {}, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateParser = function (options) {\n return DateParser.dateParser(this.getCulture(), options || { skeleton: 'short', type: 'date' }, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberParser = function (options) {\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberParser.numberParser(this.getCulture(), options || { format: 'N' }, cldrData);\n };\n /**\n * Returns the formatted string based on format options.\n *\n * @param {number} value - Specifies the number to format.\n * @param {NumberFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatNumber = function (value, option) {\n return this.getNumberFormat(option)(value);\n };\n /**\n * Returns the formatted date string based on format options.\n *\n * @param {Date} value - Specifies the number to format.\n * @param {DateFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatDate = function (value, option) {\n return this.getDateFormat(option)(value);\n };\n /**\n * Returns the date object for given date string and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {DateFormatOptions} option - Specifies the parse options in which the date string will be parsed.\n * @returns {Date} ?\n */\n Internationalization.prototype.parseDate = function (value, option) {\n return this.getDateParser(option)(value);\n };\n /**\n * Returns the number object from the given string value and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {NumberFormatOptions} option - Specifies the parse options in which the string number will be parsed.\n * @returns {number} ?\n */\n Internationalization.prototype.parseNumber = function (value, option) {\n return this.getNumberParser(option)(value);\n };\n /**\n * Returns Native Date Time Pattern\n *\n * @param {DateFormatOptions} option - Specifies the parse options for resultant date time pattern.\n * @param {boolean} isExcelFormat - Specifies format value to be converted to excel pattern.\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getDatePattern = function (option, isExcelFormat) {\n return IntlBase.getActualDateTimeFormat(this.getCulture(), option, cldrData, isExcelFormat);\n };\n /**\n * Returns Native Number Pattern\n *\n * @param {NumberFormatOptions} option - Specifies the parse options for resultant number pattern.\n * @param {boolean} isExcel ?\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getNumberPattern = function (option, isExcel) {\n return IntlBase.getActualNumberFormat(this.getCulture(), option, cldrData, isExcel);\n };\n /**\n * Returns the First Day of the Week\n *\n * @returns {number} ?\n */\n Internationalization.prototype.getFirstDayOfWeek = function () {\n return IntlBase.getWeekData(this.getCulture(), cldrData);\n };\n /**\n * Returns the culture\n *\n * @returns {string} ?\n */\n Internationalization.prototype.getCulture = function () {\n return this.culture || defaultCulture;\n };\n return Internationalization;\n}());\nexport { Internationalization };\n/**\n * Set the default culture to all EJ2 components\n *\n * @param {string} cultureName - Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCulture(cultureName) {\n defaultCulture = cultureName;\n onIntlChange.notify('notifyExternalChange', { 'locale': defaultCulture });\n}\n/**\n * Set the default currency code to all EJ2 components\n *\n * @param {string} currencyCode Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCurrencyCode(currencyCode) {\n defaultCurrencyCode = currencyCode;\n onIntlChange.notify('notifyExternalChange', { 'currencyCode': defaultCurrencyCode });\n}\n/**\n * Load the CLDR data into context\n *\n * @param {Object[]} data Specifies the CLDR data's to be used for formatting and parser.\n * @returns {void} ?\n */\nexport function loadCldr() {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var obj = data_1[_a];\n extend(cldrData, obj, {}, true);\n }\n}\n/**\n * To enable or disable RTL functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable rtl option.\n * @returns {void} ?\n */\nexport function enableRtl(status) {\n if (status === void 0) { status = true; }\n rightToLeft = status;\n onIntlChange.notify('notifyExternalChange', { enableRtl: rightToLeft });\n}\n/**\n * To get the numeric CLDR object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} type ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getNumericObject(locale, type) {\n // eslint-disable-next-line\n var numObject = IntlBase.getDependables(cldrData, locale, '', true)[mapper[0]];\n // eslint-disable-next-line\n var dateObject = IntlBase.getDependables(cldrData, locale, '')[mapper[1]];\n var numSystem = getValue('defaultNumberingSystem', numObject);\n var symbPattern = isBlazor() ? getValue('numberSymbols', numObject) : getValue('symbols-numberSystem-' + numSystem, numObject);\n var pattern = IntlBase.getSymbolPattern(type || 'decimal', numSystem, numObject, false);\n return extend(symbPattern, IntlBase.getFormatData(pattern, true, '', true), { 'dateSeparator': IntlBase.getDateSeparator(dateObject) });\n}\n/**\n * To get the numeric CLDR number base object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} currency - Specifies the currency for which numericObject to be returned.\n * @returns {string} ?\n * @ignore\n * @private\n */\nexport function getNumberDependable(locale, currency) {\n // eslint-disable-next-line\n var numObject = IntlBase.getDependables(cldrData, locale, '', true);\n // eslint-disable-next-line\n return IntlBase.getCurrencySymbol(numObject.numericObject, currency);\n}\n/**\n * To get the default date CLDR object.\n *\n * @param {string} mode ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getDefaultDateObject(mode) {\n // eslint-disable-next-line\n return IntlBase.getDependables(cldrData, '', mode, false)[mapper[1]];\n}\n","import { defaultCurrencyCode } from '../internationalization';\nimport { getValue, isNullOrUndefined, extend, isBlazor } from '../util';\nimport { ParserBase as parser, getBlazorCurrencySymbol } from './parser-base';\nimport { DateFormat } from './date-formatter';\nimport { NumberFormat } from './number-formatter';\nimport { isUndefined } from '../util';\nvar regExp = RegExp;\nexport var blazorCultureFormats = {\n 'en-US': {\n 'd': 'M/d/y',\n 'D': 'EEEE, MMMM d, y',\n 'f': 'EEEE, MMMM d, y h:mm a',\n 'F': 'EEEE, MMMM d, y h:mm:s a',\n 'g': 'M/d/y h:mm a',\n 'G': 'M/d/yyyy h:mm:ss tt',\n 'm': 'MMMM d',\n 'M': 'MMMM d',\n 'r': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 'R': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 's': 'yyyy\\'-\\'MM\\'-\\'dd\\'T\\'HH\\':\\'mm\\':\\'ss',\n 't': 'h:mm tt',\n 'T': 'h:m:s tt',\n 'u': 'yyyy\\'-\\'MM\\'-\\'dd HH\\':\\'mm\\':\\'ss\\'Z\\'',\n 'U': 'dddd, MMMM d, yyyy h:mm:ss tt',\n 'y': 'MMMM yyyy',\n 'Y': 'MMMM yyyy'\n }\n};\n/**\n * Date base common constants and function for date parser and formatter.\n */\n// eslint-disable-next-line\nexport var IntlBase;\n(function (IntlBase) {\n /* eslint-disable */\n // tslint:disable-next-line:max-line-length.\n IntlBase.negativeDataRegex = /^(('[^']+'|''|[^*#@0,.E])*)(\\*.)?((([#,]*[0,]*0+)(\\.0*[0-9]*#*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.customRegex = /^(('[^']+'|''|[^*#@0,.])*)(\\*.)?((([0#,]*[0,]*[0#]*[0#\\ ]*)(\\.[0#]*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.latnParseRegex = /0|1|2|3|4|5|6|7|8|9/g;\n var fractionRegex = /[0-9]/g;\n IntlBase.defaultCurrency = '$';\n var mapper = ['infinity', 'nan', 'group', 'decimal'];\n var patternRegex = /G|M|L|H|c|'| a|yy|y|EEEE|E/g;\n var patternMatch = {\n 'G': '',\n 'M': 'm',\n 'L': 'm',\n 'H': 'h',\n 'c': 'd',\n '\\'': '\"',\n ' a': ' AM/PM',\n 'yy': 'yy',\n 'y': 'yyyy',\n 'EEEE': 'dddd',\n 'E': 'ddd'\n };\n IntlBase.dateConverterMapper = /dddd|ddd/ig;\n var defaultFirstDay = 'sun';\n IntlBase.islamicRegex = /^islamic/;\n var firstDayMapper = {\n 'sun': 0,\n 'mon': 1,\n 'tue': 2,\n 'wed': 3,\n 'thu': 4,\n 'fri': 5,\n 'sat': 6\n };\n IntlBase.formatRegex = new regExp(\"(^[ncpae]{1})([0-1]?[0-9]|20)?$\", \"i\");\n IntlBase.currencyFormatRegex = new regExp(\"(^[ca]{1})([0-1]?[0-9]|20)?$\", \"i\");\n IntlBase.curWithoutNumberRegex = /(c|a)$/ig;\n var typeMapper = {\n '$': 'isCurrency',\n '%': 'isPercent',\n '-': 'isNegative',\n 0: 'nlead',\n 1: 'nend'\n };\n IntlBase.dateParseRegex = /([a-z])\\1*|'([^']|'')+'|''|./gi;\n IntlBase.basicPatterns = ['short', 'medium', 'long', 'full'];\n /* tslint:disable:quotemark */\n IntlBase.defaultObject = {\n 'dates': {\n 'calendars': {\n 'gregorian': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'narrow': {\n '1': 'J',\n '2': 'F',\n '3': 'M',\n '4': 'A',\n '5': 'M',\n '6': 'J',\n '7': 'J',\n '8': 'A',\n '9': 'S',\n '10': 'O',\n '11': 'N',\n '12': 'D'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'Before Christ',\n '0-alt-variant': 'Before Common Era',\n '1': 'Anno Domini',\n '1-alt-variant': 'Common Era'\n },\n 'eraAbbr': {\n '0': 'BC',\n '0-alt-variant': 'BCE',\n '1': 'AD',\n '1-alt-variant': 'CE'\n },\n 'eraNarrow': {\n '0': 'B',\n '0-alt-variant': 'BCE',\n '1': 'A',\n '1-alt-variant': 'CE'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y',\n 'long': 'MMMM d, y',\n 'medium': 'MMM d, y',\n 'short': 'M/d/yy'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'hmsv': 'h:mm:ss a v',\n 'Hmsv': 'HH:mm:ss v',\n 'hmv': 'h:mm a v',\n 'Hmv': 'HH:mm v',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y',\n 'yM': 'M/y',\n 'yMd': 'M/d/y',\n 'yMEd': 'E, M/d/y',\n 'yMMM': 'MMM y',\n 'yMMMd': 'MMM d, y',\n 'yMMMEd': 'E, MMM d, y',\n 'yMMMM': 'MMMM y'\n }\n }\n },\n 'islamic': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Muh.',\n '2': 'Saf.',\n '3': 'Rab. I',\n '4': 'Rab. II',\n '5': 'Jum. I',\n '6': 'Jum. II',\n '7': 'Raj.',\n '8': 'Sha.',\n '9': 'Ram.',\n '10': 'Shaw.',\n '11': 'Dhuʻl-Q.',\n '12': 'Dhuʻl-H.'\n },\n 'narrow': {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '10': '10',\n '11': '11',\n '12': '12'\n },\n 'wide': {\n '1': 'Muharram',\n '2': 'Safar',\n '3': 'Rabiʻ I',\n '4': 'Rabiʻ II',\n '5': 'Jumada I',\n '6': 'Jumada II',\n '7': 'Rajab',\n '8': 'Shaʻban',\n '9': 'Ramadan',\n '10': 'Shawwal',\n '11': 'Dhuʻl-Qiʻdah',\n '12': 'Dhuʻl-Hijjah'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'AH'\n },\n 'eraAbbr': {\n '0': 'AH'\n },\n 'eraNarrow': {\n '0': 'AH'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y G',\n 'long': 'MMMM d, y G',\n 'medium': 'MMM d, y G',\n 'short': 'M/d/y GGGGG'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y G',\n 'yyyy': 'y G',\n 'yyyyM': 'M/y GGGGG',\n 'yyyyMd': 'M/d/y GGGGG',\n 'yyyyMEd': 'E, M/d/y GGGGG',\n 'yyyyMMM': 'MMM y G',\n 'yyyyMMMd': 'MMM d, y G',\n 'yyyyMMMEd': 'E, MMM d, y G',\n 'yyyyMMMM': 'MMMM y G',\n 'yyyyQQQ': 'QQQ y G',\n 'yyyyQQQQ': 'QQQQ y G'\n }\n }\n }\n },\n 'timeZoneNames': {\n 'hourFormat': '+HH:mm;-HH:mm',\n 'gmtFormat': 'GMT{0}',\n 'gmtZeroFormat': 'GMT'\n }\n },\n 'numbers': {\n 'currencies': {\n 'USD': {\n 'displayName': 'US Dollar',\n 'symbol': '$',\n 'symbol-alt-narrow': '$'\n },\n 'EUR': {\n 'displayName': 'Euro',\n 'symbol': '€',\n 'symbol-alt-narrow': '€'\n },\n 'GBP': {\n 'displayName': 'British Pound',\n 'symbol-alt-narrow': '£'\n }\n },\n 'defaultNumberingSystem': 'latn',\n 'minimumGroupingDigits': '1',\n 'symbols-numberSystem-latn': {\n 'decimal': '.',\n 'group': ',',\n 'list': ';',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'exponential': 'E',\n 'superscriptingExponent': '×',\n 'perMille': '‰',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'timeSeparator': ':'\n },\n 'decimalFormats-numberSystem-latn': {\n 'standard': '#,##0.###'\n },\n 'percentFormats-numberSystem-latn': {\n 'standard': '#,##0%'\n },\n 'currencyFormats-numberSystem-latn': {\n 'standard': '¤#,##0.00',\n 'accounting': '¤#,##0.00;(¤#,##0.00)'\n },\n 'scientificFormats-numberSystem-latn': {\n 'standard': '#E0'\n }\n }\n };\n IntlBase.blazorDefaultObject = {\n 'numbers': {\n 'mapper': {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9'\n },\n 'mapperDigits': '0123456789',\n 'numberSymbols': {\n 'decimal': '.',\n 'group': ',',\n 'plusSign': '+',\n 'minusSign': '-',\n 'percentSign': '%',\n 'nan': 'NaN',\n 'timeSeparator': ':',\n 'infinity': '∞'\n },\n 'timeSeparator': ':',\n 'currencySymbol': '$',\n 'currencypData': {\n 'nlead': '$',\n 'nend': '',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentpData': {\n 'nlead': '',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentnData': {\n 'nlead': '-',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'currencynData': {\n 'nlead': '($',\n 'nend': ')',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalnData': {\n 'nlead': '-',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalpData': {\n 'nlead': '',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n }\n },\n 'dates': {\n 'dayPeriods': {\n 'am': 'AM',\n 'pm': 'PM'\n },\n 'dateSeperator': '/',\n 'days': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n },\n 'months': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n },\n 'eras': {\n '1': 'AD'\n }\n }\n };\n /* tslint:enable:quotemark */\n IntlBase.monthIndex = {\n 3: 'abbreviated',\n 4: 'wide',\n 5: 'narrow',\n 1: 'abbreviated'\n };\n /**\n *\n */\n IntlBase.month = 'months';\n IntlBase.days = 'days';\n /**\n * Default numerber Object\n */\n IntlBase.patternMatcher = {\n C: 'currency',\n P: 'percent',\n N: 'decimal',\n A: 'currency',\n E: 'scientific'\n };\n /**\n * Returns the resultant pattern based on the skeleton, dateObject and the type provided\n *\n * @private\n * @param {string} skeleton ?\n * @param {Object} dateObject ?\n * @param {string} type ?\n * @param {boolean} isIslamic ?\n * @param {string} blazorCulture ?\n * @returns {string} ?\n */\n function getResultantPattern(skeleton, dateObject, type, isIslamic, blazorCulture) {\n var resPattern;\n var iType = type || 'date';\n if (blazorCulture) {\n resPattern = compareBlazorDateFormats({ skeleton: skeleton }, blazorCulture).format ||\n compareBlazorDateFormats({ skeleton: 'd' }, 'en-US').format;\n }\n else {\n if (IntlBase.basicPatterns.indexOf(skeleton) !== -1) {\n resPattern = getValue(iType + 'Formats.' + skeleton, dateObject);\n if (iType === 'dateTime') {\n var dPattern = getValue('dateFormats.' + skeleton, dateObject);\n var tPattern = getValue('timeFormats.' + skeleton, dateObject);\n resPattern = resPattern.replace('{1}', dPattern).replace('{0}', tPattern);\n }\n }\n else {\n resPattern = getValue('dateTimeFormats.availableFormats.' + skeleton, dateObject);\n }\n if (isUndefined(resPattern) && skeleton === 'yMd') {\n resPattern = 'M/d/y';\n }\n }\n return resPattern;\n }\n IntlBase.getResultantPattern = getResultantPattern;\n /**\n * Returns the dependable object for provided cldr data and culture\n *\n * @private\n * @param {Object} cldr ?\n * @param {string} culture ?\n * @param {string} mode ?\n * @param {boolean} isNumber ?\n * @returns {any} ?\n */\n function getDependables(cldr, culture, mode, isNumber) {\n var ret = {};\n var calendartype = mode || 'gregorian';\n ret.parserObject = parser.getMainObject(cldr, culture) || (isBlazor() ? IntlBase.blazorDefaultObject : IntlBase.defaultObject);\n if (isNumber) {\n ret.numericObject = getValue('numbers', ret.parserObject);\n }\n else {\n var dateString = isBlazor() ? 'dates' : ('dates.calendars.' + calendartype);\n ret.dateObject = getValue(dateString, ret.parserObject);\n }\n return ret;\n }\n IntlBase.getDependables = getDependables;\n /**\n * Returns the symbol pattern for provided parameters\n *\n * @private\n * @param {string} type ?\n * @param {string} numSystem ?\n * @param {Object} obj ?\n * @param {boolean} isAccount ?\n * @returns {string} ?\n */\n function getSymbolPattern(type, numSystem, obj, isAccount) {\n return getValue(type + 'Formats-numberSystem-' +\n numSystem + (isAccount ? '.accounting' : '.standard'), obj) || (isAccount ? getValue(type + 'Formats-numberSystem-' +\n numSystem + '.standard', obj) : '');\n }\n IntlBase.getSymbolPattern = getSymbolPattern;\n /**\n *\n * @param {string} format ?\n * @returns {string} ?\n */\n function ConvertDateToWeekFormat(format) {\n var convertMapper = format.match(IntlBase.dateConverterMapper);\n if (convertMapper && isBlazor()) {\n var tempString = convertMapper[0].length === 3 ? 'EEE' : 'EEEE';\n return format.replace(IntlBase.dateConverterMapper, tempString);\n }\n return format;\n }\n IntlBase.ConvertDateToWeekFormat = ConvertDateToWeekFormat;\n /**\n *\n * @param {DateFormatOptions} formatOptions ?\n * @param {string} culture ?\n * @returns {DateFormatOptions} ?\n */\n function compareBlazorDateFormats(formatOptions, culture) {\n var format = formatOptions.format || formatOptions.skeleton;\n var curFormatMapper = getValue((culture || 'en-US') + '.' + format, blazorCultureFormats);\n if (!curFormatMapper) {\n curFormatMapper = getValue('en-US.' + format, blazorCultureFormats);\n }\n if (curFormatMapper) {\n curFormatMapper = ConvertDateToWeekFormat(curFormatMapper);\n formatOptions.format = curFormatMapper.replace(/tt/, 'a');\n }\n return formatOptions;\n }\n IntlBase.compareBlazorDateFormats = compareBlazorDateFormats;\n /**\n * Returns proper numeric skeleton\n *\n * @private\n * @param {string} skeleton ?\n * @returns {any} ?\n */\n function getProperNumericSkeleton(skeleton) {\n var matches = skeleton.match(IntlBase.formatRegex);\n var ret = {};\n var pattern = matches[1].toUpperCase();\n ret.isAccount = (pattern === 'A');\n // eslint-disable-next-line\n ret.type = IntlBase.patternMatcher[pattern];\n if (skeleton.length > 1) {\n ret.fractionDigits = parseInt(matches[2], 10);\n }\n return ret;\n }\n IntlBase.getProperNumericSkeleton = getProperNumericSkeleton;\n /**\n * Returns format data for number formatting like minimum fraction, maximum fraction, etc..,\n *\n * @private\n * @param {string} pattern ?\n * @param {boolean} needFraction ?\n * @param {string} cSymbol ?\n * @param {boolean} fractionOnly ?\n * @returns {any} ?\n */\n function getFormatData(pattern, needFraction, cSymbol, fractionOnly) {\n var nData = fractionOnly ? {} : { nlead: '', nend: '' };\n var match = pattern.match(IntlBase.customRegex);\n if (match) {\n if (!fractionOnly) {\n nData.nlead = changeCurrencySymbol(match[1], cSymbol);\n nData.nend = changeCurrencySymbol(match[10], cSymbol);\n nData.groupPattern = match[4];\n }\n var fraction = match[7];\n if (fraction && needFraction) {\n var fmatch = fraction.match(fractionRegex);\n if (!isNullOrUndefined(fmatch)) {\n nData.minimumFraction = fmatch.length;\n }\n else {\n nData.minimumFraction = 0;\n }\n nData.maximumFraction = fraction.length - 1;\n }\n }\n return nData;\n }\n IntlBase.getFormatData = getFormatData;\n /**\n * Changes currency symbol\n *\n * @private\n * @param {string} val ?\n * @param {string} sym ?\n * @returns {string} ?\n */\n function changeCurrencySymbol(val, sym) {\n if (val) {\n return val.replace(IntlBase.defaultCurrency, sym);\n }\n return '';\n }\n IntlBase.changeCurrencySymbol = changeCurrencySymbol;\n /**\n * Returns currency symbol based on currency code ?\n *\n * @private\n * @param {Object} numericObject ?\n * @param {string} currencyCode ?\n * @param {string} altSymbol ?\n * @returns {string} ?\n */\n function getCurrencySymbol(numericObject, currencyCode, altSymbol) {\n var symbol = altSymbol ? ('.' + altSymbol) : '.symbol';\n var getCurrency = getValue('currencies.' + currencyCode + symbol, numericObject) ||\n getValue('currencies.' + currencyCode + '.symbol-alt-narrow', numericObject) || '$';\n return getCurrency;\n }\n IntlBase.getCurrencySymbol = getCurrencySymbol;\n /**\n * Returns formatting options for custom number format\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {any} obj ?\n * @returns {any} ?\n */\n function customFormat(format, dOptions, obj) {\n var options = {};\n var formatSplit = format.split(';');\n var data = ['pData', 'nData', 'zeroData'];\n for (var i = 0; i < formatSplit.length; i++) {\n // eslint-disable-next-line\n options[data[i]] = customNumberFormat(formatSplit[i], dOptions, obj);\n }\n if (isNullOrUndefined(options.nData)) {\n options.nData = extend({}, options.pData);\n options.nData.nlead = isNullOrUndefined(dOptions) ? '-' + options.nData.nlead : dOptions.minusSymbol + options.nData.nlead;\n }\n return options;\n }\n IntlBase.customFormat = customFormat;\n /**\n * Returns custom formatting options\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {Object} numObject ?\n * @returns {any} ?\n */\n function customNumberFormat(format, dOptions, numObject) {\n var cOptions = { type: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 0 };\n var pattern = format.match(IntlBase.customRegex);\n if (isNullOrUndefined(pattern) || (pattern[5] === '' && format !== 'N/A')) {\n cOptions.type = undefined;\n return cOptions;\n }\n cOptions.nlead = pattern[1];\n cOptions.nend = pattern[10];\n var integerPart = pattern[6];\n var spaceCapture = integerPart.match(/\\ $/g) ? true : false;\n var spaceGrouping = integerPart.replace(/\\ $/g, '').indexOf(' ') !== -1;\n cOptions.useGrouping = integerPart.indexOf(',') !== -1 || spaceGrouping;\n integerPart = integerPart.replace(/,/g, '');\n var fractionPart = pattern[7];\n if (integerPart.indexOf('0') !== -1) {\n cOptions.minimumIntegerDigits = integerPart.length - integerPart.indexOf('0');\n }\n if (!isNullOrUndefined(fractionPart)) {\n cOptions.minimumFractionDigits = fractionPart.lastIndexOf('0');\n cOptions.maximumFractionDigits = fractionPart.lastIndexOf('#');\n if (cOptions.minimumFractionDigits === -1) {\n cOptions.minimumFractionDigits = 0;\n }\n if (cOptions.maximumFractionDigits === -1 || cOptions.maximumFractionDigits < cOptions.minimumFractionDigits) {\n cOptions.maximumFractionDigits = cOptions.minimumFractionDigits;\n }\n }\n if (!isNullOrUndefined(dOptions)) {\n dOptions.isCustomFormat = true;\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '$', dOptions.currencySymbol));\n if (!cOptions.isCurrency) {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', dOptions.percentSymbol));\n }\n }\n else {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', '%'));\n }\n if (!isNullOrUndefined(numObject)) {\n var symbolPattern = getSymbolPattern(cOptions.type, dOptions.numberMapper.numberSystem, numObject, false);\n if (cOptions.useGrouping) {\n // eslint-disable-next-line\n cOptions.groupSeparator = spaceGrouping ? ' ' : dOptions.numberMapper.numberSymbols[mapper[2]];\n cOptions.groupData = NumberFormat.getGroupingDetails(symbolPattern.split(';')[0]);\n }\n cOptions.nlead = cOptions.nlead.replace(/'/g, '');\n cOptions.nend = spaceCapture ? ' ' + cOptions.nend.replace(/'/g, '') : cOptions.nend.replace(/'/g, '');\n }\n return cOptions;\n }\n IntlBase.customNumberFormat = customNumberFormat;\n /**\n * Returns formatting options for currency or percent type\n *\n * @private\n * @param {string[]} parts ?\n * @param {string} actual ?\n * @param {string} symbol ?\n * @returns {any} ?\n */\n function isCurrencyPercent(parts, actual, symbol) {\n var options = { nlead: parts[0], nend: parts[1] };\n for (var i = 0; i < 2; i++) {\n var part = parts[parseInt(i.toString(), 10)];\n var loc = part.indexOf(actual);\n if ((loc !== -1) && ((loc < part.indexOf('\\'')) || (loc > part.lastIndexOf('\\'')))) {\n // eslint-disable-next-line\n options[typeMapper[i]] = part.substr(0, loc) + symbol + part.substr(loc + 1);\n // eslint-disable-next-line\n options[typeMapper[actual]] = true;\n options.type = options.isCurrency ? 'currency' : 'percent';\n break;\n }\n }\n return options;\n }\n IntlBase.isCurrencyPercent = isCurrencyPercent;\n /**\n * Returns culture based date separator\n *\n * @private\n * @param {Object} dateObj ?\n * @returns {string} ?\n */\n function getDateSeparator(dateObj) {\n var value = (getValue('dateFormats.short', dateObj) || '').match(/[d‏M‏]([^d‏M])[d‏M‏]/i);\n return value ? value[1] : '/';\n }\n IntlBase.getDateSeparator = getDateSeparator;\n /**\n * Returns Native Date Time pattern\n *\n * @private\n * @param {string} culture ?\n * @param {DateFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcelFormat ?\n * @returns {string} ?\n */\n function getActualDateTimeFormat(culture, options, cldr, isExcelFormat) {\n var dependable = getDependables(cldr, culture, options.calendar);\n if (isBlazor()) {\n options = compareBlazorDateFormats(options, culture);\n }\n var actualPattern = options.format || getResultantPattern(options.skeleton, dependable.dateObject, options.type);\n if (isExcelFormat) {\n actualPattern = actualPattern.replace(patternRegex, function (pattern) {\n // eslint-disable-next-line\n return patternMatch[pattern];\n });\n if (actualPattern.indexOf('z') !== -1) {\n var tLength = actualPattern.match(/z/g).length;\n var timeZonePattern = void 0;\n var options_1 = { 'timeZone': {} };\n options_1.numMapper = parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n options_1.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n var value = new Date();\n var timezone = value.getTimezoneOffset();\n var pattern = (tLength < 4) ? '+H;-H' : options_1.timeZone.hourFormat;\n pattern = pattern.replace(/:/g, options_1.numMapper.timeSeparator);\n if (timezone === 0) {\n timeZonePattern = options_1.timeZone.gmtZeroFormat;\n }\n else {\n timeZonePattern = DateFormat.getTimeZoneValue(timezone, pattern);\n timeZonePattern = options_1.timeZone.gmtFormat.replace(/\\{0\\}/, timeZonePattern);\n }\n actualPattern = actualPattern.replace(/[z]+/, '\"' + timeZonePattern + '\"');\n }\n actualPattern = actualPattern.replace(/ $/, '');\n }\n return actualPattern;\n }\n IntlBase.getActualDateTimeFormat = getActualDateTimeFormat;\n /**\n *\n * @param {string} actual ?\n * @param {any} option ?\n * @returns {any} ?\n */\n // eslint-disable-next-line\n function processSymbol(actual, option) {\n if (actual.indexOf(',') !== -1) {\n // eslint-disable-next-line\n var split = actual.split(',');\n actual = (split[0] + getValue('numberMapper.numberSymbols.group', option) +\n split[1].replace('.', getValue('numberMapper.numberSymbols.decimal', option)));\n }\n else {\n actual = actual.replace('.', getValue('numberMapper.numberSymbols.decimal', option));\n }\n return actual;\n }\n /**\n * Returns Native Number pattern\n *\n * @private\n * @param {string} culture ?\n * @param {NumberFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcel ?\n * @returns {string} ?\n */\n function getActualNumberFormat(culture, options, cldr, isExcel) {\n var dependable = getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n var numrericObject = dependable.numericObject;\n var minFrac;\n var curObj = {};\n var curMatch = (options.format || '').match(IntlBase.currencyFormatRegex);\n var type = IntlBase.formatRegex.test(options.format) ? getProperNumericSkeleton(options.format || 'N') : {};\n var dOptions = {};\n if (curMatch) {\n dOptions.numberMapper = isBlazor() ?\n extend({}, dependable.numericObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n var curCode = isBlazor() ? getValue('currencySymbol', dependable.numericObject) :\n getCurrencySymbol(dependable.numericObject, options.currency || defaultCurrencyCode, options.altSymbol);\n var symbolPattern = getSymbolPattern('currency', dOptions.numberMapper.numberSystem, dependable.numericObject, (/a/i).test(options.format));\n symbolPattern = symbolPattern.replace(/\\u00A4/g, curCode);\n var split = symbolPattern.split(';');\n curObj.hasNegativePattern = isBlazor() ? true : (split.length > 1);\n curObj.nData = isBlazor() ? getValue(type.type + 'nData', numrericObject) :\n getFormatData(split[1] || '-' + split[0], true, curCode);\n curObj.pData = isBlazor() ? getValue(type.type + 'pData', numrericObject) :\n getFormatData(split[0], false, curCode);\n if (!curMatch[2] && !options.minimumFractionDigits && !options.maximumFractionDigits) {\n minFrac = getFormatData(symbolPattern.split(';')[0], true, '', true).minimumFraction;\n }\n }\n var actualPattern;\n if ((IntlBase.formatRegex.test(options.format)) || !(options.format)) {\n extend(parseOptions, getProperNumericSkeleton(options.format || 'N'));\n parseOptions.custom = false;\n actualPattern = '###0';\n if (parseOptions.fractionDigits || options.minimumFractionDigits || options.maximumFractionDigits || minFrac) {\n var defaultMinimum = 0;\n if (parseOptions.fractionDigits) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseOptions.fractionDigits;\n }\n actualPattern = fractionDigitsPattern(actualPattern, minFrac || parseOptions.fractionDigits ||\n options.minimumFractionDigits || defaultMinimum, options.maximumFractionDigits || defaultMinimum);\n }\n if (options.minimumIntegerDigits) {\n actualPattern = minimumIntegerPattern(actualPattern, options.minimumIntegerDigits);\n }\n if (options.useGrouping) {\n actualPattern = groupingPattern(actualPattern);\n }\n if (parseOptions.type === 'currency' || (parseOptions.type && isBlazor())) {\n if (isBlazor() && parseOptions.type !== 'currency') {\n curObj.pData = getValue(parseOptions.type + 'pData', numrericObject);\n curObj.nData = getValue(parseOptions.type + 'nData', numrericObject);\n }\n var cPattern = actualPattern;\n actualPattern = curObj.pData.nlead + cPattern + curObj.pData.nend;\n if (curObj.hasNegativePattern || isBlazor()) {\n actualPattern += ';' + curObj.nData.nlead + cPattern + curObj.nData.nend;\n }\n }\n if (parseOptions.type === 'percent' && !isBlazor()) {\n actualPattern += ' %';\n }\n }\n else {\n actualPattern = options.format.replace(/'/g, '\"');\n }\n if (Object.keys(dOptions).length > 0) {\n actualPattern = !isExcel ? processSymbol(actualPattern, dOptions) : actualPattern;\n }\n return actualPattern;\n }\n IntlBase.getActualNumberFormat = getActualNumberFormat;\n /**\n *\n * @param {string} pattern ?\n * @param {number} minDigits ?\n * @param {number} maxDigits ?\n * @returns {string} ?\n */\n function fractionDigitsPattern(pattern, minDigits, maxDigits) {\n pattern += '.';\n for (var a = 0; a < minDigits; a++) {\n pattern += '0';\n }\n if (minDigits < maxDigits) {\n var diff = maxDigits - minDigits;\n for (var b = 0; b < diff; b++) {\n pattern += '#';\n }\n }\n return pattern;\n }\n IntlBase.fractionDigitsPattern = fractionDigitsPattern;\n /**\n *\n * @param {string} pattern ?\n * @param {number} digits ?\n * @returns {string} ?\n */\n function minimumIntegerPattern(pattern, digits) {\n var temp = pattern.split('.');\n var integer = '';\n for (var x = 0; x < digits; x++) {\n integer += '0';\n }\n return temp[1] ? (integer + '.' + temp[1]) : integer;\n }\n IntlBase.minimumIntegerPattern = minimumIntegerPattern;\n /**\n *\n * @param {string} pattern ?\n * @returns {string} ?\n */\n function groupingPattern(pattern) {\n var temp = pattern.split('.');\n var integer = temp[0];\n var no = 3 - integer.length % 3;\n var hash = (no && no === 1) ? '#' : (no === 2 ? '##' : '');\n integer = hash + integer;\n pattern = '';\n for (var x = integer.length - 1; x > 0; x = x - 3) {\n pattern = ',' + integer[x - 2] + integer[x - 1] + integer[parseInt(x.toString(), 10)] + pattern;\n }\n pattern = pattern.slice(1);\n return temp[1] ? (pattern + '.' + temp[1]) : pattern;\n }\n IntlBase.groupingPattern = groupingPattern;\n /**\n *\n * @param {string} culture ?\n * @param {Object} cldr ?\n * @returns {number} ?\n */\n function getWeekData(culture, cldr) {\n var firstDay = defaultFirstDay;\n var mapper = getValue('supplemental.weekData.firstDay', cldr);\n var iCulture = culture;\n if ((/en-/).test(iCulture)) {\n iCulture = iCulture.slice(3);\n }\n iCulture = iCulture.slice(0, 2).toUpperCase() + iCulture.substr(2);\n if (mapper) {\n firstDay = mapper[\"\" + iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay;\n }\n return firstDayMapper[\"\" + firstDay];\n }\n IntlBase.getWeekData = getWeekData;\n /**\n * @private\n * @param {any} pData ?\n * @param {string} aCurrency ?\n * @param {string} rCurrency ?\n * @returns {void} ?\n */\n function replaceBlazorCurrency(pData, aCurrency, rCurrency) {\n var iCurrency = getBlazorCurrencySymbol(rCurrency);\n if (aCurrency !== iCurrency) {\n for (var _i = 0, pData_1 = pData; _i < pData_1.length; _i++) {\n var data = pData_1[_i];\n data.nend = data.nend.replace(aCurrency, iCurrency);\n data.nlead = data.nlead.replace(aCurrency, iCurrency);\n }\n }\n }\n IntlBase.replaceBlazorCurrency = replaceBlazorCurrency;\n /**\n * @private\n * @param {Date} date ?\n * @returns {number} ?\n */\n function getWeekOfYear(date) {\n var newYear = new Date(date.getFullYear(), 0, 1);\n var day = newYear.getDay();\n var weeknum;\n day = (day >= 0 ? day : day + 7);\n var daynum = Math.floor((date.getTime() - newYear.getTime() -\n (date.getTimezoneOffset() - newYear.getTimezoneOffset()) * 60000) / 86400000) + 1;\n if (day < 4) {\n weeknum = Math.floor((daynum + day - 1) / 7) + 1;\n if (weeknum > 52) {\n var nYear = new Date(date.getFullYear() + 1, 0, 1);\n var nday = nYear.getDay();\n nday = nday >= 0 ? nday : nday + 7;\n weeknum = nday < 4 ? 1 : 53;\n }\n }\n else {\n weeknum = Math.floor((daynum + day - 1) / 7);\n }\n return weeknum;\n }\n IntlBase.getWeekOfYear = getWeekOfYear;\n})(IntlBase || (IntlBase = {}));\n","import { isNullOrUndefined, merge } from './util';\nvar headerRegex = /^(.*?):[ \\t]*([^\\r\\n]*)$/gm;\nvar defaultType = 'GET';\n/**\n * Ajax class provides ability to make asynchronous HTTP request to the server\n * ```typescript\n * var ajax = new Ajax(\"index.html\", \"GET\", true);\n * ajax.send().then(\n * function (value) {\n * console.log(value);\n * },\n * function (reason) {\n * console.log(reason);\n * });\n * ```\n */\nvar Ajax = /** @class */ (function () {\n /**\n * Constructor for Ajax class\n *\n * @param {string|Object} options ?\n * @param {string} type ?\n * @param {boolean} async ?\n * @returns defaultType any\n */\n function Ajax(options, type, async, contentType) {\n /**\n * A boolean value indicating whether the request should be sent asynchronous or not.\n *\n * @default true\n */\n this.mode = true;\n /**\n * A boolean value indicating whether to ignore the promise reject.\n *\n * @private\n * @default true\n */\n this.emitError = true;\n this.options = {};\n if (typeof options === 'string') {\n this.url = options;\n this.type = type ? type.toUpperCase() : defaultType;\n this.mode = !isNullOrUndefined(async) ? async : true;\n }\n else if (typeof options === 'object') {\n this.options = options;\n merge(this, this.options);\n }\n this.type = this.type ? this.type.toUpperCase() : defaultType;\n this.contentType = (this.contentType !== undefined) ? this.contentType : contentType;\n }\n /**\n *\n * Send the request to server.\n *\n * @param {any} data - To send the user data\n * @return {Promise} ?\n */\n Ajax.prototype.send = function (data) {\n var _this = this;\n this.data = isNullOrUndefined(data) ? this.data : data;\n var eventArgs = {\n cancel: false,\n httpRequest: null\n };\n var promise = new Promise(function (resolve, reject) {\n _this.httpRequest = new XMLHttpRequest();\n _this.httpRequest.onreadystatechange = function () { _this.stateChange(resolve, reject); };\n if (!isNullOrUndefined(_this.onLoad)) {\n _this.httpRequest.onload = _this.onLoad;\n }\n if (!isNullOrUndefined(_this.onProgress)) {\n _this.httpRequest.onprogress = _this.onProgress;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onAbort)) {\n _this.httpRequest.onabort = _this.onAbort;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onError)) {\n _this.httpRequest.onerror = _this.onError;\n }\n //** Upload Events **/\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onUploadProgress)) {\n _this.httpRequest.upload.onprogress = _this.onUploadProgress;\n }\n // eslint-disable-next-line\n _this.httpRequest.open(_this.type, _this.url, _this.mode);\n // Set default headers\n if (!isNullOrUndefined(_this.data) && _this.contentType !== null) {\n _this.httpRequest.setRequestHeader('Content-Type', _this.contentType || 'application/json; charset=utf-8');\n }\n if (_this.beforeSend) {\n eventArgs.httpRequest = _this.httpRequest;\n _this.beforeSend(eventArgs);\n }\n if (!eventArgs.cancel) {\n _this.httpRequest.send(!isNullOrUndefined(_this.data) ? _this.data : null);\n }\n });\n return promise;\n };\n Ajax.prototype.successHandler = function (data) {\n if (this.onSuccess) {\n this.onSuccess(data, this);\n }\n return data;\n };\n Ajax.prototype.failureHandler = function (reason) {\n if (this.onFailure) {\n this.onFailure(this.httpRequest);\n }\n return reason;\n };\n Ajax.prototype.stateChange = function (resolve, reject) {\n var data = this.httpRequest.responseText;\n if (this.dataType && this.dataType.toLowerCase() === 'json') {\n if (data === '') {\n data = undefined;\n }\n else {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n // no exception handle\n }\n }\n }\n if (this.httpRequest.readyState === 4) {\n //success range should be 200 to 299\n if ((this.httpRequest.status >= 200 && this.httpRequest.status <= 299) || this.httpRequest.status === 304) {\n resolve(this.successHandler(data));\n }\n else {\n if (this.emitError) {\n reject(new Error(this.failureHandler(this.httpRequest.statusText)));\n }\n else {\n resolve();\n }\n }\n }\n };\n /**\n * To get the response header from XMLHttpRequest\n *\n * @param {string} key Key to search in the response header\n * @returns {string} ?\n */\n Ajax.prototype.getResponseHeader = function (key) {\n var responseHeaders;\n var header;\n // eslint-disable-next-line\n responseHeaders = {};\n var headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n while (headers) {\n responseHeaders[headers[1].toLowerCase()] = headers[2];\n headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n }\n // eslint-disable-next-line\n header = responseHeaders[key.toLowerCase()];\n return isNullOrUndefined(header) ? null : header;\n };\n return Ajax;\n}());\nexport { Ajax };\n","import { isNullOrUndefined as isNOU, isObject, merge } from './util';\n/**\n * The Fetch class provides a way to make asynchronous network requests, typically to retrieve resources from a server.\n * ```typescript\n * var fetchApi = new Fetch('index.html', 'GET');\n * fetchApi.send()\n * .then((value) => {\n * console.log(value);\n * }).catch((error) => {\n * console.log(error);\n * });\n * ```\n */\nvar Fetch = /** @class */ (function () {\n /**\n * Constructor for Fetch class.\n *\n * @param {string|Object} options - Specifies the URL or Request object with URL to which the request is to be sent.\n * @param {string} type - Specifies which request method is to be used, such as GET, POST, etc.\n * @param {string} contentType - Specifies the content type of the request, which is used to indicate the original media type of the resource.\n */\n function Fetch(options, type, contentType) {\n /**\n * Specifies which request method is to be used, such as GET, POST, etc.\n *\n * @default GET\n */\n this.type = 'GET';\n /**\n * A boolean value indicating whether to reject the promise or not.\n *\n * @private\n * @default true\n */\n this.emitError = true;\n if (typeof options === 'string') {\n this.url = options;\n this.type = !isNOU(type) ? type.toUpperCase() : this.type;\n this.contentType = contentType;\n }\n else if (isObject(options) && Object.keys(options).length > 0) {\n merge(this, options);\n }\n this.contentType = !isNOU(this.contentType) ? this.contentType : 'application/json; charset=utf-8';\n }\n /**\n * Send the request to server.\n *\n * @param {string|Object} data - Specifies the data that needs to be added to the request.\n * @returns {Promise} - Returns the response to a request.\n */\n Fetch.prototype.send = function (data) {\n var _this = this;\n var contentTypes = {\n 'application/json': 'json',\n 'multipart/form-data': 'formData',\n 'application/octet-stream': 'blob',\n 'application/x-www-form-urlencoded': 'formData'\n };\n try {\n if (isNOU(this.fetchRequest) && this.type === 'GET') {\n this.fetchRequest = new Request(this.url, { method: this.type });\n }\n else if (isNOU(this.fetchRequest)) {\n this.data = !isNOU(data) ? data : this.data;\n this.fetchRequest = new Request(this.url, {\n method: this.type,\n headers: { 'Content-Type': this.contentType },\n body: this.data\n });\n }\n var eventArgs = { cancel: false, fetchRequest: this.fetchRequest };\n this.triggerEvent(this['beforeSend'], eventArgs);\n if (eventArgs.cancel) {\n return null;\n }\n this.fetchResponse = fetch(this.fetchRequest);\n return this.fetchResponse.then(function (response) {\n _this.triggerEvent(_this['onLoad'], response);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n var responseType = 'text';\n for (var _i = 0, _a = Object.keys(contentTypes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (response.headers.get('Content-Type').indexOf(key) !== -1) {\n responseType = contentTypes[key];\n }\n }\n return response[responseType]();\n // eslint-disable-next-line\n }).then(function (data) {\n _this.triggerEvent(_this['onSuccess'], data, _this);\n return data;\n // eslint-disable-next-line\n }).catch(function (error) {\n var returnVal = {};\n if (_this.emitError) {\n _this.triggerEvent(_this['onFailure'], error);\n returnVal = Promise.reject(error);\n }\n return returnVal;\n });\n }\n catch (error) {\n return error;\n }\n };\n Fetch.prototype.triggerEvent = function (callback, data, instance) {\n if (!isNOU(callback) && typeof callback === 'function') {\n callback(data, instance);\n }\n };\n return Fetch;\n}());\nexport { Fetch };\n","import { isUndefined } from './util';\nvar REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i;\nvar REGX_IE = /msie|trident/i;\nvar REGX_IE11 = /Trident\\/7\\./;\nvar REGX_IOS = /(ipad|iphone|ipod touch)/i;\nvar REGX_IOS7 = /(ipad|iphone|ipod touch);.*os 7_\\d|(ipad|iphone|ipod touch);.*os 8_\\d/i;\nvar REGX_ANDROID = /android/i;\nvar REGX_WINDOWS = /trident|windows phone|edge/i;\nvar REGX_VERSION = /(version)[ /]([\\w.]+)/i;\nvar REGX_BROWSER = {\n OPERA: /(opera|opr)(?:.*version|)[ /]([\\w.]+)/i,\n EDGE: /(edge)(?:.*version|)[ /]([\\w.]+)/i,\n CHROME: /(chrome|crios)[ /]([\\w.]+)/i,\n PANTHOMEJS: /(phantomjs)[ /]([\\w.]+)/i,\n SAFARI: /(safari)[ /]([\\w.]+)/i,\n WEBKIT: /(webkit)[ /]([\\w.]+)/i,\n MSIE: /(msie|trident) ([\\w.]+)/i,\n MOZILLA: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.browserDetails = window.browserDetails || {};\n}\n/**\n * Get configuration details for Browser\n *\n * @private\n */\nvar Browser = /** @class */ (function () {\n function Browser() {\n }\n Browser.extractBrowserDetail = function () {\n var browserInfo = { culture: {} };\n var keys = Object.keys(REGX_BROWSER);\n var clientInfo = [];\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n clientInfo = Browser.userAgent.match(REGX_BROWSER[\"\" + key]);\n if (clientInfo) {\n browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase());\n browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name);\n browserInfo.version = clientInfo[2];\n browserInfo.culture.name = browserInfo.culture.language = navigator.language;\n // eslint-disable-next-line\n if (!!Browser.userAgent.match(REGX_IE11)) {\n browserInfo.name = 'msie';\n break;\n }\n var version = Browser.userAgent.match(REGX_VERSION);\n if (browserInfo.name === 'safari' && version) {\n browserInfo.version = version[2];\n }\n break;\n }\n }\n return browserInfo;\n };\n /**\n * To get events from the browser\n *\n * @param {string} event - type of event triggered.\n * @returns {boolean}\n */\n Browser.getEvent = function (event) {\n // eslint-disable-next-line\n var events = {\n start: {\n isPointer: 'pointerdown', isTouch: 'touchstart', isDevice: 'mousedown'\n },\n move: {\n isPointer: 'pointermove', isTouch: 'touchmove', isDevice: 'mousemove'\n },\n end: {\n isPointer: 'pointerup', isTouch: 'touchend', isDevice: 'mouseup'\n },\n cancel: {\n isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave'\n }\n };\n return (Browser.isPointer ? events[\"\" + event].isPointer :\n (Browser.isTouch ? events[\"\" + event].isTouch + (!Browser.isDevice ? ' ' + events[\"\" + event].isDevice : '')\n : events[\"\" + event].isDevice));\n };\n /**\n * To get the Touch start event from browser\n *\n * @returns {string}\n */\n Browser.getTouchStartEvent = function () {\n return Browser.getEvent('start');\n };\n /**\n * To get the Touch end event from browser\n *\n * @returns {string}\n */\n Browser.getTouchEndEvent = function () {\n return Browser.getEvent('end');\n };\n /**\n * To get the Touch move event from browser\n *\n * @returns {string}\n */\n Browser.getTouchMoveEvent = function () {\n return Browser.getEvent('move');\n };\n /**\n * To cancel the touch event from browser\n *\n * @returns {string}\n */\n Browser.getTouchCancelEvent = function () {\n return Browser.getEvent('cancel');\n };\n /**\n * Check whether the browser on the iPad device is Safari or not\n *\n * @returns {boolean}\n */\n Browser.isSafari = function () {\n return (Browser.isDevice && Browser.isIos && Browser.isTouch && typeof window !== 'undefined'\n && window.navigator.userAgent.toLowerCase().indexOf('iphone') === -1\n && window.navigator.userAgent.toLowerCase().indexOf('safari') > -1);\n };\n /**\n * To get the value based on provided key and regX\n *\n * @param {string} key ?\n * @param {RegExp} regX ?\n * @returns {Object} ?\n */\n Browser.getValue = function (key, regX) {\n var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {};\n if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true && !REGX_BROWSER.CHROME.test(navigator.userAgent)) {\n browserDetails['isIos'] = true;\n browserDetails['isDevice'] = true;\n browserDetails['isTouch'] = true;\n browserDetails['isPointer'] = true;\n }\n if ('undefined' === typeof browserDetails[\"\" + key]) {\n return browserDetails[\"\" + key] = regX.test(Browser.userAgent);\n }\n return browserDetails[\"\" + key];\n };\n Object.defineProperty(Browser, \"userAgent\", {\n get: function () {\n return Browser.uA;\n },\n //Properties\n /**\n * Property specifies the userAgent of the browser. Default userAgent value is based on the browser.\n * Also we can set our own userAgent.\n *\n * @param {string} uA ?\n */\n set: function (uA) {\n Browser.uA = uA;\n window.browserDetails = {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"info\", {\n //Read Only Properties\n /**\n * Property is to get the browser information like Name, Version and Language\n *\n * @returns {BrowserInfo} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.info)) {\n return window.browserDetails.info = Browser.extractBrowserDetail();\n }\n return window.browserDetails.info;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIE\", {\n /**\n * Property is to get whether the userAgent is based IE.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIE', REGX_IE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isTouch\", {\n /**\n * Property is to get whether the browser has touch support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isTouch)) {\n return (window.browserDetails.isTouch =\n ('ontouchstart' in window.navigator) ||\n (window &&\n window.navigator &&\n (window.navigator.maxTouchPoints > 0)) || ('ontouchstart' in window));\n }\n return window.browserDetails.isTouch;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isPointer\", {\n /**\n * Property is to get whether the browser has Pointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isPointer)) {\n return window.browserDetails.isPointer = ('pointerEnabled' in window.navigator);\n }\n return window.browserDetails.isPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isMSPointer\", {\n /**\n * Property is to get whether the browser has MSPointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isMSPointer)) {\n return window.browserDetails.isMSPointer = ('msPointerEnabled' in window.navigator);\n }\n return window.browserDetails.isMSPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isDevice\", {\n /**\n * Property is to get whether the userAgent is device based.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isDevice', REGX_MOBILE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos\", {\n /**\n * Property is to get whether the userAgent is IOS.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos', REGX_IOS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos7\", {\n /**\n * Property is to get whether the userAgent is Ios7.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos7', REGX_IOS7);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isAndroid\", {\n /**\n * Property is to get whether the userAgent is Android.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isAndroid', REGX_ANDROID);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWebView\", {\n /**\n * Property is to identify whether application ran in web view.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isWebView)) {\n window.browserDetails.isWebView = !(isUndefined(window.cordova) && isUndefined(window.PhoneGap)\n && isUndefined(window.phonegap) && window.forge !== 'object');\n return window.browserDetails.isWebView;\n }\n return window.browserDetails.isWebView;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWindows\", {\n /**\n * Property is to get whether the userAgent is Windows.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isWindows', REGX_WINDOWS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchStartEvent\", {\n /**\n * Property is to get the touch start event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchStartEvent)) {\n return window.browserDetails.touchStartEvent = Browser.getTouchStartEvent();\n }\n return window.browserDetails.touchStartEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchMoveEvent\", {\n /**\n * Property is to get the touch move event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchMoveEvent)) {\n return window.browserDetails.touchMoveEvent = Browser.getTouchMoveEvent();\n }\n return window.browserDetails.touchMoveEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchEndEvent\", {\n /**\n * Property is to get the touch end event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchEndEvent)) {\n return window.browserDetails.touchEndEvent = Browser.getTouchEndEvent();\n }\n return window.browserDetails.touchEndEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchCancelEvent\", {\n /**\n * Property is to cancel the touch end event.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchCancelEvent)) {\n return window.browserDetails.touchCancelEvent = Browser.getTouchCancelEvent();\n }\n return window.browserDetails.touchCancelEvent;\n },\n enumerable: true,\n configurable: true\n });\n /* istanbul ignore next */\n Browser.uA = typeof navigator !== 'undefined' ? navigator.userAgent : '';\n return Browser;\n}());\nexport { Browser };\n","import { debounce, extend } from './util';\nimport { Browser } from './browser';\n/**\n * EventHandler class provides option to add, remove, clear and trigger events to a HTML DOM element\n * ```html\n *
\n * \n * ```\n */\nvar EventHandler = /** @class */ (function () {\n function EventHandler() {\n }\n // to get the event data based on element\n EventHandler.addOrGetEventData = function (element) {\n if ('__eventList' in element) {\n return element.__eventList.events;\n }\n else {\n element.__eventList = {};\n return element.__eventList.events = [];\n }\n };\n /**\n * Add an event to the specified DOM element.\n *\n * @param {any} element - Target HTML DOM element\n * @param {string} eventName - A string that specifies the name of the event\n * @param {Function} listener - Specifies the function to run when the event occurs\n * @param {Object} bindTo - A object that binds 'this' variable in the event handler\n * @param {number} intDebounce - Specifies at what interval given event listener should be triggered.\n * @returns {Function} ?\n */\n EventHandler.add = function (element, eventName, listener, bindTo, intDebounce) {\n var eventData = EventHandler.addOrGetEventData(element);\n var debounceListener;\n if (intDebounce) {\n debounceListener = debounce(listener, intDebounce);\n }\n else {\n debounceListener = listener;\n }\n if (bindTo) {\n debounceListener = debounceListener.bind(bindTo);\n }\n var event = eventName.split(' ');\n for (var i = 0; i < event.length; i++) {\n eventData.push({\n name: event[parseInt(i.toString(), 10)],\n listener: listener,\n debounce: debounceListener\n });\n if (Browser.isIE) {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener);\n }\n else {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener, { passive: false });\n }\n }\n return debounceListener;\n };\n /**\n * Remove an event listener that has been attached before.\n *\n * @param {any} element - Specifies the target html element to remove the event\n * @param {string} eventName - A string that specifies the name of the event to remove\n * @param {Function} listener - Specifies the function to remove\n * @returns {void} ?\n */\n EventHandler.remove = function (element, eventName, listener) {\n var eventData = EventHandler.addOrGetEventData(element);\n var event = eventName.split(' ');\n var _loop_1 = function (j) {\n var index = -1;\n var debounceListener;\n if (eventData && eventData.length !== 0) {\n eventData.some(function (x, i) {\n return x.name === event[parseInt(j.toString(), 10)] && x.listener === listener ?\n (index = i, debounceListener = x.debounce, true) : false;\n });\n }\n if (index !== -1) {\n eventData.splice(index, 1);\n }\n if (debounceListener) {\n element.removeEventListener(event[parseInt(j.toString(), 10)], debounceListener);\n }\n };\n for (var j = 0; j < event.length; j++) {\n _loop_1(j);\n }\n };\n /**\n * Clear all the event listeners that has been previously attached to the element.\n *\n * @param {any} element - Specifies the target html element to clear the events\n * @returns {void} ?\n */\n EventHandler.clearEvents = function (element) {\n var eventData;\n var copyData;\n // eslint-disable-next-line\n eventData = EventHandler.addOrGetEventData(element);\n // eslint-disable-next-line\n copyData = extend([], copyData, eventData);\n for (var i = 0; i < copyData.length; i++) {\n element.removeEventListener(copyData[parseInt(i.toString(), 10)].name, copyData[parseInt(i.toString(), 10)].debounce);\n eventData.shift();\n }\n };\n /**\n * Trigger particular event of the element.\n *\n * @param {any} element - Specifies the target html element to trigger the events\n * @param {string} eventName - Specifies the event to trigger for the specified element.\n * Can be a custom event, or any of the standard events.\n * @param {any} eventProp - Additional parameters to pass on to the event properties\n * @returns {void} ?\n */\n EventHandler.trigger = function (element, eventName, eventProp) {\n var eventData = EventHandler.addOrGetEventData(element);\n for (var _i = 0, eventData_1 = eventData; _i < eventData_1.length; _i++) {\n var event_1 = eventData_1[_i];\n if (event_1.name === eventName) {\n event_1.debounce.call(this, eventProp);\n }\n }\n };\n return EventHandler;\n}());\nexport { EventHandler };\n","/**\n * Functions related to dom operations.\n */\nimport { EventHandler } from './event-handler';\nimport { isNullOrUndefined, getValue, setValue, isObject, extend } from './util';\nvar SVG_REG = /^svg|^path|^g/;\n/**\n * Function to create Html element.\n *\n * @param {string} tagName - Name of the tag, id and class names.\n * @param {ElementProperties} properties - Object to set properties in the element.\n * @param {ElementProperties} properties.id - To set the id to the created element.\n * @param {ElementProperties} properties.className - To add classes to the element.\n * @param {ElementProperties} properties.innerHTML - To set the innerHTML to element.\n * @param {ElementProperties} properties.styles - To set the some custom styles to element.\n * @param {ElementProperties} properties.attrs - To set the attributes to element.\n * @returns {any} ?\n * @private\n */\nexport function createElement(tagName, properties) {\n var element = (SVG_REG.test(tagName) ? document.createElementNS('http://www.w3.org/2000/svg', tagName) : document.createElement(tagName));\n if (typeof (properties) === 'undefined') {\n return element;\n }\n element.innerHTML = (properties.innerHTML ? properties.innerHTML : '');\n if (properties.className !== undefined) {\n element.className = properties.className;\n }\n if (properties.id !== undefined) {\n element.id = properties.id;\n }\n if (properties.styles !== undefined) {\n element.setAttribute('style', properties.styles);\n }\n if (properties.attrs !== undefined) {\n attributes(element, properties.attrs);\n }\n return element;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to add a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function addClass(elements, classes) {\n var classList = getClassList(classes);\n var regExp = RegExp;\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n for (var _b = 0, classList_1 = classList; _b < classList_1.length; _b++) {\n var className = classList_1[_b];\n if (isObject(ele)) {\n var curClass = getValue('attributes.className', ele);\n if (isNullOrUndefined(curClass)) {\n setValue('attributes.className', className, ele);\n }\n else if (!new regExp('\\\\b' + className + '\\\\b', 'i').test(curClass)) {\n setValue('attributes.className', curClass + ' ' + className, ele);\n }\n }\n else {\n if (!ele.classList.contains(className)) {\n ele.classList.add(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to remove a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function removeClass(elements, classes) {\n var classList = getClassList(classes);\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n var flag = isObject(ele);\n var canRemove = flag ? getValue('attributes.className', ele) : ele.className !== '';\n if (canRemove) {\n for (var _b = 0, classList_2 = classList; _b < classList_2.length; _b++) {\n var className = classList_2[_b];\n if (flag) {\n var classes_1 = getValue('attributes.className', ele);\n var classArr = classes_1.split(' ');\n var index = classArr.indexOf(className);\n if (index !== -1) {\n classArr.splice(index, 1);\n }\n setValue('attributes.className', classArr.join(' '), ele);\n }\n else {\n ele.classList.remove(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to get classlist.\n *\n * @param {string | string[]} classes - An element the need to check visibility\n * @returns {string[]} ?\n * @private\n */\nfunction getClassList(classes) {\n var classList = [];\n if (typeof classes === 'string') {\n classList.push(classes);\n }\n else {\n classList = classes;\n }\n return classList;\n}\n/**\n * The function used to check element is visible or not.\n *\n * @param {Element|Node} element - An element the need to check visibility\n * @returns {boolean} ?\n * @private\n */\nexport function isVisible(element) {\n var ele = element;\n return (ele.style.visibility === '' && ele.offsetWidth > 0);\n}\n/**\n * The function used to insert an array of elements into a first of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to prepend.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function prepend(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n toElement.insertBefore(docFrag, toElement.firstElementChild);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function used to insert an array of elements into last of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to append.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function append(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n if (fromElements instanceof NodeList) {\n while (fromElements.length > 0) {\n docFrag.appendChild(fromElements[0]);\n }\n }\n else {\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n }\n toElement.appendChild(docFrag);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function is used to evaluate script from Ajax request\n *\n * @param {Element} ele - An element is going to evaluate the script\n * @returns {void} ?\n */\nfunction executeScript(ele) {\n var eleArray = ele.querySelectorAll('script');\n eleArray.forEach(function (element) {\n var script = document.createElement('script');\n script.text = element.innerHTML;\n document.head.appendChild(script);\n detach(script);\n });\n}\n/**\n * The function used to remove the element from parentnode\n *\n * @param {Element|Node|HTMLElement} element - An element that is going to detach from the Dom\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function detach(element) {\n var parentNode = element.parentNode;\n if (parentNode) {\n return parentNode.removeChild(element);\n }\n}\n/**\n * The function used to remove the element from Dom also clear the bounded events\n *\n * @param {Element|Node|HTMLElement} element - An element remove from the Dom\n * @returns {void} ?\n * @private\n */\nexport function remove(element) {\n var parentNode = element.parentNode;\n EventHandler.clearEvents(element);\n parentNode.removeChild(element);\n}\n/**\n * The function helps to set multiple attributes to an element\n *\n * @param {Element|Node} element - An element that need to set attributes.\n * @param {string} attributes - JSON Object that is going to as attributes.\n * @returns {Element} ?\n * @private\n */\n// eslint-disable-next-line\nexport function attributes(element, attributes) {\n var keys = Object.keys(attributes);\n var ele = element;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (isObject(ele)) {\n var iKey = key;\n if (key === 'tabindex') {\n iKey = 'tabIndex';\n }\n ele.attributes[\"\" + iKey] = attributes[\"\" + key];\n }\n else {\n ele.setAttribute(key, attributes[\"\" + key]);\n }\n }\n return ele;\n}\n/**\n * The function selects the element from giving context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function select(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n return context.querySelector(selector);\n}\n/**\n * The function selects an array of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {HTMLElement[]} ?\n * @private\n */\n// eslint-disable-next-line\nexport function selectAll(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n var nodeList = context.querySelectorAll(selector);\n return nodeList;\n}\n/**\n * The function selects an id of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @returns {string} ?\n * @private\n */\nfunction querySelectId(selector) {\n var charRegex = /(!|\"|\\$|%|&|'|\\(|\\)|\\*|\\/|:|;|<|=|\\?|@|\\]|\\^|`|{|}|\\||\\+|~)/g;\n if (selector.match(/#[0-9]/g) || selector.match(charRegex)) {\n var idList = selector.split(',');\n for (var i = 0; i < idList.length; i++) {\n var list = idList[parseInt(i.toString(), 10)].split(' ');\n for (var j = 0; j < list.length; j++) {\n if (list[parseInt(j.toString(), 10)].indexOf('#') > -1) {\n if (!list[parseInt(j.toString(), 10)].match(/\\[.*\\]/)) {\n var splitId = list[parseInt(j.toString(), 10)].split('#');\n if (splitId[1].match(/^\\d/) || splitId[1].match(charRegex)) {\n var setId = list[parseInt(j.toString(), 10)].split('.');\n setId[0] = setId[0].replace(/#/, '[id=\\'') + '\\']';\n list[parseInt(j.toString(), 10)] = setId.join('.');\n }\n }\n }\n }\n idList[parseInt(i.toString(), 10)] = list.join(' ');\n }\n return idList.join(',');\n }\n return selector;\n}\n/**\n * Returns single closest parent element based on class selector.\n *\n * @param {Element} element - An element that need to find the closest element.\n * @param {string} selector - A classSelector of closest element.\n * @returns {Element} ?\n * @private\n */\nexport function closest(element, selector) {\n var el = element;\n if (typeof el.closest === 'function') {\n return el.closest(selector);\n }\n while (el && el.nodeType === 1) {\n if (matches(el, selector)) {\n return el;\n }\n el = el.parentNode;\n }\n return null;\n}\n/**\n * Returns all sibling elements of the given element.\n *\n * @param {Element|Node} element - An element that need to get siblings.\n * @returns {Element[]} ?\n * @private\n */\nexport function siblings(element) {\n var siblings = [];\n var childNodes = Array.prototype.slice.call(element.parentNode.childNodes);\n for (var _i = 0, childNodes_1 = childNodes; _i < childNodes_1.length; _i++) {\n var curNode = childNodes_1[_i];\n if (curNode.nodeType === Node.ELEMENT_NODE && element !== curNode) {\n siblings.push(curNode);\n }\n }\n return siblings;\n}\n/**\n * set the value if not exist. Otherwise set the existing value\n *\n * @param {HTMLElement} element - An element to which we need to set value.\n * @param {string} property - Property need to get or set.\n * @param {string} value - value need to set.\n * @returns {string} ?\n * @private\n */\nexport function getAttributeOrDefault(element, property, value) {\n var attrVal;\n var isObj = isObject(element);\n if (isObj) {\n attrVal = getValue('attributes.' + property, element);\n }\n else {\n attrVal = element.getAttribute(property);\n }\n if (isNullOrUndefined(attrVal) && value) {\n if (!isObj) {\n element.setAttribute(property, value.toString());\n }\n else {\n element.attributes[\"\" + property] = value;\n }\n attrVal = value;\n }\n return attrVal;\n}\n/**\n * Set the style attributes to Html element.\n *\n * @param {HTMLElement} element - Element which we want to set attributes\n * @param {any} attrs - Set the given attributes to element\n * @returns {void} ?\n * @private\n */\nexport function setStyleAttribute(element, attrs) {\n if (attrs !== undefined) {\n Object.keys(attrs).forEach(function (key) {\n // eslint-disable-next-line\n element.style[key] = attrs[key];\n });\n }\n}\n/**\n * Method for add and remove classes to a dom element.\n *\n * @param {Element} element - Element for add and remove classes\n * @param {string[]} addClasses - List of classes need to be add to the element\n * @param {string[]} removeClasses - List of classes need to be remove from the element\n * @returns {void} ?\n * @private\n */\nexport function classList(element, addClasses, removeClasses) {\n addClass([element], addClasses);\n removeClass([element], removeClasses);\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Element} element - Element to compare with the selector.\n * @param {string} selector - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function matches(element, selector) {\n // eslint-disable-next-line\n var matches = element.matches || element.msMatchesSelector || element.webkitMatchesSelector;\n if (matches) {\n return matches.call(element, selector);\n }\n else {\n return [].indexOf.call(document.querySelectorAll(selector), element) !== -1;\n }\n}\n/**\n * Method to get the html text from DOM.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} innerHTML - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function includeInnerHTML(ele, innerHTML) {\n ele.innerHTML = innerHTML;\n}\n/**\n * Method to get the containsclass.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} className - String selector which element will satisfy.\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function containsClass(ele, className) {\n if (isObject(ele)) {\n // eslint-disable-next-line\n return new RegExp('\\\\b' + className + '\\\\b', 'i').test(ele.attributes.className);\n }\n else {\n return ele.classList.contains(className);\n }\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Object} element - Element to compare with the selector.\n * @param {boolean} deep ?\n * @returns {any} ?\n * @private\n */\n// eslint-disable-next-line\nexport function cloneNode(element, deep) {\n if (isObject(element)) {\n if (deep) {\n return extend({}, {}, element, true);\n }\n }\n else {\n return element.cloneNode(deep);\n }\n}\n","import { isUndefined, isNullOrUndefined, merge, setImmediate, setValue, isBlazor, getValue, extend } from './util';\nimport { addClass, removeClass } from './dom';\nimport { Observer } from './observer';\nvar isColEName = new RegExp(']');\n/* tslint:enable:no-any */\n/**\n * Base library module is common module for Framework modules like touch,keyboard and etc.,\n *\n * @private\n */\nvar Base = /** @class */ (function () {\n /**\n * Base constructor accept options and element\n *\n * @param {Object} options ?\n * @param {string} element ?\n */\n function Base(options, element) {\n this.isRendered = false;\n this.isComplexArraySetter = false;\n this.isServerRendered = false;\n this.allowServerDataBinding = true;\n this.isProtectedOnChange = true;\n this.properties = {};\n this.changedProperties = {};\n this.oldProperties = {};\n this.bulkChanges = {};\n this.refreshing = false;\n this.ignoreCollectionWatch = false;\n // eslint-disable-next-line\n this.finalUpdate = function () { };\n this.childChangedProperties = {};\n this.modelObserver = new Observer(this);\n if (!isUndefined(element)) {\n if ('string' === typeof (element)) {\n this.element = document.querySelector(element);\n }\n else {\n this.element = element;\n }\n if (!isNullOrUndefined(this.element)) {\n this.isProtectedOnChange = false;\n this.addInstance();\n }\n }\n if (!isUndefined(options)) {\n this.setProperties(options, true);\n }\n this.isDestroyed = false;\n }\n /** Property base section */\n /**\n * Function used to set bunch of property at a time.\n *\n * @private\n * @param {Object} prop - JSON object which holds components properties.\n * @param {boolean} muteOnChange ? - Specifies to true when we set properties.\n * @returns {void} ?\n */\n Base.prototype.setProperties = function (prop, muteOnChange) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = !!muteOnChange;\n merge(this, prop);\n if (muteOnChange !== true) {\n merge(this.changedProperties, prop);\n this.dataBind();\n }\n else if (isBlazor() && this.isRendered) {\n this.serverDataBind(prop);\n }\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.isProtectedOnChange = prevDetection;\n };\n /**\n * Calls for child element data bind\n *\n * @param {Object} obj ?\n * @param {Object} parent ?\n * @returns {void} ?\n */\n // tslint:disable-next-line:no-any\n Base.callChildDataBind = function (obj, parent) {\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (parent[\"\" + key] instanceof Array) {\n for (var _a = 0, _b = parent[\"\" + key]; _a < _b.length; _a++) {\n var obj_1 = _b[_a];\n if (obj_1.dataBind !== undefined) {\n obj_1.dataBind();\n }\n }\n }\n else {\n parent[\"\" + key].dataBind();\n }\n }\n };\n Base.prototype.clearChanges = function () {\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.childChangedProperties = {};\n };\n /**\n * Bind property changes immediately to components\n *\n * @returns {void} ?\n */\n Base.prototype.dataBind = function () {\n Base.callChildDataBind(this.childChangedProperties, this);\n if (Object.getOwnPropertyNames(this.changedProperties).length) {\n var prevDetection = this.isProtectedOnChange;\n var newChanges = this.changedProperties;\n var oldChanges = this.oldProperties;\n this.clearChanges();\n this.isProtectedOnChange = true;\n this.onPropertyChanged(newChanges, oldChanges);\n this.isProtectedOnChange = prevDetection;\n }\n };\n /* tslint:disable:no-any */\n Base.prototype.serverDataBind = function (newChanges) {\n if (!isBlazor()) {\n return;\n }\n newChanges = newChanges ? newChanges : {};\n extend(this.bulkChanges, {}, newChanges, true);\n var sfBlazor = 'sfBlazor';\n if (this.allowServerDataBinding && window[\"\" + sfBlazor].updateModel) {\n window[\"\" + sfBlazor].updateModel(this);\n this.bulkChanges = {};\n }\n };\n /* tslint:enable:no-any */\n Base.prototype.saveChanges = function (key, newValue, oldValue) {\n if (isBlazor()) {\n // tslint:disable-next-line:no-any\n var newChanges = {};\n newChanges[\"\" + key] = newValue;\n this.serverDataBind(newChanges);\n }\n if (this.isProtectedOnChange) {\n return;\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.finalUpdate();\n this.finalUpdate = setImmediate(this.dataBind.bind(this));\n };\n /** Event Base Section */\n /**\n * Adds the handler to the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event\n * @param {Function} handler - Specifies the call to run when the event occurs.\n * @returns {void} ?\n */\n Base.prototype.addEventListener = function (eventName, handler) {\n this.modelObserver.on(eventName, handler);\n };\n /**\n * Removes the handler from the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event to remove\n * @param {Function} handler - Specifies the function to remove\n * @returns {void} ?\n */\n Base.prototype.removeEventListener = function (eventName, handler) {\n this.modelObserver.off(eventName, handler);\n };\n /**\n * Triggers the handlers in the specified event.\n *\n * @private\n * @param {string} eventName - Specifies the event to trigger for the specified component properties.\n * Can be a custom event, or any of the standard events.\n * @param {Event} eventProp - Additional parameters to pass on to the event properties\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it failured to call.\n * @returns {void} ?\n */\n Base.prototype.trigger = function (eventName, eventProp, successHandler, errorHandler) {\n var _this = this;\n if (this.isDestroyed !== true) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n var data = this.modelObserver.notify(eventName, eventProp, successHandler, errorHandler);\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n var blazor = 'Blazor';\n if (window[\"\" + blazor]) {\n var promise = handler.call(this, eventProp);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n data = promise;\n }\n else {\n promise.then(function (data) {\n if (successHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ?\n JSON.parse(data) : data;\n successHandler.call(_this, data);\n }\n }).catch(function (data) {\n if (errorHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ? JSON.parse(data) : data;\n errorHandler.call(_this, data);\n }\n });\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n this.isProtectedOnChange = prevDetection;\n return data;\n }\n };\n /**\n * To maintain instance in base class\n *\n * @returns {void} ?\n */\n Base.prototype.addInstance = function () {\n // Add module class to the root element\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-lib', moduleClass]);\n if (!isNullOrUndefined(this.element.ej2_instances)) {\n this.element.ej2_instances.push(this);\n }\n else {\n setValue('ej2_instances', [this], this.element);\n }\n };\n /**\n * To remove the instance from the element\n *\n * @returns {void} ?\n */\n Base.prototype.destroy = function () {\n var _this = this;\n // eslint-disable-next-line\n this.element.ej2_instances =\n this.element.ej2_instances.filter(function (i) { return i !== _this; });\n removeClass([this.element], ['e-' + this.getModuleName()]);\n if (this.element.ej2_instances.length === 0) {\n // Remove module class from the root element\n removeClass([this.element], ['e-lib']);\n }\n this.clearChanges();\n this.modelObserver.destroy();\n this.isDestroyed = true;\n };\n return Base;\n}());\nexport { Base };\n/**\n * Global function to get the component instance from the rendered element.\n *\n * @param {HTMLElement} elem Specifies the HTMLElement or element id string.\n * @param {string} comp Specifies the component module name or Component.\n * @returns {any} ?\n */\n// tslint:disable-next-line:no-any\nexport function getComponent(elem, comp) {\n var instance;\n var i;\n var ele = typeof elem === 'string' ? document.getElementById(elem) : elem;\n for (i = 0; i < ele.ej2_instances.length; i++) {\n instance = ele.ej2_instances[parseInt(i.toString(), 10)];\n if (typeof comp === 'string') {\n var compName = instance.getModuleName();\n if (comp === compName) {\n return instance;\n }\n }\n else {\n // tslint:disable-next-line:no-any\n if (instance instanceof comp) {\n return instance;\n }\n }\n }\n return undefined;\n}\n/**\n * Function to remove the child instances.\n *\n * @param {HTMLElement} element ?\n * @return {void}\n * @private\n */\n// tslint:disable-next-line:no-any\nexport function removeChildInstance(element) {\n // tslint:disable-next-line:no-any\n var childEle = [].slice.call(element.getElementsByClassName('e-control'));\n for (var i = 0; i < childEle.length; i++) {\n var compName = childEle[parseInt(i.toString(), 10)].classList[1].split('e-')[1];\n // tslint:disable-next-line:no-any\n var compInstance = getComponent(childEle[parseInt(i.toString(), 10)], compName);\n if (!isUndefined(compInstance)) {\n compInstance.destroy();\n }\n }\n}\n","import { createInstance, isUndefined, merge, extend, getValue } from './util';\n/**\n * Returns the Class Object\n *\n * @param {ClassObject} instance - instance of ClassObject\n * @param {string} curKey - key of the current instance\n * @param {Object} defaultValue - default Value\n * @param {Object[]} type ?\n * @returns {ClassObject} ?\n */\n// eslint-disable-next-line\nfunction getObject(instance, curKey, defaultValue, type) {\n // eslint-disable-next-line\n if (!instance.properties.hasOwnProperty(curKey) || !(instance.properties[curKey] instanceof type)) {\n instance.properties[\"\" + curKey] = createInstance(type, [instance, curKey, defaultValue]);\n }\n return instance.properties[\"\" + curKey];\n}\n/**\n * Returns object array\n *\n * @param {ClassObject} instance ?\n * @param {string} curKey ?\n * @param {Object[]} defaultValue ?\n * @param {Object} type ?\n * @param {boolean} isSetter ?\n * @param {boolean} isFactory ?\n * @returns {Object[]} ?\n */\n// eslint-disable-next-line\nfunction getObjectArray(instance, curKey, defaultValue, type, isSetter, isFactory) {\n var result = [];\n var len = defaultValue ? defaultValue.length : 0;\n for (var i = 0; i < len; i++) {\n var curType = type;\n if (isFactory) {\n curType = type(defaultValue[parseInt(i.toString(), 10)], instance);\n }\n if (isSetter) {\n var inst = createInstance(curType, [instance, curKey, {}, true]);\n inst.setProperties(defaultValue[parseInt(i.toString(), 10)], true);\n result.push(inst);\n }\n else {\n result.push(createInstance(curType, [instance, curKey, defaultValue[parseInt(i.toString(), 10)], false]));\n }\n }\n return result;\n}\n/**\n * Returns the properties of the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertyGetter(defaultValue, curKey) {\n return function () {\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n this.properties[\"\" + curKey] = defaultValue;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n * Set the properties for the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertySetter(defaultValue, curKey) {\n return function (newValue) {\n if (this.properties[\"\" + curKey] !== newValue) {\n // eslint-disable-next-line\n var oldVal = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\n this.saveChanges(curKey, newValue, oldVal);\n this.properties[\"\" + curKey] = newValue;\n }\n };\n}\n/**\n * Returns complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\n// eslint-disable-next-line\nfunction complexGetter(defaultValue, curKey, type) {\n return function () {\n return getObject(this, curKey, defaultValue, type);\n };\n}\n/**\n * Sets complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexSetter(defaultValue, curKey, type) {\n return function (newValue) {\n getObject(this, curKey, defaultValue, type).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\n// eslint-disable-next-line\nfunction complexFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n // eslint-disable-next-line\n if (this.properties.hasOwnProperty(curKey)) {\n return this.properties[\"\" + curKey];\n }\n else {\n return getObject(this, curKey, defaultValue, curType);\n }\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n var curType = type(newValue, this);\n getObject(this, curKey, defaultValue, curType).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayGetter(defaultValue, curKey, type) {\n return function () {\n var _this = this;\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, type, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n var ignore = ((this.controlParent !== undefined && this.controlParent.ignoreCollectionWatch)\n || this.ignoreCollectionWatch);\n // eslint-disable-next-line\n if (!this.properties[curKey].hasOwnProperty('push') && !ignore) {\n ['push', 'pop'].forEach(function (extendFunc) {\n var descriptor = {\n value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties[\"\" + curKey]).bind(_this),\n configurable: true\n };\n Object.defineProperty(_this.properties[\"\" + curKey], extendFunc, descriptor);\n });\n }\n // eslint-disable-next-line\n if (!this.properties[curKey].hasOwnProperty('isComplexArray')) {\n Object.defineProperty(this.properties[\"\" + curKey], 'isComplexArray', { value: true });\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArraySetter(defaultValue, curKey, type) {\n return function (newValue) {\n this.isComplexArraySetter = true;\n var oldValueCollection = getObjectArray(this, curKey, defaultValue, type, false);\n var newValCollection = getObjectArray(this, curKey, newValue, type, true);\n this.isComplexArraySetter = false;\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n // eslint-disable-next-line\n var oldValueCollection = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\n var newValCollection = getObjectArray(this, curKey, newValue, type, true, true);\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n // eslint-disable-next-line\n if (!this.properties.hasOwnProperty(curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, curType, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {string} dFunc ?\n * @param {string} curKey ?\n * @param {Object} type ?\n * @param {Object} prop ?\n * @returns {Object} ?\n */\nfunction complexArrayDefinedCallback(dFunc, curKey, type, prop) {\n /* tslint:disable no-function-expression */\n return function () {\n var newValue = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newValue[_i] = arguments[_i];\n }\n var keyString = this.propName ? this.getParentKey() + '.' + curKey + '-' : curKey + '-';\n switch (dFunc) {\n case 'push':\n for (var i = 0; i < newValue.length; i++) {\n Array.prototype[\"\" + dFunc].apply(prop, [newValue[parseInt(i.toString(), 10)]]);\n var model_1 = getArrayModel(keyString + (prop.length - 1), newValue[parseInt(i.toString(), 10)], !this.controlParent, dFunc);\n this.serverDataBind(model_1, newValue[parseInt(i.toString(), 10)], false, dFunc);\n }\n break;\n case 'pop':\n Array.prototype[\"\" + dFunc].apply(prop);\n // eslint-disable-next-line\n var model = getArrayModel(keyString + prop.length, null, !this.controlParent, dFunc);\n this.serverDataBind(model, { ejsAction: 'pop' }, false, dFunc);\n break;\n }\n return prop;\n };\n}\n/**\n *\n * @param {string} keyString ?\n * @param {Object} value ?\n * @param {boolean} isControlParent ?\n * @param {string} arrayFunction ?\n * @returns {Object} ?\n */\nfunction getArrayModel(keyString, value, isControlParent, arrayFunction) {\n var modelObject = keyString;\n if (isControlParent) {\n modelObject = {};\n modelObject[\"\" + keyString] = value;\n if (value && typeof value === 'object') {\n var action = 'ejsAction';\n modelObject[\"\" + keyString][\"\" + action] = arrayFunction;\n }\n }\n return modelObject;\n}\n// eslint-disable-next-line\n/**\n * Method used to create property. General syntax below.\n *\n * @param {Object} defaultValue - Specifies the default value of property.\n * @returns {PropertyDecorator} ?\n * ```\n * @Property('TypeScript')\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Property(defaultValue) {\n return function (target, key) {\n var propertyDescriptor = {\n set: propertySetter(defaultValue, key),\n get: propertyGetter(defaultValue, key),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'prop', defaultValue);\n };\n}\n/**\n * Method used to create complex property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Complex({},Type)\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Complex(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexSetter(defaultValue, key, type),\n get: complexGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex Factory property. General syntax below.\n *\n * @param {Function} type - Specifies the class factory type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @ComplexFactory(defaultType, factoryFunction)\n * propertyName: Type1 | Type2;\n * ```\n * @private\n */\nexport function ComplexFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexFactorySetter({}, key, type),\n get: complexFactoryGetter({}, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', {}, type);\n };\n}\n/**\n * Method used to create complex array property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Collection(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArraySetter(defaultValue, key, type),\n get: complexArrayGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex factory array property. General syntax below.\n *\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyCollectionInfo} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function CollectionFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArrayFactorySetter([], key, type),\n get: complexArrayFactoryGetter([], key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', {}, type);\n };\n}\n/**\n * Method used to create event property. General syntax below.\n *\n * @returns {PropertyDecorator} ?\n * ```\n * @Event(()=>{return true;})\n * ```\n * @private\n */\nexport function Event() {\n return function (target, key) {\n var eventDescriptor = {\n set: function (newValue) {\n var oldValue = this.properties[\"\" + key];\n if (oldValue !== newValue) {\n var finalContext = getParentContext(this, key);\n if (isUndefined(oldValue) === false) {\n finalContext.context.removeEventListener(finalContext.prefix, oldValue);\n }\n finalContext.context.addEventListener(finalContext.prefix, newValue);\n this.properties[\"\" + key] = newValue;\n }\n },\n get: propertyGetter(undefined, key),\n enumerable: true,\n configurable: true\n };\n Object.defineProperty(target, key, eventDescriptor);\n addPropertyCollection(target, key, 'event');\n };\n}\n/**\n * NotifyPropertyChanges is triggers the call back when the property has been changed.\n *\n * @param {Function} classConstructor ?\n * @returns {void} ?\n * ```\n * @NotifyPropertyChanges\n * class DemoClass implements INotifyPropertyChanged {\n *\n * @Property()\n * property1: string;\n *\n * dataBind: () => void;\n *\n * constructor() { }\n *\n * onPropertyChanged(newProp: any, oldProp: any) {\n * // Called when property changed\n * }\n * }\n * ```\n * @private\n */\n// eslint-disable-next-line\nexport function NotifyPropertyChanges(classConstructor) {\n /** Need to code */\n}\n/**\n * Method used to create the builderObject for the target component.\n *\n * @param {BuildInfo} target ?\n * @param {string} key ?\n * @param {string} propertyType ?\n * @param {Object} defaultValue ?\n * @param {Function} type ?\n * @returns {void} ?\n * @private\n */\nfunction addPropertyCollection(target, key, propertyType, defaultValue, type) {\n if (isUndefined(target.propList)) {\n target.propList = {\n props: [],\n complexProps: [],\n colProps: [],\n events: [],\n propNames: [],\n complexPropNames: [],\n colPropNames: [],\n eventNames: []\n };\n }\n // eslint-disable-next-line\n target.propList[propertyType + 's'].push({\n propertyName: key,\n defaultValue: defaultValue,\n type: type\n });\n // eslint-disable-next-line\n target.propList[propertyType + 'Names'].push(key);\n}\n/**\n * Returns an object containing the builder properties\n *\n * @param {Function} component ?\n * @returns {Object} ?\n * @private\n */\nfunction getBuilderProperties(component) {\n if (isUndefined(component.prototype.builderObject)) {\n component.prototype.builderObject = {\n properties: {}, propCollections: [], add: function () {\n this.isPropertyArray = true;\n this.propCollections.push(extend({}, this.properties, {}));\n }\n };\n var rex = /complex/;\n for (var _i = 0, _a = Object.keys(component.prototype.propList); _i < _a.length; _i++) {\n var key = _a[_i];\n var _loop_1 = function (prop) {\n if (rex.test(key)) {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n var childType = {};\n merge(childType, getBuilderProperties(prop.type));\n value(childType);\n var tempValue;\n if (!childType.isPropertyArray) {\n tempValue = extend({}, childType.properties, {});\n }\n else {\n tempValue = childType.propCollections;\n }\n this.properties[prop.propertyName] = tempValue;\n childType.properties = {};\n childType.propCollections = [];\n childType.isPropertyArray = false;\n return this;\n };\n }\n else {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n this.properties[prop.propertyName] = value;\n return this;\n };\n }\n };\n for (var _b = 0, _c = component.prototype.propList[\"\" + key]; _b < _c.length; _b++) {\n var prop = _c[_b];\n _loop_1(prop);\n }\n }\n }\n return component.prototype.builderObject;\n}\n/**\n * Method used to create builder for the components\n *\n * @param {any} component -specifies the target component for which builder to be created.\n * @returns {Object} ?\n * @private\n */\nexport function CreateBuilder(component) {\n var builderFunction = function (element) {\n this.element = element;\n return this;\n };\n var instanceFunction = function (element) {\n // eslint-disable-next-line\n if (!builderFunction.prototype.hasOwnProperty('create')) {\n builderFunction.prototype = getBuilderProperties(component);\n builderFunction.prototype.create = function () {\n var temp = extend({}, {}, this.properties);\n this.properties = {};\n return new component(temp, this.element);\n };\n }\n return new builderFunction(element);\n };\n return instanceFunction;\n}\n/**\n * Returns parent options for the object\n *\n * @param {Object} context ?\n * @param {string} prefix ?\n * @returns {ParentOption} ?\n * @private\n */\nfunction getParentContext(context, prefix) {\n // eslint-disable-next-line\n if (context.hasOwnProperty('parentObj') === false) {\n return { context: context, prefix: prefix };\n }\n else {\n var curText = getValue('propName', context);\n if (curText) {\n prefix = curText + '-' + prefix;\n }\n return getParentContext(getValue('parentObj', context), prefix);\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { createElement, selectAll, closest } from './dom';\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { EventHandler } from './event-handler';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\n/**\n * The Animation framework provide options to animate the html DOM elements\n * ```typescript\n * let animeObject = new Animation({\n * name: 'SlideLeftIn',\n * duration: 1000\n * });\n * animeObject.animate('#anime1');\n * animeObject.animate('#anime2', { duration: 500 });\n * ```\n */\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation(options) {\n var _this = _super.call(this, options, undefined) || this;\n /**\n * @private\n */\n _this.easing = {\n ease: 'cubic-bezier(0.250, 0.100, 0.250, 1.000)',\n linear: 'cubic-bezier(0.250, 0.250, 0.750, 0.750)',\n easeIn: 'cubic-bezier(0.420, 0.000, 1.000, 1.000)',\n easeOut: 'cubic-bezier(0.000, 0.000, 0.580, 1.000)',\n easeInOut: 'cubic-bezier(0.420, 0.000, 0.580, 1.000)',\n elasticInOut: 'cubic-bezier(0.5,-0.58,0.38,1.81)',\n elasticIn: 'cubic-bezier(0.17,0.67,0.59,1.81)',\n elasticOut: 'cubic-bezier(0.7,-0.75,0.99,1.01)'\n };\n return _this;\n }\n Animation_1 = Animation;\n /**\n * Applies animation to the current element.\n *\n * @param {string | HTMLElement} element - Element which needs to be animated.\n * @param {AnimationModel} options - Overriding default animation settings.\n * @returns {void} ?\n */\n Animation.prototype.animate = function (element, options) {\n options = !options ? {} : options;\n var model = this.getModel(options);\n if (typeof element === 'string') {\n var elements = Array.prototype.slice.call(selectAll(element, document));\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var element_1 = elements_1[_i];\n model.element = element_1;\n Animation_1.delayAnimation(model);\n }\n }\n else {\n model.element = element;\n Animation_1.delayAnimation(model);\n }\n };\n /**\n * Stop the animation effect on animated element.\n *\n * @param {HTMLElement} element - Element which needs to be stop the animation.\n * @param {AnimationOptions} model - Handling the animation model at stop function.\n * @return {void}\n */\n Animation.stop = function (element, model) {\n element.style.animation = '';\n element.removeAttribute('e-animate');\n var animationId = element.getAttribute('e-animation-id');\n if (animationId) {\n var frameId = parseInt(animationId, 10);\n cancelAnimationFrame(frameId);\n element.removeAttribute('e-animation-id');\n }\n if (model && model.end) {\n model.end.call(this, model);\n }\n };\n /**\n * Set delay to animation element\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.delayAnimation = function (model) {\n if (animationMode === 'Disable') {\n if (model.begin) {\n model.begin.call(this, model);\n }\n if (model.end) {\n model.end.call(this, model);\n }\n }\n else {\n if (model.delay) {\n setTimeout(function () { Animation_1.applyAnimation(model); }, model.delay);\n }\n else {\n Animation_1.applyAnimation(model);\n }\n }\n };\n /**\n * Triggers animation\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.applyAnimation = function (model) {\n var _this = this;\n model.timeStamp = 0;\n var step = 0;\n var timerId = 0;\n var prevTimeStamp = 0;\n var duration = model.duration;\n model.element.setAttribute('e-animate', 'true');\n var startAnimation = function (timeStamp) {\n try {\n if (timeStamp) {\n // let step: number = model.timeStamp = timeStamp - startTime;\n /** phantomjs workaround for timestamp fix */\n prevTimeStamp = prevTimeStamp === 0 ? timeStamp : prevTimeStamp;\n model.timeStamp = (timeStamp + model.timeStamp) - prevTimeStamp;\n prevTimeStamp = timeStamp;\n /** phantomjs workaround end */\n // trigger animation begin event\n if (!step && model.begin) {\n model.begin.call(_this, model);\n }\n step = step + 1;\n var avg = model.timeStamp / step;\n if (model.timeStamp < duration && model.timeStamp + avg < duration && model.element.getAttribute('e-animate')) {\n // apply animation effect to the current element\n model.element.style.animation = model.name + ' ' + model.duration + 'ms ' + model.timingFunction;\n if (model.progress) {\n model.progress.call(_this, model);\n }\n // repeat requestAnimationFrame\n requestAnimationFrame(startAnimation);\n }\n else {\n // clear requestAnimationFrame\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n model.element.removeAttribute('e-animate');\n model.element.style.animation = '';\n if (model.end) {\n model.end.call(_this, model);\n }\n }\n }\n else {\n //startTime = performance.now();\n // set initial requestAnimationFrame\n timerId = requestAnimationFrame(startAnimation);\n model.element.setAttribute('e-animation-id', timerId.toString());\n }\n }\n catch (e) {\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n if (model.fail) {\n model.fail.call(_this, e);\n }\n }\n };\n startAnimation();\n };\n /**\n * Returns Animation Model\n *\n * @param {AnimationModel} options ?\n * @returns {AnimationModel} ?\n */\n Animation.prototype.getModel = function (options) {\n return {\n name: options.name || this.name,\n delay: options.delay || this.delay,\n duration: (options.duration !== undefined ? options.duration : this.duration),\n begin: options.begin || this.begin,\n end: options.end || this.end,\n fail: options.fail || this.fail,\n progress: options.progress || this.progress,\n timingFunction: this.easing[options.timingFunction] ? this.easing[options.timingFunction] :\n (options.timingFunction || this.easing[this.timingFunction])\n };\n };\n /**\n * @private\n * @param {AnimationModel} newProp ?\n * @param {AnimationModel} oldProp ?\n * @returns {void} ?\n */\n // eslint-disable-next-line\n Animation.prototype.onPropertyChanged = function (newProp, oldProp) {\n // no code needed\n };\n /**\n * Returns module name as animation\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.getModuleName = function () {\n return 'animation';\n };\n /**\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.destroy = function () {\n //Override base destroy;\n };\n var Animation_1;\n __decorate([\n Property('FadeIn')\n ], Animation.prototype, \"name\", void 0);\n __decorate([\n Property(400)\n ], Animation.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], Animation.prototype, \"timingFunction\", void 0);\n __decorate([\n Property(0)\n ], Animation.prototype, \"delay\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"fail\", void 0);\n Animation = Animation_1 = __decorate([\n NotifyPropertyChanges\n ], Animation);\n return Animation;\n}(Base));\nexport { Animation };\n/**\n * Ripple provides material theme's wave effect when an element is clicked\n * ```html\n *
\n * \n * ```\n *\n * @private\n * @param {HTMLElement} element - Target element\n * @param {RippleOptions} rippleOptions - Ripple options .\n * @param {Function} done .\n * @returns {void} .\n */\nexport function rippleEffect(element, rippleOptions, done) {\n var rippleModel = getRippleModel(rippleOptions);\n if (rippleModel.rippleFlag === false || (rippleModel.rippleFlag === undefined && !isRippleEnabled)) {\n return (function () {\n // do nothing.\n });\n }\n element.setAttribute('data-ripple', 'true');\n EventHandler.add(element, 'mousedown', rippleHandler, { parent: element, rippleOptions: rippleModel });\n EventHandler.add(element, 'mouseup', rippleUpHandler, { parent: element, rippleOptions: rippleModel, done: done });\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n if (Browser.isPointer) {\n EventHandler.add(element, 'transitionend', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n }\n return (function () {\n element.removeAttribute('data-ripple');\n EventHandler.remove(element, 'mousedown', rippleHandler);\n EventHandler.remove(element, 'mouseup', rippleUpHandler);\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n EventHandler.remove(element, 'transitionend', rippleLeaveHandler);\n });\n}\n/**\n * Handler for ripple model\n *\n * @param {RippleOptions} rippleOptions ?\n * @returns {RippleOptions} ?\n */\nfunction getRippleModel(rippleOptions) {\n var rippleModel = {\n selector: rippleOptions && rippleOptions.selector ? rippleOptions.selector : null,\n ignore: rippleOptions && rippleOptions.ignore ? rippleOptions.ignore : null,\n rippleFlag: rippleOptions && rippleOptions.rippleFlag,\n isCenterRipple: rippleOptions && rippleOptions.isCenterRipple,\n duration: rippleOptions && rippleOptions.duration ? rippleOptions.duration : 350\n };\n return rippleModel;\n}\n/**\n * Handler for ripple event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleHandler(e) {\n var target = (e.target);\n var selector = this.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (this.rippleOptions && closest(target, this.rippleOptions.ignore))) {\n return;\n }\n var offset = element.getBoundingClientRect();\n var offsetX = e.pageX - document.body.scrollLeft;\n var offsetY = e.pageY - ((!document.body.scrollTop && document.documentElement) ?\n document.documentElement.scrollTop : document.body.scrollTop);\n var pageX = Math.max(Math.abs(offsetX - offset.left), Math.abs(offsetX - offset.right));\n var pageY = Math.max(Math.abs(offsetY - offset.top), Math.abs(offsetY - offset.bottom));\n var radius = Math.sqrt(pageX * pageX + pageY * pageY);\n var diameter = radius * 2 + 'px';\n var x = offsetX - offset.left - radius;\n var y = offsetY - offset.top - radius;\n if (this.rippleOptions && this.rippleOptions.isCenterRipple) {\n x = 0;\n y = 0;\n diameter = '100%';\n }\n element.classList.add('e-ripple');\n var duration = this.rippleOptions.duration.toString();\n var styles = 'width: ' + diameter + ';height: ' + diameter + ';left: ' + x + 'px;top: ' + y + 'px;' +\n 'transition-duration: ' + duration + 'ms;';\n var rippleElement = createElement('div', { className: 'e-ripple-element', styles: styles });\n element.appendChild(rippleElement);\n window.getComputedStyle(rippleElement).getPropertyValue('opacity');\n rippleElement.style.transform = 'scale(1)';\n if (element !== this.parent) {\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: this.parent, rippleOptions: this.rippleOptions });\n }\n}\n/**\n * Handler for ripple element mouse up event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleUpHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for ripple element mouse move event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleLeaveHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for removing ripple element\n *\n * @param {MouseEvent} e ?\n * @param {RippleArgs} eventArgs ?\n * @returns {void} ?\n * @private\n */\nfunction removeRipple(e, eventArgs) {\n var duration = eventArgs.rippleOptions.duration;\n var target = (e.target);\n var selector = eventArgs.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (element && element.className.indexOf('e-ripple') === -1)) {\n return;\n }\n var rippleElements = selectAll('.e-ripple-element', element);\n var rippleElement = rippleElements[rippleElements.length - 1];\n if (rippleElement) {\n rippleElement.style.opacity = '0.5';\n }\n if (eventArgs.parent !== element) {\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n }\n /* tslint:disable:align */\n setTimeout(function () {\n if (rippleElement && rippleElement.parentNode) {\n rippleElement.parentNode.removeChild(rippleElement);\n }\n if (!element.getElementsByClassName('e-ripple-element').length) {\n element.classList.remove('e-ripple');\n }\n if (eventArgs.done) {\n eventArgs.done(e);\n }\n }, duration);\n}\nexport var isRippleEnabled = false;\n/**\n * Animation Module provides support to enable ripple effect functionality to Essential JS 2 components.\n *\n * @param {boolean} isRipple Specifies the boolean value to enable or disable ripple effect.\n * @returns {boolean} ?\n */\nexport function enableRipple(isRipple) {\n isRippleEnabled = isRipple;\n return isRippleEnabled;\n}\n/**\n * Defines the Modes of Global animation.\n *\n * @private\n */\nexport var animationMode = '';\n/**\n * Method for set the Global animation modes for Syncfusion Blazor components.\n *\n * @param {string} value - Specifies the animation mode.\n * @returns {void}\n */\nexport function setGlobalAnimation(value) {\n animationMode = value;\n}\n","/**\n * Module loading operations\n */\nimport { createInstance, setValue, getValue, deleteObject } from './util';\nvar MODULE_SUFFIX = 'Module';\nvar ModuleLoader = /** @class */ (function () {\n function ModuleLoader(parent) {\n this.loadedModules = [];\n this.parent = parent;\n }\n /**\n * Inject required modules in component library\n *\n * @returns {void} ?\n * @param {ModuleDeclaration[]} requiredModules - Array of modules to be required\n * @param {Function[]} moduleList - Array of modules to be injected from sample side\n */\n ModuleLoader.prototype.inject = function (requiredModules, moduleList) {\n var reqLength = requiredModules.length;\n if (reqLength === 0) {\n this.clean();\n return;\n }\n if (this.loadedModules.length) {\n this.clearUnusedModule(requiredModules);\n }\n for (var i = 0; i < reqLength; i++) {\n var modl = requiredModules[parseInt(i.toString(), 10)];\n for (var _i = 0, moduleList_1 = moduleList; _i < moduleList_1.length; _i++) {\n var module = moduleList_1[_i];\n var modName = modl.member;\n if (module && module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {\n var moduleObject = createInstance(module, modl.args);\n var memberName = this.getMemberName(modName);\n if (modl.isProperty) {\n setValue(memberName, module, this.parent);\n }\n else {\n setValue(memberName, moduleObject, this.parent);\n }\n var loadedModule = modl;\n loadedModule.member = memberName;\n this.loadedModules.push(loadedModule);\n }\n }\n }\n };\n /**\n * To remove the created object while destroying the control\n *\n * @returns {void}\n */\n ModuleLoader.prototype.clean = function () {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var modules = _a[_i];\n if (!modules.isProperty) {\n getValue(modules.member, this.parent).destroy();\n }\n }\n this.loadedModules = [];\n };\n /**\n * Removes all unused modules\n *\n * @param {ModuleDeclaration[]} moduleList ?\n * @returns {void} ?\n */\n ModuleLoader.prototype.clearUnusedModule = function (moduleList) {\n var _this = this;\n var usedModules = moduleList.map(function (arg) { return _this.getMemberName(arg.member); });\n var removableModule = this.loadedModules.filter(function (module) {\n return usedModules.indexOf(module.member) === -1;\n });\n for (var _i = 0, removableModule_1 = removableModule; _i < removableModule_1.length; _i++) {\n var mod = removableModule_1[_i];\n if (!mod.isProperty) {\n getValue(mod.member, this.parent).destroy();\n }\n this.loadedModules.splice(this.loadedModules.indexOf(mod), 1);\n deleteObject(this.parent, mod.member);\n }\n };\n /**\n * To get the name of the member.\n *\n * @param {string} name ?\n * @returns {string} ?\n */\n ModuleLoader.prototype.getMemberName = function (name) {\n return name[0].toLowerCase() + name.substring(1) + MODULE_SUFFIX;\n };\n /**\n * Returns boolean based on whether the module specified is loaded or not\n *\n * @param {string} modName ?\n * @returns {boolean} ?\n */\n ModuleLoader.prototype.isModuleLoaded = function (modName) {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var mod = _a[_i];\n if (mod.member === this.getMemberName(modName)) {\n return true;\n }\n }\n return false;\n };\n return ModuleLoader;\n}());\nexport { ModuleLoader };\n","import { getValue, setValue, merge, isBlazor } from './util';\nimport { Base } from './base';\n/**\n * To detect the changes for inner properties.\n *\n * @private\n */\nvar ChildProperty = /** @class */ (function () {\n function ChildProperty(parent, propName, defaultValue, isArray) {\n this.isComplexArraySetter = false;\n this.properties = {};\n this.changedProperties = {};\n this.childChangedProperties = {};\n this.oldProperties = {};\n // eslint-disable-next-line\n this.finalUpdate = function () { };\n this.callChildDataBind = getValue('callChildDataBind', Base);\n this.parentObj = parent;\n this.controlParent = this.parentObj.controlParent || this.parentObj;\n this.propName = propName;\n this.isParentArray = isArray;\n this.setProperties(defaultValue, true);\n }\n /**\n * Updates the property changes\n *\n * @param {boolean} val ?\n * @param {string} propName ?\n * @returns {void} ?\n */\n ChildProperty.prototype.updateChange = function (val, propName) {\n if (val === true) {\n this.parentObj.childChangedProperties[\"\" + propName] = val;\n }\n else {\n delete this.parentObj.childChangedProperties[\"\" + propName];\n }\n if (this.parentObj.updateChange) {\n this.parentObj.updateChange(val, this.parentObj.propName);\n }\n };\n /**\n * Updates time out duration\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.updateTimeOut = function () {\n if (this.parentObj.updateTimeOut) {\n this.parentObj.finalUpdate();\n this.parentObj.updateTimeOut();\n }\n else {\n var changeTime_1 = setTimeout(this.parentObj.dataBind.bind(this.parentObj));\n var clearUpdate = function () {\n clearTimeout(changeTime_1);\n };\n this.finalUpdate = clearUpdate;\n }\n };\n /**\n * Clears changed properties\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.clearChanges = function () {\n this.finalUpdate();\n this.updateChange(false, this.propName);\n this.oldProperties = {};\n this.changedProperties = {};\n };\n /**\n * Set property changes\n *\n * @param {Object} prop ?\n * @param {boolean} muteOnChange ?\n * @returns {void} ?\n */\n ChildProperty.prototype.setProperties = function (prop, muteOnChange) {\n if (muteOnChange === true) {\n merge(this, prop);\n this.updateChange(false, this.propName);\n this.clearChanges();\n }\n else {\n merge(this, prop);\n }\n };\n /**\n * Binds data\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.dataBind = function () {\n this.callChildDataBind(this.childChangedProperties, this);\n if (this.isParentArray) {\n var curIndex = this.parentObj[this.propName].indexOf(this);\n if (Object.keys(this.changedProperties).length) {\n setValue(this.propName + '.' + curIndex, this.changedProperties, this.parentObj.changedProperties);\n setValue(this.propName + '.' + curIndex, this.oldProperties, this.parentObj.oldProperties);\n }\n }\n else {\n this.parentObj.changedProperties[this.propName] = this.changedProperties;\n this.parentObj.oldProperties[this.propName] = this.oldProperties;\n }\n this.clearChanges();\n };\n /**\n * Saves changes to newer values\n *\n * @param {string} key ?\n * @param {Object} newValue ?\n * @param {Object} oldValue ?\n * @param {boolean} restrictServerDataBind ?\n * @returns {void} ?\n */\n ChildProperty.prototype.saveChanges = function (key, newValue, oldValue, restrictServerDataBind) {\n if (this.controlParent.isProtectedOnChange) {\n return;\n }\n if (!restrictServerDataBind) {\n this.serverDataBind(key, newValue, true);\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.updateChange(true, this.propName);\n this.finalUpdate();\n this.updateTimeOut();\n };\n ChildProperty.prototype.serverDataBind = function (key, value, isSaveChanges, action) {\n if (isBlazor() && !this.parentObj.isComplexArraySetter) {\n var parent_1;\n var newChanges = {};\n var parentKey = isSaveChanges ? this.getParentKey(true) + '.' + key : key;\n /* istanbul ignore else */\n if (parentKey.indexOf('.') !== -1) {\n var complexKeys = parentKey.split('.');\n parent_1 = newChanges;\n for (var i = 0; i < complexKeys.length; i++) {\n var isFinal = i === complexKeys.length - 1;\n parent_1[complexKeys[parseInt(i.toString(), 10)]] = isFinal ? value : {};\n parent_1 = isFinal ? parent_1 : parent_1[complexKeys[parseInt(i.toString(), 10)]];\n }\n }\n else {\n newChanges[\"\" + parentKey] = {};\n parent_1 = newChanges[\"\" + parentKey];\n newChanges[\"\" + parentKey][\"\" + key] = value;\n }\n /* istanbul ignore next */\n if (this.isParentArray) {\n var actionProperty = 'ejsAction';\n parent_1[\"\" + actionProperty] = action ? action : 'none';\n }\n this.controlParent.serverDataBind(newChanges);\n }\n };\n ChildProperty.prototype.getParentKey = function (isSaveChanges) {\n // eslint-disable-next-line\n var index = '';\n var propName = this.propName;\n /* istanbul ignore next */\n if (this.isParentArray) {\n index = this.parentObj[this.propName].indexOf(this);\n var valueLength = this.parentObj[this.propName].length;\n valueLength = isSaveChanges ? valueLength : (valueLength > 0 ? valueLength - 1 : 0);\n index = index !== -1 ? '-' + index : '-' + valueLength;\n propName = propName + index;\n }\n if (this.controlParent !== this.parentObj) {\n propName = this.parentObj.getParentKey() + '.' + this.propName + index;\n }\n return propName;\n };\n return ChildProperty;\n}());\nexport { ChildProperty };\n","import { createElement } from './dom';\nimport { getValue, containerObject, setValue, isNullOrUndefined } from './util';\nexport var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'inplaceeditor', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'slider', 'smithchart', 'barcode', 'sparkline', 'treemap', 'bulletChart', 'kanban', 'daterangepicker', 'schedule', 'gantt', 'signature', 'query-builder', 'drop-down-tree', 'carousel', 'filemanager', 'uploader', 'accordion', 'tab', 'treeview'];\nvar bypassKey = [115, 121, 110, 99, 102, 117, 115, 105,\n 111, 110, 46, 105, 115, 76, 105, 99, 86, 97, 108,\n 105, 100, 97, 116, 101, 100];\nvar accountURL;\n/**\n * License validation module\n *\n * @private\n */\nvar LicenseValidator = /** @class */ (function () {\n function LicenseValidator(key) {\n this.isValidated = false;\n this.isLicensed = true;\n this.version = '22';\n this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats|essentialstudio/i;\n this.errors = {\n noLicense: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n trailExpired: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n versionMismatched: 'The included Syncfusion license key is invalid.',\n platformMismatched: 'The included Syncfusion license key is invalid.',\n invalidKey: 'The included Syncfusion license key is invalid.'\n };\n /**\n * To manage licensing operation.\n */\n this.manager = (function () {\n var licKey = null;\n /**\n * Sets the license key.\n *\n * @param {string} key - Specifies the license key.\n * @returns {void}\n */\n function set(key) { licKey = key; }\n /**\n * Gets the license key.\n *\n * @returns {string} -Gets the license key.\n */\n function get() { return licKey; }\n return {\n setKey: set,\n getKey: get\n };\n })();\n /**\n * To manage npx licensing operation.\n */\n this.npxManager = (function () {\n var npxLicKey = 'npxKeyReplacetMLCtL3DuLC7wsPEs7i+ioGBfYF9h4qAgX6CgH6IiIiIb4CAiYSIiYSIb5+cik8=';\n /**\n * Gets the license key.\n *\n * @returns {string} - Gets the license key.\n */\n function get() { return npxLicKey; }\n return {\n getKey: get\n };\n })();\n this.manager.setKey(key);\n }\n /**\n * To validate the provided license key.\n */\n LicenseValidator.prototype.validate = function () {\n var contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116];\n var URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76];\n if (!this.isValidated && (containerObject && !getValue(convertToChar(bypassKey), containerObject) && !getValue('Blazor', containerObject))) {\n var validateMsg = void 0;\n var validateURL = void 0;\n if ((this.manager && this.manager.getKey()) || (this.npxManager && this.npxManager.getKey() !== 'npxKeyReplace')) {\n var result = this.getInfoFromKey();\n if (result && result.length) {\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var res = result_1[_i];\n if (!this.platform.test(res.platform) || res.invalidPlatform) {\n validateMsg = this.errors.platformMismatched;\n }\n else if (res.version.indexOf(this.version) === -1) {\n validateMsg = this.errors.versionMismatched;\n validateMsg = validateMsg.replace('##LicenseVersion', res.version);\n validateMsg = validateMsg.replace('##Requireversion', this.version + '.x');\n }\n else if (res.expiryDate) {\n var expDate = new Date(res.expiryDate);\n var currDate = new Date();\n if (expDate !== currDate && expDate < currDate) {\n validateMsg = this.errors.trailExpired;\n }\n else {\n break;\n }\n }\n }\n }\n else {\n validateMsg = this.errors.invalidKey;\n }\n }\n else {\n var licenseContent = getValue(convertToChar(contentKey), containerObject);\n validateURL = getValue(convertToChar(URLKey), containerObject);\n if (licenseContent && licenseContent !== '') {\n validateMsg = licenseContent;\n }\n else {\n validateMsg = this.errors.noLicense;\n }\n }\n if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n accountURL = (validateURL && validateURL !== '') ? validateURL : \"https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjI=&utm_source=license&utm_medium=listing&utm_campaign=license-information\";\n var errorDiv = createElement('div', {\n innerHTML: \"\" + validateMsg + ' ' + '
Claim your free account'\n });\n errorDiv.setAttribute('style', \"position: fixed;\\n top: 10px;\\n left: 10px;\\n right: 10px;\\n font-size: 14px;\\n background: #EEF2FF;\\n color: #222222;\\n z-index: 999999999;\\n text-align: left;\\n border: 1px solid #EEEEEE;\\n padding: 10px 11px 10px 50px;\\n border-radius: 8px;\\n font-family: Helvetica Neue, Helvetica, Arial;\");\n document.body.appendChild(errorDiv);\n this.isLicensed = false;\n }\n this.isValidated = true;\n setValue(convertToChar(bypassKey), this.isValidated, containerObject);\n }\n return this.isLicensed;\n };\n LicenseValidator.prototype.getDecryptedData = function (key) {\n try {\n return atob(key);\n }\n catch (error) {\n return '';\n }\n };\n /**\n * Get license information from key.\n *\n * @returns {IValidator} - Get license information from key.\n */\n LicenseValidator.prototype.getInfoFromKey = function () {\n try {\n var licKey = '';\n var pkey = [5439488, 7929856, 5111808, 6488064, 4587520, 7667712, 5439488,\n 6881280, 5177344, 7208960, 4194304, 4456448, 6619136, 7733248, 5242880, 7077888,\n 6356992, 7602176, 4587520, 7274496, 7471104, 7143424];\n var decryptedStr = [];\n var resultArray = [];\n var invalidPlatform = false;\n var isNpxKey = false;\n if (this.manager.getKey()) {\n licKey = this.manager.getKey();\n }\n else {\n isNpxKey = true;\n licKey = this.npxManager.getKey().split('npxKeyReplace')[1];\n }\n var licKeySplit = licKey.split(';');\n for (var _i = 0, licKeySplit_1 = licKeySplit; _i < licKeySplit_1.length; _i++) {\n var lKey = licKeySplit_1[_i];\n var decodeStr = this.getDecryptedData(lKey);\n if (!decodeStr) {\n continue;\n }\n var k = 0;\n var buffr = '';\n if (!isNpxKey) {\n for (var i = 0; i < decodeStr.length; i++, k++) {\n if (k === pkey.length) {\n k = 0;\n }\n var c = decodeStr.charCodeAt(i);\n buffr += String.fromCharCode(c ^ (pkey[parseInt(k.toString(), 10)] >> 16));\n }\n }\n else {\n var charKey = decodeStr[decodeStr.length - 1];\n var decryptedKey = [];\n for (var i = 0; i < decodeStr.length; i++) {\n decryptedKey[parseInt(i.toString(), 10)] = decodeStr[parseInt(i.toString(), 10)].charCodeAt(0) - charKey.charCodeAt(0);\n }\n for (var i = 0; i < decryptedKey.length; i++) {\n buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]);\n }\n }\n if (this.platform.test(buffr)) {\n decryptedStr = buffr.split(';');\n invalidPlatform = false;\n // checked the length to verify the key in proper strucutre\n if (decryptedStr.length > 3) {\n resultArray.push({ platform: decryptedStr[0],\n version: decryptedStr[1],\n expiryDate: decryptedStr[2] });\n }\n }\n else if (buffr && buffr.split(';').length > 3) {\n invalidPlatform = true;\n }\n }\n if (invalidPlatform && !resultArray.length) {\n return [{ invalidPlatform: invalidPlatform }];\n }\n else {\n return resultArray.length ? resultArray : null;\n }\n }\n catch (error) {\n return null;\n }\n };\n return LicenseValidator;\n}());\nvar licenseValidator = new LicenseValidator();\n/**\n * Converts the given number to characters.\n *\n * @param {number} cArr - Specifies the license key as number.\n * @returns {string}\n */\nfunction convertToChar(cArr) {\n var ret = '';\n for (var _i = 0, cArr_1 = cArr; _i < cArr_1.length; _i++) {\n var arr = cArr_1[_i];\n ret += String.fromCharCode(arr);\n }\n return ret;\n}\n/**\n * To set license key.\n *\n * @param {string} key - license key\n * @returns {void}\n */\nexport function registerLicense(key) {\n licenseValidator = new LicenseValidator(key);\n}\nexport var validateLicense = function (key) {\n if (key) {\n registerLicense(key);\n }\n return licenseValidator.validate();\n};\nexport var getVersion = function () {\n return licenseValidator.version;\n};\n// Method for create overlay over the sample\nexport var createLicenseOverlay = function () {\n var bannerTemplate = \"\\n
\\n
\\n
\\n \\n
\\n
Claim your FREE account and get a key in less than a minute
\\n
    \\n
  • Access to a 30-day free trial of any of our products.
  • \\n
  • Access to 24x5 support by developers via the support tickets, forum, feature & feedback page and chat.
  • \\n
  • 200+ ebooks on the latest technologies, industry trends, and research topics.\\n
  • \\n
  • Largest collection of over 7,000 flat and wireframe icons for free with Syncfusion Metro Studio.
  • \\n
  • Free and unlimited access to Syncfusion technical blogs and whitepapers.
  • \\n
\\n
Syncfusion is trusted by 29,000+ businesses worldwide
\\n \\n Claim your FREE account\\n
have a Syncfusion account? Sign In
\\n
\\n
\";\n if (typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n var errorBackground = createElement('div', {\n innerHTML: bannerTemplate\n });\n document.body.appendChild(errorBackground);\n }\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { isUndefined, getValue, isNullOrUndefined, setValue, uniqueID, isBlazor } from './util';\nimport { ModuleLoader } from './module-loader';\nimport { Base } from './base';\nimport { Observer } from './observer';\nimport { ChildProperty } from './child-property';\nimport { Property, NotifyPropertyChanges } from './notify-property-change';\nimport { onIntlChange, rightToLeft, defaultCulture } from './internationalization';\nimport { createElement, addClass, removeClass, select } from './dom';\nimport { validateLicense, createLicenseOverlay, componentList } from './validate-lic';\nvar componentCount = 0;\nvar lastPageID;\nvar lastHistoryLen = 0;\n// Decalre the static variable to count the instance\nvar instancecount = 0;\n// Decalre the static variable to find if control limit exceed or not\nvar isvalid = true;\n// We have added styles to inline type so here declare the static variable to detect if banner is added or not\nvar isBannerAdded = false;\nexport var versionBasedStatePersistence = false;\n/**\n * To enable or disable version based statePersistence functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable versionBasedStatePersistence option.\n * @returns {void}\n */\nexport function enableVersionBasedPersistence(status) {\n versionBasedStatePersistence = status;\n}\n/**\n * Base class for all Essential JavaScript components\n */\nvar Component = /** @class */ (function (_super) {\n __extends(Component, _super);\n /**\n * Initialize the constructor for component base\n *\n * @param {Object} options ?\n * @param {string} selector ?\n */\n function Component(options, selector) {\n var _this = _super.call(this, options, selector) || this;\n _this.randomId = uniqueID();\n /**\n * string template option for Blazor template rendering\n *\n * @private\n */\n _this.isStringTemplate = false;\n _this.needsID = false;\n _this.isReactHybrid = false;\n if (isNullOrUndefined(_this.enableRtl)) {\n _this.setProperties({ 'enableRtl': rightToLeft }, true);\n }\n if (isNullOrUndefined(_this.locale)) {\n _this.setProperties({ 'locale': defaultCulture }, true);\n }\n _this.moduleLoader = new ModuleLoader(_this);\n _this.localObserver = new Observer(_this);\n // tslint:disable-next-line:no-function-constructor-with-string-args\n onIntlChange.on('notifyExternalChange', _this.detectFunction, _this, _this.randomId);\n // Based on the considered control list we have count the instance\n if (typeof window !== \"undefined\" && typeof document !== \"undefined\" && !validateLicense()) {\n if (componentList.indexOf(_this.getModuleName()) !== -1) {\n instancecount = instancecount + 1;\n if (instancecount > 5) {\n isvalid = false;\n }\n }\n }\n if (!isUndefined(selector)) {\n _this.appendTo();\n }\n return _this;\n }\n Component.prototype.requiredModules = function () {\n return [];\n };\n /**\n * Destroys the sub modules while destroying the widget\n *\n * @returns {void} ?\n */\n Component.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n if (this.enablePersistence) {\n this.setPersistData();\n }\n this.localObserver.destroy();\n if (this.refreshing) {\n return;\n }\n removeClass([this.element], ['e-control']);\n this.trigger('destroyed', { cancel: false });\n _super.prototype.destroy.call(this);\n this.moduleLoader.clean();\n onIntlChange.off('notifyExternalChange', this.detectFunction, this.randomId);\n };\n /**\n * Applies all the pending property changes and render the component again.\n *\n * @returns {void} ?\n */\n Component.prototype.refresh = function () {\n this.refreshing = true;\n this.moduleLoader.clean();\n this.destroy();\n this.clearChanges();\n this.localObserver = new Observer(this);\n this.preRender();\n this.injectModules();\n this.render();\n this.refreshing = false;\n };\n Component.prototype.accessMount = function () {\n if (this.mount && !this.isReactHybrid) {\n this.mount();\n }\n };\n /**\n * Returns the route element of the component\n *\n * @returns {HTMLElement} ?\n */\n Component.prototype.getRootElement = function () {\n if (this.isReactHybrid) {\n // eslint-disable-next-line\n return this.actualElement;\n }\n else {\n return this.element;\n }\n };\n /**\n * Returns the persistence data for component\n *\n * @returns {any} ?\n */\n // eslint-disable-next-line\n Component.prototype.getLocalData = function () {\n var eleId = this.getModuleName() + this.element.id;\n if (versionBasedStatePersistence) {\n return window.localStorage.getItem(eleId + this.ej2StatePersistenceVersion);\n }\n else {\n return window.localStorage.getItem(eleId);\n }\n };\n /**\n * Appends the control within the given HTML element\n *\n * @param {string | HTMLElement} selector - Target element where control needs to be appended\n * @returns {void} ?\n */\n Component.prototype.appendTo = function (selector) {\n if (!isNullOrUndefined(selector) && typeof (selector) === 'string') {\n this.element = select(selector, document);\n }\n else if (!isNullOrUndefined(selector)) {\n this.element = selector;\n }\n if (!isNullOrUndefined(this.element)) {\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-control', moduleClass]);\n this.isProtectedOnChange = false;\n if (this.needsID && !this.element.id) {\n this.element.id = this.getUniqueID(this.getModuleName());\n }\n if (this.enablePersistence) {\n this.mergePersistData();\n window.addEventListener('unload', this.setPersistData.bind(this));\n }\n var inst = getValue('ej2_instances', this.element);\n if (!inst || inst.indexOf(this) === -1) {\n _super.prototype.addInstance.call(this);\n }\n this.preRender();\n this.injectModules();\n // Checked weather cases are valid or not. If control leads to more than five counts \n if (!isvalid && !isBannerAdded) {\n createLicenseOverlay();\n isBannerAdded = true;\n }\n this.render();\n if (!this.mount) {\n this.trigger('created');\n }\n else {\n this.accessMount();\n }\n }\n };\n /**\n * It is used to process the post rendering functionalities to a component.\n *\n * @param {Node} wrapperElement ?\n * @returns {void} ?\n */\n Component.prototype.renderComplete = function (wrapperElement) {\n if (isBlazor()) {\n var sfBlazor = 'sfBlazor';\n // eslint-disable-next-line\n window[sfBlazor].renderComplete(this.element, wrapperElement);\n }\n this.isRendered = true;\n };\n /**\n * When invoked, applies the pending property changes immediately to the component.\n *\n * @returns {void} ?\n */\n Component.prototype.dataBind = function () {\n this.injectModules();\n _super.prototype.dataBind.call(this);\n };\n /**\n * Attach one or more event handler to the current component context.\n * It is used for internal handling event internally within the component only.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the handler to run when the event occurs\n * @param {Object} context - optional parameter Specifies the context to be bind in the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.on = function (event, handler, context) {\n if (typeof event === 'string') {\n this.localObserver.on(event, handler, context);\n }\n else {\n for (var _i = 0, event_1 = event; _i < event_1.length; _i++) {\n var arg = event_1[_i];\n this.localObserver.on(arg.event, arg.handler, arg.context);\n }\n }\n };\n /**\n * To remove one or more event handler that has been attached with the on() method.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the function to run when the event occurs\n * @returns {void} ?\n * @private\n */\n Component.prototype.off = function (event, handler) {\n if (typeof event === 'string') {\n this.localObserver.off(event, handler);\n }\n else {\n for (var _i = 0, event_2 = event; _i < event_2.length; _i++) {\n var arg = event_2[_i];\n this.localObserver.off(arg.event, arg.handler);\n }\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.notify = function (property, argument) {\n if (this.isDestroyed !== true) {\n this.localObserver.notify(property, argument);\n }\n };\n /**\n * Get injected modules\n *\n * @returns {Function} ?\n * @private\n */\n Component.prototype.getInjectedModules = function () {\n return this.injectedModules;\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @param {Function} moduleList ?\n * @returns {void} ?\n */\n Component.Inject = function () {\n var moduleList = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n moduleList[_i] = arguments[_i];\n }\n if (!this.prototype.injectedModules) {\n this.prototype.injectedModules = [];\n }\n for (var i = 0; i < moduleList.length; i++) {\n if (this.prototype.injectedModules.indexOf(moduleList[parseInt(i.toString(), 10)]) === -1) {\n this.prototype.injectedModules.push(moduleList[parseInt(i.toString(), 10)]);\n }\n }\n };\n /**\n * This is a instance method to create an element.\n *\n * @param {string} tagName ?\n * @param {ElementProperties} prop ?\n * @param {boolean} isVDOM ?\n * @returns {any} ?\n * @private\n */\n // eslint-disable-next-line\n Component.prototype.createElement = function (tagName, prop, isVDOM) {\n return createElement(tagName, prop);\n };\n /**\n *\n * @param {Function} handler - handler to be triggered after state Updated.\n * @param {any} argument - Arguments to be passed to caller.\n * @returns {void} .\n * @private\n */\n // eslint-disable-next-line\n Component.prototype.triggerStateChange = function (handler, argument) {\n if (this.isReactHybrid) {\n // eslint-disable-next-line\n this.setState();\n this.currentContext = { calls: handler, args: argument };\n }\n };\n // tslint: enable: no-any\n Component.prototype.injectModules = function () {\n if (this.injectedModules && this.injectedModules.length) {\n this.moduleLoader.inject(this.requiredModules(), this.injectedModules);\n }\n };\n Component.prototype.detectFunction = function (args) {\n var prop = Object.keys(args);\n if (prop.length) {\n this[prop[0]] = args[prop[0]];\n }\n };\n Component.prototype.mergePersistData = function () {\n var data;\n if (versionBasedStatePersistence) {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id + this.ej2StatePersistenceVersion);\n }\n else {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n }\n if (!(isNullOrUndefined(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n };\n Component.prototype.setPersistData = function () {\n if (!this.isDestroyed) {\n if (versionBasedStatePersistence) {\n window.localStorage.setItem(this.getModuleName() +\n this.element.id + this.ej2StatePersistenceVersion, this.getPersistData());\n }\n else {\n window.localStorage.setItem(this.getModuleName() + this.element.id, this.getPersistData());\n }\n }\n };\n // eslint-disable-next-line\n Component.prototype.renderReactTemplates = function (callback) {\n if (!isNullOrUndefined(callback)) {\n callback();\n }\n };\n // eslint-disable-next-line\n Component.prototype.clearTemplate = function (templateName, index) {\n //No Code\n };\n Component.prototype.getUniqueID = function (definedName) {\n if (this.isHistoryChanged()) {\n componentCount = 0;\n }\n lastPageID = this.pageID(location.href);\n lastHistoryLen = history.length;\n return definedName + '_' + lastPageID + '_' + componentCount++;\n };\n Component.prototype.pageID = function (url) {\n var hash = 0;\n if (url.length === 0) {\n return hash;\n }\n for (var i = 0; i < url.length; i++) {\n var char = url.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return Math.abs(hash);\n };\n Component.prototype.isHistoryChanged = function () {\n return lastPageID !== this.pageID(location.href) || lastHistoryLen !== history.length;\n };\n Component.prototype.addOnPersist = function (options) {\n var _this = this;\n var persistObj = {};\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\n var key = options_1[_i];\n var objValue = void 0;\n // eslint-disable-next-line\n objValue = getValue(key, this);\n if (!isUndefined(objValue)) {\n setValue(key, this.getActualProperties(objValue), persistObj);\n }\n }\n return JSON.stringify(persistObj, function (key, value) {\n return _this.getActualProperties(value);\n });\n };\n Component.prototype.getActualProperties = function (obj) {\n if (obj instanceof ChildProperty) {\n return getValue('properties', obj);\n }\n else {\n return obj;\n }\n };\n Component.prototype.ignoreOnPersist = function (options) {\n return JSON.stringify(this.iterateJsonProperties(this.properties, options));\n };\n Component.prototype.iterateJsonProperties = function (obj, ignoreList) {\n var newObj = {};\n var _loop_1 = function (key) {\n if (ignoreList.indexOf(key) === -1) {\n // eslint-disable-next-line\n var value = obj[key];\n if (typeof value === 'object' && !(value instanceof Array)) {\n var newList = ignoreList.filter(function (str) {\n var regExp = RegExp;\n return new regExp(key + '.').test(str);\n }).map(function (str) {\n return str.replace(key + '.', '');\n });\n newObj[\"\" + key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);\n }\n else {\n newObj[\"\" + key] = value;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n _loop_1(key);\n }\n return newObj;\n };\n __decorate([\n Property(false)\n ], Component.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"enableRtl\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"locale\", void 0);\n Component = __decorate([\n NotifyPropertyChanges\n ], Component);\n return Component;\n}(Base));\nexport { Component };\n//Function handling for page navigation detection\n/* istanbul ignore next */\n(function () {\n if (typeof window !== 'undefined') {\n window.addEventListener('popstate', \n /* istanbul ignore next */\n function () {\n componentCount = 0;\n });\n }\n})();\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible } from './dom';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { ChildProperty } from './child-property';\nimport { select, closest, setStyleAttribute, addClass, createElement } from './dom';\nimport { extend, isUndefined, isNullOrUndefined, compareElementParent, isBlazor } from './util';\nvar defaultPosition = { left: 0, top: 0, bottom: 0, right: 0 };\nvar positionProp = ['offsetLeft', 'offsetTop'];\nvar axisMapper = ['x', 'y'];\nvar axisValueMapper = ['left', 'top'];\nvar isDraggedObject = { isDragged: false };\n/**\n * Specifies the position coordinates\n */\nvar Position = /** @class */ (function (_super) {\n __extends(Position, _super);\n function Position() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Position.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], Position.prototype, \"top\", void 0);\n return Position;\n}(ChildProperty));\nexport { Position };\n/**\n * Draggable Module provides support to enable draggable functionality in Dom Elements.\n * ```html\n *
Draggable
\n * \n * ```\n */\nvar Draggable = /** @class */ (function (_super) {\n __extends(Draggable, _super);\n function Draggable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.dragLimit = Draggable_1.getDefaultPosition();\n _this.borderWidth = Draggable_1.getDefaultPosition();\n _this.padding = Draggable_1.getDefaultPosition();\n _this.diffX = 0;\n _this.prevLeft = 0;\n _this.prevTop = 0;\n _this.dragProcessStarted = false;\n _this.eleTop = 0;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n _this.tapHoldTimer = 0;\n _this.externalInitialize = false;\n _this.diffY = 0;\n _this.parentScrollX = 0;\n _this.parentScrollY = 0;\n _this.droppables = {};\n _this.bind();\n return _this;\n }\n Draggable_1 = Draggable;\n Draggable.prototype.bind = function () {\n this.toggleEvents();\n if (Browser.isIE) {\n addClass([this.element], 'e-block-touch');\n }\n this.droppables[this.scope] = {};\n };\n Draggable.getDefaultPosition = function () {\n return extend({}, defaultPosition);\n };\n Draggable.prototype.toggleEvents = function (isUnWire) {\n var ele;\n if (!isUndefined(this.handle)) {\n ele = select(this.handle, this.element);\n }\n var handler = (this.enableTapHold && Browser.isDevice && Browser.isTouch) ? this.mobileInitialize : this.initialize;\n if (isUnWire) {\n EventHandler.remove(ele || this.element, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler);\n }\n else {\n EventHandler.add(ele || this.element, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler, this);\n }\n };\n /* istanbul ignore next */\n Draggable.prototype.mobileInitialize = function (evt) {\n var _this = this;\n var target = evt.currentTarget;\n this.tapHoldTimer = setTimeout(function () {\n _this.externalInitialize = true;\n _this.removeTapholdTimer();\n _this.initialize(evt, target);\n }, this.tapHoldThreshold);\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer, this);\n };\n /* istanbul ignore next */\n Draggable.prototype.removeTapholdTimer = function () {\n clearTimeout(this.tapHoldTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer);\n };\n /* istanbul ignore next */\n Draggable.prototype.getScrollableParent = function (element, axis) {\n var scroll = { 'vertical': 'scrollHeight', 'horizontal': 'scrollWidth' };\n var client = { 'vertical': 'clientHeight', 'horizontal': 'clientWidth' };\n if (isNullOrUndefined(element)) {\n return null;\n }\n if (element[scroll[\"\" + axis]] > element[client[\"\" + axis]]) {\n if (axis === 'vertical' ? element.scrollTop > 0 : element.scrollLeft > 0) {\n if (axis === 'vertical') {\n this.parentScrollY = this.parentScrollY +\n (this.parentScrollY === 0 ? element.scrollTop : element.scrollTop - this.parentScrollY);\n this.tempScrollHeight = element.scrollHeight;\n }\n else {\n this.parentScrollX = this.parentScrollX +\n (this.parentScrollX === 0 ? element.scrollLeft : element.scrollLeft - this.parentScrollX);\n this.tempScrollWidth = element.scrollWidth;\n }\n if (!isNullOrUndefined(element)) {\n return this.getScrollableParent(element.parentNode, axis);\n }\n else {\n return element;\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n };\n Draggable.prototype.getScrollableValues = function () {\n this.parentScrollX = 0;\n this.parentScrollY = 0;\n var isModalDialog = this.element.classList.contains('e-dialog') && this.element.classList.contains('e-dlg-modal');\n var verticalScrollParent = this.getScrollableParent(this.element.parentNode, 'vertical');\n var horizontalScrollParent = this.getScrollableParent(this.element.parentNode, 'horizontal');\n };\n Draggable.prototype.initialize = function (evt, curTarget) {\n this.currentStateTarget = evt.target;\n if (this.isDragStarted()) {\n return;\n }\n else {\n this.isDragStarted(true);\n this.externalInitialize = false;\n }\n this.target = (evt.currentTarget || curTarget);\n this.dragProcessStarted = false;\n if (this.abort) {\n /* tslint:disable no-any */\n var abortSelectors = this.abort;\n if (typeof abortSelectors === 'string') {\n abortSelectors = [abortSelectors];\n }\n for (var i = 0; i < abortSelectors.length; i++) {\n if (!isNullOrUndefined(closest(evt.target, abortSelectors[parseInt(i.toString(), 10)]))) {\n /* istanbul ignore next */\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n return;\n }\n }\n }\n if (this.preventDefault && !isUndefined(evt.changedTouches) && evt.type !== 'touchstart') {\n evt.preventDefault();\n }\n this.element.setAttribute('aria-grabbed', 'true');\n var intCoord = this.getCoordinates(evt);\n this.initialPosition = { x: intCoord.pageX, y: intCoord.pageY };\n if (!this.clone) {\n var pos = this.element.getBoundingClientRect();\n this.getScrollableValues();\n if (evt.clientX === evt.pageX) {\n this.parentScrollX = 0;\n }\n if (evt.clientY === evt.pageY) {\n this.parentScrollY = 0;\n }\n this.relativeXPosition = intCoord.pageX - (pos.left + this.parentScrollX);\n this.relativeYPosition = intCoord.pageY - (pos.top + this.parentScrollY);\n }\n if (this.externalInitialize) {\n this.intDragStart(evt);\n }\n else {\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy, this);\n }\n this.toggleEvents(true);\n if (evt.type !== 'touchstart' && this.isPreventSelect) {\n document.body.classList.add('e-prevent-select');\n }\n this.externalInitialize = false;\n EventHandler.trigger(document.documentElement, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, evt);\n };\n Draggable.prototype.intDragStart = function (evt) {\n this.removeTapholdTimer();\n var isChangeTouch = !isUndefined(evt.changedTouches);\n if (isChangeTouch && (evt.changedTouches.length !== 1)) {\n return;\n }\n var intCordinate = this.getCoordinates(evt);\n var pos;\n var styleProp = getComputedStyle(this.element);\n this.margin = {\n left: parseInt(styleProp.marginLeft, 10),\n top: parseInt(styleProp.marginTop, 10),\n right: parseInt(styleProp.marginRight, 10),\n bottom: parseInt(styleProp.marginBottom, 10)\n };\n var element = this.element;\n if (this.clone && this.dragTarget) {\n var intClosest = closest(evt.target, this.dragTarget);\n if (!isNullOrUndefined(intClosest)) {\n element = intClosest;\n }\n }\n /* istanbul ignore next */\n if (this.isReplaceDragEle) {\n element = this.currentStateCheck(evt.target, element);\n }\n this.offset = this.calculateParentPosition(element);\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var x = this.initialPosition.x - intCordinate.pageX;\n var y = this.initialPosition.y - intCordinate.pageY;\n var distance = Math.sqrt((x * x) + (y * y));\n if ((distance >= this.distance || this.externalInitialize)) {\n var ele = this.getHelperElement(evt);\n if (!ele || isNullOrUndefined(ele)) {\n return;\n }\n if (isChangeTouch) {\n evt.preventDefault();\n }\n var dragTargetElement = this.helperElement = ele;\n this.parentClientRect = this.calculateParentPosition(dragTargetElement.offsetParent);\n if (this.dragStart) {\n var curTarget = this.getProperTargetElement(evt);\n var args = {\n event: evt,\n element: element,\n target: curTarget,\n bindEvents: isBlazor() ? this.bindDragEvents.bind(this) : null,\n dragElement: dragTargetElement\n };\n this.trigger('dragStart', args);\n }\n if (this.dragArea) {\n this.setDragArea();\n }\n else {\n this.dragLimit = { left: 0, right: 0, bottom: 0, top: 0 };\n this.borderWidth = { top: 0, left: 0 };\n }\n pos = { left: this.position.left - this.parentClientRect.left, top: this.position.top - this.parentClientRect.top };\n if (this.clone && !this.enableTailMode) {\n this.diffX = this.position.left - this.offset.left;\n this.diffY = this.position.top - this.offset.top;\n }\n this.getScrollableValues();\n // when drag element has margin-top\n var styles = getComputedStyle(element);\n var marginTop = parseFloat(styles.marginTop);\n /* istanbul ignore next */\n if (this.clone && marginTop !== 0) {\n pos.top += marginTop;\n }\n this.eleTop = !isNaN(parseFloat(styles.top)) ? parseFloat(styles.top) - this.offset.top : 0;\n /* istanbul ignore next */\n // if (this.eleTop > 0) {\n // pos.top += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n pos.top -= this.parentScrollY;\n pos.left -= this.parentScrollX;\n }\n var posValue = this.getProcessedPositionValue({\n top: (pos.top - this.diffY) + 'px',\n left: (pos.left - this.diffX) + 'px'\n });\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n pos.top += this.dragArea.scrollTop;\n }\n this.dragElePosition = { top: pos.top, left: pos.left };\n setStyleAttribute(dragTargetElement, this.getDragPosition({ position: 'absolute', left: posValue.left, top: posValue.top }));\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n if (!isBlazor()) {\n this.bindDragEvents(dragTargetElement);\n }\n }\n };\n Draggable.prototype.bindDragEvents = function (dragTargetElement) {\n if (isVisible(dragTargetElement)) {\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop, this);\n this.setGlobalDroppables(false, this.element, dragTargetElement);\n }\n else {\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n }\n };\n Draggable.prototype.elementInViewport = function (el) {\n this.top = el.offsetTop;\n this.left = el.offsetLeft;\n this.width = el.offsetWidth;\n this.height = el.offsetHeight;\n while (el.offsetParent) {\n el = el.offsetParent;\n this.top += el.offsetTop;\n this.left += el.offsetLeft;\n }\n return (this.top >= window.pageYOffset &&\n this.left >= window.pageXOffset &&\n (this.top + this.height) <= (window.pageYOffset + window.innerHeight) &&\n (this.left + this.width) <= (window.pageXOffset + window.innerWidth));\n };\n Draggable.prototype.getProcessedPositionValue = function (value) {\n if (this.queryPositionInfo) {\n return this.queryPositionInfo(value);\n }\n return value;\n };\n Draggable.prototype.calculateParentPosition = function (ele) {\n if (isNullOrUndefined(ele)) {\n return { left: 0, top: 0 };\n }\n var rect = ele.getBoundingClientRect();\n var style = getComputedStyle(ele);\n return {\n left: (rect.left + window.pageXOffset) - parseInt(style.marginLeft, 10),\n top: (rect.top + window.pageYOffset) - parseInt(style.marginTop, 10)\n };\n };\n // tslint:disable-next-line:max-func-body-length\n Draggable.prototype.intDrag = function (evt) {\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n if (this.clone && evt.changedTouches && Browser.isDevice && Browser.isTouch) {\n evt.preventDefault();\n }\n var left;\n var top;\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var docHeight = this.getDocumentWidthHeight('Height');\n if (docHeight < this.position.top) {\n this.position.top = docHeight;\n }\n var docWidth = this.getDocumentWidthHeight('Width');\n if (docWidth < this.position.left) {\n this.position.left = docWidth;\n }\n if (this.drag) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('drag', { event: evt, element: this.element, target: curTarget });\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n /* tslint:disable no-any */\n var flag = true;\n if (this.hoverObject) {\n if (this.hoverObject.instance !== eleObj.instance) {\n this.triggerOutFunction(evt, eleObj);\n }\n else {\n flag = false;\n }\n }\n if (flag) {\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intOver(evt, eleObj.target);\n this.hoverObject = eleObj;\n }\n }\n else if (this.hoverObject) {\n this.triggerOutFunction(evt, eleObj);\n }\n var helperElement = this.droppables[this.scope].helper;\n this.parentClientRect = this.calculateParentPosition(this.helperElement.offsetParent);\n var tLeft = this.parentClientRect.left;\n var tTop = this.parentClientRect.top;\n var intCoord = this.getCoordinates(evt);\n var pagex = intCoord.pageX;\n var pagey = intCoord.pageY;\n var dLeft = this.position.left - this.diffX;\n var dTop = this.position.top - this.diffY;\n var styles = getComputedStyle(helperElement);\n if (this.dragArea) {\n if (this.enableAutoScroll) {\n this.setDragArea();\n }\n if (this.pageX !== pagex || this.skipDistanceCheck) {\n var helperWidth = helperElement.offsetWidth + (parseFloat(styles.marginLeft)\n + parseFloat(styles.marginRight));\n if (this.dragLimit.left > dLeft && dLeft > 0) {\n left = this.dragLimit.left;\n }\n else if (this.dragLimit.right + window.pageXOffset < dLeft + helperWidth && dLeft > 0) {\n left = dLeft - (dLeft - this.dragLimit.right) + window.pageXOffset - helperWidth;\n }\n else {\n left = dLeft < 0 ? this.dragLimit.left : dLeft;\n }\n }\n if (this.pageY !== pagey || this.skipDistanceCheck) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n if (this.dragLimit.top > dTop && dTop > 0) {\n top = this.dragLimit.top;\n }\n else if (this.dragLimit.bottom + window.pageYOffset < dTop + helperHeight && dTop > 0) {\n top = dTop - (dTop - this.dragLimit.bottom) + window.pageYOffset - helperHeight;\n }\n else {\n top = dTop < 0 ? this.dragLimit.top : dTop;\n }\n }\n }\n else {\n left = dLeft;\n top = dTop;\n }\n var iTop = tTop + this.borderWidth.top;\n var iLeft = tLeft + this.borderWidth.left;\n if (this.dragProcessStarted) {\n if (isNullOrUndefined(top)) {\n top = this.prevTop;\n }\n if (isNullOrUndefined(left)) {\n left = this.prevLeft;\n }\n }\n var draEleTop;\n var draEleLeft;\n if (this.helperElement.classList.contains('e-treeview')) {\n if (this.dragArea) {\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - this.borderWidth.top);\n draEleLeft = (left - iLeft) < 0 ? this.dragLimit.left : (left - this.borderWidth.left);\n }\n else {\n draEleTop = top - this.borderWidth.top;\n draEleLeft = left - this.borderWidth.left;\n }\n }\n else {\n if (this.dragArea) {\n var isDialogEle = this.helperElement.classList.contains('e-dialog');\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);\n draEleLeft = (left - iLeft) < 0 ? isDialogEle ? (left - (iLeft - this.borderWidth.left)) :\n this.dragElePosition.left : (left - iLeft);\n }\n else {\n draEleTop = top - iTop;\n draEleLeft = left - iLeft;\n }\n }\n var marginTop = parseFloat(getComputedStyle(this.element).marginTop);\n // when drag-element has margin-top\n /* istanbul ignore next */\n if (marginTop > 0) {\n if (this.clone) {\n draEleTop += marginTop;\n if (dTop < 0) {\n if ((marginTop + dTop) >= 0) {\n draEleTop = marginTop + dTop;\n }\n else {\n draEleTop -= marginTop;\n }\n }\n if (this.dragArea) {\n draEleTop = (this.dragLimit.bottom < draEleTop) ? this.dragLimit.bottom : draEleTop;\n }\n }\n if ((top - iTop) < 0) {\n if (dTop + marginTop + (helperElement.offsetHeight - iTop) >= 0) {\n var tempDraEleTop = this.dragLimit.top + dTop - iTop;\n if ((tempDraEleTop + marginTop + iTop) < 0) {\n draEleTop -= marginTop + iTop;\n }\n else {\n draEleTop = tempDraEleTop;\n }\n }\n else {\n draEleTop -= marginTop + iTop;\n }\n }\n }\n if (this.dragArea && this.helperElement.classList.contains('e-treeview')) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n draEleTop = (draEleTop + helperHeight) > this.dragLimit.bottom ? (this.dragLimit.bottom - helperHeight) : draEleTop;\n }\n /* istanbul ignore next */\n // if(this.eleTop > 0) {\n // draEleTop += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n draEleTop -= this.parentScrollY;\n draEleLeft -= this.parentScrollX;\n }\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n draEleTop += this.dragArea.scrollTop;\n }\n var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' });\n setStyleAttribute(helperElement, this.getDragPosition(dragValue));\n if (!this.elementInViewport(helperElement) && this.enableAutoScroll && !this.helperElement.classList.contains('e-treeview')) {\n this.helperElement.scrollIntoView();\n }\n var elements = document.querySelectorAll(':hover');\n if (this.enableAutoScroll && this.helperElement.classList.contains('e-treeview')) {\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n /* tslint:disable no-any */\n var scrollParent = this.getScrollParent(elements, false);\n if (this.elementInViewport(this.helperElement)) {\n this.getScrollPosition(scrollParent, draEleTop);\n }\n else if (!this.elementInViewport(this.helperElement)) {\n elements = [].slice.call(document.querySelectorAll(':hover'));\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n scrollParent = this.getScrollParent(elements, true);\n this.getScrollPosition(scrollParent, draEleTop);\n }\n }\n this.dragProcessStarted = true;\n this.prevLeft = left;\n this.prevTop = top;\n this.position.left = left;\n this.position.top = top;\n this.pageX = pagex;\n this.pageY = pagey;\n };\n /* tslint:disable no-any */\n Draggable.prototype.getScrollParent = function (node, reverse) {\n /* tslint:disable no-any */\n var nodeEl = reverse ? node.reverse() : node;\n var hasScroll;\n for (var i = nodeEl.length - 1; i >= 0; i--) {\n hasScroll = window.getComputedStyle(nodeEl[parseInt(i.toString(), 10)])['overflow-y'];\n if ((hasScroll === 'auto' || hasScroll === 'scroll')\n && nodeEl[parseInt(i.toString(), 10)].scrollHeight > nodeEl[parseInt(i.toString(), 10)].clientHeight) {\n return nodeEl[parseInt(i.toString(), 10)];\n }\n }\n hasScroll = window.getComputedStyle(document.scrollingElement)['overflow-y'];\n if (hasScroll === 'visible') {\n document.scrollingElement.style.overflow = 'auto';\n return document.scrollingElement;\n }\n };\n Draggable.prototype.getScrollPosition = function (nodeEle, draEleTop) {\n if (nodeEle && nodeEle === document.scrollingElement) {\n if ((nodeEle.clientHeight + document.scrollingElement.scrollTop - this.helperElement.clientHeight) < draEleTop\n && nodeEle.getBoundingClientRect().height + this.parentClientRect.top > draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.scrollTop > draEleTop - this.helperElement.clientHeight) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n else if (nodeEle && nodeEle !== document.scrollingElement) {\n if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - this.helperElement.clientHeight + document.scrollingElement.scrollTop) < draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.getBoundingClientRect().top > (draEleTop - this.helperElement.clientHeight - document.scrollingElement.scrollTop)) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n };\n Draggable.prototype.getPathElements = function (evt) {\n var elementTop = evt.clientX > 0 ? evt.clientX : 0;\n var elementLeft = evt.clientY > 0 ? evt.clientY : 0;\n return document.elementsFromPoint(elementTop, elementLeft);\n };\n Draggable.prototype.triggerOutFunction = function (evt, eleObj) {\n this.hoverObject.instance.intOut(evt, eleObj.target);\n this.hoverObject.instance.dragData[this.scope] = null;\n this.hoverObject = null;\n };\n Draggable.prototype.getDragPosition = function (dragValue) {\n var temp = extend({}, dragValue);\n if (this.axis) {\n if (this.axis === 'x') {\n delete temp.top;\n }\n else if (this.axis === 'y') {\n delete temp.left;\n }\n }\n return temp;\n };\n Draggable.prototype.getDocumentWidthHeight = function (str) {\n var docBody = document.body;\n var docEle = document.documentElement;\n var returnValue = Math.max(docBody['scroll' + str], docEle['scroll' + str], docBody['offset' + str], docEle['offset' + str], docEle['client' + str]);\n return returnValue;\n };\n Draggable.prototype.intDragStop = function (evt) {\n this.dragProcessStarted = false;\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n var type = ['touchend', 'pointerup', 'mouseup'];\n if (type.indexOf(evt.type) !== -1) {\n if (this.dragStop) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('dragStop', { event: evt, element: this.element, target: curTarget, helper: this.helperElement });\n }\n this.intDestroy(evt);\n }\n else {\n this.element.setAttribute('aria-grabbed', 'false');\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n eleObj.instance.dragStopCalled = true;\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intDrop(evt, eleObj.target);\n }\n this.setGlobalDroppables(true);\n document.body.classList.remove('e-prevent-select');\n };\n /**\n * @private\n */\n Draggable.prototype.intDestroy = function (evt) {\n this.dragProcessStarted = false;\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n this.element.setAttribute('aria-grabbed', 'false');\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag);\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n };\n // triggers when property changed\n Draggable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Draggable.prototype.getModuleName = function () {\n return 'draggable';\n };\n Draggable.prototype.isDragStarted = function (change) {\n if (change) {\n isDraggedObject.isDragged = !isDraggedObject.isDragged;\n }\n return isDraggedObject.isDragged;\n };\n Draggable.prototype.setDragArea = function () {\n var eleWidthBound;\n var eleHeightBound;\n var top = 0;\n var left = 0;\n var ele;\n var type = typeof this.dragArea;\n if (type === 'string') {\n ele = select(this.dragArea);\n }\n else {\n ele = this.dragArea;\n }\n if (ele) {\n var elementArea = ele.getBoundingClientRect();\n eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;\n eleHeightBound = ele.scrollHeight ? (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;\n var keys = ['Top', 'Left', 'Bottom', 'Right'];\n var styles = getComputedStyle(ele);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[parseInt(i.toString(), 10)];\n var tborder = styles['border' + key + 'Width'];\n var tpadding = styles['padding' + key];\n var lowerKey = key.toLowerCase();\n this.borderWidth[\"\" + lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);\n this.padding[\"\" + lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);\n }\n if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {\n top = elementArea.top + document.scrollingElement.scrollTop;\n }\n else {\n top = elementArea.top;\n }\n left = elementArea.left;\n this.dragLimit.left = left + this.borderWidth.left + this.padding.left;\n this.dragLimit.top = ele.offsetTop + this.borderWidth.top + this.padding.top;\n this.dragLimit.right = left + eleWidthBound - (this.borderWidth.right + this.padding.right);\n this.dragLimit.bottom = top + eleHeightBound - (this.borderWidth.bottom + this.padding.bottom);\n }\n };\n Draggable.prototype.getProperTargetElement = function (evt) {\n var intCoord = this.getCoordinates(evt);\n var ele;\n var prevStyle = this.helperElement.style.pointerEvents || '';\n var isPointer = evt.type.indexOf('pointer') !== -1 && Browser.info.name === 'safari' && parseInt(Browser.info.version) > 12;\n if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) {\n this.helperElement.style.pointerEvents = 'none';\n ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);\n this.helperElement.style.pointerEvents = prevStyle;\n }\n else {\n ele = evt.target;\n }\n return ele;\n };\n /* istanbul ignore next */\n Draggable.prototype.currentStateCheck = function (ele, oldEle) {\n var elem;\n if (!isNullOrUndefined(this.currentStateTarget) && this.currentStateTarget !== ele) {\n elem = this.currentStateTarget;\n }\n else {\n elem = !isNullOrUndefined(oldEle) ? oldEle : ele;\n }\n return elem;\n };\n Draggable.prototype.getMousePosition = function (evt, isdragscroll) {\n /* tslint:disable no-any */\n var dragEle = evt.srcElement !== undefined ? evt.srcElement : evt.target;\n var intCoord = this.getCoordinates(evt);\n var pageX;\n var pageY;\n var isOffsetParent = isNullOrUndefined(dragEle.offsetParent);\n /* istanbul ignore next */\n if (isdragscroll) {\n pageX = this.clone ? intCoord.pageX :\n (intCoord.pageX + (isOffsetParent ? 0 : dragEle.offsetParent.scrollLeft)) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY :\n (intCoord.pageY + (isOffsetParent ? 0 : dragEle.offsetParent.scrollTop)) - this.relativeYPosition;\n }\n else {\n pageX = this.clone ? intCoord.pageX : (intCoord.pageX + window.pageXOffset) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;\n }\n if (document.scrollingElement && (!isdragscroll && !this.clone)) {\n var isVerticalScroll = document.scrollingElement.scrollHeight > 0 && document.scrollingElement.scrollHeight > document.scrollingElement.clientHeight && document.scrollingElement.scrollTop > 0;\n var isHorrizontalScroll = document.scrollingElement.scrollWidth > 0 && document.scrollingElement.scrollWidth > document.scrollingElement.clientWidth && document.scrollingElement.scrollLeft > 0;\n pageX = isHorrizontalScroll ? pageX - document.scrollingElement.scrollLeft : pageX;\n pageY = isVerticalScroll ? pageY - document.scrollingElement.scrollTop : pageY;\n }\n return {\n left: pageX - (this.margin.left + this.cursorAt.left),\n top: pageY - (this.margin.top + this.cursorAt.top)\n };\n };\n Draggable.prototype.getCoordinates = function (evt) {\n if (evt.type.indexOf('touch') > -1) {\n return evt.changedTouches[0];\n }\n return evt;\n };\n Draggable.prototype.getHelperElement = function (evt) {\n var element;\n if (this.clone) {\n if (this.helper) {\n element = this.helper({ sender: evt, element: this.target });\n }\n else {\n element = createElement('div', { className: 'e-drag-helper e-block-touch', innerHTML: 'Draggable' });\n document.body.appendChild(element);\n }\n }\n else {\n element = this.element;\n }\n return element;\n };\n Draggable.prototype.setGlobalDroppables = function (reset, drag, helper) {\n this.droppables[this.scope] = reset ? null : {\n draggable: drag,\n helper: helper,\n draggedElement: this.element\n };\n };\n Draggable.prototype.checkTargetElement = function (evt) {\n var target = this.getProperTargetElement(evt);\n var dropIns = this.getDropInstance(target);\n if (!dropIns && target && !isNullOrUndefined(target.parentNode)) {\n var parent_1 = closest(target.parentNode, '.e-droppable') || target.parentElement;\n if (parent_1) {\n dropIns = this.getDropInstance(parent_1);\n }\n }\n return { target: target, instance: dropIns };\n };\n Draggable.prototype.getDropInstance = function (ele) {\n var name = 'getModuleName';\n var drop;\n var eleInst = ele && ele.ej2_instances;\n if (eleInst) {\n for (var _i = 0, eleInst_1 = eleInst; _i < eleInst_1.length; _i++) {\n var inst = eleInst_1[_i];\n if (inst[\"\" + name]() === 'droppable') {\n drop = inst;\n break;\n }\n }\n }\n return drop;\n };\n Draggable.prototype.destroy = function () {\n this.toggleEvents(true);\n _super.prototype.destroy.call(this);\n };\n var Draggable_1;\n __decorate([\n Complex({}, Position)\n ], Draggable.prototype, \"cursorAt\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"clone\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"dragArea\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isDragScroll\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isReplaceDragEle\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"isPreventSelect\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStop\", void 0);\n __decorate([\n Property(1)\n ], Draggable.prototype, \"distance\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"handle\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"abort\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"helper\", void 0);\n __decorate([\n Property('default')\n ], Draggable.prototype, \"scope\", void 0);\n __decorate([\n Property('')\n ], Draggable.prototype, \"dragTarget\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"axis\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"queryPositionInfo\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTailMode\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"skipDistanceCheck\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"preventDefault\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableAutoScroll\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTapHold\", void 0);\n __decorate([\n Property(750)\n ], Draggable.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableScrollHandler\", void 0);\n Draggable = Draggable_1 = __decorate([\n NotifyPropertyChanges\n ], Draggable);\n return Draggable;\n}(Base));\nexport { Draggable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible, matches } from './dom';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { compareElementParent } from './util';\n/**\n * Droppable Module provides support to enable droppable functionality in Dom Elements.\n * ```html\n *
Droppable
\n * \n * ```\n */\nvar Droppable = /** @class */ (function (_super) {\n __extends(Droppable, _super);\n function Droppable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseOver = false;\n _this.dragData = {};\n _this.dragStopCalled = false;\n _this.bind();\n return _this;\n }\n Droppable.prototype.bind = function () {\n this.wireEvents();\n };\n Droppable.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDrop, this);\n };\n // triggers when property changed\n // eslint-disable-next-line\n Droppable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Droppable.prototype.getModuleName = function () {\n return 'droppable';\n };\n Droppable.prototype.intOver = function (event, element) {\n if (!this.mouseOver) {\n var drag = this.dragData[this.scope];\n this.trigger('over', { event: event, target: element, dragData: drag });\n this.mouseOver = true;\n }\n };\n Droppable.prototype.intOut = function (event, element) {\n if (this.mouseOver) {\n this.trigger('out', { evt: event, target: element });\n this.mouseOver = false;\n }\n };\n Droppable.prototype.intDrop = function (evt, element) {\n if (!this.dragStopCalled) {\n return;\n }\n else {\n this.dragStopCalled = false;\n }\n var accept = true;\n var drag = this.dragData[this.scope];\n var isDrag = drag ? (drag.helper && isVisible(drag.helper)) : false;\n var area;\n if (isDrag) {\n area = this.isDropArea(evt, drag.helper, element);\n if (this.accept) {\n accept = matches(drag.helper, this.accept);\n }\n }\n if (isDrag && this.drop && area.canDrop && accept) {\n this.trigger('drop', { event: evt, target: area.target, droppedElement: drag.helper, dragData: drag });\n }\n this.mouseOver = false;\n };\n Droppable.prototype.isDropArea = function (evt, helper, element) {\n var area = { canDrop: true, target: element || evt.target };\n var isTouch = evt.type === 'touchend';\n if (isTouch || area.target === helper) {\n helper.style.display = 'none';\n var coord = isTouch ? (evt.changedTouches[0]) : evt;\n var ele = document.elementFromPoint(coord.clientX, coord.clientY);\n area.canDrop = false;\n area.canDrop = compareElementParent(ele, this.element);\n if (area.canDrop) {\n area.target = ele;\n }\n helper.style.display = '';\n }\n return area;\n };\n Droppable.prototype.destroy = function () {\n EventHandler.remove(this.element, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDrop);\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Property()\n ], Droppable.prototype, \"accept\", void 0);\n __decorate([\n Property('default')\n ], Droppable.prototype, \"scope\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"drop\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"over\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"out\", void 0);\n Droppable = __decorate([\n NotifyPropertyChanges\n ], Droppable);\n return Droppable;\n}(Base));\nexport { Droppable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Base } from './base';\nvar keyCode = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'control': 17,\n 'alt': 18,\n 'pause': 19,\n 'capslock': 20,\n 'space': 32,\n 'escape': 27,\n 'pageup': 33,\n 'pagedown': 34,\n 'end': 35,\n 'home': 36,\n 'leftarrow': 37,\n 'uparrow': 38,\n 'rightarrow': 39,\n 'downarrow': 40,\n 'insert': 45,\n 'delete': 46,\n 'f1': 112,\n 'f2': 113,\n 'f3': 114,\n 'f4': 115,\n 'f5': 116,\n 'f6': 117,\n 'f7': 118,\n 'f8': 119,\n 'f9': 120,\n 'f10': 121,\n 'f11': 122,\n 'f12': 123,\n 'semicolon': 186,\n 'plus': 187,\n 'comma': 188,\n 'minus': 189,\n 'dot': 190,\n 'forwardslash': 191,\n 'graveaccent': 192,\n 'openbracket': 219,\n 'backslash': 220,\n 'closebracket': 221,\n 'singlequote': 222\n};\n/**\n * KeyboardEvents class enables you to bind key action desired key combinations for ex., Ctrl+A, Delete, Alt+Space etc.\n * ```html\n *
;\n * \n * ```\n */\nvar KeyboardEvents = /** @class */ (function (_super) {\n __extends(KeyboardEvents, _super);\n /**\n * Initializes the KeyboardEvents\n *\n * @param {HTMLElement} element ?\n * @param {KeyboardEventsModel} options ?\n */\n function KeyboardEvents(element, options) {\n var _this = _super.call(this, options, element) || this;\n /**\n * To handle a key press event returns null\n *\n * @param {KeyboardEventArgs} e ?\n * @returns {void} ?\n */\n _this.keyPressHandler = function (e) {\n var isAltKey = e.altKey;\n var isCtrlKey = e.ctrlKey;\n var isShiftKey = e.shiftKey;\n var curkeyCode = e.which;\n var keys = Object.keys(_this.keyConfigs);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var configCollection = _this.keyConfigs[\"\" + key].split(',');\n for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {\n var rconfig = configCollection_1[_a];\n var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());\n if (isAltKey === rKeyObj.altKey && isCtrlKey === rKeyObj.ctrlKey &&\n isShiftKey === rKeyObj.shiftKey && curkeyCode === rKeyObj.keyCode) {\n e.action = key;\n if (_this.keyAction) {\n _this.keyAction(e);\n }\n }\n }\n }\n };\n _this.bind();\n return _this;\n }\n KeyboardEvents_1 = KeyboardEvents;\n /**\n * Unwire bound events and destroy the instance.\n *\n * @returns {void} ?\n */\n KeyboardEvents.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n /**\n * Function can be used to specify certain action if a property is changed\n *\n * @param {KeyboardEventsModel} newProp ?\n * @param {KeyboardEventsModel} oldProp ?\n * @returns {void} ?\n * @private\n */\n // eslint-disable-next-line\n KeyboardEvents.prototype.onPropertyChanged = function (newProp, oldProp) {\n // No code are needed\n };\n KeyboardEvents.prototype.bind = function () {\n this.wireEvents();\n };\n /**\n * To get the module name, returns 'keyboard'.\n *\n * @returns {string} ?\n * @private\n */\n KeyboardEvents.prototype.getModuleName = function () {\n return 'keyboard';\n };\n /**\n * Wiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.wireEvents = function () {\n this.element.addEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * Unwiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.unwireEvents = function () {\n this.element.removeEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * To get the key configuration data\n *\n * @param {string} config - configuration data\n * @returns {KeyData} ?\n */\n KeyboardEvents.getKeyConfigData = function (config) {\n if (config in this.configCache) {\n return this.configCache[\"\" + config];\n }\n var keys = config.toLowerCase().split('+');\n var keyData = {\n altKey: (keys.indexOf('alt') !== -1 ? true : false),\n ctrlKey: (keys.indexOf('ctrl') !== -1 ? true : false),\n shiftKey: (keys.indexOf('shift') !== -1 ? true : false),\n keyCode: null\n };\n if (keys[keys.length - 1].length > 1 && !!Number(keys[keys.length - 1])) {\n keyData.keyCode = Number(keys[keys.length - 1]);\n }\n else {\n keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);\n }\n KeyboardEvents_1.configCache[\"\" + config] = keyData;\n return keyData;\n };\n // Return the keycode value as string\n KeyboardEvents.getKeyCode = function (keyVal) {\n return keyCode[\"\" + keyVal] || keyVal.toUpperCase().charCodeAt(0);\n };\n var KeyboardEvents_1;\n KeyboardEvents.configCache = {};\n __decorate([\n Property({})\n ], KeyboardEvents.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property('keyup')\n ], KeyboardEvents.prototype, \"eventName\", void 0);\n __decorate([\n Event()\n ], KeyboardEvents.prototype, \"keyAction\", void 0);\n KeyboardEvents = KeyboardEvents_1 = __decorate([\n NotifyPropertyChanges\n ], KeyboardEvents);\n return KeyboardEvents;\n}(Base));\nexport { KeyboardEvents };\n","import { extend, isNullOrUndefined } from './util';\nimport { defaultCulture } from './internationalization';\n/**\n * L10n modules provides localized text for different culture.\n * ```typescript\n * import {setCulture} from '@syncfusion/ts-base-library';\n * //load global locale object common for all components.\n * L10n.load({\n * 'fr-BE': {\n * 'button': {\n * 'check': 'vérifié'\n * }\n * }\n * });\n * //set globale default locale culture.\n * setCulture('fr-BE');\n * let instance: L10n = new L10n('button', {\n * check: 'checked'\n * });\n * //Get locale text for current property.\n * instance.getConstant('check');\n * //Change locale culture in a component.\n * instance.setLocale('en-US');\n * ```\n */\nvar L10n = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {string} controlName ?\n * @param {Object} localeStrings ?\n * @param {string} locale ?\n */\n function L10n(controlName, localeStrings, locale) {\n this.controlName = controlName;\n this.localeStrings = localeStrings;\n this.setLocale(locale || defaultCulture);\n }\n /**\n * Sets the locale text\n *\n * @param {string} locale ?\n * @returns {void} ?\n */\n L10n.prototype.setLocale = function (locale) {\n var intLocale = this.intGetControlConstant(L10n.locale, locale);\n this.currentLocale = intLocale || this.localeStrings;\n };\n /**\n * Sets the global locale for all components.\n *\n * @param {Object} localeObject - specifies the localeObject to be set as global locale.\n * @returns {void} ?\n */\n L10n.load = function (localeObject) {\n this.locale = extend(this.locale, localeObject, {}, true);\n };\n /**\n * Returns current locale text for the property based on the culture name and control name.\n *\n * @param {string} prop - specifies the property for which localize text to be returned.\n * @returns {string} ?\n */\n L10n.prototype.getConstant = function (prop) {\n // Removed conditional operator because this method does not return correct value when passing 0 as value in localization\n if (!isNullOrUndefined(this.currentLocale[\"\" + prop])) {\n return this.currentLocale[\"\" + prop];\n }\n else {\n return this.localeStrings[\"\" + prop] || '';\n }\n };\n /**\n * Returns the control constant object for current object and the locale specified.\n *\n * @param {Object} curObject ?\n * @param {string} locale ?\n * @returns {Object} ?\n */\n L10n.prototype.intGetControlConstant = function (curObject, locale) {\n if ((curObject)[\"\" + locale]) {\n return (curObject)[\"\" + locale][this.controlName];\n }\n return null;\n };\n L10n.locale = {};\n return L10n;\n}());\nexport { L10n };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { extend } from './util';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Browser } from './browser';\nimport { Base } from './base';\nimport { ChildProperty } from './child-property';\nimport { EventHandler } from './event-handler';\n/**\n * SwipeSettings is a framework module that provides support to handle swipe event like swipe up, swipe right, etc..,\n */\nvar SwipeSettings = /** @class */ (function (_super) {\n __extends(SwipeSettings, _super);\n function SwipeSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(50)\n ], SwipeSettings.prototype, \"swipeThresholdDistance\", void 0);\n return SwipeSettings;\n}(ChildProperty));\nexport { SwipeSettings };\nvar swipeRegex = /(Up|Down)/;\n/**\n * Touch class provides support to handle the touch event like tap, double tap, tap hold, etc..,\n * ```typescript\n * let node: HTMLElement;\n * let touchObj: Touch = new Touch({\n * element: node,\n * tap: function (e) {\n * // tap handler function code\n * }\n * tapHold: function (e) {\n * // tap hold handler function code\n * }\n * scroll: function (e) {\n * // scroll handler function code\n * }\n * swipe: function (e) {\n * // swipe handler function code\n * }\n * });\n * ```\n */\nvar Touch = /** @class */ (function (_super) {\n __extends(Touch, _super);\n /* End-Properties */\n function Touch(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.touchAction = true;\n _this.tapCount = 0;\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.startEvent = function (evt) {\n if (_this.touchAction === true) {\n var point = _this.updateChangeTouches(evt);\n if (evt.changedTouches !== undefined) {\n _this.touchAction = false;\n }\n _this.isTouchMoved = false;\n _this.movedDirection = '';\n _this.startPoint = _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n _this.startEventData = point;\n _this.hScrollLocked = _this.vScrollLocked = false;\n _this.tStampStart = Date.now();\n _this.timeOutTapHold = setTimeout(function () { _this.tapHoldEvent(evt); }, _this.tapHoldThreshold);\n EventHandler.add(_this.element, Browser.touchMoveEvent, _this.moveEvent, _this);\n EventHandler.add(_this.element, Browser.touchEndEvent, _this.endEvent, _this);\n EventHandler.add(_this.element, Browser.touchCancelEvent, _this.cancelEvent, _this);\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.moveEvent = function (evt) {\n var point = _this.updateChangeTouches(evt);\n _this.movedPoint = point;\n _this.isTouchMoved = !(point.clientX === _this.startPoint.clientX && point.clientY === _this.startPoint.clientY);\n var eScrollArgs = {};\n if (_this.isTouchMoved) {\n clearTimeout(_this.timeOutTapHold);\n _this.calcScrollPoints(evt);\n var scrollArg = {\n startEvents: _this.startEventData,\n originalEvent: evt, startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY, distanceX: _this.distanceX,\n distanceY: _this.distanceY, scrollDirection: _this.scrollDirection,\n velocity: _this.getVelocity(point)\n };\n eScrollArgs = extend(eScrollArgs, {}, scrollArg);\n _this.trigger('scroll', eScrollArgs);\n _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.cancelEvent = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n _this.tapCount = 0;\n _this.swipeFn(evt);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.endEvent = function (evt) {\n _this.swipeFn(evt);\n if (!_this.isTouchMoved) {\n if (typeof _this.tap === 'function') {\n _this.trigger('tap', { originalEvent: evt, tapCount: ++_this.tapCount });\n _this.timeOutTap = setTimeout(function () {\n _this.tapCount = 0;\n }, _this.tapThreshold);\n }\n }\n _this.modeclear();\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.swipeFn = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n var point = _this.updateChangeTouches(evt);\n var diffX = point.clientX - _this.startPoint.clientX;\n var diffY = point.clientY - _this.startPoint.clientY;\n diffX = Math.floor(diffX < 0 ? -1 * diffX : diffX);\n diffY = Math.floor(diffY < 0 ? -1 * diffY : diffX);\n _this.isTouchMoved = diffX > 1 || diffY > 1;\n var isFirefox = (/Firefox/).test(Browser.userAgent);\n if (isFirefox && point.clientX === 0 && point.clientY === 0 && evt.type === 'mouseup') {\n _this.isTouchMoved = false;\n }\n _this.endPoint = point;\n _this.calcPoints(evt);\n var swipeArgs = {\n originalEvent: evt,\n startEvents: _this.startEventData,\n startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY,\n distanceX: _this.distanceX, distanceY: _this.distanceY, swipeDirection: _this.movedDirection,\n velocity: _this.getVelocity(point)\n };\n if (_this.isTouchMoved) {\n var eSwipeArgs = void 0;\n var tDistance = _this.swipeSettings.swipeThresholdDistance;\n // eslint-disable-next-line\n eSwipeArgs = extend(eSwipeArgs, _this.defaultArgs, swipeArgs);\n var canTrigger = false;\n var ele = _this.element;\n var scrollBool = _this.isScrollable(ele);\n var moved = swipeRegex.test(_this.movedDirection);\n if ((tDistance < _this.distanceX && !moved) || (tDistance < _this.distanceY && moved)) {\n if (!scrollBool) {\n canTrigger = true;\n }\n else {\n canTrigger = _this.checkSwipe(ele, moved);\n }\n }\n if (canTrigger) {\n _this.trigger('swipe', eSwipeArgs);\n }\n }\n _this.modeclear();\n };\n _this.modeclear = function () {\n _this.modeClear = setTimeout(function () {\n _this.touchAction = true;\n }, (typeof _this.tap !== 'function' ? 0 : 20));\n _this.lastTapTime = new Date().getTime();\n EventHandler.remove(_this.element, Browser.touchMoveEvent, _this.moveEvent);\n EventHandler.remove(_this.element, Browser.touchEndEvent, _this.endEvent);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n _this.bind();\n return _this;\n }\n // triggers when property changed\n /**\n *\n * @private\n * @param {TouchModel} newProp ?\n * @param {TouchModel} oldProp ?\n * @returns {void} ?\n */\n // eslint-disable-next-line\n Touch.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Touch.prototype.bind = function () {\n this.wireEvents();\n if (Browser.isIE) {\n this.element.classList.add('e-block-touch');\n }\n };\n /**\n * To destroy the touch instance.\n *\n * @returns {void}\n */\n Touch.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n // Need to changes the event binding once we updated the event handler.\n Touch.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.touchStartEvent, this.startEvent, this);\n };\n Touch.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.startEvent);\n };\n /**\n * Returns module name as touch\n *\n * @returns {string} ?\n * @private\n */\n Touch.prototype.getModuleName = function () {\n return 'touch';\n };\n /**\n * Returns if the HTML element is Scrollable.\n *\n * @param {HTMLElement} element - HTML Element to check if Scrollable.\n * @returns {boolean} ?\n */\n Touch.prototype.isScrollable = function (element) {\n var eleStyle = getComputedStyle(element);\n var style = eleStyle.overflow + eleStyle.overflowX + eleStyle.overflowY;\n if ((/(auto|scroll)/).test(style)) {\n return true;\n }\n return false;\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n Touch.prototype.tapHoldEvent = function (evt) {\n this.tapCount = 0;\n this.touchAction = true;\n var eTapArgs;\n EventHandler.remove(this.element, Browser.touchMoveEvent, this.moveEvent);\n EventHandler.remove(this.element, Browser.touchEndEvent, this.endEvent);\n // eslint-disable-next-line\n eTapArgs = { originalEvent: evt };\n this.trigger('tapHold', eTapArgs);\n EventHandler.remove(this.element, Browser.touchCancelEvent, this.cancelEvent);\n };\n Touch.prototype.calcPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.startPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.startPoint.clientY)));\n if (this.distanceX > this.distanceY) {\n this.movedDirection = (point.clientX > this.startPoint.clientX) ? 'Right' : 'Left';\n }\n else {\n this.movedDirection = (point.clientY < this.startPoint.clientY) ? 'Up' : 'Down';\n }\n };\n Touch.prototype.calcScrollPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.lastMovedPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.lastMovedPoint.clientY)));\n if ((this.distanceX > this.distanceY || this.hScrollLocked === true) && this.vScrollLocked === false) {\n this.scrollDirection = (point.clientX > this.lastMovedPoint.clientX) ? 'Right' : 'Left';\n this.hScrollLocked = true;\n }\n else {\n this.scrollDirection = (point.clientY < this.lastMovedPoint.clientY) ? 'Up' : 'Down';\n this.vScrollLocked = true;\n }\n };\n Touch.prototype.getVelocity = function (pnt) {\n var newX = pnt.clientX;\n var newY = pnt.clientY;\n var newT = Date.now();\n var xDist = newX - this.startPoint.clientX;\n var yDist = newY - this.startPoint.clientX;\n var interval = newT - this.tStampStart;\n return Math.sqrt(xDist * xDist + yDist * yDist) / interval;\n };\n // eslint-disable-next-line\n Touch.prototype.checkSwipe = function (ele, flag) {\n var keys = ['scroll', 'offset'];\n var temp = flag ? ['Height', 'Top'] : ['Width', 'Left'];\n if ((ele[keys[0] + temp[0]] <= ele[keys[1] + temp[0]])) {\n return true;\n }\n return (ele[keys[0] + temp[1]] === 0) ||\n (ele[keys[1] + temp[0]] + ele[keys[0] + temp[1]] >= ele[keys[0] + temp[0]]);\n };\n Touch.prototype.updateChangeTouches = function (evt) {\n var point = evt.changedTouches && evt.changedTouches.length !== 0 ? evt.changedTouches[0] : evt;\n return point;\n };\n __decorate([\n Event()\n ], Touch.prototype, \"tap\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"tapHold\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"swipe\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"scroll\", void 0);\n __decorate([\n Property(350)\n ], Touch.prototype, \"tapThreshold\", void 0);\n __decorate([\n Property(750)\n ], Touch.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Complex({}, SwipeSettings)\n ], Touch.prototype, \"swipeSettings\", void 0);\n Touch = __decorate([\n NotifyPropertyChanges\n ], Touch);\n return Touch;\n}(Base));\nexport { Touch };\n","/**\n * Template Engine\n */\nvar LINES = new RegExp('\\\\n|\\\\r|\\\\s\\\\s+', 'g');\nvar QUOTES = new RegExp(/'|\"/g);\nvar IF_STMT = new RegExp('if ?\\\\(');\nvar ELSEIF_STMT = new RegExp('else if ?\\\\(');\nvar ELSE_STMT = new RegExp('else');\nvar FOR_STMT = new RegExp('for ?\\\\(');\nvar IF_OR_FOR = new RegExp('(/if|/for)');\nvar CALL_FUNCTION = new RegExp('\\\\((.*)\\\\)', '');\nvar NOT_NUMBER = new RegExp('^[0-9]+$', 'g');\nvar WORD = new RegExp('[\\\\w\"\\'.\\\\s+]+', 'g');\nvar DBL_QUOTED_STR = new RegExp('\"(.*?)\"', 'g');\nvar WORDIF = new RegExp('[\\\\w\"\\'@#$.\\\\s-+]+', 'g');\nvar exp = new RegExp('\\\\${([^}]*)}', 'g');\n// let cachedTemplate: Object = {};\nvar ARR_OBJ = /^\\..*/gm;\nvar SINGLE_SLASH = /\\\\/gi;\nvar DOUBLE_SLASH = /\\\\\\\\/gi;\nvar WORDFUNC = new RegExp('[\\\\w\"\\'@#$.\\\\s+]+', 'g');\nvar WINDOWFUNC = /\\window\\./gm;\n/**\n * The function to set regular expression for template expression string.\n *\n * @param {RegExp} value - Value expression.\n * @returns {RegExp} ?\n * @private\n */\nexport function expression(value) {\n if (value) {\n exp = value;\n }\n return exp;\n}\n// /**\n// * To render the template string from the given data.\n// * @param {string} template - String Template.\n// * @param {Object[]|JSON} data - DataSource for the template.\n// * @param {Object} helper? - custom helper object.\n// */\n// export function template(template: string, data: JSON, helper?: Object): string {\n// let hash: string = hashCode(template);\n// let tmpl: Function;\n// if (!cachedTemplate[hash]) {\n// tmpl = cachedTemplate[hash] = compile(template, helper);\n// } else {\n// tmpl = cachedTemplate[hash];\n// }\n// return tmpl(data);\n// }\n/**\n * Compile the template string into template function.\n *\n * @param {string | Function} template - The template string which is going to convert.\n * @param {Object} helper - Helper functions as an object.\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n * @private\n */\nexport function compile(template, helper, ignorePrefix) {\n if (typeof template === 'function') {\n return template;\n }\n else {\n var argName = 'data';\n var evalExpResult = evalExp(template, argName, helper, ignorePrefix);\n // eslint-disable-next-line\n var condtion = \"var valueRegEx = (/value=\\\\'([A-Za-z0-9 _]*)((.)([\\\\w)(!-;?-\\u25A0\\\\s]+)['])/g);\\n var hrefRegex = (/(?:href)([\\\\s='\\\"./]+)([\\\\w-./?=&\\\\\\\\#\\\"]+)((.)([\\\\w)(!-;/?-\\u25A0\\\\s]+)['])/g);\\n if(str.match(valueRegEx)){\\n var check = str.match(valueRegEx);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(valueRegEx)[i].split('value=')[1];\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n str = str.replace(str, str1);\\n }\\n else if (str.match(/(?:href='')/) === null) {\\n if(str.match(hrefRegex)) {\\n var check = str.match(hrefRegex);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(hrefRegex)[i].split('href=')[1];\\n if (check1) {\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n }\\n str = str.replace(str, str1);\\n }\\n }\\n \";\n var fnCode = 'var str=\\\"' + evalExpResult + '\\\";' + condtion + ' return str;';\n var fn = new Function(argName, fnCode);\n return fn.bind(helper);\n }\n}\n/** function used to evaluate the function expression\n *\n * @param {string} str ?\n * @param {string} nameSpace ?\n * @param {Object} helper ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction evalExp(str, nameSpace, helper, ignorePrefix) {\n var varCOunt = 0;\n /**\n * Variable containing Local Keys\n */\n var localKeys = [];\n var isClass = str.match(/class=\"([^\"]+|)\\s{2}/g);\n var singleSpace = '';\n if (isClass) {\n isClass.forEach(function (value) {\n singleSpace = value.replace(/\\s\\s+/g, ' ');\n str = str.replace(value, singleSpace);\n });\n }\n return str.replace(LINES, '').replace(DBL_QUOTED_STR, '\\'$1\\'').replace(exp, \n // eslint-disable-next-line\n function (match, cnt, offset, matchStr) {\n var SPECIAL_CHAR = /@|#|\\$/gm;\n var matches = cnt.match(CALL_FUNCTION);\n // matches to detect any function calls\n if (matches) {\n var rlStr = matches[1];\n if (ELSEIF_STMT.test(cnt)) {\n //handling else-if condition\n cnt = '\";} ' + cnt.replace(matches[1], rlStr.replace(WORD, function (str) {\n str = str.trim();\n return addNameSpace(str, !(QUOTES.test(str)) && (localKeys.indexOf(str) === -1), nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (IF_STMT.test(cnt)) {\n //handling if condition\n cnt = '\"; ' + cnt.replace(matches[1], rlStr.replace(WORDIF, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (FOR_STMT.test(cnt)) {\n //handling for condition\n var rlStr_1 = matches[1].split(' of ');\n // replace for each into actual JavaScript\n // eslint-disable-next-line\n cnt = '\"; ' + cnt.replace(matches[1], function (mtc) {\n localKeys.push(rlStr_1[0]);\n localKeys.push(rlStr_1[0] + 'Index');\n varCOunt = varCOunt + 1;\n // tslint:disable-next-line\n return 'var i' + varCOunt + '=0; i' + varCOunt + ' < ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix) + '.length; i' + varCOunt + '++';\n }) + '{ \\n ' + rlStr_1[0] + '= ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix)\n + '[i' + varCOunt + ']; \\n var ' + rlStr_1[0] + 'Index=i' + varCOunt + '; \\n str = str + \"';\n }\n else {\n //helper function handling\n var fnStr = cnt.split('(');\n // eslint-disable-next-line\n var fNameSpace = (helper && helper.hasOwnProperty(fnStr[0]) ? 'this.' : 'global');\n fNameSpace = (/\\./.test(fnStr[0]) ? '' : fNameSpace);\n var ftArray = matches[1].split(',');\n if (matches[1].length !== 0 && !(/data/).test(ftArray[0]) && !(/window./).test(ftArray[0])) {\n matches[1] = (fNameSpace === 'global' ? nameSpace + '.' + matches[1] : matches[1]);\n }\n var splRegexp = /@|\\$|#/gm;\n var arrObj = /\\]\\./gm;\n if (WINDOWFUNC.test(cnt) && arrObj.test(cnt) || splRegexp.test(cnt)) {\n var splArrRegexp = /@|\\$|#|\\]\\./gm;\n if (splArrRegexp.test(cnt)) {\n // tslint:disable-next-line\n cnt = '\"+ ' + (fNameSpace === 'global' ? '' : fNameSpace) + cnt.replace(matches[1], rlStr.replace(WORDFUNC, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '+ \"';\n }\n }\n else {\n cnt = '\" + ' + (fNameSpace === 'global' ? '' : fNameSpace) +\n cnt.replace(rlStr, addNameSpace(matches[1].replace(/,( |)data.|,/gi, ',' + nameSpace + '.').replace(/,( |)data.window/gi, ',window'), (fNameSpace === 'global' ? false : true), nameSpace, localKeys, ignorePrefix)) +\n '+\"';\n }\n }\n }\n else if (ELSE_STMT.test(cnt)) {\n // handling else condition\n cnt = '\"; ' + cnt.replace(ELSE_STMT, '} else { \\n str = str + \"');\n // eslint-disable-next-line\n }\n else if (!!cnt.match(IF_OR_FOR)) {\n // close condition\n cnt = cnt.replace(IF_OR_FOR, '\"; \\n } \\n str = str + \"');\n }\n else if (SPECIAL_CHAR.test(cnt)) {\n // template string with double slash with special character\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n }\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // template string with double slash\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // evaluate normal expression\n cnt = cnt !== '' ? '\"+' + addNameSpace(cnt.replace(/,/gi, '+' + nameSpace + '.'), (localKeys.indexOf(cnt) === -1), nameSpace, localKeys, ignorePrefix) + '+\"' : ' ';\n }\n }\n return cnt;\n });\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction addNameSpace(str, addNS, nameSpace, ignoreList, ignorePrefix) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix && str !== \"true\" && str !== \"false\") ? nameSpace + '.' + str : str);\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceArrObj(str, addNS, nameSpace, ignoreList) {\n var arrObjReg = /^\\..*/gm;\n return ((addNS && !(NOT_NUMBER.test(str)) &&\n ignoreList.indexOf(str.split('.')[0]) === -1 && !(arrObjReg.test(str))) ? nameSpace + '.' + str : str);\n}\n// // Create hashCode for template string to storeCached function\n// function hashCode(str: string): string {\n// return str.split('').reduce((a: number, b: string) => { a = ((a << 5) - a) + b.charCodeAt(0); return a & a; }, 0).toString();\n// }\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceForspecialChar(str, addNS, nameSpace, ignoreList) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1) ? nameSpace + '[\"' + str : str);\n}\n// eslint-disable-next-line\nfunction SlashReplace(tempStr) {\n var double = '\\\\\\\\';\n if (tempStr.match(DOUBLE_SLASH)) {\n // eslint-disable-next-line\n tempStr = tempStr;\n }\n else {\n tempStr = tempStr.replace(SINGLE_SLASH, double);\n }\n return tempStr;\n}\n/**\n *\n * @param {string} str ?\n * @param {string} nameSpaceNew ?\n * @param {string[]} keys ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction HandleSpecialCharArrObj(str, nameSpaceNew, keys, ignorePrefix) {\n str = str.trim();\n var windowFunc = /\\window\\./gm;\n if (!windowFunc.test(str)) {\n var quotes = /'|\"/gm;\n var splRegexp = /@|\\$|#/gm;\n if (splRegexp.test(str)) {\n str = NameSpaceForspecialChar(str, (keys.indexOf(str) === -1), nameSpaceNew, keys) + '\"]';\n }\n if (ARR_OBJ.test(str)) {\n return NameSpaceArrObj(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys);\n }\n else {\n return addNameSpace(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys, ignorePrefix);\n }\n }\n else {\n return str;\n }\n}\n","/**\n * Template Engine Bridge\n */\nimport { compile as render } from './template';\nimport { createElement } from './dom';\nimport { isNullOrUndefined, isBlazor } from './util';\nvar HAS_ROW = /^[\\n\\r.]+ 0) {\n elements.forEach(function (element) {\n detach(element);\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeJsEvents = function () {\n var elements = this.wrapElement.querySelectorAll('[' + jsEvents.join('],[') + ']');\n if (elements.length > 0) {\n elements.forEach(function (element) {\n jsEvents.forEach(function (attr) {\n if (element.hasAttribute(attr)) {\n element.removeAttribute(attr);\n }\n });\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeXssAttrs = function () {\n var _this = this;\n // eslint-disable-next-line\n this.removeAttrs.forEach(function (item, index) {\n var elements = _this.wrapElement.querySelectorAll(item.selector);\n if (elements.length > 0) {\n elements.forEach(function (element) {\n element.removeAttribute(item.attribute);\n });\n }\n });\n };\n return SanitizeHtmlHelper;\n}());\nexport { SanitizeHtmlHelper };\n","/* eslint-disable valid-jsdoc */\n/* eslint-disable security/detect-object-injection */\nimport { DataUtil } from './util';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * Query class is used to build query which is used by the DataManager to communicate with datasource.\n */\nvar Query = /** @class */ (function () {\n /**\n * Constructor for Query class.\n *\n * @param {string|string[]} from?\n * @param from\n * @hidden\n */\n function Query(from) {\n /** @hidden */\n this.subQuery = null;\n /** @hidden */\n this.isChild = false;\n /** @hidden */\n this.distincts = [];\n this.queries = [];\n this.key = '';\n this.fKey = '';\n if (typeof from === 'string') {\n this.fromTable = from;\n }\n else if (from && from instanceof Array) {\n this.lookups = from;\n }\n this.expands = [];\n this.sortedColumns = [];\n this.groupedColumns = [];\n this.subQuery = null;\n this.isChild = false;\n this.params = [];\n this.lazyLoad = [];\n return this;\n }\n /**\n * Sets the primary key.\n *\n * @param {string} field - Defines the column field.\n */\n Query.prototype.setKey = function (field) {\n this.key = field;\n return this;\n };\n /**\n * Sets default DataManager to execute query.\n *\n * @param {DataManager} dataManager - Defines the DataManager.\n */\n Query.prototype.using = function (dataManager) {\n this.dataManager = dataManager;\n return this;\n };\n /**\n * Executes query with the given DataManager.\n *\n * @param {DataManager} dataManager - Defines the DataManager.\n * @param {Function} done - Defines the success callback.\n * @param {Function} fail - Defines the failure callback.\n * @param {Function} always - Defines the callback which will be invoked on either success or failure.\n *\n *
\n     * let dataManager: DataManager = new DataManager([{ ID: '10' }, { ID: '2' }, { ID: '1' }, { ID: '20' }]);\n     * let query: Query = new Query();\n     * query.sortBy('ID', (x: string, y: string): number => { return parseInt(x, 10) - parseInt(y, 10) });\n     * let promise: Promise< Object > = query.execute(dataManager);\n     * promise.then((e: { result: Object }) => { });\n     * 
\n */\n Query.prototype.execute = function (dataManager, done, fail, always) {\n dataManager = dataManager || this.dataManager;\n if (dataManager) {\n return dataManager.executeQuery(this, done, fail, always);\n }\n return DataUtil.throwError('Query - execute() : dataManager needs to be is set using \"using\" function or should be passed as argument');\n };\n /**\n * Executes query with the local datasource.\n *\n * @param {DataManager} dataManager - Defines the DataManager.\n */\n Query.prototype.executeLocal = function (dataManager) {\n dataManager = dataManager || this.dataManager;\n if (dataManager) {\n return dataManager.executeLocal(this);\n }\n return DataUtil.throwError('Query - executeLocal() : dataManager needs to be is set using \"using\" function or should be passed as argument');\n };\n /**\n * Creates deep copy of the Query object.\n */\n Query.prototype.clone = function () {\n var cloned = new Query();\n cloned.queries = this.queries.slice(0);\n cloned.key = this.key;\n cloned.isChild = this.isChild;\n cloned.dataManager = this.dataManager;\n cloned.fromTable = this.fromTable;\n cloned.params = this.params.slice(0);\n cloned.expands = this.expands.slice(0);\n cloned.sortedColumns = this.sortedColumns.slice(0);\n cloned.groupedColumns = this.groupedColumns.slice(0);\n cloned.subQuerySelector = this.subQuerySelector;\n cloned.subQuery = this.subQuery;\n cloned.fKey = this.fKey;\n cloned.isCountRequired = this.isCountRequired;\n cloned.distincts = this.distincts.slice(0);\n cloned.lazyLoad = this.lazyLoad.slice(0);\n return cloned;\n };\n /**\n * Specifies the name of table to retrieve data in query execution.\n *\n * @param {string} tableName - Defines the table name.\n */\n Query.prototype.from = function (tableName) {\n this.fromTable = tableName;\n return this;\n };\n /**\n * Adds additional parameter which will be sent along with the request which will be generated while DataManager execute.\n *\n * @param {string} key - Defines the key of additional parameter.\n * @param {Function|string} value - Defines the value for the key.\n */\n Query.prototype.addParams = function (key, value) {\n if (typeof value === 'function') {\n this.params.push({ key: key, fn: value });\n }\n else {\n this.params.push({ key: key, value: value });\n }\n return this;\n };\n /**\n * @param fields\n * @hidden\n */\n Query.prototype.distinct = function (fields) {\n if (typeof fields === 'string') {\n this.distincts = [].slice.call([fields], 0);\n }\n else {\n this.distincts = fields.slice(0);\n }\n return this;\n };\n /**\n * Expands the related table.\n *\n * @param {string|Object[]} tables\n */\n Query.prototype.expand = function (tables) {\n if (typeof tables === 'string') {\n this.expands = [].slice.call([tables], 0);\n }\n else {\n this.expands = tables.slice(0);\n }\n return this;\n };\n /**\n * Filter data with given filter criteria.\n *\n * @param {string|Predicate} fieldName - Defines the column field or Predicate.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string|number|boolean} value - Defines the values to match with data.\n * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreAccent\n * @param matchCase\n */\n Query.prototype.where = function (fieldName, operator, value, ignoreCase, ignoreAccent, matchCase) {\n operator = operator ? (operator).toLowerCase() : null;\n var predicate = null;\n if (typeof fieldName === 'string') {\n predicate = new Predicate(fieldName, operator, value, ignoreCase, ignoreAccent, matchCase);\n }\n else if (fieldName instanceof Predicate) {\n predicate = fieldName;\n }\n this.queries.push({\n fn: 'onWhere',\n e: predicate\n });\n return this;\n };\n /**\n * Search data with given search criteria.\n *\n * @param {string|number|boolean} searchKey - Defines the search key.\n * @param {string|string[]} fieldNames - Defines the collection of column fields.\n * @param {string} operator - Defines the operator how to search data.\n * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreAccent\n */\n Query.prototype.search = function (searchKey, fieldNames, operator, ignoreCase, ignoreAccent) {\n if (typeof fieldNames === 'string') {\n fieldNames = [fieldNames];\n }\n if (!operator || operator === 'none') {\n operator = 'contains';\n }\n var comparer = DataUtil.fnOperators[operator];\n this.queries.push({\n fn: 'onSearch',\n e: {\n fieldNames: fieldNames,\n operator: operator,\n searchKey: searchKey,\n ignoreCase: ignoreCase,\n ignoreAccent: ignoreAccent,\n comparer: comparer\n }\n });\n return this;\n };\n /**\n * Sort the data with given sort criteria.\n * By default, sort direction is ascending.\n *\n * @param {string|string[]} fieldName - Defines the single or collection of column fields.\n * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function.\n * @param isFromGroup\n */\n Query.prototype.sortBy = function (fieldName, comparer, isFromGroup) {\n return this.sortByForeignKey(fieldName, comparer, isFromGroup);\n };\n /**\n * Sort the data with given sort criteria.\n * By default, sort direction is ascending.\n *\n * @param {string|string[]} fieldName - Defines the single or collection of column fields.\n * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function.\n * @param isFromGroup\n * @param {string} direction - Defines the sort direction .\n */\n Query.prototype.sortByForeignKey = function (fieldName, comparer, isFromGroup, direction) {\n var order = !isNullOrUndefined(direction) ? direction : 'ascending';\n var sorts;\n var temp;\n if (typeof fieldName === 'string' && DataUtil.endsWith(fieldName.toLowerCase(), ' desc')) {\n fieldName = fieldName.replace(/ desc$/i, '');\n comparer = 'descending';\n }\n if (!comparer || typeof comparer === 'string') {\n order = comparer ? comparer.toLowerCase() : 'ascending';\n comparer = DataUtil.fnSort(comparer);\n }\n if (isFromGroup) {\n sorts = Query.filterQueries(this.queries, 'onSortBy');\n for (var i = 0; i < sorts.length; i++) {\n temp = sorts[i].e.fieldName;\n if (typeof temp === 'string') {\n if (temp === fieldName) {\n return this;\n }\n }\n else if (temp instanceof Array) {\n for (var j = 0; j < temp.length; j++) {\n if (temp[j] === fieldName || fieldName.toLowerCase() === temp[j] + ' desc') {\n return this;\n }\n }\n }\n }\n }\n this.queries.push({\n fn: 'onSortBy',\n e: {\n fieldName: fieldName,\n comparer: comparer,\n direction: order\n }\n });\n return this;\n };\n /**\n * Sorts data in descending order.\n *\n * @param {string} fieldName - Defines the column field.\n */\n Query.prototype.sortByDesc = function (fieldName) {\n return this.sortBy(fieldName, 'descending');\n };\n /**\n * Groups data with the given field name.\n *\n * @param {string} fieldName - Defines the column field.\n * @param fn\n * @param format\n */\n Query.prototype.group = function (fieldName, fn, format) {\n this.sortBy(fieldName, null, true);\n this.queries.push({\n fn: 'onGroup',\n e: {\n fieldName: fieldName,\n comparer: fn ? fn : null,\n format: format ? format : null\n }\n });\n return this;\n };\n /**\n * Gets data based on the given page index and size.\n *\n * @param {number} pageIndex - Defines the current page index.\n * @param {number} pageSize - Defines the no of records per page.\n */\n Query.prototype.page = function (pageIndex, pageSize) {\n this.queries.push({\n fn: 'onPage',\n e: {\n pageIndex: pageIndex,\n pageSize: pageSize\n }\n });\n return this;\n };\n /**\n * Gets data based on the given start and end index.\n *\n * @param {number} start - Defines the start index of the datasource.\n * @param {number} end - Defines the end index of the datasource.\n */\n Query.prototype.range = function (start, end) {\n this.queries.push({\n fn: 'onRange',\n e: {\n start: start,\n end: end\n }\n });\n return this;\n };\n /**\n * Gets data from the top of the data source based on given number of records count.\n *\n * @param {number} nos - Defines the no of records to retrieve from datasource.\n */\n Query.prototype.take = function (nos) {\n this.queries.push({\n fn: 'onTake',\n e: {\n nos: nos\n }\n });\n return this;\n };\n /**\n * Skips data with given number of records count from the top of the data source.\n *\n * @param {number} nos - Defines the no of records skip in the datasource.\n */\n Query.prototype.skip = function (nos) {\n this.queries.push({\n fn: 'onSkip',\n e: { nos: nos }\n });\n return this;\n };\n /**\n * Selects specified columns from the data source.\n *\n * @param {string|string[]} fieldNames - Defines the collection of column fields.\n */\n Query.prototype.select = function (fieldNames) {\n if (typeof fieldNames === 'string') {\n fieldNames = [].slice.call([fieldNames], 0);\n }\n this.queries.push({\n fn: 'onSelect',\n e: { fieldNames: fieldNames }\n });\n return this;\n };\n /**\n * Gets the records in hierarchical relationship from two tables. It requires the foreign key to relate two tables.\n *\n * @param {Query} query - Defines the query to relate two tables.\n * @param {Function} selectorFn - Defines the custom function to select records.\n */\n Query.prototype.hierarchy = function (query, selectorFn) {\n this.subQuerySelector = selectorFn;\n this.subQuery = query;\n return this;\n };\n /**\n * Sets the foreign key which is used to get data from the related table.\n *\n * @param {string} key - Defines the foreign key.\n */\n Query.prototype.foreignKey = function (key) {\n this.fKey = key;\n return this;\n };\n /**\n * It is used to get total number of records in the DataManager execution result.\n */\n Query.prototype.requiresCount = function () {\n this.isCountRequired = true;\n return this;\n };\n //type - sum, avg, min, max\n /**\n * Aggregate the data with given type and field name.\n *\n * @param {string} type - Defines the aggregate type.\n * @param {string} field - Defines the column field to aggregate.\n */\n Query.prototype.aggregate = function (type, field) {\n this.queries.push({\n fn: 'onAggregates',\n e: { field: field, type: type }\n });\n return this;\n };\n /**\n * Pass array of filterColumn query for performing filter operation.\n *\n * @param {QueryOptions[]} queries\n * @param {string} name\n * @hidden\n */\n Query.filterQueries = function (queries, name) {\n return queries.filter(function (q) {\n return q.fn === name;\n });\n };\n /**\n * To get the list of queries which is already filtered in current data source.\n *\n * @param {Object[]} queries\n * @param {string[]} singles\n * @hidden\n */\n Query.filterQueryLists = function (queries, singles) {\n var filtered = queries.filter(function (q) {\n return singles.indexOf(q.fn) !== -1;\n });\n var res = {};\n for (var i = 0; i < filtered.length; i++) {\n if (!res[filtered[i].fn]) {\n res[filtered[i].fn] = filtered[i].e;\n }\n }\n return res;\n };\n return Query;\n}());\nexport { Query };\n/**\n * Predicate class is used to generate complex filter criteria.\n * This will be used by DataManager to perform multiple filtering operation.\n */\nvar Predicate = /** @class */ (function () {\n /**\n * Constructor for Predicate class.\n *\n * @param {string|Predicate} field\n * @param {string} operator\n * @param {string|number|boolean|Predicate|Predicate[]} value\n * @param {boolean=false} ignoreCase\n * @param ignoreAccent\n * @param {boolean} matchCase\n * @hidden\n */\n function Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase) {\n if (ignoreCase === void 0) { ignoreCase = false; }\n /** @hidden */\n this.ignoreAccent = false;\n /** @hidden */\n this.isComplex = false;\n if (typeof field === 'string') {\n this.field = field;\n this.operator = operator.toLowerCase();\n this.value = value;\n this.matchCase = matchCase;\n this.ignoreCase = ignoreCase;\n this.ignoreAccent = ignoreAccent;\n this.isComplex = false;\n this.comparer = DataUtil.fnOperators.processOperator(this.operator);\n }\n else if (field instanceof Predicate && value instanceof Predicate || value instanceof Array) {\n this.isComplex = true;\n this.condition = operator.toLowerCase();\n this.predicates = [field];\n this.matchCase = field.matchCase;\n this.ignoreCase = field.ignoreCase;\n this.ignoreAccent = field.ignoreAccent;\n if (value instanceof Array) {\n [].push.apply(this.predicates, value);\n }\n else {\n this.predicates.push(value);\n }\n }\n return this;\n }\n /**\n * Adds n-number of new predicates on existing predicate with “and” condition.\n *\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.and = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'and');\n };\n /**\n * Adds new predicate on existing predicate with “and” condition.\n *\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreCase\n * @param ignoreAccent\n */\n Predicate.prototype.and = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'and', ignoreCase, ignoreAccent);\n };\n /**\n * Adds n-number of new predicates on existing predicate with “or” condition.\n *\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.or = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'or');\n };\n /**\n * Adds new predicate on existing predicate with “or” condition.\n *\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreCase\n * @param ignoreAccent\n */\n Predicate.prototype.or = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'or', ignoreCase, ignoreAccent);\n };\n /**\n * Adds n-number of new predicates on existing predicate with “and not” condition.\n *\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.ornot = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'or not');\n };\n /**\n * Adds new predicate on existing predicate with “and not” condition.\n *\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreCase\n * @param ignoreAccent\n */\n Predicate.prototype.ornot = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'ornot', ignoreCase, ignoreAccent);\n };\n /**\n * Adds n-number of new predicates on existing predicate with “and not” condition.\n *\n * @param {Object[]} args - Defines the collection of predicates.\n */\n Predicate.andnot = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return Predicate.combinePredicates([].slice.call(args, 0), 'and not');\n };\n /**\n * Adds new predicate on existing predicate with “and not” condition.\n *\n * @param {string} field - Defines the column field.\n * @param {string} operator - Defines the operator how to filter data.\n * @param {string} value - Defines the values to match with data.\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\n * filter data with case insensitive.\n * @param ignoreCase\n * @param ignoreAccent\n */\n Predicate.prototype.andnot = function (field, operator, value, ignoreCase, ignoreAccent) {\n return Predicate.combine(this, field, operator, value, 'andnot', ignoreCase, ignoreAccent);\n };\n /**\n * Converts plain JavaScript object to Predicate object.\n *\n * @param {Predicate[]|Predicate} json - Defines single or collection of Predicate.\n */\n Predicate.fromJson = function (json) {\n if (json instanceof Array) {\n var res = [];\n for (var i = 0, len = json.length; i < len; i++) {\n res.push(this.fromJSONData(json[i]));\n }\n return res;\n }\n var pred = json;\n return this.fromJSONData(pred);\n };\n /**\n * Validate the record based on the predicates.\n *\n * @param {Object} record - Defines the datasource record.\n */\n Predicate.prototype.validate = function (record) {\n var predicate = this.predicates ? this.predicates : [];\n var ret;\n var isAnd;\n if (!this.isComplex && this.comparer) {\n if (this.condition && this.condition.indexOf('not') !== -1) {\n this.condition = this.condition.split('not')[0] === '' ? undefined : this.condition.split('not')[0];\n return !this.comparer.call(this, DataUtil.getObject(this.field, record), this.value, this.ignoreCase, this.ignoreAccent);\n }\n else {\n return this.comparer.call(this, DataUtil.getObject(this.field, record), this.value, this.ignoreCase, this.ignoreAccent);\n }\n }\n if (this.condition && this.condition.indexOf('not') !== -1) {\n isAnd = this.condition.indexOf('and') !== -1;\n }\n else {\n isAnd = this.condition === 'and';\n }\n for (var i = 0; i < predicate.length; i++) {\n if (i > 0 && this.condition && this.condition.indexOf('not') !== -1) {\n predicate[i].condition = predicate[i].condition ? predicate[i].condition + 'not' : 'not';\n }\n ret = predicate[i].validate(record);\n if (isAnd) {\n if (!ret) {\n return false;\n }\n }\n else {\n if (ret) {\n return true;\n }\n }\n }\n return isAnd;\n };\n /**\n * Converts predicates to plain JavaScript.\n * This method is uses Json stringify when serializing Predicate object.\n */\n Predicate.prototype.toJson = function () {\n var predicates;\n var p;\n if (this.isComplex) {\n predicates = [];\n p = this.predicates;\n for (var i = 0; i < p.length; i++) {\n predicates.push(p[i].toJson());\n }\n }\n return {\n isComplex: this.isComplex,\n field: this.field,\n operator: this.operator,\n value: this.value,\n ignoreCase: this.ignoreCase,\n ignoreAccent: this.ignoreAccent,\n condition: this.condition,\n predicates: predicates,\n matchCase: this.matchCase\n };\n };\n Predicate.combinePredicates = function (predicates, operator) {\n if (predicates.length === 1) {\n if (!(predicates[0] instanceof Array)) {\n return predicates[0];\n }\n predicates = predicates[0];\n }\n return new Predicate(predicates[0], operator, predicates.slice(1));\n };\n Predicate.combine = function (pred, field, operator, value, condition, ignoreCase, ignoreAccent) {\n if (field instanceof Predicate) {\n return Predicate[condition](pred, field);\n }\n if (typeof field === 'string') {\n return Predicate[condition](pred, new Predicate(field, operator, value, ignoreCase, ignoreAccent));\n }\n return DataUtil.throwError('Predicate - ' + condition + ' : invalid arguments');\n };\n Predicate.fromJSONData = function (json) {\n var preds = json.predicates || [];\n var len = preds.length;\n var predicates = [];\n var result;\n for (var i = 0; i < len; i++) {\n predicates.push(this.fromJSONData(preds[i]));\n }\n if (!json.isComplex) {\n result = new Predicate(json.field, json.operator, json.value, json.ignoreCase, json.ignoreAccent);\n }\n else {\n result = new Predicate(predicates[0], json.condition, predicates.slice(1));\n }\n return result;\n };\n return Predicate;\n}());\nexport { Predicate };\n","/* eslint-disable valid-jsdoc */\n/* eslint-disable security/detect-object-injection */\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { DataManager } from './manager';\nimport { Query, Predicate } from './query';\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\n/**\n * Data manager common utility methods.\n *\n * @hidden\n */\nvar DataUtil = /** @class */ (function () {\n function DataUtil() {\n }\n /**\n * Returns the value by invoking the provided parameter function.\n * If the paramater is not of type function then it will be returned as it is.\n *\n * @param {Function|string|string[]|number} value\n * @param {Object} inst?\n * @param inst\n * @hidden\n */\n DataUtil.getValue = function (value, inst) {\n if (typeof value === 'function') {\n return value.call(inst || {});\n }\n return value;\n };\n /**\n * Returns true if the input string ends with given string.\n *\n * @param {string} input\n * @param {string} substr\n */\n DataUtil.endsWith = function (input, substr) {\n return input.slice && input.slice(-substr.length) === substr;\n };\n /**\n * Returns true if the input string not ends with given string.\n *\n * @param {string} input\n * @param {string} substr\n */\n DataUtil.notEndsWith = function (input, substr) {\n return input.slice && input.slice(-substr.length) !== substr;\n };\n /**\n * Returns true if the input string starts with given string.\n *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param start\n */\n DataUtil.startsWith = function (input, start) {\n return input.slice(0, start.length) === start;\n };\n /**\n * Returns true if the input string not starts with given string.\n *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param start\n */\n DataUtil.notStartsWith = function (input, start) {\n return input.slice(0, start.length) !== start;\n };\n /**\n * Returns true if the input string pattern(wildcard) matches with given string.\n *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param pattern\n */\n DataUtil.wildCard = function (input, pattern) {\n var asteriskSplit;\n var optionalSplit;\n // special character allowed search\n if (pattern.indexOf('[') !== -1) {\n pattern = pattern.split('[').join('[[]');\n }\n if (pattern.indexOf('(') !== -1) {\n pattern = pattern.split('(').join('[(]');\n }\n if (pattern.indexOf(')') !== -1) {\n pattern = pattern.split(')').join('[)]');\n }\n if (pattern.indexOf('\\\\') !== -1) {\n pattern = pattern.split('\\\\').join('[\\\\\\\\]');\n }\n if (pattern.indexOf('*') !== -1) {\n if (pattern.charAt(0) !== '*') {\n pattern = '^' + pattern;\n }\n if (pattern.charAt(pattern.length - 1) !== '*') {\n pattern = pattern + '$';\n }\n asteriskSplit = pattern.split('*');\n for (var i = 0; i < asteriskSplit.length; i++) {\n if (asteriskSplit[i].indexOf('.') === -1) {\n asteriskSplit[i] = asteriskSplit[i] + '.*';\n }\n else {\n asteriskSplit[i] = asteriskSplit[i] + '*';\n }\n }\n pattern = asteriskSplit.join('');\n }\n if (pattern.indexOf('%3f') !== -1 || pattern.indexOf('?') !== -1) {\n optionalSplit = pattern.indexOf('%3f') !== -1 ? pattern.split('%3f') : pattern.split('?');\n pattern = optionalSplit.join('.');\n }\n // eslint-disable-next-line security/detect-non-literal-regexp\n var regexPattern = new RegExp(pattern, 'g');\n return regexPattern.test(input);\n };\n /**\n * Returns true if the input string pattern(like) matches with given string.\n *\n * @param {string} str\n * @param {string} startstr\n * @param input\n * @param pattern\n */\n DataUtil.like = function (input, pattern) {\n if (pattern.indexOf('%') !== -1) {\n if (pattern.charAt(0) === '%' && pattern.lastIndexOf('%') < 2) {\n pattern = pattern.substring(1, pattern.length);\n return DataUtil.startsWith(DataUtil.toLowerCase(input), DataUtil.toLowerCase(pattern));\n }\n else if (pattern.charAt(pattern.length - 1) === '%' && pattern.indexOf('%') > pattern.length - 3) {\n pattern = pattern.substring(0, pattern.length - 1);\n return DataUtil.endsWith(DataUtil.toLowerCase(input), DataUtil.toLowerCase(pattern));\n }\n else if (pattern.lastIndexOf('%') !== pattern.indexOf('%') && pattern.lastIndexOf('%') > pattern.indexOf('%') + 1) {\n pattern = pattern.substring(pattern.indexOf('%') + 1, pattern.lastIndexOf('%'));\n return input.indexOf(pattern) !== -1;\n }\n else {\n return input.indexOf(pattern) !== -1;\n }\n }\n else {\n return false;\n }\n };\n /**\n * To return the sorting function based on the string.\n *\n * @param {string} order\n * @hidden\n */\n DataUtil.fnSort = function (order) {\n order = order ? DataUtil.toLowerCase(order) : 'ascending';\n if (order === 'ascending') {\n return this.fnAscending;\n }\n return this.fnDescending;\n };\n /**\n * Comparer function which is used to sort the data in ascending order.\n *\n * @param {string|number} x\n * @param {string|number} y\n * @returns number\n */\n DataUtil.fnAscending = function (x, y) {\n if (isNullOrUndefined(x) && isNullOrUndefined(y)) {\n return -1;\n }\n if (y === null || y === undefined) {\n return -1;\n }\n if (typeof x === 'string') {\n return x.localeCompare(y);\n }\n if (x === null || x === undefined) {\n return 1;\n }\n return x - y;\n };\n /**\n * Comparer function which is used to sort the data in descending order.\n *\n * @param {string|number} x\n * @param {string|number} y\n * @returns number\n */\n DataUtil.fnDescending = function (x, y) {\n if (isNullOrUndefined(x) && isNullOrUndefined(y)) {\n return -1;\n }\n if (y === null || y === undefined) {\n return 1;\n }\n if (typeof x === 'string') {\n return x.localeCompare(y) * -1;\n }\n if (x === null || x === undefined) {\n return -1;\n }\n return y - x;\n };\n DataUtil.extractFields = function (obj, fields) {\n var newObj = {};\n for (var i = 0; i < fields.length; i++) {\n newObj = this.setValue(fields[i], this.getObject(fields[i], obj), newObj);\n }\n return newObj;\n };\n /**\n * Select objects by given fields from jsonArray.\n *\n * @param {Object[]} jsonArray\n * @param {string[]} fields\n */\n DataUtil.select = function (jsonArray, fields) {\n var newData = [];\n for (var i = 0; i < jsonArray.length; i++) {\n newData.push(this.extractFields(jsonArray[i], fields));\n }\n return newData;\n };\n /**\n * Group the input data based on the field name.\n * It also performs aggregation of the grouped records based on the aggregates paramater.\n *\n * @param {Object[]} jsonArray\n * @param {string} field?\n * @param {Object[]} agg?\n * @param {number} level?\n * @param {Object[]} groupDs?\n * @param field\n * @param aggregates\n * @param level\n * @param groupDs\n * @param format\n * @param isLazyLoad\n */\n DataUtil.group = function (jsonArray, field, aggregates, level, groupDs, format, isLazyLoad) {\n level = level || 1;\n var jsonData = jsonArray;\n var guid = 'GroupGuid';\n if (jsonData.GroupGuid === consts[guid]) {\n var _loop_1 = function (j) {\n if (!isNullOrUndefined(groupDs)) {\n var indx = -1;\n var temp = groupDs.filter(function (e) { return e.key === jsonData[j].key; });\n indx = groupDs.indexOf(temp[0]);\n jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, groupDs[indx].items, format, isLazyLoad);\n jsonData[j].count = groupDs[indx].count;\n }\n else {\n jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, null, format, isLazyLoad);\n jsonData[j].count = jsonData[j].items.length;\n }\n };\n var this_1 = this;\n for (var j = 0; j < jsonData.length; j++) {\n _loop_1(j);\n }\n jsonData.childLevels += 1;\n return jsonData;\n }\n var grouped = {};\n var groupedArray = [];\n groupedArray.GroupGuid = consts[guid];\n groupedArray.level = level;\n groupedArray.childLevels = 0;\n groupedArray.records = jsonData;\n var _loop_2 = function (i) {\n var val = this_2.getVal(jsonData, i, field);\n if (!isNullOrUndefined(format)) {\n val = format(val, field);\n }\n if (!grouped[val]) {\n grouped[val] = {\n key: val,\n count: 0,\n items: [],\n aggregates: {},\n field: field\n };\n groupedArray.push(grouped[val]);\n if (!isNullOrUndefined(groupDs)) {\n var tempObj = groupDs.filter(function (e) { return e.key === grouped[val].key; });\n grouped[val].count = tempObj[0].count;\n }\n }\n grouped[val].count = !isNullOrUndefined(groupDs) ? grouped[val].count : grouped[val].count += 1;\n if (!isLazyLoad || (isLazyLoad && aggregates.length)) {\n grouped[val].items.push(jsonData[i]);\n }\n };\n var this_2 = this;\n for (var i = 0; i < jsonData.length; i++) {\n _loop_2(i);\n }\n if (aggregates && aggregates.length) {\n var _loop_3 = function (i) {\n var res = {};\n var fn = void 0;\n var aggs = aggregates;\n for (var j = 0; j < aggregates.length; j++) {\n fn = DataUtil.aggregates[aggregates[j].type];\n if (!isNullOrUndefined(groupDs)) {\n var temp = groupDs.filter(function (e) { return e.key === groupedArray[i].key; });\n if (fn) {\n res[aggs[j].field + ' - ' + aggs[j].type] = fn(temp[0].items, aggs[j].field);\n }\n }\n else {\n if (fn) {\n res[aggs[j].field + ' - ' + aggs[j].type] = fn(groupedArray[i].items, aggs[j].field);\n }\n }\n }\n groupedArray[i].aggregates = res;\n };\n for (var i = 0; i < groupedArray.length; i++) {\n _loop_3(i);\n }\n }\n if (isLazyLoad && groupedArray.length && aggregates.length) {\n for (var i = 0; i < groupedArray.length; i++) {\n groupedArray[i].items = [];\n }\n }\n return jsonData.length && groupedArray || jsonData;\n };\n /**\n * It is used to categorize the multiple items based on a specific field in jsonArray.\n * The hierarchical queries are commonly required when you use foreign key binding.\n *\n * @param {string} fKey\n * @param {string} from\n * @param {Object[]} source\n * @param {Group} lookup?\n * @param {string} pKey?\n * @param lookup\n * @param pKey\n * @hidden\n */\n DataUtil.buildHierarchy = function (fKey, from, source, lookup, pKey) {\n var i;\n var grp = {};\n var temp;\n if (lookup.result) {\n lookup = lookup.result;\n }\n if (lookup.GroupGuid) {\n this.throwError('DataManager: Do not have support Grouping in hierarchy');\n }\n for (i = 0; i < lookup.length; i++) {\n var fKeyData = this.getObject(fKey, lookup[i]);\n temp = grp[fKeyData] || (grp[fKeyData] = []);\n temp.push(lookup[i]);\n }\n for (i = 0; i < source.length; i++) {\n var fKeyData = this.getObject(pKey || fKey, source[i]);\n source[i][from] = grp[fKeyData];\n }\n };\n /**\n * The method used to get the field names which started with specified characters.\n *\n * @param {Object} obj\n * @param {string[]} fields?\n * @param {string} prefix?\n * @param fields\n * @param prefix\n * @hidden\n */\n DataUtil.getFieldList = function (obj, fields, prefix) {\n if (prefix === undefined) {\n prefix = '';\n }\n if (fields === undefined || fields === null) {\n return this.getFieldList(obj, [], prefix);\n }\n var copyObj = obj;\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n if (typeof copyObj[prop] === 'object' && !(copyObj[prop] instanceof Array)) {\n this.getFieldList(copyObj[prop], fields, prefix + prop + '.');\n }\n else {\n fields.push(prefix + prop);\n }\n }\n return fields;\n };\n /**\n * Gets the value of the property in the given object.\n * The complex object can be accessed by providing the field names concatenated with dot(.).\n *\n * @param {string} nameSpace - The name of the property to be accessed.\n * @param {Object} from - Defines the source object.\n */\n DataUtil.getObject = function (nameSpace, from) {\n if (!nameSpace) {\n return from;\n }\n if (!from) {\n return undefined;\n }\n if (nameSpace.indexOf('.') === -1) {\n var lowerCaseNameSpace = nameSpace.charAt(0).toLowerCase() + nameSpace.slice(1);\n var upperCaseNameSpace = nameSpace.charAt(0).toUpperCase() + nameSpace.slice(1);\n if (!isNullOrUndefined(from[nameSpace])) {\n return from[nameSpace];\n }\n else {\n if (!isNullOrUndefined(from[lowerCaseNameSpace])) {\n return from[lowerCaseNameSpace];\n }\n else if (!isNullOrUndefined(from[upperCaseNameSpace])) {\n return from[upperCaseNameSpace];\n }\n else {\n return null;\n }\n }\n }\n var value = from;\n var splits = nameSpace.split('.');\n for (var i = 0; i < splits.length; i++) {\n if (value == null) {\n break;\n }\n value = value[splits[i]];\n if (value === undefined) {\n var casing = splits[i].charAt(0).toUpperCase() + splits[i].slice(1);\n value = from[casing] || from[casing.charAt(0).toLowerCase() + casing.slice(1)] || null;\n }\n from = value;\n }\n return value;\n };\n /**\n * To set value for the nameSpace in desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object.\n * @param {Object} value - Value that you need to set.\n * @param {Object} obj - Object to get the inner object value.\n * @return { [key: string]: Object; } | Object\n * @hidden\n */\n DataUtil.setValue = function (nameSpace, value, obj) {\n var keys = nameSpace.toString().split('.');\n var start = obj || {};\n var fromObj = start;\n var i;\n var length = keys.length;\n var key;\n for (i = 0; i < length; i++) {\n key = keys[i];\n if (i + 1 === length) {\n fromObj[key] = value === undefined ? undefined : value;\n }\n else if (isNullOrUndefined(fromObj[key])) {\n fromObj[key] = {};\n }\n fromObj = fromObj[key];\n }\n return start;\n };\n /**\n * Sort the given data based on the field and comparer.\n *\n * @param {Object[]} ds - Defines the input data.\n * @param {string} field - Defines the field to be sorted.\n * @param {Function} comparer - Defines the comparer function used to sort the records.\n */\n DataUtil.sort = function (ds, field, comparer) {\n if (ds.length <= 1) {\n return ds;\n }\n var middle = parseInt((ds.length / 2).toString(), 10);\n var left = ds.slice(0, middle);\n var right = ds.slice(middle);\n left = this.sort(left, field, comparer);\n right = this.sort(right, field, comparer);\n return this.merge(left, right, field, comparer);\n };\n DataUtil.ignoreDiacritics = function (value) {\n if (typeof value !== 'string') {\n return value;\n }\n var result = value.split('');\n var newValue = result.map(function (temp) { return temp in DataUtil.diacritics ? DataUtil.diacritics[temp] : temp; });\n return newValue.join('');\n };\n DataUtil.merge = function (left, right, fieldName, comparer) {\n var result = [];\n var current;\n while (left.length > 0 || right.length > 0) {\n if (left.length > 0 && right.length > 0) {\n if (comparer) {\n current = comparer(this.getVal(left, 0, fieldName), this.getVal(right, 0, fieldName), left[0], right[0]) <= 0 ? left : right;\n }\n else {\n current = left[0][fieldName] < left[0][fieldName] ? left : right;\n }\n }\n else {\n current = left.length > 0 ? left : right;\n }\n result.push(current.shift());\n }\n return result;\n };\n DataUtil.getVal = function (array, index, field) {\n return field ? this.getObject(field, array[index]) : array[index];\n };\n DataUtil.toLowerCase = function (val) {\n return val ? typeof val === 'string' ? val.toLowerCase() : val.toString() : (val === 0 || val === false) ? val.toString() : '';\n };\n /**\n * To perform the filter operation with specified adaptor and returns the result.\n *\n * @param {Object} adaptor\n * @param {string} fnName\n * @param {Object} param1?\n * @param {Object} param2?\n * @param param1\n * @param param2\n * @hidden\n */\n DataUtil.callAdaptorFunction = function (adaptor, fnName, param1, param2) {\n if (fnName in adaptor) {\n var res = adaptor[fnName](param1, param2);\n if (!isNullOrUndefined(res)) {\n param1 = res;\n }\n }\n return param1;\n };\n DataUtil.getAddParams = function (adp, dm, query) {\n var req = {};\n DataUtil.callAdaptorFunction(adp, 'addParams', {\n dm: dm,\n query: query,\n params: query.params,\n reqParams: req\n });\n return req;\n };\n /**\n * Checks wheather the given input is a plain object or not.\n *\n * @param {Object|Object[]} obj\n */\n DataUtil.isPlainObject = function (obj) {\n return (!!obj) && (obj.constructor === Object);\n };\n /**\n * Returns true when the browser cross origin request.\n */\n DataUtil.isCors = function () {\n var xhr = null;\n var request = 'XMLHttpRequest';\n try {\n xhr = new window[request]();\n }\n catch (e) {\n // No exception handling\n }\n return !!xhr && ('withCredentials' in xhr);\n };\n /**\n * Generate random GUID value which will be prefixed with the given value.\n *\n * @param {string} prefix\n */\n DataUtil.getGuid = function (prefix) {\n var hexs = '0123456789abcdef';\n var rand;\n return (prefix || '') + '00000000-0000-4000-0000-000000000000'.replace(/0/g, function (val, i) {\n if ('crypto' in window && 'getRandomValues' in crypto) {\n var arr = new Uint8Array(1);\n window.crypto.getRandomValues(arr);\n rand = arr[0] % 16 | 0;\n }\n else {\n rand = Math.random() * 16 | 0;\n }\n return hexs[i === 19 ? rand & 0x3 | 0x8 : rand];\n });\n };\n /**\n * Checks wheather the given value is null or not.\n *\n * @param {string|Object} val\n * @returns boolean\n */\n DataUtil.isNull = function (val) {\n return val === undefined || val === null;\n };\n /**\n * To get the required items from collection of objects.\n *\n * @param {Object[]} array\n * @param {string} field\n * @param {Function} comparer\n * @returns Object\n * @hidden\n */\n DataUtil.getItemFromComparer = function (array, field, comparer) {\n var keyVal;\n var current;\n var key;\n var i = 0;\n var castRequired = typeof DataUtil.getVal(array, 0, field) === 'string';\n if (array.length) {\n while (isNullOrUndefined(keyVal) && i < array.length) {\n keyVal = DataUtil.getVal(array, i, field);\n key = array[i++];\n }\n }\n for (; i < array.length; i++) {\n current = DataUtil.getVal(array, i, field);\n if (isNullOrUndefined(current)) {\n continue;\n }\n if (castRequired) {\n keyVal = +keyVal;\n current = +current;\n }\n if (comparer(keyVal, current) > 0) {\n keyVal = current;\n key = array[i];\n }\n }\n return key;\n };\n /**\n * To get distinct values of Array or Array of Objects.\n *\n * @param {Object[]} json\n * @param {string} field\n * @param fieldName\n * @param {boolean} requiresCompleteRecord\n * @returns Object[]\n * * distinct array of objects is return when requiresCompleteRecord set as true.\n * @hidden\n */\n DataUtil.distinct = function (json, fieldName, requiresCompleteRecord) {\n requiresCompleteRecord = isNullOrUndefined(requiresCompleteRecord) ? false : requiresCompleteRecord;\n var result = [];\n var val;\n var tmp = {};\n json.forEach(function (data, index) {\n val = typeof (json[index]) === 'object' ? DataUtil.getVal(json, index, fieldName) : json[index];\n if (!(val in tmp)) {\n result.push(!requiresCompleteRecord ? val : json[index]);\n tmp[val] = 1;\n }\n });\n return result;\n };\n /**\n * Process the given records based on the datamanager string.\n *\n * @param {string} datamanager\n * @param dm\n * @param {Object[]} records\n */\n DataUtil.processData = function (dm, records) {\n var query = this.prepareQuery(dm);\n var sampledata = new DataManager(records);\n if (dm.requiresCounts) {\n query.requiresCount();\n }\n /* eslint-disable @typescript-eslint/no-explicit-any */\n // tslint:disable-next-line:no-any\n var result = sampledata.executeLocal(query);\n /* eslint-enable @typescript-eslint/no-explicit-any */\n var returnValue = {\n result: dm.requiresCounts ? result.result : result,\n count: result.count,\n aggregates: JSON.stringify(result.aggregates)\n };\n return dm.requiresCounts ? returnValue : result;\n };\n DataUtil.prepareQuery = function (dm) {\n var _this = this;\n var query = new Query();\n if (dm.select) {\n query.select(dm.select);\n }\n if (dm.where) {\n var where = DataUtil.parse.parseJson(dm.where);\n where.filter(function (pred) {\n if (isNullOrUndefined(pred.condition)) {\n query.where(pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent);\n }\n else {\n var predicateList = [];\n if (pred.field) {\n predicateList.push(new Predicate(pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent));\n }\n else {\n predicateList = predicateList.concat(_this.getPredicate(pred.predicates));\n }\n if (pred.condition === 'or') {\n query.where(Predicate.or(predicateList));\n }\n else if (pred.condition === 'and') {\n query.where(Predicate.and(predicateList));\n }\n }\n });\n }\n if (dm.search) {\n var search = DataUtil.parse.parseJson(dm.search);\n // tslint:disable-next-line:no-string-literal\n search.filter(function (e) { return query.search(e.key, e.fields, e['operator'], \n // tslint:disable-next-line:no-string-literal\n e['ignoreCase'], e['ignoreAccent']); });\n }\n if (dm.aggregates) {\n dm.aggregates.filter(function (e) { return query.aggregate(e.type, e.field); });\n }\n if (dm.sorted) {\n dm.sorted.filter(function (e) { return query.sortBy(e.name, e.direction); });\n }\n if (dm.skip) {\n query.skip(dm.skip);\n }\n if (dm.take) {\n query.take(dm.take);\n }\n if (dm.group) {\n dm.group.filter(function (grp) { return query.group(grp); });\n }\n return query;\n };\n DataUtil.getPredicate = function (pred) {\n var mainPred = [];\n for (var i = 0; i < pred.length; i++) {\n var e = pred[i];\n if (e.field) {\n mainPred.push(new Predicate(e.field, e.operator, e.value, e.ignoreCase, e.ignoreAccent));\n }\n else {\n var childPred = [];\n // tslint:disable-next-line:typedef\n var cpre = this.getPredicate(e.predicates);\n for (var _i = 0, _a = Object.keys(cpre); _i < _a.length; _i++) {\n var prop = _a[_i];\n childPred.push(cpre[prop]);\n }\n mainPred.push(e.condition === 'or' ? Predicate.or(childPred) : Predicate.and(childPred));\n }\n }\n return mainPred;\n };\n /**\n * Specifies the value which will be used to adjust the date value to server timezone.\n *\n * @default null\n */\n DataUtil.serverTimezoneOffset = null;\n /**\n * Species whether are not to be parsed with serverTimezoneOffset value.\n *\n * @hidden\n */\n DataUtil.timeZoneHandling = true;\n /**\n * Throw error with the given string as message.\n *\n * @param {string} er\n * @param error\n */\n DataUtil.throwError = function (error) {\n try {\n throw new Error(error);\n }\n catch (e) {\n // eslint-disable-next-line no-throw-literal\n throw e.message + '\\n' + e.stack;\n }\n };\n DataUtil.aggregates = {\n /**\n * Calculate sum of the given field in the data.\n *\n * @param {Object[]} ds\n * @param {string} field\n */\n sum: function (ds, field) {\n var result = 0;\n var val;\n var castRequired = typeof DataUtil.getVal(ds, 0, field) !== 'number';\n for (var i = 0; i < ds.length; i++) {\n val = DataUtil.getVal(ds, i, field);\n if (!isNaN(val) && val !== null) {\n if (castRequired) {\n val = +val;\n }\n result += val;\n }\n }\n return result;\n },\n /**\n * Calculate average value of the given field in the data.\n *\n * @param {Object[]} ds\n * @param {string} field\n */\n average: function (ds, field) {\n return DataUtil.aggregates.sum(ds, field) / ds.length;\n },\n /**\n * Returns the min value of the data based on the field.\n *\n * @param {Object[]} ds\n * @param {string|Function} field\n */\n min: function (ds, field) {\n var comparer;\n if (typeof field === 'function') {\n comparer = field;\n field = null;\n }\n return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnAscending));\n },\n /**\n * Returns the max value of the data based on the field.\n *\n * @param {Object[]} ds\n * @param {string} field\n * @returns number\n */\n max: function (ds, field) {\n var comparer;\n if (typeof field === 'function') {\n comparer = field;\n field = null;\n }\n return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnDescending));\n },\n /**\n * Returns the total number of true value present in the data based on the given boolean field name.\n *\n * @param {Object[]} ds\n * @param {string} field\n */\n truecount: function (ds, field) {\n return new DataManager(ds).executeLocal(new Query().where(field, 'equal', true, true)).length;\n },\n /**\n * Returns the total number of false value present in the data based on the given boolean field name.\n *\n * @param {Object[]} ds\n * @param {string} field\n */\n falsecount: function (ds, field) {\n return new DataManager(ds).executeLocal(new Query().where(field, 'equal', false, true)).length;\n },\n /**\n * Returns the length of the given data.\n *\n * @param {Object[]} ds\n * @param {string} field?\n * @param field\n * @returns number\n */\n count: function (ds, field) {\n return ds.length;\n }\n };\n /**\n * Specifies the Object with filter operators.\n */\n DataUtil.operatorSymbols = {\n '<': 'lessthan',\n '>': 'greaterthan',\n '<=': 'lessthanorequal',\n '>=': 'greaterthanorequal',\n '==': 'equal',\n '!=': 'notequal',\n '*=': 'contains',\n '$=': 'endswith',\n '^=': 'startswith'\n };\n /**\n * Specifies the Object with filter operators which will be used for OData filter query generation.\n * * It will be used for date/number type filter query.\n */\n DataUtil.odBiOperator = {\n '<': ' lt ',\n '>': ' gt ',\n '<=': ' le ',\n '>=': ' ge ',\n '==': ' eq ',\n '!=': ' ne ',\n 'lessthan': ' lt ',\n 'lessthanorequal': ' le ',\n 'greaterthan': ' gt ',\n 'greaterthanorequal': ' ge ',\n 'equal': ' eq ',\n 'notequal': ' ne '\n };\n /**\n * Specifies the Object with filter operators which will be used for OData filter query generation.\n * It will be used for string type filter query.\n */\n DataUtil.odUniOperator = {\n '$=': 'endswith',\n '^=': 'startswith',\n '*=': 'substringof',\n 'endswith': 'endswith',\n 'startswith': 'startswith',\n 'contains': 'substringof',\n 'doesnotendwith': 'not endswith',\n 'doesnotstartwith': 'not startswith',\n 'doesnotcontain': 'not substringof',\n 'wildcard': 'wildcard',\n 'like': 'like'\n };\n /**\n * Specifies the Object with filter operators which will be used for ODataV4 filter query generation.\n * It will be used for string type filter query.\n */\n DataUtil.odv4UniOperator = {\n '$=': 'endswith',\n '^=': 'startswith',\n '*=': 'contains',\n 'endswith': 'endswith',\n 'startswith': 'startswith',\n 'contains': 'contains',\n 'doesnotendwith': 'not endswith',\n 'doesnotstartwith': 'not startswith',\n 'doesnotcontain': 'not contains',\n 'wildcard': 'wildcard',\n 'like': 'like'\n };\n DataUtil.diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n };\n DataUtil.fnOperators = {\n /**\n * Returns true when the actual input is equal to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param {boolean} ignoreAccent?\n * @param ignoreCase\n * @param ignoreAccent\n */\n equal: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) === DataUtil.toLowerCase(expected);\n }\n return actual === expected;\n },\n /**\n * Returns true when the actual input is not equal to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\n */\n notequal: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n return !DataUtil.fnOperators.equal(actual, expected, ignoreCase);\n },\n /**\n * Returns true when the actual input is less than to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n */\n lessthan: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) < DataUtil.toLowerCase(expected);\n }\n if (isNullOrUndefined(actual)) {\n actual = undefined;\n }\n return actual < expected;\n },\n /**\n * Returns true when the actual input is greater than to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n */\n greaterthan: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) > DataUtil.toLowerCase(expected);\n }\n return actual > expected;\n },\n /**\n * Returns true when the actual input is less than or equal to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n */\n lessthanorequal: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) <= DataUtil.toLowerCase(expected);\n }\n if (isNullOrUndefined(actual)) {\n actual = undefined;\n }\n return actual <= expected;\n },\n /**\n * Returns true when the actual input is greater than or equal to the given input.\n *\n * @param {string|number|boolean} actual\n * @param {string|number|boolean} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n */\n greaterthanorequal: function (actual, expected, ignoreCase) {\n if (ignoreCase) {\n return DataUtil.toLowerCase(actual) >= DataUtil.toLowerCase(expected);\n }\n return actual >= expected;\n },\n /**\n * Returns true when the actual input contains the given string.\n *\n * @param {string|number} actual\n * @param {string|number} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\n */\n contains: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n DataUtil.toLowerCase(actual).indexOf(DataUtil.toLowerCase(expected)) !== -1;\n }\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n actual.toString().indexOf(expected) !== -1;\n },\n /**\n * Returns true when the actual input not contains the given string.\n *\n * @param {string|number} actual\n * @param {string|number} expected\n * @param {boolean} ignoreCase?\n */\n doesnotcontain: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n DataUtil.toLowerCase(actual).indexOf(DataUtil.toLowerCase(expected)) === -1;\n }\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\n actual.toString().indexOf(expected) === -1;\n },\n /**\n * Returns true when the given input value is not null.\n *\n * @param {string|number} actual\n * @returns boolean\n */\n isnotnull: function (actual) {\n return actual !== null && actual !== undefined;\n },\n /**\n * Returns true when the given input value is null.\n *\n * @param {string|number} actual\n * @returns boolean\n */\n isnull: function (actual) {\n return actual === null || actual === undefined;\n },\n /**\n * Returns true when the actual input starts with the given string\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\n */\n startswith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.startsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.startsWith(actual, expected);\n },\n /**\n * Returns true when the actual input not starts with the given string\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n doesnotstartwith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.notStartsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.notStartsWith(actual, expected);\n },\n /**\n * Returns true when the actual input like with the given string.\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n like: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.like(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.like(actual, expected);\n },\n /**\n * Returns true when the given input value is empty.\n *\n * @param {string|number} actual\n * @returns boolean\n */\n isempty: function (actual) {\n return actual === undefined || actual === '';\n },\n /**\n * Returns true when the given input value is not empty.\n *\n * @param {string|number} actual\n * @returns boolean\n */\n isnotempty: function (actual) {\n return actual !== undefined && actual !== '';\n },\n /**\n * Returns true when the actual input pattern(wildcard) matches with the given string.\n *\n * @param {string|Date} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n wildcard: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return (actual || typeof actual === 'boolean') && expected && typeof actual !== 'object' &&\n DataUtil.wildCard(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return (actual || typeof actual === 'boolean') && expected && DataUtil.wildCard(actual, expected);\n },\n /**\n * Returns true when the actual input ends with the given string.\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n * @param ignoreCase\n * @param ignoreAccent\n */\n endswith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.endsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.endsWith(actual, expected);\n },\n /**\n * Returns true when the actual input not ends with the given string.\n *\n * @param {string} actual\n * @param {string} expected\n * @param {boolean} ignoreCase?\n */\n doesnotendwith: function (actual, expected, ignoreCase, ignoreAccent) {\n if (ignoreAccent) {\n actual = DataUtil.ignoreDiacritics(actual);\n expected = DataUtil.ignoreDiacritics(expected);\n }\n if (ignoreCase) {\n return actual && expected && DataUtil.notEndsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\n }\n return actual && expected && DataUtil.notEndsWith(actual, expected);\n },\n /**\n * It will return the filter operator based on the filter symbol.\n *\n * @param {string} operator\n * @hidden\n */\n processSymbols: function (operator) {\n var fnName = DataUtil.operatorSymbols[operator];\n if (fnName) {\n var fn = DataUtil.fnOperators[fnName];\n return fn;\n }\n return DataUtil.throwError('Query - Process Operator : Invalid operator');\n },\n /**\n * It will return the valid filter operator based on the specified operators.\n *\n * @param {string} operator\n * @hidden\n */\n processOperator: function (operator) {\n var fn = DataUtil.fnOperators[operator];\n if (fn) {\n return fn;\n }\n return DataUtil.fnOperators.processSymbols(operator);\n }\n };\n /**\n * To perform the parse operation on JSON data, like convert to string from JSON or convert to JSON from string.\n */\n DataUtil.parse = {\n /**\n * Parse the given string to the plain JavaScript object.\n *\n * @param {string|Object|Object[]} jsonText\n */\n parseJson: function (jsonText) {\n if (typeof jsonText === 'string') {\n jsonText = JSON.parse(jsonText, DataUtil.parse.jsonReviver);\n }\n else if (jsonText instanceof Array) {\n DataUtil.parse.iterateAndReviveArray(jsonText);\n }\n else if (typeof jsonText === 'object' && jsonText !== null) {\n DataUtil.parse.iterateAndReviveJson(jsonText);\n }\n return jsonText;\n },\n /**\n * It will perform on array of values.\n *\n * @param {string[]|Object[]} array\n * @hidden\n */\n iterateAndReviveArray: function (array) {\n for (var i = 0; i < array.length; i++) {\n if (typeof array[i] === 'object' && array[i] !== null) {\n DataUtil.parse.iterateAndReviveJson(array[i]);\n // eslint-disable-next-line no-useless-escape\n }\n else if (typeof array[i] === 'string' && !/^[\\s]*\\[|^[\\s]*\\{(.)+:|\\\"/g.test(array[i])) {\n array[i] = DataUtil.parse.jsonReviver('', array[i]);\n }\n else {\n array[i] = DataUtil.parse.parseJson(array[i]);\n }\n }\n },\n /**\n * It will perform on JSON values\n *\n * @param {JSON} json\n * @hidden\n */\n iterateAndReviveJson: function (json) {\n var value;\n var keys = Object.keys(json);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var prop = keys_2[_i];\n if (DataUtil.startsWith(prop, '__')) {\n continue;\n }\n value = json[prop];\n if (typeof value === 'object') {\n if (value instanceof Array) {\n DataUtil.parse.iterateAndReviveArray(value);\n }\n else if (value) {\n DataUtil.parse.iterateAndReviveJson(value);\n }\n }\n else {\n json[prop] = DataUtil.parse.jsonReviver(json[prop], value);\n }\n }\n },\n /**\n * It will perform on JSON values\n *\n * @param {string} field\n * @param {string|Date} value\n * @hidden\n */\n jsonReviver: function (field, value) {\n if (typeof value === 'string') {\n // eslint-disable-next-line security/detect-unsafe-regex\n var ms = /^\\/Date\\(([+-]?[0-9]+)([+-][0-9]{4})?\\)\\/$/.exec(value);\n var offSet = DataUtil.timeZoneHandling ? DataUtil.serverTimezoneOffset : null;\n if (ms) {\n return DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), offSet, true);\n // eslint-disable-next-line no-useless-escape, security/detect-unsafe-regex\n }\n else if (/^(\\d{4}\\-\\d\\d\\-\\d\\d([tT][\\d:\\.]*){1})([zZ]|([+\\-])(\\d\\d):?(\\d\\d))?$/.test(value)) {\n var isUTC = value.indexOf('Z') > -1 || value.indexOf('z') > -1;\n var arr = value.split(/[^0-9.]/);\n if (isUTC) {\n if (arr[5].indexOf('.') > -1) {\n var secondsMs = arr[5].split('.');\n arr[5] = secondsMs[0];\n arr[6] = new Date(value).getUTCMilliseconds().toString();\n }\n else {\n arr[6] = '00';\n }\n value = DataUtil.dateParse\n .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5] ? arr[5] : '00', 10), parseInt(arr[6], 10)), DataUtil.serverTimezoneOffset, false);\n }\n else {\n var utcFormat = new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5] ? arr[5] : '00', 10));\n var hrs = parseInt(arr[6], 10);\n var mins = parseInt(arr[7], 10);\n if (isNaN(hrs) && isNaN(mins)) {\n return utcFormat;\n }\n if (value.indexOf('+') > -1) {\n utcFormat.setHours(utcFormat.getHours() - hrs, utcFormat.getMinutes() - mins);\n }\n else {\n utcFormat.setHours(utcFormat.getHours() + hrs, utcFormat.getMinutes() + mins);\n }\n value = DataUtil.dateParse\n .toTimeZone(utcFormat, DataUtil.serverTimezoneOffset, false);\n }\n if (DataUtil.serverTimezoneOffset == null) {\n value = DataUtil.dateParse.addSelfOffset(value);\n }\n }\n else if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value)) {\n var arr = value.split(/[^0-9.]/);\n return new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10));\n }\n }\n return value;\n },\n /**\n * Check wheather the given value is JSON or not.\n *\n * @param {Object[]} jsonData\n */\n isJson: function (jsonData) {\n if (typeof jsonData[0] === 'string') {\n return jsonData;\n }\n return DataUtil.parse.parseJson(jsonData);\n },\n /**\n * Checks wheather the given value is GUID or not.\n *\n * @param {string} value\n */\n isGuid: function (value) {\n // eslint-disable-next-line security/detect-unsafe-regex\n var regex = /[A-Fa-f0-9]{8}(?:-[A-Fa-f0-9]{4}){3}-[A-Fa-f0-9]{12}/i;\n var match = regex.exec(value);\n return match != null;\n },\n /**\n * The method used to replace the value based on the type.\n *\n * @param {Object} value\n * @param {boolean} stringify\n * @hidden\n */\n replacer: function (value, stringify) {\n if (DataUtil.isPlainObject(value)) {\n return DataUtil.parse.jsonReplacer(value, stringify);\n }\n if (value instanceof Array) {\n return DataUtil.parse.arrayReplacer(value);\n }\n if (value instanceof Date) {\n return DataUtil.parse.jsonReplacer({ val: value }, stringify).val;\n }\n return value;\n },\n /**\n * It will replace the JSON value.\n *\n * @param {string} key\n * @param {Object} val\n * @param stringify\n * @hidden\n */\n jsonReplacer: function (val, stringify) {\n var value;\n var keys = Object.keys(val);\n for (var _i = 0, keys_3 = keys; _i < keys_3.length; _i++) {\n var prop = keys_3[_i];\n value = val[prop];\n if (!(value instanceof Date)) {\n continue;\n }\n var d = value;\n if (DataUtil.serverTimezoneOffset == null) {\n val[prop] = DataUtil.dateParse.toTimeZone(d, null).toJSON();\n }\n else {\n d = new Date(+d + DataUtil.serverTimezoneOffset * 3600000);\n val[prop] = DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(d), null).toJSON();\n }\n }\n return val;\n },\n /**\n * It will replace the Array of value.\n *\n * @param {string} key\n * @param {Object[]} val\n * @hidden\n */\n arrayReplacer: function (val) {\n for (var i = 0; i < val.length; i++) {\n if (DataUtil.isPlainObject(val[i])) {\n val[i] = DataUtil.parse.jsonReplacer(val[i]);\n }\n else if (val[i] instanceof Date) {\n val[i] = DataUtil.parse.jsonReplacer({ date: val[i] }).date;\n }\n }\n return val;\n },\n /**\n * It will replace the Date object with respective to UTC format value.\n *\n * @param {string} key\n * @param {any} value\n * @hidden\n */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n /* tslint:disable-next-line:no-any */\n jsonDateReplacer: function (key, value) {\n /* eslint-enable @typescript-eslint/no-explicit-any */\n if (key === 'value' && value) {\n if (typeof value === 'string') {\n // eslint-disable-next-line security/detect-unsafe-regex\n var ms = /^\\/Date\\(([+-]?[0-9]+)([+-][0-9]{4})?\\)\\/$/.exec(value);\n if (ms) {\n value = DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), null, true);\n // eslint-disable-next-line no-useless-escape, security/detect-unsafe-regex\n }\n else if (/^(\\d{4}\\-\\d\\d\\-\\d\\d([tT][\\d:\\.]*){1})([zZ]|([+\\-])(\\d\\d):?(\\d\\d))?$/.test(value)) {\n var arr = value.split(/[^0-9]/);\n value = DataUtil.dateParse\n .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10)), null, true);\n }\n }\n if (value instanceof Date) {\n value = DataUtil.dateParse.addSelfOffset(value);\n if (DataUtil.serverTimezoneOffset === null) {\n return DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(value), null).toJSON();\n }\n else {\n value = DataUtil.dateParse.toTimeZone(value, (((value.getTimezoneOffset() / 60) * 2)\n - DataUtil.serverTimezoneOffset), false);\n return value.toJSON();\n }\n }\n }\n return value;\n }\n };\n /**\n * @hidden\n */\n DataUtil.dateParse = {\n addSelfOffset: function (input) {\n return new Date(+input - (input.getTimezoneOffset() * 60000));\n },\n toUTC: function (input) {\n return new Date(+input + (input.getTimezoneOffset() * 60000));\n },\n toTimeZone: function (input, offset, utc) {\n if (offset === null) {\n return input;\n }\n var unix = utc ? DataUtil.dateParse.toUTC(input) : input;\n return new Date(+unix - (offset * 3600000));\n },\n toLocalTime: function (input) {\n var datefn = input;\n var timeZone = -datefn.getTimezoneOffset();\n var differenceString = timeZone >= 0 ? '+' : '-';\n var localtimefn = function (num) {\n var norm = Math.floor(Math.abs(num));\n return (norm < 10 ? '0' : '') + norm;\n };\n var val = datefn.getFullYear() + '-' + localtimefn(datefn.getMonth() + 1) + '-' + localtimefn(datefn.getDate()) +\n 'T' + localtimefn(datefn.getHours()) +\n ':' + localtimefn(datefn.getMinutes()) +\n ':' + localtimefn(datefn.getSeconds()) +\n differenceString + localtimefn(timeZone / 60) +\n ':' + localtimefn(timeZone % 60);\n return val;\n }\n };\n return DataUtil;\n}());\nexport { DataUtil };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { merge, extend, isNullOrUndefined, setValue, getValue } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Query, Predicate } from './query';\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\n/**\n * Adaptors are specific data source type aware interfaces that are used by DataManager to communicate with DataSource.\n * This is the base adaptor class that other adaptors can extend.\n *\n * @hidden\n */\nvar Adaptor = /** @class */ (function () {\n /**\n * Constructor for Adaptor class\n *\n * @param {DataOptions} ds?\n * @param ds\n * @hidden\n * @returns aggregates\n */\n function Adaptor(ds) {\n // common options for all the adaptors\n this.options = {\n from: 'table',\n requestType: 'json',\n sortBy: 'sorted',\n select: 'select',\n skip: 'skip',\n group: 'group',\n take: 'take',\n search: 'search',\n count: 'requiresCounts',\n where: 'where',\n aggregates: 'aggregates',\n expand: 'expand'\n };\n /**\n * Specifies the type of adaptor.\n *\n * @default Adaptor\n */\n this.type = Adaptor;\n this.dataSource = ds;\n this.pvt = {};\n }\n /**\n * Returns the data from the query processing.\n *\n * @param {Object} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param ds\n * @param query\n * @param xhr\n * @returns Object\n */\n Adaptor.prototype.processResponse = function (data, ds, query, xhr) {\n return data;\n };\n return Adaptor;\n}());\nexport { Adaptor };\n/**\n * JsonAdaptor is used to process JSON data. It contains methods to process the given JSON data based on the queries.\n *\n * @hidden\n */\nvar JsonAdaptor = /** @class */ (function (_super) {\n __extends(JsonAdaptor, _super);\n function JsonAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the JSON data based on the provided queries.\n *\n * @param {DataManager} dataManager\n * @param {Query} query\n * @returns Object\n */\n JsonAdaptor.prototype.processQuery = function (dataManager, query) {\n var result = dataManager.dataSource.json.slice(0);\n var count = result.length;\n var countFlg = true;\n var ret;\n var key;\n var lazyLoad = {};\n var keyCount = 0;\n var group = [];\n var page;\n for (var i = 0; i < query.lazyLoad.length; i++) {\n keyCount++;\n lazyLoad[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n var agg = {};\n for (var i = 0; i < query.queries.length; i++) {\n key = query.queries[i];\n if ((key.fn === 'onPage' || key.fn === 'onGroup') && query.lazyLoad.length) {\n if (key.fn === 'onGroup') {\n group.push(key.e);\n }\n if (key.fn === 'onPage') {\n page = key.e;\n }\n continue;\n }\n ret = this[key.fn].call(this, result, key.e, query);\n if (key.fn === 'onAggregates') {\n agg[key.e.field + ' - ' + key.e.type] = ret;\n }\n else {\n result = ret !== undefined ? ret : result;\n }\n if (key.fn === 'onPage' || key.fn === 'onSkip' || key.fn === 'onTake' || key.fn === 'onRange') {\n countFlg = false;\n }\n if (countFlg) {\n count = result.length;\n }\n }\n if (keyCount) {\n var args = {\n query: query, lazyLoad: lazyLoad, result: result, group: group, page: page\n };\n var lazyLoadData = this.lazyLoadGroup(args);\n result = lazyLoadData.result;\n count = lazyLoadData.count;\n }\n if (query.isCountRequired) {\n result = {\n result: result,\n count: count,\n aggregates: agg\n };\n }\n return result;\n };\n /**\n * Perform lazy load grouping in JSON array based on the given query and lazy load details.\n *\n * @param {LazyLoadGroupArgs} args\n */\n JsonAdaptor.prototype.lazyLoadGroup = function (args) {\n var count = 0;\n var agg = this.getAggregate(args.query);\n var result = args.result;\n if (!isNullOrUndefined(args.lazyLoad.onDemandGroupInfo)) {\n var req = args.lazyLoad.onDemandGroupInfo;\n for (var i = req.where.length - 1; i >= 0; i--) {\n result = this.onWhere(result, req.where[i]);\n }\n if (args.group.length !== req.level) {\n var field = args.group[req.level].fieldName;\n result = DataUtil.group(result, field, agg, null, null, args.group[0].comparer, true);\n }\n count = result.length;\n var data = result;\n result = result.slice(req.skip);\n result = result.slice(0, req.take);\n if (args.group.length !== req.level) {\n this.formGroupResult(result, data);\n }\n }\n else {\n var field = args.group[0].fieldName;\n result = DataUtil.group(result, field, agg, null, null, args.group[0].comparer, true);\n count = result.length;\n var data = result;\n if (args.page) {\n result = this.onPage(result, args.page, args.query);\n }\n this.formGroupResult(result, data);\n }\n return { result: result, count: count };\n };\n JsonAdaptor.prototype.formGroupResult = function (result, data) {\n if (result.length && data.length) {\n var uid = 'GroupGuid';\n var childLevel = 'childLevels';\n var level = 'level';\n var records = 'records';\n result[uid] = data[uid];\n result[childLevel] = data[childLevel];\n result[level] = data[level];\n result[records] = data[records];\n }\n return result;\n };\n /**\n * Separate the aggregate query from the given queries\n *\n * @param {Query} query\n */\n JsonAdaptor.prototype.getAggregate = function (query) {\n var aggQuery = Query.filterQueries(query.queries, 'onAggregates');\n var agg = [];\n if (aggQuery.length) {\n var tmp = void 0;\n for (var i = 0; i < aggQuery.length; i++) {\n tmp = aggQuery[i].e;\n agg.push({ type: tmp.type, field: DataUtil.getValue(tmp.field, query) });\n }\n }\n return agg;\n };\n /**\n * Performs batch update in the JSON array which add, remove and update records.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n JsonAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var i;\n var deletedRecordsLen = changes.deletedRecords.length;\n for (i = 0; i < changes.addedRecords.length; i++) {\n this.insert(dm, changes.addedRecords[i]);\n }\n for (i = 0; i < changes.changedRecords.length; i++) {\n this.update(dm, e.key, changes.changedRecords[i]);\n }\n for (i = 0; i < deletedRecordsLen; i++) {\n this.remove(dm, e.key, changes.deletedRecords[i]);\n }\n return changes;\n };\n /**\n * Performs filter operation with the given data and where query.\n *\n * @param {Object[]} ds\n * @param {{validate:Function}} e\n * @param e.validate\n */\n JsonAdaptor.prototype.onWhere = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.filter(function (obj) {\n if (e) {\n return e.validate(obj);\n }\n });\n };\n /**\n * Returns aggregate function based on the aggregate type.\n *\n * @param {Object[]} ds\n * @param e\n * @param {string} } type\n * @param e.field\n * @param e.type\n */\n JsonAdaptor.prototype.onAggregates = function (ds, e) {\n var fn = DataUtil.aggregates[e.type];\n if (!ds || !fn || ds.length === 0) {\n return null;\n }\n return fn(ds, e.field);\n };\n /**\n * Performs search operation based on the given query.\n *\n * @param {Object[]} ds\n * @param {QueryOptions} e\n */\n JsonAdaptor.prototype.onSearch = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n if (e.fieldNames.length === 0) {\n DataUtil.getFieldList(ds[0], e.fieldNames);\n }\n return ds.filter(function (obj) {\n for (var j = 0; j < e.fieldNames.length; j++) {\n if (e.comparer.call(obj, DataUtil.getObject(e.fieldNames[j], obj), e.searchKey, e.ignoreCase, e.ignoreAccent)) {\n return true;\n }\n }\n return false;\n });\n };\n /**\n * Sort the data with given direction and field.\n *\n * @param {Object[]} ds\n * @param e\n * @param {Object} b\n * @param e.comparer\n * @param e.fieldName\n * @param query\n */\n JsonAdaptor.prototype.onSortBy = function (ds, e, query) {\n if (!ds || !ds.length) {\n return ds;\n }\n var fnCompare;\n var field = DataUtil.getValue(e.fieldName, query);\n if (!field) {\n return ds.sort(e.comparer);\n }\n if (field instanceof Array) {\n field = field.slice(0);\n for (var i = field.length - 1; i >= 0; i--) {\n if (!field[i]) {\n continue;\n }\n fnCompare = e.comparer;\n if (DataUtil.endsWith(field[i], ' desc')) {\n fnCompare = DataUtil.fnSort('descending');\n field[i] = field[i].replace(' desc', '');\n }\n ds = DataUtil.sort(ds, field[i], fnCompare);\n }\n return ds;\n }\n return DataUtil.sort(ds, field, e.comparer);\n };\n /**\n * Group the data based on the given query.\n *\n * @param {Object[]} ds\n * @param {QueryOptions} e\n * @param {Query} query\n */\n JsonAdaptor.prototype.onGroup = function (ds, e, query) {\n if (!ds || !ds.length) {\n return ds;\n }\n var agg = this.getAggregate(query);\n return DataUtil.group(ds, DataUtil.getValue(e.fieldName, query), agg, null, null, e.comparer);\n };\n /**\n * Retrieves records based on the given page index and size.\n *\n * @param {Object[]} ds\n * @param e\n * @param {number} } pageIndex\n * @param e.pageSize\n * @param {Query} query\n * @param e.pageIndex\n */\n JsonAdaptor.prototype.onPage = function (ds, e, query) {\n var size = DataUtil.getValue(e.pageSize, query);\n var start = (DataUtil.getValue(e.pageIndex, query) - 1) * size;\n var end = start + size;\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(start, end);\n };\n /**\n * Retrieves records based on the given start and end index from query.\n *\n * @param {Object[]} ds\n * @param e\n * @param {number} } end\n * @param e.start\n * @param e.end\n */\n JsonAdaptor.prototype.onRange = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.start), DataUtil.getValue(e.end));\n };\n /**\n * Picks the given count of records from the top of the datasource.\n *\n * @param {Object[]} ds\n * @param {{nos:number}} e\n * @param e.nos\n */\n JsonAdaptor.prototype.onTake = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(0, DataUtil.getValue(e.nos));\n };\n /**\n * Skips the given count of records from the data source.\n *\n * @param {Object[]} ds\n * @param {{nos:number}} e\n * @param e.nos\n */\n JsonAdaptor.prototype.onSkip = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.nos));\n };\n /**\n * Selects specified columns from the data source.\n *\n * @param {Object[]} ds\n * @param {{fieldNames:string}} e\n * @param e.fieldNames\n */\n JsonAdaptor.prototype.onSelect = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return DataUtil.select(ds, DataUtil.getValue(e.fieldNames));\n };\n /**\n * Inserts new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param tableName\n * @param query\n * @param {number} position\n */\n JsonAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n if (isNullOrUndefined(position)) {\n return dm.dataSource.json.push(data);\n }\n else {\n return dm.dataSource.json.splice(position, 0, data);\n }\n };\n /**\n * Remove the data from the dataSource based on the key field value.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @returns null\n */\n JsonAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n if (typeof value === 'object' && !(value instanceof Date)) {\n value = DataUtil.getObject(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (DataUtil.getObject(keyField, ds[i]) === value) {\n break;\n }\n }\n return i !== ds.length ? ds.splice(i, 1) : null;\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @returns null\n */\n JsonAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n var key;\n if (!isNullOrUndefined(keyField)) {\n key = getValue(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (!isNullOrUndefined(keyField) && (getValue(keyField, ds[i])) === key) {\n break;\n }\n }\n return i < ds.length ? merge(ds[i], value) : null;\n };\n return JsonAdaptor;\n}(Adaptor));\nexport { JsonAdaptor };\n/**\n * URL Adaptor of DataManager can be used when you are required to use remote service to retrieve data.\n * It interacts with server-side for all DataManager Queries and CRUD operations.\n *\n * @hidden\n */\nvar UrlAdaptor = /** @class */ (function (_super) {\n __extends(UrlAdaptor, _super);\n function UrlAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the query to generate request body.\n *\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @param hierarchyFilters\n * @returns p\n */\n // tslint:disable-next-line:max-func-body-length\n UrlAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var params = query.params;\n var url = dm.dataSource.url;\n var temp;\n var skip;\n var take = null;\n var options = this.options;\n var request = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n // calc Paging & Range\n if ('onPage' in singles) {\n temp = singles.onPage;\n skip = DataUtil.getValue(temp.pageIndex, query);\n take = DataUtil.getValue(temp.pageSize, query);\n skip = (skip - 1) * take;\n }\n else if ('onRange' in singles) {\n temp = singles.onRange;\n skip = temp.start;\n take = temp.end - temp.start;\n }\n // Sorting\n for (var i = 0; i < queries.sorts.length; i++) {\n temp = DataUtil.getValue(queries.sorts[i].e.fieldName, query);\n request.sorts.push(DataUtil.callAdaptorFunction(this, 'onEachSort', { name: temp, direction: queries.sorts[i].e.direction }, query));\n }\n // hierarchy\n if (hierarchyFilters) {\n temp = this.getFiltersFrom(hierarchyFilters, query);\n if (temp) {\n request.filters.push(DataUtil.callAdaptorFunction(this, 'onEachWhere', temp.toJson(), query));\n }\n }\n // Filters\n for (var i = 0; i < queries.filters.length; i++) {\n var res = DataUtil.callAdaptorFunction(this, 'onEachWhere', queries.filters[i].e.toJson(), query);\n if ((this.getModuleName &&\n this.getModuleName() === 'ODataV4Adaptor') &&\n !isNullOrUndefined(queries.filters[i].e.key) && queries.filters.length > 1) {\n res = '(' + res + ')';\n }\n request.filters.push(res);\n var keys_3 = typeof request.filters[i] === 'object' ? Object.keys(request.filters[i]) : [];\n for (var _i = 0, keys_1 = keys_3; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n if (DataUtil.isNull((request)[prop])) {\n delete request[prop];\n }\n }\n }\n // Searches\n for (var i = 0; i < queries.searches.length; i++) {\n temp = queries.searches[i].e;\n request.searches.push(DataUtil.callAdaptorFunction(this, 'onEachSearch', {\n fields: temp.fieldNames,\n operator: temp.operator,\n key: temp.searchKey,\n ignoreCase: temp.ignoreCase\n }, query));\n }\n // Grouping\n for (var i = 0; i < queries.groups.length; i++) {\n request.groups.push(DataUtil.getValue(queries.groups[i].e.fieldName, query));\n }\n // aggregates\n for (var i = 0; i < queries.aggregates.length; i++) {\n temp = queries.aggregates[i].e;\n request.aggregates.push({ type: temp.type, field: DataUtil.getValue(temp.field, query) });\n }\n var req = {};\n this.getRequestQuery(options, query, singles, request, req);\n // Params\n DataUtil.callAdaptorFunction(this, 'addParams', { dm: dm, query: query, params: params, reqParams: req });\n if (query.lazyLoad.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n req[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n }\n // cleanup\n var keys = Object.keys(req);\n for (var _a = 0, keys_2 = keys; _a < keys_2.length; _a++) {\n var prop = keys_2[_a];\n if (DataUtil.isNull(req[prop]) || req[prop] === '' || req[prop].length === 0) {\n delete req[prop];\n }\n }\n if (!(options.skip in req && options.take in req) && take !== null) {\n req[options.skip] = DataUtil.callAdaptorFunction(this, 'onSkip', skip, query);\n req[options.take] = DataUtil.callAdaptorFunction(this, 'onTake', take, query);\n }\n var p = this.pvt;\n this.pvt = {};\n if (this.options.requestType === 'json') {\n return {\n data: JSON.stringify(req, DataUtil.parse.jsonDateReplacer),\n url: url,\n pvtData: p,\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n }\n temp = this.convertToQueryString(req, query, dm);\n temp = (dm.dataSource.url.indexOf('?') !== -1 ? '&' : '/') + temp;\n return {\n type: 'GET', url: temp.length ? url.replace(/\\/*$/, temp) : url, pvtData: p\n };\n };\n UrlAdaptor.prototype.getRequestQuery = function (options, query, singles, request, request1) {\n var param = 'param';\n var req = request1;\n req[options.from] = query.fromTable;\n if (options.apply && query.distincts.length) {\n req[options.apply] = 'onDistinct' in this ? DataUtil.callAdaptorFunction(this, 'onDistinct', query.distincts) : '';\n }\n if (!query.distincts.length && options.expand) {\n req[options.expand] = 'onExpand' in this && 'onSelect' in singles ?\n DataUtil.callAdaptorFunction(this, 'onExpand', { selects: DataUtil.getValue(singles.onSelect.fieldNames, query), expands: query.expands }, query) : query.expands;\n }\n req[options.select] = 'onSelect' in singles && !query.distincts.length ?\n DataUtil.callAdaptorFunction(this, 'onSelect', DataUtil.getValue(singles.onSelect.fieldNames, query), query) : '';\n req[options.count] = query.isCountRequired ? DataUtil.callAdaptorFunction(this, 'onCount', query.isCountRequired, query) : '';\n req[options.search] = request.searches.length ? DataUtil.callAdaptorFunction(this, 'onSearch', request.searches, query) : '';\n req[options.skip] = 'onSkip' in singles ?\n DataUtil.callAdaptorFunction(this, 'onSkip', DataUtil.getValue(singles.onSkip.nos, query), query) : '';\n req[options.take] = 'onTake' in singles ?\n DataUtil.callAdaptorFunction(this, 'onTake', DataUtil.getValue(singles.onTake.nos, query), query) : '';\n req[options.where] = request.filters.length || request.searches.length ?\n DataUtil.callAdaptorFunction(this, 'onWhere', request.filters, query) : '';\n req[options.sortBy] = request.sorts.length ? DataUtil.callAdaptorFunction(this, 'onSortBy', request.sorts, query) : '';\n req[options.group] = request.groups.length ? DataUtil.callAdaptorFunction(this, 'onGroup', request.groups, query) : '';\n req[options.aggregates] = request.aggregates.length ?\n DataUtil.callAdaptorFunction(this, 'onAggregates', request.aggregates, query) : '';\n req[param] = [];\n };\n /**\n * Convert the object from processQuery to string which can be added query string.\n *\n * @param {Object} req\n * @param request\n * @param {Query} query\n * @param {DataManager} dm\n */\n UrlAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n return '';\n // this needs to be overridden\n };\n /**\n * Return the data from the data manager processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Object} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n */\n UrlAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (xhr && xhr.getResponseHeader('Content-Type') &&\n xhr.getResponseHeader('Content-Type').indexOf('application/json') !== -1) {\n var handleTimeZone = DataUtil.timeZoneHandling;\n if (ds && !ds.timeZoneHandling) {\n DataUtil.timeZoneHandling = false;\n }\n data = DataUtil.parse.parseJson(data);\n DataUtil.timeZoneHandling = handleTimeZone;\n }\n var requests = request;\n var pvt = requests.pvtData || {};\n var groupDs = data ? data.groupDs : [];\n if (xhr && xhr.getResponseHeader('Content-Type') &&\n xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n var d = JSON.parse(requests.data);\n if (d && d.action === 'batch' && data && data.addedRecords) {\n changes.addedRecords = data.addedRecords;\n return changes;\n }\n if (data && data.d) {\n data = data.d;\n }\n var args = {};\n if (data && 'count' in data) {\n args.count = data.count;\n }\n args.result = data && data.result ? data.result : data;\n var isExpand = false;\n if (Array.isArray(data.result) && data.result.length) {\n var key = 'key';\n var val = 'value';\n var level = 'level';\n if (!isNullOrUndefined(data.result[0][key])) {\n args.result = this.formRemoteGroupedData(args.result, 1, pvt.groups.length - 1);\n }\n if (query && query.lazyLoad.length && pvt.groups.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n if (query.lazyLoad[i][key] === 'onDemandGroupInfo') {\n var value = query.lazyLoad[i][val][level];\n if (pvt.groups.length === value) {\n isExpand = true;\n }\n }\n }\n }\n }\n if (!isExpand) {\n this.getAggregateResult(pvt, data, args, groupDs, query);\n }\n return DataUtil.isNull(args.count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n UrlAdaptor.prototype.formRemoteGroupedData = function (data, level, childLevel) {\n for (var i = 0; i < data.length; i++) {\n if (data[i].items.length && Object.keys(data[i].items[0]).indexOf('key') > -1) {\n this.formRemoteGroupedData(data[i].items, level + 1, childLevel - 1);\n }\n }\n var uid = 'GroupGuid';\n var childLvl = 'childLevels';\n var lvl = 'level';\n var records = 'records';\n data[uid] = consts[uid];\n data[lvl] = level;\n data[childLvl] = childLevel;\n data[records] = data[0].items.length ? this.getGroupedRecords(data, !isNullOrUndefined(data[0].items[records])) : [];\n return data;\n };\n UrlAdaptor.prototype.getGroupedRecords = function (data, hasRecords) {\n var childGroupedRecords = [];\n var records = 'records';\n for (var i = 0; i < data.length; i++) {\n if (!hasRecords) {\n for (var j = 0; j < data[i].items.length; j++) {\n childGroupedRecords.push(data[i].items[j]);\n }\n }\n else {\n childGroupedRecords = childGroupedRecords.concat(data[i].items[records]);\n }\n }\n return childGroupedRecords;\n };\n /**\n * Add the group query to the adaptor`s option.\n *\n * @param {Object[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return e;\n };\n /**\n * Add the aggregate query to the adaptor`s option.\n *\n * @param {Aggregates[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param query\n * @param original\n */\n UrlAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var url;\n var key;\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.removeUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e[url],\n key: e[key]\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @returns void\n */\n UrlAdaptor.prototype.beforeSend = function (dm, request) {\n // need to extend this method\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.insert = function (dm, data, tableName, query) {\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number|string} value\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.remove = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: value,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.update = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: value,\n action: 'update',\n keyColumn: keyField,\n key: DataUtil.getObject(keyField, value),\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * To generate the predicate based on the filtered query.\n *\n * @param {Object[]|string[]|number[]} data\n * @param {Query} query\n * @hidden\n */\n UrlAdaptor.prototype.getFiltersFrom = function (data, query) {\n var key = query.fKey;\n var value;\n var prop = key;\n var pKey = query.key;\n var predicats = [];\n if (typeof data[0] !== 'object') {\n prop = null;\n }\n for (var i = 0; i < data.length; i++) {\n if (typeof data[0] === 'object') {\n value = DataUtil.getObject(pKey || prop, data[i]);\n }\n else {\n value = data[i];\n }\n predicats.push(new Predicate(key, 'equal', value));\n }\n return Predicate.or(predicats);\n };\n UrlAdaptor.prototype.getAggregateResult = function (pvt, data, args, groupDs, query) {\n var pData = data;\n if (data && data.result) {\n pData = data.result;\n }\n if (pvt && pvt.aggregates && pvt.aggregates.length) {\n var agg = pvt.aggregates;\n var fn = void 0;\n var aggregateData = pData;\n var res = {};\n if (data.aggregate) {\n aggregateData = data.aggregate;\n }\n for (var i = 0; i < agg.length; i++) {\n fn = DataUtil.aggregates[agg[i].type];\n if (fn) {\n res[agg[i].field + ' - ' + agg[i].type] = fn(aggregateData, agg[i].field);\n }\n }\n args.aggregates = res;\n }\n var key = 'key';\n var isServerGrouping = Array.isArray(data.result) && data.result.length && !isNullOrUndefined(data.result[0][key]);\n if (pvt && pvt.groups && pvt.groups.length && !isServerGrouping) {\n var groups = pvt.groups;\n for (var i = 0; i < groups.length; i++) {\n var level = null;\n if (!isNullOrUndefined(groupDs)) {\n groupDs = DataUtil.group(groupDs, groups[i]);\n }\n var groupQuery = Query.filterQueries(query.queries, 'onGroup')[i].e;\n pData = DataUtil.group(pData, groups[i], pvt.aggregates, level, groupDs, groupQuery.comparer);\n }\n args.result = pData;\n }\n return args;\n };\n UrlAdaptor.prototype.getQueryRequest = function (query) {\n var req = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n req.sorts = Query.filterQueries(query.queries, 'onSortBy');\n req.groups = Query.filterQueries(query.queries, 'onGroup');\n req.filters = Query.filterQueries(query.queries, 'onWhere');\n req.searches = Query.filterQueries(query.queries, 'onSearch');\n req.aggregates = Query.filterQueries(query.queries, 'onAggregates');\n return req;\n };\n UrlAdaptor.prototype.addParams = function (options) {\n var req = options.reqParams;\n if (options.params.length) {\n req.params = {};\n }\n for (var _i = 0, _a = options.params; _i < _a.length; _i++) {\n var tmp = _a[_i];\n if (req[tmp.key]) {\n throw new Error('Query() - addParams: Custom Param is conflicting other request arguments');\n }\n req[tmp.key] = tmp.value;\n if (tmp.fn) {\n req[tmp.key] = tmp.fn.call(options.query, tmp.key, options.query, options.dm);\n }\n req.params[tmp.key] = req[tmp.key];\n }\n };\n return UrlAdaptor;\n}(Adaptor));\nexport { UrlAdaptor };\n/**\n * OData Adaptor that is extended from URL Adaptor, is used for consuming data through OData Service.\n *\n * @hidden\n */\nvar ODataAdaptor = /** @class */ (function (_super) {\n __extends(ODataAdaptor, _super);\n function ODataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json;odata=light;q=1,application/json;odata=verbose;q=0.5',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$inlinecount',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PUT'\n });\n extend(_this.options, props || {});\n return _this;\n }\n ODataAdaptor.prototype.getModuleName = function () {\n return 'ODataAdaptor';\n };\n /**\n * Generate request string based on the filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var operator;\n var guid;\n var val = predicate.value;\n var type = typeof val;\n var field = predicate.field ? ODataAdaptor.getField(predicate.field) : null;\n if (val instanceof Date) {\n val = 'datetime\\'' + DataUtil.parse.replacer(val) + '\\'';\n }\n if (type === 'string') {\n val = val.replace(/'/g, '\\'\\'');\n if (predicate.ignoreCase) {\n val = val.toLowerCase();\n }\n if (predicate.operator !== 'like') {\n val = encodeURIComponent(val);\n }\n if (predicate.operator !== 'wildcard' && predicate.operator !== 'like') {\n val = '\\'' + val + '\\'';\n }\n if (requiresCast) {\n field = 'cast(' + field + ', \\'Edm.String\\')';\n }\n if (DataUtil.parse.isGuid(val)) {\n guid = 'guid';\n }\n if (predicate.ignoreCase) {\n if (!guid) {\n field = 'tolower(' + field + ')';\n }\n val = val.toLowerCase();\n }\n }\n if (predicate.operator === 'isempty' || predicate.operator === 'isnull' || predicate.operator === 'isnotempty' ||\n predicate.operator === 'isnotnull') {\n operator = predicate.operator.indexOf('isnot') !== -1 ? DataUtil.odBiOperator['notequal'] : DataUtil.odBiOperator['equal'];\n val = predicate.operator === 'isnull' || predicate.operator === 'isnotnull' ? null : '\\'\\'';\n }\n else {\n operator = DataUtil.odBiOperator[predicate.operator];\n }\n if (operator) {\n returnValue += field;\n returnValue += operator;\n if (guid) {\n returnValue += guid;\n }\n return returnValue + val;\n }\n if (!isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor') {\n operator = DataUtil.odv4UniOperator[predicate.operator];\n }\n else {\n operator = DataUtil.odUniOperator[predicate.operator];\n }\n if (operator === 'like') {\n val = val;\n if (val.indexOf('%') !== -1) {\n if (val.charAt(0) === '%' && val.lastIndexOf('%') < 2) {\n val = val.substring(1, val.length);\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['startswith'] : DataUtil.odUniOperator['startswith'];\n }\n else if (val.charAt(val.length - 1) === '%' && val.indexOf('%') > val.length - 3) {\n val = val.substring(0, val.length - 1);\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['endswith'] : DataUtil.odUniOperator['endswith'];\n }\n else if (val.lastIndexOf('%') !== val.indexOf('%') && val.lastIndexOf('%') > val.indexOf('%') + 1) {\n val = val.substring(val.indexOf('%') + 1, val.lastIndexOf('%'));\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n }\n else {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n }\n }\n val = encodeURIComponent(val);\n val = '\\'' + val + '\\'';\n }\n else if (operator === 'wildcard') {\n val = val;\n if (val.indexOf('*') !== -1) {\n var splittedStringValue = val.split('*');\n var splittedValue = void 0;\n var count = 0;\n if (val.indexOf('*') !== 0 && splittedStringValue[0].indexOf('%3f') === -1 &&\n splittedStringValue[0].indexOf('?') === -1) {\n splittedValue = splittedStringValue[0];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['startswith'] : DataUtil.odUniOperator['startswith'];\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n if (val.lastIndexOf('*') !== val.length - 1 && splittedStringValue[splittedStringValue.length - 1].indexOf('%3f') === -1 &&\n splittedStringValue[splittedStringValue.length - 1].indexOf('?') === -1) {\n splittedValue = splittedStringValue[splittedStringValue.length - 1];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['endswith'] : DataUtil.odUniOperator['endswith'];\n if (count > 0) {\n returnValue += ' and ';\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n if (splittedStringValue.length > 2) {\n for (var i = 1; i < splittedStringValue.length - 1; i++) {\n if (splittedStringValue[i].indexOf('%3f') === -1 && splittedStringValue[i].indexOf('?') === -1) {\n splittedValue = splittedStringValue[i];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (count > 0) {\n returnValue += ' and ';\n }\n if (operator === 'substringof' || operator === 'not substringof') {\n var temp = splittedValue;\n splittedValue = field;\n field = temp;\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n }\n }\n if (count === 0) {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) {\n val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join('');\n }\n val = '\\'' + val + '\\'';\n }\n else {\n operator = 'wildcard';\n }\n }\n else {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) {\n val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join('');\n }\n val = '\\'' + val + '\\'';\n }\n }\n if (operator === 'substringof' || operator === 'not substringof') {\n var temp = val;\n val = field;\n field = temp;\n }\n if (operator !== 'wildcard') {\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += val + ')';\n }\n return returnValue;\n };\n ODataAdaptor.prototype.addParams = function (options) {\n _super.prototype.addParams.call(this, options);\n delete options.reqParams.params;\n };\n /**\n * Generate request string based on the multiple filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onComplexPredicate = function (predicate, query, requiresCast) {\n var res = [];\n for (var i = 0; i < predicate.predicates.length; i++) {\n res.push('(' + this.onEachWhere(predicate.predicates[i], query, requiresCast) + ')');\n }\n return res.join(' ' + predicate.condition + ' ');\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n *\n * @param {Predicate} filter\n * @param {boolean} requiresCast?\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onEachWhere = function (filter, query, requiresCast) {\n return filter.isComplex ? this.onComplexPredicate(filter, query, requiresCast) : this.onPredicate(filter, query, requiresCast);\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n *\n * @param {string[]} filters\n */\n ODataAdaptor.prototype.onWhere = function (filters) {\n if (this.pvt.search) {\n filters.push(this.onEachWhere(this.pvt.search, null, true));\n }\n return filters.join(' and ');\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n *\n * @param e\n * @param {string} operator\n * @param {string} key\n * @param {boolean} } ignoreCase\n * @param e.fields\n * @param e.operator\n * @param e.key\n * @param e.ignoreCase\n */\n ODataAdaptor.prototype.onEachSearch = function (e) {\n if (e.fields && e.fields.length === 0) {\n DataUtil.throwError('Query() - Search : oData search requires list of field names to search');\n }\n var filter = this.pvt.search || [];\n for (var i = 0; i < e.fields.length; i++) {\n filter.push(new Predicate(e.fields[i], e.operator, e.key, e.ignoreCase));\n }\n this.pvt.search = filter;\n };\n /**\n * Generate query string based on the search criteria from query.\n *\n * @param {Object} e\n */\n ODataAdaptor.prototype.onSearch = function (e) {\n this.pvt.search = Predicate.or(this.pvt.search);\n return '';\n };\n /**\n * Generate query string based on multiple sort criteria from query.\n *\n * @param {QueryOptions} e\n */\n ODataAdaptor.prototype.onEachSort = function (e) {\n var res = [];\n if (e.name instanceof Array) {\n for (var i = 0; i < e.name.length; i++) {\n res.push(ODataAdaptor.getField(e.name[i]) + (e.direction === 'descending' ? ' desc' : ''));\n }\n }\n else {\n res.push(ODataAdaptor.getField(e.name) + (e.direction === 'descending' ? ' desc' : ''));\n }\n return res.join(',');\n };\n /**\n * Returns sort query string.\n *\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSortBy = function (e) {\n return e.reverse().join(',');\n };\n /**\n * Adds the group query to the adaptor option.\n *\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return [];\n };\n /**\n * Returns the select query string.\n *\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSelect = function (e) {\n for (var i = 0; i < e.length; i++) {\n e[i] = ODataAdaptor.getField(e[i]);\n }\n return e.join(',');\n };\n /**\n * Add the aggregate query to the adaptor option.\n *\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n return '';\n };\n /**\n * Returns the query string which requests total count from the data source.\n *\n * @param {boolean} e\n * @returns string\n */\n ODataAdaptor.prototype.onCount = function (e) {\n return e === true ? 'allpages' : '';\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings?\n * @param settings\n */\n ODataAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (DataUtil.endsWith(settings.url, this.options.batch) && settings.type.toLowerCase() === 'post') {\n request.setRequestHeader('Accept', this.options.multipartAccept);\n request.setRequestHeader('DataServiceVersion', '2.0');\n request.overrideMimeType('text/plain; charset=x-user-defined');\n }\n else {\n request.setRequestHeader('Accept', this.options.accept);\n }\n request.setRequestHeader('DataServiceVersion', '2.0');\n request.setRequestHeader('MaxDataServiceVersion', '2.0');\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n ODataAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaCheck = 'odata.metadata';\n if ((request && request.type === 'GET') && !this.rootUrl && data[metaCheck]) {\n var dataUrls = data[metaCheck].split('/$metadata#');\n this.rootUrl = dataUrls[0];\n this.resourceTableName = dataUrls[1];\n }\n var pvtData = 'pvtData';\n if (!isNullOrUndefined(data.d)) {\n var dataCopy = ((query && query.isCountRequired) ? data.d.results : data.d);\n var metaData = '__metadata';\n if (!isNullOrUndefined(dataCopy)) {\n for (var i = 0; i < dataCopy.length; i++) {\n if (!isNullOrUndefined(dataCopy[i][metaData])) {\n delete dataCopy[i][metaData];\n }\n }\n }\n }\n var pvt = request && request[pvtData];\n var emptyAndBatch = this.processBatchResponse(data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var versionCheck = xhr && request.getResponseHeader('DataServiceVersion');\n var count = null;\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n var oDataCount = '__count';\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n if (data.d) {\n data = data.d;\n }\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n }\n if (version === 3 && data.value) {\n data = data.value;\n }\n if (data.d) {\n data = data.d;\n }\n if (version < 3 && data.results) {\n data = data.results;\n }\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n /**\n * Converts the request object to query string.\n *\n * @param {Object} req\n * @param request\n * @param {Query} query\n * @param {DataManager} dm\n * @returns tableName\n */\n ODataAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n var res = [];\n var table = 'table';\n var tableName = request[table] || '';\n var format = '$format';\n delete request[table];\n if (dm.dataSource.requiresFormat) {\n request[format] = 'json';\n }\n var keys = Object.keys(request);\n for (var _i = 0, keys_4 = keys; _i < keys_4.length; _i++) {\n var prop = keys_4[_i];\n res.push(prop + '=' + request[prop]);\n }\n res = res.join('&');\n if (dm.dataSource.url && dm.dataSource.url.indexOf('?') !== -1 && !tableName) {\n return res;\n }\n return res.length ? tableName + '?' + res : tableName || '';\n };\n ODataAdaptor.prototype.localTimeReplacer = function (key, convertObj) {\n for (var _i = 0, _a = !isNullOrUndefined(convertObj) ? Object.keys(convertObj) : []; _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((convertObj[prop] instanceof Date)) {\n convertObj[prop] = DataUtil.dateParse.toLocalTime(convertObj[prop]);\n }\n }\n return convertObj;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n ODataAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n url: (dm.dataSource.insertUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : ''),\n data: JSON.stringify(data, this.options.localTime ? this.localTimeReplacer : null)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n * @param tableName\n */\n ODataAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var url;\n if (typeof value === 'string' && !DataUtil.parse.isGuid(value)) {\n url = \"('\" + value + \"')\";\n }\n else {\n url = \"(\" + value + \")\";\n }\n return {\n type: 'DELETE',\n url: (dm.dataSource.removeUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url\n };\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @param query\n * @param original\n * @returns this\n */\n ODataAdaptor.prototype.update = function (dm, keyField, value, tableName, query, original) {\n if (this.options.updateType === 'PATCH' && !isNullOrUndefined(original)) {\n value = this.compareAndRemove(value, original, keyField);\n }\n var url;\n if (typeof value[keyField] === 'string' && !DataUtil.parse.isGuid(value[keyField])) {\n url = \"('\" + value[keyField] + \"')\";\n }\n else {\n url = \"(\" + value[keyField] + \")\";\n }\n return {\n type: this.options.updateType,\n url: (dm.dataSource.updateUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url,\n data: JSON.stringify(value, this.options.localTime ? this.localTimeReplacer : null),\n accept: this.options.accept\n };\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @param query\n * @param original\n * @returns {Object}\n */\n ODataAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = this.rootUrl ? this.rootUrl + '/' + this.options.batch :\n dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var args = {\n url: e.url,\n key: e.key,\n cid: 1,\n cSet: DataUtil.getGuid(this.options.changeSet)\n };\n var req = '--' + initialGuid + '\\n';\n req += 'Content-Type: multipart/mixed; boundary=' + args.cSet.replace('--', '') + '\\n';\n this.pvt.changeSet = 0;\n req += this.generateInsertRequest(changes.addedRecords, args, dm);\n req += this.generateUpdateRequest(changes.changedRecords, args, dm, original ? original.changedRecords : []);\n req += this.generateDeleteRequest(changes.deletedRecords, args, dm);\n req += args.cSet + '--\\n';\n req += '--' + initialGuid + '--';\n return {\n type: 'POST',\n url: url,\n dataType: 'json',\n contentType: 'multipart/mixed; charset=UTF-8;boundary=' + initialGuid,\n data: req\n };\n };\n /**\n * Generate the string content from the removed records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n * @returns this\n */\n ODataAdaptor.prototype.generateDeleteRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '(' + url + ')';\n }\n else if (url instanceof Date) {\n var dateTime = data[i][key];\n return '(' + dateTime.toJSON() + ')';\n }\n else {\n return \"('\" + url + \"')\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req + '\\n';\n };\n /**\n * Generate the string content from the inserted records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n */\n ODataAdaptor.prototype.generateInsertRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n /**\n * Generate the string content from the updated records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n * @param org\n */\n ODataAdaptor.prototype.generateUpdateRequest = function (arr, e, dm, org) {\n var _this = this;\n if (!arr) {\n return '';\n }\n var req = '';\n arr.forEach(function (change) { return change = _this.compareAndRemove(change, org.filter(function (o) { return DataUtil.getObject(e.key, o) === DataUtil.getObject(e.key, change); })[0], e.key); });\n var stat = {\n 'method': this.options.updateType + ' ',\n 'url': function (data, i, key) {\n if (typeof data[i][key] === 'number' || DataUtil.parse.isGuid(data[i][key])) {\n return '(' + data[i][key] + ')';\n }\n else if (data[i][key] instanceof Date) {\n var date = data[i][key];\n return '(' + date.toJSON() + ')';\n }\n else {\n return \"('\" + data[i][key] + \"')\";\n }\n },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n ODataAdaptor.getField = function (prop) {\n return prop.replace(/\\./g, '/');\n };\n ODataAdaptor.prototype.generateBodyContent = function (arr, e, stat, dm) {\n var req = '';\n for (var i = 0; i < arr.length; i++) {\n req += '\\n' + e.cSet + '\\n';\n req += this.options.changeSetContent + '\\n\\n';\n req += stat.method;\n if (stat.method === 'POST ') {\n req += (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'PUT ' || stat.method === 'PATCH ') {\n req += (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'DELETE ') {\n req += (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n req += 'Accept: ' + this.options.accept + '\\n';\n req += 'Content-Id: ' + this.pvt.changeSet++ + '\\n';\n req += this.options.batchChangeSetContentType + '\\n';\n if (!isNullOrUndefined(arr[i]['@odata.etag'])) {\n req += 'If-Match: ' + arr[i]['@odata.etag'] + '\\n\\n';\n delete arr[i]['@odata.etag'];\n }\n else {\n req += '\\n';\n }\n req += stat.data(arr, i);\n }\n return req;\n };\n ODataAdaptor.prototype.processBatchResponse = function (data, query, xhr, request, changes) {\n if (xhr && xhr.getResponseHeader('Content-Type') && xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n if (request && this.options.batch && DataUtil.endsWith(request.url, this.options.batch) && request.type.toLowerCase() === 'post') {\n var guid = xhr.getResponseHeader('Content-Type');\n var cIdx = void 0;\n var jsonObj = void 0;\n var d = data + '';\n guid = guid.substring(guid.indexOf('=batchresponse') + 1);\n d = d.split(guid);\n if (d.length < 2) {\n return {};\n }\n d = d[1];\n var exVal = /(?:\\bContent-Type.+boundary=)(changesetresponse.+)/i.exec(d);\n if (exVal) {\n d.replace(exVal[0], '');\n }\n var changeGuid = exVal ? exVal[1] : '';\n d = d.split(changeGuid);\n for (var i = d.length; i > -1; i--) {\n if (!/\\bContent-ID:/i.test(d[i]) || !/\\bHTTP.+201/.test(d[i])) {\n continue;\n }\n cIdx = parseInt(/\\bContent-ID: (\\d+)/i.exec(d[i])[1], 10);\n if (changes.addedRecords[cIdx]) {\n jsonObj = DataUtil.parse.parseJson(/^\\{.+\\}/m.exec(d[i])[0]);\n extend({}, changes.addedRecords[cIdx], this.processResponse(jsonObj));\n }\n }\n return changes;\n }\n return null;\n };\n ODataAdaptor.prototype.compareAndRemove = function (data, original, key) {\n var _this = this;\n if (isNullOrUndefined(original)) {\n return data;\n }\n Object.keys(data).forEach(function (prop) {\n if (prop !== key && prop !== '@odata.etag') {\n if (DataUtil.isPlainObject(data[prop])) {\n _this.compareAndRemove(data[prop], original[prop]);\n var final = Object.keys(data[prop]).filter(function (data) { return data !== '@odata.etag'; });\n if (final.length === 0) {\n delete data[prop];\n }\n }\n else if (data[prop] === original[prop]) {\n delete data[prop];\n }\n else if (data[prop] && original[prop] && data[prop].valueOf() === original[prop].valueOf()) {\n delete data[prop];\n }\n }\n });\n return data;\n };\n return ODataAdaptor;\n}(UrlAdaptor));\nexport { ODataAdaptor };\n/**\n * The OData v4 is an improved version of OData protocols.\n * The DataManager uses the ODataV4Adaptor to consume OData v4 services.\n *\n * @hidden\n */\nvar ODataV4Adaptor = /** @class */ (function (_super) {\n __extends(ODataV4Adaptor, _super);\n function ODataV4Adaptor(props) {\n var _this = _super.call(this, props) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json, text/javascript, */*; q=0.01',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$count',\n search: '$search',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PATCH',\n localTime: false,\n apply: '$apply'\n });\n extend(_this.options, props || {});\n return _this;\n }\n /**\n * @hidden\n */\n ODataV4Adaptor.prototype.getModuleName = function () {\n return 'ODataV4Adaptor';\n };\n /**\n * Returns the query string which requests total count from the data source.\n *\n * @param {boolean} e\n * @returns string\n */\n ODataV4Adaptor.prototype.onCount = function (e) {\n return e === true ? 'true' : '';\n };\n /**\n * Generate request string based on the filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataV4Adaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var val = predicate.value;\n var isDate = val instanceof Date;\n if (query instanceof Query) {\n var queries = this.getQueryRequest(query);\n for (var i = 0; i < queries.filters.length; i++) {\n if (queries.filters[i].e.key === predicate.value) {\n requiresCast = true;\n }\n }\n }\n returnValue = _super.prototype.onPredicate.call(this, predicate, query, requiresCast);\n if (isDate) {\n returnValue = returnValue.replace(/datetime'(.*)'$/, '$1');\n }\n if (DataUtil.parse.isGuid(val)) {\n returnValue = returnValue.replace('guid', '').replace(/'/g, '');\n }\n return returnValue;\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n *\n * @param e\n * @param {string} operator\n * @param {string} key\n * @param {boolean} } ignoreCase\n * @param e.fields\n * @param e.operator\n * @param e.key\n * @param e.ignoreCase\n */\n ODataV4Adaptor.prototype.onEachSearch = function (e) {\n var search = this.pvt.searches || [];\n search.push(e.key);\n this.pvt.searches = search;\n };\n /**\n * Generate query string based on the search criteria from query.\n *\n * @param {Object} e\n */\n ODataV4Adaptor.prototype.onSearch = function (e) {\n return this.pvt.searches.join(' OR ');\n };\n /**\n * Returns the expand query string.\n *\n * @param {string} e\n * @param e.selects\n * @param e.expands\n */\n ODataV4Adaptor.prototype.onExpand = function (e) {\n var _this = this;\n var selected = {};\n var expanded = {};\n var expands = e.expands.slice();\n var exArr = [];\n var selects = e.selects.filter(function (item) { return item.indexOf('.') > -1; });\n selects.forEach(function (select) {\n var splits = select.split('.');\n if (!(splits[0] in selected)) {\n selected[splits[0]] = [];\n }\n if (splits.length === 2) {\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1) {\n if (selected[splits[0]][0].indexOf('$expand') !== -1 && selected[splits[0]][0].indexOf(';$select=') === -1) {\n selected[splits[0]][0] = selected[splits[0]][0] + ';' + '$select=' + splits[1];\n }\n else {\n selected[splits[0]][0] = selected[splits[0]][0] + ',' + splits[1];\n }\n }\n else {\n selected[splits[0]].push('$select=' + splits[1]);\n }\n }\n else {\n var sel = '$select=' + splits[splits.length - 1];\n var exp = '';\n var close_1 = '';\n for (var i = 1; i < splits.length - 1; i++) {\n exp = exp + '$expand=' + splits[i] + '(';\n close_1 = close_1 + ')';\n }\n var combineVal = exp + sel + close_1;\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1 &&\n _this.expandQueryIndex(selected[splits[0]], true)) {\n var idx = _this.expandQueryIndex(selected[splits[0]]);\n selected[splits[0]][idx] = selected[splits[0]][idx] + combineVal.replace('$expand=', ',');\n }\n else {\n selected[splits[0]].push(combineVal);\n }\n }\n });\n //Auto expand from select query\n Object.keys(selected).forEach(function (expand) {\n if ((expands.indexOf(expand) === -1)) {\n expands.push(expand);\n }\n });\n expands.forEach(function (expand) {\n expanded[expand] = expand in selected ? expand + \"(\" + selected[expand].join(';') + \")\" : expand;\n });\n Object.keys(expanded).forEach(function (ex) { return exArr.push(expanded[ex]); });\n return exArr.join(',');\n };\n ODataV4Adaptor.prototype.expandQueryIndex = function (query, isExpand) {\n for (var i = 0; i < query.length; i++) {\n if (query[i].indexOf('$expand') !== -1) {\n return isExpand ? true : i;\n }\n }\n return isExpand ? false : 0;\n };\n /**\n * Returns the groupby query string.\n *\n * @param {string} e\n * @param distinctFields\n */\n ODataV4Adaptor.prototype.onDistinct = function (distinctFields) {\n var fields = distinctFields.map(function (field) { return ODataAdaptor.getField(field); }).join(',');\n return \"groupby((\" + fields + \"))\";\n };\n /**\n * Returns the select query string.\n *\n * @param {string[]} e\n */\n ODataV4Adaptor.prototype.onSelect = function (e) {\n return _super.prototype.onSelect.call(this, e.filter(function (item) { return item.indexOf('.') === -1; }));\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings\n * @returns void\n */\n ODataV4Adaptor.prototype.beforeSend = function (dm, request, settings) {\n if (settings.type === 'POST' || settings.type === 'PUT' || settings.type === 'PATCH') {\n request.setRequestHeader('Prefer', 'return=representation');\n }\n request.setRequestHeader('Accept', this.options.accept);\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n ODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaName = '@odata.context';\n var metaV4Name = '@context';\n if ((request && request.type === 'GET') && !this.rootUrl && (data[metaName] || data[metaV4Name])) {\n var dataUrl = data[metaName] ? data[metaName].split('/$metadata#') : data[metaV4Name].split('/$metadata#');\n this.rootUrl = dataUrl[0];\n this.resourceTableName = dataUrl[1];\n }\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var emptyAndBatch = _super.prototype.processBatchResponse.call(this, data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var count = null;\n var dataCount = '@odata.count';\n var dataV4Count = '@count';\n if (query && query.isCountRequired) {\n if (dataCount in data) {\n count = data[dataCount];\n }\n else if (dataV4Count in data) {\n count = data[dataV4Count];\n }\n }\n data = !isNullOrUndefined(data.value) ? data.value : data;\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: count, aggregates: args.aggregates };\n };\n return ODataV4Adaptor;\n}(ODataAdaptor));\nexport { ODataV4Adaptor };\n/**\n * The Web API is a programmatic interface to define the request and response messages system that is mostly exposed in JSON or XML.\n * The DataManager uses the WebApiAdaptor to consume Web API.\n * Since this adaptor is targeted to interact with Web API created using OData endpoint, it is extended from ODataAdaptor\n *\n * @hidden\n */\nvar WebApiAdaptor = /** @class */ (function (_super) {\n __extends(WebApiAdaptor, _super);\n function WebApiAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WebApiAdaptor.prototype.getModuleName = function () {\n return 'WebApiAdaptor';\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n type: 'POST',\n url: dm.dataSource.url,\n data: JSON.stringify(data)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n return {\n type: 'DELETE',\n url: dm.dataSource.url + '/' + value,\n data: JSON.stringify(value)\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n return {\n type: 'PUT',\n url: dm.dataSource.url,\n data: JSON.stringify(value)\n };\n };\n WebApiAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var _this = this;\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var req = [];\n var _loop_1 = function (i, x) {\n changes.addedRecords.forEach(function (j, d) {\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('POST ' + '/api/' + (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.addedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //insertion\n for (var i = 0, x = changes.addedRecords.length; i < x; i++) {\n _loop_1(i, x);\n }\n var _loop_2 = function (i, x) {\n changes.changedRecords.forEach(function (j, d) {\n var stat = {\n 'method': _this.options.updateType + ' ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('PUT ' + '/api/' + (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.changedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //updation\n for (var i = 0, x = changes.changedRecords.length; i < x; i++) {\n _loop_2(i, x);\n }\n var _loop_3 = function (i, x) {\n changes.deletedRecords.forEach(function (j, d) {\n var state = {\n 'mtd': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '/' + url;\n }\n else if (url instanceof Date) {\n var datTime = data[i][key];\n return '/' + datTime.toJSON();\n }\n else {\n return \"/'\" + url + \"'\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('DELETE ' + '/api/' + (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url)\n + state.url(changes.deletedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //deletion\n for (var i = 0, x = changes.deletedRecords.length; i < x; i++) {\n _loop_3(i, x);\n }\n req.push('--' + initialGuid + '--', '');\n return {\n type: 'POST',\n url: url,\n contentType: 'multipart/mixed; boundary=' + initialGuid,\n data: req.join('\\r\\n')\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings\n * @returns void\n */\n WebApiAdaptor.prototype.beforeSend = function (dm, request, settings) {\n request.setRequestHeader('Accept', 'application/json, text/javascript, */*; q=0.01');\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n WebApiAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var count = null;\n var args = {};\n if (request && request.type.toLowerCase() !== 'post') {\n var versionCheck = xhr && request.getResponseHeader('DataServiceVersion');\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n if (!DataUtil.isNull(data.Count)) {\n count = data.Count;\n }\n }\n if (version < 3 && data.Items) {\n data = data.Items;\n }\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n }\n args.result = args.result || data;\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n return WebApiAdaptor;\n}(ODataAdaptor));\nexport { WebApiAdaptor };\n/**\n * WebMethodAdaptor can be used by DataManager to interact with web method.\n *\n * @hidden\n */\nvar WebMethodAdaptor = /** @class */ (function (_super) {\n __extends(WebMethodAdaptor, _super);\n function WebMethodAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Prepare the request body based on the query.\n * The query information can be accessed at the WebMethod using variable named `value`.\n *\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @param hierarchyFilters\n * @returns application\n */\n WebMethodAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var obj = new UrlAdaptor().processQuery(dm, query, hierarchyFilters);\n var getData = 'data';\n var data = DataUtil.parse.parseJson(obj[getData]);\n var result = {};\n var value = 'value';\n if (data.param) {\n for (var i = 0; i < data.param.length; i++) {\n var param = data.param[i];\n var key = Object.keys(param)[0];\n result[key] = param[key];\n }\n }\n result[value] = data;\n var pvtData = 'pvtData';\n var url = 'url';\n return {\n data: JSON.stringify(result),\n url: obj[url],\n pvtData: obj[pvtData],\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n };\n return WebMethodAdaptor;\n}(UrlAdaptor));\nexport { WebMethodAdaptor };\n/**\n * RemoteSaveAdaptor, extended from JsonAdaptor and it is used for binding local data and performs all DataManager queries in client-side.\n * It interacts with server-side only for CRUD operations.\n *\n * @hidden\n */\nvar RemoteSaveAdaptor = /** @class */ (function (_super) {\n __extends(RemoteSaveAdaptor, _super);\n /**\n * @hidden\n */\n function RemoteSaveAdaptor() {\n var _this = _super.call(this) || this;\n setValue('beforeSend', UrlAdaptor.prototype.beforeSend, _this);\n return _this;\n }\n RemoteSaveAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n this.pvt.position = position;\n this.updateType = 'add';\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.remove = function (dm, keyField, val, tableName, query) {\n _super.prototype.remove.call(this, dm, keyField, val);\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: val,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.update = function (dm, keyField, val, tableName, query) {\n this.updateType = 'update';\n this.updateKey = keyField;\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: val,\n action: 'update',\n keyColumn: keyField,\n key: val[keyField],\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes, e) {\n var i;\n var newData = request ? JSON.parse(request.data) : data;\n data = newData.action === 'batch' ? DataUtil.parse.parseJson(data) : data;\n if (this.updateType === 'add') {\n _super.prototype.insert.call(this, ds, data, null, null, this.pvt.position);\n }\n if (this.updateType === 'update') {\n _super.prototype.update.call(this, ds, this.updateKey, data);\n }\n this.updateType = undefined;\n if (data.added) {\n for (i = 0; i < data.added.length; i++) {\n _super.prototype.insert.call(this, ds, data.added[i]);\n }\n }\n if (data.changed) {\n for (i = 0; i < data.changed.length; i++) {\n _super.prototype.update.call(this, ds, e.key, data.changed[i]);\n }\n }\n if (data.deleted) {\n for (i = 0; i < data.deleted.length; i++) {\n _super.prototype.remove.call(this, ds, e.key, data.deleted[i]);\n }\n }\n return data;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * Also perform the changes in the locally cached data to sync with the remote data.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @param query\n * @param original\n */\n RemoteSaveAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e.url,\n key: e.key\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.addParams = function (options) {\n var urlParams = new UrlAdaptor();\n urlParams.addParams(options);\n };\n return RemoteSaveAdaptor;\n}(JsonAdaptor));\nexport { RemoteSaveAdaptor };\n/**\n * Ajax Adaptor that is extended from URL Adaptor, is used for handle data operations with user defined functions.\n *\n * @hidden\n */\nvar CustomDataAdaptor = /** @class */ (function (_super) {\n __extends(CustomDataAdaptor, _super);\n function CustomDataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n getData: function () { },\n addRecord: function () { },\n updateRecord: function () { },\n deleteRecord: function () { },\n batchUpdate: function () { }\n });\n extend(_this.options, props || {});\n return _this;\n }\n CustomDataAdaptor.prototype.getModuleName = function () {\n return 'CustomDataAdaptor';\n };\n return CustomDataAdaptor;\n}(UrlAdaptor));\nexport { CustomDataAdaptor };\n/**\n * The GraphqlAdaptor that is extended from URL Adaptor, is used for retrieving data from the Graphql server.\n * It interacts with the Graphql server with all the DataManager Queries and performs CRUD operations.\n *\n * @hidden\n */\nvar GraphQLAdaptor = /** @class */ (function (_super) {\n __extends(GraphQLAdaptor, _super);\n function GraphQLAdaptor(options) {\n var _this = _super.call(this) || this;\n _this.opt = options;\n _this.schema = _this.opt.response;\n _this.query = _this.opt.query;\n /* eslint-disable @typescript-eslint/no-empty-function */\n // tslint:disable-next-line:no-empty\n _this.getVariables = _this.opt.getVariables ? _this.opt.getVariables : function () { };\n /* eslint-enable @typescript-eslint/no-empty-function */\n _this.getQuery = function () { return _this.query; };\n return _this;\n }\n GraphQLAdaptor.prototype.getModuleName = function () {\n return 'GraphQLAdaptor';\n };\n /**\n * Process the JSON data based on the provided queries.\n *\n * @param {DataManager} dm\n * @param {Query} query?\n * @param datamanager\n * @param query\n */\n GraphQLAdaptor.prototype.processQuery = function (datamanager, query) {\n var urlQuery = _super.prototype.processQuery.apply(this, arguments);\n var dm = JSON.parse(urlQuery.data);\n // constructing GraphQL parameters\n var keys = ['skip', 'take', 'sorted', 'table', 'select', 'where',\n 'search', 'requiresCounts', 'aggregates', 'params'];\n var temp = {};\n var str = 'searchwhereparams';\n keys.filter(function (e) {\n temp[e] = str.indexOf(e) > -1 ? JSON.stringify(dm[e]) : dm[e];\n });\n var vars = this.getVariables() || {};\n // tslint:disable-next-line:no-string-literal\n vars['datamanager'] = temp;\n var data = JSON.stringify({\n query: this.getQuery(),\n variables: vars\n });\n urlQuery.data = data;\n return urlQuery;\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n *\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Object} request?\n * @param resData\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @returns DataResult\n */\n GraphQLAdaptor.prototype.processResponse = function (resData, ds, query, xhr, request) {\n var res = resData;\n var count;\n var aggregates;\n var result = getValue(this.schema.result, res.data);\n if (this.schema.count) {\n count = getValue(this.schema.count, res.data);\n }\n if (this.schema.aggregates) {\n aggregates = getValue(this.schema.aggregates, res.data);\n aggregates = !isNullOrUndefined(aggregates) ? DataUtil.parse.parseJson(aggregates) : aggregates;\n }\n var pvt = request.pvtData || {};\n var args = { result: result, aggregates: aggregates };\n var data = args;\n if (pvt && pvt.groups && pvt.groups.length) {\n this.getAggregateResult(pvt, data, args, null, query);\n }\n return !isNullOrUndefined(count) ? { result: args.result, count: count, aggregates: aggregates } : args.result;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n */\n GraphQLAdaptor.prototype.insert = function () {\n var inserted = _super.prototype.insert.apply(this, arguments);\n return this.generateCrudData(inserted, 'insert');\n };\n /**\n * Prepare and returns request body which is used to update a new record in the table.\n */\n GraphQLAdaptor.prototype.update = function () {\n var inserted = _super.prototype.update.apply(this, arguments);\n return this.generateCrudData(inserted, 'update');\n };\n /**\n * Prepare and returns request body which is used to remove a new record in the table.\n */\n GraphQLAdaptor.prototype.remove = function () {\n var inserted = _super.prototype.remove.apply(this, arguments);\n return this.generateCrudData(inserted, 'remove');\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param e.key\n * @param {Query} query\n * @param {Object} original\n */\n GraphQLAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var batch = _super.prototype.batchRequest.apply(this, arguments);\n // tslint:disable-next-line:typedef\n var bData = JSON.parse(batch.data);\n bData.key = e.key;\n batch.data = JSON.stringify(bData);\n return this.generateCrudData(batch, 'batch');\n };\n GraphQLAdaptor.prototype.generateCrudData = function (crudData, action) {\n var parsed = JSON.parse(crudData.data);\n crudData.data = JSON.stringify({\n query: this.opt.getMutation(action),\n variables: parsed\n });\n return crudData;\n };\n return GraphQLAdaptor;\n}(UrlAdaptor));\nexport { GraphQLAdaptor };\n/**\n * Cache Adaptor is used to cache the data of the visited pages. It prevents new requests for the previously visited pages.\n * You can configure cache page size and duration of caching by using cachingPageSize and timeTillExpiration properties of the DataManager\n *\n * @hidden\n */\nvar CacheAdaptor = /** @class */ (function (_super) {\n __extends(CacheAdaptor, _super);\n /**\n * Constructor for CacheAdaptor class.\n *\n * @param {CacheAdaptor} adaptor?\n * @param {number} timeStamp?\n * @param {number} pageSize?\n * @param adaptor\n * @param timeStamp\n * @param pageSize\n * @hidden\n */\n function CacheAdaptor(adaptor, timeStamp, pageSize) {\n var _this = _super.call(this) || this;\n _this.isCrudAction = false;\n _this.isInsertAction = false;\n if (!isNullOrUndefined(adaptor)) {\n _this.cacheAdaptor = adaptor;\n }\n _this.pageSize = pageSize;\n _this.guidId = DataUtil.getGuid('cacheAdaptor');\n var obj = { keys: [], results: [] };\n window.localStorage.setItem(_this.guidId, JSON.stringify(obj));\n var guid = _this.guidId;\n if (!isNullOrUndefined(timeStamp)) {\n setInterval(function () {\n var data = DataUtil.parse.parseJson(window.localStorage.getItem(guid));\n var forDel = [];\n for (var i = 0; i < data.results.length; i++) {\n var currentTime = +new Date();\n var requestTime = +new Date(data.results[i].timeStamp);\n data.results[i].timeStamp = currentTime - requestTime;\n if (currentTime - requestTime > timeStamp) {\n forDel.push(i);\n }\n }\n for (var i = 0; i < forDel.length; i++) {\n data.results.splice(forDel[i], 1);\n data.keys.splice(forDel[i], 1);\n }\n window.localStorage.removeItem(guid);\n window.localStorage.setItem(guid, JSON.stringify(data));\n }, timeStamp);\n }\n return _this;\n }\n /**\n * It will generate the key based on the URL when we send a request to server.\n *\n * @param {string} url\n * @param {Query} query?\n * @param query\n * @hidden\n */\n CacheAdaptor.prototype.generateKey = function (url, query) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var key = url;\n var page = 'onPage';\n if (page in singles) {\n key += singles[page].pageIndex;\n }\n queries.sorts.forEach(function (obj) {\n key += obj.e.direction + obj.e.fieldName;\n });\n queries.groups.forEach(function (obj) {\n key += obj.e.fieldName;\n });\n queries.searches.forEach(function (obj) {\n key += obj.e.searchKey;\n });\n for (var filter = 0; filter < queries.filters.length; filter++) {\n var currentFilter = queries.filters[filter];\n if (currentFilter.e.isComplex) {\n var newQuery = query.clone();\n newQuery.queries = [];\n for (var i = 0; i < currentFilter.e.predicates.length; i++) {\n newQuery.queries.push({ fn: 'onWhere', e: currentFilter.e.predicates[i], filter: query.queries.filter });\n }\n key += currentFilter.e.condition + this.generateKey(url, newQuery);\n }\n else {\n key += currentFilter.e.field + currentFilter.e.operator + currentFilter.e.value;\n }\n }\n return key;\n };\n /**\n * Process the query to generate request body.\n * If the data is already cached, it will return the cached data.\n *\n * @param {DataManager} dm\n * @param {Query} query?\n * @param {Object[]} hierarchyFilters?\n * @param query\n * @param hierarchyFilters\n */\n CacheAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var key = this.generateKey(dm.dataSource.url, query);\n var cachedItems = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var data = cachedItems ? cachedItems.results[cachedItems.keys.indexOf(key)] : null;\n if (data != null && !this.isCrudAction && !this.isInsertAction) {\n return data;\n }\n this.isCrudAction = null;\n this.isInsertAction = null;\n /* eslint-disable prefer-spread */\n return this.cacheAdaptor.processQuery.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n /* eslint-enable prefer-spread */\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n *\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {XMLHttpRequest} xhr?\n * @param {Ajax} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n */\n CacheAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (this.isInsertAction || (request && this.cacheAdaptor.options.batch &&\n DataUtil.endsWith(request.url, this.cacheAdaptor.options.batch) && request.type.toLowerCase() === 'post')) {\n return this.cacheAdaptor.processResponse(data, ds, query, xhr, request, changes);\n }\n /* eslint-disable prefer-spread */\n data = this.cacheAdaptor.processResponse.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n /* eslint-enable prefer-spread */\n var key = query ? this.generateKey(ds.dataSource.url, query) : ds.dataSource.url;\n var obj = {};\n obj = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var index = obj.keys.indexOf(key);\n if (index !== -1) {\n obj.results.splice(index, 1);\n obj.keys.splice(index, 1);\n }\n obj.results[obj.keys.push(key) - 1] = { keys: key, result: data.result, timeStamp: new Date(), count: data.count };\n while (obj.results.length > this.pageSize) {\n obj.results.splice(0, 1);\n obj.keys.splice(0, 1);\n }\n window.localStorage.setItem(this.guidId, JSON.stringify(obj));\n return data;\n };\n /**\n * Method will trigger before send the request to server side. Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {XMLHttpRequest} request\n * @param {Ajax} settings?\n * @param settings\n */\n CacheAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (!isNullOrUndefined(this.cacheAdaptor.options.batch) && DataUtil.endsWith(settings.url, this.cacheAdaptor.options.batch)\n && settings.type.toLowerCase() === 'post') {\n request.setRequestHeader('Accept', this.cacheAdaptor.options.multipartAccept);\n }\n if (!dm.dataSource.crossDomain) {\n request.setRequestHeader('Accept', this.cacheAdaptor.options.accept);\n }\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n */\n CacheAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.update(dm, keyField, value, tableName);\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n CacheAdaptor.prototype.insert = function (dm, data, tableName) {\n this.isInsertAction = true;\n return this.cacheAdaptor.insert(dm, data, tableName);\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n */\n CacheAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.remove(dm, keyField, value, tableName);\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n CacheAdaptor.prototype.batchRequest = function (dm, changes, e) {\n return this.cacheAdaptor.batchRequest(dm, changes, e);\n };\n return CacheAdaptor;\n}(UrlAdaptor));\nexport { CacheAdaptor };\n","/* eslint-disable valid-jsdoc */\n/* eslint-disable security/detect-object-injection */\nimport { Ajax } from '@syncfusion/ej2-base';\nimport { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Predicate, Query } from './query';\nimport { ODataAdaptor, JsonAdaptor, CacheAdaptor, RemoteSaveAdaptor, CustomDataAdaptor } from './adaptors';\n/**\n * DataManager is used to manage and manipulate relational data.\n */\nvar DataManager = /** @class */ (function () {\n /**\n * Constructor for DataManager class\n *\n * @param {DataOptions|JSON[]} dataSource?\n * @param {Query} query?\n * @param {AdaptorOptions|string} adaptor?\n * @param dataSource\n * @param query\n * @param adaptor\n * @hidden\n */\n function DataManager(dataSource, query, adaptor) {\n var _this = this;\n /** @hidden */\n this.dateParse = true;\n /** @hidden */\n this.timeZoneHandling = true;\n this.persistQuery = {};\n this.isInitialLoad = false;\n this.requests = [];\n this.isInitialLoad = true;\n if (!dataSource && !this.dataSource) {\n dataSource = [];\n }\n adaptor = adaptor || dataSource.adaptor;\n if (dataSource && dataSource.timeZoneHandling === false) {\n this.timeZoneHandling = dataSource.timeZoneHandling;\n }\n var data;\n if (dataSource instanceof Array) {\n data = {\n json: dataSource,\n offline: true\n };\n }\n else if (typeof dataSource === 'object') {\n if (!dataSource.json) {\n dataSource.json = [];\n }\n if (!dataSource.enablePersistence) {\n dataSource.enablePersistence = false;\n }\n if (!dataSource.id) {\n dataSource.id = '';\n }\n if (!dataSource.ignoreOnPersist) {\n dataSource.ignoreOnPersist = [];\n }\n data = {\n url: dataSource.url,\n insertUrl: dataSource.insertUrl,\n removeUrl: dataSource.removeUrl,\n updateUrl: dataSource.updateUrl,\n crudUrl: dataSource.crudUrl,\n batchUrl: dataSource.batchUrl,\n json: dataSource.json,\n headers: dataSource.headers,\n accept: dataSource.accept,\n data: dataSource.data,\n timeTillExpiration: dataSource.timeTillExpiration,\n cachingPageSize: dataSource.cachingPageSize,\n enableCaching: dataSource.enableCaching,\n requestType: dataSource.requestType,\n key: dataSource.key,\n crossDomain: dataSource.crossDomain,\n jsonp: dataSource.jsonp,\n dataType: dataSource.dataType,\n offline: dataSource.offline !== undefined ? dataSource.offline\n : dataSource.adaptor instanceof RemoteSaveAdaptor || dataSource.adaptor instanceof CustomDataAdaptor ?\n false : dataSource.url ? false : true,\n requiresFormat: dataSource.requiresFormat,\n enablePersistence: dataSource.enablePersistence,\n id: dataSource.id,\n ignoreOnPersist: dataSource.ignoreOnPersist\n };\n }\n else {\n DataUtil.throwError('DataManager: Invalid arguments');\n }\n if (data.requiresFormat === undefined && !DataUtil.isCors()) {\n data.requiresFormat = isNullOrUndefined(data.crossDomain) ? true : data.crossDomain;\n }\n if (data.dataType === undefined) {\n data.dataType = 'json';\n }\n this.dataSource = data;\n this.defaultQuery = query;\n if (this.dataSource.enablePersistence && this.dataSource.id) {\n window.addEventListener('unload', this.setPersistData.bind(this));\n }\n if (data.url && data.offline && !data.json.length) {\n this.isDataAvailable = false;\n this.adaptor = adaptor || new ODataAdaptor();\n this.dataSource.offline = false;\n this.ready = this.executeQuery(query || new Query());\n this.ready.then(function (e) {\n _this.dataSource.offline = true;\n _this.isDataAvailable = true;\n data.json = e.result;\n _this.adaptor = new JsonAdaptor();\n });\n }\n else {\n this.adaptor = data.offline ? new JsonAdaptor() : new ODataAdaptor();\n }\n if (!data.jsonp && this.adaptor instanceof ODataAdaptor) {\n data.jsonp = 'callback';\n }\n this.adaptor = adaptor || this.adaptor;\n if (data.enableCaching) {\n this.adaptor = new CacheAdaptor(this.adaptor, data.timeTillExpiration, data.cachingPageSize);\n }\n return this;\n }\n /**\n * Get the queries maintained in the persisted state.\n * @param {string} id - The identifier of the persisted query to retrieve.\n * @returns {object} The persisted data object.\n */\n DataManager.prototype.getPersistedData = function (id) {\n var persistedData = localStorage.getItem(id || this.dataSource.id);\n return JSON.parse(persistedData);\n };\n /**\n * Set the queries to be maintained in the persisted state.\n * @param {Event} e - The event parameter that triggers the setPersistData method.\n * @param {string} id - The identifier of the persisted query to set.\n * @param {object} persistData - The data to be persisted.\n * @returns {void} .\n */\n DataManager.prototype.setPersistData = function (e, id, persistData) {\n localStorage.setItem(id || this.dataSource.id, JSON.stringify(persistData || this.persistQuery));\n };\n DataManager.prototype.setPersistQuery = function (query) {\n var _this = this;\n var persistedQuery = this.getPersistedData();\n if (this.isInitialLoad && persistedQuery && Object.keys(persistedQuery).length) {\n this.persistQuery = persistedQuery;\n this.persistQuery.queries = this.persistQuery.queries.filter(function (query) {\n if (_this.dataSource.ignoreOnPersist && _this.dataSource.ignoreOnPersist.length) {\n if (query.fn && _this.dataSource.ignoreOnPersist.some(function (keyword) { return query.fn === keyword; })) {\n return false; // Exclude the matching query\n }\n }\n if (query.fn === 'onWhere') {\n var e = query.e;\n if (e && e.isComplex && e.predicates instanceof Array) {\n var allPredicates = e.predicates.map(function (predicateObj) {\n if (predicateObj.predicates && predicateObj.predicates instanceof Array) {\n // Process nested predicate array\n var nestedPredicates = predicateObj.predicates.map(function (nestedPredicate) {\n var field = nestedPredicate.field, operator = nestedPredicate.operator, value = nestedPredicate.value, ignoreCase = nestedPredicate.ignoreCase, ignoreAccent = nestedPredicate.ignoreAccent, matchCase = nestedPredicate.matchCase;\n return new Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase);\n });\n return predicateObj.condition === 'and' ? Predicate.and(nestedPredicates) : Predicate.or(nestedPredicates);\n }\n else {\n // Process individual predicate\n var field = predicateObj.field, operator = predicateObj.operator, value = predicateObj.value, ignoreCase = predicateObj.ignoreCase, ignoreAccent = predicateObj.ignoreAccent, matchCase = predicateObj.matchCase;\n return new Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase);\n }\n });\n query.e = new Predicate(allPredicates[0], e.condition, allPredicates.slice(1));\n }\n }\n return true; // Keep all other queries\n });\n var newQuery = extend(new Query(), this.persistQuery);\n this.isInitialLoad = false;\n return (newQuery);\n }\n else {\n this.persistQuery = query;\n this.isInitialLoad = false;\n return query;\n }\n };\n /**\n * Overrides DataManager's default query with given query.\n *\n * @param {Query} query - Defines the new default query.\n */\n DataManager.prototype.setDefaultQuery = function (query) {\n this.defaultQuery = query;\n return this;\n };\n /**\n * Executes the given query with local data source.\n *\n * @param {Query} query - Defines the query to retrieve data.\n */\n DataManager.prototype.executeLocal = function (query) {\n if (!this.defaultQuery && !(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeLocal() : A query is required to execute');\n }\n if (!this.dataSource.json) {\n DataUtil.throwError('DataManager - executeLocal() : Json data is required to execute');\n }\n if (this.dataSource.enablePersistence && this.dataSource.id) {\n query = this.setPersistQuery(query);\n }\n query = query || this.defaultQuery;\n var result = this.adaptor.processQuery(this, query);\n if (query.subQuery) {\n var from = query.subQuery.fromTable;\n var lookup = query.subQuery.lookups;\n var res = query.isCountRequired ? result.result :\n result;\n if (lookup && lookup instanceof Array) {\n DataUtil.buildHierarchy(query.subQuery.fKey, from, res, lookup, query.subQuery.key);\n }\n for (var j = 0; j < res.length; j++) {\n if (res[j][from] instanceof Array) {\n res[j] = extend({}, {}, res[j]);\n res[j][from] = this.adaptor.processResponse(query.subQuery.using(new DataManager(res[j][from].slice(0))).executeLocal(), this, query);\n }\n }\n }\n return this.adaptor.processResponse(result, this, query);\n };\n /**\n * Executes the given query with either local or remote data source.\n * It will be executed as asynchronously and returns Promise object which will be resolved or rejected after action completed.\n *\n * @param {Query|Function} query - Defines the query to retrieve data.\n * @param {Function} done - Defines the callback function and triggers when the Promise is resolved.\n * @param {Function} fail - Defines the callback function and triggers when the Promise is rejected.\n * @param {Function} always - Defines the callback function and triggers when the Promise is resolved or rejected.\n */\n DataManager.prototype.executeQuery = function (query, done, fail, always) {\n var _this = this;\n var makeRequest = 'makeRequest';\n if (this.dataSource.enablePersistence && this.dataSource.id) {\n query = this.setPersistQuery(query);\n }\n if (typeof query === 'function') {\n always = fail;\n fail = done;\n done = query;\n query = null;\n }\n if (!query) {\n query = this.defaultQuery;\n }\n if (!(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeQuery() : A query is required to execute');\n }\n var deffered = new Deferred();\n var args = { query: query };\n if (!this.dataSource.offline && (this.dataSource.url !== undefined && this.dataSource.url !== '')\n || (!isNullOrUndefined(this.adaptor[makeRequest])) || this.isCustomDataAdaptor(this.adaptor)) {\n var result = this.adaptor.processQuery(this, query);\n if (!isNullOrUndefined(this.adaptor[makeRequest])) {\n this.adaptor[makeRequest](result, deffered, args, query);\n }\n else if (!isNullOrUndefined(result.url) || this.isCustomDataAdaptor(this.adaptor)) {\n this.requests = [];\n this.makeRequest(result, deffered, args, query);\n }\n else {\n args = DataManager.getDeferedArgs(query, result, args);\n deffered.resolve(args);\n }\n }\n else {\n DataManager.nextTick(function () {\n var res = _this.executeLocal(query);\n args = DataManager.getDeferedArgs(query, res, args);\n deffered.resolve(args);\n });\n }\n if (done || fail) {\n deffered.promise.then(done, fail);\n }\n if (always) {\n deffered.promise.then(always, always);\n }\n return deffered.promise;\n };\n DataManager.getDeferedArgs = function (query, result, args) {\n if (query.isCountRequired) {\n args.result = result.result;\n args.count = result.count;\n args.aggregates = result.aggregates;\n }\n else {\n args.result = result;\n }\n return args;\n };\n DataManager.nextTick = function (fn) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n // tslint:disable-next-line:no-any\n (window.setImmediate || window.setTimeout)(fn, 0);\n /* eslint-enable @typescript-eslint/no-explicit-any */\n };\n DataManager.prototype.extendRequest = function (url, fnSuccess, fnFail) {\n return extend({}, {\n type: 'GET',\n dataType: this.dataSource.dataType,\n crossDomain: this.dataSource.crossDomain,\n jsonp: this.dataSource.jsonp,\n cache: true,\n processData: false,\n onSuccess: fnSuccess,\n onFailure: fnFail\n }, url);\n };\n // tslint:disable-next-line:max-func-body-length\n DataManager.prototype.makeRequest = function (url, deffered, args, query) {\n var _this = this;\n var isSelector = !!query.subQuerySelector;\n var fnFail = function (e) {\n args.error = e;\n deffered.reject(args);\n };\n var process = function (data, count, xhr, request, actual, aggregates, virtualSelectRecords) {\n args.xhr = xhr;\n args.count = count ? parseInt(count.toString(), 10) : 0;\n args.result = data;\n args.request = request;\n args.aggregates = aggregates;\n args.actual = actual;\n args.virtualSelectRecords = virtualSelectRecords;\n deffered.resolve(args);\n };\n var fnQueryChild = function (data, selector) {\n var subDeffer = new Deferred();\n var childArgs = { parent: args };\n query.subQuery.isChild = true;\n var subUrl = _this.adaptor.processQuery(_this, query.subQuery, data ? _this.adaptor.processResponse(data) : selector);\n var childReq = _this.makeRequest(subUrl, subDeffer, childArgs, query.subQuery);\n if (!isSelector) {\n subDeffer.then(function (subData) {\n if (data) {\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, data, subData, query.subQuery.key);\n process(data, subData.count, subData.xhr);\n }\n }, fnFail);\n }\n return childReq;\n };\n var fnSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n return fnFail(data['errors'], request);\n }\n }\n if (_this.isCustomDataAdaptor(_this.adaptor)) {\n request = extend({}, _this.ajaxReqOption, request);\n }\n if (request.httpRequest.getResponseHeader('Content-Type').indexOf('xml') === -1 && _this.dateParse) {\n data = DataUtil.parse.parseJson(data);\n }\n var result = _this.adaptor.processResponse(data, _this, query, request.httpRequest, request);\n var count = 0;\n var aggregates = null;\n var virtualSelectRecords = 'virtualSelectRecords';\n var virtualRecords = data[virtualSelectRecords];\n if (query.isCountRequired) {\n count = result.count;\n aggregates = result.aggregates;\n result = result.result;\n }\n if (!query.subQuery) {\n process(result, count, request.httpRequest, request.type, data, aggregates, virtualRecords);\n return;\n }\n if (!isSelector) {\n fnQueryChild(result, request);\n }\n };\n var req = this.extendRequest(url, fnSuccess, fnFail);\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var ajax_1 = new Ajax(req);\n ajax_1.beforeSend = function () {\n _this.beforeSend(ajax_1.httpRequest, ajax_1);\n };\n req = ajax_1.send();\n req.catch(function (e) { return true; }); // to handle failure remote requests.\n this.requests.push(ajax_1);\n }\n else {\n this.ajaxReqOption = req;\n var request = req;\n this.adaptor.options.getData({\n data: request.data,\n onSuccess: request.onSuccess, onFailure: request.onFailure\n });\n }\n if (isSelector) {\n var promise = void 0;\n var res = query.subQuerySelector.call(this, { query: query.subQuery, parent: query });\n if (res && res.length) {\n promise = Promise.all([req, fnQueryChild(null, res)]);\n promise.then(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = args[0];\n var pResult = _this.adaptor.processResponse(result[0], _this, query, _this.requests[0].httpRequest, _this.requests[0]);\n var count = 0;\n if (query.isCountRequired) {\n count = pResult.count;\n pResult = pResult.result;\n }\n var cResult = _this.adaptor.processResponse(result[1], _this, query.subQuery, _this.requests[1].httpRequest, _this.requests[1]);\n count = 0;\n if (query.subQuery.isCountRequired) {\n count = cResult.count;\n cResult = cResult.result;\n }\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, pResult, cResult, query.subQuery.key);\n isSelector = false;\n process(pResult, count, _this.requests[0].httpRequest);\n });\n }\n else {\n isSelector = false;\n }\n }\n return req;\n };\n DataManager.prototype.beforeSend = function (request, settings) {\n this.adaptor.beforeSend(this, request, settings);\n var headers = this.dataSource.headers;\n var props;\n for (var i = 0; headers && i < headers.length; i++) {\n props = [];\n var keys = Object.keys(headers[i]);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n props.push(prop);\n request.setRequestHeader(prop, headers[i][prop]);\n }\n }\n };\n /**\n * Save bulk changes to the given table name.\n * User can add a new record, edit an existing record, and delete a record at the same time.\n * If the datasource from remote, then updated in a single post.\n *\n * @param {Object} changes - Defines the CrudOptions.\n * @param {string} key - Defines the column field.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n * @param original\n */\n DataManager.prototype.saveChanges = function (changes, key, tableName, query, original) {\n var _this = this;\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var args = {\n url: tableName,\n key: key || this.dataSource.key\n };\n var req = this.adaptor.batchRequest(this, changes, args, query || new Query(), original);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](req);\n }\n else if (!this.isCustomDataAdaptor(this.adaptor)) {\n var deff_1 = new Deferred();\n var ajax_2 = new Ajax(req);\n ajax_2.beforeSend = function () {\n _this.beforeSend(ajax_2.httpRequest, ajax_2);\n };\n ajax_2.onSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n ajax_2.onFailure(JSON.stringify(data['errors']));\n }\n }\n deff_1.resolve(_this.adaptor.processResponse(data, _this, null, request.httpRequest, request, changes, args));\n };\n ajax_2.onFailure = function (e) {\n deff_1.reject([{ error: e }]);\n };\n ajax_2.send().catch(function (e) { return true; }); // to handle the failure requests.\n return deff_1.promise;\n }\n else {\n return this.doAjaxRequest(req, this.adaptor.options.batchUpdate);\n }\n };\n /**\n * Inserts new record in the given table.\n *\n * @param {Object} data - Defines the data to insert.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n * @param position\n */\n DataManager.prototype.insert = function (data, tableName, query, position) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var req = this.adaptor.insert(this, data, tableName, query, position);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](req);\n }\n else {\n return this.doAjaxRequest(req, this.adaptor.options.addRecord);\n }\n };\n /**\n * Removes data from the table with the given key.\n *\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.remove = function (keyField, value, tableName, query) {\n if (typeof value === 'object') {\n value = DataUtil.getObject(keyField, value);\n }\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.remove(this, keyField, value, tableName, query);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](res);\n }\n else {\n var remove = this.adaptor.options.deleteRecord;\n return this.doAjaxRequest(res, remove);\n }\n };\n /**\n * Updates existing record in the given table.\n *\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n * @param original\n */\n DataManager.prototype.update = function (keyField, value, tableName, query, original) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.update(this, keyField, value, tableName, query, original);\n var doAjaxRequest = 'doAjaxRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\n return this.adaptor[doAjaxRequest](res);\n }\n else {\n var update = this.adaptor.options.updateRecord;\n return this.doAjaxRequest(res, update);\n }\n };\n DataManager.prototype.isCustomDataAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'CustomDataAdaptor';\n };\n DataManager.prototype.isGraphQLAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'GraphQLAdaptor';\n };\n DataManager.prototype.successFunc = function (record, request) {\n if (this.isGraphQLAdaptor(this.adaptor)) {\n var data = JSON.parse(record);\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n this.failureFunc(JSON.stringify(data['errors']));\n }\n }\n if (this.isCustomDataAdaptor(this.adaptor)) {\n request = extend({}, this.ajaxReqOption, request);\n }\n try {\n DataUtil.parse.parseJson(record);\n }\n catch (e) {\n record = [];\n }\n record = this.adaptor.processResponse(DataUtil.parse.parseJson(record), this, null, request.httpRequest, request);\n this.ajaxDeffered.resolve(record);\n };\n DataManager.prototype.failureFunc = function (e) {\n this.ajaxDeffered.reject([{ error: e }]);\n };\n DataManager.prototype.doAjaxRequest = function (res, ajaxFunc) {\n var _this = this;\n res = extend({}, {\n type: 'POST',\n contentType: 'application/json; charset=utf-8',\n processData: false\n }, res);\n this.ajaxDeffered = new Deferred();\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var ajax_3 = new Ajax(res);\n ajax_3.beforeSend = function () {\n _this.beforeSend(ajax_3.httpRequest, ajax_3);\n };\n ajax_3.onSuccess = this.successFunc.bind(this);\n ajax_3.onFailure = this.failureFunc.bind(this);\n ajax_3.send().catch(function (e) { return true; }); // to handle the failure requests.\n }\n else {\n this.ajaxReqOption = res;\n ajaxFunc.call(this, {\n data: res.data, onSuccess: this.successFunc.bind(this),\n onFailure: this.failureFunc.bind(this)\n });\n }\n return this.ajaxDeffered.promise;\n };\n DataManager.prototype.clearPersistence = function () {\n window.removeEventListener('unload', this.setPersistData.bind(this));\n this.dataSource.enablePersistence = false;\n this.persistQuery = {};\n window.localStorage.setItem(this.dataSource.id, '[]');\n };\n return DataManager;\n}());\nexport { DataManager };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * React Component Base\n */\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { extend, isNullOrUndefined, setValue, getValue, isObject } from '@syncfusion/ej2-base';\nvar defaulthtmlkeys = ['alt', 'className', 'disabled', 'form', 'id',\n 'readOnly', 'style', 'tabIndex', 'title', 'type', 'name',\n 'onClick', 'onFocus', 'onBlur'];\nvar delayUpdate = ['accordion', 'tab', 'splitter'];\nvar reactUid = 0;\nvar isColEName = new RegExp('\\]');\n// tslint:disable\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar ComponentBase = /** @class */ (function (_super) {\n __extends(ComponentBase, _super);\n function ComponentBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.mountingState = false;\n _this.attrKeys = [];\n _this.cachedTimeOut = 0;\n _this.isAppendCalled = false;\n _this.initRenderCalled = false;\n _this.isReactForeceUpdate = false;\n _this.isReact = true;\n _this.isshouldComponentUpdateCalled = false;\n _this.isCreated = false;\n return _this;\n }\n // Lifecycle methods are changed by React team and so we can deprecate this method and use\n // Reference link:https://reactjs.org/docs/react-component.html#unsafe_componentWillMount\n // tslint:disable-next-line:no-any\n ComponentBase.prototype.componentDidMount = function () {\n this.refreshChild(true);\n this.canDelayUpdate = delayUpdate.indexOf(this.getModuleName()) !== -1;\n // Used timeout to resolve template binding\n // Reference link: https://github.com/facebook/react/issues/10309#issuecomment-318433235\n // tslint:disable-next-line:no-any\n this.renderReactComponent();\n if (this.portals && this.portals.length) {\n this.mountingState = true;\n this.renderReactTemplates();\n this.mountingState = false;\n }\n };\n ComponentBase.prototype.componentDidUpdate = function (prev) {\n if (!this.isshouldComponentUpdateCalled && this.initRenderCalled && !this.isReactForeceUpdate) {\n if (prev !== this.props) {\n this.isshouldComponentUpdateCalled = true;\n this.refreshProperties(this.props, this.props);\n }\n }\n };\n ComponentBase.prototype.renderReactComponent = function () {\n var ele = this.reactElement;\n if (ele && !this.isAppendCalled) {\n this.isAppendCalled = true;\n this.appendTo(ele);\n }\n };\n // Lifecycle methods are changed by React team and so we can deprecate this method and use\n // Reference link:https://reactjs.org/docs/react-component.html#unsafe_componentwillreceiveprops\n // tslint:disable-next-line:no-any\n /**\n * @private\n */\n ComponentBase.prototype.shouldComponentUpdate = function (nextProps) {\n this.isshouldComponentUpdateCalled = true;\n if (!this.initRenderCalled) {\n this.updateProperties(nextProps, true);\n return true;\n }\n if (!this.isAppendCalled) {\n clearTimeout(this.cachedTimeOut);\n this.isAppendCalled = true;\n this.appendTo(this.reactElement);\n }\n this.updateProperties(nextProps);\n return true;\n };\n /**\n * @private\n */\n ComponentBase.prototype.updateProperties = function (nextProps, silent) {\n var _this = this;\n var dProps = extend({}, nextProps);\n var keys = Object.keys(nextProps);\n // The statelessTemplates props value is taken from sample level property or default component property.\n var statelessTemplates = !isNullOrUndefined(this.props['statelessTemplates']) ? this.props['statelessTemplates'] :\n (!isNullOrUndefined(this['statelessTemplateProps']) ? this['statelessTemplateProps'] : []);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var propkey = keys_1[_i];\n var isClassName = propkey === 'className';\n if (propkey === 'children') {\n continue;\n }\n if (!isClassName && !isNullOrUndefined(this.htmlattributes[\"\" + propkey]) &&\n this.htmlattributes[\"\" + propkey] !== dProps[\"\" + propkey]) {\n this.htmlattributes[\"\" + propkey] = dProps[\"\" + propkey];\n }\n if (this.compareValues(this.props[\"\" + propkey], nextProps[\"\" + propkey])) {\n delete dProps[\"\" + propkey];\n }\n else if (this.attrKeys.indexOf(propkey) !== -1) {\n if (isClassName) {\n this.clsName = true;\n var propsClsName = this.props[\"\" + propkey].split(' ');\n for (var i = 0; i < propsClsName.length; i++) {\n this.element.classList.remove(propsClsName[parseInt(i.toString(), 10)]);\n }\n var dpropsClsName = dProps[\"\" + propkey].split(' ');\n for (var j = 0; j < dpropsClsName.length; j++) {\n this.element.classList.add(dpropsClsName[parseInt(j.toString(), 10)]);\n }\n }\n else if (propkey !== 'disabled' && !this.properties.hasOwnProperty(propkey)) {\n delete dProps[\"\" + propkey];\n }\n }\n else if (propkey === 'value' && nextProps[\"\" + propkey] === this[\"\" + propkey]) {\n delete dProps[\"\" + propkey];\n }\n else if (statelessTemplates.indexOf(propkey) > -1 && ((propkey === 'content' && typeof dProps[\"\" + propkey] === 'function') || (nextProps[\"\" + propkey].toString() === this[\"\" + propkey].toString()))) {\n delete dProps[\"\" + propkey];\n }\n }\n if (dProps['children']) {\n delete dProps['children'];\n }\n // tslint:disable-next-line:no-any\n if (this.initRenderCalled && (this.canDelayUpdate || this.props.delayUpdate)) {\n setTimeout(function () {\n _this.refreshProperties(dProps, nextProps, silent);\n });\n }\n else {\n this.refreshProperties(dProps, nextProps, silent);\n }\n };\n ComponentBase.prototype.refreshProperties = function (dProps, nextProps, silent) {\n var statelessTemplates = !isNullOrUndefined(this.props['statelessTemplates']) ? this.props['statelessTemplates'] : [];\n if (Object.keys(dProps).length) {\n if (!silent) {\n // tslint:disable-next-line:no-any\n this.processComplexTemplate(dProps, this);\n }\n this.setProperties(dProps, silent);\n }\n if (statelessTemplates.indexOf('directiveTemplates') === -1) {\n this.refreshChild(silent, nextProps);\n }\n };\n ComponentBase.prototype.processComplexTemplate = function (curObject, context) {\n var compTemplate = context.complexTemplate;\n if (compTemplate) {\n for (var prop in compTemplate) {\n var PropVal = compTemplate[\"\" + prop];\n if (curObject[\"\" + prop]) {\n setValue(PropVal, getValue(prop, curObject), curObject);\n }\n }\n }\n };\n ComponentBase.prototype.getDefaultAttributes = function () {\n var _this = this;\n this.isReact = true;\n var propKeys = Object.keys(this.props);\n var stringValue = ['autocomplete', 'dropdownlist', 'combobox'];\n // if ((stringValue.indexOf(this.getModuleName()) !== -1) && (!isNullOrUndefined(this.props[\"value\"]))) {\n // this.value = (<{ [key: string]: Object }>this.props)[\"value\"];\n // }\n if (!this.htmlattributes) {\n this.htmlattributes = {};\n }\n this.attrKeys = defaulthtmlkeys.concat(this.controlAttributes || []);\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var prop = propKeys_1[_i];\n if (prop.indexOf('data-') !== -1 || prop.indexOf('aria-') !== -1 || this.attrKeys.indexOf(prop) !== -1) {\n if (this.htmlattributes[\"\" + prop] !== this.props[\"\" + prop]) {\n this.htmlattributes[\"\" + prop] = this.props[\"\" + prop];\n }\n }\n }\n if (!this.htmlattributes.ref) {\n /* tslint:disable:no-any */\n this.htmlattributes.ref = function (ele) {\n _this.reactElement = ele;\n };\n var keycompoentns = ['autocomplete', 'combobox', 'dropdownlist', 'dropdowntree', 'multiselect',\n 'listbox', 'colorpicker', 'numerictextbox', 'textbox',\n 'uploader', 'maskedtextbox', 'slider', 'datepicker', 'datetimepicker', 'daterangepicker', 'timepicker', 'checkbox', 'switch', 'radio'];\n if (keycompoentns.indexOf(this.getModuleName()) !== -1) {\n this.htmlattributes.key = '' + ComponentBase.reactUid;\n ComponentBase.reactUid++;\n }\n }\n if (this.clsName) {\n var clsList = this.element.classList;\n var className = this.htmlattributes['className'];\n for (var i = 0; i < clsList.length; i++) {\n if ((className.indexOf(clsList[parseInt(i.toString(), 10)]) === -1)) {\n this.htmlattributes['className'] = this.htmlattributes['className'] + ' ' + clsList[parseInt(i.toString(), 10)];\n }\n }\n this.clsName = false;\n }\n return this.htmlattributes;\n };\n /* tslint:disable:no-any */\n ComponentBase.prototype.trigger = function (eventName, eventProp, successHandler) {\n var _this = this;\n if (this.isDestroyed !== true && this.modelObserver) {\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n if ((eventName === 'change' || eventName === 'input')) {\n if (this.props.onChange && eventProp.event) {\n this.props.onChange.call(undefined, {\n syntheticEvent: eventProp.event,\n nativeEvent: { text: eventProp.value },\n value: eventProp.value,\n target: this\n });\n }\n }\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n if (eventName === 'created') {\n setTimeout(function () {\n _this.isCreated = true;\n if (!_this.isDestroyed) {\n _this.modelObserver.notify(eventName, eventProp, successHandler);\n }\n }, 10);\n }\n else {\n this.modelObserver.notify(eventName, eventProp, successHandler);\n }\n this.isProtectedOnChange = prevDetection;\n }\n };\n ComponentBase.prototype.compareValues = function (value1, value2) {\n var typeVal = typeof value1;\n var typeVal2 = typeof value2;\n if (typeVal === typeVal2) {\n if (value1 === value2) {\n return true;\n }\n if ((!isNullOrUndefined(value1) && value1.constructor) !== (!isNullOrUndefined(value2) && value2.constructor)) {\n return false;\n }\n if (value1 instanceof Date ||\n value1 instanceof RegExp ||\n value1 instanceof String ||\n value1 instanceof Number) {\n return value1.toString() === value2.toString();\n }\n if (isObject(value1) || Array.isArray(value1)) {\n var tempVal = value1;\n var tempVal2 = value2;\n if (isObject(tempVal)) {\n tempVal = [value1];\n tempVal2 = [value2];\n }\n return this.compareObjects(tempVal, tempVal2).status;\n }\n if (value1.constructor &&\n value1.constructor.name === value2.constructor.name &&\n (value1.constructor.name === 'Query' ||\n value1.constructor.name === 'DataManager')) {\n if (JSON.stringify(value1) === JSON.stringify(value2)) {\n return true;\n }\n }\n }\n return false;\n };\n ComponentBase.prototype.compareObjects = function (oldProps, newProps, propName) {\n var status = true;\n var lenSimilarity = (oldProps.length === newProps.length);\n var diffArray = [];\n var templateProps = !isNullOrUndefined(this['templateProps']) ? this['templateProps'] : [];\n if (lenSimilarity) {\n for (var i = 0, len = newProps.length; i < len; i++) {\n var curObj = {};\n var oldProp = oldProps[parseInt(i.toString(), 10)];\n var newProp = newProps[parseInt(i.toString(), 10)];\n var keys = Object.keys(newProp);\n if (keys.length !== 0) {\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n var oldValue = oldProp[\"\" + key];\n var newValue = newProp[\"\" + key];\n if (key === 'items') {\n for (var _j = 0; _j < newValue.length; _j++) {\n if (this.getModuleName() === 'richtexteditor' && typeof (newValue[parseInt(_j.toString(), 10)]) === 'object') {\n return { status: true };\n }\n }\n }\n if (this.getModuleName() === 'grid' && key === 'field') {\n curObj[\"\" + key] = newValue;\n }\n if (!oldProp.hasOwnProperty(key) || !((templateProps.length > 0 && templateProps.indexOf(\"\" + key) === -1 && typeof (newValue) === 'function') ? this.compareValues(oldValue.toString(), newValue.toString()) : this.compareValues(oldValue, newValue))) {\n if (!propName) {\n return { status: false };\n }\n status = false;\n curObj[\"\" + key] = newValue;\n }\n }\n }\n else if (newProps[parseInt(i.toString(), 10)] === oldProps[parseInt(i.toString(), 10)]) {\n status = true;\n }\n else {\n if (!propName) {\n return { status: false };\n }\n status = false;\n }\n if (this.getModuleName() === 'grid' && propName === 'columns' && isNullOrUndefined(curObj['field'])) {\n curObj['field'] = undefined;\n }\n if (Object.keys(curObj).length) {\n diffArray.push({ index: i, value: curObj, key: propName });\n }\n }\n }\n else {\n status = false;\n }\n return { status: status, changedProperties: diffArray };\n };\n ComponentBase.prototype.refreshChild = function (silent, props) {\n if (this.checkInjectedModules) {\n var prevModule = this.getInjectedModules() || [];\n var curModule = this.getInjectedServices() || [];\n for (var _i = 0, curModule_1 = curModule; _i < curModule_1.length; _i++) {\n var mod = curModule_1[_i];\n if (prevModule.indexOf(mod) === -1) {\n prevModule.push(mod);\n }\n }\n this.injectedModules = prevModule;\n }\n if (this.directivekeys) {\n var changedProps = [];\n var directiveValue = this.validateChildren({}, this.directivekeys, (props || this.props));\n if (directiveValue && Object.keys(directiveValue).length) {\n if (!silent && this.skipRefresh) {\n for (var _a = 0, _b = this.skipRefresh; _a < _b.length; _a++) {\n var fields = _b[_a];\n delete directiveValue[\"\" + fields];\n }\n }\n if (this.prevProperties) {\n var dKeys = Object.keys(this.prevProperties);\n for (var i = 0; i < dKeys.length; i++) {\n var key = dKeys[parseInt(i.toString(), 10)];\n if (!directiveValue.hasOwnProperty(key)) {\n continue;\n }\n var compareOutput = this.compareObjects(this.prevProperties[\"\" + key], directiveValue[\"\" + key], key);\n if (compareOutput.status) {\n delete directiveValue[\"\" + key];\n }\n else {\n if (compareOutput.changedProperties.length) {\n changedProps = changedProps.concat(compareOutput.changedProperties);\n }\n var obj = {};\n obj[\"\" + key] = directiveValue[\"\" + key];\n this.prevProperties = extend(this.prevProperties, obj);\n }\n }\n }\n else {\n this.prevProperties = extend({}, directiveValue, {}, true);\n }\n if (changedProps.length) {\n if (this.getModuleName() === 'grid' && key === 'columns') {\n for (var _c1 = 0, allColumns = this.columns; _c1 < allColumns.length; _c1++) {\n var compareField1 = getValue('field', allColumns[parseInt(_c1.toString(), 10)]);\n var compareField2 = getValue(_c1 + '.value.field', changedProps);\n if (compareField1 === compareField2) {\n var propInstance = getValue(changedProps[parseInt(_c1.toString(), 10)].key + '.' + changedProps[parseInt(_c1.toString(), 10)].index, this);\n if (propInstance && propInstance.setProperties) {\n propInstance.setProperties(changedProps[parseInt(_c1.toString(), 10)].value);\n }\n else {\n extend(propInstance, changedProps[parseInt(_c1.toString(), 10)].value);\n }\n }\n else {\n this.setProperties(directiveValue, silent);\n }\n }\n }\n else {\n for (var _c = 0, changedProps_1 = changedProps; _c < changedProps_1.length; _c++) {\n var changes = changedProps_1[_c];\n var propInstance_1 = getValue(changes.key + '.' + changes.index, this);\n if (propInstance_1 && propInstance_1.setProperties) {\n propInstance_1.setProperties(changes.value);\n }\n else {\n extend(propInstance_1, changes.value);\n }\n }\n }\n }\n else {\n this.setProperties(directiveValue, silent);\n }\n }\n }\n };\n ComponentBase.prototype.componentWillUnmount = function () {\n clearTimeout(this.cachedTimeOut);\n var modulesName = ['dropdowntree', 'checkbox'];\n // tslint:disable-next-line:no-any\n if (this.initRenderCalled && this.isAppendCalled && this.element && ((!modulesName.indexOf(this.getModuleName())) ? document.body.contains(this.element) : true) && !this.isDestroyed && this.isCreated) {\n this.destroy();\n }\n };\n // tslint:disable:no-any\n ComponentBase.prototype.appendReactElement = function (element, container) {\n var portal = ReactDOM.createPortal(element, container);\n if (!this.portals) {\n this.portals = [portal];\n }\n else {\n this.portals.push(portal);\n }\n };\n // tslint:disable:no-any\n ComponentBase.prototype.renderReactTemplates = function (callback) {\n this.isReactForeceUpdate = true;\n if (callback) {\n this.forceUpdate(callback);\n }\n else {\n this.forceUpdate();\n }\n this.isReactForeceUpdate = false;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.clearTemplate = function (templateNames, index, callback) {\n var _this = this;\n var tempPortal = [];\n if (templateNames && templateNames.length) {\n Array.prototype.forEach.call(templateNames, function (propName) {\n var indexCount = 0;\n var propIndexCount = 0;\n _this.portals.forEach(function (portal) {\n if (portal.propName === propName) {\n tempPortal.push(propIndexCount);\n propIndexCount++;\n }\n });\n if (!isNullOrUndefined(index) && _this.portals[index] && _this.portals[index].propName === propName) {\n _this.portals.splice(index, 1);\n indexCount++;\n }\n else {\n for (var i = 0; i < _this.portals.length; i++) {\n if (_this.portals[parseInt(i.toString(), 10)].propName === propName) {\n _this.portals.splice(i, 1);\n i--;\n }\n }\n }\n });\n }\n else {\n this.portals = [];\n }\n this.renderReactTemplates(callback);\n };\n /* tslint:disable:no-any */\n ComponentBase.prototype.validateChildren = function (childCache, mapper, props) {\n var flag = false;\n var childs = React.Children.toArray(props.children);\n for (var _i = 0, childs_1 = childs; _i < childs_1.length; _i++) {\n var child = childs_1[_i];\n var ifield = this.getChildType(child);\n var key = mapper[\"\" + ifield];\n if (ifield && mapper) {\n // tslint:disable\n var childProps = this.getChildProps(React.Children.toArray(child.props.children), key);\n if (childProps.length) {\n flag = true;\n // tslint:disable\n childCache[child.type.propertyName || ifield] = childProps;\n }\n }\n }\n if (flag) {\n return childCache;\n }\n return null;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.getChildType = function (child) {\n if (child.type && child.type.isDirective) {\n return child.type.moduleName || '';\n }\n return '';\n };\n ComponentBase.prototype.getChildProps = function (subChild, matcher) {\n var ret = [];\n for (var _i = 0, subChild_1 = subChild; _i < subChild_1.length; _i++) {\n var child = subChild_1[_i];\n var accessProp = false;\n var key = void 0;\n if (typeof matcher === 'string') {\n accessProp = true;\n key = matcher;\n }\n else {\n key = Object.keys(matcher)[0];\n }\n var prop = child.props;\n // tslint:disable-next-line:no-any\n var field = this.getChildType(child);\n if (field === key) {\n if (accessProp || !prop.children) {\n // tslint:disable\n var cacheVal = extend({}, prop, {}, true);\n // tslint:disable\n this.processComplexTemplate(cacheVal, child.type);\n ret.push(cacheVal);\n }\n else {\n var cachedValue = this.validateChildren(extend({}, prop), matcher[\"\" + key], prop) || prop;\n if (cachedValue['children']) {\n delete cachedValue['children'];\n }\n // tslint:disable\n this.processComplexTemplate(cachedValue, child.type);\n ret.push(cachedValue);\n }\n }\n }\n return ret;\n };\n // tslint:disable:no-any\n ComponentBase.prototype.getInjectedServices = function () {\n var childs = React.Children.toArray(this.props.children);\n for (var _i = 0, childs_2 = childs; _i < childs_2.length; _i++) {\n var child = childs_2[_i];\n /* tslint:disable:no-any */\n if (child.type.isService) {\n return child.props.services;\n }\n }\n return [];\n };\n /**\n * @private\n */\n ComponentBase.reactUid = 1;\n return ComponentBase;\n}(React.Component));\nexport { ComponentBase };\n/* tslint:enable:no-any */\n","// eslint-disable-next-line\nexport function applyMixins(derivedClass, baseClass) {\n // tslint:disable:typedef\n baseClass.forEach(function (baseClass) {\n Object.getOwnPropertyNames(baseClass.prototype).forEach(function (name) {\n if (name !== 'isMounted' && name !== 'replaceState') {\n derivedClass.prototype[\"\" + name] = baseClass.prototype[\"\" + name];\n }\n });\n });\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\n/**\n * Directory base\n */\nvar ComplexBase = /** @class */ (function (_super) {\n __extends(ComplexBase, _super);\n function ComplexBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComplexBase.prototype.render = function () {\n return null;\n };\n ComplexBase.isDirective = true;\n return ComplexBase;\n}(React.PureComponent));\nexport { ComplexBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Dependency injection\n */\nimport * as React from 'react';\nvar Inject = /** @class */ (function (_super) {\n __extends(Inject, _super);\n function Inject() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // eslint-disable-next-line\n Inject.prototype.render = function () {\n return null;\n };\n Inject.isService = true;\n return Inject;\n}(React.PureComponent));\nexport { Inject };\n","/**\n * Template compiler for react\n */\nimport { setTemplateEngine, getTemplateEngine, extend } from '@syncfusion/ej2-base';\nimport * as ReactDOM from 'react-dom';\nimport * as React from 'react';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nvar stringCompiler = getTemplateEngine();\n// eslint-disable-next-line\nexport function compile(templateElement, helper) {\n if (typeof templateElement === 'string' || (templateElement.prototype && templateElement.prototype.CSPTemplate && typeof templateElement === 'function')) {\n return stringCompiler(templateElement, helper);\n }\n else {\n return function (data, component, prop, element) {\n var actTemplate = templateElement;\n var actData = data;\n if (typeof actTemplate === 'object') {\n actTemplate = templateElement.template;\n actData = extend({}, data, templateElement.data || {});\n }\n var cEle;\n if (element) {\n cEle = element;\n }\n else {\n cEle = document.createElement('div');\n }\n var rele = React.createElement(actTemplate, actData);\n var portal = ReactDOM.createPortal(rele, cEle);\n portal.propName = prop;\n if (!component.portals) {\n component.portals = [portal];\n }\n else {\n component.portals.push(portal);\n }\n if (!element) {\n return [cEle];\n }\n };\n }\n}\nsetTemplateEngine({ compile: compile });\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComplexBase } from '@syncfusion/ej2-react-base';\n/**\n * `Layers Directive` directive represent a connectors of the react diagram.\n * It must be contained in a Diagram component(`DiagramComponent`).\n * ```tsx\n * \n * \n * \n * \n * \n * ```\n */\nvar LayerDirective = /** @class */ (function (_super) {\n __extends(LayerDirective, _super);\n function LayerDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LayerDirective.moduleName = 'layer';\n return LayerDirective;\n}(ComplexBase));\nexport { LayerDirective };\nvar LayersDirective = /** @class */ (function (_super) {\n __extends(LayersDirective, _super);\n function LayersDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LayersDirective.propertyName = 'layers';\n LayersDirective.moduleName = 'layers';\n return LayersDirective;\n}(ComplexBase));\nexport { LayersDirective };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComplexBase } from '@syncfusion/ej2-react-base';\n/**\n * `custormaps Directive` directive represent a connectors of the react diagram.\n * It must be contained in a Diagram component(`DiagramComponent`).\n * ```tsx\n * \n * \n * \n * \n * \n * ```\n */\nvar CustomCursorDirective = /** @class */ (function (_super) {\n __extends(CustomCursorDirective, _super);\n function CustomCursorDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CustomCursorDirective.moduleName = 'customCursor';\n return CustomCursorDirective;\n}(ComplexBase));\nexport { CustomCursorDirective };\nvar CustomCursorsDirective = /** @class */ (function (_super) {\n __extends(CustomCursorsDirective, _super);\n function CustomCursorsDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CustomCursorsDirective.propertyName = 'customCursor';\n CustomCursorsDirective.moduleName = 'customCursors';\n return CustomCursorsDirective;\n}(ComplexBase));\nexport { CustomCursorsDirective };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComplexBase } from '@syncfusion/ej2-react-base';\n/**\n * `ConnectorsDirective` directive represent a connectors of the react diagram.\n * It must be contained in a Diagram component(`DiagramComponent`).\n * ```tsx\n * \n * \n * \n * \n * \n * ```\n */\nvar ConnectorDirective = /** @class */ (function (_super) {\n __extends(ConnectorDirective, _super);\n function ConnectorDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ConnectorDirective.moduleName = 'connector';\n return ConnectorDirective;\n}(ComplexBase));\nexport { ConnectorDirective };\nvar ConnectorsDirective = /** @class */ (function (_super) {\n __extends(ConnectorsDirective, _super);\n function ConnectorsDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ConnectorsDirective.propertyName = 'connectors';\n ConnectorsDirective.moduleName = 'connectors';\n return ConnectorsDirective;\n}(ComplexBase));\nexport { ConnectorsDirective };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComplexBase } from '@syncfusion/ej2-react-base';\n/**\n * `Connector` directive represent a annotation of the react Diagram.\n * It must be contained in a Diagram component(`DiagramComponent`).\n * ```tsx\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nvar ConnectorFixedUserHandleDirective = /** @class */ (function (_super) {\n __extends(ConnectorFixedUserHandleDirective, _super);\n function ConnectorFixedUserHandleDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ConnectorFixedUserHandleDirective.moduleName = 'connectorFixedUserHandle';\n return ConnectorFixedUserHandleDirective;\n}(ComplexBase));\nexport { ConnectorFixedUserHandleDirective };\nvar ConnectorFixedUserHandlesDirective = /** @class */ (function (_super) {\n __extends(ConnectorFixedUserHandlesDirective, _super);\n function ConnectorFixedUserHandlesDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ConnectorFixedUserHandlesDirective.propertyName = 'fixedUserHandles';\n ConnectorFixedUserHandlesDirective.moduleName = 'connectorFixedUserHandles';\n return ConnectorFixedUserHandlesDirective;\n}(ComplexBase));\nexport { ConnectorFixedUserHandlesDirective };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComplexBase } from '@syncfusion/ej2-react-base';\n/**\n * `Annotation` directive represent a annotation of the react Diagram.\n * It must be contained in a Diagram component(`DiagramComponent`).\n * ```tsx\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nvar ConnectorAnnotationDirective = /** @class */ (function (_super) {\n __extends(ConnectorAnnotationDirective, _super);\n function ConnectorAnnotationDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ConnectorAnnotationDirective.moduleName = 'connectorAnnotation';\n return ConnectorAnnotationDirective;\n}(ComplexBase));\nexport { ConnectorAnnotationDirective };\nvar ConnectorAnnotationsDirective = /** @class */ (function (_super) {\n __extends(ConnectorAnnotationsDirective, _super);\n function ConnectorAnnotationsDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ConnectorAnnotationsDirective.propertyName = 'annotations';\n ConnectorAnnotationsDirective.moduleName = 'connectorAnnotations';\n return ConnectorAnnotationsDirective;\n}(ComplexBase));\nexport { ConnectorAnnotationsDirective };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComplexBase } from '@syncfusion/ej2-react-base';\n/**\n * `NodesDirective` directive represent a nodes of the react diagram.\n * It must be contained in a Diagram component(`DiagramComponent`).\n * ```tsx\n * \n * \n * \n * \n * \n * ```\n */\nvar NodeDirective = /** @class */ (function (_super) {\n __extends(NodeDirective, _super);\n function NodeDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NodeDirective.moduleName = 'node';\n return NodeDirective;\n}(ComplexBase));\nexport { NodeDirective };\nvar NodesDirective = /** @class */ (function (_super) {\n __extends(NodesDirective, _super);\n function NodesDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NodesDirective.propertyName = 'nodes';\n NodesDirective.moduleName = 'nodes';\n return NodesDirective;\n}(ComplexBase));\nexport { NodesDirective };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComplexBase } from '@syncfusion/ej2-react-base';\n/**\n * `Node` directive represent a annotation of the react Diagram.\n * It must be contained in a Diagram component(`DiagramComponent`).\n * ```tsx\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nvar NodeFixedUserHandleDirective = /** @class */ (function (_super) {\n __extends(NodeFixedUserHandleDirective, _super);\n function NodeFixedUserHandleDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NodeFixedUserHandleDirective.moduleName = 'nodeFixedUserHandle';\n return NodeFixedUserHandleDirective;\n}(ComplexBase));\nexport { NodeFixedUserHandleDirective };\nvar NodeFixedUserHandlesDirective = /** @class */ (function (_super) {\n __extends(NodeFixedUserHandlesDirective, _super);\n function NodeFixedUserHandlesDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NodeFixedUserHandlesDirective.propertyName = 'fixedUserHandles';\n NodeFixedUserHandlesDirective.moduleName = 'nodeFixedUserHandles';\n return NodeFixedUserHandlesDirective;\n}(ComplexBase));\nexport { NodeFixedUserHandlesDirective };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComplexBase } from '@syncfusion/ej2-react-base';\n/**\n * `Node` directive represent a annotation of the react Diagram.\n * It must be contained in a Diagram component(`DiagramComponent`).\n * ```tsx\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nvar NodeAnnotationDirective = /** @class */ (function (_super) {\n __extends(NodeAnnotationDirective, _super);\n function NodeAnnotationDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NodeAnnotationDirective.moduleName = 'nodeAnnotation';\n return NodeAnnotationDirective;\n}(ComplexBase));\nexport { NodeAnnotationDirective };\nvar NodeAnnotationsDirective = /** @class */ (function (_super) {\n __extends(NodeAnnotationsDirective, _super);\n function NodeAnnotationsDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NodeAnnotationsDirective.propertyName = 'annotations';\n NodeAnnotationsDirective.moduleName = 'nodeAnnotations';\n return NodeAnnotationsDirective;\n}(ComplexBase));\nexport { NodeAnnotationsDirective };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComplexBase } from '@syncfusion/ej2-react-base';\n/**\n * `Node` directive represent a port of the react Diagram.\n * It must be contained in a Diagram component(`DiagramComponent`).\n * ```tsx\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nvar PortDirective = /** @class */ (function (_super) {\n __extends(PortDirective, _super);\n function PortDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PortDirective.moduleName = 'port';\n return PortDirective;\n}(ComplexBase));\nexport { PortDirective };\nvar PortsDirective = /** @class */ (function (_super) {\n __extends(PortsDirective, _super);\n function PortsDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PortsDirective.propertyName = 'ports';\n PortsDirective.moduleName = 'ports';\n return PortsDirective;\n}(ComplexBase));\nexport { PortsDirective };\n","/**\n * Size defines and processes the size(width/height) of the objects\n */\nvar Size = /** @class */ (function () {\n function Size(width, height) {\n this.width = width;\n this.height = height;\n }\n /**\n * isEmpty method \\\n *\n * @returns { boolean } isEmpty method .\\\n *\n * @private\n */\n Size.prototype.isEmpty = function () {\n return this.height === 0 && this.width === 0;\n };\n // public static get empty(): Size {\n // return new Size();\n // }\n // public get isEmpty(): boolean {\n // return this.equals(Size.empty);\n // }\n // public equals(size2: Size): boolean {\n // return this.width === size2.width && this.height === size2.height;\n // }\n // public union(size: Size): void {\n // size.width = Math.max(size.width, this.width);\n // size.height = Math.max(size.height, this.height);\n // }\n /**\n * clone method \\\n *\n * @returns { Size } clone method .\\\n *\n * @private\n */\n Size.prototype.clone = function () {\n return new Size(this.width, this.height);\n };\n return Size;\n}());\nexport { Size };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Defines and processes coordinates\n */\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n function Point() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * equals method \\\n *\n * @returns { boolean } equals method .\\\n * @param {PointModel} point1 - provide the point1 value.\n * @param {PointModel} point2 - provide the point1 value.\n *\n * @private\n */\n Point.equals = function (point1, point2) {\n if (point1 === point2) {\n return true;\n }\n if (!point1 || !point2) {\n return false;\n }\n return !point1 || !point2 || point1.x === point2.x && point1.y === point2.y;\n };\n /**\n * isEmptyPoint method \\\n *\n * @returns { boolean } isEmptyPoint method .\\\n * @param {PointModel} point - provide the points value.\n *\n * @private\n */\n Point.isEmptyPoint = function (point) {\n if (point.x && point.y) {\n return false;\n }\n return true;\n };\n // public add(point1: PointModel, point2: PointModel): PointModel {\n // return { x: point1.x + point2.x, y: point1.y + point2.y };\n // }\n // public subtract(point1: PointModel, point2: PointModel): PointModel {\n // return { x: point1.x - point2.x, y: point1.y - point2.y };\n // }\n // public multiply(point1: PointModel, point2: PointModel): PointModel {\n // return {\n // x: point1.x * point2.x, y: point1.y * point2.y\n // };\n // }\n // public crossProduct(point1: PointModel, point2: PointModel): PointModel {\n // return {\n // x: point1.x * point2.y, y: point2.x * point1.y\n // };\n // }\n // public offset(offsetX: number, offsetY: number): void {\n // this.x += offsetX;\n // this.y += offsetY;\n // }\n // public rotate(angle: number): PointModel {\n // let c: number = Math.cos(angle);\n // let s: number = Math.sin(angle);\n // return {\n // x: c * this.x - s * this.y, y: s * this.x + c * this.y\n // };\n // }\n // public distance(point2: PointModel): number {\n // return Math.sqrt(Math.pow(this.x - point2.x, 2) + Math.pow(this.y - point2.y, 2));\n // }\n /**\n * transform method \\\n *\n * @returns { PointModel } transform method .\\\n * @param {PointModel} point - provide the points value.\n * @param {number} angle - provide the points value.\n * @param {number} length - provide the points value.\n *\n * @private\n */\n Point.transform = function (point, angle, length) {\n var pt = { x: 0, y: 0 };\n pt.x = Math.round((point.x + length * Math.cos(angle * Math.PI / 180)) * 100) / 100;\n pt.y = Math.round((point.y + length * Math.sin(angle * Math.PI / 180)) * 100) / 100;\n return pt;\n };\n /**\n * findLength method \\\n *\n * @returns { number } findLength method .\\\n * @param {PointModel} s - provide the points value.\n * @param {PointModel} e - provide the points value.\n *\n * @private\n */\n Point.findLength = function (s, e) {\n var length = Math.sqrt(Math.pow((s.x - e.x), 2) + Math.pow((s.y - e.y), 2));\n return length;\n };\n /**\n * findAngle method \\\n *\n * @returns { number } findAngle method .\\\n * @param {PointModel} point1 - provide the points value.\n * @param {PointModel} point2 - provide the points value.\n *\n * @private\n */\n Point.findAngle = function (point1, point2) {\n var angle = Math.atan2(point2.y - point1.y, point2.x - point1.x);\n angle = (180 * angle / Math.PI);\n angle %= 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n };\n /**\n * distancePoints method \\\n *\n * @returns { number } distancePoints method .\\\n * @param {PointModel} pt1 - provide the points value.\n * @param {PointModel} pt2 - provide the points value.\n *\n * @private\n */\n Point.distancePoints = function (pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n };\n /**\n * getLengthFromListOfPoints method \\\n *\n * @returns { number } getLengthFromListOfPoints method .\\\n * @param {PointModel[]} points - provide the points value.\n *\n * @private\n */\n Point.getLengthFromListOfPoints = function (points) {\n var length = 0;\n for (var j = 0; j < points.length - 1; j++) {\n length += this.distancePoints(points[parseInt(j.toString(), 10)], points[j + 1]);\n }\n return length;\n };\n /**\n * adjustPoint method \\\n *\n * @returns { PointModel } adjustPoint method .\\\n * @param {PointModel} source - provide the points value.\n * @param {PointModel} target - provide the points value.\n * @param {boolean} isStart - provide the isStart value.\n * @param {number} length - provide the length value.\n *\n * @private\n */\n Point.adjustPoint = function (source, target, isStart, length) {\n var pt = isStart ? { x: source.x, y: source.y } : { x: target.x, y: target.y };\n var angle;\n if (source.x === target.x) {\n if (source.y < target.y && isStart || source.y > target.y && !isStart) {\n pt.y += length;\n }\n else {\n pt.y -= length;\n }\n }\n else if (source.y === target.y) {\n if (source.x < target.x && isStart || source.x > target.x && !isStart) {\n pt.x += length;\n }\n else {\n pt.x -= length;\n }\n }\n else {\n if (isStart) {\n angle = this.findAngle(source, target);\n pt = this.transform(source, angle, length);\n }\n else {\n angle = this.findAngle(target, source);\n pt = this.transform(target, angle, length);\n }\n }\n return pt;\n };\n /**\n * direction method \\\n *\n * @returns { string } direction method .\\\n * @param {PointModel} pt1 - provide the points value.\n * @param {PointModel} pt2 - provide the points value.\n *\n * @private\n */\n Point.direction = function (pt1, pt2) {\n if (Math.abs(pt2.x - pt1.x) > Math.abs(pt2.y - pt1.y)) {\n return pt1.x < pt2.x ? 'Right' : 'Left';\n }\n else {\n return pt1.y < pt2.y ? 'Bottom' : 'Top';\n }\n };\n //Move these methods to util\n //public CompareTo(point: PointModel): number {\n // let result: number = this.X.CompareTo(point.X);\n // return result != 0 ? result : this.Y.CompareTo(point.Y);\n //}\n //public CompareOnYAxis(point: PointModel): number {\n // let result: number = this.X.CompareTo(point.X);\n // return result != 0 ? result : this.Y.CompareTo(point.Y);\n //}\n //public CompareOnXAxis(point: PointModel): number {\n // let result: number = this.Y.CompareTo(point.Y);\n // return result != 0 ? result : this.X.CompareTo(point.X);\n //}\n // public round(): void {\n // this.x = Math.round(this.x);\n // this.y = Math.round(this.y);\n // }\n /**\n * getClassName method \\\n *\n * @returns { string } getClassName method .\\\n *\n * @private\n */\n Point.prototype.getClassName = function () {\n return 'Point';\n };\n __decorate([\n Property(0)\n ], Point.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], Point.prototype, \"y\", void 0);\n return Point;\n}(ChildProperty));\nexport { Point };\n","/**\n * These utility methods help to process the data and to convert it to desired dimensions\n */\n/**\n * processPathData method \\\n *\n * @returns {Object[]} processPathData method .\\\n * @param { string } data - provide the data value.\n * @private\n */\nexport function processPathData(data) {\n var collection = [];\n var j;\n var arrayCollection = parsePathData(data);\n if (arrayCollection.length > 0) {\n for (var i = 0; i < arrayCollection.length; i++) {\n var ob = arrayCollection[parseInt(i.toString(), 10)];\n var char = '';\n char = ob[0];\n switch (char.toLowerCase()) {\n case 'm':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)], y: ob[j + 1] });\n j = j + 1;\n if (char === 'm') {\n char = 'l';\n }\n else if (char === 'M') {\n char = 'L';\n }\n }\n break;\n case 'l':\n case 't':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)], y: ob[j + 1] });\n j = j + 1;\n }\n break;\n case 'h':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)] });\n }\n break;\n case 'v':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, y: ob[parseInt(j.toString(), 10)] });\n }\n break;\n case 'z':\n collection.push({ command: char });\n break;\n case 'c':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, x1: ob[parseInt(j.toString(), 10)], y1: ob[j + 1], x2: ob[j + 2], y2: ob[j + 3], x: ob[j + 4], y: ob[j + 5]\n });\n j = j + 5;\n }\n break;\n case 's':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x2: ob[parseInt(j.toString(), 10)], y2: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'q':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x1: ob[parseInt(j.toString(), 10)], y1: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'a':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, r1: ob[parseInt(j.toString(), 10)], r2: ob[j + 1], angle: ob[j + 2], largeArc: ob[j + 3],\n sweep: ob[j + 4], x: ob[j + 5], y: ob[j + 6]\n });\n j = j + 6;\n }\n break;\n }\n }\n }\n return collection;\n}\n/**\n * parsePathData method \\\n *\n * @returns {Object[]} parsePathData method .\\\n * @param { string } data - provide the data value.\n * @private\n */\nexport function parsePathData(data) {\n var tokenizer = /([a-z]+)|([+-]?(?:\\d+\\.?\\d*|\\.\\d+))/gi;\n var current = [];\n var commands = [];\n var match = {};\n tokenizer.lastIndex = 0;\n var isExponential = false;\n match = tokenizer.exec(data);\n while (match) {\n if (match[1] === 'e') {\n //let s1: string = '';\n isExponential = true;\n }\n else if (match[1]) {\n if (match[1].toLowerCase() === 'zm') {\n if (current.length) {\n commands.push(current);\n }\n commands.push(['Z']);\n current = [match[1].substring(1, 2)];\n }\n else {\n if (current.length) {\n commands.push(current);\n }\n current = [match[1]];\n }\n isExponential = false;\n }\n else {\n if (!current.length) {\n current = [];\n }\n if (!isExponential) {\n current.push(Number(match[2]));\n }\n isExponential = false;\n }\n match = tokenizer.exec(data);\n }\n if (current.length) {\n commands.push(current);\n }\n return commands;\n}\n/**\n * getRectanglePath method \\\n *\n * @returns {string} getRectanglePath method .\\\n * @param { number } cornerRadius - provide the data value.\n * @param { number } height - provide the height value.\n * @param { number } width - provide the width value.\n * @private\n */\nexport function getRectanglePath(cornerRadius, height, width) {\n var x = 0;\n var y = 0;\n var path = '';\n var points = [{ x: x + cornerRadius, y: y }, { x: x + width - cornerRadius, y: y },\n { x: x + width, y: y + cornerRadius }, { x: x + width, y: y + height - cornerRadius },\n { x: x + width - cornerRadius, y: y + height }, { x: x + cornerRadius, y: y + height },\n { x: x, y: y + height - cornerRadius }, { x: x, y: y + cornerRadius }\n ];\n var corners = [{ x: x + width, y: y }, { x: x + width, y: y + height }, { x: x, y: y + height }, { x: x, y: y }];\n var corner = 0;\n var point2;\n var next;\n path = 'M' + points[0].x + ' ' + points[0].y;\n var i;\n for (i = 0; i < points.length; i = i + 2) {\n point2 = points[i + 1];\n path += 'L' + point2.x + ' ' + point2.y;\n next = points[i + 2] || points[0];\n path += 'Q' + corners[parseInt(corner.toString(), 10)].x + ' ' + corners[parseInt(corner.toString(), 10)].y + ' ' + next.x + ' ' + next.y;\n corner++;\n }\n return path;\n}\n/**\n * getPolygonPath method \\\n *\n * @returns {string} getPolygonPath method .\\\n * @param { PointModel[] } collection - provide the data value.\n * @private\n */\nexport function getPolygonPath(collection) {\n var path = '';\n var seg;\n path = 'M' + collection[0].x + ' ' + collection[0].y;\n var i;\n for (i = 1; i < collection.length; i++) {\n seg = collection[parseInt(i.toString(), 10)];\n path += 'L' + seg.x + ' ' + seg.y;\n }\n path += 'Z';\n return path;\n}\n/**\n * getFreeHandPath method \\\n *\n * @returns {string} getFreeHandPath method .\\\n * @param { PointModel[] } collection - provide the data value.\n * @private\n */\nexport function getFreeHandPath(collection) {\n var k;\n for (k = 0; k < collection.length; k++) {\n collection[parseInt(k.toString(), 10)].x = Math.round(collection[parseInt(k.toString(), 10)].x);\n collection[parseInt(k.toString(), 10)].y = Math.round(collection[parseInt(k.toString(), 10)].y);\n }\n var path = '';\n var seg;\n path = 'M' + collection[0].x + ' ' + collection[0].y;\n var i;\n for (i = 1; i < collection.length; i++) {\n seg = collection[parseInt(i.toString(), 10)];\n path += 'L' + seg.x + ' ' + seg.y;\n }\n return path;\n}\n/* eslint-disable */\n/**\n * pathSegmentCollection method \\\n *\n * @returns {string} pathSegmentCollection method .\\\n * @param { Object[]} collection - provide the collection value.\n * @private\n */\nexport function pathSegmentCollection(collection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var initx;\n var inity;\n var segments = [];\n for (x = 0, y = 0, i = 0, length = collection.length; i < length; ++i) {\n var obj = collection[i];\n var seg = obj;\n var char = '';\n char = seg.command;\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n var prev = segments[segments.length - 1];\n switch (char) {\n case 'M':\n segments.push({ command: 'M', x: x, y: y });\n break;\n case 'L':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y });\n break;\n case 'H':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y0 });\n break;\n case 'V':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x0, y: y });\n break;\n case 'C':\n segments.push({ command: 'C', x0: x0, y0: y0, x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y });\n break;\n case 'S':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'C' || prev.command === 'S') {\n ctrl = { x: prev.x2, y: prev.y2 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'C', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x2: x2, y2: y2, x: x, y: y });\n }\n break;\n case 'Q':\n //ctx.quadraticCurveTo(x1, y1, x, y);\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: x1, y1: y1, x: x, y: y });\n break;\n case 'T':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'Q') {\n ctrl = { x: prev.x1, y: prev.y1 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x: x, y: y });\n }\n break;\n case 'A':\n var newSeg = seg;\n newSeg.command = 'A';\n segments.push(newSeg);\n break;\n case 'Z':\n case 'z':\n segments.push({ command: 'Z' });\n x = x0;\n y = y0;\n break;\n }\n if (char === 'M' || char === 'm') {\n initx = x;\n inity = y;\n }\n x0 = x;\n y0 = y;\n }\n return segments;\n}\n/**\n * transformPath method \\\n *\n * @returns {string} transformPath method .\\\n * @param { Object[]} arr - provide the collection value.\n * @param { number} sX - provide the collection value.\n * @param { number} sY - provide the collection value.\n * @param { boolean} s - provide the collection value.\n * @param {number} bX - provide the collection value.\n * @param { number} bY - provide the collection value.\n * @param { number} iX - provide the collection value.\n * @param { number} iY - provide the collection value.\n * @private\n */\nexport function transformPath(arr, sX, sY, s, bX, bY, iX, iY) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var newSeg;\n for (x = 0, y = 0, i = 0, length = arr.length; i < length; ++i) {\n var obj = arr[i];\n var seg = obj;\n var char = seg.command;\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if (s) {\n if (x !== undefined) {\n x = scalePathData(x, sX, bX, iX);\n }\n if (y !== undefined) {\n y = scalePathData(y, sY, bY, iY);\n }\n if (x1 !== undefined) {\n x1 = scalePathData(x1, sX, bX, iX);\n }\n if (y1 !== undefined) {\n y1 = scalePathData(y1, sY, bY, iY);\n }\n if (x2 !== undefined) {\n x2 = scalePathData(x2, sX, bX, iX);\n }\n if (y2 !== undefined) {\n y2 = scalePathData(y2, sY, bY, iY);\n }\n }\n else {\n if (x !== undefined) {\n x = Number((x + sX).toFixed(2));\n }\n if (y !== undefined) {\n y = Number((y + sY).toFixed(2));\n }\n if (x1 !== undefined) {\n x1 = Number((x1 + sX).toFixed(2));\n }\n if (y1 !== undefined) {\n y1 = Number((y1 + sY).toFixed(2));\n }\n if (x2 !== undefined) {\n x2 = Number((x2 + sX).toFixed(2));\n }\n if (y2 !== undefined) {\n y2 = Number((y2 + sY).toFixed(2));\n }\n }\n var scaledPath = { x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2, r1: seg.r1, r2: seg.r2 };\n newSeg = updatedSegment(seg, char, scaledPath, s, sX, sY);\n if (newSeg) {\n arr[i] = newSeg;\n }\n // Record the start of a subpath\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n var pathData = getPathString(arr);\n return pathData;\n}\n/**\n * updatedSegment method \\\n *\n * @returns {string} updatedSegment method .\\\n * @param { PathSegment} segment - provide the collection value.\n * @param { PathSegment} char - provide the collection value.\n * @param { number} obj - provide the collection value.\n * @param { boolean} isScale - provide the collection value.\n * @param {number} sX - provide the collection value.\n * @param { number} sY - provide the collection value.\n * @private\n */\nexport function updatedSegment(segment, char, obj, isScale, sX, sY) {\n switch (char) {\n case 'M':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'L':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'H':\n segment.x = obj.x;\n break;\n case 'V':\n segment.y = obj.y;\n break;\n case 'C':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'S':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'Q':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n break;\n case 'T':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'A':\n var r1 = obj.r1;\n var r2 = obj.r2;\n if (isScale) {\n obj.r1 = r1 = (r1 * sX);\n obj.r2 = r2 = (r2 * sY);\n }\n segment.x = obj.x;\n segment.y = obj.y;\n segment.r1 = obj.r1;\n segment.r2 = obj.r2;\n break;\n case 'z':\n case 'Z':\n segment = { command: 'Z' };\n break;\n }\n return segment;\n}\n/* eslint-enable */\n/**\n * scalePathData method \\\n *\n * @returns {string} scalePathData method .\\\n * @param { number} val - provide the val value.\n * @param { number} scaleFactor - provide the scaleFactor value.\n * @param { number} oldOffset - provide the oldOffset value.\n * @param { number} newOffset - provide the newOffset value.\n * @private\n */\nexport function scalePathData(val, scaleFactor, oldOffset, newOffset) {\n if (val !== oldOffset) {\n if (newOffset !== oldOffset) {\n val = (((val * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)))\n + (newOffset - Number(oldOffset)));\n }\n else {\n val = ((Number(val) * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)));\n }\n }\n else {\n if (newOffset !== oldOffset) {\n val = newOffset;\n }\n }\n return Number(val.toFixed(2));\n}\n/**\n * splitArrayCollection method \\\n *\n * @returns {Object[]} splitArrayCollection method .\\\n * @param { Object[]} arrayCollection - provide the val value.\n * @private\n */\nexport function splitArrayCollection(arrayCollection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n for (x = 0, y = 0, i = 0, length = arrayCollection.length; i < length; ++i) {\n var path = arrayCollection[parseInt(i.toString(), 10)];\n var seg = path;\n var char = seg.command;\n if (/[MLHVCSQTA]/.test(char)) {\n if ('x' in seg) {\n seg.x = x = seg.x;\n }\n if ('y' in seg) {\n seg.y = y = seg.y;\n }\n }\n else {\n if ('x1' in seg) {\n seg.x1 = x1 = x + seg.x1;\n }\n if ('x2' in seg) {\n seg.x2 = x2 = x + seg.x2;\n }\n if ('y1' in seg) {\n seg.y1 = y1 = y + seg.y1;\n }\n if ('y2' in seg) {\n seg.y2 = y2 = y + seg.y2;\n }\n if ('x' in seg) {\n seg.x = x += seg.x;\n }\n if ('y' in seg) {\n seg.y = y += seg.y;\n }\n var newSeg = void 0;\n switch (char) {\n case 'm':\n case 'M':\n newSeg = { command: 'M', x: x, y: y };\n break;\n case 'l':\n case 'L':\n newSeg = { command: 'L', x: x, y: y };\n break;\n case 'h':\n case 'H':\n newSeg = { command: 'H', x: x };\n break;\n case 'v':\n case 'V':\n newSeg = { command: 'V', y: y };\n break;\n case 'c':\n case 'C':\n newSeg = { command: 'C', x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2 };\n break;\n case 's':\n case 'S':\n newSeg = { command: 'S', x: x, y: y, x2: x2, y2: y2 };\n break;\n case 'q':\n case 'Q':\n newSeg = { command: 'Q', x: x, y: y, x1: x1, y1: y1 };\n break;\n case 't':\n case 'T':\n newSeg = { command: 'T', x: x, y: y };\n break;\n case 'a':\n case 'A':\n newSeg = { command: 'A', x: x, y: y };\n newSeg.r1 = seg.r1;\n newSeg.r2 = seg.r2;\n newSeg.angle = seg.angle;\n newSeg.largeArc = seg.largeArc;\n newSeg.sweep = seg.sweep;\n break;\n case 'z':\n case 'Z':\n newSeg = { command: 'Z' };\n x = x0;\n y = y0;\n newSeg = arrayCollection[parseInt(i.toString(), 10)];\n break;\n }\n if (newSeg) {\n arrayCollection[parseInt(i.toString(), 10)] = newSeg;\n }\n }\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n return arrayCollection;\n}\n/**\n * getPathString method \\\n *\n * @returns {string} getPathString method .\\\n * @param { Object[]} arrayCollection - provide the val value.\n * @private\n */\nexport function getPathString(arrayCollection) {\n var getNewString = '';\n var i;\n for (i = 0; i < arrayCollection.length; i++) {\n if (i === 0) {\n getNewString += getString(arrayCollection[parseInt(i.toString(), 10)]);\n }\n else {\n getNewString += ' ' + getString(arrayCollection[parseInt(i.toString(), 10)]);\n }\n }\n return getNewString;\n}\n/* eslint-disable */\n/**\n * getString method \\\n *\n * @returns {string} getString method .\\\n * @param { PathSegment} arrayCollection - provide the val value.\n * @private\n */\nexport function getString(obj) {\n var string = '';\n switch (obj.command) {\n case 'Z':\n case 'z':\n string = obj.command;\n break;\n case 'M':\n case 'm':\n case 'L':\n case 'l':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'C':\n case 'c':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'Q':\n case 'q':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'A':\n case 'a':\n var cmd = obj.command;\n var ang = obj.angle;\n var l = (obj.largeArc ? '1' : '0');\n var s = (obj.sweep ? '1' : '0');\n string = cmd + ' ' + obj.r1 + ' ' + obj.r2 + ' ' + ang + ' ' + l + ' ' + s + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'H':\n case 'h':\n string = obj.command + ' ' + obj.x;\n break;\n case 'V':\n case 'v':\n string = obj.command + ' ' + obj.y;\n break;\n case 'S':\n case 's':\n string = obj.command + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'T':\n case 't':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n }\n return string;\n}\n","/**\n * Rect defines and processes rectangular regions\n */\nvar Rect = /** @class */ (function () {\n function Rect(x, y, width, height) {\n /**\n * Sets the x-coordinate of the starting point of a rectangular region\n *\n * @default 0\n */\n this.x = Number.MAX_VALUE;\n /**\n * Sets the y-coordinate of the starting point of a rectangular region\n *\n * @default 0\n */\n this.y = Number.MAX_VALUE;\n /**\n * Sets the width of a rectangular region\n *\n * @default 0\n */\n this.width = 0;\n /**\n * Sets the height of a rectangular region\n *\n * @default 0\n */\n this.height = 0;\n if (x === undefined || y === undefined) {\n x = y = Number.MAX_VALUE;\n width = height = 0;\n }\n else {\n if (width === undefined) {\n width = 0;\n }\n if (height === undefined) {\n height = 0;\n }\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n Object.defineProperty(Rect.prototype, \"left\", {\n // eslint-disable-next-line jsdoc/require-returns\n /** @private */\n get: function () {\n return this.x;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"right\", {\n /**\n * right method \\\n *\n * @returns { Rect } right method .\\\n *\n * @private\n */\n get: function () {\n return this.x + this.width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"top\", {\n /**\n * toBounds method \\\n *\n * @returns { Rect } toBounds method .\\\n *\n * @private\n */\n get: function () {\n return this.y;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottom\", {\n /**\n * bottom method \\\n *\n * @returns { Rect } bottom method .\\\n *\n * @private\n */\n get: function () {\n return this.y + this.height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topLeft\", {\n /**\n * topLeft method \\\n *\n * @returns { Rect } topLeft method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.left, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topRight\", {\n /**\n * topRight method \\\n *\n * @returns { Rect } topRight method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.right, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomLeft\", {\n /**\n * bottomLeft method \\\n *\n * @returns { Rect } bottomLeft method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.left, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomRight\", {\n /**\n * bottomRight method \\\n *\n * @returns { Rect } bottomRight method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.right, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleLeft\", {\n /**\n * middleLeft method \\\n *\n * @returns { Rect } middleLeft method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.left, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleRight\", {\n /**\n * middleRight method \\\n *\n * @returns { Rect } middleRight method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.right, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topCenter\", {\n /**\n * topCenter method \\\n *\n * @returns { Rect } topCenter method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.x + this.width / 2, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomCenter\", {\n /**\n * bottomCenter method \\\n *\n * @returns { Rect } bottomCenter method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.x + this.width / 2, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"center\", {\n /**\n * center method \\\n *\n * @returns { PointModel } center method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.x + this.width / 2, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * equals method \\\n *\n * @returns { boolean } equals method .\\\n * @param {Rect} rect1 - provide the rect1 value.\n * @param {Rect} rect2 - provide the rect2 value.\n *\n * @private\n */\n Rect.prototype.equals = function (rect1, rect2) {\n return rect1.x === rect2.x && rect1.y === rect2.y && rect1.width === rect2.width && rect1.height === rect2.height;\n };\n /**\n * uniteRect method \\\n *\n * @returns { Rect } uniteRect method .\\\n * @param {Rect} rect - provide the points value.\n *\n * @private\n */\n Rect.prototype.uniteRect = function (rect) {\n var right = Math.max(Number.NaN === this.right || this.x === Number.MAX_VALUE ? rect.right : this.right, rect.right);\n var bottom = Math.max(Number.NaN === this.bottom || this.y === Number.MAX_VALUE ? rect.bottom : this.bottom, rect.bottom);\n this.x = Math.min(this.left, rect.left);\n this.y = Math.min(this.top, rect.top);\n this.width = right - this.x;\n this.height = bottom - this.y;\n return this;\n };\n /**\n * unitePoint method \\\n *\n * @returns { void } unitePoint method .\\\n * @param {PointModel} point - provide the points value.\n *\n * @private\n */\n Rect.prototype.unitePoint = function (point) {\n if (this.x === Number.MAX_VALUE) {\n this.x = point.x;\n this.y = point.y;\n return;\n }\n var x = Math.min(this.left, point.x);\n var y = Math.min(this.top, point.y);\n var right = Math.max(this.right, point.x);\n var bottom = Math.max(this.bottom, point.y);\n this.x = x;\n this.y = y;\n this.width = right - this.x;\n this.height = bottom - this.y;\n };\n // public intersection(rect: Rect): Rect {\n // if (this.intersects(rect)) {\n // let left: number = Math.max(this.left, rect.left);\n // let top: number = Math.max(this.top, rect.top);\n // let right: number = Math.min(this.right, rect.right);\n // let bottom: number = Math.min(this.bottom, rect.bottom);\n // return new Rect(left, top, right - left, bottom - top);\n // }\n // return Rect.empty;\n // }\n /**\n * Inflate method \\\n *\n * @returns { Rect } Inflate method .\\\n * @param {number} padding - provide the points value.\n *\n * @private\n */\n Rect.prototype.Inflate = function (padding) {\n this.x -= padding;\n this.y -= padding;\n this.width += padding * 2;\n this.height += padding * 2;\n return this;\n };\n //public Inflate(size: Size): Rect {\n // this.x -= size.Width;\n // this.y -= size.Height;\n // this.width += size.Width * 2;\n // this.height += size.Height * 2;\n // return this;\n //}\n // public inflate(width: number, height: number): void {\n // this.x -= width;\n // this.y -= height;\n // this.width += width * 2;\n // this.height += height * 2;\n // }\n /**\n * intersects method \\\n *\n * @returns { boolean } intersects method .\\\n * @param {Rect} rect - provide the points value.\n *\n * @private\n */\n Rect.prototype.intersects = function (rect) {\n if (this.right < rect.left || this.left > rect.right || this.top > rect.bottom || this.bottom < rect.top) {\n return false;\n }\n return true;\n };\n /**\n * containsRect method \\\n *\n * @returns { boolean } containsRect method .\\\n * @param {Rect} rect - provide the points value.\n *\n * @private\n */\n Rect.prototype.containsRect = function (rect) {\n return this.left <= rect.left && this.right >= rect.right && this.top <= rect.top && this.bottom >= rect.bottom;\n };\n /**\n * containsPoint method \\\n *\n * @returns { boolean } containsPoint method .\\\n * @param {PointModel} point - provide the points value.\n * @param {number} padding - provide the padding value.\n *\n * @private\n */\n Rect.prototype.containsPoint = function (point, padding) {\n if (padding === void 0) { padding = 0; }\n return this.left - padding <= point.x && this.right + padding >= point.x\n && this.top - padding <= point.y && this.bottom + padding >= point.y;\n };\n // public toPoints(): PointModel[] {\n // let points: PointModel[] = [];\n // points.push(this.topLeft);\n // points.push(this.topRight);\n // points.push(this.bottomLeft);\n // points.push(this.bottomRight);\n // return points;\n // }\n /**\n * toBounds method \\\n *\n * @returns { Rect } toBounds method .\\\n * @param {PointModel[]} points - provide the points value.\n *\n * @private\n */\n Rect.toBounds = function (points) {\n var rect = new Rect();\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var pt = points_1[_i];\n rect.unitePoint(pt);\n }\n return rect;\n };\n /** @private */\n Rect.empty = new Rect(Number.MAX_VALUE, Number.MIN_VALUE, 0, 0);\n return Rect;\n}());\nexport { Rect };\n","/**\n * Matrix module is used to transform points based on offsets, angle\n */\n/** @private */\nexport var MatrixTypes;\n(function (MatrixTypes) {\n MatrixTypes[MatrixTypes[\"Identity\"] = 0] = \"Identity\";\n MatrixTypes[MatrixTypes[\"Translation\"] = 1] = \"Translation\";\n MatrixTypes[MatrixTypes[\"Scaling\"] = 2] = \"Scaling\";\n MatrixTypes[MatrixTypes[\"Unknown\"] = 4] = \"Unknown\";\n})(MatrixTypes || (MatrixTypes = {}));\n/** @private */\nvar Matrix = /** @class */ (function () {\n function Matrix(m11, m12, m21, m22, offsetX, offsetY, type) {\n this.m11 = m11;\n this.m12 = m12;\n this.m21 = m21;\n this.m22 = m22;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n // if (type === undefined) {\n // this.type = MatrixTypes.Unknown;\n // } else {\n // this.type = type;\n // }\n this.type = type;\n }\n return Matrix;\n}());\nexport { Matrix };\n/**\n * Will identify the matrix .\\\n *\n * @returns {Matrix} Will identify the matrix .\n * @private\n */\nexport function identityMatrix() {\n return new Matrix(1, 0, 0, 1, 0, 0, MatrixTypes.Identity);\n}\n/**\n * Will transform the points by matrix .\\\n *\n * @returns {PointModel[]} Will transform the points by matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} point - provide the points value.\n * @private\n */\nexport function transformPointByMatrix(matrix, point) {\n var pt = multiplyPoint(matrix, point.x, point.y);\n return { x: Math.round(pt.x * 100) / 100, y: Math.round(pt.y * 100) / 100 };\n}\n/**\n * Will transform the points by matrix .\\\n *\n * @returns {PointModel[]} Will transform the points by matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} points - provide the points value.\n * @private\n */\nexport function transformPointsByMatrix(matrix, points) {\n var transformedPoints = [];\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n transformedPoints.push(transformPointByMatrix(matrix, point));\n }\n return transformedPoints;\n}\n/**\n * Will rotate the matrix .\\\n *\n * @returns {void} Will rotate the matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} angle - provide the angle value.\n * @param {number} centerX - provide the centerX value .\n * @param {number} centerY - provide the centerY value .\n * @private\n */\nexport function rotateMatrix(matrix, angle, centerX, centerY) {\n angle %= 360.0;\n multiplyMatrix(matrix, createRotationRadians(angle * 0.017453292519943295, centerX ? centerX : 0, centerY ? centerY : 0));\n}\n/**\n * Will scale the matrix .\\\n *\n * @returns {void} Will scale the matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} scaleX - provide the scaleXvalue.\n * @param {number} scaleY - provide the scaleY value .\n * @param {number} centerX - provide the centerX value .\n * @param {number} centerY - provide the centerY value .\n * @private\n */\nexport function scaleMatrix(matrix, scaleX, scaleY, centerX, centerY) {\n if (centerX === void 0) { centerX = 0; }\n if (centerY === void 0) { centerY = 0; }\n multiplyMatrix(matrix, createScaling(scaleX, scaleY, centerX, centerY));\n}\n/**\n * Will translate the matrix .\\\n *\n * @returns {void} Will translate the matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} offsetX - provide the offset x value.\n * @param {number} offsetY - provide the offset y value .\n * @private\n */\nexport function translateMatrix(matrix, offsetX, offsetY) {\n if (matrix.type & MatrixTypes.Identity) {\n matrix.type = MatrixTypes.Translation;\n setMatrix(matrix, 1.0, 0.0, 0.0, 1.0, offsetX, offsetY);\n return;\n }\n if (matrix.type & MatrixTypes.Unknown) {\n matrix.offsetX += offsetX;\n matrix.offsetY += offsetY;\n return;\n }\n matrix.offsetX += offsetX;\n matrix.offsetY += offsetY;\n matrix.type |= MatrixTypes.Translation;\n}\n/**\n * Will create scaling value .\\\n *\n * @returns {Matrix} Will create scaling value . .\n *\n * @param {Matrix} scaleX - provide the scale x value .\n * @param {number} scaleY - provide the scale y value.\n * @param {number} centerX - provide the centerX x value .\n * @param {number} centerY - provide the centerX y value .\n * @private\n */\nfunction createScaling(scaleX, scaleY, centerX, centerY) {\n var result = identityMatrix();\n result.type = !(centerX || centerY) ? MatrixTypes.Scaling : MatrixTypes.Scaling | MatrixTypes.Translation;\n setMatrix(result, scaleX, 0.0, 0.0, scaleY, centerX - scaleX * centerX, centerY - scaleY * centerY);\n return result;\n}\n/**\n * Will create the rotation radians.\\\n *\n * @returns {Matrix} Will create the rotation radians .\n *\n * @param {Matrix} angle - provide the angle .\n * @param {number} centerX - provide the x value .\n * @param {number} centerY - provide the y value .\n * @private\n */\nfunction createRotationRadians(angle, centerX, centerY) {\n var result = identityMatrix();\n var num = Math.sin(angle);\n var num2 = Math.cos(angle);\n var offsetX = centerX * (1.0 - num2) + centerY * num;\n var offsetY = centerY * (1.0 - num2) - centerX * num;\n result.type = MatrixTypes.Unknown;\n setMatrix(result, num2, num, -num, num2, offsetX, offsetY);\n return result;\n}\n/**\n * Multiply the point .\\\n *\n * @returns {void} Multiply the point .\n *\n * @param {Matrix} matrix - Provide the matrix .\n * @param {number} x - provide the x value .\n * @param {number} y - provide the y value .\n * @private\n */\nfunction multiplyPoint(matrix, x, y) {\n switch (matrix.type) {\n case MatrixTypes.Identity: break;\n case MatrixTypes.Translation:\n x += matrix.offsetX;\n y += matrix.offsetY;\n break;\n case MatrixTypes.Scaling:\n x *= matrix.m11;\n y *= matrix.m22;\n break;\n case MatrixTypes.Translation | MatrixTypes.Scaling:\n x *= matrix.m11;\n x += matrix.offsetX;\n y *= matrix.m22;\n y += matrix.offsetY;\n break;\n default:\n // eslint-disable-next-line no-case-declarations\n var num = y * matrix.m21 + matrix.offsetX;\n // eslint-disable-next-line no-case-declarations\n var num2 = x * matrix.m12 + matrix.offsetY;\n x *= matrix.m11;\n x += num;\n y *= matrix.m22;\n y += num2;\n break;\n }\n return { x: x, y: y };\n}\n/**\n * Will multiply the matrix .\\\n *\n * @returns {void} Will multiply the matrix .\n *\n * @param {Matrix} matrix1 - Provide the matrix 1 value .\n * @param {Matrix} matrix2 - Provide the matrix 2 value .\n * @private\n */\nexport function multiplyMatrix(matrix1, matrix2) {\n var type = matrix1.type;\n var type2 = matrix2.type;\n if (type2 === MatrixTypes.Identity) {\n return;\n }\n if (type === MatrixTypes.Identity) {\n assignMatrix(matrix1, matrix2);\n matrix1.type = matrix2.type;\n return;\n }\n if (type2 === MatrixTypes.Translation) {\n matrix1.offsetX += matrix2.offsetX;\n matrix1.offsetY += matrix2.offsetY;\n if (type !== MatrixTypes.Unknown) {\n matrix1.type |= MatrixTypes.Translation;\n }\n return;\n }\n if (type !== MatrixTypes.Translation) {\n var num = type << 4 | type2;\n switch (num) {\n case 34:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n return;\n case 35:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX = matrix2.offsetX;\n matrix1.offsetY = matrix2.offsetY;\n matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling);\n return;\n case 36: break;\n default:\n {\n switch (num) {\n case 50:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX *= matrix2.m11;\n matrix1.offsetY *= matrix2.m22;\n return;\n case 51:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX = matrix2.m11 * matrix1.offsetX + matrix2.offsetX;\n matrix1.offsetY = matrix2.m22 * matrix1.offsetY + matrix2.offsetY;\n return;\n case 52: break;\n default:\n switch (num) {\n case 66:\n case 67:\n case 68: break;\n default: return;\n }\n break;\n }\n break;\n }\n }\n var result = identityMatrix();\n var m11New = matrix1.m11 * matrix2.m11 + matrix1.m12 * matrix2.m21;\n var m12New = matrix1.m11 * matrix2.m12 + matrix1.m12 * matrix2.m22;\n var m21New = matrix1.m21 * matrix2.m11 + matrix1.m22 * matrix2.m21;\n var m22New = matrix1.m21 * matrix2.m12 + matrix1.m22 * matrix2.m22;\n var offsetX_1 = matrix1.offsetX * matrix2.m11 + matrix1.offsetY * matrix2.m21 + matrix2.offsetX;\n var offsetY_1 = matrix1.offsetX * matrix2.m12 + matrix1.offsetY * matrix2.m22 + matrix2.offsetY;\n setMatrix(result, m11New, m12New, m21New, m22New, offsetX_1, offsetY_1);\n if (result.m21 || result.m12) {\n result.type = MatrixTypes.Unknown;\n }\n else {\n if (result.m11 && result.m11 !== 1.0 || result.m22 && result.m22 !== 1.0) {\n result.type = MatrixTypes.Scaling;\n }\n if (result.offsetX || result.offsetY) {\n result.type |= MatrixTypes.Translation;\n }\n if ((result.type & (MatrixTypes.Translation | MatrixTypes.Scaling)) === MatrixTypes.Identity) {\n result.type = MatrixTypes.Identity;\n }\n result.type = MatrixTypes.Scaling | MatrixTypes.Translation;\n }\n assignMatrix(matrix1, result);\n matrix1.type = result.type;\n return;\n }\n var offsetX = matrix1.offsetX;\n var offsetY = matrix1.offsetY;\n matrix1.offsetX = offsetX * matrix2.m11 + offsetY * matrix2.m21 + matrix2.offsetX;\n matrix1.offsetY = offsetX * matrix2.m12 + offsetY * matrix2.m22 + matrix2.offsetY;\n if (type2 === MatrixTypes.Unknown) {\n matrix1.type = MatrixTypes.Unknown;\n return;\n }\n matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling);\n}\n/**\n * set the matrix .\\\n *\n * @returns {void} set the matrix .\n *\n * @param {Matrix} mat - Provide the matrix 1 value .\n * @param {number} m11 - Provide the matrix m11 value .\n * @param {number} m12 - Provide the matrix m11 value .\n * @param {number} m21 - Provide the matrix m11 value .\n * @param {number} m22 - Provide the matrix m11 value .\n * @param {number} x - Provide the matrix m11 value .\n * @param {number} y - Provide the matrix m11 value .\n * @private\n */\nfunction setMatrix(mat, m11, m12, m21, m22, x, y) {\n mat.m11 = m11;\n mat.m12 = m12;\n mat.m21 = m21;\n mat.m22 = m22;\n mat.offsetX = x;\n mat.offsetY = y;\n}\n/**\n * Assign the matrix .\\\n *\n * @returns {void} Assign the matrix .\n *\n * @param {Matrix} matrix1 - Provide the element type as string .\n * @param {Matrix} matrix2 - Provide the element type as string .\n * @private\n */\nfunction assignMatrix(matrix1, matrix2) {\n matrix1.m11 = matrix2.m11;\n matrix1.m12 = matrix2.m12;\n matrix1.m21 = matrix2.m21;\n matrix1.m22 = matrix2.m22;\n matrix1.offsetX = matrix2.offsetX;\n matrix1.offsetY = matrix2.offsetY;\n matrix1.type = matrix2.type;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Property, ChildProperty, Collection, ComplexFactory, isBlazor } from '@syncfusion/ej2-base';\n/** @private */\n// eslint-disable-next-line prefer-const\nvar getGradientType = function (obj) {\n if (obj) {\n if (isBlazor()) {\n return DiagramGradient;\n }\n switch (obj.type) {\n case 'Linear':\n return LinearGradient;\n case 'Radial':\n return RadialGradient;\n default:\n return LinearGradient;\n }\n }\n return LinearGradient;\n};\n/**\n * Layout Model module defines the styles and types to arrange objects in containers\n */\nvar Thickness = /** @class */ (function () {\n function Thickness(left, right, top, bottom) {\n this.left = left;\n this.right = right;\n this.top = top;\n this.bottom = bottom;\n }\n return Thickness;\n}());\nexport { Thickness };\n/**\n * Defines the space to be left between an object and its immediate parent\n */\nvar Margin = /** @class */ (function (_super) {\n __extends(Margin, _super);\n function Margin() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Margin.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], Margin.prototype, \"right\", void 0);\n __decorate([\n Property(0)\n ], Margin.prototype, \"top\", void 0);\n __decorate([\n Property(0)\n ], Margin.prototype, \"bottom\", void 0);\n return Margin;\n}(ChildProperty));\nexport { Margin };\n/**\n * Defines the Shadow appearance of the objects\n * ```html\n *
\n * ```\n * ```typescript\n * let nodes: NodeModel[] = [{ id: 'node2', width: 100, height: 100,\n * constraints: NodeConstraints.Default | NodeConstraints.Shadow,\n * shadow: { angle: 45, distance: 5, opacity: 0.7, color: 'grey'}\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar Shadow = /** @class */ (function (_super) {\n __extends(Shadow, _super);\n function Shadow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(45)\n ], Shadow.prototype, \"angle\", void 0);\n __decorate([\n Property(5)\n ], Shadow.prototype, \"distance\", void 0);\n __decorate([\n Property(0.7)\n ], Shadow.prototype, \"opacity\", void 0);\n __decorate([\n Property('lightgrey')\n ], Shadow.prototype, \"color\", void 0);\n return Shadow;\n}(ChildProperty));\nexport { Shadow };\n/**\n * Defines the different colors and the region of color transitions\n * ```html\n *
\n * ```\n * ```typescript\n * let stopscol: StopModel[] = [];\n * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 };\n * stopscol.push(stops1);\n * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 };\n * stopscol.push(stops2);\n * let gradient: RadialGradientModel = { cx: 50, cy: 50, fx: 50, fy: 50, stops: stopscol, type: 'Radial' };\n * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100,\n * style: { gradient: gradient }\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar Stop = /** @class */ (function (_super) {\n __extends(Stop, _super);\n function Stop() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * Returns the name of class Stop\n */\n Stop.prototype.getClassName = function () {\n return 'Stop';\n };\n __decorate([\n Property('')\n ], Stop.prototype, \"color\", void 0);\n __decorate([\n Property(0)\n ], Stop.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], Stop.prototype, \"opacity\", void 0);\n return Stop;\n}(ChildProperty));\nexport { Stop };\n/**\n * Paints the node with a smooth transition from one color to another color\n */\nvar Gradient = /** @class */ (function (_super) {\n __extends(Gradient, _super);\n function Gradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Collection([], Stop)\n ], Gradient.prototype, \"stops\", void 0);\n __decorate([\n Property('None')\n ], Gradient.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Gradient.prototype, \"id\", void 0);\n return Gradient;\n}(ChildProperty));\nexport { Gradient };\n/**\n * Defines the linear gradient of styles\n * ```html\n *
\n * ```\n * ```typescript\n * let stopscol: StopModel[] = [];\n * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 };\n * stopscol.push(stops1);\n * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 };\n * stopscol.push(stops2);\n * let gradient: LinearGradientModel = { x1: 0, x2: 50, y1: 0, y2: 50, stops: stopscol, type: 'Linear' };\n * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100,\n * style: { gradient: gradient }\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\n/**\n * Paints the node with linear color transitions\n */\nvar DiagramGradient = /** @class */ (function (_super) {\n __extends(DiagramGradient, _super);\n function DiagramGradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"x1\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"x2\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"y1\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"y2\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"cx\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"cy\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"fx\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"fy\", void 0);\n __decorate([\n Property(50)\n ], DiagramGradient.prototype, \"r\", void 0);\n return DiagramGradient;\n}(Gradient));\nexport { DiagramGradient };\n/**\n * Paints the node with linear color transitions\n */\nvar LinearGradient = /** @class */ (function (_super) {\n __extends(LinearGradient, _super);\n function LinearGradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"x1\", void 0);\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"x2\", void 0);\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"y1\", void 0);\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"y2\", void 0);\n return LinearGradient;\n}(Gradient));\nexport { LinearGradient };\n/**\n * A focal point defines the beginning of the gradient, and a circle defines the end point of the gradient\n * ```html\n *
\n * ```\n * ```typescript\n * let stopscol: StopModel[] = [];\n * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 };\n * stopscol.push(stops1);\n * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 };\n * stopscol.push(stops2);\n * let gradient: RadialGradientModel = { cx: 50, cy: 50, fx: 50, fy: 50, stops: stopscol, type: 'Radial' };\n * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100,\n * style: { gradient: gradient }\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar RadialGradient = /** @class */ (function (_super) {\n __extends(RadialGradient, _super);\n function RadialGradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"cx\", void 0);\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"cy\", void 0);\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"fx\", void 0);\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"fy\", void 0);\n __decorate([\n Property(50)\n ], RadialGradient.prototype, \"r\", void 0);\n return RadialGradient;\n}(Gradient));\nexport { RadialGradient };\n/**\n * Defines the style of shape/path\n */\nvar ShapeStyle = /** @class */ (function (_super) {\n __extends(ShapeStyle, _super);\n function ShapeStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('white')\n ], ShapeStyle.prototype, \"fill\", void 0);\n __decorate([\n Property('black')\n ], ShapeStyle.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('')\n ], ShapeStyle.prototype, \"strokeDashArray\", void 0);\n __decorate([\n Property(1)\n ], ShapeStyle.prototype, \"strokeWidth\", void 0);\n __decorate([\n Property(1)\n ], ShapeStyle.prototype, \"opacity\", void 0);\n __decorate([\n ComplexFactory(getGradientType)\n ], ShapeStyle.prototype, \"gradient\", void 0);\n return ShapeStyle;\n}(ChildProperty));\nexport { ShapeStyle };\n/**\n * Defines the stroke style of a path\n */\nvar StrokeStyle = /** @class */ (function (_super) {\n __extends(StrokeStyle, _super);\n function StrokeStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('transparent')\n ], StrokeStyle.prototype, \"fill\", void 0);\n return StrokeStyle;\n}(ShapeStyle));\nexport { StrokeStyle };\n/**\n * Defines the appearance of text\n * ```html\n *
\n * ```\n * ```typescript\n * let style: TextStyleModel = { strokeColor: 'black', opacity: 0.5, whiteSpace:'CollapseSpace', strokeWidth: 1 };\n * let node: NodeModel;\n * node = {\n * ...\n * id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,\n * annotations : [{\n * content: 'text', style: style }];\n * ...\n * };\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: [node],\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar TextStyle = /** @class */ (function (_super) {\n __extends(TextStyle, _super);\n function TextStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('black')\n ], TextStyle.prototype, \"color\", void 0);\n __decorate([\n Property('Arial')\n ], TextStyle.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(12)\n ], TextStyle.prototype, \"fontSize\", void 0);\n __decorate([\n Property(false)\n ], TextStyle.prototype, \"italic\", void 0);\n __decorate([\n Property(false)\n ], TextStyle.prototype, \"bold\", void 0);\n __decorate([\n Property('CollapseSpace')\n ], TextStyle.prototype, \"whiteSpace\", void 0);\n __decorate([\n Property('WrapWithOverflow')\n ], TextStyle.prototype, \"textWrapping\", void 0);\n __decorate([\n Property('Center')\n ], TextStyle.prototype, \"textAlign\", void 0);\n __decorate([\n Property('None')\n ], TextStyle.prototype, \"textDecoration\", void 0);\n __decorate([\n Property('Wrap')\n ], TextStyle.prototype, \"textOverflow\", void 0);\n __decorate([\n Property('transparent')\n ], TextStyle.prototype, \"fill\", void 0);\n return TextStyle;\n}(ShapeStyle));\nexport { TextStyle };\n/**\n * Defines the style of shape/path\n */\nvar DiagramShapeStyle = /** @class */ (function (_super) {\n __extends(DiagramShapeStyle, _super);\n function DiagramShapeStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('white')\n ], DiagramShapeStyle.prototype, \"fill\", void 0);\n __decorate([\n Property('Wrap')\n ], DiagramShapeStyle.prototype, \"textOverflow\", void 0);\n __decorate([\n Property(1)\n ], DiagramShapeStyle.prototype, \"strokeWidth\", void 0);\n __decorate([\n ComplexFactory(getGradientType)\n ], DiagramShapeStyle.prototype, \"gradient\", void 0);\n __decorate([\n Property(1)\n ], DiagramShapeStyle.prototype, \"opacity\", void 0);\n __decorate([\n Property(false)\n ], DiagramShapeStyle.prototype, \"italic\", void 0);\n __decorate([\n Property('')\n ], DiagramShapeStyle.prototype, \"strokeDashArray\", void 0);\n __decorate([\n Property('black')\n ], DiagramShapeStyle.prototype, \"color\", void 0);\n __decorate([\n Property(12)\n ], DiagramShapeStyle.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Arial')\n ], DiagramShapeStyle.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('CollapseSpace')\n ], DiagramShapeStyle.prototype, \"whiteSpace\", void 0);\n __decorate([\n Property('Center')\n ], DiagramShapeStyle.prototype, \"textAlign\", void 0);\n __decorate([\n Property('None')\n ], DiagramShapeStyle.prototype, \"textDecoration\", void 0);\n __decorate([\n Property(false)\n ], DiagramShapeStyle.prototype, \"bold\", void 0);\n __decorate([\n Property('black')\n ], DiagramShapeStyle.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('WrapWithOverflow')\n ], DiagramShapeStyle.prototype, \"textWrapping\", void 0);\n return DiagramShapeStyle;\n}(ChildProperty));\nexport { DiagramShapeStyle };\n","/**\n * enum module defines the public enumerations\n */\n/**\n * @private\n */\nexport var BlazorAction;\n(function (BlazorAction) {\n /** Return the layout value is true when doLayout is called */\n BlazorAction[BlazorAction[\"Default\"] = 0] = \"Default\";\n /** Need to return the layout value when doLayout is called */\n BlazorAction[BlazorAction[\"expandNode\"] = 2] = \"expandNode\";\n /** Enabled during the mouse interaction */\n BlazorAction[BlazorAction[\"interaction\"] = 4] = \"interaction\";\n /** Enable when the group action start in history */\n BlazorAction[BlazorAction[\"GroupingInProgress\"] = 8] = \"GroupingInProgress\";\n /** Enable when the group action start to clone another group node */\n BlazorAction[BlazorAction[\"GroupClipboardInProcess\"] = 16] = \"GroupClipboardInProcess\";\n /** Enable when the clear the object to prevent the server update */\n BlazorAction[BlazorAction[\"ClearObject\"] = 32] = \"ClearObject\";\n})(BlazorAction || (BlazorAction = {}));\n/**\n * Constraints to define when a port has to be visible\n * Visible - Always shows the port\n * Hidden - Always hides the port\n * Hover - Shows the port when the mouse hovers over a node\n * Connect - Shows the port when a connection end point is dragged over a node\n * Default - By default the ports will be visible when a node is hovered and being tried to connect\n *\n * @aspNumberEnum\n */\nexport var PortVisibility;\n(function (PortVisibility) {\n /** Always shows the port */\n PortVisibility[PortVisibility[\"Visible\"] = 1] = \"Visible\";\n /** Always hides the port */\n PortVisibility[PortVisibility[\"Hidden\"] = 2] = \"Hidden\";\n /** Shows the port when the mouse hovers over a node */\n PortVisibility[PortVisibility[\"Hover\"] = 4] = \"Hover\";\n /** Shows the port when a connection end point is dragged over a node */\n PortVisibility[PortVisibility[\"Connect\"] = 8] = \"Connect\";\n})(PortVisibility || (PortVisibility = {}));\n/**\n * Defines the constraints to Enables / Disables some features of Snapping.\n * None - Snapping does not happen\n * ShowHorizontalLines - Displays only the horizontal gridlines in diagram.\n * ShowVerticalLines - Displays only the Vertical gridlines in diagram.\n * ShowLines - Display both Horizontal and Vertical gridlines.\n * SnapToHorizontalLines - Enables the object to snap only with horizontal gridlines.\n * SnapToVerticalLines - Enables the object to snap only with horizontal gridlines.\n * SnapToLines - Enables the object to snap with both horizontal and Vertical gridlines.\n * snapToObject - Enables the object to snap with the other objects in the diagram.\n *\n * @IgnoreSingular\n * @aspNumberEnum\n */\nexport var SnapConstraints;\n(function (SnapConstraints) {\n /** None - Snapping does not happen */\n SnapConstraints[SnapConstraints[\"None\"] = 0] = \"None\";\n /** ShowHorizontalLines - Displays only the horizontal gridlines in diagram. */\n SnapConstraints[SnapConstraints[\"ShowHorizontalLines\"] = 1] = \"ShowHorizontalLines\";\n /** ShowVerticalLines - Displays only the Vertical gridlines in diagram */\n SnapConstraints[SnapConstraints[\"ShowVerticalLines\"] = 2] = \"ShowVerticalLines\";\n /** ShowLines - Display both Horizontal and Vertical gridlines */\n SnapConstraints[SnapConstraints[\"ShowLines\"] = 3] = \"ShowLines\";\n /** SnapToHorizontalLines - Enables the object to snap only with horizontal gridlines */\n SnapConstraints[SnapConstraints[\"SnapToHorizontalLines\"] = 4] = \"SnapToHorizontalLines\";\n /** SnapToVerticalLines - Enables the object to snap only with horizontal gridlines */\n SnapConstraints[SnapConstraints[\"SnapToVerticalLines\"] = 8] = \"SnapToVerticalLines\";\n /** SnapToLines - Enables the object to snap with both horizontal and Vertical gridlines */\n SnapConstraints[SnapConstraints[\"SnapToLines\"] = 12] = \"SnapToLines\";\n /** SnapToObject - Enables the object to snap with the other objects in the diagram. */\n SnapConstraints[SnapConstraints[\"SnapToObject\"] = 16] = \"SnapToObject\";\n /** Shows gridlines and enables snapping */\n SnapConstraints[SnapConstraints[\"All\"] = 31] = \"All\";\n})(SnapConstraints || (SnapConstraints = {}));\n/**\n * Defines the visibility of the selector handles\n * None - Hides all the selector elements\n * ConnectorSourceThumb - Shows/hides the source thumb of the connector\n * ConnectorTargetThumb - Shows/hides the target thumb of the connector\n * ResizeSouthEast - Shows/hides the bottom right resize handle of the selector\n * ResizeSouthWest - Shows/hides the bottom left resize handle of the selector\n * ResizeNorthEast - Shows/hides the top right resize handle of the selector\n * ResizeNorthWest - Shows/hides the top left resize handle of the selector\n * ResizeEast - Shows/hides the middle right resize handle of the selector\n * ResizeWest - Shows/hides the middle left resize handle of the selector\n * ResizeSouth - Shows/hides the bottom center resize handle of the selector\n * ResizeNorth - Shows/hides the top center resize handle of the selector\n * Rotate - Shows/hides the rotate handle of the selector\n * UserHandles - Shows/hides the user handles of the selector\n * Resize - Shows/hides all resize handles of the selector\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var SelectorConstraints;\n(function (SelectorConstraints) {\n /** Hides all the selector elements */\n SelectorConstraints[SelectorConstraints[\"None\"] = 1] = \"None\";\n /** Shows/hides the source thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorSourceThumb\"] = 2] = \"ConnectorSourceThumb\";\n /** Shows/hides the target thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorTargetThumb\"] = 4] = \"ConnectorTargetThumb\";\n /** Shows/hides the bottom right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthEast\"] = 8] = \"ResizeSouthEast\";\n /** Shows/hides the bottom left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthWest\"] = 16] = \"ResizeSouthWest\";\n /** Shows/hides the top right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthEast\"] = 32] = \"ResizeNorthEast\";\n /** Shows/hides the top left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthWest\"] = 64] = \"ResizeNorthWest\";\n /** Shows/hides the middle right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeEast\"] = 128] = \"ResizeEast\";\n /** Shows/hides the middle left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeWest\"] = 256] = \"ResizeWest\";\n /** Shows/hides the bottom center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouth\"] = 512] = \"ResizeSouth\";\n /** Shows/hides the top center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorth\"] = 1024] = \"ResizeNorth\";\n /** Shows/hides the rotate handle of the selector */\n SelectorConstraints[SelectorConstraints[\"Rotate\"] = 2048] = \"Rotate\";\n /** Shows/hides the user handles of the selector */\n SelectorConstraints[SelectorConstraints[\"UserHandle\"] = 4096] = \"UserHandle\";\n /** Shows/hides the default tooltip of nodes and connectors */\n SelectorConstraints[SelectorConstraints[\"ToolTip\"] = 8192] = \"ToolTip\";\n /** Shows/hides all resize handles of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeAll\"] = 2046] = \"ResizeAll\";\n /** Shows all handles of the selector */\n SelectorConstraints[SelectorConstraints[\"All\"] = 16382] = \"All\";\n})(SelectorConstraints || (SelectorConstraints = {}));\n/**\n * Defines the connection point of the connectors in the layout\n * SamePoint - Connectors will connect with same point in the layout\n * DifferentPoint - Connectors will connect with different points in the layout\n */\nexport var ConnectionPointOrigin;\n(function (ConnectionPointOrigin) {\n /** SamePoint - Connectors will connect with same point in the layout */\n ConnectionPointOrigin[\"SamePoint\"] = \"SamePoint\";\n /** DifferentPoint - Connectors will connect with different points in the layout */\n ConnectionPointOrigin[\"DifferentPoint\"] = \"DifferentPoint\";\n})(ConnectionPointOrigin || (ConnectionPointOrigin = {}));\n/**\n * Defines the child nodes need to arranged in linear manner in layout\n * Linear - Child nodes will be arranged in linear manner\n * Nonlinear - Child nodes will be arranged in not linear manner\n */\nexport var ChildArrangement;\n(function (ChildArrangement) {\n /** Linear - Child nodes will be arranged in linear manner */\n ChildArrangement[\"Linear\"] = \"Linear\";\n /** Nonlinear - Child nodes will be arranged in not linear manner */\n ChildArrangement[\"Nonlinear\"] = \"Nonlinear\";\n})(ChildArrangement || (ChildArrangement = {}));\n/**\n * Defines the constraints to enable/disable certain features of connector.\n * * None - Interaction of the connectors cannot be done.\n * * Select - Selects the connector.\n * * Delete - Delete the connector.\n * * Drag - Drag the connector.\n * * DragSourceEnd - Drag the source end of the connector.\n * * DragTargetEnd - Drag the target end of the connector.\n * * DragSegmentThump - Drag the segment thumb of the connector.\n * * AllowDrop - Allow to drop a node.\n * * Bridging - Creates bridge on intersection of two connectors.\n * * BridgeObstacle -\n * * InheritBridging - Creates bridge on intersection of two connectors.\n * * PointerEvents - Sets the pointer events.\n * * Tooltip - Displays a tooltip for the connectors.\n * * InheritToolTip - Displays a tooltip for the connectors.\n * * Interaction - Features of the connector used for interaction.\n * * ReadOnly - Enables ReadOnly\n * * Default - Default features of the connector.\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var ConnectorConstraints;\n(function (ConnectorConstraints) {\n /** Disable all connector Constraints. */\n ConnectorConstraints[ConnectorConstraints[\"None\"] = 1] = \"None\";\n /** Enables connector to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"Select\"] = 2] = \"Select\";\n /** Enables connector to be Deleted. */\n ConnectorConstraints[ConnectorConstraints[\"Delete\"] = 4] = \"Delete\";\n /** Enables connector to be Dragged. */\n ConnectorConstraints[ConnectorConstraints[\"Drag\"] = 8] = \"Drag\";\n /** Enables connectors source end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragSourceEnd\"] = 16] = \"DragSourceEnd\";\n /** Enables connectors target end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragTargetEnd\"] = 32] = \"DragTargetEnd\";\n /** Enables control point and end point of every segment in a connector for editing. */\n ConnectorConstraints[ConnectorConstraints[\"DragSegmentThumb\"] = 64] = \"DragSegmentThumb\";\n /** Enables AllowDrop constraints to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"AllowDrop\"] = 128] = \"AllowDrop\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"Bridging\"] = 256] = \"Bridging\";\n /** Enables or Disables Bridge Obstacles with overlapping of connectors. */\n ConnectorConstraints[ConnectorConstraints[\"BridgeObstacle\"] = 512] = \"BridgeObstacle\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"InheritBridging\"] = 1024] = \"InheritBridging\";\n /** Used to set the pointer events. */\n ConnectorConstraints[ConnectorConstraints[\"PointerEvents\"] = 2048] = \"PointerEvents\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"Tooltip\"] = 4096] = \"Tooltip\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"InheritTooltip\"] = 8192] = \"InheritTooltip\";\n /** Enables Interaction. */\n ConnectorConstraints[ConnectorConstraints[\"Interaction\"] = 4218] = \"Interaction\";\n /** Enables ReadOnly */\n ConnectorConstraints[ConnectorConstraints[\"ReadOnly\"] = 16384] = \"ReadOnly\";\n /** Enables or disables routing to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"LineRouting\"] = 32768] = \"LineRouting\";\n /** Enables or disables routing to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"InheritLineRouting\"] = 65536] = \"InheritLineRouting\";\n /** Enables or disables near node padding to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"ConnectToNearByNode\"] = 131072] = \"ConnectToNearByNode\";\n /** Enables or disables near port padding to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"ConnectToNearByPort\"] = 262144] = \"ConnectToNearByPort\";\n /** Enables or disables Enables or disables near port and node padding to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"ConnectToNearByElement\"] = 393216] = \"ConnectToNearByElement\";\n /** Enables all constraints. */\n ConnectorConstraints[ConnectorConstraints[\"Default\"] = 470590] = \"Default\";\n})(ConnectorConstraints || (ConnectorConstraints = {}));\n/**\n * Enables/Disables the annotation constraints\n * ReadOnly - Enables/Disables the ReadOnly Constraints\n * InheritReadOnly - Enables/Disables the InheritReadOnly Constraints\n * Select -Enables/Disable select support for the annotation\n * Drag - Enables/Disable drag support for the annotation\n * Resize - Enables/Disable resize support for the annotation\n * Rotate - Enables/Disable rotate support for the annotation\n * Interaction - Enables annotation to inherit the interaction option\n * None - Disable all annotation constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var AnnotationConstraints;\n(function (AnnotationConstraints) {\n /** Enables/Disables the ReadOnly Constraints */\n AnnotationConstraints[AnnotationConstraints[\"ReadOnly\"] = 2] = \"ReadOnly\";\n /** Enables/Disables the InheritReadOnly Constraints */\n AnnotationConstraints[AnnotationConstraints[\"InheritReadOnly\"] = 4] = \"InheritReadOnly\";\n /** Enables/Disable select support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Select\"] = 8] = \"Select\";\n /** Enables/Disable drag support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Drag\"] = 16] = \"Drag\";\n /** Enables/Disable resize support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Resize\"] = 32] = \"Resize\";\n /** Enables/Disable rotate support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Rotate\"] = 64] = \"Rotate\";\n /** Enables annotation to inherit the interaction option */\n AnnotationConstraints[AnnotationConstraints[\"Interaction\"] = 120] = \"Interaction\";\n /** Disable all annotation Constraints */\n AnnotationConstraints[AnnotationConstraints[\"None\"] = 0] = \"None\";\n})(AnnotationConstraints || (AnnotationConstraints = {}));\n/**\n * Enables/Disables certain features of node\n * None - Disable all node Constraints\n * Select - Enables node to be selected\n * Drag - Enables node to be Dragged\n * Rotate - Enables node to be Rotate\n * Shadow - Enables node to display shadow\n * PointerEvents - Enables node to provide pointer option\n * Delete - Enables node to delete\n * InConnect - Enables node to provide in connect option\n * OutConnect - Enables node to provide out connect option\n * Individual - Enables node to provide individual resize option\n * Expandable - Enables node to provide Expandable option\n * AllowDrop - Enables node to provide allow to drop option\n * Inherit - Enables node to inherit the interaction option\n * ResizeNorthEast - Enable ResizeNorthEast of the node\n * ResizeEast - Enable ResizeEast of the node\n * ResizeSouthEast - Enable ResizeSouthEast of the node\n * ResizeSouth - Enable ResizeSouthWest of the node\n * ResizeSouthWest - Enable ResizeSouthWest of the node\n * ResizeSouth - Enable ResizeSouth of the node\n * ResizeSouthWest - Enable ResizeSouthWest of the node\n * ResizeWest - Enable ResizeWest of the node\n * ResizeNorth - Enable ResizeNorth of the node\n * Resize - Enables the Aspect ratio fo the node\n * AspectRatio - Enables the Aspect ratio fo the node\n * Tooltip - Enables or disables tool tip for the Nodes\n * InheritTooltip - Enables or disables tool tip for the Nodes\n * ReadOnly - Enables the ReadOnly support for Annotation\n * Default - Enables all constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var NodeConstraints;\n(function (NodeConstraints) {\n /** Disable all node Constraints. */\n NodeConstraints[NodeConstraints[\"None\"] = 0] = \"None\";\n /** Enables node to be selected. */\n NodeConstraints[NodeConstraints[\"Select\"] = 2] = \"Select\";\n /** Enables node to be Dragged. */\n NodeConstraints[NodeConstraints[\"Drag\"] = 4] = \"Drag\";\n /** Enables node to be Rotate. */\n NodeConstraints[NodeConstraints[\"Rotate\"] = 8] = \"Rotate\";\n /** Enables node to display shadow. */\n NodeConstraints[NodeConstraints[\"Shadow\"] = 16] = \"Shadow\";\n /** Enables node to provide pointer option */\n NodeConstraints[NodeConstraints[\"PointerEvents\"] = 32] = \"PointerEvents\";\n /** Enables node to delete */\n NodeConstraints[NodeConstraints[\"Delete\"] = 64] = \"Delete\";\n /** Enables node to provide in connect option */\n NodeConstraints[NodeConstraints[\"InConnect\"] = 128] = \"InConnect\";\n /** Enables node to provide out connect option */\n NodeConstraints[NodeConstraints[\"OutConnect\"] = 256] = \"OutConnect\";\n /** Enables node to provide individual resize option */\n NodeConstraints[NodeConstraints[\"Individual\"] = 512] = \"Individual\";\n /** Enables node to provide Expandable option */\n NodeConstraints[NodeConstraints[\"Expandable\"] = 1024] = \"Expandable\";\n /** Enables node to provide allow to drop option */\n NodeConstraints[NodeConstraints[\"AllowDrop\"] = 2048] = \"AllowDrop\";\n /** Enables node to inherit the interaction option */\n NodeConstraints[NodeConstraints[\"Inherit\"] = 78] = \"Inherit\";\n /** Enable ResizeNorthEast of the node */\n NodeConstraints[NodeConstraints[\"ResizeNorthEast\"] = 4096] = \"ResizeNorthEast\";\n /** Enable ResizeEast of the node */\n NodeConstraints[NodeConstraints[\"ResizeEast\"] = 8192] = \"ResizeEast\";\n /** Enable ResizeSouthEast of the node */\n NodeConstraints[NodeConstraints[\"ResizeSouthEast\"] = 16384] = \"ResizeSouthEast\";\n /** Enable ResizeSouth of the node */\n NodeConstraints[NodeConstraints[\"ResizeSouth\"] = 32768] = \"ResizeSouth\";\n /** Enable ResizeSouthWest of the node */\n NodeConstraints[NodeConstraints[\"ResizeSouthWest\"] = 65536] = \"ResizeSouthWest\";\n /** Enable ResizeWest of the node */\n NodeConstraints[NodeConstraints[\"ResizeWest\"] = 131072] = \"ResizeWest\";\n /** Enable ResizeNorthWest of the node */\n NodeConstraints[NodeConstraints[\"ResizeNorthWest\"] = 262144] = \"ResizeNorthWest\";\n /** Enable ResizeNorth of the node */\n NodeConstraints[NodeConstraints[\"ResizeNorth\"] = 524288] = \"ResizeNorth\";\n /** Enable Resize of the node */\n NodeConstraints[NodeConstraints[\"Resize\"] = 1044480] = \"Resize\";\n /** Enables the Aspect ratio fo the node */\n NodeConstraints[NodeConstraints[\"AspectRatio\"] = 1048576] = \"AspectRatio\";\n /** Enables or disables tool tip for the Nodes */\n NodeConstraints[NodeConstraints[\"Tooltip\"] = 2097152] = \"Tooltip\";\n /** Enables or disables tool tip for the Nodes */\n NodeConstraints[NodeConstraints[\"InheritTooltip\"] = 4194304] = \"InheritTooltip\";\n /** Enables the ReadOnly support for Annotation */\n NodeConstraints[NodeConstraints[\"ReadOnly\"] = 8388608] = \"ReadOnly\";\n /** hide all resize support for node */\n NodeConstraints[NodeConstraints[\"HideThumbs\"] = 16777216] = \"HideThumbs\";\n /** Enables or disables child in parent for the swimLane node */\n NodeConstraints[NodeConstraints[\"AllowMovingOutsideLane\"] = 33554432] = \"AllowMovingOutsideLane\";\n /** Enables all constraints */\n NodeConstraints[NodeConstraints[\"Default\"] = 5240814] = \"Default\";\n})(NodeConstraints || (NodeConstraints = {}));\n/** Enables/Disables The element actions\n * None - Diables all element actions are none\n * ElementIsPort - Enable element action is port\n * ElementIsGroup - Enable element action as Group\n *\n * @private\n */\nexport var ElementAction;\n(function (ElementAction) {\n /** Disables all element actions are none */\n ElementAction[ElementAction[\"None\"] = 0] = \"None\";\n /** Enable the element action is Port */\n ElementAction[ElementAction[\"ElementIsPort\"] = 2] = \"ElementIsPort\";\n /** Enable the element action as Group */\n ElementAction[ElementAction[\"ElementIsGroup\"] = 4] = \"ElementIsGroup\";\n /** Enable the element action if swimlaneHeader is rendered */\n ElementAction[ElementAction[\"HorizontalLaneHeader\"] = 8] = \"HorizontalLaneHeader\";\n})(ElementAction || (ElementAction = {}));\n/** Enables/Disables the handles of the selector\n * Rotate - Enable Rotate Thumb\n * ConnectorSource - Enable Connector source point\n * ConnectorTarget - Enable Connector target point\n * ResizeNorthEast - Enable ResizeNorthEast Resize\n * ResizeEast - Enable ResizeEast Resize\n * ResizeSouthEast - Enable ResizeSouthEast Resize\n * ResizeSouth - Enable ResizeSouth Resize\n * ResizeSouthWest - Enable ResizeSouthWest Resize\n * ResizeWest - Enable ResizeWest Resize\n * ResizeNorthWest - Enable ResizeNorthWest Resize\n * ResizeNorth - Enable ResizeNorth Resize\n * Default - Enables all constraints\n *\n * @private\n */\nexport var ThumbsConstraints;\n(function (ThumbsConstraints) {\n /** Enable Rotate Thumb */\n ThumbsConstraints[ThumbsConstraints[\"Rotate\"] = 2] = \"Rotate\";\n /** Enable Connector source point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorSource\"] = 4] = \"ConnectorSource\";\n /** Enable Connector target point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorTarget\"] = 8] = \"ConnectorTarget\";\n /** Enable ResizeNorthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthEast\"] = 16] = \"ResizeNorthEast\";\n /** Enable ResizeEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeEast\"] = 32] = \"ResizeEast\";\n /** Enable ResizeSouthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthEast\"] = 64] = \"ResizeSouthEast\";\n /** Enable ResizeSouth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouth\"] = 128] = \"ResizeSouth\";\n /** Enable ResizeSouthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthWest\"] = 256] = \"ResizeSouthWest\";\n /** Enable ResizeWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeWest\"] = 512] = \"ResizeWest\";\n /** Enable ResizeNorthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthWest\"] = 1024] = \"ResizeNorthWest\";\n /** Enable ResizeNorth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorth\"] = 2048] = \"ResizeNorth\";\n /** Enables all constraints */\n ThumbsConstraints[ThumbsConstraints[\"Default\"] = 4094] = \"Default\";\n})(ThumbsConstraints || (ThumbsConstraints = {}));\n/**\n * Enables/Disables certain features of diagram\n * None - Disable DiagramConstraints constraints\n * Bridging - Enables/Disable Bridging support for connector\n * UndoRedo - Enables/Disable the Undo/Redo support\n * Tooltip - Enables/Disable Tooltip support\n * UserInteraction - Enables/Disable UserInteraction support for the diagram\n * ApiUpdate - Enables/Disable ApiUpdate support for the diagram\n * PageEditable - Enables/Disable PageEditable support for the diagram\n * Zoom - Enables/Disable Zoom support for the diagram\n * PanX - Enables/Disable PanX support for the diagram\n * PanY - Enables/Disable PanY support for the diagram\n * Pan - Enables/Disable Pan support the diagram\n * ZoomTextEdit - Enables/Disables zooming the text box while editing the text\n * Virtualization - Enables/Disable Virtualization support the diagram\n * Default - Enables/Disable all constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var DiagramConstraints;\n(function (DiagramConstraints) {\n /** Disable DiagramConstraints constraints */\n DiagramConstraints[DiagramConstraints[\"None\"] = 1] = \"None\";\n /** Enables/Disable Bridging support for connector */\n DiagramConstraints[DiagramConstraints[\"Bridging\"] = 2] = \"Bridging\";\n /** Enables/Disable the Undo/Redo support */\n DiagramConstraints[DiagramConstraints[\"UndoRedo\"] = 4] = \"UndoRedo\";\n /** Enables/Disable Tooltip support */\n DiagramConstraints[DiagramConstraints[\"Tooltip\"] = 8] = \"Tooltip\";\n /** Enables/Disable UserInteraction support for the diagram */\n DiagramConstraints[DiagramConstraints[\"UserInteraction\"] = 16] = \"UserInteraction\";\n /** Enables/Disable ApiUpdate support for the diagram */\n DiagramConstraints[DiagramConstraints[\"ApiUpdate\"] = 32] = \"ApiUpdate\";\n /** Enables/Disable PageEditable support for the diagram */\n DiagramConstraints[DiagramConstraints[\"PageEditable\"] = 48] = \"PageEditable\";\n /** Enables/Disable Zoom support for the diagram */\n DiagramConstraints[DiagramConstraints[\"Zoom\"] = 64] = \"Zoom\";\n /** Enables/Disable PanX support for the diagram */\n DiagramConstraints[DiagramConstraints[\"PanX\"] = 128] = \"PanX\";\n /** Enables/Disable PanY support for the diagram */\n DiagramConstraints[DiagramConstraints[\"PanY\"] = 256] = \"PanY\";\n /** Enables/Disable Pan support the diagram */\n DiagramConstraints[DiagramConstraints[\"Pan\"] = 384] = \"Pan\";\n /** Enables/Disables zooming the text box while editing the text */\n DiagramConstraints[DiagramConstraints[\"ZoomTextEdit\"] = 512] = \"ZoomTextEdit\";\n /** Enables/Disable Virtualization support the diagram */\n DiagramConstraints[DiagramConstraints[\"Virtualization\"] = 1024] = \"Virtualization\";\n /** Enables/ Disable the line routing */\n DiagramConstraints[DiagramConstraints[\"LineRouting\"] = 2048] = \"LineRouting\";\n /** Enables/Disable all constraints */\n DiagramConstraints[DiagramConstraints[\"Default\"] = 500] = \"Default\";\n})(DiagramConstraints || (DiagramConstraints = {}));\n/**\n * Activates the diagram tools\n * None - Enables/Disable single select support for the diagram\n * SingleSelect - Enables/Disable single select support for the diagram\n * MultipleSelect - Enables/Disable MultipleSelect select support for the diagram\n * ZoomPan - Enables/Disable ZoomPan support for the diagram\n * DrawOnce - Enables/Disable continuousDraw support for the diagram\n * ContinuousDraw - Enables/Disable continuousDraw support for the diagram\n * Default - Enables/Disable all constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var DiagramTools;\n(function (DiagramTools) {\n /** Disable all constraints */\n DiagramTools[DiagramTools[\"None\"] = 0] = \"None\";\n /** Enables/Disable single select support for the diagram */\n DiagramTools[DiagramTools[\"SingleSelect\"] = 1] = \"SingleSelect\";\n /** Enables/Disable MultipleSelect select support for the diagram */\n DiagramTools[DiagramTools[\"MultipleSelect\"] = 2] = \"MultipleSelect\";\n /** Enables/Disable ZoomPan support for the diagram */\n DiagramTools[DiagramTools[\"ZoomPan\"] = 4] = \"ZoomPan\";\n /** Enables/Disable DrawOnce support for the diagram */\n DiagramTools[DiagramTools[\"DrawOnce\"] = 8] = \"DrawOnce\";\n /** Enables/Disable continuousDraw support for the diagram */\n DiagramTools[DiagramTools[\"ContinuousDraw\"] = 16] = \"ContinuousDraw\";\n /** Enables/Disable all constraints */\n DiagramTools[DiagramTools[\"Default\"] = 3] = \"Default\";\n})(DiagramTools || (DiagramTools = {}));\n/**\n * Defines the container/canvas transform\n * Self - Sets the transform type as Self\n * Parent - Sets the transform type as Parent\n */\nexport var Transform;\n(function (Transform) {\n /** Self - Sets the transform type as Self */\n Transform[Transform[\"Self\"] = 1] = \"Self\";\n /** Parent - Sets the transform type as Parent */\n Transform[Transform[\"Parent\"] = 2] = \"Parent\";\n})(Transform || (Transform = {}));\n/**\n * Defines the rendering mode for diagram\n * Canvas - Sets the rendering mode type as Canvas\n * Svg - Sets the rendering mode type as Svg\n */\nexport var RenderMode;\n(function (RenderMode) {\n /** Canvas - Sets the rendering mode type as Canvas */\n RenderMode[RenderMode[\"Canvas\"] = 0] = \"Canvas\";\n /** Svg - Sets the rendering mode type as Svg */\n RenderMode[RenderMode[\"Svg\"] = 1] = \"Svg\";\n})(RenderMode || (RenderMode = {}));\n/**\n * Sets a combination of key modifiers, on recognition of which the command will be executed.They are\n * * None - no modifiers are pressed\n * * Control - ctrl key\n * * Meta - meta key im mac\n * * Alt - alt key\n * * Shift - shift key\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var KeyModifiers;\n(function (KeyModifiers) {\n /** No modifiers are pressed */\n KeyModifiers[KeyModifiers[\"None\"] = 0] = \"None\";\n /** The CTRL key */\n KeyModifiers[KeyModifiers[\"Control\"] = 1] = \"Control\";\n /** The Meta key pressed in Mac */\n KeyModifiers[KeyModifiers[\"Meta\"] = 1] = \"Meta\";\n /** The ALT key */\n KeyModifiers[KeyModifiers[\"Alt\"] = 2] = \"Alt\";\n /** The Shift key */\n KeyModifiers[KeyModifiers[\"Shift\"] = 4] = \"Shift\";\n})(KeyModifiers || (KeyModifiers = {}));\n/**\n * Sets the key value, on recognition of which the command will be executed. They are\n * * none - no key\n * * Number0 = The 0 key\n * * Number1 = The 1 key\n * * Number2 = The 2 key\n * * Number3 = The 3 key\n * * Number4 = The 4 key\n * * Number5 = The 5 key\n * * Number6 = The 6 key\n * * Number7 = The 7 key\n * * Number8 = The 8 key\n * * Number9 = The 9 key\n * * Number0 = The 0 key\n * * BackSpace = The BackSpace key\n * * F1 = The f1 key\n * * F2 = The f2 key\n * * F3 = The f3 key\n * * F4 = The f4 key\n * * F5 = The f5 key\n * * F6 = The f6 key\n * * F7 = The f7 key\n * * F8 = The f8 key\n * * F9 = The f9 key\n * * F10 = The f10 key\n * * F11 = The f11 key\n * * F12 = The f12 key\n * * A = The a key\n * * B = The b key\n * * C = The c key\n * * D = The d key\n * * E = The e key\n * * F = The f key\n * * G = The g key\n * * H = The h key\n * * I = The i key\n * * J = The j key\n * * K = The k key\n * * L = The l key\n * * M = The m key\n * * N = The n key\n * * O = The o key\n * * P = The p key\n * * Q = The q key\n * * R = The r key\n * * S = The s key\n * * T = The t key\n * * U = The u key\n * * V = The v key\n * * W = The w key\n * * X = The x key\n * * Y = The y key\n * * Z = The z key\n * * Left = The left key\n * * Right = The right key\n * * Top = The top key\n * * Bottom = The bottom key\n * * Escape = The Escape key\n * * Tab = The tab key\n * * Delete = The delete key\n * * Enter = The enter key\n * * The Space key\n * * The page up key\n * * The page down key\n * * The end key\n * * The home key\n * * The Minus\n * * The Plus\n * * The Star\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var Keys;\n(function (Keys) {\n /** No key pressed */\n Keys[Keys[\"None\"] = null] = \"None\";\n /** The 0 key */\n Keys[Keys[\"Number0\"] = 0] = \"Number0\";\n /** The 1 key */\n Keys[Keys[\"Number1\"] = 1] = \"Number1\";\n /** The 2 key */\n Keys[Keys[\"Number2\"] = 2] = \"Number2\";\n /** The 3 key */\n Keys[Keys[\"Number3\"] = 3] = \"Number3\";\n /** The 4 key */\n Keys[Keys[\"Number4\"] = 4] = \"Number4\";\n /** The 5 key */\n Keys[Keys[\"Number5\"] = 5] = \"Number5\";\n /** The 6 key */\n Keys[Keys[\"Number6\"] = 6] = \"Number6\";\n /** The 7 key */\n Keys[Keys[\"Number7\"] = 7] = \"Number7\";\n /** The 8 key */\n Keys[Keys[\"Number8\"] = 8] = \"Number8\";\n /** The 9 key */\n Keys[Keys[\"Number9\"] = 9] = \"Number9\";\n /** The A key */\n Keys[Keys[\"A\"] = 65] = \"A\";\n /** The B key */\n Keys[Keys[\"B\"] = 66] = \"B\";\n /** The C key */\n Keys[Keys[\"C\"] = 67] = \"C\";\n /** The D key */\n Keys[Keys[\"D\"] = 68] = \"D\";\n /** The E key */\n Keys[Keys[\"E\"] = 69] = \"E\";\n /** The F key */\n Keys[Keys[\"F\"] = 70] = \"F\";\n /** The G key */\n Keys[Keys[\"G\"] = 71] = \"G\";\n /** The H key */\n Keys[Keys[\"H\"] = 72] = \"H\";\n /** The I key */\n Keys[Keys[\"I\"] = 73] = \"I\";\n /** The J key */\n Keys[Keys[\"J\"] = 74] = \"J\";\n /** The K key */\n Keys[Keys[\"K\"] = 75] = \"K\";\n /** The L key */\n Keys[Keys[\"L\"] = 76] = \"L\";\n /** The M key */\n Keys[Keys[\"M\"] = 77] = \"M\";\n /** The N key */\n Keys[Keys[\"N\"] = 78] = \"N\";\n /** The O key */\n Keys[Keys[\"O\"] = 79] = \"O\";\n /** The P key */\n Keys[Keys[\"P\"] = 80] = \"P\";\n /** The Q key */\n Keys[Keys[\"Q\"] = 81] = \"Q\";\n /** The R key */\n Keys[Keys[\"R\"] = 82] = \"R\";\n /** The S key */\n Keys[Keys[\"S\"] = 83] = \"S\";\n /** The T key */\n Keys[Keys[\"T\"] = 84] = \"T\";\n /** The U key */\n Keys[Keys[\"U\"] = 85] = \"U\";\n /** The V key */\n Keys[Keys[\"V\"] = 86] = \"V\";\n /** The W key */\n Keys[Keys[\"W\"] = 87] = \"W\";\n /** The X key */\n Keys[Keys[\"X\"] = 88] = \"X\";\n /** The Y key */\n Keys[Keys[\"Y\"] = 89] = \"Y\";\n /** The Z key */\n Keys[Keys[\"Z\"] = 90] = \"Z\";\n /** The left arrow key */\n Keys[Keys[\"Left\"] = 37] = \"Left\";\n /** The up arrow key */\n Keys[Keys[\"Up\"] = 38] = \"Up\";\n /** The right arrow key */\n Keys[Keys[\"Right\"] = 39] = \"Right\";\n /** The down arrow key */\n Keys[Keys[\"Down\"] = 40] = \"Down\";\n /** The Escape key */\n Keys[Keys[\"Escape\"] = 27] = \"Escape\";\n /** The Space key */\n Keys[Keys[\"Space\"] = 32] = \"Space\";\n /** The page up key */\n Keys[Keys[\"PageUp\"] = 33] = \"PageUp\";\n /** The Space key */\n Keys[Keys[\"PageDown\"] = 34] = \"PageDown\";\n /** The Space key */\n Keys[Keys[\"End\"] = 35] = \"End\";\n /** The Space key */\n Keys[Keys[\"Home\"] = 36] = \"Home\";\n /** The delete key */\n Keys[Keys[\"Delete\"] = 46] = \"Delete\";\n /** The tab key */\n Keys[Keys[\"Tab\"] = 9] = \"Tab\";\n /** The enter key */\n Keys[Keys[\"Enter\"] = 13] = \"Enter\";\n /** The BackSpace key */\n Keys[Keys[\"BackSpace\"] = 8] = \"BackSpace\";\n /** The F1 key */\n Keys[Keys[\"F1\"] = 112] = \"F1\";\n /** The F2 key */\n Keys[Keys[\"F2\"] = 113] = \"F2\";\n /** The F3 key */\n Keys[Keys[\"F3\"] = 114] = \"F3\";\n /** The F4 key */\n Keys[Keys[\"F4\"] = 115] = \"F4\";\n /** The F5 key */\n Keys[Keys[\"F5\"] = 116] = \"F5\";\n /** The F6 key */\n Keys[Keys[\"F6\"] = 117] = \"F6\";\n /** The F7 key */\n Keys[Keys[\"F7\"] = 118] = \"F7\";\n /** The F8 key */\n Keys[Keys[\"F8\"] = 119] = \"F8\";\n /** The F9 key */\n Keys[Keys[\"F9\"] = 120] = \"F9\";\n /** The F10 key */\n Keys[Keys[\"F10\"] = 121] = \"F10\";\n /** The F111 key */\n Keys[Keys[\"F11\"] = 122] = \"F11\";\n /** The F12 key */\n Keys[Keys[\"F12\"] = 123] = \"F12\";\n /** The Star */\n Keys[Keys[\"Star\"] = 56] = \"Star\";\n /** The Plus */\n Keys[Keys[\"Plus\"] = 187] = \"Plus\";\n /** The Minus */\n Keys[Keys[\"Minus\"] = 189] = \"Minus\";\n})(Keys || (Keys = {}));\n/**\n * Enables/Disables certain actions of diagram\n * * Render - Indicates the diagram is in render state.\n * * PublicMethod - Indicates the diagram public method is in action.\n * * ToolAction - Indicates the diagram Tool is in action.\n * * UndoRedo - Indicates the diagram undo/redo is in action.\n * * TextEdit - Indicates the text editing is in progress.\n * * Group - Indicates the group is in progress.\n * * Clear - Indicates diagram have clear all.\n * * PreventClearSelection - prevents diagram from clear selection\n */\nexport var DiagramAction;\n(function (DiagramAction) {\n /** Indicates the diagram is in render state.r */\n DiagramAction[DiagramAction[\"Render\"] = 2] = \"Render\";\n /** Indicates the diagram public method is in action. */\n DiagramAction[DiagramAction[\"PublicMethod\"] = 4] = \"PublicMethod\";\n /** Indicates the diagram Tool is in action. */\n DiagramAction[DiagramAction[\"ToolAction\"] = 8] = \"ToolAction\";\n /** Indicates the diagram undo/redo is in action. */\n DiagramAction[DiagramAction[\"UndoRedo\"] = 16] = \"UndoRedo\";\n /** Indicates the text editing is in progress. */\n DiagramAction[DiagramAction[\"TextEdit\"] = 32] = \"TextEdit\";\n /** Indicates the group is in progress. */\n DiagramAction[DiagramAction[\"Group\"] = 64] = \"Group\";\n /** Indicates diagram have clear all. */\n DiagramAction[DiagramAction[\"Clear\"] = 128] = \"Clear\";\n /** prevents diagram from clear selection. */\n DiagramAction[DiagramAction[\"PreventClearSelection\"] = 256] = \"PreventClearSelection\";\n /** Indicates whether drag or rotate tool has been activated */\n DiagramAction[DiagramAction[\"Interactions\"] = 512] = \"Interactions\";\n /** Use to prevent the history during some action in diagram */\n DiagramAction[DiagramAction[\"PreventHistory\"] = 1024] = \"PreventHistory\";\n /** Use to prevent the icon while expand a node in diagram */\n DiagramAction[DiagramAction[\"PreventIconsUpdate\"] = 2048] = \"PreventIconsUpdate\";\n /** Use to prevent the collection change event while dragging lane from palette and over it in diagram */\n DiagramAction[DiagramAction[\"PreventCollectionChangeOnDragOver\"] = 4096] = \"PreventCollectionChangeOnDragOver\";\n /** Use to prevent the z order on dragging the diagram elements */\n DiagramAction[DiagramAction[\"PreventZIndexOnDragging\"] = 8192] = \"PreventZIndexOnDragging\";\n /** Indicates whether group dragging has been activated */\n DiagramAction[DiagramAction[\"isGroupDragging\"] = 16384] = \"isGroupDragging\";\n /** Indicates whether drag is initiated by mouse */\n DiagramAction[DiagramAction[\"DragUsingMouse\"] = 32768] = \"DragUsingMouse\";\n /** Indicates whether decorator property is changed or not */\n DiagramAction[DiagramAction[\"DecoratorPropertyChange\"] = 65536] = \"DecoratorPropertyChange\";\n /** Avoid dropping of child nodes into the swim lane */\n DiagramAction[DiagramAction[\"PreventLaneContainerUpdate\"] = 131072] = \"PreventLaneContainerUpdate\";\n})(DiagramAction || (DiagramAction = {}));\n/**\n * Defines the Selector type to be drawn\n * None - Draws Normal selector with resize handles\n * Symbol - Draws only the rectangle for the selector\n */\nexport var RendererAction;\n(function (RendererAction) {\n /** None - Draws Normal selector with resize handles */\n RendererAction[RendererAction[\"None\"] = 2] = \"None\";\n /** DrawSelectorBorder - Draws only the Border for the selector */\n RendererAction[RendererAction[\"DrawSelectorBorder\"] = 4] = \"DrawSelectorBorder\";\n /** PreventRenderSelector - Avoid the render of selector during interaction */\n RendererAction[RendererAction[\"PreventRenderSelector\"] = 8] = \"PreventRenderSelector\";\n})(RendererAction || (RendererAction = {}));\nexport var RealAction;\n(function (RealAction) {\n RealAction[RealAction[\"None\"] = 0] = \"None\";\n RealAction[RealAction[\"PreventDrag\"] = 2] = \"PreventDrag\";\n RealAction[RealAction[\"PreventScale\"] = 4] = \"PreventScale\";\n RealAction[RealAction[\"PreventDataInit\"] = 8] = \"PreventDataInit\";\n /** Indicates when the diagram is scrolled horizontal using scroll bar */\n RealAction[RealAction[\"hScrollbarMoved\"] = 16] = \"hScrollbarMoved\";\n /** Indicates when the diagram is scrolled vertical using scroll bar */\n RealAction[RealAction[\"vScrollbarMoved\"] = 32] = \"vScrollbarMoved\";\n /** Indicates whether animation happens or not */\n RealAction[RealAction[\"AnimationClick\"] = 64] = \"AnimationClick\";\n /** Enable the group action */\n RealAction[RealAction[\"EnableGroupAction\"] = 128] = \"EnableGroupAction\";\n /** Indicate action in Progress */\n RealAction[RealAction[\"PanInProgress\"] = 256] = \"PanInProgress\";\n /** Indicate overview action */\n RealAction[RealAction[\"OverViewAction\"] = 512] = \"OverViewAction\";\n})(RealAction || (RealAction = {}));\n/** @private */\nexport var ScrollActions;\n(function (ScrollActions) {\n ScrollActions[ScrollActions[\"None\"] = 0] = \"None\";\n /** Indicates when the scroll properties are changed using property change */\n ScrollActions[ScrollActions[\"PropertyChange\"] = 1024] = \"PropertyChange\";\n /** Indicates when the scroll properties are changed using interaction */\n ScrollActions[ScrollActions[\"Interaction\"] = 2048] = \"Interaction\";\n})(ScrollActions || (ScrollActions = {}));\n/** @private */\nexport var NoOfSegments;\n(function (NoOfSegments) {\n NoOfSegments[NoOfSegments[\"Zero\"] = 0] = \"Zero\";\n NoOfSegments[NoOfSegments[\"One\"] = 1] = \"One\";\n NoOfSegments[NoOfSegments[\"Two\"] = 2] = \"Two\";\n NoOfSegments[NoOfSegments[\"Three\"] = 3] = \"Three\";\n NoOfSegments[NoOfSegments[\"Four\"] = 4] = \"Four\";\n NoOfSegments[NoOfSegments[\"Five\"] = 5] = \"Five\";\n})(NoOfSegments || (NoOfSegments = {}));\n/**\n * events of diagram\n *\n * @private\n */\nexport var DiagramEvent;\n(function (DiagramEvent) {\n DiagramEvent[DiagramEvent[\"collectionChange\"] = 0] = \"collectionChange\";\n DiagramEvent[DiagramEvent[\"rotateChange\"] = 1] = \"rotateChange\";\n DiagramEvent[DiagramEvent[\"positionChange\"] = 2] = \"positionChange\";\n DiagramEvent[DiagramEvent[\"propertyChange\"] = 3] = \"propertyChange\";\n DiagramEvent[DiagramEvent[\"selectionChange\"] = 4] = \"selectionChange\";\n DiagramEvent[DiagramEvent[\"sizeChange\"] = 5] = \"sizeChange\";\n DiagramEvent[DiagramEvent[\"drop\"] = 6] = \"drop\";\n DiagramEvent[DiagramEvent[\"sourcePointChange\"] = 7] = \"sourcePointChange\";\n DiagramEvent[DiagramEvent[\"targetPointChange\"] = 8] = \"targetPointChange\";\n DiagramEvent[DiagramEvent[\"connectionChange\"] = 9] = \"connectionChange\";\n DiagramEvent[DiagramEvent[\"animationComplete\"] = 10] = \"animationComplete\";\n DiagramEvent[DiagramEvent[\"click\"] = 11] = \"click\";\n DiagramEvent[DiagramEvent[\"doubleClick\"] = 12] = \"doubleClick\";\n DiagramEvent[DiagramEvent[\"scrollChange\"] = 13] = \"scrollChange\";\n DiagramEvent[DiagramEvent[\"dragEnter\"] = 14] = \"dragEnter\";\n DiagramEvent[DiagramEvent[\"dragLeave\"] = 15] = \"dragLeave\";\n DiagramEvent[DiagramEvent[\"dragOver\"] = 16] = \"dragOver\";\n DiagramEvent[DiagramEvent[\"textEdit\"] = 17] = \"textEdit\";\n DiagramEvent[DiagramEvent[\"paletteSelectionChange\"] = 18] = \"paletteSelectionChange\";\n DiagramEvent[DiagramEvent[\"historyChange\"] = 19] = \"historyChange\";\n DiagramEvent[DiagramEvent[\"mouseEnter\"] = 20] = \"mouseEnter\";\n DiagramEvent[DiagramEvent[\"mouseLeave\"] = 21] = \"mouseLeave\";\n DiagramEvent[DiagramEvent[\"mouseOver\"] = 22] = \"mouseOver\";\n DiagramEvent[DiagramEvent[\"expandStateChange\"] = 23] = \"expandStateChange\";\n DiagramEvent[DiagramEvent[\"segmentCollectionChange\"] = 24] = \"segmentCollectionChange\";\n DiagramEvent[DiagramEvent[\"commandExecute\"] = 25] = \"commandExecute\";\n DiagramEvent[DiagramEvent[\"historyStateChange\"] = 26] = \"historyStateChange\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseDown\"] = 27] = \"onUserHandleMouseDown\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseUp\"] = 28] = \"onUserHandleMouseUp\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseEnter\"] = 29] = \"onUserHandleMouseEnter\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseLeave\"] = 30] = \"onUserHandleMouseLeave\";\n DiagramEvent[DiagramEvent[\"onImageLoad\"] = 31] = \"onImageLoad\";\n DiagramEvent[DiagramEvent[\"onDoBindingInit\"] = 32] = \"onDoBindingInit\";\n DiagramEvent[DiagramEvent[\"keyUp\"] = 33] = \"keyUp\";\n DiagramEvent[DiagramEvent[\"keyDown\"] = 34] = \"keyDown\";\n DiagramEvent[DiagramEvent[\"fixedUserHandleClick\"] = 35] = \"fixedUserHandleClick\";\n DiagramEvent[DiagramEvent[\"elementDraw\"] = 36] = \"elementDraw\";\n DiagramEvent[DiagramEvent[\"mouseWheel\"] = 37] = \"mouseWheel\";\n DiagramEvent[DiagramEvent[\"segmentChange\"] = 38] = \"segmentChange\";\n})(DiagramEvent || (DiagramEvent = {}));\n/** Enables/Disables certain features of port connection\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var PortConstraints;\n(function (PortConstraints) {\n /** Disable all constraints */\n PortConstraints[PortConstraints[\"None\"] = 1] = \"None\";\n /** Enables connections with connector */\n PortConstraints[PortConstraints[\"Drag\"] = 2] = \"Drag\";\n /** Enables to create the connection when mouse hover on the port */\n PortConstraints[PortConstraints[\"Draw\"] = 4] = \"Draw\";\n /** Enables to only connect the target end of connector */\n PortConstraints[PortConstraints[\"InConnect\"] = 8] = \"InConnect\";\n /** Enables to only connect the source end of connector */\n PortConstraints[PortConstraints[\"OutConnect\"] = 16] = \"OutConnect\";\n /**Enables or disables the Tooltip for the ports*/\n PortConstraints[PortConstraints[\"ToolTip\"] = 32] = \"ToolTip\";\n /** Enables or disables the Tooltip for the ports */\n PortConstraints[PortConstraints[\"InheritTooltip\"] = 64] = \"InheritTooltip\";\n /** Enables all constraints */\n PortConstraints[PortConstraints[\"Default\"] = 24] = \"Default\";\n})(PortConstraints || (PortConstraints = {}));\n/**\n * Defines the context menu click\n * contextMenuClick - Sets the context menu click as contextMenuClick\n */\nexport var contextMenuClick = \n/** contextMenuClick - Sets the context menu click as contextMenuClick */\n'contextMenuClick';\n/**\n * Defines the context menu open\n * contextMenuOpen - Sets the context menu open as contextMenuOpen\n */\nexport var contextMenuOpen = \n/** contextMenuOpen - Sets the context menu open as contextMenuOpen */\n'contextMenuOpen';\n/**\n * Defines the context menu Before Item Render\n * contextMenuBeforeItemRender - Sets the context menu open as contextMenuBeforeItemRender\n */\nexport var contextMenuBeforeItemRender = \n/** contextMenuBeforeItemRender - Sets the context menu open as contextMenuBeforeItemRender */\n'contextMenuBeforeItemRender';\n/**\n * Defines the visibility of the control points in the Bezier connector\n */\nexport var ControlPointsVisibility;\n(function (ControlPointsVisibility) {\n /** None - Hides all the control points of the Bezier connector*/\n ControlPointsVisibility[ControlPointsVisibility[\"None\"] = 1] = \"None\";\n /** Source - Shows the source control point*/\n ControlPointsVisibility[ControlPointsVisibility[\"Source\"] = 2] = \"Source\";\n /** Target - Shows the target control point*/\n ControlPointsVisibility[ControlPointsVisibility[\"Target\"] = 4] = \"Target\";\n /** Intermediate - Shows the intermediate control points*/\n ControlPointsVisibility[ControlPointsVisibility[\"Intermediate\"] = 8] = \"Intermediate\";\n /** All - Shows all the control points of the Bezier connector*/\n ControlPointsVisibility[ControlPointsVisibility[\"All\"] = 14] = \"All\";\n})(ControlPointsVisibility || (ControlPointsVisibility = {}));\nexport var BezierSmoothness;\n(function (BezierSmoothness) {\n /** Disable all smoothness Constraints. */\n BezierSmoothness[BezierSmoothness[\"None\"] = 0] = \"None\";\n /** Enables the SymmetricAngle for a bezier segment to the angle between the control point as same. */\n BezierSmoothness[BezierSmoothness[\"SymmetricAngle\"] = 2] = \"SymmetricAngle\";\n /** Enables the SymmetricDistance for bezier segment to the distance between the control point as same. */\n BezierSmoothness[BezierSmoothness[\"SymmetricDistance\"] = 4] = \"SymmetricDistance\";\n /** Enables the symmetric for bezier segment to the distance and angle between the control point as same. */\n BezierSmoothness[BezierSmoothness[\"Default\"] = 6] = \"Default\";\n})(BezierSmoothness || (BezierSmoothness = {}));\n","import { Transform, ElementAction } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { getBounds } from '../../utility/base-util';\n/**\n * DiagramElement module defines the basic unit of diagram\n */\nvar DiagramElement = /** @class */ (function () {\n function DiagramElement() {\n /**\n * Sets/Gets the reference point of the element\n * ```html\n *
\n * ```\n * ```typescript\n * let stackPanel: StackPanel = new StackPanel();\n * stackPanel.offsetX = 300; stackPanel.offsetY = 200;\n * stackPanel.width = 100; stackPanel.height = 100;\n * stackPanel.style.fill = 'red';\n * stackPanel.pivot = { x: 0.5, y: 0.5 };\n * let diagram: Diagram = new Diagram({\n * ...\n * basicElements: [stackPanel],\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\n this.pivot = { x: 0.5, y: 0.5 };\n /**\n * Sets or gets whether the content of the element needs to be measured\n */\n this.isDirt = true;\n /**\n * set to true during print and eport\n */\n /** @private */\n this.isExport = false;\n /**\n * set scaling value for print and export\n */\n /** @private */\n this.exportScaleValue = { x: 0, y: 0 };\n /**\n * set scaling value for print and export\n */\n /** @private */\n this.exportScaleOffset = { x: 0, y: 0 };\n /**\n * Check whether style need to be apply or not\n */\n /** @private */\n this.canApplyStyle = true;\n /**\n * Sets or gets whether the content of the element to be visible\n */\n this.visible = true;\n /**\n * Sets/Gets the x-coordinate of the element\n */\n this.offsetX = 0;\n /**\n * Sets/Gets the y-coordinate of the element\n */\n this.offsetY = 0;\n /**\n * Set the corner of the element\n */\n this.cornerRadius = 0;\n /**\n * Sets/Gets the minimum height of the element\n */\n this.minHeight = undefined;\n /**\n * Sets/Gets the minimum width of the element\n */\n this.minWidth = undefined;\n /**\n * Sets/Gets the maximum width of the element\n */\n this.maxWidth = undefined;\n /**\n * Sets/Gets the maximum height of the element\n */\n this.maxHeight = undefined;\n /**\n * Sets/Gets the width of the element\n */\n this.width = undefined;\n /**\n * Sets/Gets the height of the element\n */\n this.height = undefined;\n /**\n * Sets/Gets the rotate angle of the element\n */\n this.rotateAngle = 0;\n /**\n * Sets/Gets the margin of the element\n */\n this.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n /**\n * Sets/Gets how the element has to be horizontally arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Left - Aligns the diagram element at the left of its immediate parent\n * * Right - Aligns the diagram element at the right of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.horizontalAlignment = 'Auto';\n /**\n * Sets/Gets how the element has to be vertically arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Top - Aligns the diagram element at the top of its immediate parent\n * * Bottom - Aligns the diagram element at the bottom of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.verticalAlignment = 'Auto';\n /**\n * Sets/Gets the mirror image of diagram element in both horizontal and vertical directions\n * * FlipHorizontal - Translate the diagram element throughout its immediate parent\n * * FlipVertical - Rotate the diagram element throughout its immediate parent\n */\n this.flip = 'None';\n /**\n * Sets whether the element has to be aligned with respect to a point/with respect to its immediate parent\n * * Point - Diagram elements will be aligned with respect to a point\n * * Object - Diagram elements will be aligned with respect to its immediate parent\n */\n this.relativeMode = 'Point';\n /**\n * Sets whether the element has to be transformed based on its parent or not\n * * Self - Sets the transform type as Self\n * * Parent - Sets the transform type as Parent\n */\n this.transform = Transform.Self | Transform.Parent;\n /**\n * Sets the style of the element\n */\n this.style = { fill: 'white', strokeColor: 'black', opacity: 1, strokeWidth: 1 };\n /**\n * Gets the minimum size that is required by the element\n */\n this.desiredSize = new Size();\n /**\n * Gets the size that the element will be rendered\n */\n this.actualSize = new Size();\n /**\n * Gets the rotate angle that is set to the immediate parent of the element\n */\n this.parentTransform = 0;\n /** @private */\n this.preventContainer = false;\n /**\n * Gets/Set the boolean value for the element\n */\n this.isSvgRender = false;\n /**\n * Gets/Sets the boundary of the element\n */\n this.bounds = new Rect(0, 0, 0, 0);\n /**\n * Defines the appearance of the shadow of the element\n */\n this.shadow = null;\n /**\n * Defines the description of the diagram element\n */\n this.description = '';\n /**\n * Defines whether the element has to be measured or not\n */\n this.staticSize = false;\n /**\n * Defines the shape of the diagram element\n */\n this.shapeType = '';\n /**\n * check whether the element is rect or not\n */\n this.isRectElement = false;\n /** @private */\n this.isCalculateDesiredSize = true;\n /**\n * Set the offset values for container in flipping\n */\n /** @private */\n this.flipOffset = { x: 0, y: 0 };\n /**\n * Defines whether the element is group or port\n */\n /** @private */\n this.elementActions = ElementAction.None;\n /** @private */\n this.inversedAlignment = true;\n //private variables\n this.position = undefined;\n this.unitMode = undefined;\n /** @private */\n this.float = false;\n this.floatingBounds = undefined;\n }\n // public constructor() {\n // this.id = randomId();\n // }\n /**\n * Sets the offset of the element with respect to its parent \\\n *\n * @returns { void }Sets the offset of the element with respect to its parent\\\n * @param {number} x - provide the x value.\n * @param {number} y - provide the y value.\n * @param {UnitMode} mode - provide the id value.\n *\n * @private\n */\n DiagramElement.prototype.setOffsetWithRespectToBounds = function (x, y, mode) {\n this.unitMode = mode;\n this.position = { x: x, y: y };\n };\n /**\n * Gets the position of the element with respect to its parent \\\n *\n * @returns { PointModel } Gets the position of the element with respect to its parent\\\n * @param {Size} size - provide the x value.\n *\n * @private\n */\n DiagramElement.prototype.getAbsolutePosition = function (size) {\n if (this.position !== undefined) {\n if (this.unitMode === 'Absolute') {\n return this.position;\n }\n else {\n return {\n x: this.position.x * size.width, y: this.position.y * size.height\n };\n }\n }\n return undefined;\n };\n Object.defineProperty(DiagramElement.prototype, \"outerBounds\", {\n get: function () {\n return this.floatingBounds || this.bounds;\n },\n /**\n * used to set the outer bounds value \\\n *\n * @returns { void } used to set the outer bounds value.\\\n * @param {Rect} bounds - provide the id value.\n *\n * @private\n */\n set: function (bounds) {\n this.floatingBounds = bounds;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures the minimum space that the element requires \\\n *\n * @returns { void } Measures the minimum space that the element requires.\\\n * @param {Size} availableSize - provide the id value.\n * @param {Object} obj - provide the id value.\n * @param {Function} callback - provide the id value.\n *\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n DiagramElement.prototype.measure = function (availableSize, obj, callback) {\n var width = this.width !== undefined ? this.width : (availableSize.width || 0) - this.margin.left - this.margin.right;\n var height = this.height !== undefined ? this.height : (availableSize.height || 0) - this.margin.top - this.margin.bottom;\n if (this.id) {\n if (height === 0 && (this.elementActions & ElementAction.HorizontalLaneHeader)) {\n height = this.actualSize.height;\n }\n }\n this.desiredSize = new Size(width, height);\n if (this.isCalculateDesiredSize) {\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n }\n return this.desiredSize;\n };\n /**\n * Arranges the element \\\n *\n * @returns { PointModel } Arranges the element\\\n * @param {Size} desiredSize - provide the x value.\n *\n * @private\n */\n DiagramElement.prototype.arrange = function (desiredSize) {\n this.actualSize = desiredSize;\n this.updateBounds();\n return this.actualSize;\n };\n /**\n * Updates the bounds of the element \\\n *\n * @returns { void } Updates the bounds of the element\\\n *\n * @private\n */\n DiagramElement.prototype.updateBounds = function () {\n this.bounds = getBounds(this);\n };\n /**\n * Validates the size of the element with respect to its minimum and maximum size \\\n *\n * @returns { Size } Validates the size of the element with respect to its minimum and maximum size.\\\n * @param {Size} desiredSize - provide the id value.\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n DiagramElement.prototype.validateDesiredSize = function (desiredSize, availableSize) {\n //Empty canvas\n if (this.isRectElement && !this.width && !this.minWidth && !this.maxWidth) {\n desiredSize.width = 50;\n }\n if (this.isRectElement && !this.height && !this.minHeight && !this.maxHeight) {\n desiredSize.height = 50;\n }\n if (desiredSize === undefined || this.width !== undefined &&\n this.height !== undefined) {\n desiredSize = desiredSize || new Size();\n desiredSize.width = this.width === undefined ? (availableSize.width || 0)\n - this.margin.left - this.margin.right : this.width;\n desiredSize.height = this.height === undefined ? (availableSize.height || 0)\n - this.margin.top - this.margin.bottom : this.height;\n }\n //Considering min values\n if (this.minWidth !== undefined) {\n desiredSize.width = Math.max(desiredSize.width, this.minWidth);\n }\n if (this.minHeight !== undefined) {\n desiredSize.height = Math.max(desiredSize.height, this.minHeight);\n }\n //Considering max values\n if (this.maxWidth !== undefined && this.maxWidth !== 0) {\n desiredSize.width = Math.min(desiredSize.width, this.maxWidth);\n }\n if (this.maxHeight !== undefined && this.maxHeight !== 0) {\n desiredSize.height = Math.min(desiredSize.height, this.maxHeight);\n }\n return desiredSize;\n };\n return DiagramElement;\n}());\nexport { DiagramElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { DiagramElement } from '../elements/diagram-element';\nimport { ElementAction } from '../../enum/enum';\nimport { Thickness } from '../appearance';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { rotatePoint, getOffset } from '../../utility/base-util';\n/**\n * Container module is used to group related objects\n */\nvar Container = /** @class */ (function (_super) {\n __extends(Container, _super);\n function Container() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Gets/Sets the space between the container and its immediate children\n */\n _this.padding = new Thickness(0, 0, 0, 0);\n //private members\n _this.desiredBounds = undefined;\n /** @private */\n _this.measureChildren = true;\n /** @private */\n _this.prevRotateAngle = 0;\n return _this;\n }\n /**\n * returns whether the container has child elements or not\n */\n Container.prototype.hasChildren = function () {\n if (this.children !== undefined && this.children.length > 0) {\n return true;\n }\n return false;\n };\n /**\n * Measures the minimum space that the container requires\n *\n * @param {Size} availableSize\n * @param {string} id\n * @param {Function} callback\n */\n Container.prototype.measure = function (availableSize, id, callback) {\n // measure the element and find the desired size\n this.desiredBounds = undefined;\n var desired = undefined;\n var child;\n var center = { x: 0, y: 0 };\n var y;\n var x;\n var childBounds;\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[parseInt(i.toString(), 10)];\n if (child.horizontalAlignment === 'Stretch' && !availableSize.width) {\n availableSize.width = child.bounds.width;\n }\n if (child.verticalAlignment === 'Stretch' && !availableSize.height) {\n availableSize.height = child.bounds.height;\n }\n var force = child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch';\n if (this.measureChildren || force || (child instanceof Container && child.measureChildren !== undefined)) {\n child.measure(availableSize, id, callback);\n }\n childBounds = this.GetChildrenBounds(child);\n if (child.horizontalAlignment !== 'Stretch' && child.verticalAlignment !== 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = childBounds;\n }\n else {\n this.desiredBounds.uniteRect(childBounds);\n }\n }\n else if (this.actualSize && !this.actualSize.width && !this.actualSize.height &&\n !child.preventContainer && child.horizontalAlignment === 'Stretch' && child.verticalAlignment === 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = child.bounds;\n }\n else {\n this.desiredBounds.uniteRect(child.bounds);\n }\n }\n }\n if (this.desiredBounds !== undefined && this.rotateAngle !== 0) {\n var offsetPt = {\n x: this.desiredBounds.x + this.desiredBounds.width * this.pivot.x,\n y: this.desiredBounds.y + this.desiredBounds.height * this.pivot.y\n };\n var newPoint = rotatePoint(this.rotateAngle, undefined, undefined, offsetPt);\n this.desiredBounds.x = newPoint.x - this.desiredBounds.width * this.pivot.x;\n this.desiredBounds.y = newPoint.y - this.desiredBounds.height * this.pivot.y;\n }\n /**\n * Adding padding to the group bounds during initial rendering and for the group selection\n */\n if (this.desiredBounds !== undefined) {\n this.desiredBounds.width += this.padding.left + this.padding.right;\n this.desiredBounds.height += this.padding.top + this.padding.bottom;\n this.desiredBounds.x -= this.padding.left;\n this.desiredBounds.y -= this.padding.top;\n }\n if (this.desiredBounds) {\n desired = new Size(this.desiredBounds.width, this.desiredBounds.height);\n }\n }\n desired = this.validateDesiredSize(desired, availableSize);\n this.stretchChildren(desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the container and its children\n *\n * @param {Size} desiredSize - provide the desiredSize value\n */\n Container.prototype.arrange = function (desiredSize) {\n var child;\n var bounds;\n var childBounds = this.desiredBounds;\n if (childBounds) {\n var x = this.offsetX;\n var y = this.offsetY;\n this.offsetX = childBounds.x + childBounds.width * this.pivot.x;\n this.offsetY = childBounds.y + childBounds.height * this.pivot.y;\n // container has rotateAngle\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[parseInt(i.toString(), 10)];\n var arrange = false;\n if (child.horizontalAlignment === 'Stretch') {\n child.offsetX = this.offsetX;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n if (this.flip && (this.elementActions & ElementAction.ElementIsGroup)) {\n child.parentTransform = (this.flip === 'Horizontal' || this.flip === 'Vertical') ?\n -child.parentTransform : child.parentTransform;\n }\n arrange = true;\n }\n if (child.verticalAlignment === 'Stretch') {\n child.offsetY = this.offsetY;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n arrange = true;\n }\n if (arrange || this.measureChildren || (child instanceof Container && child.measureChildren !== undefined)) {\n child.arrange(child.desiredSize);\n //EJ2-839298 - Connector draw cursor is not enabled while hover the group node port\n this.outerBounds = child.outerBounds;\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.prevRotateAngle = this.rotateAngle;\n return desiredSize;\n };\n //protected methods\n /**\n * Stretches the child elements based on the size of the container\n *\n * @param {Size} size - provide the size value\n */\n Container.prototype.stretchChildren = function (size) {\n if (this.hasChildren()) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.horizontalAlignment === 'Stretch' || child.desiredSize.width === undefined) {\n child.desiredSize.width = size.width - child.margin.left - child.margin.right;\n }\n if (child.verticalAlignment === 'Stretch' || child.desiredSize.height === undefined) {\n child.desiredSize.height = size.height - child.margin.top - child.margin.bottom;\n }\n if (child instanceof Container) {\n child.stretchChildren(child.desiredSize);\n }\n }\n }\n };\n /**\n * Considers the padding of the element when measuring its desired size\n * @param {Size} size - provide the size value\n */\n Container.prototype.applyPadding = function (size) {\n size.width += this.padding.left + this.padding.right;\n size.height += this.padding.top + this.padding.bottom;\n };\n /**\n * Finds the offset of the child element with respect to the container\n *\n * @param {DiagramElement} child - provide the child value\n * @param {PointModel} center - provide the center value\n */\n Container.prototype.findChildOffsetFromCenter = function (child, center) {\n var topLeft = { x: center.x - child.desiredSize.width / 2, y: center.y - child.desiredSize.height / 2 };\n var offset = getOffset(topLeft, child);\n //Rotate based on child rotate angle\n offset = rotatePoint(child.rotateAngle, center.x, center.y, offset);\n //Rotate based on parent pivot\n offset = rotatePoint(this.rotateAngle + this.parentTransform, this.offsetX, this.offsetY, offset);\n child.offsetX = offset.x;\n child.offsetY = offset.y;\n };\n //private methods - check its need\n Container.prototype.GetChildrenBounds = function (child) {\n var childBounds;\n var childSize = child.desiredSize.clone();\n var diffAngle = child.rotateAngle - this.rotateAngle;\n var refPoint = { x: child.offsetX, y: child.offsetY };\n var left = refPoint.x - childSize.width * child.pivot.x;\n var top = refPoint.y - childSize.height * child.pivot.y;\n var right = left + childSize.width;\n var bottom = top + childSize.height;\n var topLeft = { x: left, y: top };\n var topRight = { x: right, y: top };\n var bottomLeft = { x: left, y: bottom };\n var bottomRight = { x: right, y: bottom };\n topLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topLeft);\n topRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topRight);\n bottomLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomLeft);\n bottomRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomRight);\n if (this.rotateAngle !== 0) {\n topLeft = rotatePoint(-this.rotateAngle, undefined, undefined, topLeft);\n topRight = rotatePoint(-this.rotateAngle, undefined, undefined, topRight);\n bottomLeft = rotatePoint(-this.rotateAngle, undefined, undefined, bottomLeft);\n bottomRight = rotatePoint(-this.rotateAngle, undefined, undefined, bottomRight);\n }\n return Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n };\n return Container;\n}(DiagramElement));\nexport { Container };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { measureText } from './../../utility/dom-util';\n/**\n * TextElement is used to display text/annotations\n */\nvar TextElement = /** @class */ (function (_super) {\n __extends(TextElement, _super);\n /**\n * set the id for each element\n */\n function TextElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.textContent = '';\n /** @private */\n _this.canMeasure = true;\n /** @private */\n _this.isLaneOrientation = false;\n /** @private */\n _this.canConsiderBounds = true;\n /**\n * sets the hyperlink color to blue\n */\n _this.hyperlink = {\n color: 'blue'\n };\n /** @private */\n _this.doWrap = true;\n _this.textNodes = [];\n /**\n * Defines the appearance of the text element\n */\n _this.style = {\n color: 'black', fill: 'transparent', strokeColor: 'black',\n strokeWidth: 1, fontFamily: 'Arial', fontSize: 12, whiteSpace: 'CollapseSpace',\n textWrapping: 'WrapWithOverflow', textAlign: 'Center', italic: false, bold: false,\n textDecoration: 'None', strokeDashArray: '', opacity: 5, gradient: null,\n textOverflow: 'Wrap'\n };\n _this.style.fill = 'transparent';\n _this.style.strokeColor = 'transparent';\n return _this;\n }\n Object.defineProperty(TextElement.prototype, \"content\", {\n /**\n * gets the content for the text element \\\n *\n * @returns { string | SVGElement } gets the content for the text element.\\\n *\n * @private\n */\n get: function () {\n return this.textContent;\n },\n /**\n * sets the content for the text element \\\n *\n * @returns { void } sets the content for the text element.\\\n * @param {string} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n if (this.textContent !== value) {\n this.textContent = value;\n this.isDirt = true;\n this.doWrap = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"childNodes\", {\n /**\n * gets the content for the text element \\\n *\n * @returns { string | SVGElement } gets the content for the text element.\\\n *\n * @private\n */\n get: function () {\n return this.textNodes;\n },\n /**\n * sets the content for the text element \\\n *\n * @returns { void } sets the content for the text element.\\\n * @param {SubTextElement[]} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.textNodes = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"wrapBounds\", {\n /**\n * gets the wrapBounds for the text \\\n *\n * @returns { string | SVGElement } gets the wrapBounds for the text.\\\n *\n * @private\n */\n get: function () {\n return this.textWrapBounds;\n },\n /**\n * sets the wrapBounds for the text \\\n *\n * @returns { void } sets the wrapBounds for the text.\\\n * @param {TextBounds} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.textWrapBounds = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * sets the wrapBounds for the text \\\n *\n * @returns { void } sets the wrapBounds for the text.\\\n *\n * @private\n */\n TextElement.prototype.refreshTextElement = function () {\n this.isDirt = true;\n };\n /**\n *Measures the minimum size that is required for the text element\\\n *\n * @returns { Size } Measures the minimum size that is required for the text element.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n TextElement.prototype.measure = function (availableSize) {\n var size;\n if (this.isDirt && this.canMeasure) {\n size = measureText(this, this.style, this.content, this.isLaneOrientation ?\n availableSize.height : (this.width || availableSize.width));\n }\n else {\n size = this.desiredSize;\n }\n if (this.width === undefined || this.height === undefined) {\n this.desiredSize = new Size(size.width, size.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the text element\\\n *\n * @returns { Size } Arranges the text element.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n TextElement.prototype.arrange = function (desiredSize) {\n if (desiredSize.width !== this.actualSize.width || desiredSize.height !== this.actualSize.height || this.isDirt) {\n this.doWrap = true;\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n return TextElement;\n}(DiagramElement));\nexport { TextElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\nimport { Container } from './container';\nimport { rotateSize } from '../../utility/base-util';\nimport { Transform, ElementAction } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { TextElement } from '../elements/text-element';\n/**\n * Canvas module is used to define a plane(canvas) and to arrange the children based on margin\n */\nvar Canvas = /** @class */ (function (_super) {\n __extends(Canvas, _super);\n function Canvas() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Not applicable for canvas\n *\n * @private\n */\n _this.measureChildren = undefined;\n return _this;\n }\n /**\n * Measures the minimum space that the canvas requires \\\n *\n * @returns { Size } Measures the minimum space that the canvas requires .\\\n * @param {string} id - provide the id value.\n * @param {Function} callback - provide the Connector value.\n *\n * @private\n */\n Canvas.prototype.measure = function (availableSize, id, callback) {\n var desired = undefined;\n var desiredBounds = undefined;\n if (this.hasChildren()) {\n //Measuring the children\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child instanceof TextElement) {\n if (child.canMeasure) {\n availableSize.width = availableSize.width || this.maxWidth || this.minWidth;\n child.measure(availableSize);\n }\n }\n else if (!(child instanceof TextElement)) {\n child.measure(availableSize, id, callback);\n }\n var childSize = child.desiredSize.clone();\n if (child.rotateAngle !== 0) {\n childSize = rotateSize(childSize, child.rotateAngle);\n }\n var right = childSize.width + child.margin.right;\n var bottom = childSize.height + child.margin.bottom;\n var childBounds = new Rect(child.margin.left, child.margin.top, right, bottom);\n if (child.float) {\n var position = child.getAbsolutePosition(childSize);\n if (position !== undefined) {\n continue;\n }\n }\n if ((!(child instanceof TextElement)) || (child instanceof TextElement && child.canConsiderBounds)) {\n if (desiredBounds === undefined) {\n desiredBounds = childBounds;\n }\n else {\n desiredBounds.uniteRect(childBounds);\n }\n }\n }\n if (desiredBounds) {\n var leftMargin = 0;\n var topMargin = 0;\n leftMargin = Math.max(desiredBounds.left, 0);\n topMargin = Math.max(desiredBounds.top, 0);\n desired = new Size(desiredBounds.width + leftMargin, desiredBounds.height + topMargin);\n }\n }\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n _super.prototype.stretchChildren.call(this, desired);\n //Considering padding values\n desired.width += this.padding.left + this.padding.right;\n desired.height += this.padding.top + this.padding.bottom;\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the child elements of the canvas\n */\n Canvas.prototype.arrange = function (desiredSize, isStack) {\n this.outerBounds = new Rect();\n if (this.hasChildren()) {\n //let y: number;\n //let x: number;\n var y = this.offsetY - desiredSize.height * this.pivot.y + this.padding.top;\n var x = this.offsetX - desiredSize.width * this.pivot.x + this.padding.left;\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if ((child.transform & Transform.Parent) !== 0) {\n child.parentTransform = this.parentTransform + this.rotateAngle;\n if (this.flip !== 'None' || this.elementActions & ElementAction.ElementIsGroup) {\n child.parentTransform = (this.flip === 'Horizontal' || this.flip === 'Vertical') ?\n -child.parentTransform : child.parentTransform;\n }\n var childSize = child.desiredSize.clone();\n var topLeft = void 0;\n var center = { x: 0, y: 0 };\n var childX = x;\n var childY = y;\n if (child.relativeMode === 'Point') {\n var position = child.getAbsolutePosition(desiredSize);\n if (position !== undefined) {\n childX += position.x;\n childY += position.y;\n }\n }\n if (child.relativeMode === 'Object') {\n topLeft = this.alignChildBasedOnParent(child, childSize, desiredSize, childX, childY);\n }\n else {\n topLeft = this.alignChildBasedOnaPoint(child, childX, childY);\n }\n center = { x: topLeft.x + childSize.width / 2, y: topLeft.y + childSize.height / 2 };\n _super.prototype.findChildOffsetFromCenter.call(this, child, center);\n }\n if (isStack && (child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch')) {\n child.arrange(desiredSize);\n }\n else {\n if (child instanceof TextElement && child.canMeasure) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n else if (!(child instanceof TextElement)) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.outerBounds.uniteRect(this.bounds);\n return desiredSize;\n };\n //Aligns the child element based on its parent\n Canvas.prototype.alignChildBasedOnParent = function (child, childSize, parentSize, x, y) {\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x += child.margin.left;\n break;\n case 'Right':\n x += parentSize.width - childSize.width - child.margin.right;\n break;\n case 'Stretch':\n case 'Center':\n x += parentSize.width / 2 - childSize.width / 2;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y += child.margin.top;\n break;\n case 'Bottom':\n y += parentSize.height - childSize.height - child.margin.bottom;\n break;\n case 'Stretch':\n case 'Center':\n y += parentSize.height / 2 - childSize.height / 2;\n break;\n }\n return { x: x, y: y };\n };\n //Aligns the child elements based on a point\n Canvas.prototype.alignChildBasedOnaPoint = function (child, x, y) {\n x += child.margin.left - child.margin.right;\n y += child.margin.top - child.margin.bottom;\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x = child.inversedAlignment ? x : (x - child.desiredSize.width);\n break;\n case 'Stretch':\n case 'Center':\n x -= child.desiredSize.width * child.pivot.x;\n break;\n case 'Right':\n x = child.inversedAlignment ? (x - child.desiredSize.width) : x;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y = child.inversedAlignment ? y : (y - child.desiredSize.height);\n break;\n case 'Stretch':\n case 'Center':\n y -= child.desiredSize.height * child.pivot.y;\n break;\n case 'Bottom':\n y = child.inversedAlignment ? (y - child.desiredSize.height) : y;\n break;\n }\n return { x: x, y: y };\n };\n return Canvas;\n}(Container));\nexport { Canvas };\n","/**\n * BasicShapeDictionary defines the shape of the built-in basic shapes \\\n *\n * @returns { string } BasicShapeDictionary defines the shape of the built-in basic shapes .\\\n * @param {string} shape - provide the element value.\n *\n * @private\n */\nexport function getBasicShape(shape) {\n return basicShapes[shape.toString()];\n}\n// eslint-disable-next-line prefer-const\nvar basicShapes = {\n //Rectangle,\n 'Rectangle': 'M0,0 L50,0 L50,50 L0,50 z',\n //Ellipse,\n 'Ellipse': 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z',\n //Hexagon,\n 'Hexagon': 'M30,0 L60,0 L90,30 L60,60 L30,60 L0,30 L30,0 z',\n //Parallelogram,\n 'Parallelogram': 'M30,0 L60,0 L45,30 L15,30 z',\n //Triangle,\n 'Triangle': 'M45,0 L90,45 L0,45 L45,0 z',\n //Plus,\n 'Plus': 'M696.6084,158.2656 L674.8074,158.2656 L674.8074,136.4656 L658.4084,136.4656 L658.4084,158.2656 L636.6084,158.2656' +\n 'L636.6084,174.6646 L658.4084,174.6646 L658.4084,196.4656 L674.8074,196.4656 L674.8074,174.6646 L696.6084,174.6646' +\n 'L696.6084,158.2656 z',\n //Star,\n 'Star': 'M540.3643,137.9336 L546.7973,159.7016 L570.3633,159.7296 L550.7723,171.9366 L558.9053,194.9966 L540.3643,179.4996' +\n 'L521.8223,194.9966 L529.9553,171.9366 L510.3633,159.7296 L533.9313,159.7016 L540.3643,137.9336 z',\n //Pentagon,\n 'Pentagon': 'M30,0 L60,30 L50,70 L10,70 L0,30 L30,0 z',\n //Heptagon,\n 'Heptagon': 'M223.7783,195.7134 L207.1303,174.8364 L213.0713,148.8034 L237.1303,137.2174 L261.1883,148.8034 L267.1303,174.8364' +\n 'L250.4813,195.7134 L223.7783,195.7134 z',\n //Octagon,\n 'Octagon': 'M98.7319,196.4653 L81.1579,178.8923 L81.1579,154.0393 L98.7319,136.4653 L123.5849,136.4653' +\n 'L141.1579,154.0393 L141.1579,178.8923 L123.5849,196.4653 L98.7319,196.4653 z',\n //Trapezoid,\n 'Trapezoid': 'M127.2842,291.4492 L95.0322,291.4492 L81.1582,256.3152 L141.1582,256.3152 L127.2842,291.4492 z',\n //Decagon,\n 'Decagon': 'M657.3379,302.4141 L642.3369,291.5161 L636.6089,273.8821 L642.3369,256.2481 L657.3379,245.3511 L675.8789,245.3511' +\n 'L690.8789,256.2481 L696.6089,273.8821' +\n 'L690.8789,291.5161 L675.8789,302.4141 L657.3379,302.4141 z',\n //RightTriangle,\n 'RightTriangle': 'M836.293,292.9238 L776.293,292.9238 L776.293,254.8408 L836.293,292.9238 z',\n //Cylinder,\n 'Cylinder': 'M 542.802,362.009C 542.802,368.452 525.341,373.676 503.802,373.676C 482.263,373.676 464.802,368.452 464.802,362.009' +\n 'L 464.802,466.484C 464.802,472.928 482.263,478.151 503.802,478.151' +\n 'C 525.341,478.151 542.802,472.928 542.802,466.484L 542.802,362.016C 542.802,368.459 525.341,373.534 503.802,373.534' +\n 'C 482.263,373.534 464.802,368.31 464.802,361.867' +\n 'L 464.802,362.016C 464.802,355.572 482.263,350.349 503.802,350.349C 525.341,350.349 542.802,355.572 542.802,362.016',\n //Diamond,\n 'Diamond': 'M397.784,287.875 L369.5,316.159 L341.216,287.875 L369.5,259.591 L397.784,287.875 z'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { Rect } from '../../primitives/rect';\nimport { measurePath, findSegmentPoints, translatePoints } from './../../utility/dom-util';\nimport { processPathData, splitArrayCollection, transformPath, getPathString } from '../../utility/path-util';\n/**\n * PathElement takes care of how to align the path based on offsetX and offsetY\n */\nvar PathElement = /** @class */ (function (_super) {\n __extends(PathElement, _super);\n /**\n * set the id for each element\n */\n function PathElement() {\n var _this = _super.call(this) || this;\n /**\n * Gets or sets the geometry of the path element\n */\n _this.pathData = '';\n /**\n * Gets/Sets whether the path has to be transformed to fit the given x,y, width, height\n */\n _this.transformPath = true;\n /**\n * Gets/Sets the equivalent path, that will have the origin as 0,0\n */\n _this.absolutePath = '';\n /** @private */\n _this.canMeasurePath = false;\n //Private variables\n /** @private */\n _this.absoluteBounds = new Rect();\n return _this;\n }\n Object.defineProperty(PathElement.prototype, \"data\", {\n /**\n * Gets the geometry of the path element\\\n *\n * @returns { string | SVGElement } Gets the geometry of the path element.\\\n *\n * @private\n */\n get: function () {\n return this.pathData;\n },\n /**\n * Sets the geometry of the path element \\\n *\n * @returns { void } Sets the geometry of the path element.\\\n * @param {string} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n if (this.pathData !== value) {\n this.pathData = value;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * getPoints methods \\\n *\n * @returns { PointModel[] } Sets the geometry of the path element.\\\n *\n * @private\n */\n PathElement.prototype.getPoints = function () {\n var _this = this;\n if (!this.pointTimer) {\n this.pointTimer = setTimeout(function () {\n _this.points = null;\n _this.pointTimer = null;\n }, 200);\n }\n this.points = this.points || findSegmentPoints(this);\n return translatePoints(this, this.points);\n };\n /**\n * Measures the minimum space that is required to render the element \\\n *\n * @returns { Size } Measures the minimum space that is required to render the element.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n PathElement.prototype.measure = function (availableSize) {\n //Performance issue - Avoiding measuring the connector path\n if (this.staticSize && this.width !== undefined && this.height !== undefined) {\n this.absoluteBounds = new Rect(this.offsetX - this.width * this.pivot.x, this.offsetY - this.height * this.pivot.y, this.width, this.height);\n }\n else if (this.isDirt && (this.transformPath || (this.width === undefined || this.height === undefined))\n && (!this.absoluteBounds || this.absoluteBounds.height === 0) || this.canMeasurePath) {\n //Measure the element only whent the path data is changed/ size is not specified\n this.absoluteBounds = measurePath(this.data ? this.data : '');\n }\n if (this.width === undefined) {\n this.desiredSize = new Size(this.absoluteBounds.width, this.height || this.absoluteBounds.height);\n }\n else if (this.height === undefined) {\n this.desiredSize = new Size(this.width || this.absoluteBounds.width, this.absoluteBounds.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n this.canMeasurePath = false;\n return this.desiredSize;\n };\n /**\n * Arranges the path element \\\n *\n * @returns { Size } Arranges the path element.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n PathElement.prototype.arrange = function (desiredSize) {\n if (this.isDirt || this.actualSize.width !== desiredSize.width || this.actualSize.height !== desiredSize.height) {\n this.isDirt = true;\n this.absolutePath = this.updatePath(this.data, this.absoluteBounds, desiredSize);\n if (!this.staticSize) {\n this.points = null;\n }\n }\n this.actualSize = this.desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n /**\n * Translates the path to 0,0 and scales the path based on the actual size \\\n *\n * @returns { Size } Arranges the path element.\\\n * @param {string} pathData - provide the id value.\n * @param {Rect} bounds - provide the id value.\n * @param {Size} actualSize - provide the id value.\n *\n * @private\n */\n PathElement.prototype.updatePath = function (pathData, bounds, actualSize) {\n var isScale = false;\n var newPathString = '';\n var scaleX = -bounds.x;\n var scaleY = -bounds.y;\n var arrayCollection = [];\n if (actualSize.width !== bounds.width || actualSize.height !== bounds.height) {\n scaleX = actualSize.width / Number(bounds.width ? bounds.width : 1);\n scaleY = actualSize.height / Number(bounds.height ? bounds.height : 1);\n isScale = true;\n }\n arrayCollection = processPathData(pathData);\n arrayCollection = splitArrayCollection(arrayCollection);\n if ((isScale || this.isDirt) && this.transformPath) {\n newPathString = transformPath(arrayCollection, scaleX, scaleY, isScale, bounds.x, bounds.y, 0, 0);\n }\n else {\n newPathString = getPathString(arrayCollection);\n }\n isScale = false;\n return newPathString;\n };\n return PathElement;\n}(DiagramElement));\nexport { PathElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { measureImage } from './../../utility/dom-util';\n/**\n * ImageElement defines a basic image elements\n */\nvar ImageElement = /** @class */ (function (_super) {\n __extends(ImageElement, _super);\n /**\n * set the id for each element\n */\n function ImageElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.imageSource = '';\n /**\n * sets scaling factor of the image\n */\n _this.imageScale = 'None';\n /**\n * sets the alignment of the image\n */\n _this.imageAlign = 'None';\n /**\n * Sets how to stretch the image\n */\n _this.stretch = 'Stretch';\n return _this;\n }\n Object.defineProperty(ImageElement.prototype, \"source\", {\n /**\n * Gets the source for the image element\n */\n /**\n * Gets the source for the image element \\\n *\n * @returns { void }Gets the source for the image element.\\\n *\n * @private\n */\n get: function () {\n return this.imageSource;\n },\n /**\n * Sets the source for the image element \\\n *\n * @returns { void }Sets the source for the image element.\\\n * @param {string} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.imageSource = value;\n this.isDirt = true;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures minimum space that is required to render the image \\\n *\n * @returns { Size }Measures minimum space that is required to render the image.\\\n * @param {Size} availableSize - provide the id value.\n * @param {Object} id - provide the id value.\n * @param {Function} callback - provide the id value.\n *\n * @private\n */\n ImageElement.prototype.measure = function (availableSize, id, callback) {\n if (this.isDirt && (this.stretch !== 'Stretch' || this.width === undefined && this.height === undefined)) {\n this.contentSize = measureImage(this.source, this.contentSize, id, callback);\n this.isDirt = false;\n }\n if (this.width !== undefined && this.height !== undefined) {\n this.desiredSize = new Size(this.width, this.height);\n this.contentSize = this.desiredSize;\n }\n else {\n this.desiredSize = this.contentSize;\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the image\n * @param {Size} desiredSize\n */\n /**\n * Arranges the image \\\n *\n * @returns { Size }Arranges the image.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n ImageElement.prototype.arrange = function (desiredSize) {\n this.actualSize = new Size(this.desiredSize.width, this.desiredSize.height);\n this.updateBounds();\n return this.actualSize;\n };\n return ImageElement;\n}(DiagramElement));\nexport { ImageElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { measureNativeContent, getContent, measureNativeSvg } from './../../utility/dom-util';\n/**\n * NativeElement defines the basic native elements\n */\nvar DiagramNativeElement = /** @class */ (function (_super) {\n __extends(DiagramNativeElement, _super);\n /**\n * set the id for each element \\\n *\n * @returns { void } set the id for each element.\\\n * @param {string} nodeId - provide the id value.\n * @param {string} diagramId - provide the id value.\n *\n * @private\n */\n function DiagramNativeElement(nodeId, diagramId) {\n var _this = _super.call(this) || this;\n _this.data = '';\n /**\n * set the node id\n */\n _this.nodeId = '';\n /**\n * set the diagram id\n */\n _this.diagramId = '';\n /**\n * sets scaling factor of the Native Element\n */\n _this.scale = 'Stretch';\n _this.diagramId = diagramId;\n _this.nodeId = nodeId;\n return _this;\n }\n Object.defineProperty(DiagramNativeElement.prototype, \"content\", {\n /**\n * get the id for each element \\\n *\n * @returns { string | SVGElement } get the id for each element.\\\n *\n * @private\n */\n get: function () {\n return this.data;\n },\n /**\n * sets the geometry of the native element \\\n *\n * @returns { void } sets the geometry of the native element.\\\n * @param {string | SVGElement} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.data = value;\n if (!this.canReset) {\n this.canReset = true;\n this.template = getContent(this, false);\n this.canReset = false;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n *Measures minimum space that is required to render the Native Element \\\n *\n * @returns { Size }Measures minimum space that is required to render the Native Element.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n DiagramNativeElement.prototype.measure = function (availableSize) {\n if (this.isDirt) {\n var rect = measureNativeContent(this.template);\n this.contentSize = new Size();\n this.contentSize.width = rect.width;\n this.contentSize.height = rect.height;\n var x = rect.x;\n var y = rect.y;\n this.templatePosition = { x: x, y: y };\n this.isDirt = false;\n }\n if (this.width === undefined || this.height === undefined) {\n var getAvailableSize = measureNativeSvg(this.template);\n this.desiredSize = new Size(getAvailableSize.width, getAvailableSize.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n *Arranges the Native Element \\\n *\n * @returns { Size }Arranges the Native Element.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DiagramNativeElement.prototype.arrange = function (desiredSize) {\n this.actualSize = new Size(this.desiredSize.width, this.desiredSize.height);\n this.updateBounds();\n return this.actualSize;\n };\n return DiagramNativeElement;\n}(DiagramElement));\nexport { DiagramNativeElement };\n","/**\n * Position library\n */\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nvar elementRect;\nvar popupRect;\nvar element;\nvar parentDocument;\nvar fixedParent = false;\n/**\n *\n * @param {HTMLElement} anchor - specifies the element\n * @param {HTMLElement} element - specifies the element\n * @returns {OffsetPosition} - returns the value\n */\nexport function calculateRelativeBasedPosition(anchor, element) {\n var fixedElement = false;\n var anchorPos = { left: 0, top: 0 };\n var tempAnchor = anchor;\n if (!anchor || !element) {\n return anchorPos;\n }\n if (isNullOrUndefined(element.offsetParent) && element.style.position === 'fixed') {\n fixedElement = true;\n }\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\n anchorPos.left += anchor.offsetLeft;\n anchorPos.top += anchor.offsetTop;\n anchor = anchor.offsetParent;\n }\n anchor = tempAnchor;\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\n anchorPos.left -= anchor.scrollLeft;\n anchorPos.top -= anchor.scrollTop;\n anchor = anchor.parentElement;\n }\n return anchorPos;\n}\n/**\n *\n * @param {Element} currentElement - specifies the element\n * @param {string} positionX - specifies the position\n * @param {string} positionY - specifies the position\n * @param {boolean} parentElement - specifies the boolean\n * @param {ClientRect} targetValues - specifies the client\n * @returns {OffsetPosition} - returns the position\n */\nexport function calculatePosition(currentElement, positionX, positionY, parentElement, targetValues) {\n popupRect = undefined;\n popupRect = targetValues;\n fixedParent = parentElement ? true : false;\n if (!currentElement) {\n return { left: 0, top: 0 };\n }\n if (!positionX) {\n positionX = 'left';\n }\n if (!positionY) {\n positionY = 'top';\n }\n parentDocument = currentElement.ownerDocument;\n element = currentElement;\n var pos = { left: 0, top: 0 };\n return updatePosition(positionX.toLowerCase(), positionY.toLowerCase(), pos);\n}\n/**\n *\n * @param {number} value - specifies the number\n * @param {OffsetPosition} pos - specifies the position\n * @returns {void}\n */\nfunction setPosx(value, pos) {\n pos.left = value;\n}\n/**\n *\n * @param {number} value - specifies the number\n * @param {OffsetPosition} pos - specifies the position\n * @returns {void}\n */\nfunction setPosy(value, pos) {\n pos.top = value;\n}\n/**\n *\n * @param {string} posX - specifies the position\n * @param {string} posY - specifies the position\n * @param {OffsetPosition} pos - specifies the position\n * @returns {OffsetPosition} - returns the postion\n */\nfunction updatePosition(posX, posY, pos) {\n elementRect = element.getBoundingClientRect();\n switch (posY + posX) {\n case 'topcenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementTop(), pos);\n break;\n case 'topright':\n setPosx(getElementRight(), pos);\n setPosy(getElementTop(), pos);\n break;\n case 'centercenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'centerright':\n setPosx(getElementRight(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'centerleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'bottomcenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementBottom(), pos);\n break;\n case 'bottomright':\n setPosx(getElementRight(), pos);\n setPosy(getElementBottom(), pos);\n break;\n case 'bottomleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementBottom(), pos);\n break;\n default:\n case 'topleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementTop(), pos);\n break;\n }\n element = null;\n return pos;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getBodyScrollTop() {\n return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getBodyScrollLeft() {\n return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementBottom() {\n return fixedParent ? elementRect.bottom : elementRect.bottom + getBodyScrollTop();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementVCenter() {\n return getElementTop() + (elementRect.height / 2);\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementTop() {\n return fixedParent ? elementRect.top : elementRect.top + getBodyScrollTop();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementLeft() {\n return elementRect.left + getBodyScrollLeft();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementRight() {\n var popupWidth = (element && element.classList.contains('e-date-range-wrapper')) ? (popupRect ? popupRect.width : 0) :\n (popupRect && (elementRect.width >= popupRect.width) ? popupRect.width : 0);\n return elementRect.right + getBodyScrollLeft() - popupWidth;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementHCenter() {\n return getElementLeft() + (elementRect.width / 2);\n}\n","/**\n * Collision module.\n */\nimport { calculatePosition } from './position';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nvar parentDocument;\nvar targetContainer;\n/**\n *\n * @param {HTMLElement} element - specifies the element\n * @param {HTMLElement} viewPortElement - specifies the element\n * @param {CollisionCoordinates} axis - specifies the collision coordinates\n * @param {OffsetPosition} position - specifies the position\n * @returns {void}\n */\nexport function fit(element, viewPortElement, axis, position) {\n if (viewPortElement === void 0) { viewPortElement = null; }\n if (axis === void 0) { axis = { X: false, Y: false }; }\n if (!axis.Y && !axis.X) {\n return { left: 0, top: 0 };\n }\n var elemData = element.getBoundingClientRect();\n targetContainer = viewPortElement;\n parentDocument = element.ownerDocument;\n if (!position) {\n position = calculatePosition(element, 'left', 'top');\n }\n if (axis.X) {\n var containerWidth = targetContainer ? getTargetContainerWidth() : getViewPortWidth();\n var containerLeft = ContainerLeft();\n var containerRight = ContainerRight();\n var overLeft = containerLeft - position.left;\n var overRight = position.left + elemData.width - containerRight;\n if (elemData.width > containerWidth) {\n if (overLeft > 0 && overRight <= 0) {\n position.left = containerRight - elemData.width;\n }\n else if (overRight > 0 && overLeft <= 0) {\n position.left = containerLeft;\n }\n else {\n position.left = overLeft > overRight ? (containerRight - elemData.width) : containerLeft;\n }\n }\n else if (overLeft > 0) {\n position.left += overLeft;\n }\n else if (overRight > 0) {\n position.left -= overRight;\n }\n }\n if (axis.Y) {\n var containerHeight = targetContainer ? getTargetContainerHeight() : getViewPortHeight();\n var containerTop = ContainerTop();\n var containerBottom = ContainerBottom();\n var overTop = containerTop - position.top;\n var overBottom = position.top + elemData.height - containerBottom;\n if (elemData.height > containerHeight) {\n if (overTop > 0 && overBottom <= 0) {\n position.top = containerBottom - elemData.height;\n }\n else if (overBottom > 0 && overTop <= 0) {\n position.top = containerTop;\n }\n else {\n position.top = overTop > overBottom ? (containerBottom - elemData.height) : containerTop;\n }\n }\n else if (overTop > 0) {\n position.top += overTop;\n }\n else if (overBottom > 0) {\n position.top -= overBottom;\n }\n }\n return position;\n}\n/**\n *\n * @param {HTMLElement} element - specifies the html element\n * @param {HTMLElement} viewPortElement - specifies the html element\n * @param {number} x - specifies the number\n * @param {number} y - specifies the number\n * @returns {string[]} - returns the string value\n */\nexport function isCollide(element, viewPortElement, x, y) {\n if (viewPortElement === void 0) { viewPortElement = null; }\n var elemOffset = calculatePosition(element, 'left', 'top');\n if (x) {\n elemOffset.left = x;\n }\n if (y) {\n elemOffset.top = y;\n }\n var data = [];\n targetContainer = viewPortElement;\n parentDocument = element.ownerDocument;\n var elementRect = element.getBoundingClientRect();\n var top = elemOffset.top;\n var left = elemOffset.left;\n var right = elemOffset.left + elementRect.width;\n var bottom = elemOffset.top + elementRect.height;\n // eslint-disable-next-line\n var topData = '', leftData = '';\n var yAxis = topCollideCheck(top, bottom);\n var xAxis = leftCollideCheck(left, right);\n if (yAxis.topSide) {\n data.push('top');\n }\n if (xAxis.rightSide) {\n data.push('right');\n }\n if (xAxis.leftSide) {\n data.push('left');\n }\n if (yAxis.bottomSide) {\n data.push('bottom');\n }\n return data;\n}\n/**\n *\n * @param {HTMLElement} element - specifies the element\n * @param {HTMLElement} target - specifies the element\n * @param {number} offsetX - specifies the number\n * @param {number} offsetY - specifies the number\n * @param {string} positionX - specifies the string value\n * @param {string} positionY - specifies the string value\n * @param {HTMLElement} viewPortElement - specifies the element\n * @param {CollisionCoordinates} axis - specifies the collision axis\n * @param {boolean} fixedParent - specifies the boolean\n * @returns {void}\n */\nexport function flip(element, target, offsetX, offsetY, positionX, positionY, viewPortElement, \n/* eslint-disable */\naxis, fixedParent) {\n if (viewPortElement === void 0) { viewPortElement = null; }\n if (axis === void 0) { axis = { X: true, Y: true }; }\n if (!target || !element || !positionX || !positionY || (!axis.X && !axis.Y)) {\n return;\n }\n var tEdge = { TL: null,\n TR: null,\n BL: null,\n BR: null\n }, eEdge = {\n TL: null,\n TR: null,\n BL: null,\n BR: null\n /* eslint-enable */\n };\n var elementRect;\n if (window.getComputedStyle(element).display === 'none') {\n var oldVisibility = element.style.visibility;\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n elementRect = element.getBoundingClientRect();\n element.style.removeProperty('display');\n element.style.visibility = oldVisibility;\n }\n else {\n elementRect = element.getBoundingClientRect();\n }\n var pos = {\n posX: positionX, posY: positionY, offsetX: offsetX, offsetY: offsetY, position: { left: 0, top: 0 }\n };\n targetContainer = viewPortElement;\n parentDocument = target.ownerDocument;\n updateElementData(target, tEdge, pos, fixedParent, elementRect);\n setPosition(eEdge, pos, elementRect);\n if (axis.X) {\n leftFlip(target, eEdge, tEdge, pos, elementRect, true);\n }\n if (axis.Y && tEdge.TL.top > -1) {\n topFlip(target, eEdge, tEdge, pos, elementRect, true);\n }\n setPopup(element, pos, elementRect);\n}\n/**\n *\n * @param {HTMLElement} element - specifies the element\n * @param {PositionLocation} pos - specifies the location\n * @param {ClientRect} elementRect - specifies the client rect\n * @returns {void}\n */\nfunction setPopup(element, pos, elementRect) {\n //eslint-disable-next-line\n var left = 0, top = 0;\n if (element.offsetParent != null\n && (getComputedStyle(element.offsetParent).position === 'absolute' ||\n getComputedStyle(element.offsetParent).position === 'relative')) {\n var data = calculatePosition(element.offsetParent, 'left', 'top', false, elementRect);\n left = data.left;\n top = data.top;\n }\n var scaleX = 1;\n var scaleY = 1;\n if (element.offsetParent) {\n var transformStyle = getComputedStyle(element.offsetParent).transform;\n if (transformStyle !== 'none') {\n var matrix = new DOMMatrix(transformStyle);\n scaleX = matrix.a;\n scaleY = matrix.d;\n }\n }\n element.style.top = ((pos.position.top / scaleY) + pos.offsetY - (top)) + 'px';\n element.style.left = ((pos.position.left / scaleX) + pos.offsetX - (left)) + 'px';\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {EdgeOffset} edge - specifies the offset\n * @param {PositionLocation} pos - specifies theloaction\n * @param {boolean} fixedParent - specifies the boolean\n * @param {ClientRect} elementRect - specifies the client rect\n * @returns {void}\n */\nfunction updateElementData(target, edge, pos, fixedParent, elementRect) {\n pos.position = calculatePosition(target, pos.posX, pos.posY, fixedParent, elementRect);\n edge.TL = calculatePosition(target, 'left', 'top', fixedParent, elementRect);\n edge.TR = calculatePosition(target, 'right', 'top', fixedParent, elementRect);\n edge.BR = calculatePosition(target, 'left', 'bottom', fixedParent, elementRect);\n edge.BL = calculatePosition(target, 'right', 'bottom', fixedParent, elementRect);\n}\n/**\n *\n * @param {EdgeOffset} eStatus - specifies the status\n * @param {PositionLocation} pos - specifies the location\n * @param {ClientRect} elementRect - specifies the client\n * @returns {void}\n */\nfunction setPosition(eStatus, pos, elementRect) {\n eStatus.TL = { top: pos.position.top + pos.offsetY, left: pos.position.left + pos.offsetX };\n eStatus.TR = { top: eStatus.TL.top, left: eStatus.TL.left + elementRect.width };\n eStatus.BL = { top: eStatus.TL.top + elementRect.height,\n left: eStatus.TL.left };\n eStatus.BR = { top: eStatus.TL.top + elementRect.height,\n left: eStatus.TL.left + elementRect.width };\n}\n/**\n *\n * @param {number} left - specifies the number\n * @param {number} right - specifies the number\n * @returns {LeftCorners} - returns the value\n */\nfunction leftCollideCheck(left, right) {\n //eslint-disable-next-line\n var leftSide = false, rightSide = false;\n if (((left - getBodyScrollLeft()) < ContainerLeft())) {\n leftSide = true;\n }\n if (right > ContainerRight()) {\n rightSide = true;\n }\n return { leftSide: leftSide, rightSide: rightSide };\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {EdgeOffset} edge - specifes the element\n * @param {EdgeOffset} tEdge - specifies the edge offset\n * @param {PositionLocation} pos - specifes the location\n * @param {ClientRect} elementRect - specifies the client\n * @param {boolean} deepCheck - specifies the boolean value\n * @returns {void}\n */\nfunction leftFlip(target, edge, tEdge, pos, elementRect, deepCheck) {\n var collideSide = leftCollideCheck(edge.TL.left, edge.TR.left);\n if ((tEdge.TL.left - getBodyScrollLeft()) <= ContainerLeft()) {\n collideSide.leftSide = false;\n }\n if (tEdge.TR.left > ContainerRight()) {\n collideSide.rightSide = false;\n }\n if ((collideSide.leftSide && !collideSide.rightSide) || (!collideSide.leftSide && collideSide.rightSide)) {\n if (pos.posX === 'right') {\n pos.posX = 'left';\n }\n else {\n pos.posX = 'right';\n }\n pos.offsetX = pos.offsetX + elementRect.width;\n pos.offsetX = -1 * pos.offsetX;\n pos.position = calculatePosition(target, pos.posX, pos.posY, false);\n setPosition(edge, pos, elementRect);\n if (deepCheck) {\n leftFlip(target, edge, tEdge, pos, elementRect, false);\n }\n }\n}\n/**\n *\n * @param {HTMLElement} target - specifies the element\n * @param {EdgeOffset} edge - specifies the offset\n * @param {EdgeOffset} tEdge - specifies the offset\n * @param {PositionLocation} pos - specifies the location\n * @param {ClientRect} elementRect - specifies the client rect\n * @param {boolean} deepCheck - specifies the boolean\n * @returns {void}\n */\nfunction topFlip(target, edge, tEdge, pos, elementRect, deepCheck) {\n var collideSide = topCollideCheck(edge.TL.top, edge.BL.top);\n if ((tEdge.TL.top - getBodyScrollTop()) <= ContainerTop()) {\n collideSide.topSide = false;\n }\n if (tEdge.BL.top >= ContainerBottom() && target.getBoundingClientRect().bottom < window.innerHeight) {\n collideSide.bottomSide = false;\n }\n if ((collideSide.topSide && !collideSide.bottomSide) || (!collideSide.topSide && collideSide.bottomSide)) {\n if (pos.posY === 'top') {\n pos.posY = 'bottom';\n }\n else {\n pos.posY = 'top';\n }\n pos.offsetY = pos.offsetY + elementRect.height;\n pos.offsetY = -1 * pos.offsetY;\n pos.position = calculatePosition(target, pos.posX, pos.posY, false, elementRect);\n setPosition(edge, pos, elementRect);\n if (deepCheck) {\n topFlip(target, edge, tEdge, pos, elementRect, false);\n }\n }\n}\n/**\n *\n * @param {number} top - specifies the number\n * @param {number} bottom - specifies the number\n * @returns {TopCorners} - retyrns the value\n */\nfunction topCollideCheck(top, bottom) {\n //eslint-disable-next-line\n var topSide = false, bottomSide = false;\n if ((top - getBodyScrollTop()) < ContainerTop()) {\n topSide = true;\n }\n if (bottom > ContainerBottom()) {\n bottomSide = true;\n }\n return { topSide: topSide, bottomSide: bottomSide };\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerWidth() {\n return targetContainer.getBoundingClientRect().width;\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerHeight() {\n return targetContainer.getBoundingClientRect().height;\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerLeft() {\n return targetContainer.getBoundingClientRect().left;\n}\n/**\n * @returns {void}\n */\nfunction getTargetContainerTop() {\n return targetContainer.getBoundingClientRect().top;\n}\n//eslint-disable-next-line\nfunction ContainerTop() {\n if (targetContainer) {\n return getTargetContainerTop();\n }\n return 0;\n}\n//eslint-disable-next-line\nfunction ContainerLeft() {\n if (targetContainer) {\n return getTargetContainerLeft();\n }\n return 0;\n}\n//eslint-disable-next-line\nfunction ContainerRight() {\n if (targetContainer) {\n return (getBodyScrollLeft() + getTargetContainerLeft() + getTargetContainerWidth());\n }\n return (getBodyScrollLeft() + getViewPortWidth());\n}\n//eslint-disable-next-line\nfunction ContainerBottom() {\n if (targetContainer) {\n return (getBodyScrollTop() + getTargetContainerTop() + getTargetContainerHeight());\n }\n return (getBodyScrollTop() + getViewPortHeight());\n}\n/**\n * @returns {void}\n */\nfunction getBodyScrollTop() {\n // if(targetContainer)\n // return targetContainer.scrollTop;\n return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop;\n}\n/**\n * @returns {void}\n */\nfunction getBodyScrollLeft() {\n // if(targetContainer)\n // return targetContainer.scrollLeft;\n return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft;\n}\n/**\n * @returns {void}\n */\nfunction getViewPortHeight() {\n return window.innerHeight;\n}\n/**\n * @returns {void}\n */\nfunction getViewPortWidth() {\n var windowWidth = window.innerWidth;\n var documentReact = document.documentElement.getBoundingClientRect();\n var offsetWidth = (isNullOrUndefined(document.documentElement)) ? 0 : documentReact.width;\n return windowWidth - (windowWidth - offsetWidth);\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { setStyleAttribute, addClass, removeClass, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit } from '@syncfusion/ej2-base';\nimport { Browser } from '@syncfusion/ej2-base';\nimport { calculatePosition, calculateRelativeBasedPosition } from '../common/position';\nimport { Animation, Property, Event, Component } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges } from '@syncfusion/ej2-base';\nimport { EventHandler } from '@syncfusion/ej2-base';\nimport { flip, fit, isCollide } from '../common/collision';\n/**\n * Specifies the offset position values.\n */\nvar PositionData = /** @class */ (function (_super) {\n __extends(PositionData, _super);\n function PositionData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('left')\n ], PositionData.prototype, \"X\", void 0);\n __decorate([\n Property('top')\n ], PositionData.prototype, \"Y\", void 0);\n return PositionData;\n}(ChildProperty));\nexport { PositionData };\n// don't use space in classNames\nvar CLASSNAMES = {\n ROOT: 'e-popup',\n RTL: 'e-rtl',\n OPEN: 'e-popup-open',\n CLOSE: 'e-popup-close'\n};\n/**\n * Represents the Popup Component\n * ```html\n *
\n *
Popup Content
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup(element, options) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Called internally if any of the property value changed.\n *\n * @param {PopupModel} newProp - specifies the new property\n * @param {PopupModel} oldProp - specifies the old property\n * @private\n * @returns {void}\n */\n Popup.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'height':\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'zIndex':\n setStyleAttribute(this.element, { 'zIndex': newProp.zIndex });\n break;\n case 'enableRtl':\n this.setEnableRtl();\n break;\n case 'position':\n case 'relateTo':\n this.refreshPosition();\n break;\n case 'offsetX':\n // eslint-disable-next-line\n var x = newProp.offsetX - oldProp.offsetX;\n this.element.style.left = (parseInt(this.element.style.left, 10) + (x)).toString() + 'px';\n break;\n case 'offsetY':\n // eslint-disable-next-line\n var y = newProp.offsetY - oldProp.offsetY;\n this.element.style.top = (parseInt(this.element.style.top, 10) + (y)).toString() + 'px';\n break;\n case 'content':\n this.setContent();\n break;\n case 'actionOnScroll':\n if (newProp.actionOnScroll !== 'none') {\n this.wireScrollEvents();\n }\n else {\n this.unwireScrollEvents();\n }\n break;\n }\n }\n };\n /**\n * gets the Component module name.\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.getModuleName = function () {\n return 'popup';\n };\n /**\n * To resolve if any collision occurs.\n *\n * @returns {void}\n */\n Popup.prototype.resolveCollision = function () {\n this.checkCollision();\n };\n /**\n * gets the persisted state properties of the Component.\n *\n * @returns {void}\n */\n Popup.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To destroy the control.\n *\n * @returns {void}\n */\n Popup.prototype.destroy = function () {\n if (this.element.classList.contains('e-popup-open')) {\n this.unwireEvents();\n }\n this.element.classList.remove(CLASSNAMES.ROOT, CLASSNAMES.RTL, CLASSNAMES.OPEN, CLASSNAMES.CLOSE);\n this.content = null;\n this.relateTo = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.render = function () {\n this.element.classList.add(CLASSNAMES.ROOT);\n var styles = {};\n if (this.zIndex !== 1000) {\n styles.zIndex = this.zIndex;\n }\n if (this.width !== 'auto') {\n styles.width = formatUnit(this.width);\n }\n if (this.height !== 'auto') {\n styles.height = formatUnit(this.height);\n }\n setStyleAttribute(this.element, styles);\n this.fixedParent = false;\n this.setEnableRtl();\n this.setContent();\n };\n Popup.prototype.wireEvents = function () {\n if (Browser.isDevice) {\n EventHandler.add(window, 'orientationchange', this.orientationOnChange, this);\n }\n if (this.actionOnScroll !== 'none') {\n this.wireScrollEvents();\n }\n };\n Popup.prototype.wireScrollEvents = function () {\n if (this.getRelateToElement()) {\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\n var parent_1 = _a[_i];\n EventHandler.add(parent_1, 'scroll', this.scrollRefresh, this);\n }\n }\n };\n Popup.prototype.unwireEvents = function () {\n if (Browser.isDevice) {\n EventHandler.remove(window, 'orientationchange', this.orientationOnChange);\n }\n if (this.actionOnScroll !== 'none') {\n this.unwireScrollEvents();\n }\n };\n Popup.prototype.unwireScrollEvents = function () {\n if (this.getRelateToElement()) {\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\n var parent_2 = _a[_i];\n EventHandler.remove(parent_2, 'scroll', this.scrollRefresh);\n }\n }\n };\n Popup.prototype.getRelateToElement = function () {\n var relateToElement = this.relateTo === '' || isNullOrUndefined(this.relateTo) ?\n document.body : this.relateTo;\n this.setProperties({ relateTo: relateToElement }, true);\n return ((typeof this.relateTo) === 'string') ?\n document.querySelector(this.relateTo) : this.relateTo;\n };\n Popup.prototype.scrollRefresh = function (e) {\n if (this.actionOnScroll === 'reposition') {\n if (!isNullOrUndefined(this.element) && !(this.element.offsetParent === e.target ||\n (this.element.offsetParent && this.element.offsetParent.tagName === 'BODY' &&\n e.target.parentElement == null))) {\n this.refreshPosition();\n }\n }\n else if (this.actionOnScroll === 'hide') {\n this.hide();\n }\n if (this.actionOnScroll !== 'none') {\n if (this.getRelateToElement()) {\n var targetVisible = this.isElementOnViewport(this.getRelateToElement(), e.target);\n if (!targetVisible && !this.targetInvisibleStatus) {\n this.trigger('targetExitViewport');\n this.targetInvisibleStatus = true;\n }\n else if (targetVisible) {\n this.targetInvisibleStatus = false;\n }\n }\n }\n };\n /**\n * This method is to get the element visibility on viewport when scroll\n * the page. This method will returns true even though 1 px of element\n * part is in visible.\n *\n * @param {HTMLElement} relateToElement - specifies the element\n * @param {HTMLElement} scrollElement - specifies the scroll element\n * @returns {boolean} - retruns the boolean\n */\n // eslint-disable-next-line\n Popup.prototype.isElementOnViewport = function (relateToElement, scrollElement) {\n var scrollParents = this.getScrollableParent(relateToElement);\n for (var parent_3 = 0; parent_3 < scrollParents.length; parent_3++) {\n if (this.isElementVisible(relateToElement, scrollParents[parent_3])) {\n continue;\n }\n else {\n return false;\n }\n }\n return true;\n };\n Popup.prototype.isElementVisible = function (relateToElement, scrollElement) {\n var rect = this.checkGetBoundingClientRect(relateToElement);\n if (!rect.height || !rect.width) {\n return false;\n }\n if (!isNullOrUndefined(this.checkGetBoundingClientRect(scrollElement))) {\n var parent_4 = scrollElement.getBoundingClientRect();\n return !(rect.bottom < parent_4.top) &&\n (!(rect.bottom > parent_4.bottom) &&\n (!(rect.right > parent_4.right) &&\n !(rect.left < parent_4.left)));\n }\n else {\n var win = window;\n var windowView = {\n top: win.scrollY,\n left: win.scrollX,\n right: win.scrollX + win.outerWidth,\n bottom: win.scrollY + win.outerHeight\n };\n var off = calculatePosition(relateToElement);\n var ele = {\n top: off.top,\n left: off.left,\n right: off.left + rect.width,\n bottom: off.top + rect.height\n };\n var elementView = {\n top: windowView.bottom - ele.top,\n left: windowView.right - ele.left,\n bottom: ele.bottom - windowView.top,\n right: ele.right - windowView.left\n };\n return elementView.top > 0\n && elementView.left > 0\n && elementView.right > 0\n && elementView.bottom > 0;\n }\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.preRender = function () {\n //There is no event handler\n };\n Popup.prototype.setEnableRtl = function () {\n this.reposition();\n // eslint-disable-next-line\n this.enableRtl ? this.element.classList.add(CLASSNAMES.RTL) : this.element.classList.remove(CLASSNAMES.RTL);\n };\n Popup.prototype.setContent = function () {\n if (!isNullOrUndefined(this.content)) {\n this.element.innerHTML = '';\n if (typeof (this.content) === 'string') {\n this.element.textContent = this.content;\n }\n else {\n var relateToElem = this.getRelateToElement();\n // eslint-disable-next-line\n var props = this.content.props;\n if (!relateToElem.classList.contains('e-dropdown-btn') || isNullOrUndefined(props)) {\n this.element.appendChild(this.content);\n }\n }\n }\n };\n Popup.prototype.orientationOnChange = function () {\n var _this = this;\n setTimeout(function () {\n _this.refreshPosition();\n }, 200);\n };\n // eslint-disable-next-line\n /**\n * Based on the `relative` element and `offset` values, `Popup` element position will refreshed.\n *\n * @returns {void}\n */\n Popup.prototype.refreshPosition = function (target, collision) {\n if (!isNullOrUndefined(target)) {\n this.checkFixedParent(target);\n }\n this.reposition();\n if (!collision) {\n this.checkCollision();\n }\n };\n Popup.prototype.reposition = function () {\n var pos;\n var position;\n var relateToElement = this.getRelateToElement();\n if (typeof this.position.X === 'number' && typeof this.position.Y === 'number') {\n pos = { left: this.position.X, top: this.position.Y };\n }\n else if ((typeof this.position.X === 'string' && typeof this.position.Y === 'number') ||\n (typeof this.position.X === 'number' && typeof this.position.Y === 'string')) {\n var parentDisplay = void 0;\n var display = this.element.style.display;\n this.element.style.display = 'block';\n if (this.element.classList.contains('e-dlg-modal')) {\n parentDisplay = this.element.parentElement.style.display;\n this.element.parentElement.style.display = 'block';\n }\n position = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY);\n if (typeof this.position.X === 'string') {\n pos = { left: position.left, top: this.position.Y };\n }\n else {\n pos = { left: this.position.X, top: position.top };\n }\n this.element.style.display = display;\n if (this.element.classList.contains('e-dlg-modal')) {\n this.element.parentElement.style.display = parentDisplay;\n }\n }\n else if (relateToElement) {\n var height = this.element.clientHeight;\n var display = this.element.style.display;\n this.element.style.display = 'block';\n pos = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY, height);\n this.element.style.display = display;\n }\n else {\n pos = { left: 0, top: 0 };\n }\n if (!isNullOrUndefined(pos)) {\n this.element.style.left = pos.left + 'px';\n this.element.style.top = pos.top + 'px';\n }\n };\n Popup.prototype.checkGetBoundingClientRect = function (ele) {\n var eleRect;\n try {\n eleRect = ele.getBoundingClientRect();\n return eleRect;\n }\n catch (error) {\n return null;\n }\n };\n Popup.prototype.getAnchorPosition = function (anchorEle, ele, position, offsetX, offsetY, height) {\n if (height === void 0) { height = 0; }\n var eleRect = this.checkGetBoundingClientRect(ele);\n var anchorRect = this.checkGetBoundingClientRect(anchorEle);\n if (isNullOrUndefined(eleRect) || isNullOrUndefined(anchorRect)) {\n return null;\n }\n var anchor = anchorEle;\n var anchorPos = { left: 0, top: 0 };\n if (ele.offsetParent && ele.offsetParent.tagName === 'BODY' && anchorEle.tagName === 'BODY') {\n anchorPos = calculatePosition(anchorEle);\n }\n else {\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName !== 'BODY')) {\n ele = ele.parentElement;\n }\n anchorPos = calculateRelativeBasedPosition(anchor, ele);\n }\n switch (position.X) {\n default:\n case 'left':\n break;\n case 'center':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.left += (window.innerWidth / 2 - eleRect.width / 2);\n }\n else if (this.targetType === 'container') {\n anchorPos.left += (anchorRect.width / 2 - eleRect.width / 2);\n }\n else {\n anchorPos.left += (anchorRect.width / 2);\n }\n break;\n case 'right':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.left += (window.innerWidth - eleRect.width);\n }\n else if (this.targetType === 'container') {\n anchorPos.left += (anchorRect.width - eleRect.width);\n }\n else {\n anchorPos.left += (anchorRect.width);\n }\n break;\n }\n switch (position.Y) {\n default:\n case 'top':\n break;\n case 'center':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.top += (window.innerHeight / 2 - eleRect.height / 2);\n }\n else if (this.targetType === 'container') {\n anchorPos.top += (anchorRect.height / 2 - eleRect.height / 2);\n }\n else {\n anchorPos.top += (anchorRect.height / 2);\n }\n break;\n case 'bottom':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.top += (window.innerHeight - eleRect.height);\n }\n else if (this.targetType === 'container' && !ele.classList.contains('e-dialog')) {\n anchorPos.top += (anchorRect.height - eleRect.height);\n }\n else if (this.targetType === 'container' && ele.classList.contains('e-dialog')) {\n anchorPos.top += (anchorRect.height - height);\n }\n else {\n anchorPos.top += (anchorRect.height);\n }\n break;\n }\n anchorPos.left += offsetX;\n anchorPos.top += offsetY;\n return anchorPos;\n };\n Popup.prototype.callFlip = function (param) {\n var relateToElement = this.getRelateToElement();\n flip(this.element, relateToElement, this.offsetX, this.offsetY, this.position.X, this.position.Y, this.viewPortElement, param, this.fixedParent);\n };\n Popup.prototype.callFit = function (param) {\n if (isCollide(this.element, this.viewPortElement).length !== 0) {\n if (isNullOrUndefined(this.viewPortElement)) {\n var data = fit(this.element, this.viewPortElement, param);\n if (param.X) {\n this.element.style.left = data.left + 'px';\n }\n if (param.Y) {\n this.element.style.top = data.top + 'px';\n }\n }\n else {\n var elementRect = this.checkGetBoundingClientRect(this.element);\n var viewPortRect = this.checkGetBoundingClientRect(this.viewPortElement);\n if (isNullOrUndefined(elementRect) || isNullOrUndefined(viewPortRect)) {\n return null;\n }\n if (param && param.Y === true) {\n if (viewPortRect.top > elementRect.top) {\n this.element.style.top = '0px';\n }\n else if (viewPortRect.bottom < elementRect.bottom) {\n this.element.style.top = parseInt(this.element.style.top, 10) - (elementRect.bottom - viewPortRect.bottom) + 'px';\n }\n }\n if (param && param.X === true) {\n if (viewPortRect.right < elementRect.right) {\n this.element.style.left = parseInt(this.element.style.left, 10) - (elementRect.right - viewPortRect.right) + 'px';\n }\n else if (viewPortRect.left > elementRect.left) {\n this.element.style.left = parseInt(this.element.style.left, 10) + (viewPortRect.left - elementRect.left) + 'px';\n }\n }\n }\n }\n };\n Popup.prototype.checkCollision = function () {\n var horz = this.collision.X;\n var vert = this.collision.Y;\n if (horz === 'none' && vert === 'none') {\n return;\n }\n if (horz === 'flip' && vert === 'flip') {\n this.callFlip({ X: true, Y: true });\n }\n else if (horz === 'fit' && vert === 'fit') {\n this.callFit({ X: true, Y: true });\n }\n else {\n if (horz === 'flip') {\n this.callFlip({ X: true, Y: false });\n }\n else if (vert === 'flip') {\n this.callFlip({ Y: true, X: false });\n }\n if (horz === 'fit') {\n this.callFit({ X: true, Y: false });\n }\n else if (vert === 'fit') {\n this.callFit({ X: false, Y: true });\n }\n }\n };\n /**\n * Shows the popup element from screen.\n *\n * @returns {void}\n * @param {AnimationModel} animationOptions - specifies the model\n * @param { HTMLElement } relativeElement - To calculate the zIndex value dynamically.\n */\n Popup.prototype.show = function (animationOptions, relativeElement) {\n var _this = this;\n var relateToElement = this.getRelateToElement();\n if (relateToElement.classList.contains('e-filemanager')) {\n this.fmDialogContainer = this.element.getElementsByClassName('e-file-select-wrap')[0];\n }\n this.wireEvents();\n if (!isNullOrUndefined(this.fmDialogContainer) && Browser.isIos) {\n this.fmDialogContainer.style.display = 'block';\n }\n if (this.zIndex === 1000 || !isNullOrUndefined(relativeElement)) {\n var zIndexElement = (isNullOrUndefined(relativeElement)) ? this.element : relativeElement;\n this.zIndex = getZindexPartial(zIndexElement);\n setStyleAttribute(this.element, { 'zIndex': this.zIndex });\n }\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\n animationOptions : this.showAnimation;\n if (this.collision.X !== 'none' || this.collision.Y !== 'none') {\n removeClass([this.element], CLASSNAMES.CLOSE);\n addClass([this.element], CLASSNAMES.OPEN);\n this.checkCollision();\n removeClass([this.element], CLASSNAMES.OPEN);\n addClass([this.element], CLASSNAMES.CLOSE);\n }\n if (!isNullOrUndefined(animationOptions)) {\n animationOptions.begin = function () {\n if (!_this.isDestroyed) {\n removeClass([_this.element], CLASSNAMES.CLOSE);\n addClass([_this.element], CLASSNAMES.OPEN);\n }\n };\n animationOptions.end = function () {\n if (!_this.isDestroyed) {\n _this.trigger('open');\n }\n };\n new Animation(animationOptions).animate(this.element);\n }\n else {\n removeClass([this.element], CLASSNAMES.CLOSE);\n addClass([this.element], CLASSNAMES.OPEN);\n this.trigger('open');\n }\n };\n /**\n * Hides the popup element from screen.\n *\n * @param {AnimationModel} animationOptions - To give the animation options.\n * @returns {void}\n */\n Popup.prototype.hide = function (animationOptions) {\n var _this = this;\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\n animationOptions : this.hideAnimation;\n if (!isNullOrUndefined(animationOptions)) {\n animationOptions.end = function () {\n if (!_this.isDestroyed) {\n removeClass([_this.element], CLASSNAMES.OPEN);\n addClass([_this.element], CLASSNAMES.CLOSE);\n _this.trigger('close');\n }\n };\n new Animation(animationOptions).animate(this.element);\n }\n else {\n removeClass([this.element], CLASSNAMES.OPEN);\n addClass([this.element], CLASSNAMES.CLOSE);\n this.trigger('close');\n }\n this.unwireEvents();\n };\n /**\n * Gets scrollable parent elements for the given element.\n *\n * @returns {void}\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\n */\n Popup.prototype.getScrollableParent = function (element) {\n this.checkFixedParent(element);\n return getScrollableParent(element, this.fixedParent);\n };\n Popup.prototype.checkFixedParent = function (element) {\n var parent = element.parentElement;\n while (parent && parent.tagName !== 'HTML') {\n var parentStyle = getComputedStyle(parent);\n if (parentStyle.position === 'fixed' && !isNullOrUndefined(this.element) && this.element.offsetParent &&\n this.element.offsetParent.tagName === 'BODY' && getComputedStyle(this.element.offsetParent).overflow !== 'hidden') {\n this.element.style.top = window.scrollY > parseInt(this.element.style.top, 10) ?\n formatUnit(window.scrollY - parseInt(this.element.style.top, 10))\n : formatUnit(parseInt(this.element.style.top, 10) - window.scrollY);\n this.element.style.position = 'fixed';\n this.fixedParent = true;\n }\n parent = parent.parentElement;\n if (!isNullOrUndefined(this.element) && isNullOrUndefined(this.element.offsetParent) && parentStyle.position === 'fixed'\n && this.element.style.position === 'fixed') {\n this.fixedParent = true;\n }\n }\n };\n __decorate([\n Property('auto')\n ], Popup.prototype, \"height\", void 0);\n __decorate([\n Property('auto')\n ], Popup.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"content\", void 0);\n __decorate([\n Property('container')\n ], Popup.prototype, \"targetType\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"viewPortElement\", void 0);\n __decorate([\n Property({ X: 'none', Y: 'none' })\n ], Popup.prototype, \"collision\", void 0);\n __decorate([\n Property('')\n ], Popup.prototype, \"relateTo\", void 0);\n __decorate([\n Complex({}, PositionData)\n ], Popup.prototype, \"position\", void 0);\n __decorate([\n Property(0)\n ], Popup.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Popup.prototype, \"offsetY\", void 0);\n __decorate([\n Property(1000)\n ], Popup.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], Popup.prototype, \"enableRtl\", void 0);\n __decorate([\n Property('reposition')\n ], Popup.prototype, \"actionOnScroll\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"showAnimation\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"hideAnimation\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"targetExitViewport\", void 0);\n Popup = __decorate([\n NotifyPropertyChanges\n ], Popup);\n return Popup;\n}(Component));\nexport { Popup };\n/**\n * Gets scrollable parent elements for the given element.\n *\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\n * @param {boolean} fixedParent - specifies the parent element\n * @private\n * @returns {void}\n */\nexport function getScrollableParent(element, fixedParent) {\n var eleStyle = getComputedStyle(element);\n var scrollParents = [];\n var overflowRegex = /(auto|scroll)/;\n var parent = element.parentElement;\n while (parent && parent.tagName !== 'HTML') {\n var parentStyle = getComputedStyle(parent);\n if (!(eleStyle.position === 'absolute' && parentStyle.position === 'static')\n && overflowRegex.test(parentStyle.overflow + parentStyle.overflowY + parentStyle.overflowX)) {\n scrollParents.push(parent);\n }\n parent = parent.parentElement;\n }\n if (!fixedParent) {\n scrollParents.push(document);\n }\n return scrollParents;\n}\n/**\n * Gets the maximum z-index of the given element.\n *\n * @returns {void}\n * @param { HTMLElement } element - Specify the element to get the maximum z-index of it.\n * @private\n */\nexport function getZindexPartial(element) {\n // upto body traversal\n var parent = element.parentElement;\n var parentZindex = [];\n while (parent) {\n if (parent.tagName !== 'BODY') {\n var index = document.defaultView.getComputedStyle(parent, null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(parent, null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n parentZindex.push(index);\n }\n parent = parent.parentElement;\n }\n else {\n break;\n }\n }\n var childrenZindex = [];\n for (var i = 0; i < document.body.children.length; i++) {\n if (!element.isEqualNode(document.body.children[i])) {\n var index = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n childrenZindex.push(index);\n }\n }\n }\n childrenZindex.push('999');\n var siblingsZindex = [];\n if (!isNullOrUndefined(element.parentElement) && element.parentElement.tagName !== 'BODY') {\n var childNodes = [].slice.call(element.parentElement.children);\n for (var i = 0; i < childNodes.length; i++) {\n if (!element.isEqualNode(childNodes[i])) {\n var index = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n siblingsZindex.push(index);\n }\n }\n }\n }\n var finalValue = parentZindex.concat(childrenZindex, siblingsZindex);\n // eslint-disable-next-line\n var currentZindexValue = Math.max.apply(Math, finalValue) + 1;\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\n}\n/**\n * Gets the maximum z-index of the page.\n *\n * @returns {void}\n * @param { HTMLElement } tagName - Specify the tagName to get the maximum z-index of it.\n * @private\n */\nexport function getMaxZindex(tagName) {\n if (tagName === void 0) { tagName = ['*']; }\n var maxZindex = [];\n for (var i = 0; i < tagName.length; i++) {\n var elements = document.getElementsByTagName(tagName[i]);\n for (var i_1 = 0; i_1 < elements.length; i_1++) {\n var index = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n maxZindex.push(index);\n }\n }\n }\n // eslint-disable-next-line\n var currentZindexValue = Math.max.apply(Math, maxZindex) + 1;\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, Event, append, compile } from '@syncfusion/ej2-base';\nimport { EventHandler, Touch, Browser, Animation as PopupAnimation } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, getUniqueID, formatUnit, select, selectAll } from '@syncfusion/ej2-base';\nimport { attributes, closest, removeClass, addClass, remove } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Complex, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { Popup } from '../popup/popup';\nimport { calculatePosition } from '../common/position';\nimport { isCollide, fit } from '../common/collision';\nvar TOUCHEND_HIDE_DELAY = 1500;\nvar TAPHOLD_THRESHOLD = 500;\nvar SHOW_POINTER_TIP_GAP = 0;\nvar HIDE_POINTER_TIP_GAP = 8;\nvar MOUSE_TRAIL_GAP = 2;\nvar POINTER_ADJUST = 2;\nvar ROOT = 'e-tooltip';\nvar RTL = 'e-rtl';\nvar DEVICE = 'e-bigger';\nvar ICON = 'e-icons';\nvar CLOSE = 'e-tooltip-close';\nvar TOOLTIP_WRAP = 'e-tooltip-wrap';\nvar CONTENT = 'e-tip-content';\nvar ARROW_TIP = 'e-arrow-tip';\nvar ARROW_TIP_OUTER = 'e-arrow-tip-outer';\nvar ARROW_TIP_INNER = 'e-arrow-tip-inner';\nvar TIP_BOTTOM = 'e-tip-bottom';\nvar TIP_TOP = 'e-tip-top';\nvar TIP_LEFT = 'e-tip-left';\nvar TIP_RIGHT = 'e-tip-right';\nvar POPUP_ROOT = 'e-popup';\nvar POPUP_OPEN = 'e-popup-open';\nvar POPUP_CLOSE = 'e-popup-close';\nvar POPUP_LIB = 'e-lib';\nvar HIDE_POPUP = 'e-hidden';\nvar POPUP_CONTAINER = 'e-tooltip-popup-container';\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ effect: 'FadeIn', duration: 150, delay: 0 })\n ], Animation.prototype, \"open\", void 0);\n __decorate([\n Property({ effect: 'FadeOut', duration: 150, delay: 0 })\n ], Animation.prototype, \"close\", void 0);\n return Animation;\n}(ChildProperty));\nexport { Animation };\n/**\n * Represents the Tooltip component that displays a piece of information about the target element on mouse hover.\n * ```html\n *
Show Tooltip
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Tooltip = /** @class */ (function (_super) {\n __extends(Tooltip, _super);\n /* eslint-enable */\n /**\n * Constructor for creating the Tooltip Component\n *\n * @param {TooltipModel} options - specifies the options for the constructor\n * @param {string| HTMLElement} element - specifies the element for the constructor\n *\n */\n function Tooltip(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseMoveEvent = null;\n _this.mouseMoveTarget = null;\n _this.containerElement = null;\n _this.isBodyContainer = true;\n return _this;\n }\n Tooltip.prototype.initialize = function () {\n this.formatPosition();\n addClass([this.element], ROOT);\n };\n Tooltip.prototype.formatPosition = function () {\n var _a, _b;\n if (this.position.indexOf('Top') === 0 || this.position.indexOf('Bottom') === 0) {\n _a = this.position.split(/(?=[A-Z])/), this.tooltipPositionY = _a[0], this.tooltipPositionX = _a[1];\n }\n else {\n _b = this.position.split(/(?=[A-Z])/), this.tooltipPositionX = _b[0], this.tooltipPositionY = _b[1];\n }\n };\n Tooltip.prototype.renderArrow = function () {\n this.setTipClass(this.position);\n var tip = this.createElement('div', { className: ARROW_TIP + ' ' + this.tipClass });\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_OUTER + ' ' + this.tipClass }));\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_INNER + ' ' + this.tipClass }));\n this.tooltipEle.appendChild(tip);\n };\n Tooltip.prototype.setTipClass = function (position) {\n if (position.indexOf('Right') === 0) {\n this.tipClass = TIP_LEFT;\n }\n else if (position.indexOf('Bottom') === 0) {\n this.tipClass = TIP_TOP;\n }\n else if (position.indexOf('Left') === 0) {\n this.tipClass = TIP_RIGHT;\n }\n else {\n this.tipClass = TIP_BOTTOM;\n }\n };\n Tooltip.prototype.renderPopup = function (target) {\n var elePos = this.mouseTrail ? { top: 0, left: 0 } : this.getTooltipPosition(target);\n this.tooltipEle.classList.remove(POPUP_LIB);\n this.popupObj = new Popup(this.tooltipEle, {\n height: this.height,\n width: this.width,\n position: { X: elePos.left, Y: elePos.top },\n enableRtl: this.enableRtl,\n open: this.openPopupHandler.bind(this),\n close: this.closePopupHandler.bind(this)\n });\n };\n Tooltip.prototype.getScalingFactor = function (element) {\n if (element) {\n var xScalingFactor = element.getBoundingClientRect().width / element.offsetWidth;\n var yScalingFactor = element.getBoundingClientRect().height / element.offsetHeight;\n return { x: xScalingFactor, y: yScalingFactor };\n }\n else {\n return { x: 1, y: 1 };\n }\n };\n Tooltip.prototype.getTooltipPosition = function (target) {\n this.tooltipEle.style.display = 'block';\n var parentWithZoomStyle = this.element.closest('[style*=\"zoom\"]');\n if (parentWithZoomStyle) {\n if (!parentWithZoomStyle.contains(this.tooltipEle)) {\n this.tooltipEle.style.zoom = getComputedStyle(parentWithZoomStyle).zoom;\n }\n }\n var pos = calculatePosition(target, this.tooltipPositionX, this.tooltipPositionY, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect());\n var scalingFactors = this.getScalingFactor(target);\n var offsetPos = this.calculateTooltipOffset(this.position, scalingFactors.x, scalingFactors.y);\n var collisionPosition = this.calculateElementPosition(pos, offsetPos);\n var collisionLeft = collisionPosition[0];\n var collisionTop = collisionPosition[1];\n var elePos = this.collisionFlipFit(target, collisionLeft, collisionTop);\n elePos.left = elePos.left / scalingFactors.x;\n elePos.top = elePos.top / scalingFactors.y;\n this.tooltipEle.style.display = '';\n return elePos;\n };\n Tooltip.prototype.windowResize = function () {\n this.reposition(this.findTarget());\n };\n Tooltip.prototype.reposition = function (target) {\n if (this.popupObj && target) {\n var elePos = this.getTooltipPosition(target);\n this.popupObj.position = { X: elePos.left, Y: elePos.top };\n this.popupObj.dataBind();\n }\n };\n Tooltip.prototype.openPopupHandler = function () {\n if (!this.mouseTrail && this.needTemplateReposition()) {\n this.reposition(this.findTarget());\n }\n this.trigger('afterOpen', this.tooltipEventArgs);\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.closePopupHandler = function () {\n if (this.isReact && !(this.opensOn === 'Click' && typeof (this.content) === 'function')) {\n this.clearTemplate(['content']);\n }\n this.clear();\n this.trigger('afterClose', this.tooltipEventArgs);\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.calculateTooltipOffset = function (position, xScalingFactor, yScalingFactor) {\n if (xScalingFactor === void 0) { xScalingFactor = 1; }\n if (yScalingFactor === void 0) { yScalingFactor = 1; }\n var pos = { top: 0, left: 0 };\n var tipWidth, tipHeight, tooltipEleWidth, tooltipEleHeight, arrowEle;\n var tipAdjust, tipHeightAdjust, tipWidthAdjust;\n if (xScalingFactor != 1 || yScalingFactor != 1) {\n var tooltipEleRect = this.tooltipEle.getBoundingClientRect();\n var arrowEleRect = void 0;\n tooltipEleWidth = Math.round(tooltipEleRect.width);\n tooltipEleHeight = Math.round(tooltipEleRect.height);\n arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n if (arrowEle) {\n arrowEleRect = arrowEle.getBoundingClientRect();\n }\n tipWidth = arrowEle ? Math.round(arrowEleRect.width) : 0;\n tipHeight = arrowEle ? Math.round(arrowEleRect.height) : 0;\n tipAdjust = (this.showTipPointer ? SHOW_POINTER_TIP_GAP : HIDE_POINTER_TIP_GAP);\n tipHeightAdjust = (tipHeight / 2) + POINTER_ADJUST + (tooltipEleHeight - (this.tooltipEle.clientHeight * yScalingFactor));\n tipWidthAdjust = (tipWidth / 2) + POINTER_ADJUST + (tooltipEleWidth - (this.tooltipEle.clientWidth * xScalingFactor));\n }\n else {\n tooltipEleWidth = this.tooltipEle.offsetWidth;\n tooltipEleHeight = this.tooltipEle.offsetHeight;\n arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n tipWidth = arrowEle ? arrowEle.offsetWidth : 0;\n tipHeight = arrowEle ? arrowEle.offsetHeight : 0;\n tipAdjust = (this.showTipPointer ? SHOW_POINTER_TIP_GAP : HIDE_POINTER_TIP_GAP);\n tipHeightAdjust = (tipHeight / 2) + POINTER_ADJUST + (this.tooltipEle.offsetHeight - this.tooltipEle.clientHeight);\n tipWidthAdjust = (tipWidth / 2) + POINTER_ADJUST + (this.tooltipEle.offsetWidth - this.tooltipEle.clientWidth);\n }\n if (this.mouseTrail) {\n tipAdjust += MOUSE_TRAIL_GAP;\n }\n switch (position) {\n case 'RightTop':\n pos.left += tipWidth + tipAdjust;\n pos.top -= tooltipEleHeight - tipHeightAdjust;\n break;\n case 'RightCenter':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'RightBottom':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tipHeightAdjust);\n break;\n case 'BottomRight':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n case 'BottomCenter':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n case 'BottomLeft':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'LeftBottom':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tipHeightAdjust);\n break;\n case 'LeftCenter':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'LeftTop':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight - tipHeightAdjust);\n break;\n case 'TopLeft':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'TopRight':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n default:\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n }\n pos.left += this.offsetX;\n pos.top += this.offsetY;\n return pos;\n };\n Tooltip.prototype.updateTipPosition = function (position) {\n var selEle = selectAll('.' + ARROW_TIP + ',.' + ARROW_TIP_OUTER + ',.' + ARROW_TIP_INNER, this.tooltipEle);\n var removeList = [TIP_BOTTOM, TIP_TOP, TIP_LEFT, TIP_RIGHT];\n removeClass(selEle, removeList);\n this.setTipClass(position);\n addClass(selEle, this.tipClass);\n };\n Tooltip.prototype.adjustArrow = function (target, position, tooltipPositionX, tooltipPositionY) {\n if (this.showTipPointer === false) {\n return;\n }\n this.updateTipPosition(position);\n var leftValue;\n var topValue;\n this.tooltipEle.style.display = 'block';\n var tooltipWidth = this.tooltipEle.clientWidth;\n var tooltipHeight = this.tooltipEle.clientHeight;\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\n var tipWidth = arrowEle.offsetWidth;\n var tipHeight = arrowEle.offsetHeight;\n this.tooltipEle.style.display = '';\n if (this.tipClass === TIP_BOTTOM || this.tipClass === TIP_TOP) {\n if (this.tipClass === TIP_BOTTOM) {\n topValue = '99.9%';\n // Arrow icon aligned -2px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 2) + 'px';\n }\n else {\n topValue = -(tipHeight - 1) + 'px';\n // Arrow icon aligned -6px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 6) + 'px';\n }\n if (target) {\n var tipPosExclude = tooltipPositionX !== 'Center' || (tooltipWidth > target.offsetWidth) || this.mouseTrail;\n if ((tipPosExclude && tooltipPositionX === 'Left') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n leftValue = (tooltipWidth - tipWidth - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionX === 'Right') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n leftValue = POINTER_ADJUST + 'px';\n }\n else if ((tipPosExclude) && (this.tipPointerPosition === 'End' || this.tipPointerPosition === 'Start')) {\n leftValue = (this.tipPointerPosition === 'End') ? ((target.offsetWidth + ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2)) - (tipWidth / 2)) - POINTER_ADJUST + 'px'\n : ((this.tooltipEle.offsetWidth - target.offsetWidth) / 2) - (tipWidth / 2) + POINTER_ADJUST + 'px';\n }\n else {\n leftValue = ((tooltipWidth / 2) - (tipWidth / 2)) + 'px';\n }\n }\n }\n else {\n if (this.tipClass === TIP_RIGHT) {\n leftValue = '99.9%';\n // Arrow icon aligned -2px left from ArrowOuterTip div\n arrowInnerELe.style.left = '-' + (tipWidth - 2) + 'px';\n }\n else {\n leftValue = -(tipWidth - 1) + 'px';\n // Arrow icon aligned -2px from ArrowOuterTip width\n arrowInnerELe.style.left = (-(tipWidth) + (tipWidth - 2)) + 'px';\n }\n var tipPosExclude = tooltipPositionY !== 'Center' || (tooltipHeight > target.offsetHeight) || this.mouseTrail;\n if ((tipPosExclude && tooltipPositionY === 'Top') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n topValue = (tooltipHeight - tipHeight - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionY === 'Bottom') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n topValue = POINTER_ADJUST + 'px';\n }\n else {\n topValue = ((tooltipHeight / 2) - (tipHeight / 2)) + 'px';\n }\n }\n arrowEle.style.top = topValue;\n arrowEle.style.left = leftValue;\n };\n Tooltip.prototype.renderContent = function (target) {\n var tooltipContent = select('.' + CONTENT, this.tooltipEle);\n if (this.cssClass) {\n addClass([this.tooltipEle], this.cssClass.split(' '));\n }\n if (target && !isNullOrUndefined(target.getAttribute('title'))) {\n target.setAttribute('data-content', target.getAttribute('title'));\n target.removeAttribute('title');\n }\n if (!isNullOrUndefined(this.content)) {\n tooltipContent.innerHTML = '';\n if (this.content instanceof HTMLElement) {\n tooltipContent.appendChild(this.content);\n }\n else if (typeof this.content === 'string') {\n if (this.enableHtmlSanitizer) {\n this.setProperties({ content: SanitizeHtmlHelper.sanitize(this.content) }, true);\n }\n var tempFunction = compile(this.content);\n var tempArr = tempFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent);\n if (tempArr) {\n if (this.enableHtmlParse) {\n var nodeList = tempArr.length;\n for (var i = 0; i < nodeList; i++) {\n tooltipContent[append(tempArr, tooltipContent), 'innerHTML'] = this.content;\n }\n }\n else {\n tooltipContent['textContent'] = this.content;\n }\n }\n }\n else {\n var templateFunction = compile(this.content);\n var tempArr = templateFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent);\n if (tempArr) {\n append(tempArr, tooltipContent);\n }\n this.renderReactTemplates();\n }\n }\n else {\n if (target && !isNullOrUndefined(target.getAttribute('data-content'))) {\n tooltipContent.innerHTML = target.getAttribute('data-content');\n }\n }\n };\n Tooltip.prototype.renderCloseIcon = function () {\n if (!this.isSticky) {\n return;\n }\n var tipClose = this.createElement('div', { className: ICON + ' ' + CLOSE });\n this.tooltipEle.appendChild(tipClose);\n EventHandler.add(tipClose, Browser.touchStartEvent, this.onStickyClose, this);\n };\n Tooltip.prototype.addDataTooltipId = function (target, id) {\n attributes(target, { 'data-tooltip-id': id });\n };\n Tooltip.prototype.removeDataTooltipId = function (target) {\n target.removeAttribute('data-tooltip-id');\n };\n Tooltip.prototype.tapHoldHandler = function (evt) {\n clearTimeout(this.autoCloseTimer);\n this.targetHover(evt.originalEvent);\n };\n Tooltip.prototype.touchEndHandler = function (e) {\n var _this = this;\n if (this.isSticky) {\n return;\n }\n var close = function () {\n _this.close();\n };\n this.autoCloseTimer = setTimeout(close, TOUCHEND_HIDE_DELAY);\n };\n Tooltip.prototype.targetClick = function (e) {\n var target;\n if (this.target) {\n target = closest(e.target, this.target);\n }\n else {\n target = this.element;\n }\n if (isNullOrUndefined(target)) {\n return;\n }\n if (target.getAttribute('data-tooltip-id') === null) {\n this.targetHover(e);\n }\n else if (!this.isSticky) {\n this.hideTooltip(this.animation.close, e, target);\n }\n };\n Tooltip.prototype.targetHover = function (e) {\n var target;\n if (this.target) {\n target = closest(e.target, this.target);\n }\n else {\n target = this.element;\n }\n if (isNullOrUndefined(target) || (target.getAttribute('data-tooltip-id') !== null && this.closeDelay === 0)) {\n return;\n }\n var targetList = [].slice.call(selectAll('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document));\n for (var _i = 0, targetList_1 = targetList; _i < targetList_1.length; _i++) {\n var target_1 = targetList_1[_i];\n this.restoreElement(target_1);\n }\n this.showTooltip(target, this.animation.open, e);\n };\n Tooltip.prototype.mouseMoveBeforeOpen = function (e) {\n this.mouseMoveEvent = e;\n };\n Tooltip.prototype.mouseMoveBeforeRemove = function () {\n if (this.mouseMoveTarget) {\n EventHandler.remove(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen);\n }\n };\n Tooltip.prototype.showTooltip = function (target, showAnimation, e) {\n var _this = this;\n clearTimeout(this.showTimer);\n clearTimeout(this.hideTimer);\n if (this.openDelay && this.mouseTrail) {\n this.mouseMoveBeforeRemove();\n this.mouseMoveTarget = target;\n EventHandler.add(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen, this);\n }\n this.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n var observeCallback = function (beforeRenderArgs) {\n _this.beforeRenderCallback(beforeRenderArgs, target, e, showAnimation);\n };\n this.trigger('beforeRender', this.tooltipEventArgs, observeCallback.bind(this));\n };\n Tooltip.prototype.beforeRenderCallback = function (beforeRenderArgs, target, e, showAnimation) {\n if (beforeRenderArgs.cancel) {\n this.isHidden = true;\n this.clear();\n this.mouseMoveBeforeRemove();\n }\n else {\n this.isHidden = false;\n if (isNullOrUndefined(this.tooltipEle)) {\n this.ctrlId = this.element.getAttribute('id') ?\n getUniqueID(this.element.getAttribute('id')) : getUniqueID('tooltip');\n this.tooltipEle = this.createElement('div', {\n className: TOOLTIP_WRAP + ' ' + POPUP_ROOT + ' ' + POPUP_LIB, attrs: {\n role: 'tooltip', 'aria-hidden': 'false', 'id': this.ctrlId + '_content'\n }, styles: 'width:' +\n formatUnit(this.width) + ';height:' + formatUnit(this.height) + ';position:absolute;'\n });\n if (Object.keys(this.htmlAttributes).length !== 0) {\n for (var attr in this.htmlAttributes) {\n if (attr === \"class\") {\n this.tooltipEle.classList.add(this.htmlAttributes[\"\" + attr]);\n }\n else {\n this.tooltipEle.setAttribute(attr, this.htmlAttributes[\"\" + attr]);\n }\n }\n }\n this.tooltipBeforeRender(target, this);\n this.tooltipAfterRender(target, e, showAnimation, this);\n }\n else {\n if (target) {\n this.adjustArrow(target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n this.addDataTooltipId(target, this.ctrlId + '_content');\n this.renderContent(target);\n PopupAnimation.stop(this.tooltipEle);\n this.reposition(target);\n this.tooltipAfterRender(target, e, showAnimation, this);\n }\n }\n }\n };\n Tooltip.prototype.appendContainer = function (ctrlObj) {\n if (typeof this.container == 'string') {\n if (this.container === 'body') {\n this.containerElement = document.body;\n }\n else {\n this.isBodyContainer = false;\n this.containerElement = select(this.container, document);\n }\n }\n else if (this.container instanceof HTMLElement) {\n this.containerElement = this.container;\n this.isBodyContainer = this.containerElement.tagName === 'BODY';\n }\n if (!this.isBodyContainer) {\n addClass([this.containerElement], POPUP_CONTAINER);\n }\n this.containerElement.appendChild(ctrlObj.tooltipEle);\n };\n Tooltip.prototype.tooltipBeforeRender = function (target, ctrlObj) {\n if (target) {\n if (Browser.isDevice) {\n addClass([ctrlObj.tooltipEle], DEVICE);\n }\n if (ctrlObj.width !== 'auto') {\n ctrlObj.tooltipEle.style.maxWidth = formatUnit(ctrlObj.width);\n }\n ctrlObj.tooltipEle.appendChild(ctrlObj.createElement('div', { className: CONTENT }));\n this.appendContainer(ctrlObj);\n removeClass([ctrlObj.tooltipEle], HIDE_POPUP);\n ctrlObj.addDataTooltipId(target, ctrlObj.ctrlId + '_content');\n ctrlObj.renderContent(target);\n addClass([ctrlObj.tooltipEle], POPUP_OPEN);\n if (ctrlObj.showTipPointer) {\n ctrlObj.renderArrow();\n }\n ctrlObj.renderCloseIcon();\n ctrlObj.renderPopup(target);\n ctrlObj.adjustArrow(target, ctrlObj.position, ctrlObj.tooltipPositionX, ctrlObj.tooltipPositionY);\n PopupAnimation.stop(ctrlObj.tooltipEle);\n ctrlObj.reposition(target);\n }\n };\n Tooltip.prototype.tooltipAfterRender = function (target, e, showAnimation, ctrlObj) {\n if (target) {\n removeClass([ctrlObj.tooltipEle], POPUP_OPEN);\n addClass([ctrlObj.tooltipEle], POPUP_CLOSE);\n ctrlObj.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: ctrlObj.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n if (ctrlObj.needTemplateReposition() && !ctrlObj.mouseTrail) {\n ctrlObj.tooltipEle.style.display = 'none';\n }\n var observeCallback = function (observedArgs) {\n ctrlObj.beforeOpenCallback(observedArgs, target, showAnimation, e);\n };\n ctrlObj.trigger('beforeOpen', ctrlObj.tooltipEventArgs, observeCallback.bind(ctrlObj));\n }\n };\n Tooltip.prototype.beforeOpenCallback = function (observedArgs, target, showAnimation, e) {\n var _this = this;\n if (observedArgs.cancel) {\n this.isHidden = true;\n this.clear();\n this.mouseMoveBeforeRemove();\n this.restoreElement(target);\n }\n else {\n var openAnimation_1 = {\n name: showAnimation.effect,\n duration: showAnimation.duration,\n delay: showAnimation.delay,\n timingFunction: 'easeOut'\n };\n if (showAnimation.effect === 'None') {\n openAnimation_1 = undefined;\n }\n if (this.openDelay > 0) {\n var show = function () {\n if (_this.mouseTrail) {\n EventHandler.add(target, 'mousemove touchstart mouseenter', _this.onMouseMove, _this);\n }\n if (_this.popupObj) {\n _this.popupObj.show(openAnimation_1, target);\n if (_this.mouseMoveEvent && _this.mouseTrail) {\n _this.onMouseMove(_this.mouseMoveEvent);\n }\n }\n };\n this.showTimer = setTimeout(show, this.openDelay);\n }\n else {\n if (this.popupObj) {\n this.popupObj.show(openAnimation_1, target);\n }\n }\n }\n if (e) {\n this.wireMouseEvents(e, target);\n }\n };\n Tooltip.prototype.needTemplateReposition = function () {\n // eslint-disable-next-line\n var tooltip = this;\n return !isNullOrUndefined(tooltip.viewContainerRef)\n && typeof tooltip.viewContainerRef !== 'string';\n };\n Tooltip.prototype.checkCollision = function (target, x, y) {\n var elePos = {\n left: x, top: y, position: this.position,\n horizontal: this.tooltipPositionX, vertical: this.tooltipPositionY\n };\n var affectedPos = isCollide(this.tooltipEle, this.checkCollideTarget(), x, y);\n if (affectedPos.length > 0) {\n elePos.horizontal = affectedPos.indexOf('left') >= 0 ? 'Right' : affectedPos.indexOf('right') >= 0 ? 'Left' :\n this.tooltipPositionX;\n elePos.vertical = affectedPos.indexOf('top') >= 0 ? 'Bottom' : affectedPos.indexOf('bottom') >= 0 ? 'Top' :\n this.tooltipPositionY;\n }\n return elePos;\n };\n Tooltip.prototype.calculateElementPosition = function (pos, offsetPos) {\n return [this.isBodyContainer ? pos.left + offsetPos.left :\n (pos.left - this.containerElement.offsetLeft) + offsetPos.left + window.pageXOffset + this.containerElement.scrollLeft,\n this.isBodyContainer ? pos.top + offsetPos.top :\n (pos.top - this.containerElement.offsetTop) + offsetPos.top + window.pageYOffset + this.containerElement.scrollTop];\n };\n Tooltip.prototype.collisionFlipFit = function (target, x, y) {\n var elePos = this.checkCollision(target, x, y);\n var newpos = elePos.position;\n if (this.tooltipPositionY !== elePos.vertical) {\n newpos = ((this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\n elePos.vertical + this.tooltipPositionX : this.tooltipPositionX + elePos.vertical);\n }\n if (this.tooltipPositionX !== elePos.horizontal) {\n if (newpos.indexOf('Left') === 0) {\n elePos.vertical = (newpos === 'LeftTop' || newpos === 'LeftCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Left');\n }\n if (newpos.indexOf('Right') === 0) {\n elePos.vertical = (newpos === 'RightTop' || newpos === 'RightCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Right');\n }\n elePos.horizontal = this.tooltipPositionX;\n }\n this.tooltipEventArgs = {\n type: null, cancel: false, target: target, event: null,\n element: this.tooltipEle, collidedPosition: newpos\n };\n this.trigger('beforeCollision', this.tooltipEventArgs);\n if (this.tooltipEventArgs.cancel) {\n newpos = this.position;\n }\n else {\n var elePosVertical = elePos.vertical;\n var elePosHorizontal = elePos.horizontal;\n if (elePos.position !== newpos) {\n var pos = calculatePosition(target, elePosHorizontal, elePosVertical, !this.isBodyContainer, this.isBodyContainer ? null : this.containerElement.getBoundingClientRect());\n this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical);\n var scalingFactors = this.getScalingFactor(target);\n var offsetPos = this.calculateTooltipOffset(newpos, scalingFactors.x, scalingFactors.y);\n offsetPos.top -= this.getOffSetPosition('TopBottom', newpos, this.offsetY);\n offsetPos.left -= this.getOffSetPosition('RightLeft', newpos, this.offsetX);\n elePos.position = newpos;\n var elePosition = this.calculateElementPosition(pos, offsetPos);\n elePos.left = elePosition[0];\n elePos.top = elePosition[1];\n }\n else {\n this.adjustArrow(target, newpos, elePosHorizontal, elePosVertical);\n }\n }\n var eleOffset = { left: elePos.left, top: elePos.top };\n var position = this.isBodyContainer ?\n fit(this.tooltipEle, this.checkCollideTarget(), { X: true, Y: this.windowCollision }, eleOffset) : eleOffset;\n this.tooltipEle.style.display = 'block';\n if (this.showTipPointer && (newpos.indexOf('Bottom') === 0 || newpos.indexOf('Top') === 0)) {\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\n var arrowleft = parseInt(arrowEle.style.left, 10) - (position.left - elePos.left);\n if (arrowleft < 0) {\n arrowleft = 0;\n }\n else if ((arrowleft + arrowEle.offsetWidth) > this.tooltipEle.clientWidth) {\n arrowleft = this.tooltipEle.clientWidth - arrowEle.offsetWidth;\n }\n arrowEle.style.left = arrowleft.toString() + 'px';\n }\n this.tooltipEle.style.display = '';\n eleOffset.left = position.left;\n eleOffset.top = position.top;\n return eleOffset;\n };\n Tooltip.prototype.getOffSetPosition = function (positionString, newPos, offsetType) {\n return ((positionString.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) &&\n (positionString.indexOf(newPos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * offsetType) : 0;\n };\n Tooltip.prototype.checkCollideTarget = function () {\n return !this.windowCollision && this.target ? this.element : null;\n };\n Tooltip.prototype.hideTooltip = function (hideAnimation, e, targetElement) {\n var _this = this;\n if (this.closeDelay > 0) {\n clearTimeout(this.hideTimer);\n clearTimeout(this.showTimer);\n var hide = function () {\n if (_this.closeDelay && _this.tooltipEle && _this.isTooltipOpen) {\n return;\n }\n _this.tooltipHide(hideAnimation, e, targetElement);\n };\n this.hideTimer = setTimeout(hide, this.closeDelay);\n }\n else {\n this.tooltipHide(hideAnimation, e, targetElement);\n }\n };\n Tooltip.prototype.tooltipHide = function (hideAnimation, e, targetElement) {\n var _this = this;\n var target;\n if (e) {\n target = this.target ? (targetElement || e.target) : this.element;\n }\n else {\n target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\n }\n this.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n // this line commented for close the tooltip popup element even the target element destroyed in a page.\n //if (isNullOrUndefined(target)) { return; }\n this.trigger('beforeClose', this.tooltipEventArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.mouseMoveBeforeRemove();\n _this.popupHide(hideAnimation, target);\n }\n else {\n _this.isHidden = false;\n }\n });\n this.tooltipEventArgs = null;\n };\n Tooltip.prototype.popupHide = function (hideAnimation, target) {\n if (target) {\n this.restoreElement(target);\n }\n this.isHidden = true;\n var closeAnimation = {\n name: hideAnimation.effect,\n duration: hideAnimation.duration,\n delay: hideAnimation.delay,\n timingFunction: 'easeIn'\n };\n if (hideAnimation.effect === 'None') {\n closeAnimation = undefined;\n }\n if (this.popupObj) {\n this.popupObj.hide(closeAnimation);\n }\n };\n Tooltip.prototype.restoreElement = function (target) {\n this.unwireMouseEvents(target);\n if (!isNullOrUndefined(target.getAttribute('data-content'))) {\n target.setAttribute('title', target.getAttribute('data-content'));\n target.removeAttribute('data-content');\n }\n this.removeDataTooltipId(target);\n };\n Tooltip.prototype.clear = function () {\n if (this.tooltipEle) {\n removeClass([this.tooltipEle], POPUP_CLOSE);\n addClass([this.tooltipEle], POPUP_OPEN);\n }\n if (this.isHidden) {\n if (this.popupObj) {\n this.popupObj.destroy();\n }\n if (this.tooltipEle) {\n remove(this.tooltipEle);\n }\n this.tooltipEle = null;\n this.popupObj = null;\n }\n };\n Tooltip.prototype.tooltipHover = function (e) {\n if (this.tooltipEle) {\n this.isTooltipOpen = true;\n }\n };\n Tooltip.prototype.tooltipMouseOut = function (e) {\n this.isTooltipOpen = false;\n this.hideTooltip(this.animation.close, e, this.findTarget());\n };\n Tooltip.prototype.onMouseOut = function (e) {\n var enteredElement = e.relatedTarget;\n // don't close the tooltip only if it is tooltip content element\n if (enteredElement && !this.mouseTrail) {\n var checkForTooltipElement = closest(enteredElement, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT);\n if (checkForTooltipElement) {\n EventHandler.add(checkForTooltipElement, 'mouseleave', this.tooltipElementMouseOut, this);\n }\n else {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n if (this.closeDelay === 0) {\n this.clear();\n }\n }\n }\n else {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n this.clear();\n }\n };\n Tooltip.prototype.tooltipElementMouseOut = function (e) {\n this.hideTooltip(this.animation.close, e, this.findTarget());\n EventHandler.remove(this.element, 'mouseleave', this.tooltipElementMouseOut);\n this.clear();\n };\n Tooltip.prototype.onStickyClose = function (e) {\n this.close();\n };\n Tooltip.prototype.onMouseMove = function (event) {\n var eventPageX = 0;\n var eventPageY = 0;\n if (event.type.indexOf('touch') > -1) {\n event.preventDefault();\n eventPageX = event.touches[0].pageX;\n eventPageY = event.touches[0].pageY;\n }\n else {\n eventPageX = event.pageX;\n eventPageY = event.pageY;\n }\n PopupAnimation.stop(this.tooltipEle);\n removeClass([this.tooltipEle], POPUP_CLOSE);\n addClass([this.tooltipEle], POPUP_OPEN);\n this.adjustArrow(event.target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n var scalingFactors = this.getScalingFactor(event.target);\n var pos = this.calculateTooltipOffset(this.position, scalingFactors.x, scalingFactors.y);\n var x = eventPageX + pos.left + this.offsetX;\n var y = eventPageY + pos.top + this.offsetY;\n var elePos = this.checkCollision(event.target, x, y);\n if (this.tooltipPositionX !== elePos.horizontal || this.tooltipPositionY !== elePos.vertical) {\n var newpos = (this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\n elePos.vertical + elePos.horizontal : elePos.horizontal + elePos.vertical;\n elePos.position = newpos;\n this.adjustArrow(event.target, elePos.position, elePos.horizontal, elePos.vertical);\n var colpos = this.calculateTooltipOffset(elePos.position, scalingFactors.x, scalingFactors.y);\n elePos.left = eventPageX + colpos.left - this.offsetX;\n elePos.top = eventPageY + colpos.top - this.offsetY;\n }\n this.tooltipEle.style.left = elePos.left + 'px';\n this.tooltipEle.style.top = elePos.top + 'px';\n };\n Tooltip.prototype.keyDown = function (event) {\n if (!isNullOrUndefined(this.targetsList) && !isNullOrUndefined(this.target)) {\n var target = [].slice.call(selectAll(this.target, this.element));\n if (target.length !== this.targetsList.length) {\n this.unwireEvents(this.opensOn);\n this.wireEvents(this.opensOn);\n }\n }\n if (this.tooltipEle && event.keyCode === 27) {\n this.close();\n }\n };\n Tooltip.prototype.touchEnd = function (e) {\n if (this.tooltipEle && closest(e.target, '.' + ROOT) === null && !this.isSticky) {\n this.close();\n }\n };\n Tooltip.prototype.scrollHandler = function (e) {\n if (this.tooltipEle && !this.isSticky) {\n if (!(closest(e.target, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT))) {\n this.close();\n }\n }\n };\n /**\n * Core method that initializes the control rendering.\n *\n * @private\n * @returns {void}\n */\n Tooltip.prototype.render = function () {\n this.initialize();\n this.wireEvents(this.opensOn);\n this.renderComplete();\n };\n /**\n * Initializes the values of private members.\n *\n * @private\n * @returns {void}\n */\n Tooltip.prototype.preRender = function () {\n this.tipClass = TIP_BOTTOM;\n this.tooltipPositionX = 'Center';\n this.tooltipPositionY = 'Top';\n this.isHidden = true;\n };\n /**\n * Binding events to the Tooltip element.\n *\n * @hidden\n * @param {string} trigger - specify the trigger string to the function\n * @returns {void}\n *\n */\n Tooltip.prototype.wireEvents = function (trigger) {\n var triggerList = this.getTriggerList(trigger);\n for (var _i = 0, triggerList_1 = triggerList; _i < triggerList_1.length; _i++) {\n var opensOn = triggerList_1[_i];\n if (opensOn === 'Custom') {\n return;\n }\n if (opensOn === 'Focus') {\n this.wireFocusEvents();\n }\n if (opensOn === 'Click') {\n EventHandler.add(this.element, Browser.touchStartEvent, this.targetClick, this);\n }\n if (opensOn === 'Hover') {\n if (Browser.isDevice) {\n this.touchModule = new Touch(this.element, {\n tapHoldThreshold: TAPHOLD_THRESHOLD,\n tapHold: this.tapHoldHandler.bind(this)\n });\n EventHandler.add(this.element, Browser.touchEndEvent, this.touchEndHandler, this);\n }\n else {\n EventHandler.add(this.element, 'mouseover', this.targetHover, this);\n }\n }\n }\n EventHandler.add(document, 'touchend', this.touchEnd, this);\n EventHandler.add(document, 'scroll wheel', this.scrollHandler, this);\n EventHandler.add(window, 'resize', this.windowResize, this);\n EventHandler.add(document, 'keydown', this.keyDown, this);\n };\n Tooltip.prototype.getTriggerList = function (trigger) {\n if (trigger === 'Auto') {\n trigger = (Browser.isDevice) ? 'Hover' : 'Hover Focus';\n }\n return trigger.split(' ');\n };\n Tooltip.prototype.wireFocusEvents = function () {\n if (!isNullOrUndefined(this.target)) {\n if (this.element.nodeName !== \"BODY\") {\n EventHandler.add(this.element, 'focusin', this.targetHover, this);\n }\n else {\n var targetList = [].slice.call(selectAll(this.target, this.element));\n this.targetsList = targetList;\n for (var _i = 0, targetList_2 = targetList; _i < targetList_2.length; _i++) {\n var target = targetList_2[_i];\n EventHandler.add(target, 'focus', this.targetHover, this);\n }\n }\n }\n else {\n EventHandler.add(this.element, 'focus', this.targetHover, this);\n }\n };\n Tooltip.prototype.wireMouseEvents = function (e, target) {\n if (this.tooltipEle) {\n if (!this.isSticky) {\n if (e.type === 'focus') {\n EventHandler.add(target, 'blur', this.onMouseOut, this);\n }\n if (e.type === 'focusin') {\n EventHandler.add(target, 'focusout', this.onMouseOut, this);\n }\n if (e.type === 'mouseover') {\n EventHandler.add(target, 'mouseleave', this.onMouseOut, this);\n }\n if (this.closeDelay) {\n EventHandler.add(this.tooltipEle, 'mouseenter', this.tooltipHover, this);\n EventHandler.add(this.tooltipEle, 'mouseleave', this.tooltipMouseOut, this);\n }\n }\n if (this.mouseTrail && this.openDelay === 0) {\n EventHandler.add(target, 'mousemove touchstart mouseenter', this.onMouseMove, this);\n }\n }\n };\n /**\n * Unbinding events from the element on widget destroy.\n *\n * @hidden\n *\n * @param {string} trigger - specify the trigger string to the function\n * @returns {void}\n *\n */\n Tooltip.prototype.unwireEvents = function (trigger) {\n var triggerList = this.getTriggerList(trigger);\n for (var _i = 0, triggerList_2 = triggerList; _i < triggerList_2.length; _i++) {\n var opensOn = triggerList_2[_i];\n if (opensOn === 'Custom') {\n return;\n }\n if (opensOn === 'Focus') {\n this.unwireFocusEvents();\n }\n if (opensOn === 'Click') {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.targetClick);\n }\n if (opensOn === 'Hover') {\n if (Browser.isDevice) {\n if (this.touchModule) {\n this.touchModule.destroy();\n }\n EventHandler.remove(this.element, Browser.touchEndEvent, this.touchEndHandler);\n }\n else {\n EventHandler.remove(this.element, 'mouseover', this.targetHover);\n }\n }\n }\n EventHandler.remove(document, 'touchend', this.touchEnd);\n EventHandler.remove(document, 'scroll wheel', this.scrollHandler);\n EventHandler.remove(window, 'resize', this.windowResize);\n EventHandler.remove(document, 'keydown', this.keyDown);\n };\n Tooltip.prototype.unwireFocusEvents = function () {\n if (!isNullOrUndefined(this.target)) {\n if (this.element.nodeName === 'BODY') {\n EventHandler.remove(this.element, 'focusin', this.targetHover);\n }\n else {\n var targetList = [].slice.call(selectAll(this.target, this.element));\n for (var _i = 0, targetList_3 = targetList; _i < targetList_3.length; _i++) {\n var target = targetList_3[_i];\n EventHandler.remove(target, 'focus', this.targetHover);\n }\n }\n }\n else {\n EventHandler.remove(this.element, 'focus', this.targetHover);\n }\n };\n Tooltip.prototype.unwireMouseEvents = function (target) {\n if (!this.isSticky) {\n var triggerList = this.getTriggerList(this.opensOn);\n for (var _i = 0, triggerList_3 = triggerList; _i < triggerList_3.length; _i++) {\n var opensOn = triggerList_3[_i];\n if (opensOn === 'Focus') {\n EventHandler.remove(target, 'blur', this.onMouseOut);\n EventHandler.remove(target, 'focusout', this.onMouseOut);\n }\n if (opensOn === 'Hover' && !Browser.isDevice) {\n EventHandler.remove(target, 'mouseleave', this.onMouseOut);\n }\n }\n if (this.closeDelay) {\n EventHandler.remove(target, 'mouseenter', this.tooltipHover);\n EventHandler.remove(target, 'mouseleave', this.tooltipMouseOut);\n }\n }\n if (this.mouseTrail) {\n EventHandler.remove(target, 'mousemove touchstart mouseenter', this.onMouseMove);\n }\n };\n Tooltip.prototype.findTarget = function () {\n var target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\n return target;\n };\n /**\n * Core method to return the component name.\n *\n * @private\n *\n * @returns {string} - this method returns module name.\n */\n Tooltip.prototype.getModuleName = function () {\n return 'tooltip';\n };\n /**\n * Returns the properties to be maintained in the persisted state.\n *\n * @private\n *\n * @returns {string} - this method returns persisted data.\n */\n Tooltip.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Called internally, if any of the property value changed.\n *\n * @private\n *\n * @param {TooltipModel} newProp - this param gives new property values to the method\n * @param {TooltipModel} oldProp - this param gives old property values to the method\n * @returns {void}\n *\n */\n Tooltip.prototype.onPropertyChanged = function (newProp, oldProp) {\n var targetElement = this.findTarget();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n if (this.tooltipEle && targetElement) {\n this.tooltipEle.style.width = this.tooltipEle.style.maxWidth = formatUnit(newProp.width);\n this.reposition(targetElement);\n }\n break;\n case 'height':\n if (this.tooltipEle && targetElement) {\n this.tooltipEle.style.height = formatUnit(newProp.height);\n this.reposition(targetElement);\n }\n break;\n case 'content':\n if (this.tooltipEle) {\n this.renderContent();\n }\n break;\n case 'opensOn':\n this.unwireEvents(oldProp.opensOn);\n this.wireEvents(newProp.opensOn);\n break;\n case 'position':\n this.formatPosition();\n if (this.tooltipEle && targetElement) {\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\n arrowInnerELe.style.top = arrowInnerELe.style.left = null;\n this.reposition(targetElement);\n }\n break;\n case 'tipPointerPosition':\n if (this.tooltipEle && targetElement) {\n this.reposition(targetElement);\n }\n break;\n case 'offsetX':\n if (this.tooltipEle) {\n var x = newProp.offsetX - oldProp.offsetX;\n this.tooltipEle.style.left = (parseInt(this.tooltipEle.style.left, 10) + (x)).toString() + 'px';\n }\n break;\n case 'offsetY':\n if (this.tooltipEle) {\n var y = newProp.offsetY - oldProp.offsetY;\n this.tooltipEle.style.top = (parseInt(this.tooltipEle.style.top, 10) + (y)).toString() + 'px';\n }\n break;\n case 'cssClass':\n if (this.tooltipEle) {\n if (oldProp.cssClass) {\n removeClass([this.tooltipEle], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.tooltipEle], newProp.cssClass.split(' '));\n }\n }\n break;\n case 'enableRtl':\n if (this.tooltipEle) {\n if (this.enableRtl) {\n addClass([this.tooltipEle], RTL);\n }\n else {\n removeClass([this.tooltipEle], RTL);\n }\n }\n break;\n case 'container':\n if (!isNullOrUndefined(this.containerElement)) {\n removeClass([this.containerElement], POPUP_CONTAINER);\n }\n this.container = newProp.container;\n if (this.tooltipEle && targetElement) {\n this.appendContainer(this);\n this.reposition(targetElement);\n }\n }\n }\n };\n /**\n * It is used to show the Tooltip on the specified target with specific animation settings.\n *\n * @param {HTMLElement} element - Target element where the Tooltip is to be displayed. (It is an optional parameter)\n * @param {TooltipAnimationSettings} animation - Sets the specific animation, while showing the Tooltip on the screen. (It is an optional parameter)\n * @returns {void}\n */\n Tooltip.prototype.open = function (element, animation) {\n if (isNullOrUndefined(animation)) {\n animation = this.animation.open;\n }\n if (isNullOrUndefined(element)) {\n element = this.element;\n }\n if (element.style.display === 'none') {\n return;\n }\n this.showTooltip(element, animation);\n };\n /**\n * It is used to hide the Tooltip with specific animation effect.\n *\n * @param {TooltipAnimationSettings} animation - Sets the specific animation when hiding Tooltip from the screen. (It is an optional parameter)\n * @returns {void}\n */\n Tooltip.prototype.close = function (animation) {\n if (!animation) {\n animation = this.animation.close;\n }\n this.hideTooltip(animation);\n };\n /**\n * It is used to refresh the Tooltip content and its position.\n *\n * @param {HTMLElement} target - Target element where the Tooltip content or position needs to be refreshed.\n * @returns {void}\n */\n Tooltip.prototype.refresh = function (target) {\n if (this.tooltipEle) {\n this.renderContent(target);\n }\n if (this.popupObj && target) {\n this.reposition(target);\n }\n };\n /**\n * It is used to destroy the Tooltip component.\n * @method destroy\n * @returns {void}\n * @memberof Tooltip\n */\n Tooltip.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.tooltipEle) {\n remove(this.tooltipEle);\n }\n if (this.popupObj) {\n this.popupObj.destroy();\n }\n removeClass([this.element], ROOT);\n this.unwireEvents(this.opensOn);\n this.unwireMouseEvents(this.element);\n this.tooltipEle = null;\n this.popupObj = null;\n var currentTarget = selectAll('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', this.element);\n for (var _i = 0, currentTarget_1 = currentTarget; _i < currentTarget_1.length; _i++) {\n var target = currentTarget_1[_i];\n this.restoreElement(target);\n }\n };\n __decorate([\n Property('auto')\n ], Tooltip.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Tooltip.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"content\", void 0);\n __decorate([\n Property('body')\n ], Tooltip.prototype, \"container\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"target\", void 0);\n __decorate([\n Property('TopCenter')\n ], Tooltip.prototype, \"position\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"offsetY\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"showTipPointer\", void 0);\n __decorate([\n Property(true)\n ], Tooltip.prototype, \"enableHtmlParse\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"windowCollision\", void 0);\n __decorate([\n Property('Auto')\n ], Tooltip.prototype, \"tipPointerPosition\", void 0);\n __decorate([\n Property('Auto')\n ], Tooltip.prototype, \"opensOn\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"mouseTrail\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"isSticky\", void 0);\n __decorate([\n Complex({}, Animation)\n ], Tooltip.prototype, \"animation\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"openDelay\", void 0);\n __decorate([\n Property(0)\n ], Tooltip.prototype, \"closeDelay\", void 0);\n __decorate([\n Property()\n ], Tooltip.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Tooltip.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property('')\n ], Tooltip.prototype, \"htmlAttributes\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeRender\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"afterOpen\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"afterClose\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"beforeCollision\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Tooltip.prototype, \"destroyed\", void 0);\n Tooltip = __decorate([\n NotifyPropertyChanges\n ], Tooltip);\n return Tooltip;\n}(Component));\nexport { Tooltip };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Property, ChildProperty, append, compile, createElement } from '@syncfusion/ej2-base';\nimport { Browser, Animation as tooltipAnimation } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit } from '@syncfusion/ej2-base';\nimport { attributes, removeClass, addClass, remove, updateBlazorTemplate } from '@syncfusion/ej2-base';\nimport { calculatePosition } from './position';\nimport { isCollide, fit } from './collision';\n/**\n * Animation options that are common for both open and close actions of the Tooltip\n *\n * @private\n */\nvar BlazorAnimation = /** @class */ (function (_super) {\n __extends(BlazorAnimation, _super);\n function BlazorAnimation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property({ effect: 'FadeIn', duration: 150, delay: 0 })\n ], BlazorAnimation.prototype, \"open\", void 0);\n __decorate([\n Property({ effect: 'FadeOut', duration: 150, delay: 0 })\n ], BlazorAnimation.prototype, \"close\", void 0);\n return BlazorAnimation;\n}(ChildProperty));\nexport { BlazorAnimation };\nvar SHOW_POINTER_TIP_GAP = 0;\nvar HIDE_POINTER_TIP_GAP = 8;\nvar POINTER_ADJUST = 2;\nvar ROOT = 'e-tooltip';\nvar RTL = 'e-rtl';\nvar DEVICE = 'e-bigger';\nvar CLOSE = 'e-tooltip-close';\nvar TOOLTIP_WRAP = 'e-tooltip-wrap';\nvar CONTENT = 'e-tip-content';\nvar ARROW_TIP = 'e-arrow-tip';\nvar ARROW_TIP_OUTER = 'e-arrow-tip-outer';\nvar ARROW_TIP_INNER = 'e-arrow-tip-inner';\nvar TIP_BOTTOM = 'e-tip-bottom';\nvar TIP_TOP = 'e-tip-top';\nvar TIP_LEFT = 'e-tip-left';\nvar TIP_RIGHT = 'e-tip-right';\nvar POPUP_ROOT = 'e-popup';\nvar POPUP_OPEN = 'e-popup-open';\nvar POPUP_CLOSE = 'e-popup-close';\nvar POPUP_LIB = 'e-lib';\nvar HIDE_POPUP = 'e-hidden';\nvar CLASSNAMES = {\n ROOT: 'e-popup',\n RTL: 'e-rtl',\n OPEN: 'e-popup-open',\n CLOSE: 'e-popup-close'\n};\n/**\n * @private\n */\nvar BlazorTooltip = /** @class */ (function () {\n function BlazorTooltip(diagram) {\n this.isBlazorTooltip = false;\n this.contentEvent = null;\n /** @private */\n this.width = 'auto';\n /** @private */\n this.height = 'auto';\n /** @private */\n this.content = '';\n /** @private */\n this.target = '';\n /** @private */\n this.position = 'TopCenter';\n /** @private */\n this.offsetX = 0;\n /** @private */\n this.offsetY = 0;\n /** @private */\n this.tipPointerPosition = 'Auto';\n /** @private */\n this.openDelay = 0;\n /** @private */\n this.closeDelay = 0;\n /** @private */\n this.cssClass = '';\n this.element = diagram;\n this.tipClass = TIP_BOTTOM;\n this.tooltipPositionX = 'Center';\n this.tooltipPositionY = 'Top';\n this.isHidden = true;\n this.showTipPointer = true;\n }\n /**\n * @private\n */\n BlazorTooltip.prototype.open = function (target, showAnimation, e) {\n if (isNullOrUndefined(this.animation.open)) {\n this.animation.open = this.element.tooltip && this.element.tooltip.animation &&\n this.element.tooltip.animation.open;\n }\n this.showTooltip(target, showAnimation);\n };\n /**\n * @private\n */\n BlazorTooltip.prototype.updateTooltip = function (target) {\n if (this.tooltipEle) {\n this.addDescribedBy(target, this.ctrlId + '_content');\n this.renderContent(target);\n this.reposition(target);\n this.adjustArrow(target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n }\n };\n BlazorTooltip.prototype.formatPosition = function () {\n var _a, _b;\n if (this.position.indexOf('Top') === 0 || this.position.indexOf('Bottom') === 0) {\n _a = this.position.split(/(?=[A-Z])/), this.tooltipPositionY = _a[0], this.tooltipPositionX = _a[1];\n }\n else {\n _b = this.position.split(/(?=[A-Z])/), this.tooltipPositionX = _b[0], this.tooltipPositionY = _b[1];\n }\n };\n /**\n * @private\n */\n BlazorTooltip.prototype.destroy = function () {\n //No code\n };\n /**\n * @private\n */\n BlazorTooltip.prototype.close = function () {\n if (this.tooltipEle) {\n removeClass([this.tooltipEle], POPUP_CLOSE);\n addClass([this.tooltipEle], POPUP_OPEN);\n tooltipAnimation.stop(this.tooltipEle);\n var animationOptions = void 0;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var currentTooltip_1 = this;\n currentTooltip_1.isHidden = true;\n if (this.animation.close) {\n animationOptions = {\n name: this.animation.close.effect,\n duration: this.animation.close.duration || 0,\n delay: this.animation.close.delay || 0,\n timingFunction: 'easeOut'\n };\n }\n if (!isNullOrUndefined(animationOptions)) {\n animationOptions.end = function () {\n if (currentTooltip_1.isHidden) {\n remove(currentTooltip_1.tooltipEle);\n currentTooltip_1.tooltipEle = null;\n }\n };\n new tooltipAnimation(animationOptions).animate(this.tooltipEle);\n }\n else {\n removeClass([this.tooltipEle], CLASSNAMES.OPEN);\n addClass([this.tooltipEle], CLASSNAMES.CLOSE);\n remove(this.tooltipEle);\n this.tooltipEle = null;\n }\n }\n };\n /**\n * @private\n */\n BlazorTooltip.prototype.showTooltip = function (target, showAnimation, e) {\n var _this = this;\n clearTimeout(this.showTimer);\n clearTimeout(this.hideTimer);\n this.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n var observeCallback = function (beforeRenderArgs) {\n _this.beforeRenderCallback(beforeRenderArgs, target, e, showAnimation);\n };\n this.element.trigger('beforeRender', this.tooltipEventArgs, observeCallback.bind(this));\n };\n BlazorTooltip.prototype.beforeRenderCallback = function (beforeRenderArgs, target, e, showAnimation) {\n this.formatPosition();\n var isBlazorTooltipRendered = false;\n if (beforeRenderArgs.cancel) {\n this.isHidden = true;\n // this.clear();\n }\n else {\n this.isHidden = false;\n if (isNullOrUndefined(this.tooltipEle)) {\n this.ctrlId = this.element.element.id;\n this.tooltipEle = createElement('div', {\n className: TOOLTIP_WRAP + ' ' + POPUP_ROOT + ' ' + POPUP_LIB, attrs: {\n role: 'tooltip', 'aria-hidden': 'false', 'id': this.ctrlId + '_content'\n }, styles: 'width:' +\n formatUnit(this.width) + ';height:' + formatUnit(this.height) + ';position:absolute; pointer-events:none;'\n });\n this.beforeRenderBlazor(target, this);\n tooltipAnimation.stop(this.tooltipEle);\n this.afterRenderBlazor(target, e, showAnimation, this);\n }\n else {\n if (target) {\n this.addDescribedBy(target, this.ctrlId + '_content');\n this.renderContent(target);\n tooltipAnimation.stop(this.tooltipEle);\n this.reposition(target);\n this.afterRenderBlazor(target, e, showAnimation, this);\n this.adjustArrow(target, this.position, this.tooltipPositionX, this.tooltipPositionY);\n }\n }\n }\n };\n BlazorTooltip.prototype.afterRenderBlazor = function (target, e, showAnimation, ctrlObj) {\n var _this = this;\n if (target) {\n removeClass([ctrlObj.tooltipEle], POPUP_OPEN);\n addClass([ctrlObj.tooltipEle], POPUP_CLOSE);\n ctrlObj.tooltipEventArgs = {\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\n element: ctrlObj.tooltipEle, isInteracted: !isNullOrUndefined(e)\n };\n var animation = void 0;\n if (this.animation.open) {\n animation = {\n name: this.animation.open.effect,\n duration: this.animation.open.duration || 0,\n delay: this.animation.open.delay || 0,\n timingFunction: 'easeIn'\n };\n }\n if (!isNullOrUndefined(animation)) {\n animation.begin = function () {\n removeClass([ctrlObj.tooltipEle], CLASSNAMES.CLOSE);\n addClass([ctrlObj.tooltipEle], CLASSNAMES.OPEN);\n };\n animation.end = function () {\n _this.element.trigger('open');\n };\n new tooltipAnimation(animation).animate(this.tooltipEle);\n }\n else {\n removeClass([ctrlObj.tooltipEle], POPUP_CLOSE);\n addClass([ctrlObj.tooltipEle], POPUP_OPEN);\n }\n }\n };\n BlazorTooltip.prototype.setTipClass = function (position) {\n if (position.indexOf('Right') === 0) {\n this.tipClass = TIP_LEFT;\n }\n else if (position.indexOf('Bottom') === 0) {\n this.tipClass = TIP_TOP;\n }\n else if (position.indexOf('Left') === 0) {\n this.tipClass = TIP_RIGHT;\n }\n else {\n this.tipClass = TIP_BOTTOM;\n }\n };\n BlazorTooltip.prototype.renderArrow = function () {\n this.setTipClass(this.position);\n var tip = createElement('div', { className: ARROW_TIP + ' ' + this.tipClass });\n tip.appendChild(createElement('div', { className: ARROW_TIP_OUTER + ' ' + this.tipClass }));\n tip.appendChild(createElement('div', { className: ARROW_TIP_INNER + ' ' + this.tipClass }));\n this.tooltipEle.appendChild(tip);\n };\n BlazorTooltip.prototype.getTooltipPosition = function (target) {\n this.tooltipEle.style.display = 'block';\n var pos = calculatePosition(target, this.tooltipPositionX, this.tooltipPositionY);\n var offsetPos = this.calculateTooltipOffset(this.position);\n var elePos = this.collisionFlipFit(target, pos.left + offsetPos.left, pos.top + offsetPos.top);\n this.tooltipEle.style.display = '';\n return elePos;\n };\n BlazorTooltip.prototype.checkCollision = function (target, x, y) {\n var elePos = {\n left: x, top: y, position: this.position,\n horizontal: this.tooltipPositionX, vertical: this.tooltipPositionY\n };\n var affectedPos = isCollide(this.tooltipEle, (this.target ? this.element.element : null), x, y);\n if (affectedPos.length > 0) {\n elePos.horizontal = affectedPos.indexOf('left') >= 0 ? 'Right' : affectedPos.indexOf('right') >= 0 ? 'Left' :\n this.tooltipPositionX;\n elePos.vertical = affectedPos.indexOf('top') >= 0 ? 'Bottom' : affectedPos.indexOf('bottom') >= 0 ? 'Top' :\n this.tooltipPositionY;\n }\n return elePos;\n };\n BlazorTooltip.prototype.collisionFlipFit = function (target, x, y) {\n var elePos = this.checkCollision(target, x, y);\n var newpos = elePos.position;\n if (this.tooltipPositionY !== elePos.vertical) {\n newpos = ((this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\n elePos.vertical + this.tooltipPositionX : this.tooltipPositionX + elePos.vertical);\n }\n if (this.tooltipPositionX !== elePos.horizontal) {\n if (newpos.indexOf('Left') === 0) {\n elePos.vertical = (newpos === 'LeftTop' || newpos === 'LeftCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Left');\n }\n if (newpos.indexOf('Right') === 0) {\n elePos.vertical = (newpos === 'RightTop' || newpos === 'RightCenter') ? 'Top' : 'Bottom';\n newpos = (elePos.vertical + 'Right');\n }\n elePos.horizontal = this.tooltipPositionX;\n }\n this.tooltipEventArgs = {\n type: null, cancel: false, target: target, event: null,\n element: this.tooltipEle, collidedPosition: newpos\n };\n this.element.trigger('beforeCollision', this.tooltipEventArgs);\n if (elePos.position !== newpos) {\n var pos = calculatePosition(target, elePos.horizontal, elePos.vertical);\n this.adjustArrow(target, newpos, elePos.horizontal, elePos.vertical);\n var offsetPos = this.calculateTooltipOffset(newpos);\n offsetPos.top -= (('TopBottom'.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) &&\n ('TopBottom'.indexOf(newpos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * this.offsetY) : 0;\n offsetPos.left -= (('RightLeft'.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) &&\n ('RightLeft'.indexOf(newpos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * this.offsetX) : 0;\n elePos.position = newpos;\n elePos.left = pos.left + offsetPos.left;\n elePos.top = pos.top + offsetPos.top;\n }\n else {\n this.adjustArrow(target, newpos, elePos.horizontal, elePos.vertical);\n }\n var eleOffset = { left: elePos.left, top: elePos.top };\n var left = fit(this.tooltipEle, (this.target ? this.element.element : null), { X: true, Y: false }, eleOffset).left;\n this.tooltipEle.style.display = 'block';\n if (this.showTipPointer && (newpos.indexOf('Bottom') === 0 || newpos.indexOf('Top') === 0)) {\n var arrowEle = this.tooltipEle.querySelector('.' + ARROW_TIP);\n var arrowleft = parseInt(arrowEle.style.left, 10) - (left - elePos.left);\n if (arrowleft < 0) {\n arrowleft = 0;\n }\n else if ((arrowleft + arrowEle.offsetWidth) > this.tooltipEle.clientWidth) {\n arrowleft = this.tooltipEle.clientWidth - arrowEle.offsetWidth;\n }\n arrowEle.style.left = arrowleft.toString() + 'px';\n }\n this.tooltipEle.style.display = '';\n eleOffset.left = left;\n return eleOffset;\n };\n BlazorTooltip.prototype.calculateTooltipOffset = function (position) {\n var pos = { top: 0, left: 0 };\n var tooltipEleWidth = this.tooltipEle.offsetWidth;\n var tooltipEleHeight = this.tooltipEle.offsetHeight;\n var arrowEle = this.tooltipEle.querySelector('.' + ARROW_TIP);\n var tipWidth = arrowEle ? arrowEle.offsetWidth : 0;\n var tipHeight = arrowEle ? arrowEle.offsetHeight : 0;\n var tipAdjust = (this.showTipPointer ? SHOW_POINTER_TIP_GAP : HIDE_POINTER_TIP_GAP);\n var tipHeightAdjust = (tipHeight / 2) + POINTER_ADJUST + (this.tooltipEle.offsetHeight - this.tooltipEle.clientHeight);\n var tipWidthAdjust = (tipWidth / 2) + POINTER_ADJUST + (this.tooltipEle.offsetWidth - this.tooltipEle.clientWidth);\n switch (position) {\n case 'RightTop':\n pos.left += tipWidth + tipAdjust;\n pos.top -= tooltipEleHeight - tipHeightAdjust;\n break;\n case 'RightCenter':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'RightBottom':\n pos.left += tipWidth + tipAdjust;\n pos.top -= (tipHeightAdjust);\n break;\n case 'BottomRight':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n case 'BottomCenter':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n case 'BottomLeft':\n pos.top += (tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'LeftBottom':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tipHeightAdjust);\n break;\n case 'LeftCenter':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight / 2);\n break;\n case 'LeftTop':\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\n pos.top -= (tooltipEleHeight - tipHeightAdjust);\n break;\n case 'TopLeft':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\n break;\n case 'TopRight':\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tipWidthAdjust);\n break;\n default:\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\n pos.left -= (tooltipEleWidth / 2);\n break;\n }\n pos.left += this.offsetX;\n pos.top += this.offsetY;\n return pos;\n };\n BlazorTooltip.prototype.reposition = function (target) {\n var elePos = this.getTooltipPosition(target);\n this.tooltipEle.style.left = elePos.left + 'px';\n this.tooltipEle.style.top = elePos.top + 'px';\n };\n BlazorTooltip.prototype.beforeRenderBlazor = function (target, ctrlObj) {\n if (target) {\n if (Browser.isDevice) {\n addClass([ctrlObj.tooltipEle], DEVICE);\n }\n if (ctrlObj.width !== 'auto') {\n ctrlObj.tooltipEle.style.maxWidth = formatUnit(ctrlObj.width);\n }\n ctrlObj.tooltipEle.appendChild(createElement('div', { className: CONTENT + ' ' + 'e-diagramTooltip-content' }));\n document.body.appendChild(ctrlObj.tooltipEle);\n addClass([ctrlObj.tooltipEle], POPUP_OPEN);\n removeClass([ctrlObj.tooltipEle], HIDE_POPUP);\n ctrlObj.addDescribedBy(target, ctrlObj.ctrlId + '_content');\n ctrlObj.renderContent(target);\n addClass([ctrlObj.tooltipEle], POPUP_OPEN);\n if (this.showTipPointer) {\n ctrlObj.renderArrow();\n }\n var elePos = this.getTooltipPosition(target);\n this.tooltipEle.classList.remove(POPUP_LIB);\n this.tooltipEle.style.left = elePos.left + 'px';\n this.tooltipEle.style.top = elePos.top + 'px';\n ctrlObj.reposition(target);\n ctrlObj.adjustArrow(target, ctrlObj.position, ctrlObj.tooltipPositionX, ctrlObj.tooltipPositionY);\n }\n };\n BlazorTooltip.prototype.addDescribedBy = function (target, id) {\n var describedby = (target.getAttribute('aria-describedby') || '').split(/\\s+/);\n if (describedby.indexOf(id) < 0) {\n describedby.push(id);\n }\n attributes(target, { 'aria-describedby': describedby.join(' ').trim(), 'data-tooltip-id': id });\n };\n BlazorTooltip.prototype.renderContent = function (target) {\n var tooltipContent = this.tooltipEle.querySelector('.' + CONTENT);\n if (this.cssClass) {\n addClass([this.tooltipEle], this.cssClass.split(' '));\n }\n if (target && !isNullOrUndefined(target.getAttribute('title'))) {\n target.setAttribute('data-content', target.getAttribute('title'));\n target.removeAttribute('title');\n }\n if (!isNullOrUndefined(this.content)) {\n if (this.isBlazorTooltip || !(false)) {\n tooltipContent.innerHTML = '';\n if (this.content instanceof HTMLElement) {\n tooltipContent.appendChild(this.content);\n }\n else if (typeof this.content === 'string' && this.content.indexOf('
Blazor') < 0) {\n tooltipContent.innerHTML = this.content;\n }\n else {\n var templateFunction = compile(this.content);\n append(templateFunction({}, null, null, this.element.element.id + 'content'), tooltipContent);\n if (typeof this.content === 'string' && this.content.indexOf('
Blazor') >= 0) {\n this.isBlazorTemplate = true;\n updateBlazorTemplate(this.element.element.id + 'content', 'Content', this);\n }\n }\n }\n }\n else {\n if (target && !isNullOrUndefined(target.getAttribute('data-content'))) {\n tooltipContent.innerHTML = target.getAttribute('data-content');\n }\n }\n };\n BlazorTooltip.prototype.updateTipPosition = function (position) {\n var selEle = this.tooltipEle.querySelectorAll('.' + ARROW_TIP + ',.' + ARROW_TIP_OUTER + ',.' + ARROW_TIP_INNER);\n var removeList = [TIP_BOTTOM, TIP_TOP, TIP_LEFT, TIP_RIGHT];\n removeClass(selEle, removeList);\n this.setTipClass(position);\n addClass(selEle, this.tipClass);\n };\n BlazorTooltip.prototype.adjustArrow = function (target, position, tooltipPositionX, tooltipPositionY) {\n if (!this.showTipPointer) {\n return;\n }\n this.updateTipPosition(position);\n var leftValue;\n var topValue;\n this.tooltipEle.style.display = 'block';\n var tooltipWidth = this.tooltipEle.clientWidth;\n var tooltipHeight = this.tooltipEle.clientHeight;\n var arrowEle = this.tooltipEle.querySelector('.' + ARROW_TIP);\n var arrowInnerELe = this.tooltipEle.querySelector('.' + ARROW_TIP_INNER);\n var tipWidth = arrowEle.offsetWidth;\n var tipHeight = arrowEle.offsetHeight;\n this.tooltipEle.style.display = '';\n if (this.tipClass === TIP_BOTTOM || this.tipClass === TIP_TOP) {\n if (this.tipClass === TIP_BOTTOM) {\n topValue = '99.9%';\n // Arrow icon aligned -2px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 2) + 'px';\n }\n else {\n topValue = -(tipHeight - 1) + 'px';\n // Arrow icon aligned -6px height from ArrowOuterTip div\n arrowInnerELe.style.top = '-' + (tipHeight - 6) + 'px';\n }\n if (target) {\n var tipPosExclude = tooltipPositionX !== 'Center' || (tooltipWidth > target.offsetWidth);\n if ((tipPosExclude && tooltipPositionX === 'Left') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n leftValue = (tooltipWidth - tipWidth - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionX === 'Right') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n leftValue = POINTER_ADJUST + 'px';\n }\n else {\n leftValue = ((tooltipWidth / 2) - (tipWidth / 2)) + 'px';\n }\n }\n }\n else {\n if (this.tipClass === TIP_RIGHT) {\n leftValue = '99.9%';\n // Arrow icon aligned -2px left from ArrowOuterTip div\n arrowInnerELe.style.left = '-' + (tipWidth - 2) + 'px';\n }\n else {\n leftValue = -(tipWidth - 1) + 'px';\n // Arrow icon aligned -2px from ArrowOuterTip width\n arrowInnerELe.style.left = (-(tipWidth) + (tipWidth - 2)) + 'px';\n }\n var tipPosExclude = tooltipPositionY !== 'Center' || (tooltipHeight > target.offsetHeight);\n if ((tipPosExclude && tooltipPositionY === 'Top') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\n topValue = (tooltipHeight - tipHeight - POINTER_ADJUST) + 'px';\n }\n else if ((tipPosExclude && tooltipPositionY === 'Bottom') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\n topValue = POINTER_ADJUST + 'px';\n }\n else {\n topValue = ((tooltipHeight / 2) - (tipHeight / 2)) + 'px';\n }\n }\n arrowEle.style.top = topValue;\n arrowEle.style.left = leftValue;\n };\n /**\n * Returns the module name of the blazor tooltip\n *\n * @returns {string} Returns the module name of the blazor tooltip\n */\n BlazorTooltip.prototype.getModuleName = function () {\n return 'BlazorTooltip';\n };\n return BlazorTooltip;\n}());\nexport { BlazorTooltip };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, isBlazor, initializeCSPTemplate } from '@syncfusion/ej2-base';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { BlazorTooltip } from '../blazor-tooltip/blazor-Tooltip';\n/**\n * Defines the tooltip that should be shown when the mouse hovers over node.\n * An object that defines the description, appearance and alignments of tooltip\n */\nvar DiagramTooltip = /** @class */ (function (_super) {\n __extends(DiagramTooltip, _super);\n function DiagramTooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], DiagramTooltip.prototype, \"content\", void 0);\n __decorate([\n Property('TopLeft')\n ], DiagramTooltip.prototype, \"position\", void 0);\n __decorate([\n Property('Mouse')\n ], DiagramTooltip.prototype, \"relativeMode\", void 0);\n __decorate([\n Property(true)\n ], DiagramTooltip.prototype, \"showTipPointer\", void 0);\n __decorate([\n Property('auto')\n ], DiagramTooltip.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], DiagramTooltip.prototype, \"height\", void 0);\n __decorate([\n Property('Auto')\n ], DiagramTooltip.prototype, \"openOn\", void 0);\n __decorate([\n Property()\n ], DiagramTooltip.prototype, \"animation\", void 0);\n return DiagramTooltip;\n}(ChildProperty));\nexport { DiagramTooltip };\n/**\n * initTooltip method \\\n *\n * @returns { Tooltip | BlazorTooltip } initTooltip method .\\\n * @param {Diagram} diagram - provide the points value.\n *\n * @private\n */\nexport function initTooltip(diagram) {\n var tooltip;\n if (!isBlazor()) {\n var tooltipOption = new Tooltip;\n tooltipOption = updateTooltipContent(diagram.tooltip, tooltipOption);\n tooltip = new Tooltip(tooltipOption);\n tooltip.beforeCollision = beforeCollision;\n tooltip.beforeOpen = beforeOpen;\n tooltip.cssClass = 'e-diagram-tooltip';\n tooltip.opensOn = 'custom';\n tooltip.appendTo('#' + diagram.element.id);\n tooltip.close();\n }\n else {\n tooltip = new BlazorTooltip(diagram);\n tooltip = updateTooltipContent(diagram.tooltip, tooltip);\n }\n return tooltip;\n}\n/**\n * beforeOpen method \\\n *\n * @returns { void } beforeOpen method .\\\n * @param {TooltipEventArgs} args - provide the points value.\n *\n * @private\n */\nfunction beforeOpen(args) {\n if ((this.content === '' || this.content === undefined)) {\n args.element.style.display = 'none';\n }\n}\n/**\n * beforeCollision method \\\n *\n * @returns { void } beforeCollision method .\\\n * @param {TooltipEventArgs} args - provide the points value.\n *\n * @private\n */\nfunction beforeCollision(args) {\n if ((args.collidedPosition && args.collidedPosition !== this.position)) {\n args.element.style.display = 'none';\n }\n}\n/**\n * updateTooltip method \\\n *\n * @returns { Tooltip } updateTooltip method .\\\n * @param {Diagram} diagram - provide the points value.\n * @param {NodeModel | ConnectorModel} node - provide the points value.\n *\n * @private\n */\nexport function updateTooltip(diagram, node) {\n //let tooltip: DiagramTooltipModel;\n var tooltipObject = diagram.tooltipObject;\n var tooltip = node ? node.tooltip : diagram.tooltip;\n updateTooltipContent(tooltip, tooltipObject);\n return tooltipObject;\n}\n/**\n * updateTooltipContent method \\\n *\n * @returns { Tooltip | BlazorTooltip } updateTooltipContent method .\\\n * @param {DiagramTooltipModel} tooltip - provide the points value.\n * @param {Tooltip | BlazorTooltip} tooltipObject - provide the points value.\n *\n * @private\n */\nfunction updateTooltipContent(tooltip, tooltipObject) {\n if (tooltip.content) {\n tooltipObject.content = tooltip.content;\n //Task 834121: Content-Security-Policy support for diagram\n if (typeof tooltip.content === 'string') {\n var contentTemp = function () {\n return tooltip.content;\n };\n tooltipObject.content = initializeCSPTemplate(contentTemp);\n }\n tooltipObject.position = tooltip.position;\n tooltipObject.showTipPointer = tooltip.showTipPointer;\n tooltipObject.width = tooltip.width;\n tooltipObject.height = tooltip.height;\n if (!tooltip.animation) {\n tooltipObject.animation = { close: { effect: 'None' } };\n }\n else {\n tooltipObject.animation = tooltip.animation;\n }\n }\n else {\n tooltipObject.close();\n }\n return tooltipObject;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { ShapeStyle, Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { PortConstraints, PortVisibility } from '../enum/enum';\nimport { DiagramTooltip } from './tooltip';\n/**\n * Defines the behavior of connection ports\n */\nvar Port = /** @class */ (function (_super) {\n __extends(Port, _super);\n // tslint:disable-next-line:no-any\n function Port(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n _this.inEdges = [];\n _this.outEdges = [];\n return _this;\n }\n __decorate([\n Property('')\n ], Port.prototype, \"id\", void 0);\n __decorate([\n Property('Center')\n ], Port.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], Port.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Complex({}, Margin)\n ], Port.prototype, \"margin\", void 0);\n __decorate([\n Property(12)\n ], Port.prototype, \"width\", void 0);\n __decorate([\n Property(12)\n ], Port.prototype, \"height\", void 0);\n __decorate([\n Complex({}, ShapeStyle)\n ], Port.prototype, \"style\", void 0);\n __decorate([\n Property('Square')\n ], Port.prototype, \"shape\", void 0);\n __decorate([\n Property(PortVisibility.Connect)\n ], Port.prototype, \"visibility\", void 0);\n __decorate([\n Property('')\n ], Port.prototype, \"pathData\", void 0);\n __decorate([\n Property(PortConstraints.Default)\n ], Port.prototype, \"constraints\", void 0);\n __decorate([\n Property()\n ], Port.prototype, \"addInfo\", void 0);\n __decorate([\n Property()\n ], Port.prototype, \"outEdges\", void 0);\n __decorate([\n Property()\n ], Port.prototype, \"inEdges\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], Port.prototype, \"tooltip\", void 0);\n return Port;\n}(ChildProperty));\nexport { Port };\n/**\n * Defines the behavior of a port, that sticks to a point\n */\nvar PointPort = /** @class */ (function (_super) {\n __extends(PointPort, _super);\n function PointPort(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n /**\n * getClassName method \\\n *\n * @returns { string } toBounds method .\\\n *\n * @private\n */\n PointPort.prototype.getClassName = function () {\n return 'PointPort';\n };\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], PointPort.prototype, \"offset\", void 0);\n return PointPort;\n}(Port));\nexport { PointPort };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { TextStyle, Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { AnnotationConstraints } from '../enum/enum';\nimport { randomId } from '../utility/base-util';\n/**\n * Defines the hyperlink for the annotations in the nodes/connectors\n */\nvar Hyperlink = /** @class */ (function (_super) {\n __extends(Hyperlink, _super);\n function Hyperlink() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('blue')\n ], Hyperlink.prototype, \"color\", void 0);\n __decorate([\n Property('')\n ], Hyperlink.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], Hyperlink.prototype, \"link\", void 0);\n __decorate([\n Property('None')\n ], Hyperlink.prototype, \"textDecoration\", void 0);\n __decorate([\n Property('NewTab')\n ], Hyperlink.prototype, \"hyperlinkOpenState\", void 0);\n return Hyperlink;\n}(ChildProperty));\nexport { Hyperlink };\n/**\n * Defines the textual description of nodes/connectors\n */\nvar Annotation = /** @class */ (function (_super) {\n __extends(Annotation, _super);\n // tslint:disable-next-line:no-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Annotation(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n if (!defaultValue.id) {\n if (parent.parentObj && parent.parentObj.propName && parent.parentObj.propName === 'phases') {\n _this.id = parent.parentObj.id;\n }\n else {\n _this.id = randomId();\n }\n }\n return _this;\n }\n __decorate([\n Property('')\n ], Annotation.prototype, \"content\", void 0);\n __decorate([\n Property(undefined)\n ], Annotation.prototype, \"template\", void 0);\n __decorate([\n Property('String')\n ], Annotation.prototype, \"annotationType\", void 0);\n __decorate([\n Property(true)\n ], Annotation.prototype, \"visibility\", void 0);\n __decorate([\n Property(AnnotationConstraints.InheritReadOnly)\n ], Annotation.prototype, \"constraints\", void 0);\n __decorate([\n Complex(undefined, Hyperlink)\n ], Annotation.prototype, \"hyperlink\", void 0);\n __decorate([\n Property('')\n ], Annotation.prototype, \"id\", void 0);\n __decorate([\n Property()\n ], Annotation.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Annotation.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], Annotation.prototype, \"rotateAngle\", void 0);\n __decorate([\n Complex({ strokeWidth: 0, strokeColor: 'transparent', fill: 'transparent' }, TextStyle)\n ], Annotation.prototype, \"style\", void 0);\n __decorate([\n Property('Center')\n ], Annotation.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], Annotation.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Complex({}, Margin)\n ], Annotation.prototype, \"margin\", void 0);\n __decorate([\n Complex({ top: undefined, bottom: undefined, left: undefined, right: undefined }, Margin)\n ], Annotation.prototype, \"dragLimit\", void 0);\n __decorate([\n Property('Shape')\n ], Annotation.prototype, \"type\", void 0);\n __decorate([\n Property()\n ], Annotation.prototype, \"addInfo\", void 0);\n return Annotation;\n}(ChildProperty));\nexport { Annotation };\n/**\n * Defines the textual description of nodes/connectors with respect to bounds\n */\nvar ShapeAnnotation = /** @class */ (function (_super) {\n __extends(ShapeAnnotation, _super);\n /* eslint-disable */\n function ShapeAnnotation(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n // eslint-disable-next-line valid-jsdoc\n /**\n * @private\n * Returns the module of class ShapeAnnotation\n */\n ShapeAnnotation.prototype.getClassName = function () {\n return 'ShapeAnnotation';\n };\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], ShapeAnnotation.prototype, \"offset\", void 0);\n return ShapeAnnotation;\n}(Annotation));\nexport { ShapeAnnotation };\n/**\n * Defines the connector annotation\n */\nvar PathAnnotation = /** @class */ (function (_super) {\n __extends(PathAnnotation, _super);\n /* eslint-disable */\n function PathAnnotation(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n /* eslint-enable */\n /**\n * Returns the module of class PathAnnotation.\n *\n * @returns {string} Returns the module of class PathAnnotation.\n * @private\n */\n PathAnnotation.prototype.getClassName = function () {\n return 'PathAnnotation';\n };\n __decorate([\n Property(0.5)\n ], PathAnnotation.prototype, \"offset\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], PathAnnotation.prototype, \"displacement\", void 0);\n __decorate([\n Property('Center')\n ], PathAnnotation.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], PathAnnotation.prototype, \"segmentAngle\", void 0);\n return PathAnnotation;\n}(Annotation));\nexport { PathAnnotation };\n","/**\n *ShapeDictionary defines the shape of the default nodes and ports \\\n *\n * @returns { string } ShapeDictionary defines the shape of the default nodes and ports.\\\n * @param {PortShapes} shape - provide the element value.\n *\n * @private\n */\nexport function getPortShape(shape) {\n return portShapes[shape.toString()];\n}\n/**\n *ShapeDictionary defines the shape of the default nodes and ports \\\n *\n * @returns { string } ShapeDictionary defines the shape of the default nodes and ports.\\\n * @param {DecoratorShapes} shape - provide the element value.\n * @param {DecoratorModel} decorator - provide the element value.\n\n *\n * @private\n */\nexport function getDecoratorShape(shape, decorator) {\n if (shape === 'Custom') {\n return decorator.pathData;\n }\n return decoratorShapes[\"\" + shape];\n}\nexport function getSegmentThumbShapeHorizontal(shapes) {\n return segmentThumbShapeHorizontal[\"\" + shapes];\n}\nexport function getSegmentThumbShapeVertical(shapes) {\n return segmentThumbShapeVertical[\"\" + shapes];\n}\n/**\n *sets the path data for different icon shapes \\\n *\n * @returns { string } sets the path data for different icon shapes\\\n * @param {IconShapeModel} icon - provide the element value.\n *\n * @private\n */\nexport function getIconShape(icon) {\n var data;\n switch (icon.shape) {\n case 'Minus':\n data = 'M0,50 L100,50';\n break;\n case 'Plus':\n data = 'M0,-50 L0,50 M-50,0 L50,0';\n break;\n case 'ArrowUp':\n data = 'M0,100 L50,0 L100,100 Z';\n break;\n case 'ArrowDown':\n data = 'M0,0 L50,100 L100,0 Z';\n break;\n case 'Path':\n data = icon.pathData;\n break;\n }\n return data;\n}\n// eslint-disable-next-line prefer-const\nvar portShapes = {\n 'X': 'M14,14 L106,106 M106,14 L14,106',\n 'Circle': 'M0,50 A50,50,0 1 1 100,50 A50,50,0 1 1 0,50 Z',\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z'\n};\n// eslint-disable-next-line prefer-const\nvar decoratorShapes = {\n 'OpenArrow': 'M15.9,23 L5,16 L15.9,9 L17,10.7 L8.7,16 L17,21.3Z',\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Fletch': 'M14.8,10c0,0-3.5,6,0.2,12c0,0-2.5-6-10.9-6C4.1,16,11.3,16,14.8,10z',\n 'OpenFetch': 'M6,17c-0.6,0-1-0.4-1-1s0.4-1,1-1c10.9,0,11-5,11-5' +\n 'c0-0.6,0.4-1,1-1s1,0.4,1,1C19,10.3,18.9,17,6,17C6,17,6,17,6,17z ' +\n 'M18,23c-0.5,0-1-0.4-1-1c0-0.2-0.3-5-11-5c-0.6,0-1-0.5-1-1s0.4-1,1-1c0,0,0,0,0,0' +\n 'c12.9,0,13,6.7,13,7 C19,22.6,18.6,23,18,23z',\n 'IndentedArrow': 'M17,10c0,0-4.5,5.5,0,12L5,16L17,10z',\n 'OutdentedArrow': 'M14.6,10c0,0,5.4,6,0,12L5,16L14.6,10z',\n 'DoubleArrow': 'M19,10 L19,22 L13,16Z M12,10 L12,22 L6,16Z',\n 'Arrow': 'M15,10 L15,22 L5,16Z',\n 'Diamond': 'M12,23l-7-7l7-7l6.9,7L12,23z',\n 'Circle': 'M0,50 A50,50,0 1 1 100,50 A50,50,0 1 1 0,50 Z'\n};\nvar segmentThumbShapeHorizontal = {\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Rhombus': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Rectangle': 'M0,0 L15,0 L15,10 L0,10 z ',\n 'OpenArrow': 'M15.9,23 L5,16 L15.9,9 L17,10.7 L8.7,16 L17,21.3Z',\n 'Fletch': 'M9.82,0 C9.82,0,6.61,5,10,10 C10,10,7.71,5,0,5 C0,5,6.61,5,9.82,0 Z ',\n 'OpenFetch': 'M0.71,5.71 C0.29,5.71,0,5.43,0,5 C0,4.57,0.29,4.29,0.71,4.29 C8.5,4.29,8.57,0.71,8.57,0.71 C8.57,0.29,8.86,0,9.29,0 C9.719999999999999,0,10,0.29,10,0.71 C10,0.93,9.93,5.71,0.71,5.71 C0.71,5.71,0.71,5.71,0.71,5.71 Z M9.29,10 C8.93,10,8.57,9.71,8.57,9.29 C8.57,9.14,8.36,5.71,0.71,5.71 C0.29,5.71,0,5.36,0,5 C0,4.64,0.29,4.29,0.71,4.29 C0.71,4.29,0.71,4.29,0.71,4.29 C9.93,4.29,10,9.07,10,9.29 C10,9.71,9.71,10,9.29,10 Z ',\n 'IndentedArrow': 'M10,0 C10,0,6.25,4.58,10,10 L0,5 L10,0 Z ',\n 'OutdentedArrow': 'M8,0 C8,0,12.5,5,8,10 L0,5 L8,0 Z ',\n 'DoubleArrow': 'M19,10 L19,22 L13,16Z M12,10 L12,22 L6,16Z',\n 'Arrow': 'M15,10 L15,22 L5,16Z',\n 'Diamond': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Circle': 'M10,5 C10,7.76,7.76,10,5,10 C2.24,10,0,7.76,0,5 C0,2.24,2.24,0,5,0 C7.76,0,10,2.24,10,5 Z ',\n 'Ellipse': 'M15,5 C15,7.76,11.64,10,7.5,10 C3.36,10,0,7.76,0,5 C0,2.24,3.36,0,7.5,0 C11.64,0,15,2.24,15,5 Z '\n};\nvar segmentThumbShapeVertical = {\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Rhombus': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Rectangle': 'M0,0 L15,0 L15,10 L0,10 z',\n 'OpenArrow': 'M23,15.9 L16,5 L9,15.9 L10.7,17 L16,8.7 L21,17.3Z',\n 'Fletch': 'M9.82,0 C9.82,0,6.61,5,10,10 C10,10,7.71,5,0,5 C0,5,6.61,5,9.82,0 Z ',\n 'OpenFetch': 'M0.71,5.71 C0.29,5.71,0,5.43,0,5 C0,4.57,0.29,4.29,0.71,4.29 C8.5,4.29,8.57,0.71,8.57,0.71 C8.57,0.29,8.86,0,9.29,0 C9.719999999999999,0,10,0.29,10,0.71 C10,0.93,9.93,5.71,0.71,5.71 C0.71,5.71,0.71,5.71,0.71,5.71 Z M9.29,10 C8.93,10,8.57,9.71,8.57,9.29 C8.57,9.14,8.36,5.71,0.71,5.71 C0.29,5.71,0,5.36,0,5 C0,4.64,0.29,4.29,0.71,4.29 C0.71,4.29,0.71,4.29,0.71,4.29 C9.93,4.29,10,9.07,10,9.29 C10,9.71,9.71,10,9.29,10 Z ',\n 'IndentedArrow': 'M10,0 C10,0,6.25,4.58,10,10 L0,5 L10,0 Z ',\n 'OutdentedArrow': 'M8,0 C8,0,12.5,5,8,10 L0,5 L8,0 Z ',\n 'DoubleArrow': 'M10,19 L22,19 L16,13Z M10,12 L22,12 L16,6Z',\n 'Arrow': 'M10,15 L22,15 L16,5Z',\n 'Diamond': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Circle': 'M10,5 C10,7.76,7.76,10,5,10 C2.24,10,0,7.76,0,5 C0,2.24,2.24,0,5,0 C7.76,0,10,2.24,10,5 Z ',\n 'Ellipse': 'M15,5 C15,7.76,11.64,10,7.5,10 C3.36,10,0,7.76,0,5 C0,2.24,3.36,0,7.5,0 C11.64,0,15,2.24,15,5 Z '\n};\n","/**\n * FlowShapeDictionary defines the shape of the built-in flow shapes \\\n *\n * @returns { string } FlowShapeDictionary defines the shape of the built-in flow shapes .\\\n * @param {string} shape - provide the element value.\n *\n * @private\n */\nexport function getFlowShape(shape) {\n return flowShapes[shape.toString()];\n}\n/* eslint-disable */\nvar flowShapes = {\n // Process,\n 'Process': 'M419.511,76.687L359.511,76.687L359.511,43.086L419.511,43.086z',\n // Decision,\n 'Decision': 'M 253.005,115.687L 200.567,146.071L 148.097,115.687L 200.534,85.304L 253.005,115.687 Z',\n // Document,\n 'Document': 'M 60 31.9 c 0 0 -11 -7.7 -30 0 s -30 0 -30 0 V 0 h 60 V 31.9 Z',\n // PreDefinedProcess,\n 'PreDefinedProcess': 'M 0,0 L 50,0 L 50,50 L 0,50 Z M 8.334,0 L 8.334,50 M 41.667,0 L 41.667,50',\n // Terminator,\n 'Terminator': 'M 269.711,29.33C 269.71,44.061 257.77,56 243.04,56L 158.058,56C 143.33,56 131.39,44.061 131.39,29.33L 131.39,29.33' +\n 'C 131.391,14.6057 143.33,2.669 158.058,2.669L 243.044,2.669C 257.772,2.669 269.711,14.6057 269.711,29.333 Z',\n // PaperTap,\n 'PaperTap': 'M0.0009,17.2042 L0.0009,47.165 C0.001,47.165 14.403,53.5455 25.00,47.165 C35.599,40.7852 44.403,43.5087 50.00,47.165' +\n 'L50.001,17.2042 M50.001,32.7987 L50.001,2.8405 C50.001,2.8405 35.599,-3.5427 25.001,2.8405' +\n 'C14.403,9.2237 5.599,6.494 0.0009,2.8405 L0.0009,32.7987',\n // DirectData,\n 'DirectData': 'M 132.62 0 L 17.38 0 C 7.78 0 0 13.43 0 30 C 0 46.57 7.78 60 17.38 60 L 132.62 60 M 132.62 0' +\n 'C 123.02 0 115.24 13.43 115.24 30 C 115.24 46.57 123.02 60 132.62 60 C 142.22 60 150 46.57 150 30 C 150 13.43 142.22 0 132.62 0 z ',\n // SequentialData,\n 'SequentialData': 'M0.0029,24.999 C0.0029,11.1922 10.433,0.0021 23.295,0.0021 C36.159,0.00216 46.585,11.1922 46.585,24.999' +\n 'C46.585,38.8057 36.159,49.9979 23.295,49.9979 C10.433,49.9979 0.0029,38.8057 0.0029,24.999 z M23.294,49.999 L50.002,49.999',\n // Sort,\n 'Sort': 'M50.001,24.9971 L25.001,49.9971 L0.00097,24.9971 L25.001,-0.00286865 L50.001,24.9971 z' +\n ' M0.000976562,24.9971 L50.001,24.9971',\n // MultiDocument,\n 'MultiDocument': 'M43.6826,40 C44.8746,40.6183 45.8586,41.3502 46.8366,42.1122 L46.8366,4.74487 L3.09857,4.74487 L3.09857,10.9544' +\n ' M46.837,35.143 C48.027,35.765 49.025,36.604 50.003,37.369 L50.003,0.002 L6.264,0.002 L6.264,4.744 M43.682,47.113 L43.682,10.765' +\n ' L0.0025,10.7652 L0.0025,47.1132 C0.0025,47.1132 12.5846,53.6101 21.8426,47.1132 C31.1006,40.6163 38.792,43.393 43.6826,47.1132 z',\n // Collate,\n 'Collate': 'M50.001,0.0028 L25.001,25.0029 L0.00097,0.0028 L50.001,0.002 z M0.0009,50.002 L25.001,25.002' +\n 'L50.001,50.002 L0.0009,50.0029 z',\n // SummingJunction,\n 'SummingJunction': 'M7.3252,42.6768 L42.6772,7.3247 M42.6768,42.6768 L7.3248,7.3247 M0.0009,25.001 ' +\n 'C0.0009,11.193 11.197,0.0009 25.001,0.0009' +\n ' C38.809,0.0009 50.001,11.193 50.001,25.001 C50.001,38.809 38.809,50.001 25.001,50.001 C11.197,50.00 0.0009,38.809 0.0009,25.00 z',\n // Or,\n 'Or': 'M 0 50 L 100 50 M 50 100 L 50 0.0 M 0 50 C 0 22.384 22.392 0 50 0 C 77.616 0 100 22.384 100 50' +\n ' C 100 77.616 77.616 100 50 100 C 22.392 100 0 77.616 0 50 Z',\n // InternalStorage,\n 'InternalStorage': 'M 0 3.81946A 2.5,3.81946 0 0,1 2.5,0L 47.5 0A 2.5,3.81946 0 0,1 50,3.81946' +\n 'L 50 45.836A 2.5,3.819446 0 0,1 47.5,49.652778' +\n 'L 2.5 49.652778A 2.5,3.819446 0 0,1 0,45.8336L 0 3.819446ZM 0 11.45834L 50 11.4583334M 12.5 0L 12.5 49.652778',\n // Extract,\n 'Extract': 'M0,35 L30,0 L60,35 Z',\n // ManualOperation,\n 'ManualOperation': 'M46.4,28.8 L14.8,28.8 L0,0 L60,0 Z',\n // Merge,\n 'Merge': 'M60,0 L30,35 L0,0 Z',\n // OffPageReference,\n 'OffPageReference': 'M60,33.3 L30.1,39 L0,33.3 L0,0 L60,0 Z',\n // SequentialAccessStorage,\n 'SequentialAccessStorage': 'M 60 30 C 60 13.4 46.6 0 30 0 S 0 13.4 0 30 s 13.4 30 30 30 h 28.6 v -6.5 h -9.9' +\n 'C 55.5 48 60 39.5 60 30 Z',\n // Annotation,\n 'Annotation': 'M49.9984,50.0029 L-0.00271199,50.0029 L-0.00271199,0.00286865 L49.9984,0.00286865',\n // Annotation2,\n 'Annotation2': 'M49.9977,50.0029 L25.416,50.0029 L25.416,0.00286865 L49.9977,0.00286865 M25.4166,25.0029 L-0.00227869,25.0029',\n // Data,\n 'Data': 'M 10 0 L 40 0 L 30 40 L 0 40 Z',\n // Card,\n 'Card': 'M275,60 L400,60 L400,110 L260,110 L260,75 Z',\n // Delay,\n 'Delay': 'M0,0 L12.029,0 C14.212999,0 16,1.7869979 16,3.9709952 C16,6.1549926 14.212999,7.9409904 12.029,7.9409904 L0,7.9409904 z',\n // Preparation,\n 'Preparation': 'M 1048.17 572 C 1051.06 568.86 1055.17 567.05 1059.5 567 L 1094.51 567'\n + ' C 1098.84 567.05 1102.95 568.86 1105.84 572' +\n ' L 1126.43 595 C 1127.01 596.28 1127.01 597.72 1126.43 599 L 1105.84 622 C 1102.95 625.14 1098.84 626.95 1094.51 627' +\n ' L 1059.5 627 C 1055.17 626.95 1051.06 625.14 1048.17 622 L 1027.58 599 C 1027 597.72 1027 596.28 1027.58 595 L 1048.17 572 Z',\n // Display,\n 'Display': 'M47.8809,19.2914 L32.7968,-0.00594145 L11.3902,-0.00594145 C7.93166,-0.00594145 0.00124586,11.187 0.00124586,24.9968' +\n 'C0.00124586,38.8032 7.93166,49.9962 11.3902,49.9962 L32.7968,49.99 L47.615,31.038 C47.615,31.0388 52.798,24.9968 47.880,19.2914 z',\n // ManualInput,\n 'ManualInput': 'M 912 732 L 1006.85 707 C 1008.2 707 1009.5 707.53 1010.46 708.46 C 1011.41 709.4 1011.95 710.67 1011.95 712' +\n ' L 1011.95 762C 1012 764.41 1010.28 766.52 1007.87 767 L 917.1 767 C 915.75 767 914.45 766.47 913.49 765.54' +\n ' C 912.54 764.6 912 763.33 912 762 L 912 732 Z',\n // LoopLimit,\n 'LoopLimit': 'M 8 9 L 27 9 L 33 15 L 33 26 C 33 27 33 27 32 27 L 4 27 C 3 27 2 27 2 26 L 2 15 L 8 9 Z',\n // StoredData\n 'StoredData': 'M 5.55 0L 50 0A 1.5,30 0 0,1 50,0A 5.555,25 0 0,0 50,50A 1.5,30 0 0,1 50,50L 5.555 50A 5.55,25 0 0,1 5.555,0Z',\n};\n/* eslint-enable */\n","/* eslint-disable jsdoc/require-returns-check */\nimport { Point } from './../primitives/point';\nimport { Rect } from './../primitives/rect';\nimport { getPoints, intersect3 } from './diagram-util';\nimport { NoOfSegments } from '../enum/enum';\nimport { StraightSegment, BezierSegment, OrthogonalSegment } from './../objects/connector';\nimport { PathElement } from './../core/elements/path-element';\nimport { cornersPointsBeforeRotation, rotatePoint } from './base-util';\n/**\n * Connector modules are used to dock and update the connectors\n */\n/**\n * intermeditatePoints method\\\n *\n * @returns { Function } getFunction method .\\\n * @param {PointModel} element - provide the angle value.\n * @param {PointModel} layoutOrientation - provide the angle value.\n * @param {PointModel} lineDistribution - provide the angle value.\n * @private\n */\nexport function findConnectorPoints(element, layoutOrientation, lineDistribution) {\n //const intermeditatePoints: PointModel[];\n var sourcePoint;\n if (element.type === 'Straight' || !element.sourceWrapper) {\n sourcePoint = getSourcePoint(element);\n }\n else {\n sourcePoint = element.sourceWrapper.corners.center;\n }\n // eslint-disable-next-line\n var intermeditatePoints = terminateConnection(element, sourcePoint, element.targetPoint, layoutOrientation, lineDistribution);\n setLineEndPoint(element, intermeditatePoints[0], false);\n setLineEndPoint(element, intermeditatePoints[intermeditatePoints.length - 1], true);\n return intermeditatePoints;\n}\n/**\n * getSourcePoint method\\\n *\n * @returns { PointModel } getFunction method .\\\n * @param {PointModel} element - provide the angle value.\n * @private\n */\nfunction getSourcePoint(element) {\n var srcPoint;\n if (element.sourcePortWrapper) {\n var srcPort = element.sourcePortWrapper;\n //const srcNode: DiagramElement = element.sourceWrapper;\n var pt = { x: srcPort.offsetX, y: srcPort.offsetY };\n //const direction: string = getPortDirection(pt, cornersPointsBeforeRotation(srcNode), srcNode.bounds, false);\n srcPoint = pt;\n }\n else if (element.sourceID && element.sourceWrapper) {\n if (element.targetWrapper) {\n var sPoint = element.sourceWrapper.corners.center;\n var tPoint = element.targetWrapper.corners.center;\n srcPoint = getIntersection(element, element.sourceWrapper, sPoint, tPoint, false);\n }\n else {\n srcPoint = element.sourcePoint;\n }\n }\n else {\n srcPoint = element.sourcePoint;\n }\n return srcPoint;\n}\n/**\n * getDirection method \\\n *\n * @returns { void } getDirection method .\\\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {LayoutOrientation} layoutOrientation - provide the layoutOrientation value.\n *\n * @private\n */\nfunction getDirection(source, target, layoutOrientation) {\n if (layoutOrientation === 'LeftToRight') {\n source.direction = source.direction ? source.direction : 'Right';\n target.direction = target.direction ? target.direction : 'Left';\n }\n else if (layoutOrientation === 'RightToLeft') {\n source.direction = source.direction ? source.direction : 'Left';\n target.direction = target.direction ? target.direction : 'Right';\n }\n else if (layoutOrientation === 'TopToBottom') {\n source.direction = source.direction ? source.direction : 'Bottom';\n target.direction = target.direction ? target.direction : 'Top';\n }\n else if (layoutOrientation === 'BottomToTop') {\n source.direction = source.direction ? source.direction : 'Top';\n target.direction = target.direction ? target.direction : 'Bottom';\n }\n}\n/**\n * terminateConnection method \\\n *\n * @returns { PointModel[] } terminateConnection method .\\\n * @param {Connector} element - provide the element value.\n * @param {PointModel} srcPoint - provide the srcPoint value.\n * @param {PointModel} tarPoint - provide the tarPoint value.\n * @param {LayoutOrientation} layoutOrientation - provide the layoutOrientation value.\n * @param {boolean} lineDistribution - provide the lineDistribution value.\n *\n * @private\n */\nfunction terminateConnection(element, srcPoint, tarPoint, layoutOrientation, lineDistribution) {\n var sourceNode = element.sourceWrapper;\n var targetNode = element.targetWrapper;\n var sourcePort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var srcCorner;\n var tarCorner;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var intermeditatePoints = [];\n var segPoint;\n var srcDir;\n var tarDir;\n var minSpace = findMargin(element);\n var sourceMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var targetMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var source = { corners: srcCorner, point: srcPoint, direction: srcDir, margin: sourceMargin };\n var target = { corners: tarCorner, point: tarPoint, direction: tarDir, margin: targetMargin };\n var sourceCorners;\n var targetCorners;\n if (sourceNode !== undefined && targetNode !== undefined) {\n sourceCorners = cornersPointsBeforeRotation(sourceNode);\n targetCorners = cornersPointsBeforeRotation(targetNode);\n source.corners = sourceNode.corners;\n target.corners = targetNode.corners;\n }\n if (sourcePort !== undefined) {\n var port = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n source.direction = getPortDirection(port, sourceCorners, sourceNode.bounds, false);\n }\n if (targetPort !== undefined) {\n var tarPortPt = { x: targetPort.offsetX, y: targetPort.offsetY };\n target.direction = getPortDirection(tarPortPt, targetCorners, targetNode.bounds, false);\n }\n if (element.type === 'Bezier') {\n if (!element.isBezierEditing) {\n if (element.segments.length > 0) {\n var i = element.segments.length - 1;\n while (i >= 0) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n if (seg.isInternalSegment) {\n element.segments.pop();\n }\n i--;\n }\n }\n }\n }\n if (sourceNode !== undefined && targetNode !== undefined) {\n if (source.direction === undefined || target.direction === undefined) {\n if (layoutOrientation) {\n getDirection(source, target, layoutOrientation);\n }\n else {\n if (source.corners.top > target.corners.bottom &&\n Math.abs(source.corners.top - target.corners.bottom) > minSpace) {\n source.direction = source.direction ? source.direction : 'Top';\n target.direction = target.direction ? target.direction : 'Bottom';\n }\n else if (source.corners.bottom < target.corners.top &&\n Math.abs(source.corners.bottom - target.corners.top) > minSpace) {\n source.direction = source.direction ? source.direction : 'Bottom';\n target.direction = target.direction ? target.direction : 'Top';\n }\n else if ((source.corners.right < target.corners.left &&\n Math.abs(source.corners.right - target.corners.left) > minSpace) ||\n ((source.corners.right + minSpace < target.corners.left) ||\n (target.corners.right >= source.corners.left - minSpace && source.corners.left > target.corners.left))) {\n source.direction = source.direction ? source.direction : 'Right';\n target.direction = target.direction ? target.direction : 'Left';\n }\n else if ((source.corners.left > target.corners.right &&\n Math.abs(source.corners.left - target.corners.right) > (source.margin.left + source.margin.right)) ||\n ((target.corners.right + minSpace < source.corners.left ||\n (source.corners.right >= target.corners.left - minSpace\n && source.corners.left < target.corners.left)))) {\n source.direction = source.direction ? source.direction : 'Left';\n target.direction = target.direction ? target.direction : 'Right';\n }\n else {\n if (sourceNode.id !== targetNode.id && (!sourceCorners.equals(sourceCorners, targetCorners)) &&\n targetCorners.containsPoint(sourceCorners.topCenter, source.margin.top)) {\n source.direction = source.direction ? source.direction : 'Bottom';\n target.direction = target.direction ? target.direction : 'Top';\n }\n else {\n source.direction = source.direction ? source.direction : 'Top';\n target.direction = target.direction ? target.direction : 'Bottom';\n }\n }\n }\n }\n return defaultOrthoConnection(element, source.direction, target.direction, source.point, target.point, lineDistribution);\n }\n //It will be called only when there is only one end node\n checkLastSegmentasTerminal(element);\n if (element.sourceWrapper || element.targetWrapper) {\n connectToOneEnd(element, source, target);\n }\n if (element.type === 'Straight' || element.type === 'Bezier') {\n intermeditatePoints = intermeditatePointsForStraight(element, source, target);\n }\n else {\n if (element.type === 'Orthogonal' && element.segments && element.segments.length > 0 &&\n element.segments[0].length !== null &&\n element.segments[0].direction !== null) {\n intermeditatePoints = findPointToPointOrtho(element, source, target, sourceNode, targetNode, sourcePort, targetPort);\n }\n else {\n var extra = void 0;\n if (!source.direction) {\n source.direction = (target.direction) ? ((element.targetPortWrapper !== undefined) ? target.direction : getOppositeDirection(target.direction)) :\n Point.direction(source.point, target.point);\n }\n else {\n extra = adjustSegmentLength(sourceNode.bounds, source, 20);\n }\n element.segments[0].points = intermeditatePoints = orthoConnection3Segment(element, source, target, extra);\n }\n }\n return intermeditatePoints;\n}\n/**\n * updateSegmentPoints method \\\n *\n * @returns { PointModel[] } updateSegmentPoints method .\\\n * @param {End} source - provide the source value.\n * @param {OrthogonalSegment} segment - provide the segment value.\n *\n * @private\n */\nfunction updateSegmentPoints(source, segment) {\n //let segPoint: PointModel; //let angle: number; //let extra: number;\n source.direction = segment.direction;\n segment.points = [];\n segment.points.push(source.point);\n var extra = (segment.direction === 'Left' || segment.direction === 'Top') ? -(segment.length) : segment.length;\n var angle = (segment.direction === 'Left' || segment.direction === 'Right') ? 0 : 90;\n var segPoint = addLineSegment(source.point, extra, angle);\n segment.points.push(segPoint);\n return segPoint;\n}\n/**\n * pointToPoint method \\\n *\n * @returns { void } pointToPoint method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction pointToPoint(element, source, target) {\n var point;\n var direction;\n var portdirection;\n source.corners = (element.sourceWrapper) ? element.sourceWrapper.corners : undefined;\n if (element.sourcePortWrapper) {\n var port = { x: element.sourcePortWrapper.offsetX, y: element.sourcePortWrapper.offsetY };\n portdirection = getPortDirection(port, cornersPointsBeforeRotation(element.sourceWrapper), element.sourceWrapper.bounds, false);\n if (source.corners && (source.direction === 'Bottom' || source.direction === 'Top')) {\n if (target.point.x > source.corners.left && target.point.x < source.corners.right) {\n direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n }\n }\n else if (source.corners && (source.direction === 'Left' || source.direction === 'Right')) {\n if (target.point.y > source.corners.top && target.point.y < source.corners.bottom) {\n direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n }\n }\n }\n if (element.sourcePortWrapper && portdirection === getOppositeDirection(direction)) {\n var length_1;\n if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y >= source.corners.top\n && source.point.y <= source.corners.center.y) &&\n (target.point.y >= source.corners.top && target.point.y <= source.corners.center.y)) {\n source.direction = 'Top';\n length_1 = source.point.y - source.corners.top + 20;\n }\n else if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y > source.corners.center.y\n && source.point.y <= source.corners.bottom) &&\n (target.point.y > source.corners.center.y && target.point.y <= source.corners.bottom)) {\n source.direction = 'Bottom';\n length_1 = source.corners.bottom - source.point.y + 20;\n }\n else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x >= source.corners.left\n && source.point.x <= source.corners.center.x) &&\n (target.point.x >= source.corners.left && target.point.x <= source.corners.center.x)) {\n source.direction = 'Left';\n length_1 = source.point.x - source.corners.left + 20;\n }\n else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x <= source.corners.right\n && source.point.x > source.corners.center.x) &&\n (target.point.x <= source.corners.right && target.point.x < source.corners.center.x)) {\n source.direction = 'Right';\n length_1 = source.corners.right - source.point.x + 20;\n }\n if (source.direction && length_1) {\n point = orthoConnection3Segment(element, source, target, length_1, true);\n }\n }\n else {\n source.direction = (direction) ? direction : findSourceDirection(source.direction, source.point, target.point);\n point = orthoConnection2Segment(source, target);\n }\n return point;\n}\n/**\n * pointToNode method \\\n *\n * @returns { void } pointToNode method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction pointToNode(element, source, target) {\n var point;\n target.corners = element.targetWrapper.corners;\n findDirection(element.targetWrapper, source, target, element);\n var direction = findSourceDirection(target.direction, source.point, target.point);\n if (source.direction === target.direction && (source.direction === 'Left' || source.direction === 'Right')) {\n source.direction = direction;\n point = orthoConnection3Segment(element, source, target, element.targetWrapper.width / 2 + 20);\n var source1 = source;\n source1.point = point[1];\n findDirection(element.targetWrapper, source, target, element);\n point = orthoConnection3Segment(element, source, target);\n }\n else {\n source.direction = direction;\n point = orthoConnection2Segment(source, target);\n }\n return point;\n}\n/**\n * addPoints method \\\n *\n * @returns { void } addPoints method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction addPoints(element, source, target) {\n target.corners = element.targetWrapper.corners;\n var direction;\n var length;\n if (source.direction !== 'Left' && source.direction !== 'Right') {\n if (target.corners.center.y === source.point.y &&\n (!(target.corners.left <= source.point.x && source.point.x <= target.corners.right))) {\n direction = 'Top';\n length = target.corners.height / 2 + 20;\n }\n else if ((target.corners.center.y === source.point.y &&\n element.segments[element.segments.length - 2].direction === 'Bottom') ||\n (target.corners.center.y > source.point.y && source.point.y >= target.corners.top)) {\n direction = 'Top';\n length = (source.point.y - target.corners.top) + 20;\n }\n else if ((target.corners.center.y === source.point.y &&\n element.segments[element.segments.length - 2].direction === 'Top') ||\n (target.corners.center.y < source.point.y && source.point.y <= target.corners.bottom)) {\n direction = 'Bottom';\n length = (target.corners.bottom - source.point.y) + 20;\n }\n else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n source.corners.top <= source.point.y && source.point.y <= source.corners.bottom) {\n direction = source.direction;\n length = (source.point.y > target.point.y) ? (source.point.y - source.corners.top + 20) :\n (source.corners.bottom - source.point.y + 20);\n }\n }\n else {\n if (target.corners.center.x === source.point.x &&\n (!(target.corners.top < source.point.y && source.point.y <= target.corners.bottom))) {\n direction = 'Left';\n length = target.corners.width / 2 + 20;\n }\n else if ((target.corners.center.x === source.point.x &&\n element.segments[element.segments.length - 2].direction === 'Right')\n || (target.corners.center.x > source.point.x && source.point.x >= target.corners.left)) {\n direction = 'Left';\n length = (source.point.x - target.corners.left) + 20;\n }\n else if ((target.corners.center.x === source.point.x &&\n element.segments[element.segments.length - 2].direction === 'Left') ||\n (target.corners.center.x <= source.point.x && source.point.x <= target.corners.right)) {\n direction = 'Right';\n length = (target.corners.right - source.point.x) + 20;\n }\n else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n source.corners.left <= source.point.x && source.point.x <= source.corners.right) {\n direction = source.direction;\n length = (source.point.x > target.point.x) ? (source.point.x - source.corners.left + 20) :\n (source.corners.right - source.point.x + 20);\n }\n }\n var extra = (direction === 'Left' || direction === 'Top') ? -(length) : length;\n var angle = (direction === 'Left' || direction === 'Right') ? 0 : 90;\n var refPoint = source.point;\n source.point = addLineSegment(source.point, extra, angle);\n source.direction = Point.direction(source.point, target.point);\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n (source.corners.center.x === target.corners.center.x || source.corners.center.y === target.corners.center.y)) {\n source.direction = target.direction;\n }\n var point = orthoConnection3Segment(element, source, target);\n point.splice(0, 0, refPoint);\n return point;\n}\n/**\n * findSegmentDirection method \\\n *\n * @returns { void } findSegmentDirection method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {Direction} portDir - provide the target value.\n *\n * @private\n */\nfunction findSegmentDirection(element, source, target, portDir) {\n var update = false;\n switch (target.direction) {\n case 'Left':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && (portDir === 'Right' &&\n source.point.x > target.point.x && source.point.y >= source.corners.top &&\n source.point.y <= source.corners.bottom)\n || (((portDir === 'Bottom' && source.point.y > target.point.y) ||\n (portDir === 'Top' && source.point.y < target.point.y)) &&\n source.point.x >= source.corners.left && source.point.x <= source.corners.right)) {\n source.direction = (portDir === 'Right') ? ((source.point.y > target.point.y) ? 'Top' : 'Bottom') :\n (source.point.x < target.point.x ? 'Right' : 'Left');\n update = true;\n }\n else if (source.point.x > target.point.x && (source.point.y > target.point.y || source.point.y < target.point.y)\n && (!(target.corners.top > source.point.y && target.corners.bottom < source.point.y))) {\n source.direction = 'Left';\n }\n else if ((source.point.x < target.point.x && source.point.y > target.point.y) ||\n (source.point.x > target.point.x && (source.point.y <= target.point.y)\n && ((target.corners.top < source.point.y && target.corners.center.y >= source.point.y)))) {\n source.direction = 'Top';\n }\n else if ((source.point.x < target.point.x && source.point.y < target.point.y) ||\n (source.point.x > target.point.x && (source.point.y > target.point.y)\n && ((target.corners.bottom < source.point.y && target.corners.center.y > source.point.y)))) {\n source.direction = 'Bottom';\n }\n else if (source.point.y === target.point.y && source.point.x < target.point.x) {\n source.direction = 'Right';\n }\n break;\n case 'Right':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n ((portDir === 'Bottom' && source.point.y > target.point.y) ||\n (portDir === 'Top' && source.point.y < target.point.y)) && source.point.x > target.point.x &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right)) {\n source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n update = true;\n }\n else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n portDir === 'Left' && source.point.x < target.point.x && (source.point.y >= source.corners.top &&\n source.point.y <= source.corners.bottom)) {\n source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n update = true;\n }\n else if (source.point.x < target.point.x && target.corners.top <= source.point.y\n && target.corners.bottom >= source.point.y && source.point.y === target.point.y) {\n source.direction = 'Top';\n }\n else if (source.point.y > target.point.y && source.point.x > target.point.x) {\n source.direction = 'Top';\n }\n else if (source.point.y < target.point.y && source.point.x > target.point.x) {\n source.direction = 'Bottom';\n }\n else if (source.point.x < target.point.x && (source.point.y > target.point.y ||\n source.point.y < target.point.y)) {\n source.direction = 'Right';\n }\n else if (source.point.y === target.point.y && source.point.x > target.point.x) {\n source.direction = 'Left';\n }\n break;\n case 'Top':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && (portDir === 'Bottom' &&\n source.point.y > target.point.y && source.point.x >= source.corners.left &&\n source.point.x <= source.corners.right) || (((portDir === 'Right' && source.point.x > target.point.x) ||\n (portDir === 'Left' && target.point.y > source.point.y && target.point.x > source.point.x)) &&\n (source.point.y >= source.corners.top && source.point.y <= source.corners.bottom))) {\n source.direction = (portDir === 'Bottom') ? ((source.point.x > target.point.x) ? 'Left' : 'Right') :\n (source.point.y < target.point.y) ? 'Bottom' : 'Top';\n update = true;\n }\n else if (source.point.x === target.point.x && source.point.y < target.point.y) {\n source.direction = 'Bottom';\n }\n else if (source.point.y > target.point.y && source.point.x > target.corners.left &&\n source.point.x < target.corners.right) {\n source.direction = 'Left';\n }\n else if (source.point.y >= target.point.y) {\n source.direction = 'Top';\n }\n else if (source.point.y < target.point.y && source.point.x > target.point.x) {\n source.direction = 'Left';\n }\n else if (source.point.y < target.point.y && source.point.x < target.point.x) {\n source.direction = 'Right';\n }\n break;\n case 'Bottom':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && ((((portDir === 'Right') ||\n (portDir === 'Left' && target.point.x > source.point.x)) && (source.point.y > target.point.y) &&\n source.point.y >= source.corners.top && source.point.y <= source.corners.bottom) ||\n (((portDir === 'Top' && source.point.y < target.point.y)) &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right)))) {\n if (portDir === 'Right' || portDir === 'Left') {\n source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n }\n else {\n source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n }\n update = true;\n }\n else if (source.point.y < target.point.y && source.point.x > target.corners.left &&\n target.corners.right > source.point.x) {\n if (source.point.y < target.point.y && source.point.x > target.corners.left &&\n target.corners.center.x >= source.point.x) {\n source.direction = 'Left';\n }\n else if (source.point.y < target.point.y && source.point.x < target.corners.right &&\n target.corners.center.x < source.point.x) {\n source.direction = 'Right';\n }\n }\n else if (source.point.y > target.point.y && source.point.x > target.point.x) {\n source.direction = 'Left';\n }\n else if (source.point.y > target.point.y && source.point.x < target.point.x) {\n source.direction = 'Right';\n }\n else if (source.point.y <= target.point.y && (source.point.x > target.point.x || target.point.x > source.point.x)) {\n source.direction = 'Bottom';\n }\n break;\n }\n return update;\n}\n/**\n * pointToPort method \\\n *\n * @returns { void } pointToPort method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction pointToPort(element, source, target) {\n var point;\n target.corners = element.targetWrapper.corners;\n var portdirection;\n var length;\n if (element.sourcePortWrapper !== undefined) {\n var port = { x: element.sourcePortWrapper.offsetX, y: element.sourcePortWrapper.offsetY };\n portdirection = getPortDirection(port, cornersPointsBeforeRotation(element.sourceWrapper), element.sourceWrapper.bounds, false);\n }\n var update = findSegmentDirection(element, source, target, portdirection);\n // EJ2-65063 - Added below condition !selectedSegmentIndex to prevent the connector segment to split from two points into four points\n if ((!element.selectedSegmentIndex) && element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n target.direction === getOppositeDirection(portdirection) &&\n ((((target.direction === 'Left' && source.point.x > target.point.x) || (target.direction === 'Right' &&\n source.point.x < target.point.x)) && source.point.y >= source.corners.top &&\n source.point.y <= source.corners.bottom) || (target.direction === 'Bottom' && source.point.y < target.point.y &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right)))) {\n point = addPoints(element, source, target);\n }\n else if ((!element.selectedSegmentIndex) && source.direction === target.direction) {\n point = orthoConnection3Segment(element, source, target);\n }\n else if ((!element.selectedSegmentIndex) && (((target.direction === 'Left' && source.point.x > target.point.x) ||\n (target.direction === 'Right' && source.point.x < target.point.x)) && (source.direction === 'Top' || source.direction === 'Bottom')\n && ((source.point.y <= target.point.y) &&\n ((target.corners.top <= source.point.y && target.corners.bottom >= source.point.y)))) ||\n ((target.direction === 'Top' && source.point.y > target.point.y) ||\n (target.direction === 'Bottom' && source.point.y < target.point.y) &&\n ((target.corners.left <= source.point.x && target.corners.right >= source.point.x)))) {\n // EJ2-69304 - Return the 2 segment points if allowNodeOverlap is set as true.\n if (!element.selectedSegmentIndex) {\n point = addPoints(element, source, target);\n }\n else {\n point = orthoConnection2Segment(source, target);\n }\n }\n else {\n if ((!element.selectedSegmentIndex) && element.sourceWrapper !== undefined && element.targetWrapper !== undefined && element.targetPortWrapper !== undefined &&\n ((source.direction === 'Left' || source.direction === 'Right') &&\n (source.point.y >= source.corners.top && source.point.y <= source.corners.bottom)\n && (target.direction === 'Top' || target.direction === 'Bottom') &&\n (target.corners.center.x === source.corners.center.x))) {\n source.direction = (target.direction === 'Top') ? 'Bottom' : 'Top';\n length = (target.direction === 'Top') ? (source.corners.bottom - source.point.y + 20) :\n (source.point.y - source.corners.top + 20);\n point = orthoConnection3Segment(element, source, target, length);\n }\n else if ((!element.selectedSegmentIndex) && element.sourceWrapper !== undefined && element.targetWrapper !== undefined && element.targetPortWrapper !== undefined &&\n ((source.direction === 'Top' || source.direction === 'Bottom') &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right) &&\n (target.direction === 'Left' || target.direction === 'Right') && (target.corners.center.y === source.corners.center.y))) {\n source.direction = (target.direction === 'Left') ? 'Right' : 'Left';\n length = (target.direction === 'Left') ? (source.corners.right - source.point.x + 20) :\n (source.point.x - source.corners.left + 20);\n point = orthoConnection3Segment(element, source, target, length);\n }\n else if (update) {\n if (source.direction === 'Left' || source.direction === 'Right') {\n length = (source.direction === 'Left') ? (source.point.x - source.corners.left + 20) :\n (source.corners.right - source.point.x + 20);\n }\n else {\n length = (source.direction === 'Top') ? (source.point.y - source.corners.top + 20) :\n (source.corners.bottom - source.point.y + 20);\n }\n point = orthoConnection3Segment(element, source, target, length);\n }\n else {\n point = orthoConnection2Segment(source, target);\n }\n }\n return point;\n}\n/**\n * findPointToPointOrtho method \\\n *\n * @returns { void } findPointToPointOrtho method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} source - provide the source value.\n * @param {DiagramElement} target - provide the target value.\n * @param {DiagramElement} sourceNode - provide the target value.\n * @param {DiagramElement} targetNode - provide the target value.\n * @param {DiagramElement} sourcePort - provide the sourcePort value.\n * @param {DiagramElement} targetPort - provide the targetPort value.\n *\n * @private\n */\nfunction findPointToPointOrtho(element, source, target, sourceNode, targetNode, sourcePort, targetPort) {\n var j;\n var point;\n var intermeditatePoints = [];\n var direction;\n var port; //let seg: OrthogonalSegment;\n checkLastSegmentasTerminal(element);\n var removeSegment;\n if (element.segments.length > 0) {\n for (var i = 0; i < element.segments.length; i++) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n if (i === 0 && element.sourcePortWrapper !== undefined) {\n port = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n direction = getPortDirection(port, cornersPointsBeforeRotation(sourceNode), sourceNode.bounds, false);\n if (seg.direction === getOppositeDirection(direction)) {\n seg.direction = direction;\n }\n }\n if (i > 0 && element.segments[i - 1].direction === seg.direction) {\n i = checkConsectiveSegmentAsSame(element, i, source);\n }\n else {\n var lastSegment = element.segments[i - 1];\n source.point = (seg.direction) ? updateSegmentPoints(source, seg) :\n lastSegment.points[lastSegment.points.length - 1];\n }\n if (i === element.segments.length - 1) {\n if (!targetPort && !targetNode) {\n point = pointToPoint(element, source, target);\n }\n else if (element.targetWrapper && element.targetPortWrapper === undefined) {\n checkSourcePointInTarget(element, source);\n point = pointToNode(element, source, target);\n }\n else {\n point = pointToPort(element, source, target);\n }\n if (point) {\n checkPreviousSegment(point, element, source);\n seg.points = [];\n if (point.length >= 2) {\n for (j = 0; j < point.length; j++) {\n seg.points.push(point[parseInt(j.toString(), 10)]);\n }\n }\n else {\n removeSegment = i;\n }\n }\n }\n if (sourcePort && i === 0) {\n var sourcePoint = checkPortdirection(element, sourcePort, sourceNode);\n if (sourcePoint) {\n source.point = sourcePoint;\n }\n }\n }\n if (removeSegment !== undefined) {\n if (removeSegment === element.segments.length - 1) {\n element.segments[removeSegment - 1].direction = null;\n element.segments[removeSegment - 1].length = null;\n }\n element.segments.splice(removeSegment, 1);\n }\n intermeditatePoints = returnIntermeditatePoints(element, intermeditatePoints);\n }\n return intermeditatePoints;\n}\n/**\n * checkPortdirection method \\\n *\n * @returns { PointModel } checkPortdirection method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} sourcePort - provide the target value.\n * @param {DiagramElement} sourceNode - provide the target value.\n *\n * @private\n */\nfunction checkPortdirection(element, sourcePort, sourceNode) {\n var port = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n var point;\n var bounds = cornersPointsBeforeRotation(sourceNode);\n var direction = getPortDirection(port, bounds, sourceNode.bounds, false);\n var seg = element.segments[0];\n if (seg.direction !== direction) {\n pointsFromNodeToPoint(seg, direction, bounds, seg.points[0], seg.points[seg.points.length - 1], false);\n point = seg.points[seg.points.length - 1];\n seg.direction = Point.direction(seg.points[seg.points.length - 2], seg.points[seg.points.length - 1]);\n }\n return point;\n}\n/**\n * checkPreviousSegment method \\\n *\n * @returns { PointModel } checkPreviousSegment method .\\\n * @param {Connector} tPoints - provide the element value.\n * @param {DiagramElement} connector - provide the target value.\n * @param {DiagramElement} source - provide the target value.\n *\n * @private\n */\nfunction checkPreviousSegment(tPoints, connector, source) {\n var actualSegment = connector.segments[connector.segments.length - 2];\n var actualLastPoint = actualSegment.points[actualSegment.points.length - 1];\n var direction;\n if (((actualSegment.direction === 'Top' || actualSegment.direction === 'Bottom') && (actualLastPoint.x === tPoints[1].x)) ||\n ((actualSegment.direction === 'Left' || actualSegment.direction === 'Right') && (actualLastPoint.y === tPoints[1].y))) {\n actualSegment.points[actualSegment.points.length - 1] = tPoints[1];\n direction = Point.direction(actualSegment.points[0], actualSegment.points[actualSegment.points.length - 1]);\n if (connector.sourceWrapper !== undefined && connector.sourcePortWrapper === undefined &&\n direction === getOppositeDirection(actualSegment.direction)) {\n if (actualSegment.direction === 'Left' || actualSegment.direction === 'Right') {\n actualSegment.points[0].x = (actualSegment.direction === 'Right') ?\n actualSegment.points[0].x - connector.sourceWrapper.corners.width :\n actualSegment.points[0].x + connector.sourceWrapper.corners.width;\n }\n else {\n actualSegment.points[0].y = (actualSegment.direction === 'Bottom') ?\n actualSegment.points[0].y - connector.sourceWrapper.corners.height :\n actualSegment.points[0].y + connector.sourceWrapper.corners.height;\n }\n }\n actualSegment.direction = direction;\n actualSegment.length = Point.distancePoints(actualSegment.points[0], actualSegment.points[actualSegment.points.length - 1]);\n tPoints.splice(0, 1);\n }\n}\n/**\n * connectToOneEnd method \\\n *\n * @returns { void } connectToOneEnd method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} source - provide the target value.\n * @param {DiagramElement} target - provide the target value.\n *\n * @private\n */\nfunction connectToOneEnd(element, source, target) {\n var sourcePort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var node = element.sourceWrapper;\n var fixedPoint = source.point;\n var nodeMargin = { left: 0, right: 0, top: 0, bottom: 0 };\n var nodeConnectingPoint = { x: 0, y: 0 };\n var refPoint;\n var nodeDirection = 'Top';\n if (!node) {\n node = element.targetWrapper;\n nodeMargin = target.margin;\n }\n else {\n fixedPoint = target.point;\n nodeMargin = source.margin;\n }\n if (element.type === 'Orthogonal') {\n if ((element.segments && element.segments.length > 0) && element.sourceWrapper &&\n element.segments[0].direction) {\n source.direction = element.segments[0].direction;\n nodeConnectingPoint = findPoint(node.corners, source.direction);\n refPoint = findPoint(node.corners, getOppositeDirection(source.direction));\n nodeConnectingPoint = getIntersection(element, node, nodeConnectingPoint, refPoint, false);\n }\n else {\n var source_1 = { corners: null, direction: null, point: fixedPoint, margin: nodeMargin };\n var target_1 = { corners: null, direction: null, point: null, margin: null };\n findDirection(node, source_1, target_1, element);\n nodeConnectingPoint = target_1.point;\n nodeDirection = target_1.direction;\n }\n }\n else {\n var segmentPoint = void 0;\n if (element.segments && element.segments.length > 1) {\n if (node === element.sourceWrapper) {\n segmentPoint = element.segments[0].point;\n }\n else {\n segmentPoint = element.segments[element.segments.length - 2].point;\n }\n }\n nodeConnectingPoint = getIntersection(element, node, node.bounds.center, (element.segments && element.segments.length > 1) ? segmentPoint : fixedPoint, node === element.targetWrapper);\n }\n if (node === element.sourceWrapper) {\n source.direction = source.direction || nodeDirection;\n source.point = nodeConnectingPoint;\n if (element.sourcePortWrapper) {\n source.point = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n if (element.sourcePadding) {\n source.point = addPaddingToConnector(element, source, target, false);\n }\n }\n }\n else {\n target.direction = target.direction || nodeDirection;\n target.point = nodeConnectingPoint;\n if (element.targetPortWrapper) {\n target.point = { x: targetPort.offsetX, y: targetPort.offsetY };\n if (element.targetPadding) {\n target.point = addPaddingToConnector(element, source, target, true);\n }\n }\n }\n}\n/**\n * addPaddingToConnector method \\\n *\n * @returns { void } addPaddingToConnector method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} source - provide the target value.\n * @param {DiagramElement} target - provide the target value.\n * @param {DiagramElement} isTarget - provide the target value.\n *\n * @private\n */\nfunction addPaddingToConnector(element, source, target, isTarget) {\n var sourcePort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var padding = (isTarget) ? element.targetPadding : element.sourcePadding;\n var paddingPort = (isTarget) ? targetPort : sourcePort;\n var rect = new Rect(paddingPort.bounds.x - padding, paddingPort.bounds.y - padding, paddingPort.actualSize.width + 2 * padding, paddingPort.actualSize.height + 2 * padding);\n var segmentPoints = [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft];\n segmentPoints[segmentPoints.length] = segmentPoints[0];\n //const length: number = segmentPoints.length;\n var thisSegment = { x1: source.point.x, y1: source.point.y, x2: target.point.x, y2: target.point.y };\n var point = (isTarget) ? target.point : source.point;\n return getIntersectionPoints(thisSegment, segmentPoints, true, point) || point;\n}\n/**\n * checkSourceAndTargetIntersect method \\\n *\n * @returns { void } checkSourceAndTargetIntersect method .\\\n * @param {DiagramElement} sourceWrapper - provide the sourceWrapper value.\n * @param {DiagramElement} targetWrapper - provide the targetWrapper value.\n * @param {Connector} connector - provide the Connector value.\n *\n * @private\n */\nfunction checkSourceAndTargetIntersect(sourceWrapper, targetWrapper, connector) {\n var sourceSegment = createSegmentsCollection(sourceWrapper, connector.sourcePadding);\n var targetSegment = createSegmentsCollection(targetWrapper, connector.targetPadding);\n for (var i = 0; i < sourceSegment.length - 1; i++) {\n var srcSegment = sourceSegment[parseInt(i.toString(), 10)];\n for (var j = 0; j < targetSegment.length - 1; j++) {\n var tarSegmet = targetSegment[parseInt(j.toString(), 10)];\n if (intersect3(srcSegment, tarSegmet).enabled) {\n return true;\n }\n }\n }\n return false;\n}\n/**\n * createSegmentsCollection method \\\n *\n * @returns { Segment[] } createSegmentsCollection method .\\\n * @param {DiagramElement} sourceWrapper - provide the sourceWrapper value.\n * @param {number} padding - provide the padding value.\n *\n * @private\n */\nfunction createSegmentsCollection(sourceWrapper, padding) {\n var segments = [];\n var points = getPoints(sourceWrapper, sourceWrapper.corners, padding);\n points.push(points[0]);\n for (var i = 0; i < points.length - 1; i++) {\n segments.push(createLineSegment(points[parseInt(i.toString(), 10)], points[i + 1]));\n }\n return segments;\n}\n/**\n * createLineSegment method \\\n *\n * @returns { Segment } createLineSegment method .\\\n * @param {PointModel} sPt - provide the sourceWrapper value.\n * @param {PointModel} tPt - provide the padding value.\n *\n * @private\n */\nfunction createLineSegment(sPt, tPt) {\n var line = { x1: sPt.x, y1: sPt.y, x2: tPt.x, y2: tPt.y };\n return line;\n}\n/**\n * swapBounds method \\\n *\n * @returns { Corners } swapBounds method .\\\n * @param {PointModel} object - provide the sourceWrapper value.\n * @param {PointModel} bounds - provide the padding value.\n * @param {Rect} outerBounds - provide the padding value.\n *\n * @private\n */\nexport function swapBounds(object, bounds, outerBounds) {\n var rectBounds;\n var rotateAngle = object.rotateAngle + object.parentTransform;\n if (rotateAngle) {\n if (rotateAngle < 45) {\n return bounds;\n }\n else if (rotateAngle <= 135) {\n rectBounds = {\n width: bounds.width, height: bounds.height,\n topLeft: bounds.bottomLeft, topCenter: bounds.middleLeft, topRight: bounds.topLeft,\n middleLeft: bounds.bottomCenter, center: outerBounds.center, middleRight: bounds.topCenter,\n bottomLeft: bounds.bottomRight, bottomCenter: bounds.middleRight, bottomRight: bounds.topRight,\n left: outerBounds.left, right: outerBounds.right, top: outerBounds.top, bottom: outerBounds.bottom\n };\n }\n else if (rotateAngle <= 225) {\n rectBounds = {\n width: bounds.width, height: bounds.height,\n topLeft: bounds.bottomLeft, topCenter: bounds.bottomCenter, topRight: bounds.bottomRight,\n middleLeft: bounds.middleRight, center: outerBounds.center, middleRight: bounds.middleLeft,\n bottomLeft: bounds.topLeft, bottomCenter: bounds.topCenter, bottomRight: bounds.topRight,\n left: outerBounds.left, right: outerBounds.right, top: outerBounds.top,\n bottom: outerBounds.bottom\n };\n }\n else if (rotateAngle <= 315) {\n rectBounds = {\n width: bounds.width, height: bounds.height,\n topLeft: bounds.topRight, topCenter: bounds.middleRight, topRight: bounds.bottomRight,\n middleLeft: bounds.topCenter, center: outerBounds.center, middleRight: bounds.bottomCenter,\n bottomLeft: bounds.topLeft, bottomCenter: bounds.middleLeft, bottomRight: bounds.bottomLeft,\n left: outerBounds.left, right: outerBounds.right, top: outerBounds.top, bottom: outerBounds.bottom\n };\n }\n else {\n return bounds;\n }\n return rectBounds;\n }\n return bounds;\n}\n/**\n * defaultOrthoConnection method \\\n *\n * @returns { PointModel[] } defaultOrthoConnection method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {Direction} srcDir - provide the srcDir value.\n * @param {Direction} tarDir - provide the srcDir value.\n * @param {PointModel} sPt - provide the sPt value.\n * @param {PointModel} tPt - provide the tPt value.\n * @param {Rect} lineDistribution - provide the padding value.\n *\n * @private\n */\n/* tslint:disable */\n// eslint-disable-next-line\nfunction defaultOrthoConnection(ele, srcDir, tarDir, sPt, tPt, lineDistribution) {\n var sourceEle = ele.sourceWrapper;\n var targetEle = ele.targetWrapper;\n var srcPort = ele.sourcePortWrapper;\n var tarPort = ele.targetPortWrapper;\n var intermeditatePoints = [];\n var refPoint;\n var srcCor = sourceEle.corners;\n // eslint-disable-next-line\n var tarCor = targetEle.corners;\n var point = tarCor.center; //const i: number;\n var sourceMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var targetMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var source = { corners: srcCor, point: sPt, direction: srcDir, margin: sourceMargin };\n // eslint-disable-next-line\n var target = { corners: tarCor, point: tPt, direction: tarDir, margin: targetMargin };\n var srcBounds = swapBounds(sourceEle, srcCor, ele.sourceWrapper.bounds);\n var tarBounds = swapBounds(targetEle, tarCor, ele.targetWrapper.bounds);\n var isInterSect = false;\n if (ele.sourceWrapper && ele.targetWrapper) {\n isInterSect = checkSourceAndTargetIntersect(ele.sourceWrapper, ele.targetWrapper, ele);\n }\n if (srcPort !== undefined) {\n source.point = { x: srcPort.offsetX, y: srcPort.offsetY };\n switch (source.direction) {\n case 'Bottom':\n case 'Top':\n // eslint-disable-next-line\n source.point.y = source.point.y;\n break;\n case 'Left':\n case 'Right':\n // eslint-disable-next-line\n source.point.x = source.point.x;\n break;\n }\n if (ele.sourcePadding && !isInterSect) {\n if (tarPort) {\n target.point = {\n x: tarPort.offsetX,\n y: tarPort.offsetY\n };\n }\n source.point = addPaddingToConnector(ele, source, target, false);\n }\n }\n else {\n if (ele.type === 'Orthogonal' || ele.type === 'Bezier') {\n if (ele.segments && ele.segments.length > 0 && ele.segments[0].direction) {\n source.direction = ele.segments[0].direction;\n }\n source.point = findPoint(srcBounds, source.direction);\n refPoint = findPoint(srcBounds, getOppositeDirection(source.direction));\n source.point = getIntersection(ele, sourceEle, source.point, refPoint, false);\n }\n else {\n source.point = sourceEle.corners.center;\n }\n }\n if (tarPort !== undefined) {\n target.point = {\n x: tarPort.offsetX,\n y: tarPort.offsetY\n };\n switch (target.direction) {\n case 'Bottom':\n case 'Top':\n // eslint-disable-next-line\n target.point.y = target.point.y;\n break;\n case 'Left':\n case 'Right':\n // eslint-disable-next-line\n target.point.x = target.point.x;\n break;\n }\n if (ele.targetPadding && !isInterSect) {\n target.point = addPaddingToConnector(ele, source, target, true);\n }\n }\n else {\n if (ele.type === 'Orthogonal' || ele.type === 'Bezier') {\n target.point = findPoint(tarBounds, target.direction);\n refPoint = findPoint(tarBounds, getOppositeDirection(target.direction));\n target.point = getIntersection(ele, targetEle, target.point, refPoint, true);\n }\n else {\n target.point = targetEle.corners.center;\n }\n }\n if (ele.type !== 'Orthogonal') {\n var segment = void 0;\n var first = void 0;\n if (ele.type === 'Bezier') {\n //EJ2-67651 - Bezier segment points are static when we move the connector's source or target node.\n if ((ele.bezierSettings.allowSegmentsReset || (ele.segments.length === 0 ||\n (!Point.isEmptyPoint(ele.segments[ele.segments.length - 1].point))))) {\n intermeditatePoints = findOrthoSegments(ele, source, target, undefined, lineDistribution);\n intermeditatePoints = intermeditatePointsForStraight(ele, source, target);\n return intermeditatePoints;\n }\n else {\n checkLastSegmentasTerminal(ele);\n }\n }\n else {\n checkLastSegmentasTerminal(ele);\n }\n if (ele.sourcePortWrapper === undefined) {\n source.point = source.corners.center;\n if (ele.segments && ele.segments.length > 0) {\n first = ele.segments[0];\n segment = (!Point.isEmptyPoint(first.point)) ? first : undefined;\n }\n var tarPoint = (segment !== undefined) ? segment.point : target.point;\n if (ele.type === 'Bezier' && ele.segments.length > 0 &&\n ele.segments[0].vector1.angle && ele.segments[0].vector1.distance) {\n var value = Math.max(source.corners.width, source.corners.height);\n tarPoint = Point.transform(source.point, ele.segments[0].vector1.angle, value / 2);\n }\n source.point = isInterSect ? ele.sourceWrapper.bounds.center : getIntersection(ele, sourceEle, source.point, tarPoint, false);\n }\n if (ele.targetPortWrapper === undefined) {\n target.point = target.corners.center;\n if (ele.segments && ele.segments.length > 1) {\n first = ele.segments[ele.segments.length - 2];\n segment = (!Point.isEmptyPoint(first.point)) ? first : undefined;\n }\n var srcPoint = (segment) ? segment.point : source.point;\n if (ele.type === 'Bezier' && ele.segments.length > 0 &&\n ele.segments[ele.segments.length - 1].vector2.angle &&\n ele.segments[ele.segments.length - 1].vector2.distance) {\n var value = Math.max(source.corners.width, source.corners.height);\n srcPoint = Point.transform(target.point, ele.segments[0].vector2.angle, value / 2);\n }\n target.point = isInterSect ? ele.targetWrapper.bounds.center : getIntersection(ele, targetEle, srcPoint, target.point, true);\n }\n intermeditatePoints = intermeditatePointsForStraight(ele, source, target);\n }\n else {\n if (ele.type === 'Orthogonal' && (ele.segments && ele.segments.length > 0) &&\n ele.segments[0].direction !== null) {\n intermeditatePoints = findIntermeditatePoints(ele, source, target, srcPort, tarPort, sourceEle, targetEle);\n }\n else {\n if (!ele.segments[0]) {\n var segment = new OrthogonalSegment(ele, 'segments', { type: 'Orthogonal' }, true);\n ele.segments.push(segment);\n }\n // eslint-disable-next-line\n ele.segments[0].points = intermeditatePoints = findOrthoSegments(ele, source, target, undefined, lineDistribution);\n }\n }\n return intermeditatePoints;\n}\n/**\n * intermeditatePointsForStraight method \\\n *\n * @returns { PointModel[] } intermeditatePointsForStraight method .\\\n * @param {Connector} element - provide the Connector value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction intermeditatePointsForStraight(element, source, target) {\n var intermeditatePoints = [];\n if (element.segments && element.segments.length > 0) {\n var i = void 0;\n var segPoint = [];\n var srcPoint = source.point;\n for (i = 0; i < element.segments.length; i++) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n segPoint = [];\n segPoint.push(srcPoint);\n if (i !== element.segments.length - 1) {\n segPoint.push(seg.point);\n srcPoint = seg.point;\n }\n else {\n segPoint.push(target.point);\n }\n element.segments[parseInt(i.toString(), 10)].points = segPoint;\n if (element.segments.length > 1 && Point.equals(seg.points[0], seg.points[1])) {\n (element.segments).splice(i, 1);\n }\n if (seg) {\n for (var j = 0; j < seg.points.length; j++) {\n if (j > 0 || i === 0) {\n intermeditatePoints.push(seg.points[parseInt(j.toString(), 10)]);\n }\n }\n }\n }\n }\n return intermeditatePoints;\n}\n/**\n * findSourceDirection method \\\n *\n * @returns { PointModel[] } findSourceDirection method .\\\n * @param {Direction} dir - provide the dir value.\n * @param {PointModel} srcPoint - provide the srcPoint value.\n * @param {PointModel} tarPoint - provide the tarPoint value.\n *\n * @private\n */\nfunction findSourceDirection(dir, srcPoint, tarPoint) {\n var direction = (dir === 'Top' || dir === 'Bottom') ?\n ((tarPoint.x > srcPoint.x) ? 'Right' : 'Left') :\n ((tarPoint.y > srcPoint.y) ? 'Bottom' : 'Top');\n return direction;\n}\n/**\n * checkLastSegmentasTerminal method \\\n *\n * @returns { void } checkLastSegmentasTerminal method .\\\n * @param {Connector} ele - provide the Connector value.\n *\n * @private\n */\nfunction checkLastSegmentasTerminal(ele) {\n if (ele.type === 'Straight' || ele.type === 'Bezier') {\n if ((ele.segments.length === 0 || (ele.segments.length > 0 &&\n (!Point.isEmptyPoint(ele.segments[ele.segments.length - 1].point))))) {\n //let segment: BezierSegmentModel | StraightSegmentModel;\n if (ele.type === 'Bezier') {\n var segment = new BezierSegment(ele, 'segments', { type: 'Bezier', isInternalSegment: true }, true);\n (ele.segments).push(segment);\n }\n else {\n var segment = new StraightSegment(ele, 'segments', { type: 'Straight' }, true);\n (ele.segments).push(segment);\n }\n }\n }\n else {\n if (ele.segments.length === 0 || ele.segments[ele.segments.length - 1].direction) {\n var segment = new OrthogonalSegment(ele, 'segments', { type: 'Orthogonal' }, true);\n ele.segments.push(segment);\n }\n }\n}\n/**\n * checkConsectiveSegmentAsSame method \\\n *\n * @returns { number } checkConsectiveSegmentAsSame method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {Connector} i - provide the Connector value.\n * @param {Connector} source - provide the Connector value.\n *\n * @private\n */\nfunction checkConsectiveSegmentAsSame(ele, i, source) {\n var seg = ele.segments[parseInt(i.toString(), 10)];\n var extra = (seg.direction === 'Left' || seg.direction === 'Top') ? -(seg.length) : seg.length;\n var angle = (seg.direction === 'Left' || seg.direction === 'Right') ? 0 : 90;\n var segPoint = addLineSegment(source.point, extra, angle);\n ele.segments[i - 1].length += seg.length;\n ele.segments[i - 1].points[1] = source.point = segPoint;\n ele.segments.splice(i, 1);\n i--;\n return i;\n}\n/**\n * nodeOrPortToNode method \\\n *\n * @returns { PointModel[] } nodeOrPortToNode method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {End} source - provide the Connector value.\n * @param {End} target - provide the Connector value.\n *\n * @private\n */\nfunction nodeOrPortToNode(ele, source, target) {\n var point;\n var portdirection;\n if (ele.sourcePortWrapper) {\n var port = { x: ele.sourcePortWrapper.offsetX, y: ele.sourcePortWrapper.offsetY };\n portdirection = getPortDirection(port, cornersPointsBeforeRotation(ele.sourceWrapper), ele.sourceWrapper.bounds, false);\n }\n findDirection(ele.targetWrapper, source, target, ele);\n var direction = findSourceDirection(target.direction, source.point, target.point);\n if (ele.sourcePortWrapper !== undefined && source.direction === target.direction &&\n ((source.direction === 'Top' || source.direction === 'Bottom') && (source.corners.center.x === target.corners.center.x)\n || (source.direction === 'Left' || source.direction === 'Right') && (source.corners.center.y === target.corners.center.y))) {\n source.direction = direction;\n point = (direction === 'Top' || direction === 'Bottom') ?\n orthoConnection3Segment(ele, source, target, ele.sourceWrapper.height / 2 + 20) :\n orthoConnection3Segment(ele, source, target, ele.sourceWrapper.width / 2 + 20);\n var source1 = source;\n source1.point = point[1];\n if (direction === 'Left' || direction === 'Right') {\n target.direction = direction;\n target.point = (direction === 'Left') ? target.corners.middleLeft : target.corners.middleRight;\n }\n else {\n findDirection(ele.targetWrapper, source, target, ele);\n }\n point = orthoConnection3Segment(ele, source, target);\n }\n else if (target.point.x >= source.corners.left && target.point.x <= source.corners.right &&\n source.point.y >= source.corners.top && source.point.y <= source.corners.bottom) {\n source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top';\n var length_2 = (source.direction === 'Top') ? (source.point.y - source.corners.top + 20) :\n (source.corners.bottom - source.point.y + 20);\n point = orthoConnection3Segment(ele, source, target, length_2);\n }\n else if (ele.sourcePortWrapper && portdirection === getOppositeDirection(direction)) {\n var length_3;\n if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y >= source.corners.top\n && source.point.y <= source.corners.bottom)) {\n source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top';\n length_3 = source.corners.height / 2 + 20;\n }\n else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x >= source.corners.left\n && source.point.x <= source.corners.right)) {\n source.direction = (target.point.x > source.point.x) ? 'Right' : 'Left';\n length_3 = source.corners.width / 2 + 20;\n }\n if (source.direction && length_3) {\n point = orthoConnection3Segment(ele, source, target, length_3, true);\n }\n else {\n source.direction = direction;\n point = orthoConnection2Segment(source, target);\n }\n }\n else if (ele.sourcePortWrapper && portdirection === target.direction && (portdirection === 'Top' || portdirection === 'Bottom') &&\n (source.corners.center.x === target.corners.center.x)) {\n source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top';\n var len = (source.direction === 'Bottom') ? (source.corners.bottom - source.point.y + 20) :\n (source.point.y - source.corners.top + 20);\n point = orthoConnection3Segment(ele, source, target, len);\n }\n else {\n source.direction = direction;\n point = orthoConnection2Segment(source, target);\n }\n return point;\n}\n/**\n * checkSourcePointInTarget method \\\n *\n * @returns { void } checkSourcePointInTarget method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {End} source - provide the Connector value.\n *\n * @private\n */\nfunction checkSourcePointInTarget(ele, source) {\n if (ele.targetWrapper !== undefined && ele.targetPortWrapper === undefined) {\n var padding = 1;\n if (cornersPointsBeforeRotation(ele.targetWrapper).containsPoint(source.point, padding)) {\n var target = ele.targetWrapper;\n var segment = ele.segments[ele.segments.length - 2];\n var lastPoint = segment.points[segment.points.length - 1];\n var direction = getOppositeDirection(segment.direction);\n if (direction === 'Bottom') {\n if (lastPoint.y < target.corners.bottom + padding) {\n segment.points[segment.points.length - 1].y = target.corners.bottom + 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n else if (direction === 'Top') {\n if (lastPoint.y > target.corners.top - padding) {\n segment.points[segment.points.length - 1].y = target.corners.top - 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n else if (direction === 'Left') {\n if (lastPoint.x > target.corners.left - padding) {\n segment.points[segment.points.length - 1].x = target.corners.left - 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n else if (direction === 'Right') {\n if (lastPoint.x < target.corners.right + padding) {\n segment.points[segment.points.length - 1].x = target.corners.right + 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n source.point = segment.points[segment.points.length - 1];\n }\n }\n}\n/**\n * findIntermeditatePoints method \\\n *\n * @returns { void } findIntermeditatePoints method .\\\n * @param {Connector} ele - provide the ele value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the source value.\n * @param {DiagramElement} srcPort - provide the srcPort value.\n * @param {DiagramElement} tarPort - provide the tarPort value.\n * @param {DiagramElement} sourceEle - provide the sourceEle value.\n * @param {DiagramElement} targetEle - provide the targetEle value.\n * @private\n */\nfunction findIntermeditatePoints(ele, source, target, srcPort, tarPort, sourceEle, targetEle) {\n var point;\n var intermeditatePoints = [];\n var seg;\n var j;\n var removeSegment;\n checkLastSegmentasTerminal(ele);\n for (var i = 0; i < ele.segments.length; i++) {\n seg = ele.segments[parseInt(i.toString(), 10)];\n if (srcPort && source.direction === getOppositeDirection(seg.direction)) {\n seg.direction = source.direction;\n }\n if (i > 0 && ele.segments[i - 1].direction === seg.direction) {\n i = checkConsectiveSegmentAsSame(ele, i, source);\n }\n else {\n if (seg.direction) {\n source.point = updateSegmentPoints(source, ele.segments[parseInt(i.toString(), 10)]);\n }\n else {\n var segment = ele.segments[i - 1];\n source.point = segment.points[segment.points.length - 1];\n }\n }\n if (i === ele.segments.length - 1) {\n checkSourcePointInTarget(ele, source);\n if (tarPort === undefined) {\n point = nodeOrPortToNode(ele, source, target);\n }\n else {\n point = pointToPort(ele, source, target);\n }\n checkPreviousSegment(point, ele, source);\n seg.points = [];\n if (point.length >= 2) {\n for (j = 0; j < point.length; j++) {\n if (!ele.selectedSegmentIndex) {\n seg.points.push(point[parseInt(j.toString(), 10)]);\n }\n else {\n // EJ2-65063 - If point length is greater then 2 means then empty the last segment points and set it as two points instead of four points\n if (j === point.length - 1 && point.length > 2 && ele.segments.length > 2) {\n // EJ2-69304 - Change the point calculation to work for all port combination\n var point2 = { x: point[parseInt(j.toString(), 10)].x, y: source.point.y };\n // EJ2 - 65063 - Empty the segment points\n seg.points = [];\n // EJ2-69304 - Calculate the point for segment and manually push the point in segment point calculation\n seg.points.push(point2);\n seg.points.push(point[parseInt(j.toString(), 10)]);\n var segment = ele.segments[i - 1];\n // Bug 834713: Orthogonal connector routing is not proper, When allowNodeOverlap is Set to true.\n segment.points = segment.points.concat(seg.points);\n }\n else {\n seg.points.push(point[parseInt(j.toString(), 10)]);\n }\n }\n }\n }\n else {\n removeSegment = i;\n }\n }\n // EJ2-65063 - Added below condition !selectedSegmentIndex to restrict the connector segment to remove from its collection.\n if (removeSegment !== undefined && !ele.selectedSegmentIndex) {\n if (removeSegment === ele.segments.length - 1) {\n ele.segments[removeSegment - 1].direction = null;\n ele.segments[removeSegment - 1].length = null;\n }\n ele.segments.splice(removeSegment, 1);\n }\n if (srcPort && i === 0) {\n var sourcePoint = checkPortdirection(ele, srcPort, sourceEle);\n if (sourcePoint) {\n source.point = sourcePoint;\n }\n }\n }\n return returnIntermeditatePoints(ele, intermeditatePoints);\n}\n/**\n * returnIntermeditatePoints method \\\n *\n * @returns { PointModel[] } returnIntermeditatePoints method .\\\n * @param {Connector} element - provide the ele value.\n * @param {PointModel[]} intermeditatePoints - provide the source value.\n * @private\n */\nfunction returnIntermeditatePoints(element, intermeditatePoints) {\n for (var i = 0; i < element.segments.length; i++) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n for (var j = 0; j < seg.points.length; j++) {\n if (j > 0 || i === 0) {\n intermeditatePoints.push(seg.points[parseInt(j.toString(), 10)]);\n }\n }\n }\n return intermeditatePoints;\n}\n/**\n * findDirection method \\\n *\n * @returns { void } findDirection method .\\\n * @param {DiagramElement} node - provide the ele value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the source value.\n * @param {Connector} ele - provide the source value.\n * @private\n */\nfunction findDirection(node, source, target, ele) {\n var nodeDirection;\n var nodeConnectingPoint = { x: 0, y: 0 };\n var nodeCorners = swapBounds(node, node.corners, node.bounds);\n var nodeMargin = source.margin;\n var fixedPoint = source.point;\n if (nodeCorners.bottomCenter.y + nodeMargin.bottom < fixedPoint.y) {\n nodeDirection = 'Bottom';\n nodeConnectingPoint = nodeCorners.bottomCenter;\n }\n else if (nodeCorners.topCenter.y - nodeMargin.top > fixedPoint.y) {\n nodeDirection = 'Top';\n nodeConnectingPoint = nodeCorners.topCenter;\n }\n else if (nodeCorners.middleLeft.x - nodeMargin.left > fixedPoint.x) {\n nodeDirection = 'Left';\n nodeConnectingPoint = nodeCorners.middleLeft;\n }\n else if (nodeCorners.middleRight.x + nodeMargin.right < fixedPoint.x) {\n nodeDirection = 'Right';\n nodeConnectingPoint = nodeCorners.middleRight;\n }\n else {\n var top_1 = Math.abs(fixedPoint.y - nodeCorners.topCenter.y);\n var right = Math.abs(fixedPoint.x - nodeCorners.middleRight.x);\n var bottom = Math.abs(fixedPoint.y - nodeCorners.bottomCenter.y);\n var left = Math.abs(fixedPoint.x - nodeCorners.middleLeft.x);\n var shortes = Number.MAX_VALUE;\n shortes = top_1;\n nodeDirection = 'Top';\n nodeConnectingPoint = nodeCorners.topCenter;\n if (shortes > right) {\n shortes = right;\n nodeDirection = 'Right';\n nodeConnectingPoint = nodeCorners.middleRight;\n }\n if (shortes > bottom) {\n shortes = bottom;\n nodeDirection = 'Bottom';\n nodeConnectingPoint = nodeCorners.bottomCenter;\n }\n if (shortes > left) {\n //shortes = left;\n nodeDirection = 'Left';\n nodeConnectingPoint = nodeCorners.middleLeft;\n }\n }\n target.point = nodeConnectingPoint;\n target.direction = nodeDirection;\n var refPoint = findPoint(nodeCorners, getOppositeDirection(target.direction));\n target.point = getIntersection(ele, node, target.point, refPoint, node === ele.targetWrapper);\n}\n/**\n * findOrthoSegments method \\\n *\n * @returns { PointModel[] } findOrthoSegments method .\\\n * @param {DiagramElement} ele - provide the ele value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {Connector} extra - provide the extra value.\n * @param {boolean} lineDistribution - provide the lineDistribution value.\n * @private\n */\nfunction findOrthoSegments(ele, source, target, extra, lineDistribution) {\n var swap = false;\n var intermeditatePoints = [];\n var seg;\n swap = getSwapping(source.direction, target.direction);\n if (swap) {\n swapPoints(source, target);\n }\n if (source.direction === 'Right' && target.direction === 'Left') {\n seg = getRightToLeftSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Right' && target.direction === 'Right') {\n seg = getRightToRightSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Right' && target.direction === 'Top') {\n seg = getRightToTopSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Right' && target.direction === 'Bottom') {\n seg = getRightToBottomSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Bottom' && target.direction === 'Top') {\n seg = getBottomToTopSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Bottom' && target.direction === 'Bottom') {\n /**\n * EJ2-56920-Option to adjust the distance between source node and target node.\n */\n var margin = findMargin(ele);\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n seg = getBottomToBottomSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Bottom' && target.direction === 'Left') {\n seg = getBottomToLeftSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Left' && target.direction === 'Left') {\n seg = getLeftToLeftSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Left' && target.direction === 'Top') {\n seg = getLeftToTopSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Top' && target.direction === 'Top') {\n seg = getTopToTopSegmentCount(ele, source, target);\n }\n if (swap) {\n swapPoints(source, target);\n }\n intermeditatePoints = addOrthoSegments(ele, seg, source, target, extra, lineDistribution);\n if (ele.type === 'Bezier') {\n convertPointToBezierSegment(ele, seg, intermeditatePoints);\n }\n return intermeditatePoints;\n}\n/**\n * Returns the margin of source node and the target node\n *\n * @returns { number } - findMargin method .\\\n * @param { Connector } element - provide the element value\n * @private\n */\nexport function findMargin(element) {\n var margin;\n if (element.connectorSpacing >= 13) {\n margin = 13;\n }\n else if (element.connectorSpacing <= 1) {\n margin = 1;\n }\n else {\n margin = element.connectorSpacing;\n }\n return margin;\n}\n/**\n * findAngle method \\\n *\n * @returns { number } findAngle method .\\\n * @param {DiagramElement} s - provide the s value.\n * @param {End} e - provide the e value.\n * @private\n */\nexport function findAngle(s, e) {\n var r = { x: e.x, y: s.y };\n //const sr: number = Point.findLength(s, r);\n var re = Point.findLength(r, e);\n var es = Point.findLength(e, s);\n var ang = Math.asin(re / es);\n ang = ang * 180 / Math.PI;\n if (s.x < e.x) {\n if (s.y > e.y) {\n ang = 360 - ang;\n }\n }\n else {\n if (s.y < e.y) {\n ang = 180 - ang;\n }\n else {\n ang = 180 + ang;\n }\n }\n return ang;\n}\n/**\n * findPoint method \\\n *\n * @returns { number } findPoint method .\\\n * @param {Corners} cor - provide the cor value.\n * @param {string} direction - provide the direction value.\n * @private\n */\nexport function findPoint(cor, direction) {\n var point;\n switch (direction) {\n case 'Left':\n point = cor.middleLeft;\n break;\n case 'Top':\n point = cor.topCenter;\n break;\n case 'Right':\n point = cor.middleRight;\n break;\n case 'Bottom':\n point = cor.bottomCenter;\n break;\n }\n return point;\n}\n/**\n * pointsFromNodeToPoint method \\\n *\n * @returns { number } pointsFromNodeToPoint method .\\\n * @param {OrthogonalSegment} seg - provide the seg value.\n * @param {string} direction - provide the direction value.\n * @param {Rect} bounds - provide the bounds value.\n * @param {PointModel} point - provide the point value.\n * @param {PointModel} endPoint - provide the endPoint value.\n * @param {boolean} isTarget - provide the isTarget value.\n * @private\n */\nfunction pointsFromNodeToPoint(seg, direction, bounds, point, endPoint, isTarget) {\n var minSpace = 13;\n var x;\n var points = [];\n var y;\n points.push(point);\n //let straight: boolean;\n var straight = (point.y === endPoint.y && (direction === 'Left' && endPoint.x < point.x ||\n direction === 'Right' && endPoint.x > point.x)) ||\n (point.x === endPoint.x && (direction === 'Top' && endPoint.y < point.y ||\n direction === 'Bottom' && endPoint.y > point.y));\n if (!straight) {\n if (direction === 'Top' || direction === 'Bottom') {\n if (direction === 'Top' && endPoint.y < point.y && endPoint.y > point.y - minSpace ||\n direction === 'Bottom' && endPoint.y > point.y && endPoint.y < point.y + minSpace) {\n y = direction === 'Top' ? bounds.top - minSpace : bounds.bottom + minSpace;\n points.push({ x: point.x, y: y });\n points.push({ x: point.x + (endPoint.x - point.x) / 2, y: y });\n points.push({ x: point.x + (endPoint.x - point.x) / 2, y: endPoint.y });\n }\n else if (Math.abs(point.x - endPoint.x) > minSpace &&\n (direction === 'Top' && endPoint.y < point.y || direction === 'Bottom' && endPoint.y > point.y)) {\n //twosegments\n points.push({ x: point.x, y: endPoint.y });\n }\n else {\n y = direction === 'Top' ? bounds.top - minSpace : bounds.bottom + minSpace;\n x = (endPoint.x < point.x) ? bounds.left - minSpace : bounds.right + minSpace;\n points.push({ x: point.x, y: y });\n points.push({ x: endPoint.x, y: y });\n }\n }\n else {\n if (direction === 'Left' && endPoint.x < point.x && endPoint.x > point.x - minSpace || direction === 'right' &&\n endPoint.x > point.x && endPoint.x < point.x + minSpace) {\n x = direction === 'Left' ? bounds.left - minSpace : bounds.right + minSpace;\n points.push({ x: x, y: point.y });\n points.push({ x: x, y: point.y + (endPoint.y - point.y) / 2 });\n points.push({ x: endPoint.x, y: point.y + (endPoint.y - point.y) / 2 });\n }\n else if (Math.abs(point.y - endPoint.y) > minSpace &&\n (direction === 'Left' && endPoint.x < point.x || direction === 'Right' && endPoint.x > point.x)) {\n points.push({ x: endPoint.x, y: point.y });\n //twosegments\n }\n else {\n x = direction === 'Left' ? bounds.left - minSpace : bounds.right + minSpace;\n points.push({ x: x, y: point.y });\n points.push({ x: x, y: endPoint.y });\n }\n }\n if (isTarget) {\n points.push(seg.points[0]);\n points.reverse();\n }\n seg.points = points;\n }\n}\n/**\n * addLineSegment method \\\n *\n * @returns { PointModel } addLineSegment method .\\\n * @param {PointModel} point - provide the seg value.\n * @param {number} extra - provide the direction value.\n * @param {number} angle - provide the bounds value.\n * @private\n */\nfunction addLineSegment(point, extra, angle) {\n var segEnd = Point.transform(point, angle, extra);\n return segEnd;\n}\n/**\n * getIntersection method \\\n *\n * @returns { PointModel } getIntersection method .\\\n * @param {PointModel} ele - provide the ele value.\n * @param {number} bounds - provide the bounds value.\n * @param {number} sPt - provide the sPt value.\n * @param {number} tPt - provide the tPt value.\n * @param {number} isTar - provide the isTar value.\n * @private\n */\nexport function getIntersection(ele, bounds, sPt, tPt, isTar) {\n sPt = { x: sPt.x, y: sPt.y };\n tPt = { x: tPt.x, y: tPt.y };\n //const angle: number = Point.findAngle(tPt, sPt); ///let child: PathElement;// let intersection: PointModel;\n var wrapper = isTar ? ele.targetWrapper : ele.sourceWrapper;\n var padding = (isTar ? ele.targetPadding : ele.sourcePadding);\n var rect;\n var segmentPoints;\n var point = isTar || (ele.type === 'Orthogonal' || ele.type === 'Bezier') ? sPt : tPt;\n //const sourcePoint: PointModel = Point.transform(sPt, angle, Math.max(wrapper.actualSize.height / 2, wrapper.actualSize.width / 2));\n var child = wrapper;\n var sPt1 = rotatePoint(-wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, sPt);\n var tPt1 = rotatePoint(-wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, tPt);\n if (ele.type === 'Orthogonal' || ele.type === 'Bezier') {\n var constValue = 5;\n if (sPt1.x === tPt1.x) {\n if (sPt1.y < tPt1.y) {\n sPt1.y -= constValue;\n }\n else {\n sPt1.y += constValue;\n }\n }\n if (sPt1.y === tPt1.y) {\n if (sPt1.x < tPt1.x) {\n sPt1.x -= constValue;\n }\n else {\n sPt1.x += constValue;\n }\n }\n sPt = rotatePoint(wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, sPt1);\n }\n else {\n //const angle: number = isTar ? Point.findAngle(sPt, tPt) : Point.findAngle(tPt, sPt);\n if (isTar) {\n var angle = Point.findAngle(sPt, tPt);\n tPt = Point.transform({ x: tPt.x, y: tPt.y }, angle, Math.max(wrapper.actualSize.width, wrapper.actualSize.height));\n }\n else {\n var angle = Point.findAngle(tPt, sPt);\n sPt = Point.transform({ x: sPt.x, y: sPt.y }, angle, Math.max(wrapper.actualSize.width, wrapper.actualSize.height));\n }\n }\n if ((ele.sourcePadding || ele.targetPadding)) {\n rect = new Rect(wrapper.bounds.x - padding, wrapper.bounds.y - padding, wrapper.actualSize.width + 2 * padding, wrapper.actualSize.height + 2 * padding);\n }\n if (wrapper instanceof PathElement && wrapper.data) {\n segmentPoints = rect ? [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft] : child.getPoints();\n if (((child.data.split('m').length - 1) + (child.data.split('M').length - 1)) === 1) {\n segmentPoints[segmentPoints.length] = segmentPoints[0];\n }\n }\n else {\n segmentPoints = rect ? [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft] : getPoints(wrapper, wrapper.corners);\n segmentPoints[segmentPoints.length] = segmentPoints[0];\n }\n //const length: number = segmentPoints.length;\n var thisSegment = { x1: sPt.x, y1: sPt.y, x2: tPt.x, y2: tPt.y };\n return getIntersectionPoints(thisSegment, segmentPoints, true, point) || sPt;\n}\n/**\n * setLineEndPoint method \\\n *\n * @returns { PointModel } setLineEndPoint method .\\\n * @param {PointModel} element - provide the ele value.\n * @param {number} point - provide the bounds value.\n * @param {number} isTarget - provide the sPt value.\n * @private\n */\nfunction setLineEndPoint(element, point, isTarget) {\n point.x = Math.round(point.x * 100) / 100;\n point.y = Math.round(point.y * 100) / 100;\n if (isTarget) {\n element.targetPoint = point;\n }\n else {\n element.sourcePoint = point;\n }\n return point;\n}\n/**\n * getIntersectionPoints method \\\n *\n * @returns { PointModel } getIntersectionPoints method .\\\n * @param {Segment} thisSegment - provide the ele value.\n * @param {Object[]} pts - provide the bounds value.\n * @param {boolean} minimal - provide the sPt value.\n * @param {PointModel} point - provide the sPt value.\n * @private\n */\nexport function getIntersectionPoints(thisSegment, pts, minimal, point) {\n var length = pts.length;\n var min;\n var segment = {\n x1: pts[0].x, y1: pts[0].y, x2: pts[1].x,\n y2: pts[1].y\n };\n var intersection = intersectSegment(thisSegment, segment);\n if (intersection) {\n // if (!minimal) { return intersection; } //commented because minimal is always true\n min = Point.distancePoints(intersection, point);\n }\n if (isNaN(min) || min > 0) {\n for (var i = 1; i < length - 1; i++) {\n segment = {\n x1: pts[parseInt(i.toString(), 10)].x, y1: pts[parseInt(i.toString(), 10)].y,\n x2: pts[i + 1].x, y2: pts[i + 1].y\n };\n var intersect = intersectSegment(thisSegment, segment);\n if (intersect) {\n // if (!minimal) { return intersect; }//commented because minimal is always true\n var dist = Point.distancePoints(intersect, point);\n if (isNaN(min) || min > dist) {\n min = dist;\n intersection = intersect;\n }\n if (min >= 0 && min <= 1) {\n break;\n }\n }\n }\n }\n return intersection;\n}\n/**\n * intersectSegment method \\\n *\n * @returns { PointModel } intersectSegment method .\\\n * @param {Segment} segment1 - provide the ele value.\n * @param {Segment} segment2 - provide the bounds value.\n * @private\n */\nfunction intersectSegment(segment1, segment2) {\n var x1 = segment1.x1;\n var y1 = segment1.y1;\n var x2 = segment1.x2;\n var y2 = segment1.y2;\n var x3 = segment2.x1;\n var y3 = segment2.y1;\n var x4 = segment2.x2;\n var y4 = segment2.y2;\n var a1;\n var a2;\n var b1;\n var b2;\n var c1;\n var c2;\n var x;\n var y;\n var r1;\n var r2;\n var r3;\n var r4;\n var offset;\n var num;\n // eslint-disable-next-line\n a1 = y2 - y1;\n b1 = x1 - x2;\n c1 = (x2 * y1) - (x1 * y2);\n // eslint-disable-next-line\n r3 = ((a1 * x3) + (b1 * y3) + c1);\n r4 = ((a1 * x4) + (b1 * y4) + c1);\n if ((r3 !== 0) && (r4 !== 0) && sameSign(r3, r4)) {\n return null;\n }\n // eslint-disable-next-line\n a2 = y4 - y3;\n b2 = x3 - x4;\n c2 = (x4 * y3) - (x3 * y4);\n // eslint-disable-next-line\n r1 = (a2 * x1) + (b2 * y1) + c2;\n r2 = (a2 * x2) + (b2 * y2) + c2;\n if ((r1 !== 0) && (r2 !== 0) && (sameSign(r1, r2))) {\n return null;\n }\n var denom = (a1 * b2) - (a2 * b1);\n if (denom === 0) {\n return null;\n }\n if (denom < 0) {\n offset = -denom / 2;\n }\n else {\n offset = denom / 2;\n }\n offset = 0;\n num = (b1 * c2) - (b2 * c1);\n if (num < 0) {\n x = (num - offset) / denom;\n }\n else {\n x = (num + offset) / denom;\n }\n num = (a2 * c1) - (a1 * c2);\n if (num < 0) {\n y = (num - offset) / denom;\n }\n else {\n y = (num + offset) / denom;\n }\n return { x: x, y: y };\n}\n/**\n * sameSign method \\\n *\n * @returns { boolean } sameSign method .\\\n * @param {Connector} a - provide the Connector value.\n * @param {End} b - provide the source End value.\n * @private\n */\nfunction sameSign(a, b) {\n return ((a * b) >= 0);\n}\n/**\n * getRightToLeftSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToLeftSegmentCount method .\\\n * @param {Connector} element - provide the Connector value.\n * @param {End} source - provide the source End value.\n * @param {End} target - provide the target End value.\n * @param {boolean} swap - provide the swap value.\n * @private\n */\nfunction getRightToLeftSegmentCount(element, source, target, swap) {\n var srcPort = element.sourcePortWrapper;\n //let targetPort: DiagramElement = element.targetPortWrapper;\n var pts;\n var diffY = Math.round(Math.abs(source.point.y - target.point.y));\n //let diffX: number = Math.round(Math.abs(source.point.x - target.point.x));\n var right = { x: Math.max(source.point.x, source.corners.right), y: source.point.y };\n var left = { x: Math.min(target.point.x, target.corners.left), y: target.point.y };\n var margin = findMargin(element);\n if (swap) {\n //let point: PointModel;\n var point = left;\n left = right;\n right = point;\n }\n if (!(source.corners.bottom + margin < target.corners.top - margin ||\n source.corners.top - margin > target.corners.bottom + margin)) {\n if (element.type !== 'Bezier') {\n margin = 0;\n }\n else if (target.corners.left - source.corners.right <= margin * 2 && target.corners.left - source.corners.right >= 5) {\n margin = 0;\n }\n }\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n if (diffY === 0 && (source.corners.right < target.corners.left\n || (swap && source.corners.right < target.corners.left))) {\n pts = NoOfSegments.One;\n }\n else if (source.point.x + source.margin.right < target.point.x - target.margin.left) {\n pts = NoOfSegments.Three;\n }\n else if (element.sourceWrapper !== element.targetWrapper &&\n (cornersPointsBeforeRotation(element.sourceWrapper).containsPoint(left) ||\n cornersPointsBeforeRotation(element.targetWrapper).containsPoint(right))) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.bottom <= target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if (source.corners.top >= target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if ((srcPort !== undefined && srcPort.offsetY <= target.corners.top) ||\n (srcPort === undefined && source.corners.right <= target.corners.top)) {\n pts = NoOfSegments.Five;\n }\n else if ((srcPort !== undefined && srcPort.offsetY >= target.corners.bottom) ||\n (srcPort === undefined && source.corners.right >= target.corners.bottom)) {\n pts = NoOfSegments.Five;\n }\n else {\n pts = NoOfSegments.Five;\n }\n return pts;\n}\n/**\n * getRightToRightSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToRightSegmentCount method .\\\n * @param {Connector} element - provide the Connector value.\n * @param {End} sourceObj - provide the source End value.\n * @param {End} targetObj - provide the target End value.\n * @private\n */\nfunction getRightToRightSegmentCount(element, sourceObj, targetObj) {\n var sourcePort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n var pts;\n var diffX = sourceObj.point.x - targetObj.point.x;\n var diffY = sourceObj.point.y - targetObj.point.y;\n var margin = findMargin(element);\n targetObj.margin = { left: margin, right: margin, top: margin, bottom: margin };\n sourceObj.margin = { left: margin, right: margin, top: margin, bottom: margin };\n if (sourceObj.corners.right >= targetObj.corners.right) {\n if ((sourcePort !== undefined && (sourcePort.offsetY < targetObj.corners.top - targetObj.margin.top ||\n sourcePort.offsetY > targetObj.corners.bottom + targetObj.margin.bottom)) ||\n (sourcePort === undefined && sourceObj.corners.middleRight.y < targetObj.corners.top)) {\n pts = NoOfSegments.Three;\n }\n else if ((sourcePort !== undefined && sourcePort.offsetY > targetObj.corners.bottom + targetObj.margin.bottom\n && sourceObj.corners.top > targetObj.corners.bottom) ||\n (sourcePort === undefined && sourceObj.corners.middleRight.y > targetObj.corners.bottom)) {\n pts = NoOfSegments.Three;\n }\n else if ((sourcePort !== undefined && sourcePort.offsetY < targetObj.corners.top - targetObj.margin.top\n && sourceObj.corners.bottom > targetObj.corners.top) ||\n (sourcePort === undefined && sourceObj.corners.middleRight.y > targetObj.corners.bottom)) {\n pts = NoOfSegments.Three;\n }\n else if (sourceObj.corners.right < targetObj.corners.left ||\n targetObj.corners.right < sourceObj.corners.left) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((tarPort !== undefined && sourceObj.corners.bottom < tarPort.offsetY - targetObj.margin.top) ||\n (tarPort === undefined && sourceObj.corners.bottom < targetObj.corners.middleRight.y)) {\n pts = NoOfSegments.Three;\n }\n else if ((tarPort !== undefined && sourceObj.corners.top > tarPort.offsetY + targetObj.margin.right) ||\n (tarPort === undefined && sourceObj.corners.top > targetObj.corners.middleRight.y)) {\n pts = NoOfSegments.Three;\n }\n else if ((tarPort !== undefined && ((sourcePort !== undefined && sourcePort.offsetX < targetObj.corners.left &&\n sourcePort.offsetX !== tarPort.offsetX && (Math.abs(sourceObj.corners.right - targetObj.corners.left) <= 20)) ||\n (sourcePort === undefined && sourceObj.corners.right < targetObj.corners.left &&\n sourceObj.corners.center.x !== targetObj.corners.center.x && sourceObj.corners.center.y !== targetObj.corners.center.y)))) {\n pts = NoOfSegments.Three;\n }\n else if (sourceObj.corners.right < targetObj.corners.left) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * getRightToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToTopSegmentCount method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getRightToTopSegmentCount(element, source, target, swap) {\n var tarPort = element.targetPortWrapper;\n var srcPort = element.sourcePortWrapper;\n var right = { x: Math.max(source.point.x, source.corners.right), y: source.point.y };\n var top = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) };\n var margin = findMargin(element);\n var pts;\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n if (swap) {\n //let port: DiagramElement;\n var port = srcPort;\n srcPort = tarPort;\n tarPort = port;\n var point = right;\n right = top;\n top = point;\n }\n if ((srcPort !== undefined && srcPort.offsetY < target.corners.top - target.margin.top) ||\n (srcPort === undefined && source.corners.bottom < target.corners.top - target.margin.top)) {\n if (source.corners.bottom < target.corners.top) {\n if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) ||\n (tarPort === undefined && source.corners.right + source.margin.right < target.corners.topCenter.x)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left > target.corners.topCenter.x)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (srcPort !== undefined && Math.abs(source.corners.right - target.corners.left) <= 5 &&\n Math.abs(srcPort.offsetY - target.corners.top) <= 5) {\n pts = NoOfSegments.Two;\n }\n else if (tarPort !== undefined && source.corners.right < target.corners.left && Math.abs(tarPort.offsetX - source.corners.topCenter.x) >= 25 &&\n source.corners.middleRight.y + source.margin.right < tarPort.offsetY) {\n pts = NoOfSegments.Two;\n }\n else if (source.corners.right < target.corners.left) {\n pts = NoOfSegments.Four;\n }\n else if (element.sourceWrapper !== element.targetWrapper &&\n (cornersPointsBeforeRotation(element.sourceWrapper).containsPoint(top) ||\n cornersPointsBeforeRotation(element.targetWrapper).containsPoint(right))) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getRightToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToTopSegmentCount method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getRightToBottomSegmentCount(element, source, target, swap) {\n var margin = findMargin(element);\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n var pts;\n var srcPort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n //let right: PointModel = { x: Math.max(source.point.x, source.corners.right), y: source.point.y };\n //let bottom: PointModel = { x: target.point.x, y: Math.max(target.point.y, target.corners.bottom) };\n if (swap) {\n //let port: DiagramElement;\n var port = srcPort;\n srcPort = tarPort;\n tarPort = port;\n }\n if ((srcPort !== undefined && srcPort.offsetY > target.corners.bottom + target.margin.bottom) ||\n (srcPort === undefined && source.corners.middleRight.y > target.corners.bottom + target.margin.bottom)) {\n if (source.corners.top > target.corners.bottom) {\n if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) ||\n (tarPort === undefined && source.corners.right + source.margin.right < target.corners.bottomCenter.x)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left > target.corners.bottomCenter.x)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (srcPort !== undefined &&\n Math.abs(source.corners.right - target.corners.left) <= 25 &&\n Math.abs(srcPort.offsetY - target.corners.bottom) <= 25) {\n pts = NoOfSegments.Two;\n }\n else if (source.corners.right < target.corners.left) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getBottomToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getBottomToTopSegmentCount method .\\\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getBottomToTopSegmentCount(element, source, target) {\n var pts;\n var diffX = source.point.x - target.point.x;\n //const diffY: number = source.point.y - target.point.y;\n //let bottom: PointModel = { x: source.point.x, y: Math.max(source.point.y, source.corners.bottom) };\n //let top: PointModel = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) };\n var margin = findMargin(element);\n if (!(source.corners.right + margin < target.corners.left - margin ||\n source.corners.left - margin > target.corners.right + margin)) {\n if (element.type !== 'Bezier') {\n margin = 0;\n }\n else if (target.corners.top - source.corners.bottom <= margin * 2 && target.corners.top - source.corners.bottom >= 5) {\n margin = 0;\n }\n }\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n if (diffX === 0 && source.corners.bottom < target.corners.top) {\n pts = NoOfSegments.One;\n }\n else if (source.corners.bottom + source.margin.bottom < target.corners.top - target.margin.top) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.right + source.margin.right < target.corners.left - target.margin.left) {\n pts = NoOfSegments.Five;\n }\n else if (source.corners.left - source.margin.left > target.corners.right + target.margin.right) {\n pts = NoOfSegments.Five;\n }\n else {\n pts = NoOfSegments.Five;\n }\n return pts;\n}\n/**\n * getBottomToLeftSegmentCount method \\\n *\n * @returns { NoOfSegments } getBottomToLeftSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getBottomToLeftSegmentCount(element, source, target, swap) {\n var srcPort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n //let bottom: PointModel = { x: source.point.x, y: Math.max(source.point.y, source.corners.bottom) };\n //let left: PointModel = { x: Math.min(target.point.x, target.corners.left), y: target.point.y };\n var margin = findMargin(element);\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n var pts;\n if (swap) {\n //let port: DiagramElement;\n var port = srcPort;\n srcPort = tarPort;\n tarPort = port;\n }\n if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) ||\n (srcPort === undefined && source.corners.bottomCenter.x < target.corners.bottomLeft.x - target.margin.left)) {\n if (source.corners.right < target.corners.left) {\n if ((tarPort !== undefined && source.corners.bottom + source.margin.bottom < tarPort.offsetY) ||\n (tarPort === undefined && source.corners.bottom + source.margin.bottom < target.corners.middleLeft.y)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.top > tarPort.offsetY) ||\n (tarPort === undefined && source.corners.top > target.corners.middleLeft.y)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (tarPort !== undefined &&\n Math.abs(source.corners.right - target.corners.left) <= 25 &&\n Math.abs(tarPort.offsetY - source.corners.bottom) <= 25) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getBottomToBottomSegmentCount method \\\n *\n * @returns { NoOfSegments } getBottomToBottomSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getBottomToBottomSegmentCount(element, source, target) {\n var srcPort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n var difX = Math.round(Math.abs(source.point.x - target.point.x));\n var diffY = Math.round(Math.abs(target.point.y - target.point.y));\n var pts;\n if (source.corners.bottom < target.corners.bottom) {\n if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) ||\n (srcPort === undefined && source.corners.bottomCenter.x < target.corners.left - target.margin.left)) {\n pts = NoOfSegments.Three;\n }\n else if ((srcPort !== undefined && srcPort.offsetX > target.corners.right + target.margin.right) ||\n (srcPort === undefined && source.corners.bottomCenter.x > target.corners.right + target.margin.right)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.bottom < target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if (difX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((tarPort !== undefined && source.corners.left - source.margin.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left > target.corners.left)) {\n pts = NoOfSegments.Three;\n }\n else if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) ||\n (tarPort === undefined &&\n source.corners.right < target.corners.right)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.top > target.corners.bottom) {\n pts = NoOfSegments.Five;\n }\n else if (difX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * getLeftToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getLeftToTopSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getLeftToTopSegmentCount(element, source, target, swap) {\n var pts;\n var sourcePort = element.sourcePortWrapper;\n var margin = findMargin(element);\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n var tarPort = element.targetPortWrapper;\n var left = { x: Math.min(source.point.x, source.corners.left), y: source.point.y };\n var top = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) };\n if (swap) {\n //let port: DiagramElement;\n var port = sourcePort;\n sourcePort = tarPort;\n tarPort = port;\n var point = left;\n left = top;\n top = point;\n }\n if ((sourcePort !== undefined && sourcePort.offsetY < target.corners.top - target.margin.top) ||\n (sourcePort === undefined && (source.corners.bottom < target.corners.top - target.margin.top ||\n source.corners.middleLeft.y < target.corners.top - target.margin.top))) {\n if (source.corners.bottom < target.corners.top) {\n if ((tarPort !== undefined && source.corners.left - source.margin.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left - source.margin.left > target.corners.topCenter.x)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.right < tarPort.offsetX) ||\n (tarPort === undefined && source.corners.right < target.corners.topCenter.x)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (sourcePort !== undefined &&\n Math.abs(source.corners.left - target.corners.right) <= 25 &&\n Math.abs(sourcePort.offsetY - target.corners.top) <= 25) {\n pts = NoOfSegments.Two;\n }\n else if (element.sourceWrapper !== element.targetWrapper &&\n (cornersPointsBeforeRotation(element.sourceWrapper).containsPoint(top) ||\n cornersPointsBeforeRotation(element.targetWrapper).containsPoint(left))) {\n pts = NoOfSegments.Two;\n }\n else if (source.corners.left > target.corners.right) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getLeftToLeftSegmentCount method \\\n *\n * @returns { NoOfSegments } getLeftToLeftSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getLeftToLeftSegmentCount(element, source, target) {\n var srcPort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var margin = findMargin(element);\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n var diffX = Math.round(Math.abs(source.point.x - target.point.x));\n var diffY = Math.round(Math.abs(source.point.y - target.point.y));\n var pts;\n if (source.corners.left < target.corners.left) {\n if ((targetPort !== undefined && source.corners.bottom + source.margin.bottom < targetPort.offsetY) ||\n (targetPort === undefined && source.corners.bottom + source.margin.bottom < target.corners.middleLeft.y)) {\n pts = NoOfSegments.Three;\n }\n else if ((targetPort !== undefined && source.corners.top - source.margin.top > targetPort.offsetY) ||\n (targetPort === undefined && source.corners.top - source.margin.top > target.corners.middleLeft.y)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.right < target.corners.left ||\n target.corners.right < source.corners.left) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((srcPort !== undefined && srcPort.offsetY < target.corners.top - target.margin.top) ||\n (srcPort === undefined && source.corners.middleLeft.y < target.corners.top)) {\n pts = NoOfSegments.Three;\n }\n else if ((srcPort !== undefined && srcPort.offsetY > target.corners.bottom + target.margin.bottom) ||\n (srcPort === undefined && source.corners.middleLeft.y > target.corners.bottom + target.margin.bottom)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.left > target.corners.right) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * getTopToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getTopToTopSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getTopToTopSegmentCount(element, source, target) {\n var srcPort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var diffX = Math.round(Math.abs(source.point.x - target.point.x));\n var diffY = Math.round(Math.abs(source.point.y - target.point.y));\n var margin = findMargin(element);\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n var pts;\n if (source.corners.top < target.corners.top) {\n if ((targetPort !== undefined && source.corners.left - source.margin.left > targetPort.offsetX) ||\n (targetPort === undefined && source.corners.left > target.corners.left)) {\n pts = NoOfSegments.Three;\n }\n else if ((targetPort !== undefined && source.corners.right + source.margin.right < targetPort.offsetX) ||\n (targetPort === undefined && source.corners.right < target.corners.right)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.bottom < target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((srcPort !== undefined && srcPort.offsetX > target.corners.right + target.margin.right) ||\n (srcPort === undefined && source.corners.left > target.corners.right)) {\n pts = NoOfSegments.Three;\n }\n else if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) ||\n (srcPort === undefined && source.corners.bottomRight.x < target.corners.left)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.top > target.corners.bottom) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * addOrthoSegments method \\\n *\n * @returns { PointModel[] } addOrthoSegments method .\\\n * @param {Connector} element - provide the element value.\n * @param {NoOfSegments} seg - provide the seg value.\n * @param {End} sourceEnd - provide the source value.\n * @param {End} targetEnd - provide the target value.\n * @param {number} segLength - provide the segLength value.\n * @param {boolean} lineDistribution - provide the lineDistribution value.\n * @private\n */\nfunction addOrthoSegments(element, seg, sourceEnd, targetEnd, segLength, lineDistribution) {\n var src = element.sourceWrapper;\n var tar = element.targetWrapper;\n //let tarPort: DiagramElement = element.targetPortWrapper;\n var intermeditatePoints;\n var srcCorner = src.corners;\n var tarCorner = tar.corners;\n var value;\n var extra = 20;\n var source = { corners: sourceEnd.corners, point: sourceEnd.point, direction: sourceEnd.direction, margin: sourceEnd.margin };\n var target = { corners: targetEnd.corners, point: targetEnd.point, direction: targetEnd.direction, margin: targetEnd.margin };\n if (source.direction !== target.direction || seg === NoOfSegments.Five) {\n if (source.direction === getOppositeDirection(target.direction) || seg === NoOfSegments.Three) {\n switch (source.direction) {\n case 'Left':\n if (srcCorner.middleLeft.x > tarCorner.middleRight.x) {\n value = (srcCorner.middleLeft.x - tarCorner.middleRight.x) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n case 'Right':\n if (srcCorner.middleRight.x < tarCorner.middleLeft.x) {\n value = (tarCorner.middleLeft.x - srcCorner.middleRight.x) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n case 'Top':\n if (srcCorner.topCenter.y > tarCorner.bottomCenter.y) {\n value = (srcCorner.topCenter.y - tarCorner.bottomCenter.y) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n case 'Bottom':\n if (srcCorner.bottomCenter.y < tarCorner.topCenter.y) {\n value = (tarCorner.topCenter.y - srcCorner.bottomCenter.y) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n }\n }\n }\n extra = adjustSegmentLength(srcCorner, source, extra);\n var isBezier = element.type === 'Bezier';\n if (segLength) {\n extra = Math.max(extra, segLength);\n }\n if (seg === NoOfSegments.One) {\n intermeditatePoints = [source.point, target.point];\n }\n if (seg === NoOfSegments.Two) {\n intermeditatePoints = orthoConnection2Segment(source, target);\n }\n if (seg === NoOfSegments.Three) {\n intermeditatePoints = orthoConnection3Segment(element, source, target, extra, undefined, isBezier);\n }\n if (seg === NoOfSegments.Four) {\n var prevDir = undefined;\n intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, extra, isBezier);\n }\n if (seg === NoOfSegments.Five) {\n intermeditatePoints = orthoConnection5Segment(source, target, extra, isBezier);\n }\n return intermeditatePoints;\n}\n/**\n * adjustSegmentLength method \\\n *\n * @returns { PointModel[] } adjustSegmentLength method .\\\n * @param {Rect | Corners} bounds - provide the element value.\n * @param {End} source - provide the seg value.\n * @param {number} extra - provide the source value.\n * @private\n */\nfunction adjustSegmentLength(bounds, source, extra) {\n switch (source.direction) {\n case 'Left':\n if (source.point.x > bounds.left) {\n extra = (source.point.x - bounds.left) > extra ? ((source.point.x - bounds.left) + extra) : extra;\n }\n break;\n case 'Right':\n if (source.point.x < bounds.right) {\n extra = (bounds.right - source.point.x) > extra ? ((bounds.right - source.point.x) + extra) : extra;\n }\n break;\n case 'Top':\n if (source.point.y > bounds.top) {\n extra = (source.point.y - bounds.top) > extra ? ((source.point.y - bounds.top) + extra) : extra;\n }\n break;\n case 'Bottom':\n if (source.point.y < bounds.bottom) {\n extra = (bounds.bottom - source.point.y) > extra ? ((bounds.bottom - source.point.y) + extra) : extra;\n }\n break;\n }\n return extra;\n}\n/**\n * orthoConnection2Segment method \\\n *\n * @returns { PointModel[] } orthoConnection2Segment method .\\\n * @param {Rect | Corners} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nexport function orthoConnection2Segment(source, target) {\n var intermeditatePoints;\n switch (source.direction) {\n case 'Left':\n case 'Right':\n // eslint-disable-next-line\n var point1 = { x: target.point.x, y: source.point.y };\n intermeditatePoints = (Point.equals(source.point, point1) || Point.equals(target.point, point1)) ?\n [source.point, target.point] : [source.point, point1, target.point];\n break;\n case 'Top':\n case 'Bottom':\n // eslint-disable-next-line no-case-declarations\n var point2 = { x: source.point.x, y: target.point.y };\n intermeditatePoints = (Point.equals(source.point, point2) || Point.equals(target.point, point2)) ?\n [source.point, target.point] : [source.point, point2, target.point];\n break;\n }\n return intermeditatePoints;\n}\n/**\n * orthoConnection3Segment method \\\n *\n * @returns { PointModel[] } orthoConnection2Segment method .\\\n * @param {Connector} element - provide the source value.\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {number} extra - provide the target value.\n * @param {boolean} allow - provide the target value.\n * @param {boolean} isBezier - provide the isBezier boolean value.\n * @private\n */\nfunction orthoConnection3Segment(element, source, target, extra, allow, isBezier) {\n if (isBezier === void 0) { isBezier = false; }\n if (!extra) {\n extra = 20;\n }\n if (isBezier) {\n if (source.direction !== target.direction) {\n if (source.direction === 'Left' || source.direction === 'Right') {\n extra = Math.floor(Math.abs(source.point.x - target.point.x) * 0.5);\n }\n else {\n extra = Math.floor(Math.abs(source.point.y - target.point.y) * 0.5);\n }\n }\n }\n var srcPort = element.sourcePortWrapper;\n var intermeditatePoints;\n var segmentValue;\n var next;\n var diffx = target.point.x - source.point.x;\n var diffy = target.point.y - source.point.y;\n var temp;\n if (!allow && (Math.abs(diffx) < 0.001 || Math.abs(diffy) < 0.001)) {\n if (target.direction === undefined) {\n intermeditatePoints = [source.point, target.point];\n return intermeditatePoints;\n }\n }\n if (element.targetWrapper === undefined && Math.abs(diffx) <= 31 && Math.abs(diffy) <= 31) {\n if ((source.direction === 'Left' || source.direction === 'Right')) {\n if (Math.abs(diffy) < 12) {\n source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n }\n }\n else {\n if (Math.abs(diffx) < 12) {\n source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n }\n }\n if (Math.abs(diffx) > 12 || Math.abs(diffy) > 12) {\n return orthoConnection2Segment(source, target);\n }\n else {\n extra += 5;\n }\n }\n if (source.direction === 'Left' || source.direction === 'Right') {\n if (source.direction === 'Right') {\n if (target.direction !== undefined && target.direction === 'Right') {\n extra = Math.max(source.point.x, target.point.x) - source.point.x + extra;\n }\n if (source.point.x > target.point.x && srcPort === undefined) {\n extra = -extra;\n }\n }\n else {\n if (target.direction !== undefined && target.direction === 'Left') {\n extra = source.point.x - Math.min(source.point.x, target.point.x) + extra;\n }\n if (source.point.x > target.point.x || srcPort !== undefined || source.direction === 'Left') {\n extra = -extra;\n }\n }\n temp = target.point.y - source.point.y;\n segmentValue = addLineSegment(source.point, extra, 0);\n temp = target.point.y - segmentValue.y;\n if (temp !== 0) {\n next = addLineSegment(segmentValue, target.point.y - segmentValue.y, 90);\n }\n }\n else if (source.direction === 'Top' || source.direction === 'Bottom') {\n if (source.direction === 'Bottom') {\n if (target.direction !== undefined && target.direction === 'Bottom') {\n extra = Math.max(source.point.y, target.point.y) - source.point.y + extra;\n }\n }\n else {\n if (target.direction !== undefined && target.direction === 'Top') {\n extra = source.point.y - Math.min(source.point.y, target.point.y) + extra;\n }\n if (source.point.y > target.point.y || (srcPort !== undefined) || source.direction === 'Top') {\n extra = -extra;\n }\n }\n temp = target.point.x - source.point.x;\n if (source.direction === 'Top') {\n segmentValue = addLineSegment(source.point, extra, 90);\n }\n else {\n segmentValue = addLineSegment(source.point, extra, 90);\n }\n temp = target.point.x - segmentValue.x;\n if (temp !== 0) {\n next = addLineSegment(segmentValue, target.point.x - segmentValue.x, 0);\n }\n }\n if (temp === 0) {\n return intermeditatePoints = [\n source.point,\n target.point\n ];\n }\n intermeditatePoints = [\n source.point,\n segmentValue,\n next,\n target.point\n ];\n return intermeditatePoints;\n}\n/**\n * orthoConnection5Segment method \\\n *\n * @returns { PointModel[] } orthoConnection5Segment method .\\\n * @param {Connector} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {End} extra - provide the extra value.\n * @param {boolean} isBezier - provide the isBezier value.\n * @private\n */\nfunction orthoConnection5Segment(source, target, extra, isBezier) {\n if (extra === void 0) { extra = 20; }\n if (isBezier === void 0) { isBezier = false; }\n if (isBezier) {\n extra = 20;\n }\n var intermeditatePoints;\n var length = extra;\n var sLeft = source.corners.left - source.margin.left;\n var sRight = source.corners.right + source.margin.right;\n var sBottom = source.corners.bottom + source.margin.bottom;\n var sTop = source.corners.top - source.margin.top;\n var tLeft = target.corners.left - target.margin.left;\n var tRight = target.corners.right + target.margin.right;\n var tBottom = target.corners.bottom + target.margin.bottom;\n var tTop = target.corners.top - target.margin.top;\n var segmentValue;\n switch (source.direction) {\n case 'Left':\n if ((sTop > tTop && sTop < tBottom || sBottom < tBottom && sBottom > tTop) &&\n sLeft > tLeft && sLeft <= tRight && extra >= 20) {\n length = source.point.x - target.corners.left + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.left > target.corners.left && source.corners.left - target.corners.right >= 20) {\n length = (source.corners.left - target.corners.right) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 180);\n break;\n case 'Top':\n if ((sLeft > tLeft && sLeft < tRight || sRight < tRight && sRight > tLeft) &&\n sTop > tTop && sTop <= tBottom && extra >= 20) {\n length = source.point.y - target.corners.top + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.top > target.corners.top && source.corners.top - target.corners.bottom >= 20) {\n length = (source.corners.top - target.corners.bottom) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 270);\n break;\n case 'Right':\n if ((sTop > tTop && sTop < tBottom || sBottom < tBottom && sBottom > tTop) &&\n sRight < tRight && sRight >= tLeft && extra >= 20) {\n length = target.corners.right - source.point.x + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.right < target.corners.right && target.corners.left - source.corners.right >= 20) {\n length = (target.corners.left - source.corners.right) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 0);\n break;\n case 'Bottom':\n if ((sLeft > tLeft && sLeft < tRight || sRight < tRight && sRight > tLeft) &&\n sBottom < tBottom && sBottom >= tTop && extra >= 20) {\n length = target.corners.bottom - source.point.y + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.bottom < target.corners.bottom && target.corners.top - source.corners.bottom >= 20) {\n length = (target.corners.top - source.corners.bottom) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 90);\n break;\n }\n intermeditatePoints = [\n source.point,\n segmentValue\n ];\n var newExtra = undefined;\n if (source.direction === 'Top' || source.direction === 'Bottom') {\n var prevDir = source.direction;\n source.direction = segmentValue.x > target.point.x ? 'Left' : 'Right';\n source.point = segmentValue;\n newExtra = isBezier ? Math.abs(segmentValue.x - target.point.x) * 0.5 : newExtra;\n intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, newExtra, isBezier);\n }\n else {\n var prevDir = source.direction;\n source.direction = segmentValue.y > target.point.y ? 'Top' : 'Bottom';\n source.point = segmentValue;\n newExtra = isBezier ? Math.abs(segmentValue.y - target.point.y) * 0.5 : newExtra;\n intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, newExtra, isBezier);\n }\n return intermeditatePoints;\n}\n/**\n * orthoConnection4Segment method \\\n *\n * @returns { PointModel[] } orthoConnection4Segment method .\\\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {string} prevDir - provide the target value.\n * @param {PointModel[]} interPt - provide the target value.\n * @param {number} e - provide the target value.\n * @param {boolean} isBezier - provide the target value.\n * @private\n */\nfunction orthoConnection4Segment(source, target, prevDir, interPt, e, isBezier) {\n if (e === void 0) { e = 20; }\n if (isBezier === void 0) { isBezier = false; }\n var segmentValue;\n if (prevDir === undefined) {\n source.margin = { left: 2, right: 2, top: 2, bottom: 2 };\n target.margin = { left: 0, right: 5, top: 0, bottom: 5 };\n if (isBezier) {\n source.margin = { left: 10, right: 10, top: 10, bottom: 10 };\n target.margin = { left: 10, right: 10, top: 10, bottom: 10 };\n if (source.direction === 'Left') {\n e = getLeftLength(source, target, prevDir, e);\n if (source.corners.left - target.corners.right >= 5) {\n e = Math.abs(source.point.x - source.corners.left) + Math.floor(source.corners.left - target.corners.right) * 0.5;\n }\n }\n else if (source.direction === 'Right') {\n e = getRightLength(source, target, e, prevDir);\n if (target.corners.left - source.corners.right >= 5) {\n e = Math.abs(source.point.x - source.corners.right) + Math.floor(target.corners.left - source.corners.right) * 0.5;\n }\n }\n else if (source.direction === 'Top') {\n e = getTopLength(source, target, prevDir, e);\n if (source.corners.top - target.corners.bottom >= 5) {\n e = Math.abs(source.point.y - source.corners.top) + Math.floor(source.corners.top - target.corners.bottom) * 0.5;\n }\n }\n else if (source.direction === 'Bottom') {\n e = getBottomLength(source, target, e, prevDir);\n if (target.corners.top - source.corners.bottom >= 5) {\n e = Math.abs(source.point.y - source.corners.bottom) + Math.floor(target.corners.top - source.corners.bottom) * 0.5;\n }\n }\n }\n }\n else {\n if (source.direction === 'Bottom') {\n if (isBezier) {\n if (target.corners.top - source.corners.bottom < 20) {\n e = (target.corners.bottom - source.point.y) + 25;\n }\n }\n else {\n if (target.corners.top > source.corners.bottom && target.corners.top - source.corners.bottom < 20) {\n e = (target.corners.top - source.corners.bottom) / 2;\n }\n }\n }\n else if (source.direction === 'Top') {\n if (isBezier) {\n if (source.corners.top - target.corners.bottom < 20) {\n e = (source.point.y - target.corners.top) + 25;\n }\n }\n else {\n if (target.corners.bottom < source.corners.top && source.corners.top - target.corners.bottom < 20) {\n e = (source.corners.top - target.corners.bottom) / 2;\n }\n }\n }\n else if (source.direction === 'Right') {\n if (isBezier) {\n if (target.corners.left - source.corners.right < 20) {\n e = (target.corners.right - source.point.x) + 25;\n }\n }\n else {\n if (target.corners.left > source.corners.right && target.corners.left - source.corners.right < 20) {\n e = (target.corners.left - source.corners.right) / 2;\n }\n }\n }\n else if (source.direction === 'Left') {\n if (isBezier) {\n if (source.corners.left - target.corners.right < 20) {\n e = (source.point.x - target.corners.left) + 25;\n }\n }\n else {\n if (target.corners.right < source.corners.left && source.corners.left - target.corners.right < 20) {\n e = (source.corners.left - target.corners.right) / 2;\n }\n }\n }\n if (prevDir === target.direction && isBezier) {\n if ((target.direction === 'Bottom' && source.point.y > target.point.y) ||\n (target.direction === 'Top' && source.point.y < target.point.y)) {\n if (source.direction === 'Left') {\n e = getLeftLength(source, target, prevDir, 20);\n }\n else if (source.direction === 'Right') {\n e = getRightLength(source, target, 20, prevDir);\n }\n }\n else if ((target.direction === 'Right' && source.point.x > target.point.x) ||\n (target.direction === 'Left' && source.point.x < target.point.x)) {\n if (source.direction === 'Top') {\n e = getTopLength(source, target, prevDir, 20);\n }\n else if (source.direction === 'Bottom') {\n e = getBottomLength(source, target, 20, prevDir);\n }\n }\n }\n }\n switch (source.direction) {\n case 'Left':\n e = isBezier ? e : getLeftLength(source, target, prevDir, e);\n segmentValue = addLineSegment(source.point, e, 180);\n break;\n case 'Right':\n e = isBezier ? e : getRightLength(source, target, e, prevDir);\n segmentValue = addLineSegment(source.point, e, 0);\n break;\n case 'Top':\n e = isBezier ? e : getTopLength(source, target, prevDir, e);\n segmentValue = addLineSegment(source.point, e, 270);\n break;\n case 'Bottom':\n e = isBezier ? e : getBottomLength(source, target, e, prevDir);\n segmentValue = addLineSegment(source.point, e, 90);\n }\n if (interPt !== undefined) {\n interPt.push(segmentValue);\n }\n else {\n interPt = [\n source.point,\n segmentValue\n ];\n }\n if (source.direction === 'Top' || source.direction === 'Bottom') {\n getOrtho3Seg(segmentValue, 'horizontal', source, target, interPt, isBezier);\n }\n else if (source.direction === 'Right' || source.direction === 'Left') {\n getOrtho3Seg(segmentValue, 'vertical', source, target, interPt, isBezier);\n }\n return interPt;\n}\n/**\n * getOrtho3Seg method \\\n *\n * @returns { void } getOrtho3Seg method .\\\n * @param {PointModel} sPt - provide the sPt value.\n * @param {string} orientation - provide the orientation value.\n * @param {End} src - provide the src value.\n * @param {End} tar - provide the tar value.\n * @param {PointModel[]} points - provide the points value.\n * @param {boolean} isBezier - provide the isBezier value.\n * @private\n */\nfunction getOrtho3Seg(sPt, orientation, src, tar, points, isBezier) {\n var point1;\n var point2;\n var point3;\n if (orientation === 'horizontal') {\n src.margin = { left: 0, right: 10, top: 0, bottom: 10 };\n tar.margin = { left: 0, right: 10, top: 0, bottom: 10 };\n }\n else if (orientation === 'vertical') {\n src.margin = { left: 10, right: 0, top: 10, bottom: 0 };\n tar.margin = { left: 10, right: 0, top: 10, bottom: 0 };\n }\n var extra = 20;\n if (orientation === 'horizontal') {\n switch (tar.direction) {\n case 'Left':\n if (src.corners.right + src.margin.right < tar.corners.left - tar.margin.left &&\n (tar.corners.left - src.margin.right - src.corners.right > extra || (src.corners.top - src.margin.top <= tar.point.y &&\n src.corners.bottom + src.margin.bottom >= tar.point.y))) {\n if (isBezier && (src.direction === 'Top' || src.direction === 'Bottom')) {\n var gap = Math.abs(tar.corners.left - src.corners.right) / 2;\n extra = src.corners.right - sPt.x + gap;\n }\n else {\n var gap = Math.min(Math.abs(tar.corners.left - src.corners.right) / 2, 20);\n extra = src.corners.right - sPt.x + gap;\n }\n }\n else {\n if ((src.direction === 'Top' && sPt.y > tar.point.y) || (src.direction === 'Bottom' && sPt.y < tar.point.y)) {\n extra = Math.min(tar.corners.left, sPt.x) - sPt.x - 20;\n }\n else if (sPt.x >= src.corners.left - src.margin.left && sPt.x <= src.corners.right + src.margin.right) {\n extra = Math.min(tar.corners.left, src.corners.left) - sPt.x - 20;\n }\n else {\n extra = tar.corners.left - sPt.x - 20;\n }\n }\n break;\n case 'Right':\n if (src.corners.left - src.margin.left > tar.corners.right + tar.margin.right &&\n (src.corners.left - src.margin.right - tar.corners.right > extra || (src.corners.top - src.margin.top <= tar.point.y &&\n src.corners.bottom + src.margin.bottom >= tar.point.y))) {\n if (isBezier && (src.direction === 'Top' || src.direction === 'Bottom')) {\n var gap = Math.abs(src.corners.left - tar.corners.right) / 2;\n extra = src.corners.left - sPt.x - gap;\n }\n else {\n var gap = Math.min(Math.abs(src.corners.left - tar.corners.right) / 2, 20);\n extra = src.corners.left - sPt.x - gap;\n }\n }\n else {\n if ((src.direction === 'Top' && sPt.y > tar.point.y) || (src.direction === 'Bottom' && sPt.y < tar.point.y)) {\n extra = Math.max(tar.corners.right, sPt.x) - sPt.x + 20;\n }\n else if (sPt.x >= src.corners.left - src.margin.left && sPt.x <= src.corners.right + src.margin.right) {\n extra = Math.max(tar.corners.right, src.corners.right) - sPt.x + 20;\n }\n else {\n extra = tar.corners.right - sPt.x + 20;\n }\n }\n break;\n }\n point1 = addLineSegment(sPt, extra, 0);\n point2 = addLineSegment(point1, tar.point.y - sPt.y, 90);\n point3 = tar.point;\n }\n else if (orientation === 'vertical') {\n switch (tar.direction) {\n case 'Top':\n if (src.corners.bottom + src.margin.bottom < tar.corners.top - tar.margin.top &&\n (tar.corners.top - src.margin.top - src.corners.bottom > extra || (src.corners.left - src.margin.left <= tar.point.x &&\n src.corners.right + src.margin.right >= tar.point.x))) {\n if (isBezier && (src.direction === 'Right' || src.direction === 'Left')) {\n var gap = Math.abs(tar.corners.top - src.corners.bottom) / 2;\n extra = src.corners.bottom - sPt.y + gap;\n }\n else {\n var gap = Math.min(Math.abs(tar.corners.top - src.corners.bottom) / 2, 20);\n extra = src.corners.bottom - sPt.y + gap;\n }\n }\n else {\n if ((src.direction === 'Left' && sPt.x > tar.point.x) || (src.direction === 'Right' && sPt.x < tar.point.x)) {\n extra = Math.min(tar.corners.top, sPt.y) - sPt.y - 20;\n }\n else if (sPt.y >= src.corners.top - src.margin.top && sPt.y <= src.corners.bottom + src.margin.bottom) {\n extra = Math.min(tar.corners.top, src.corners.top) - sPt.y - 20;\n }\n else {\n extra = tar.corners.top - sPt.y - 20;\n }\n }\n break;\n case 'Bottom':\n if (src.corners.top - src.margin.top > tar.corners.bottom + tar.margin.bottom &&\n (src.corners.top - src.margin.top - tar.corners.bottom > extra || (src.corners.left - src.margin.left <= tar.point.x &&\n src.corners.right + src.margin.right >= tar.point.x))) {\n if (isBezier && (src.direction === 'Right' || src.direction === 'Left')) {\n var gap = Math.abs(src.corners.top - tar.corners.bottom) / 2;\n extra = src.corners.top - sPt.y - gap;\n }\n else {\n var gap = Math.min(Math.abs(src.corners.top - tar.corners.bottom) / 2, 20);\n extra = src.corners.top - sPt.y - gap;\n }\n }\n else {\n if ((src.direction === 'Left' && sPt.x > tar.point.x) || (src.direction === 'Right' && sPt.x < tar.point.x)) {\n extra = Math.max(tar.corners.bottom, sPt.y) - sPt.y + 20;\n }\n else if (sPt.y >= src.corners.top - src.margin.top && sPt.y <= src.corners.bottom + src.margin.bottom) {\n extra = Math.max(tar.corners.bottom, src.corners.bottom) - sPt.y + 20;\n }\n else {\n extra = tar.corners.bottom - sPt.y + 20;\n }\n }\n break;\n }\n point1 = addLineSegment(sPt, extra, 90);\n point2 = addLineSegment(point1, tar.point.x - sPt.x, 0);\n point3 = tar.point;\n }\n points.push(point1);\n points.push(point2);\n points.push(point3);\n}\n/**\n * getTopLength method \\\n *\n * @returns { number } getTopLength method .\\\n * @param {End} source - provide the sPt value.\n * @param {End} target - provide the sPt value.\n * @param {string} preDir - provide the orientation value.\n * @param {number} length - provide the src value.\n * @private\n */\nfunction getTopLength(source, target, preDir, length) {\n if (source.corners.top - source.margin.top > target.corners.top + target.margin.top &&\n source.corners.top - source.margin.top <= target.corners.bottom + target.margin.bottom) {\n if (target.direction === 'Right' && source.point.x < target.point.x) {\n length += source.corners.top - target.corners.top;\n }\n else if (target.direction === 'Left' && source.point.x > target.point.x) {\n length += source.corners.top - target.corners.top;\n }\n length += source.point.y - source.corners.top;\n }\n else {\n if ((preDir !== undefined && preDir !== 'Left') && target.direction === 'Right' && source.point.x < target.point.x) {\n length += Math.abs(source.point.y - target.corners.bottom);\n }\n else if ((preDir !== undefined && preDir !== 'Right') && target.direction === 'Left'\n && target.point.x < source.point.x) {\n length += Math.abs(source.point.y - target.corners.bottom);\n }\n else {\n length += source.point.y - source.corners.top;\n }\n }\n return length;\n}\n/**\n * getLeftLength method \\\n *\n * @returns { number } getLeftLength method .\\\n * @param {End} source - provide the sPt value.\n * @param {End} target - provide the sPt value.\n * @param {string} prevDir - provide the orientation value.\n * @param {number} segLength - provide the src value.\n * @private\n */\nfunction getLeftLength(source, target, prevDir, segLength) {\n if (source.corners.left - source.margin.left > target.corners.left - target.margin.left &&\n source.corners.left - source.margin.left <= target.corners.right + target.margin.right) {\n if (target.direction === 'Bottom' && source.point.y < target.point.y) {\n segLength += source.corners.left - target.corners.left;\n }\n else if (target.direction === 'Top' && source.point.y > target.point.y) {\n segLength += source.corners.left - target.corners.left;\n }\n segLength += source.point.x - source.corners.left;\n }\n else {\n if ((prevDir !== undefined && prevDir !== 'Top') && target.direction === 'Bottom' && source.point.y < target.point.y) {\n segLength += Math.abs(source.point.x - target.corners.right);\n }\n else if ((prevDir !== undefined && prevDir !== 'Bottom') &&\n target.direction === 'Top' && target.point.y < source.point.y) {\n segLength += Math.abs(source.point.x - target.corners.right);\n }\n else {\n segLength += source.point.x - source.corners.left;\n }\n }\n return segLength;\n}\n/**\n * getRightLength method \\\n *\n * @returns { number } getRightLength method .\\\n * @param {End} source - provide the sPt value.\n * @param {End} target - provide the orientation value.\n * @param {number} length - provide the src value.\n * @param {string} prevDir - provide the src value.\n * @private\n */\nfunction getRightLength(source, target, length, prevDir) {\n if (source.corners.right + source.margin.right < target.corners.right + target.margin.right &&\n source.corners.right + source.margin.right >= target.corners.left - target.margin.left) {\n if (target.direction === 'Bottom' && source.point.y < target.point.y) {\n length += target.corners.right - source.corners.right;\n }\n else if (target.direction === 'Top' && source.point.y > target.point.y) {\n length += target.corners.right - source.corners.right;\n }\n length += source.corners.right - source.point.x;\n }\n else {\n if ((prevDir !== undefined && prevDir !== 'Top') && target.direction === 'Bottom' && source.point.y < target.point.y) {\n length += Math.abs(source.point.x - target.corners.right);\n }\n else if ((prevDir !== undefined && prevDir !== 'Bottom') && target.direction === 'Top' && target.point.y < source.point.y) {\n length += Math.abs(source.point.x - target.corners.right);\n }\n else {\n length += source.corners.right - source.point.x;\n }\n }\n return length;\n}\n/**\n * getBottomLength method \\\n *\n * @returns { number } getBottomLength method .\\\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {number} segLength - provide the segLength value.\n * @param {string} prevDir - provide the src value.\n * @private\n */\nfunction getBottomLength(source, target, segLength, prevDir) {\n if (source.corners.bottom + source.margin.bottom < target.corners.bottom + target.margin.bottom &&\n source.corners.bottom + source.margin.bottom >= target.corners.top - target.margin.top) {\n if (target.direction === 'Right' && source.point.x < target.point.x) {\n segLength += target.corners.bottom - source.corners.bottom;\n }\n else if (target.direction === 'Left' && source.point.x > target.point.x) {\n segLength += target.corners.bottom - source.corners.bottom;\n }\n segLength += source.corners.bottom - source.point.y;\n }\n else {\n if ((prevDir !== undefined && prevDir !== 'Left') &&\n target.direction === 'Right' && source.point.x < target.point.x) {\n segLength += Math.abs(source.point.y - target.corners.bottom);\n }\n else if ((prevDir !== undefined && prevDir !== 'Right') &&\n target.direction === 'Left' && target.point.x < source.point.x) {\n segLength += Math.abs(source.point.y - target.corners.bottom);\n }\n else {\n segLength += source.corners.bottom - source.point.y;\n }\n }\n return segLength;\n}\nfunction convertPointToBezierSegment(element, segCount, pts) {\n if (element.type === 'Bezier') {\n if (element.segments.length === 0) {\n var start = pts[0];\n var end = pts[pts.length - 1];\n if (segCount === NoOfSegments.One) {\n var distance = Math.min(20, Point.findLength(start, end) * 0.5);\n var vector1 = { angle: findAngle(start, end), distance: distance };\n var vector2 = { angle: findAngle(end, start), distance: distance };\n var dir = Point.direction(start, end);\n var ori = dir === 'Left' || dir === 'Right' ? 'Horizontal' : 'Vertical';\n var segment = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, orientation: ori }, true);\n (element.segments).push(segment);\n }\n else if (segCount === NoOfSegments.Two) {\n var mid = pts[1];\n var vector1 = { angle: findAngle(start, mid), distance: Point.findLength(start, mid) * 0.5 };\n var vector2 = { angle: findAngle(end, mid), distance: Point.findLength(end, mid) * 0.5 };\n var dir = Point.direction(start, mid);\n var ori = dir === 'Left' || dir === 'Right' ? 'Horizontal' : 'Vertical';\n var segment = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, orientation: ori }, true);\n (element.segments).push(segment);\n }\n else if (segCount === NoOfSegments.Three) {\n var mid1 = pts[1];\n var mid2 = pts[pts.length - 2];\n var mid = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var vector1 = { angle: findAngle(start, mid1), distance: Point.findLength(start, mid1) * 0.5 };\n var vector2 = { angle: findAngle(mid, mid1), distance: Point.findLength(mid, mid1) * 0.5 };\n var dir1 = Point.direction(start, mid1);\n var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment1 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: mid, orientation: ori1 }, true);\n (element.segments).push(segment1);\n var vector3 = { angle: findAngle(mid, mid2), distance: Point.findLength(mid, mid2) * 0.5 };\n var vector4 = { angle: findAngle(end, mid2), distance: Point.findLength(end, mid2) * 0.5 };\n var dir2 = Point.direction(mid, mid2);\n var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment2 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, orientation: ori2 }, true);\n (element.segments).push(segment2);\n }\n else if (segCount === NoOfSegments.Four) {\n var mid1 = pts[1];\n var mid2 = pts[2];\n var mid3 = pts[3];\n var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 };\n var vector1 = { angle: findAngle(start, mid1), distance: Point.findLength(start, mid1) * 0.5 };\n var vector2 = { angle: findAngle(center1, mid1), distance: Point.findLength(center1, mid1) * 0.5 };\n var dir1 = Point.direction(start, mid1);\n var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment1 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: center1, orientation: ori1 }, true);\n (element.segments).push(segment1);\n var vector3 = { angle: findAngle(center1, mid2), distance: Point.findLength(center1, mid2) * 0.5 };\n var vector4 = { angle: findAngle(center2, mid2), distance: Point.findLength(center2, mid2) * 0.5 };\n var dir2 = Point.direction(center1, mid2);\n var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment2 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, point: center2, orientation: ori2 }, true);\n (element.segments).push(segment2);\n var vector5 = { angle: findAngle(center2, mid3), distance: Point.findLength(center2, mid3) * 0.5 };\n var vector6 = { angle: findAngle(end, mid3), distance: Point.findLength(end, mid3) * 0.5 };\n var dir3 = Point.direction(center2, mid3);\n var ori3 = dir3 === 'Left' || dir3 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment3 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector5, vector2: vector6, orientation: ori3 }, true);\n (element.segments).push(segment3);\n }\n else if (segCount === NoOfSegments.Five) {\n var mid1 = pts[1];\n var mid2 = pts[2];\n var mid3 = pts[3];\n var mid4 = pts[4];\n var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 };\n var center3 = { x: (mid3.x + mid4.x) * 0.5, y: (mid3.y + mid4.y) * 0.5 };\n var vector1 = { angle: findAngle(start, mid1), distance: Point.findLength(start, mid1) * 0.5 };\n var vector2 = { angle: findAngle(center1, mid1), distance: Point.findLength(center1, mid1) * 0.5 };\n var dir1 = Point.direction(start, mid1);\n var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment1 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: center1, orientation: ori1 }, true);\n (element.segments).push(segment1);\n var vector3 = { angle: findAngle(center1, mid2), distance: Point.findLength(center1, mid2) * 0.5 };\n var vector4 = { angle: findAngle(center2, mid2), distance: Point.findLength(center2, mid2) * 0.5 };\n var dir2 = Point.direction(center1, mid2);\n var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment2 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, point: center2, orientation: ori2 }, true);\n (element.segments).push(segment2);\n var vector5 = { angle: findAngle(center2, mid3), distance: Point.findLength(center2, mid3) * 0.5 };\n var vector6 = { angle: findAngle(center3, mid3), distance: Point.findLength(center3, mid3) * 0.5 };\n var dir3 = Point.direction(center2, mid3);\n var ori3 = dir3 === 'Left' || dir3 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment3 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector5, vector2: vector6, point: center3, orientation: ori3 }, true);\n (element.segments).push(segment3);\n var vector7 = { angle: findAngle(center3, mid4), distance: Point.findLength(center3, mid4) * 0.5 };\n var vector8 = { angle: findAngle(end, mid4), distance: Point.findLength(end, mid4) * 0.5 };\n var dir4 = Point.direction(center3, mid4);\n var ori4 = dir4 === 'Left' || dir4 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment4 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector7, vector2: vector8, orientation: ori4 }, true);\n (element.segments).push(segment4);\n }\n else {\n var segment = new BezierSegment(element, 'segments', { type: 'Bezier' }, true);\n (element.segments).push(segment);\n }\n }\n else {\n for (var i = 0; i < element.segments.length; i++) {\n if (element.bezierSettings.allowSegmentsReset) {\n element.segments[parseInt(i.toString(), 10)].isInternalSegment = true;\n }\n }\n }\n }\n}\n/**\n * getSwapping method \\\n *\n * @returns { boolean } getSwapping method .\\\n * @param {string} srcDir - provide the source value.\n * @param {string} tarDir - provide the target value.\n * @private\n */\nfunction getSwapping(srcDir, tarDir) {\n var swap = false;\n switch (srcDir) {\n case 'Left':\n switch (tarDir) {\n case 'Right':\n case 'Bottom':\n swap = true;\n break;\n }\n break;\n case 'Top':\n switch (tarDir) {\n case 'Left':\n case 'Right':\n case 'Bottom':\n swap = true;\n break;\n }\n break;\n case 'Bottom':\n switch (tarDir) {\n case 'Right':\n swap = true;\n break;\n }\n break;\n }\n return swap;\n}\n/**\n * swapPoints method \\\n *\n * @returns { void } swapPoints method .\\\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction swapPoints(source, target) {\n var direction = source.direction;\n source.direction = target.direction;\n target.direction = direction;\n var point = source.point;\n source.point = target.point;\n target.point = point;\n var corner = source.corners;\n source.corners = target.corners;\n target.corners = corner;\n}\n/**\n * getPortDirection method \\\n *\n * @returns { boolean } getPortDirection method .\\\n * @param {PointModel} point - provide the point value.\n * @param {Corners} corner - provide the corner value.\n * @param {Rect} bounds - provide the bounds value.\n * @param {boolean} closeEdge - provide the closeEdge value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function getPortDirection(point, corner, bounds, closeEdge) {\n var direction;\n var boundsValue = corner === undefined ? bounds : corner;\n var one = boundsValue.topLeft;\n var two = boundsValue.topRight;\n var three = boundsValue.bottomRight;\n var four = boundsValue.bottomLeft;\n var center = boundsValue.center;\n var angle = findAngle(center, point);\n var fourty5 = findAngle(center, three);\n var one35 = findAngle(center, four);\n var two25 = findAngle(center, one);\n var three15 = findAngle(center, two);\n if (angle > two25 && angle < three15) {\n direction = 'Top';\n // if (bounds.width < bounds.height && closeEdge) {\n // let height: number = (bounds.height - bounds.width) / 2;\n // let width: number = bounds.width;\n // if (Math.abs(point.x - one.x) < Math.abs(point.x - two.x)) {\n // direction = checkCloseEdge(direction, new Rect(one.x, one.y, width, height), point, 'Left');\n // } else {\n // direction = checkCloseEdge(direction, new Rect(two.x - bounds.width, two.y, width, height), point, 'Right');\n // }\n // }\n }\n else if (angle >= fourty5 && angle < one35) {\n direction = 'Bottom';\n // if (bounds.width < bounds.height && closeEdge) {\n // let height: number = (bounds.height - bounds.width) / 2;\n // let width: number = bounds.width;\n // if (Math.abs(point.x - four.x) < Math.abs(point.x - three.x)) {\n // direction = checkCloseEdge(direction, new Rect(four.x, four.y - height, width, height), point, 'Left');\n // } else {\n // let value: Rect = new Rect(three.x - bounds.width, three.y - bounds.height / 4, bounds.width, bounds.height / 4);\n // direction = checkCloseEdge(direction, value, point, 'Right');\n // }\n // }\n }\n else if (angle >= one35 && angle <= two25) {\n direction = 'Left';\n // if (bounds.width > bounds.height && closeEdge) {\n // let width: number = (bounds.width - bounds.height) / 2;\n // let height: number = bounds.height;\n // if (Math.abs(point.y - one.y) < Math.abs(point.y - four.y)) {\n // direction = checkCloseEdge(direction, new Rect(one.x, one.y, width, height), point, 'Top');\n // } else {\n // direction = checkCloseEdge(direction, new Rect(four.x, four.y - height, width, height), point, 'Bottom');\n // }\n // }\n }\n else if (angle >= three15 || angle < fourty5) {\n direction = 'Right';\n // if (bounds.width > bounds.height && closeEdge) {\n // let width: number = (bounds.width - bounds.height) / 2;\n // let height: number = bounds.height;\n // if (Math.abs(point.y - two.y) < Math.abs(point.y - three.y)) {\n // direction = checkCloseEdge(direction, new Rect(two.x - width, two.y, width, height), point, 'Top');\n // } else {\n // direction = checkCloseEdge(direction,\n //new Rect(three.x - width, three.y - height, width, height), point, 'Bottom');\n // }\n // }\n }\n else {\n direction = 'Right';\n }\n return direction;\n}\n// function checkCloseEdge(direction: string, threshold: Rect, port: PointModel, nearest: string): string {\n// if (threshold) {\n// switch (direction) {\n// case 'Bottom':\n// case 'Top':\n// let left: number = Math.abs(threshold.left - port.x);\n// let right: number = Math.abs(threshold.right - port.x);\n// let ver: number = direction === 'Top' ? Math.abs(threshold.top - port.y) : Math.abs(threshold.bottom - port.y);\n// if (left < right) {\n// if (left < ver) {\n// return 'Left';\n// }\n// } else {\n// if (right < ver) {\n// return 'Right';\n// }\n// }\n// break;\n// case 'Left':\n// case 'Right':\n// let top: number = Math.abs(threshold.top - port.y);\n// let bottom: number = Math.abs(threshold.bottom - port.y);\n// let hor: number = direction === 'Left' ? Math.abs(threshold.left - port.x) : Math.abs(threshold.right - port.x);\n// if (top < bottom) {\n// if (top < hor) {\n// return 'Top';\n// }\n// } else {\n// if (bottom < hor) {\n// return 'Bottom';\n// }\n// }\n// break;\n// }\n// }\n//Meant for dock port\n// return direction;\n// }\n/**\n * getOuterBounds method \\\n *\n * @returns { Rect } getOuterBounds method .\\\n * @param {Connector} obj - provide the point value.\n * @private\n */\nexport function getOuterBounds(obj) {\n //let outerBounds: Rect;\n var outerBounds = obj.wrapper.children[0].bounds;\n if (obj.sourceDecorator.shape !== 'None') {\n outerBounds.uniteRect(obj.wrapper.children[1].bounds);\n }\n if (obj.targetDecorator.shape !== 'None') {\n outerBounds.uniteRect(obj.wrapper.children[2].bounds);\n }\n return outerBounds;\n}\n/**\n * getOppositeDirection method \\\n *\n * @returns { string } getOppositeDirection method .\\\n * @param {string} direction - provide the direction value.\n * @private\n */\nexport function getOppositeDirection(direction) {\n switch (direction) {\n case 'Top':\n return 'Bottom';\n case 'Bottom':\n return 'Top';\n case 'Left':\n return 'Right';\n case 'Right':\n return 'Left';\n }\n return 'auto';\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * customize the size of the individual palette items.\n */\nvar SymbolSize = /** @class */ (function (_super) {\n __extends(SymbolSize, _super);\n function SymbolSize() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolSize.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolSize.prototype, \"height\", void 0);\n return SymbolSize;\n}(ChildProperty));\nexport { SymbolSize };\n/**\n * Defines the size and description of a symbol\n */\nvar SymbolPaletteInfo = /** @class */ (function (_super) {\n __extends(SymbolPaletteInfo, _super);\n function SymbolPaletteInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"fit\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"description\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"template\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"tooltip\", void 0);\n return SymbolPaletteInfo;\n}(ChildProperty));\nexport { SymbolPaletteInfo };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { DiagramTooltip } from './tooltip';\nimport { SymbolPaletteInfo } from './preview';\n/**\n * Defines the common behavior of nodes, connectors and groups\n */\nvar NodeBase = /** @class */ (function (_super) {\n __extends(NodeBase, _super);\n function NodeBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], NodeBase.prototype, \"id\", void 0);\n __decorate([\n Property(-1)\n ], NodeBase.prototype, \"zIndex\", void 0);\n __decorate([\n Complex({}, Margin)\n ], NodeBase.prototype, \"margin\", void 0);\n __decorate([\n Property(true)\n ], NodeBase.prototype, \"visible\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], NodeBase.prototype, \"tooltip\", void 0);\n __decorate([\n Property(false)\n ], NodeBase.prototype, \"excludeFromLayout\", void 0);\n __decorate([\n Property()\n ], NodeBase.prototype, \"addInfo\", void 0);\n __decorate([\n Property('None')\n ], NodeBase.prototype, \"flip\", void 0);\n __decorate([\n Property('All')\n ], NodeBase.prototype, \"flipMode\", void 0);\n __decorate([\n Complex({}, SymbolPaletteInfo)\n ], NodeBase.prototype, \"symbolInfo\", void 0);\n return NodeBase;\n}(ChildProperty));\nexport { NodeBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DiagramElement } from './diagram-element';\nimport { getContent } from '../../utility/dom-util';\nimport { templateCompiler } from '../../utility/base-util';\n/**\n * HTMLElement defines the basic html elements\n */\nvar DiagramHtmlElement = /** @class */ (function (_super) {\n __extends(DiagramHtmlElement, _super);\n /**\n * set the id for each element \\\n *\n * @returns { void }set the id for each element\\\n * @param {string} nodeId - provide the x value.\n * @param {string} diagramId - provide the y value.\n * @param {string} annotationId - provide the id value.\n * @param {string} nodeTemplate - provide the id value.\n *\n * @private\n */\n function DiagramHtmlElement(nodeId, diagramId, annotationId, nodeTemplate) {\n var _this = _super.call(this) || this;\n _this.data = '';\n /**\n * Gets the node id for the element\n */\n _this.nodeId = '';\n /**\n * defines the id of the annotation on rendering template on label.\n * @private\n */\n _this.annotationId = '';\n /**\n * Gets the diagram id for the html element\n */\n _this.diagramId = '';\n _this.diagramId = diagramId;\n _this.nodeId = nodeId;\n _this.annotationId = annotationId;\n _this.templateFn = templateCompiler(nodeTemplate);\n return _this;\n }\n /**\n * getNodeTemplate method \\\n *\n * @returns { Function } getNodeTemplate method .\\\n *\n * @private\n */\n DiagramHtmlElement.prototype.getNodeTemplate = function () {\n return this.templateFn;\n };\n Object.defineProperty(DiagramHtmlElement.prototype, \"content\", {\n /**\n * Gets or sets the geometry of the html element \\\n *\n * @returns { string | HTMLElement } Gets or sets the geometry of the html element \\\n *\n * @private\n */\n get: function () {\n return this.data;\n },\n /**\n * Gets or sets the value of the html element \\\n *\n * @returns { void }Gets or sets the value of the html element\\\n * @param {string | HTMLElement} value - provide the value value.\n *\n * @private\n */\n set: function (value) {\n this.data = value;\n if (!this.canReset) {\n this.canReset = true;\n if (!this.isTemplate) {\n this.template = getContent(this, true);\n }\n this.canReset = false;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n return DiagramHtmlElement;\n}(DiagramElement));\nexport { DiagramHtmlElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\n/**\n * Specifies the behavior of fixedUserHandles\n */\n/** @private */\nvar FixedUserHandle = /** @class */ (function (_super) {\n __extends(FixedUserHandle, _super);\n function FixedUserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], FixedUserHandle.prototype, \"id\", void 0);\n __decorate([\n Property('transparent')\n ], FixedUserHandle.prototype, \"fill\", void 0);\n __decorate([\n Property('black')\n ], FixedUserHandle.prototype, \"iconStrokeColor\", void 0);\n __decorate([\n Property(0)\n ], FixedUserHandle.prototype, \"iconStrokeWidth\", void 0);\n __decorate([\n Property(true)\n ], FixedUserHandle.prototype, \"visibility\", void 0);\n __decorate([\n Property(10)\n ], FixedUserHandle.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], FixedUserHandle.prototype, \"height\", void 0);\n __decorate([\n Property('transparent')\n ], FixedUserHandle.prototype, \"handleStrokeColor\", void 0);\n __decorate([\n Property(1)\n ], FixedUserHandle.prototype, \"handleStrokeWidth\", void 0);\n __decorate([\n Property('')\n ], FixedUserHandle.prototype, \"pathData\", void 0);\n __decorate([\n Property(0)\n ], FixedUserHandle.prototype, \"cornerRadius\", void 0);\n __decorate([\n Complex({ left: 0, right: 0, top: 0, bottom: 0 }, Margin)\n ], FixedUserHandle.prototype, \"padding\", void 0);\n return FixedUserHandle;\n}(ChildProperty));\nexport { FixedUserHandle };\n/**\n * Defines the node Fixed User Handle\n */\nvar NodeFixedUserHandle = /** @class */ (function (_super) {\n __extends(NodeFixedUserHandle, _super);\n function NodeFixedUserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], NodeFixedUserHandle.prototype, \"offset\", void 0);\n __decorate([\n Complex({}, Margin)\n ], NodeFixedUserHandle.prototype, \"margin\", void 0);\n return NodeFixedUserHandle;\n}(FixedUserHandle));\nexport { NodeFixedUserHandle };\n/**\n * Defines the connector Fixed User Handle\n */\nvar ConnectorFixedUserHandle = /** @class */ (function (_super) {\n __extends(ConnectorFixedUserHandle, _super);\n function ConnectorFixedUserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0.5)\n ], ConnectorFixedUserHandle.prototype, \"offset\", void 0);\n __decorate([\n Property('Center')\n ], ConnectorFixedUserHandle.prototype, \"alignment\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], ConnectorFixedUserHandle.prototype, \"displacement\", void 0);\n return ConnectorFixedUserHandle;\n}(FixedUserHandle));\nexport { ConnectorFixedUserHandle };\n","import { Node } from './../objects/node';\nimport { NodeConstraints, ConnectorConstraints, DiagramConstraints, DiagramTools, DiagramAction, RendererAction } from '../enum/enum';\nimport { AnnotationConstraints, PortConstraints } from '../enum/enum';\nimport { Connector } from './../objects/connector';\nimport { Selector } from './../objects/node';\nimport { ShapeAnnotation, PathAnnotation } from '../objects/annotation';\nimport { PointPort } from '../objects/port';\n/**\n * constraints-util module contains the common constraints \\\n *\n * @returns { number } constraints-util module contains the common constraints .\\\n *\n * @param {ConnectorModel | NodeModel | PathAnnotationModel | ShapeAnnotationModel} node - Provide the DiagramElement value.\n * @private\n */\nexport function canSelect(node) {\n if (node) {\n var state = 0;\n if ((node instanceof ShapeAnnotation) || (node instanceof PathAnnotation)) {\n state = node.constraints & AnnotationConstraints.Select;\n }\n else if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.Select;\n }\n else {\n state = node.constraints & NodeConstraints.Select;\n }\n return state;\n }\n return 1;\n}\n/**\n * Used to check whether we can move the objects ot not\\\n *\n * @returns { number } Used to check whether we can move the objects ot not .\\\n *\n * @param {ConnectorModel | NodeModel | PathAnnotationModel | ShapeAnnotationModel} node - Used to check whether we can move the objects ot not.\n * @private\n */\nexport function canMove(node) {\n if (node) {\n var state = 0;\n if ((node instanceof ShapeAnnotation) || (node instanceof PathAnnotation)) {\n state = node.constraints & AnnotationConstraints.Drag;\n }\n else if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.Drag;\n }\n else if (node instanceof Selector) {\n state = 1;\n }\n else {\n state = node.constraints & NodeConstraints.Drag;\n }\n return state;\n }\n return 1;\n}\n/**\n * Used to check the canEnablePointerEvents\\\n *\n * @returns { number } Used to check whether we can move the objects ot not .\\\n *\n * @param {ConnectorModel | NodeModel} node - Used to check whether we can move the objects ot not.\n * @param {Diagram} diagram - Used to check whether we can move the objects ot not.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function canEnablePointerEvents(node, diagram) {\n var state = 0;\n if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.PointerEvents;\n }\n else {\n state = node.constraints & NodeConstraints.PointerEvents;\n }\n return state;\n}\n/**\n * Used to check the canDelete of the element \\\n *\n * @returns { number } Used to check the canDelete of the element .\\\n *\n * @param {ConnectorModel | NodeModel} node - Used to check whether we can move the objects ot not.\n * @private\n */\nexport function canDelete(node) {\n var state = 0;\n if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.Delete;\n }\n else {\n state = node.constraints & NodeConstraints.Delete;\n }\n return state;\n}\n/**\n * Used to check the bridging of the element \\\n *\n * @returns { number } Used to check the bridging of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @param {ConnectorModel | NodeModel} diagram - provide the diagram value.\n * @private\n */\nexport function canBridge(connector, diagram) {\n var state = 0;\n if (connector.constraints & ConnectorConstraints.Bridging) {\n state = connector.constraints & ConnectorConstraints.Bridging;\n }\n else if (connector.constraints & ConnectorConstraints.InheritBridging) {\n state = diagram.constraints & DiagramConstraints.Bridging;\n }\n else {\n state = 0;\n }\n return state;\n}\n/**\n * Used to check the routing of the element \\\n *\n * @returns { number } Used to check the routing of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @param {ConnectorModel | NodeModel} diagram - provide the diagram value.\n * @private\n */\nexport function canEnableRouting(connector, diagram) {\n var state = 0;\n if (connector.constraints & ConnectorConstraints.LineRouting) {\n state = connector.constraints & ConnectorConstraints.LineRouting;\n }\n else if (connector.constraints & ConnectorConstraints.InheritLineRouting) {\n state = diagram.constraints & DiagramConstraints.LineRouting;\n }\n return state;\n}\n/**\n * Used to check the source end dragof the element \\\n *\n * @returns { number } Used to check the source end dragof the element. \\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @private\n */\nexport function canDragSourceEnd(connector) {\n return connector.constraints & ConnectorConstraints.DragSourceEnd;\n}\n/**\n * Used to check the target end drag of the element \\\n *\n * @returns { number } Used to check the target end drag of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @private\n */\nexport function canDragTargetEnd(connector) {\n return connector.constraints & ConnectorConstraints.DragTargetEnd;\n}\n/**\n * Used to check the segment drag of the element \\\n *\n * @returns { number } Used to check the segment drag of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @private\n */\nexport function canDragSegmentThumb(connector) {\n return connector.constraints & ConnectorConstraints.DragSegmentThumb;\n}\n/**\n * Used to check the routing drag of the element \\\n *\n * @returns { number } Used to check the segment drag of the element .\\\n *\n * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} node - provide the connector value.\n * @private\n */\nexport function canRotate(node) {\n if ((node instanceof ShapeAnnotation) || (node instanceof PathAnnotation)) {\n return node.constraints & AnnotationConstraints.Rotate;\n }\n else {\n return node.constraints & NodeConstraints.Rotate;\n }\n}\n/**\n * Used to check shadown constraints of the element \\\n *\n * @returns { number } Used to check shadown constraints of the element .\\\n *\n * @param {NodeModel} node - provide the connector value.\n * @private\n */\nexport function canShadow(node) {\n return node.constraints & NodeConstraints.Shadow;\n}\n/**\n * Used to check canInConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {NodeModel} node - provide the node value.\n * @private\n */\nexport function canInConnect(node) {\n if ((node instanceof Node) && (node.constraints & NodeConstraints.InConnect)) {\n return node.constraints & NodeConstraints.InConnect;\n }\n return 0;\n}\n/**\n * Used to check canPortInConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel} port - provide the PointPortModel value.\n * @private\n */\nexport function canPortInConnect(port) {\n if (port && port.constraints) {\n if (!(port.constraints & PortConstraints.None) && (port.constraints & PortConstraints.InConnect)) {\n return port.constraints & PortConstraints.InConnect;\n }\n }\n return 0;\n}\n/**\n * Used to check canOutConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {NodeModel} node - provide the node value.\n * @private\n */\nexport function canOutConnect(node) {\n if ((node instanceof Node) && (node.constraints & NodeConstraints.OutConnect)) {\n return node.constraints & NodeConstraints.OutConnect;\n }\n return 0;\n}\n/**\n * Used to check canPortOutConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel} port - provide the node value.\n * @private\n */\nexport function canPortOutConnect(port) {\n if (port && port.constraints) {\n if (!(port.constraints & PortConstraints.None) && (port.constraints & PortConstraints.OutConnect)) {\n return port.constraints & PortConstraints.OutConnect;\n }\n }\n return 0;\n}\n/**\n * Used to check canResize constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} node - provide the node value.\n * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} direction - provide the node value.\n * @private\n */\nexport function canResize(node, direction) {\n var returnValue = 0;\n if (node instanceof ShapeAnnotation || node instanceof PathAnnotation) {\n returnValue = node.constraints & AnnotationConstraints.Resize;\n }\n else if (node) {\n if (direction === 'SouthEast') {\n returnValue = node.constraints & NodeConstraints.ResizeSouthEast;\n }\n else if (direction === 'East') {\n returnValue = node.constraints & NodeConstraints.ResizeEast;\n }\n else if (direction === 'NorthEast') {\n returnValue = node.constraints & NodeConstraints.ResizeNorthEast;\n }\n else if (direction === 'South') {\n returnValue = node.constraints & NodeConstraints.ResizeSouth;\n }\n else if (direction === 'North') {\n returnValue = node.constraints & NodeConstraints.ResizeNorth;\n }\n else if (direction === 'SouthWest') {\n returnValue = node.constraints & NodeConstraints.ResizeSouthWest;\n }\n else if (direction === 'West') {\n returnValue = node.constraints & NodeConstraints.ResizeWest;\n }\n else if (direction === 'NorthWest') {\n returnValue = node.constraints & NodeConstraints.ResizeNorthWest;\n }\n }\n return returnValue;\n}\n/**\n * Used to check canAllowDrop constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {ConnectorModel | NodeModel} node - provide the node value.\n * @private\n */\nexport function canAllowDrop(node) {\n var state = 0;\n if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.AllowDrop;\n }\n else {\n state = node.constraints & NodeConstraints.AllowDrop;\n }\n return state;\n}\n/**\n * Used to check canVitualize constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\nexport function canVitualize(diagram) {\n return diagram.constraints & DiagramConstraints.Virtualization;\n}\n/**\n * Used to check canEnableToolTip constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {ConnectorModel | NodeModel} node - provide the node value.\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\nexport function canEnableToolTip(node, diagram) {\n var state = 0;\n if (node instanceof Connector) {\n if (node.constraints & ConnectorConstraints.Tooltip) {\n state = node.constraints & ConnectorConstraints.Tooltip;\n }\n else if (node.constraints & ConnectorConstraints.InheritTooltip) {\n state = diagram.constraints & DiagramConstraints.Tooltip;\n }\n }\n else if (node instanceof PointPort) {\n if (node.constraints & PortConstraints.ToolTip) {\n state = node.constraints & PortConstraints.ToolTip;\n }\n else if (node.constraints & PortConstraints.InheritTooltip) {\n state = diagram.constraints & DiagramConstraints.Tooltip;\n }\n }\n else {\n if (node.constraints & NodeConstraints.Tooltip) {\n state = node.constraints & NodeConstraints.Tooltip;\n }\n else if (node.constraints & NodeConstraints.InheritTooltip) {\n state = diagram.constraints & DiagramConstraints.Tooltip;\n }\n }\n return state;\n}\n/**\n * Used to check canSingleSelect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canSingleSelect(model) {\n return model.tool & DiagramTools.SingleSelect;\n}\n/**\n * Used to check canMultiSelect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canMultiSelect(model) {\n return model.tool & DiagramTools.MultipleSelect;\n}\n/**\n * Used to check canZoomPan constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canZoomPan(model) {\n return model.tool & DiagramTools.ZoomPan;\n}\n/**\n * Used to check canContinuousDraw constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canContinuousDraw(model) {\n return model.tool & DiagramTools.ContinuousDraw;\n}\n/**\n * Used to check canDrawOnce constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canDrawOnce(model) {\n return model.tool & DiagramTools.DrawOnce;\n}\n/**\n * Used to check defaultTool constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function defaultTool(model) {\n return (model.tool & DiagramTools.SingleSelect) || (model.tool & DiagramTools.MultipleSelect);\n}\n/**\n * Used to check canZoom constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canZoom(model) {\n return model.constraints & DiagramConstraints.Zoom;\n}\n/**\n * Used to check canPan constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPan(model) {\n return model.constraints & DiagramConstraints.Pan;\n}\n/**\n * Used to check canUserInteract constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canUserInteract(model) {\n return model.constraints & DiagramConstraints.UserInteraction;\n}\n/**\n * Used to check canApiInteract constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canApiInteract(model) {\n return model.constraints & DiagramConstraints.ApiUpdate;\n}\n/**\n * Used to check canPanX constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPanX(model) {\n return ((model.constraints & DiagramConstraints.PanX));\n}\n/**\n * Used to check canPanY constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPanY(model) {\n return ((model.constraints & DiagramConstraints.PanY));\n}\n/**\n * Used to check canZoomTextEdit constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\nexport function canZoomTextEdit(diagram) {\n return ((diagram.constraints & DiagramConstraints.ZoomTextEdit));\n}\n/**\n * Used to check canPageEditable constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPageEditable(model) {\n return canApiInteract(model) || (model.diagramActions & DiagramAction.ToolAction);\n}\n/**\n * Used to check enableReadOnly constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} annotation - provide the annotation value.\n * @param {Diagram} node - provide the node value.\n * @private\n */\nexport function enableReadOnly(annotation, node) {\n var enumValue = 0;\n enumValue = (node instanceof Connector) ? ConnectorConstraints.ReadOnly : NodeConstraints.ReadOnly;\n if (node.shape.type === 'Text') {\n return node.constraints & NodeConstraints.ReadOnly;\n }\n else if (node.constraints & enumValue) {\n if (annotation.constraints & AnnotationConstraints.InheritReadOnly) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (annotation.constraints & AnnotationConstraints.ReadOnly) {\n return 1;\n }\n return 0;\n}\n/**\n * Used to check canDraw constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel | NodeModel} port - provide the Diagram value.\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function canDraw(port, diagram) {\n return port.constraints & PortConstraints.Draw;\n}\n/**\n * Used to check canDrag constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel | NodeModel} port - provide the Diagram value.\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function canDrag(port, diagram) {\n return port.constraints & PortConstraints.Drag;\n}\n/**\n * Used to check canPreventClearSelection constraints of the element \\\n *\n * @returns { boolean } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel | NodeModel} diagramActions - provide the diagramActions value.\n * @private\n */\nexport function canPreventClearSelection(diagramActions) {\n if (diagramActions & DiagramAction.PreventClearSelection) {\n return true;\n }\n else {\n return false;\n }\n}\n/**\n * Used to check canDrawThumbs \\\n *\n * @returns { boolean } Used to check canInConnect constraints of the element .\\\n *\n * @param {RendererAction} rendererActions - provide the RendererAction value.\n * @private\n */\nexport function canDrawThumbs(rendererActions) {\n if (!(rendererActions & RendererAction.DrawSelectorBorder)) {\n return true;\n }\n else {\n return false;\n }\n}\n/**\n * Used to check avoidDrawSelector \\\n *\n * @returns { boolean } Used to check canInConnect constraints of the element .\\\n *\n * @param {RendererAction} rendererActions - provide the RendererAction value.\n * @private\n */\nexport function avoidDrawSelector(rendererActions) {\n if ((rendererActions & RendererAction.PreventRenderSelector)) {\n return true;\n }\n else {\n return false;\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable no-self-assign */\nimport { DiagramElement } from '../elements/diagram-element';\nimport { Canvas } from './canvas';\nimport { Container } from './container';\nimport { Size } from '../../primitives/size';\nimport { randomId } from '../../utility/base-util';\nimport { TextElement } from '../elements/text-element';\n/**\n * Grid panel is used to arrange the children in a table like structure\n */\nvar GridPanel = /** @class */ (function (_super) {\n __extends(GridPanel, _super);\n function GridPanel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.childTable = [];\n _this.cellStyle = {};\n _this.desiredRowHeight = [];\n _this.desiredCellWidth = [];\n return _this;\n }\n /**\n * rowDefinitions method \\\n *\n * @returns { RowDefinition[] } columnDefinitions method .\\\n *\n * @private\n */\n GridPanel.prototype.rowDefinitions = function () {\n return this.rowDefns;\n };\n /**\n * columnDefinitions method \\\n *\n * @returns { ColumnDefinition[] } columnDefinitions method .\\\n *\n * @private\n */\n GridPanel.prototype.columnDefinitions = function () {\n return this.colDefns;\n };\n GridPanel.prototype.addObject = function (obj, rowId, columnId, rowSpan, columnSpan) {\n //check if exists\n if (this.rows.length >= rowId) {\n var row = this.rows[parseInt(rowId.toString(), 10)];\n if (row.cells.length > columnId) {\n columnSpan = columnSpan || 1;\n rowSpan = rowSpan || 1;\n var cell = row.cells[parseInt(columnId.toString(), 10)];\n cell.columnSpan = Math.max(columnSpan, cell.columnSpan);\n cell.rowSpan = Math.max(rowSpan, cell.rowSpan);\n var object = new GridCellItem();\n object = obj;\n object.rowId = rowId;\n object.columnId = columnId;\n object.columnSpan = columnSpan;\n this.childTable[object.id] = object;\n this.addObjectToCell(object, cell);\n }\n }\n };\n // public setCellStyle(rowId: number, columnId: number, cellStyle: ShapeStyleModel): void {\n // if (this.rows.length > rowId) {\n // let row: GridRow = this.rows[rowId];\n // if (row.cells.length > columnId) {\n // let cell: GridCell = row.cells[columnId];\n // cell.style = cellStyle;\n // }\n // }\n // }\n // public getRowId(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).rowId;\n // }\n // public getColumnId(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).columnId;\n // }\n // public getRowSpan(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).rowSpan;\n // }\n // public getColumnSpan(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).columnSpan;\n // }\n GridPanel.prototype.addObjectToCell = function (obj, cell) {\n if (!cell.children) {\n cell.children = [];\n }\n // obj.minWidth = cell.desiredCellWidth; obj.minHeight = cell.desiredCellHeight;\n obj.style.strokeColor = 'black';\n obj.style.strokeWidth = 1;\n obj.style.fill = 'white';\n cell.children.push(obj);\n };\n /**\n * updateProperties method \\\n *\n * @returns { void } updateProperties method .\\\n * @param {number} offsetX - provide the Connector value.\n * @param {number} offsetY - provide the Connector value.\n * @param {number} width - provide the Connector value.\n * @param {number} height - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.updateProperties = function (offsetX, offsetY, width, height) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n this.width = width;\n this.height = height;\n };\n /**\n * setDefinitions method \\\n *\n * @returns { void } setDefinitions method .\\\n * @param {RowDefinition[]} rows - provide the rows value.\n * @param {ColumnDefinition[]} columns - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.setDefinitions = function (rows, columns) {\n this.rowDefns = rows;\n this.colDefns = columns;\n this.children = [];\n this.rows = this.rows || [];\n for (var i = 0; i < rows.length; i++) {\n var rowDefn = rows[parseInt(i.toString(), 10)];\n var row = new GridRow();\n row.cells = [];\n var defaultCell = new ColumnDefinition();\n //replace this 100 with a proper property\n defaultCell.width = this.width;\n var columns_1 = this.colDefns;\n if (columns_1 === undefined || columns_1.length < 1) {\n columns_1 = [defaultCell];\n }\n this.addCellInRow(columns_1, rowDefn, row);\n this.rows.push(row);\n }\n };\n /**\n * addCellInRow method \\\n *\n * @returns { void } addCellInRow method .\\\n * @param {ColumnDefinition[]} columns - provide the rows value.\n * @param {RowDefinition} rowDefn - provide the Connector value.\n * @param {GridRow} row - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.addCellInRow = function (columns, rowDefn, row) {\n for (var j = 0; j < columns.length; j++) {\n var colDefn = columns[parseInt(j.toString(), 10)];\n var cell = new GridCell();\n cell.children = [];\n this.cellStyle.fill = 'none';\n this.cellStyle.strokeColor = 'none';\n cell.id = randomId();\n cell.style = this.cellStyle;\n cell.desiredCellWidth = cell.minWidth = colDefn.width;\n cell.desiredCellHeight = cell.minHeight = rowDefn.height;\n row.cells.push(cell);\n this.children.push(cell);\n }\n };\n /**\n * calculateSize method \\\n *\n * @returns { void } calculateSize method .\\\n *\n * @private\n */\n GridPanel.prototype.calculateSize = function () {\n var rows = this.rows || [];\n var calculateHeight = 0;\n var calculateWidth = 0;\n for (var i = 0; i < rows.length; i++) {\n var row = this.rows[parseInt(i.toString(), 10)];\n calculateWidth = 0;\n for (var j = 0; j < row.cells.length; j++) {\n calculateWidth += row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n if (j === row.cells.length - 1) {\n if (this.width && this.width !== calculateWidth) {\n row.cells[parseInt(j.toString(), 10)].desiredCellWidth += (this.width - calculateWidth);\n row.cells[parseInt(j.toString(), 10)].minWidth = row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n if (row.cells[parseInt(j.toString(), 10)].children && row.cells[parseInt(j.toString(), 10)].children.length) {\n row.cells[parseInt(j.toString(), 10)].children[0].width = row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n }\n this.colDefns[parseInt(j.toString(), 10)].width = row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n }\n calculateHeight += row.cells[parseInt(j.toString(), 10)].desiredCellHeight;\n if (i === rows.length - 1) {\n if (this.height && this.height !== calculateHeight) {\n var height = (this.height - calculateHeight);\n if (height > 0) {\n for (var k = 0; k < row.cells.length; k++) {\n row.cells[parseInt(k.toString(), 10)].desiredCellHeight += height;\n row.cells[parseInt(k.toString(), 10)].minHeight = row.cells[parseInt(k.toString(), 10)].desiredCellHeight = row.cells[parseInt(k.toString(), 10)].desiredCellHeight;\n if (row.cells[parseInt(k.toString(), 10)].children && row.cells[parseInt(k.toString(), 10)].children.length) {\n row.cells[parseInt(k.toString(), 10)].children[0].height = row.cells[parseInt(k.toString(), 10)].desiredCellHeight;\n }\n }\n this.rowDefns[parseInt(i.toString(), 10)].height += height;\n }\n }\n }\n }\n }\n }\n };\n /**\n * updateRowHeight method \\\n *\n * @returns { void } updateRowHeight method .\\\n * @param {number} rowId - provide the rows value.\n * @param {number} height - provide the Connector value.\n * @param {boolean} isConsiderChild - provide the Connector value.\n * @param {number} padding - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.updateRowHeight = function (rowId, height, isConsiderChild, padding) {\n var row = this.rows[parseInt(rowId.toString(), 10)];\n this.rowDefns[parseInt(rowId.toString(), 10)].height = height;\n if (this.height !== undefined) {\n this.height += height - row.cells[0].desiredCellHeight;\n }\n for (var i = 0; i < row.cells.length; i++) {\n row.cells[parseInt(i.toString(), 10)].desiredCellHeight = row.cells[parseInt(i.toString(), 10)].minHeight = height;\n if (row.cells[parseInt(i.toString(), 10)].children && row.cells[parseInt(i.toString(), 10)].children.length) {\n row.cells[parseInt(i.toString(), 10)].children[0].height = height;\n this.setTextRefresh(row.cells[parseInt(i.toString(), 10)].children[0]);\n }\n }\n this.desiredRowHeight[parseInt(rowId.toString(), 10)] = height;\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n if (isConsiderChild) {\n var minHeight = (padding !== undefined) ? this.calculateCellHeightBasedOnChildren(rowId, padding) :\n this.calculateCellHeight(rowId);\n if (minHeight > height) {\n this.updateRowHeight(rowId, minHeight, false);\n }\n }\n };\n GridPanel.prototype.setTextRefresh = function (canvas) {\n if (canvas.children && canvas.children.length) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var children = canvas.children;\n for (var i = 0; i < children.length; i++) {\n if (children[parseInt(i.toString(), 10)] instanceof TextElement) {\n children[parseInt(i.toString(), 10)].refreshTextElement();\n }\n if (children[parseInt(i.toString(), 10)] instanceof Canvas) {\n this.setTextRefresh(children[parseInt(i.toString(), 10)]);\n }\n }\n }\n };\n /**\n * updateColumnWidth method \\\n *\n * @returns { void } updateColumnWidth method .\\\n * @param {number} colId - provide the rows value.\n * @param {number} width - provide the Connector value.\n * @param {boolean} isConsiderChild - provide the Connector value.\n * @param {number} padding - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.updateColumnWidth = function (colId, width, isConsiderChild, padding) {\n this.colDefns[parseInt(colId.toString(), 10)].width = width;\n if (this.width !== undefined) {\n this.width += width - this.rows[this.rows.length - 1].cells[parseInt(colId.toString(), 10)].desiredCellWidth;\n }\n for (var i = 0; i < this.rows.length; i++) {\n this.setTextRefresh(this.rows[parseInt(i.toString(), 10)].cells[0]);\n this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].desiredCellWidth = this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].minWidth = width;\n if (this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children && this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children.length) {\n this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children[0].width = width;\n }\n }\n this.desiredCellWidth[parseInt(colId.toString(), 10)] = width;\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n if (isConsiderChild) {\n var minWidth = (padding !== undefined) ? this.calculateCellWidthBasedOnChildren(colId, padding) :\n this.calculateCellWidth(colId);\n if (minWidth > width) {\n this.updateColumnWidth(colId, minWidth, false);\n }\n }\n };\n GridPanel.prototype.calculateCellWidth = function (colIndex) {\n var maxWidth;\n var width;\n var cell;\n for (var i = 0; i < this.rows.length; i++) {\n cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(colIndex.toString(), 10)];\n if (cell.columnSpan === 1) {\n width = (cell.outerBounds.width > cell.bounds.width &&\n (cell.children.length === 0 || cell.children[0].maxWidth === undefined)) ? cell.outerBounds.width : cell.bounds.width;\n if (maxWidth) {\n maxWidth = (maxWidth < width) ? width : maxWidth;\n }\n else {\n maxWidth = width;\n }\n }\n }\n return maxWidth;\n };\n GridPanel.prototype.calculateCellHeight = function (rowIndex) {\n var maxHeight;\n var height;\n var cell;\n var row = this.rows[parseInt(rowIndex.toString(), 10)];\n for (var i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n height = (cell.outerBounds.height > cell.bounds.height) ? cell.outerBounds.height : cell.bounds.height;\n if (maxHeight) {\n maxHeight = (maxHeight < height) ? height : maxHeight;\n }\n else {\n maxHeight = height;\n }\n }\n return maxHeight;\n };\n GridPanel.prototype.calculateCellSizeBasedOnChildren = function (cell, option, padding, maxSize) {\n var maxBounds;\n var canvas = (cell && cell.children.length > 0) ? cell.children[0] : undefined;\n if (canvas && cell.columnSpan === 1) {\n maxBounds = (option === 'Width') ? canvas.bounds.right : canvas.bounds.bottom;\n if (!maxSize) {\n maxSize = (option === 'Width') ? canvas.bounds.width : canvas.bounds.height;\n }\n for (var j = 0; j < canvas.children.length; j++) {\n var children = canvas.children[parseInt(j.toString(), 10)];\n if (children instanceof Canvas) {\n if (children.id.indexOf('header') === -1) {\n var bounds = ((option === 'Width') ? children.bounds.right : children.bounds.bottom) + padding;\n if (bounds > maxBounds) {\n var size = (bounds - maxBounds) + ((option === 'Width') ? canvas.bounds.width : canvas.bounds.height);\n if (maxSize) {\n maxSize = (maxSize < size) ? size : maxSize;\n }\n }\n }\n }\n }\n }\n return maxSize;\n };\n GridPanel.prototype.calculateCellWidthBasedOnChildren = function (colIndex, padding) {\n var maxWidth; //let width: number; let maxBounds: number; let canvas: Canvas;\n var cell;\n for (var i = 0; i < this.rows.length; i++) {\n cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(colIndex.toString(), 10)];\n maxWidth = this.calculateCellSizeBasedOnChildren(cell, 'Width', padding, maxWidth);\n }\n return maxWidth;\n };\n GridPanel.prototype.calculateCellHeightBasedOnChildren = function (rowIndex, padding) {\n var maxHeight;\n var cell;\n // let maxBounds: number; let canvas: Canvas;\n var row = this.rows[parseInt(rowIndex.toString(), 10)];\n for (var i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n maxHeight = this.calculateCellSizeBasedOnChildren(cell, 'Height', padding, maxHeight);\n }\n return maxHeight;\n };\n /**\n * addRow method \\\n *\n * @returns { void } addRow method .\\\n * @param {number} rowId - provide the rowId value.\n * @param {number} rowDefn - provide the rowDefn value.\n * @param {boolean} isMeasure - provide the isMeasure value.\n *\n * @private\n */\n GridPanel.prototype.addRow = function (rowId, rowDefn, isMeasure) {\n if (this.rowDefns.length > 0) {\n this.rowDefns.splice(rowId, 0, rowDefn);\n }\n else {\n this.rowDefns.push(rowDefn);\n }\n var row = new GridRow();\n row.cells = [];\n var defaultCell = new ColumnDefinition();\n defaultCell.width = this.width;\n var columns = this.colDefns;\n this.addCellInRow(columns, rowDefn, row);\n if (rowId > this.rows.length - 1) {\n this.rows.push(row);\n }\n else {\n this.rows.splice(rowId, 0, row);\n }\n if (isMeasure) {\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n }\n };\n /**\n * addColumn method \\\n *\n * @returns { void } addColumn method .\\\n * @param {number} columnId - provide the rowId value.\n * @param {number} column - provide the rowDefn value.\n * @param {boolean} isMeasure - provide the isMeasure value.\n *\n * @private\n */\n GridPanel.prototype.addColumn = function (columnId, column, isMeasure) {\n var row;\n var rowDefn;\n var colDefn;\n var cell;\n var rows = this.rows;\n if (this.colDefns.length > 0) {\n this.colDefns.splice(columnId, 0, column);\n }\n else {\n this.colDefns.push(column);\n }\n if (this.width !== undefined) {\n this.width += column.width;\n }\n for (var i = 0; i < rows.length; i++) {\n row = rows[parseInt(i.toString(), 10)];\n rowDefn = this.rowDefns[parseInt(i.toString(), 10)];\n colDefn = column;\n cell = new GridCell();\n cell.style = this.cellStyle;\n cell.desiredCellWidth = cell.minWidth = colDefn.width;\n cell.desiredCellHeight = cell.minHeight = rowDefn.height;\n cell.children = [];\n if (columnId > row.cells.length - 1) {\n row.cells.push(cell);\n }\n else {\n row.cells.splice(columnId, 0, cell);\n }\n this.children.push(cell);\n }\n if (isMeasure) {\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n }\n };\n /**\n * removeRow method \\\n *\n * @returns { void } removeRow method .\\\n * @param {number} rowId - provide the rowId value.\n *\n * @private\n */\n GridPanel.prototype.removeRow = function (rowId) {\n var cell;\n var element;\n var rows = this.rows;\n var removeRow = rows[parseInt(rowId.toString(), 10)];\n this.height -= this.rowDefns[parseInt(rowId.toString(), 10)].height;\n for (var i = 0; i < removeRow.cells.length; i++) {\n cell = removeRow.cells[parseInt(i.toString(), 10)];\n this.children.splice(this.children.indexOf(cell), 1);\n element = document.getElementById(cell.id + '_groupElement');\n if (element && element.parentElement) {\n element.parentElement.removeChild(element);\n }\n }\n this.rows.splice(rowId, 1);\n this.rowDefns.splice(rowId, 1);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * removeColumn method \\\n *\n * @returns { void } removeColumn method .\\\n * @param {number} columnId - provide the rowId value.\n *\n * @private\n */\n GridPanel.prototype.removeColumn = function (columnId) {\n var cell;\n var element;\n var rows = this.rows;\n this.width -= this.colDefns[parseInt(columnId.toString(), 10)].width;\n for (var i = 0; i < rows.length; i++) {\n cell = rows[parseInt(i.toString(), 10)].cells[parseInt(columnId.toString(), 10)];\n this.children.splice(this.children.indexOf(cell), 1);\n element = document.getElementById(cell.id + '_groupElement');\n if (element && element.parentElement) {\n element.parentElement.removeChild(element);\n }\n rows[parseInt(i.toString(), 10)].cells.splice(columnId, 1);\n }\n this.colDefns.splice(columnId, 1);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * updateRowIndex method \\\n *\n * @returns { void } updateRowIndex method .\\\n * @param {number} currentIndex - provide the rowId value.\n * @param {number} newIndex - provide the rowId value.\n *\n * @private\n */\n GridPanel.prototype.updateRowIndex = function (currentIndex, newIndex) {\n //const rows: GridRow[] = this.rows;\n var temp = this.rows[parseInt(currentIndex.toString(), 10)];\n this.rows.splice(currentIndex, 1);\n this.rows.splice(newIndex, 0, temp);\n var tempRow = this.rowDefns[parseInt(currentIndex.toString(), 10)];\n this.rowDefns.splice(currentIndex, 1);\n this.rowDefns.splice(newIndex, 0, tempRow);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * updateColumnIndex method \\\n *\n * @returns { void } updateColumnIndex method .\\\n * @param {number} startRowIndex - provide the startRowIndex value.\n * @param {number} currentIndex - provide the currentIndex value.\n * @param {number} newIndex - provide the newIndex value.\n *\n * @private\n */\n GridPanel.prototype.updateColumnIndex = function (startRowIndex, currentIndex, newIndex) {\n var temp;\n var cell;\n for (var i = startRowIndex; i < this.rows.length; i++) {\n temp = this.rows[parseInt(i.toString(), 10)];\n cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(currentIndex.toString(), 10)];\n temp.cells.splice(currentIndex, 1);\n temp.cells.splice(newIndex, 0, cell);\n }\n var tempCol = this.colDefns[parseInt(currentIndex.toString(), 10)];\n this.colDefns.splice(currentIndex, 1);\n this.colDefns.splice(newIndex, 0, tempCol);\n var tempSize = this.desiredCellWidth[parseInt(currentIndex.toString(), 10)];\n this.desiredCellWidth.splice(currentIndex, 1);\n this.desiredCellWidth.splice(newIndex, 0, tempSize);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * measure method \\\n *\n * @returns { Size } measure method .\\\n * @param {Size} availableSize - provide the startRowIndex value.\n *\n * @private\n */\n GridPanel.prototype.measure = function (availableSize) {\n var desired = undefined;\n if (this.rows !== undefined && this.rows.length > 0) {\n var i = 0;\n var j = 0;\n desired = new Size(0, 0);\n this.calculateSize();\n for (var _i = 0, _a = this.rows; _i < _a.length; _i++) {\n var row = _a[_i];\n j = 0;\n for (var _b = 0, _c = row.cells; _b < _c.length; _b++) {\n var cell = _c[_b];\n var size = cell.measure(new Size(cell.desiredCellWidth, cell.desiredCellHeight));\n if (cell.rowSpan === 1) {\n if (j === 0 || this.desiredRowHeight[parseInt(i.toString(), 10)] === undefined) {\n this.desiredRowHeight[parseInt(i.toString(), 10)] = size.height;\n }\n else {\n this.desiredRowHeight[parseInt(i.toString(), 10)] = Math.max(size.height, this.desiredRowHeight[parseInt(i.toString(), 10)]);\n }\n }\n if (cell.columnSpan === 1) {\n if (i === 0 || this.desiredCellWidth[parseInt(j.toString(), 10)] === undefined) {\n this.desiredCellWidth[parseInt(j.toString(), 10)] = size.width;\n }\n else {\n this.desiredCellWidth[parseInt(j.toString(), 10)] = Math.max(size.width, this.desiredCellWidth[parseInt(j.toString(), 10)]);\n }\n if (i === this.rows.length - 1) {\n desired.width += this.desiredCellWidth[parseInt(j.toString(), 10)];\n }\n }\n j++;\n }\n desired.height += this.desiredRowHeight[parseInt(i.toString(), 10)];\n i++;\n }\n //to-do update definitions\n i = j = 0;\n var rowIndex = 0;\n for (var _d = 0, _e = this.rows; _d < _e.length; _d++) {\n var row = _e[_d];\n j = 0;\n var cellIndex = 0;\n for (var _f = 0, _g = row.cells; _f < _g.length; _f++) {\n var cell = _g[_f];\n if (cell.columnSpan !== 1) {\n cell.desiredSize.width = 0;\n for (var start = 0; start < cell.columnSpan; start++) {\n if ((start + j) < row.cells.length) {\n cell.desiredSize.width += this.desiredCellWidth[start + j];\n cell.minWidth = cell.desiredSize.width;\n cell.measure(cell.desiredSize);\n }\n }\n j++;\n }\n else {\n cell.desiredSize.width = this.desiredCellWidth[parseInt(cellIndex.toString(), 10)];\n cell.measure(cell.desiredSize);\n }\n if (cell.rowSpan !== 1) {\n cell.desiredSize.height = 0;\n for (var start = 0; start < cell.rowSpan; start++) {\n if ((start + rowIndex) < this.rows.length) {\n cell.desiredSize.height += this.desiredRowHeight[start + rowIndex];\n cell.minHeight = cell.desiredSize.height;\n cell.measure(cell.desiredSize);\n }\n }\n }\n else {\n cell.desiredSize.height = this.desiredRowHeight[parseInt(rowIndex.toString(), 10)];\n cell.measure(cell.desiredSize);\n }\n i++;\n cellIndex++;\n }\n rowIndex++;\n }\n }\n if (desired === undefined) {\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n }\n _super.prototype.stretchChildren.call(this, desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * arrange method \\\n *\n * @returns { Size } arrange method .\\\n * @param {Size} desiredSize - provide the startRowIndex value.\n * @param {boolean} isChange - provide the startRowIndex value.\n *\n * @private\n */\n GridPanel.prototype.arrange = function (desiredSize, isChange) {\n var j = 0;\n var i = 0;\n if (this.rows !== undefined && this.rows.length > 0) {\n var x = this.offsetX - desiredSize.width * this.pivot.x;\n var y = this.offsetY - desiredSize.height * this.pivot.y;\n var cellX = x;\n for (var _i = 0, _a = this.rows; _i < _a.length; _i++) {\n var row = _a[_i];\n cellX = x;\n j = 0;\n for (var _b = 0, _c = row.cells; _b < _c.length; _b++) {\n var cell = _c[_b];\n var cellWidth = Math.max(this.desiredCellWidth[parseInt(j.toString(), 10)], cell.desiredSize.width);\n var cellHeight = Math.max(this.desiredRowHeight[parseInt(i.toString(), 10)], cell.desiredSize.height);\n cell.offsetX = cellX + cellWidth * cell.pivot.x;\n cell.offsetY = y + cellHeight * cell.pivot.y;\n cellX += this.desiredCellWidth[parseInt(j.toString(), 10)];\n cell.arrange(new Size(cellWidth, cellHeight));\n j++;\n }\n y += this.desiredRowHeight[parseInt(i.toString(), 10)];\n i++;\n }\n if (isChange) {\n // Need to remove the unwanted the child elements in the grid\n // Used for row span and column span.\n var cell = void 0;\n var row = void 0;\n var k = void 0;\n var z = void 0;\n var removeCell = void 0;\n for (i = 0; i < this.rows.length; i++) {\n row = this.rows[parseInt(i.toString(), 10)];\n for (j = 0; j < row.cells.length; j++) {\n cell = row.cells[parseInt(j.toString(), 10)];\n if (cell.columnSpan > 1) {\n // remove a child element when a column span is greater than 1\n this.children.splice((this.children.indexOf(cell)) + 1, cell.columnSpan - 1);\n }\n if (cell.rowSpan > 1) {\n for (k = i, z = 0; ((k + cell.rowSpan - 1) < this.rows.length && z < cell.rowSpan - 1); k++, z++) {\n removeCell = this.rows[k + 1].cells[parseInt(j.toString(), 10)];\n // remove a child element when a row span is greater than 1\n this.children.splice(this.children.indexOf(removeCell), 1);\n }\n }\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n return desiredSize;\n };\n return GridPanel;\n}(Container));\nexport { GridPanel };\n/**\n * Defines the behavior of the RowDefinition of node\n */\nvar RowDefinition = /** @class */ (function () {\n function RowDefinition() {\n /** returns the height of node */\n this.height = undefined;\n }\n return RowDefinition;\n}());\nexport { RowDefinition };\n/**\n * Defines the behavior of the ColumnDefinition of node\n */\nvar ColumnDefinition = /** @class */ (function () {\n function ColumnDefinition() {\n /** returns the width of node */\n this.width = undefined;\n }\n return ColumnDefinition;\n}());\nexport { ColumnDefinition };\n/** @private */\nvar GridRow = /** @class */ (function () {\n function GridRow() {\n this.cells = null;\n }\n return GridRow;\n}());\nexport { GridRow };\n/** @private */\nvar GridCell = /** @class */ (function (_super) {\n __extends(GridCell, _super);\n function GridCell() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.columnSpan = 1;\n _this.rowSpan = 1;\n return _this;\n }\n return GridCell;\n}(Canvas));\nexport { GridCell };\nvar GridCellItem = /** @class */ (function (_super) {\n __extends(GridCellItem, _super);\n function GridCellItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.rowId = 0;\n _this.columnId = 0;\n _this.rowSpan = 1;\n _this.columnSpan = 1;\n return _this;\n }\n return GridCellItem;\n}(DiagramElement));\n","import { Node } from '../objects/node';\nimport { GridPanel, RowDefinition, ColumnDefinition } from '../core/containers/grid';\nimport { Lane, Phase } from '../objects/node';\nimport { DiagramAction, NodeConstraints, DiagramConstraints, DiagramEvent, ElementAction } from '../enum/enum';\nimport { cloneObject, randomId } from './../utility/base-util';\nimport { DiagramElement } from '../core/elements/diagram-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { Size } from '../primitives/size';\nimport { Canvas } from '../core/containers/canvas';\nimport { Rect } from '../primitives/rect';\nimport { checkParentAsContainer, findBounds, removeChildInContainer } from '../interaction/container-interaction';\nimport { canSelect } from './constraints-util';\n/**\n * SwimLane modules are used to rendering and interaction.\n */\n/** @private */\n/**\n * initSwimLane method \\\n *\n * @returns {void} initSwimLane method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param { Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the node value.\n * @private\n */\nexport function initSwimLane(grid, diagram, node) {\n if (!node.width && node.shape.phases.length === 0) {\n node.width = 100;\n }\n var row = [];\n var columns = [];\n var index = 0;\n var shape = node.shape;\n var orientation = shape.orientation === 'Horizontal' ? true : false;\n if (shape.header && shape.hasHeader) {\n createRow(row, shape.header.height);\n }\n initGridRow(row, orientation, node);\n initGridColumns(columns, orientation, node);\n grid.setDefinitions(row, columns);\n if (shape.header && shape.hasHeader) {\n headerDefine(grid, diagram, node);\n index++;\n }\n if (shape.phases.length > 0 && shape.phaseSize) {\n for (var k = 0; k < shape.phases.length; k++) {\n if (shape.phases[parseInt(k.toString(), 10)].id === '') {\n shape.phases[parseInt(k.toString(), 10)].id = randomId();\n }\n phaseDefine(grid, diagram, node, index, orientation, k);\n }\n index++;\n }\n if (shape.lanes.length > 0) {\n for (var k = 0; k < shape.lanes.length; k++) {\n if (shape.lanes[parseInt(k.toString(), 10)].id === '') {\n shape.lanes[parseInt(k.toString(), 10)].id = randomId();\n }\n laneCollection(grid, diagram, node, index, k, orientation);\n index++;\n }\n }\n}\n/**\n * addObjectToGrid method \\\n *\n * @returns {Container} addObjectToGrid method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @param { GridPanel} grid - provide the grid value.\n * @param {NodeModel} parent - provide the parent value.\n * @param {NodeModel} object - provide the object value.\n * @param {boolean} isHeader - provide the isHeader value.\n * @param {boolean} isPhase - provide the isPhase value.\n * @param {boolean} isLane - provide the isLane value.\n * @param {string} canvas - provide the canvas value.\n * @private\n */\nexport function addObjectToGrid(diagram, grid, parent, object, isHeader, isPhase, isLane, canvas) {\n var node = new Node(diagram, 'nodes', object, true);\n node.parentId = parent.id;\n node.isHeader = (isHeader) ? true : false;\n node.isPhase = (isPhase) ? true : false;\n node.isLane = (isLane) ? true : false;\n var id = (isPhase) ? 'PhaseHeaderParent' : 'LaneHeaderParent';\n if (canvas) {\n node[\"\" + id] = canvas;\n }\n node.constraints &= ~(NodeConstraints.InConnect | NodeConstraints.OutConnect);\n node.constraints |= NodeConstraints.HideThumbs;\n diagram.initObject(node);\n diagram.nodes.push(node);\n if (node.wrapper.children.length > 0) {\n for (var i = 0; i < node.wrapper.children.length; i++) {\n var child = node.wrapper.children[parseInt(i.toString(), 10)];\n if (child instanceof DiagramElement) {\n child.isCalculateDesiredSize = false;\n }\n if (child instanceof TextElement) {\n child.canConsiderBounds = false;\n if (!isHeader && (parent.shape.orientation === 'Vertical' && isPhase) ||\n (parent.shape.orientation !== 'Vertical' && isLane)) {\n child.isLaneOrientation = true;\n child.refreshTextElement();\n }\n }\n }\n node.wrapper.measure(new Size(undefined, undefined));\n node.wrapper.arrange(node.wrapper.desiredSize);\n }\n return node.wrapper;\n}\n/**\n * headerDefine method \\\n *\n * @returns {void} headerDefine method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} object - provide the object value.\n * @private\n */\nexport function headerDefine(grid, diagram, object) {\n var maxWidth = 0;\n var columns = grid.columnDefinitions();\n var shape = object.shape;\n for (var i = 0; i < columns.length; i++) {\n maxWidth += columns[parseInt(i.toString(), 10)].width;\n }\n shape.header.id = shape.header.id || randomId();\n var node = {\n id: object.id + shape.header.id,\n annotations: [cloneObject(shape.header.annotation)],\n style: shape.header.style ? shape.header.style : undefined,\n offsetX: object.offsetX, offsetY: object.offsetY,\n rowIndex: 0, columnIndex: 0,\n maxWidth: maxWidth,\n container: { type: 'Canvas', orientation: 'Horizontal' }\n };\n if (!canSelect(object)) {\n node.constraints &= ~NodeConstraints.Select;\n }\n var wrapper = addObjectToGrid(diagram, grid, object, node, true);\n grid.addObject(wrapper, 0, 0, 1, grid.columnDefinitions().length);\n}\n/**\n * phaseDefine method \\\n *\n * @returns {void} phaseDefine method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} object - provide the object value.\n * @param {number} indexValue - provide the indexValue value.\n * @param {boolean} orientation - provide the orientation value.\n * @param {number} phaseIndex - provide the phaseIndex value.\n * @private\n */\nexport function phaseDefine(grid, diagram, object, indexValue, orientation, phaseIndex) {\n var rowValue = 0;\n var colValue = 0;\n var maxWidth;\n var shape = object.shape;\n if (orientation) {\n colValue = phaseIndex;\n rowValue = indexValue;\n maxWidth = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width;\n }\n else {\n rowValue = shape.header && shape.hasHeader ? phaseIndex + 1 : phaseIndex;\n }\n var phaseObject = {\n annotations: [cloneObject(shape.phases[parseInt(phaseIndex.toString(), 10)].header.annotation)],\n maxWidth: maxWidth,\n id: object.id + shape.phases[parseInt(phaseIndex.toString(), 10)].id + '_header',\n addInfo: shape.phases[parseInt(phaseIndex.toString(), 10)].addInfo,\n offsetX: object.offsetX, offsetY: object.offsetY,\n style: shape.phases[parseInt(phaseIndex.toString(), 10)].style,\n rowIndex: rowValue, columnIndex: colValue,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n phaseObject.annotations[0].rotateAngle = orientation ? 0 : 270;\n if (!canSelect(object)) {\n phaseObject.constraints &= ~NodeConstraints.Select;\n }\n shape.phases[parseInt(phaseIndex.toString(), 10)].header.id = phaseObject.id;\n var wrapper = addObjectToGrid(diagram, grid, object, phaseObject, false, true, false, shape.phases[parseInt(phaseIndex.toString(), 10)].id);\n grid.addObject(wrapper, rowValue, colValue);\n}\n/**\n * laneCollection method \\\n *\n * @returns {void} laneCollection method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} object - provide the object value.\n * @param {number} indexValue - provide the indexValue value.\n * @param {number} laneIndex - provide the laneIndex value.\n * @param {boolean} orientation - provide the orientation value.\n * @private\n */\nexport function laneCollection(grid, diagram, object, indexValue, laneIndex, orientation) {\n var laneNode;\n var parentWrapper;\n var gridCell;\n var canvas;\n var childWrapper;\n var shape = object.shape;\n var value = shape.phases.length || 1;\n var isHeader = (shape.header && shape.hasHeader) ? 1 : 0;\n var rowValue = orientation ? indexValue : isHeader;\n var phaseCount = (shape.phaseSize && shape.phases.length > 0) ? 1 : 0;\n for (var l = 0; l < value; l++) {\n var colValue = orientation ? l : laneIndex + phaseCount;\n gridCell = grid.rows[parseInt(rowValue.toString(), 10)].cells[parseInt(colValue.toString(), 10)];\n canvas = {\n id: object.id + shape.lanes[parseInt(laneIndex.toString(), 10)].id + l,\n rowIndex: rowValue, columnIndex: colValue,\n width: gridCell.minWidth, height: gridCell.minHeight,\n offsetX: object.offsetX, offsetY: object.offsetY,\n style: shape.lanes[parseInt(laneIndex.toString(), 10)].style,\n addInfo: shape.lanes[parseInt(laneIndex.toString(), 10)].addInfo,\n constraints: NodeConstraints.Default | NodeConstraints.ReadOnly | NodeConstraints.AllowDrop,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n if (!canSelect(object)) {\n canvas.constraints &= ~NodeConstraints.Select;\n }\n parentWrapper = addObjectToGrid(diagram, grid, object, canvas, false, false, true);\n parentWrapper.children[0].isCalculateDesiredSize = false;\n if (l === 0) {\n laneNode = {\n id: object.id + shape.lanes[parseInt(laneIndex.toString(), 10)].id + '_' + l + '_header',\n style: shape.lanes[parseInt(laneIndex.toString(), 10)].header.style,\n annotations: [cloneObject(shape.lanes[parseInt(laneIndex.toString(), 10)].header.annotation)],\n offsetX: object.offsetX, offsetY: object.offsetY,\n rowIndex: rowValue, columnIndex: colValue,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n laneNode.annotations[0].rotateAngle = orientation ? 270 : 0;\n shape.lanes[parseInt(laneIndex.toString(), 10)].header.id = laneNode.id;\n // eslint-disable-next-line\n (orientation) ? laneNode.width = shape.lanes[laneIndex].header.width :\n laneNode.height = shape.lanes[parseInt(laneIndex.toString(), 10)].header.height;\n if (!canSelect(object)) {\n laneNode.constraints &= ~NodeConstraints.Select;\n }\n childWrapper = addObjectToGrid(diagram, grid, object, laneNode, false, false, true, shape.lanes[parseInt(laneIndex.toString(), 10)].id);\n if (orientation) {\n childWrapper.children[0].elementActions = childWrapper.children[0].elementActions | ElementAction.HorizontalLaneHeader;\n }\n parentWrapper.children.push(childWrapper);\n }\n grid.addObject(parentWrapper, rowValue, colValue);\n if (!orientation) {\n rowValue++;\n }\n colValue = orientation ? l : laneIndex + 1;\n }\n}\n/**\n * createRow method \\\n *\n * @returns {void} createRow method .\\\n * @param { RowDefinition[]} row - provide the row value.\n * @param {number} height - provide the height value.\n * @private\n */\nexport function createRow(row, height) {\n var rows = new RowDefinition();\n rows.height = height;\n row.push(rows);\n}\n/**\n * createColumn method \\\n *\n * @returns {void} createColumn method .\\\n * @param {number} width - provide the width value.\n * @private\n */\nexport function createColumn(width) {\n var cols = new ColumnDefinition();\n cols.width = width;\n return cols;\n}\n/**\n * initGridRow method \\\n *\n * @returns {void} initGridRow method .\\\n * @param {RowDefinition[]} row - provide the row value.\n * @param {boolean} orientation - provide the row value.\n * @param {NodeModel} object - provide the row value.\n * @private\n */\nexport function initGridRow(row, orientation, object) {\n var totalHeight = 0;\n var height;\n var shape = object.shape;\n if (row.length > 0) {\n for (var i = 0; i < row.length; i++) {\n totalHeight += row[parseInt(i.toString(), 10)].height;\n }\n }\n if (orientation) {\n if (shape.phases.length > 0 && shape.phaseSize) {\n totalHeight += shape.phaseSize;\n createRow(row, shape.phaseSize);\n }\n if (shape.lanes.length > 0) {\n for (var i = 0; i < shape.lanes.length; i++) {\n height = shape.lanes[parseInt(i.toString(), 10)].height;\n totalHeight += height;\n if (i === shape.lanes.length - 1 && totalHeight < object.height) {\n height += object.height - totalHeight;\n }\n createRow(row, height);\n }\n }\n }\n else {\n if (shape.phases.length > 0) {\n var phaseHeight = 0;\n for (var i = 0; i < shape.phases.length; i++) {\n var phaseOffset = shape.phases[parseInt(i.toString(), 10)].offset;\n if (i === 0) {\n phaseHeight += phaseOffset;\n }\n else {\n phaseOffset -= phaseHeight;\n phaseHeight += phaseOffset;\n }\n height = phaseOffset;\n totalHeight += height;\n if (i === shape.phases.length - 1 && totalHeight < object.height) {\n height += object.height - totalHeight;\n }\n createRow(row, height);\n }\n }\n else {\n createRow(row, object.height);\n }\n }\n}\n/**\n * initGridColumns method \\\n *\n * @returns {void} initGridRow method .\\\n * @param {ColumnDefinition[]} columns - provide the row value.\n * @param {boolean} orientation - provide the row value.\n * @param {NodeModel} object - provide the row value.\n * @private\n */\nexport function initGridColumns(columns, orientation, object) {\n var totalWidth = 0;\n var shape = object.shape;\n var phaseOffset;\n var cols;\n var k;\n var j;\n var value;\n if (shape.phases.length > 0 && shape.orientation === 'Horizontal') {\n for (j = 0; j < shape.phases.length; j++) {\n phaseOffset = shape.phases[parseInt(j.toString(), 10)].offset;\n if (j === 0) {\n totalWidth += phaseOffset;\n }\n else {\n phaseOffset -= totalWidth;\n totalWidth += phaseOffset;\n }\n cols = createColumn(phaseOffset);\n if (j === shape.phases.length - 1 && totalWidth < object.width) {\n cols.width += object.width - totalWidth;\n }\n columns.push(cols);\n }\n }\n else if (!orientation) {\n value = (shape.phaseSize && shape.phases.length > 0) ? shape.lanes.length\n + 1 : shape.lanes.length;\n if (shape.phaseSize && shape.phases.length > 0) {\n totalWidth += shape.phaseSize;\n cols = createColumn(shape.phaseSize);\n columns.push(cols);\n }\n for (k = 0; k < shape.lanes.length; k++) {\n totalWidth += shape.lanes[parseInt(k.toString(), 10)].width;\n cols = createColumn(shape.lanes[parseInt(k.toString(), 10)].width);\n if (k === shape.lanes.length - 1 && totalWidth < object.width) {\n cols.width += object.width - totalWidth;\n }\n columns.push(cols);\n }\n if ((shape.phases.length === 0 && shape.lanes.length === 0)) {\n cols = createColumn(object.width);\n columns.push(cols);\n }\n }\n else {\n cols = createColumn(object.width);\n columns.push(cols);\n }\n}\n/**\n * getConnectors method \\\n *\n * @returns {void} getConnectors method .\\\n * @param {Diagram} diagram - provide the row value.\n * @param {GridPanel} grid - provide the row value.\n * @param {number} rowIndex - provide the row value.\n * @param {boolean} isRowUpdate - provide the row value.\n * @private\n */\nexport function getConnectors(diagram, grid, rowIndex, isRowUpdate) {\n var connectors = [];\n var conn = 0;\n var childNode;\n var node;\n var k;\n var i;\n var j;\n var canvas;\n var row;\n var length = grid.rowDefinitions().length;\n var edges;\n for (var i_1 = 0; i_1 < length; i_1++) {\n row = grid.rows[parseInt(i_1.toString(), 10)];\n for (j = 0; j < row.cells.length; j++) {\n canvas = row.cells[parseInt(j.toString(), 10)].children[0];\n if (canvas && canvas.children && canvas.children.length) {\n for (k = 1; k < canvas.children.length; k++) {\n childNode = canvas.children[parseInt(k.toString(), 10)];\n node = diagram.getObject(childNode.id);\n if (node && (node.inEdges.length > 0 || node.outEdges.length > 0)) {\n edges = node.inEdges.concat(node.outEdges);\n for (conn = 0; conn < edges.length; conn++) {\n if (connectors.indexOf(edges[parseInt(conn.toString(), 10)]) === -1) {\n connectors.push(edges[parseInt(conn.toString(), 10)]);\n }\n }\n }\n }\n }\n }\n }\n return connectors;\n}\n/**\n * swimLaneMeasureAndArrange method \\\n *\n * @returns {void} swimLaneMeasureAndArrange method .\\\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function swimLaneMeasureAndArrange(obj) {\n var canvas = obj.wrapper;\n canvas.measure(new Size(obj.width, obj.height));\n if (canvas.children[0] instanceof GridPanel) {\n var grid = canvas.children[0];\n var isMeasure = false;\n if (grid.width && grid.width < grid.desiredSize.width) {\n isMeasure = true;\n grid.width = grid.desiredSize.width;\n }\n if (grid.height && grid.height < grid.desiredSize.height) {\n isMeasure = true;\n grid.height = grid.desiredSize.height;\n }\n if (isMeasure) {\n grid.measure(new Size(grid.width, grid.height));\n }\n }\n canvas.arrange(canvas.desiredSize);\n}\n/**\n * ChangeLaneIndex method \\\n *\n * @returns {void} ChangeLaneIndex method .\\\n * @param {Diagram} diagram - provide the row value.\n * @param {NodeModel} obj - provide the row value.\n * @param {number} startRowIndex - provide the row value.\n * @private\n */\nexport function ChangeLaneIndex(diagram, obj, startRowIndex) {\n var container = obj.wrapper.children[0];\n var i;\n var j;\n var k;\n var object;\n var subChild;\n var row;\n var cell;\n var child;\n for (i = startRowIndex; i < container.rows.length; i++) {\n row = container.rows[parseInt(i.toString(), 10)];\n for (j = 0; j < row.cells.length; j++) {\n cell = row.cells[parseInt(j.toString(), 10)];\n if (cell.children && cell.children.length > 0) {\n for (k = 0; k < cell.children.length; k++) {\n child = cell.children[parseInt(k.toString(), 10)];\n object = diagram.nameTable[child.id];\n if (object.isLane && child.children.length > 1) {\n subChild = diagram.nameTable[child.children[1].id];\n if (subChild && subChild.isLane) {\n subChild.rowIndex = i;\n subChild.columnIndex = j;\n }\n }\n object.rowIndex = i;\n object.columnIndex = j;\n }\n }\n }\n }\n}\n/**\n * arrangeChildNodesInSwimLane method \\\n *\n * @returns {void} arrangeChildNodesInSwimLane method .\\\n * @param {Diagram} diagram - provide the row value.\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function arrangeChildNodesInSwimLane(diagram, obj) {\n var grid = obj.wrapper.children[0];\n var shape = obj.shape;\n var padding = shape.padding;\n var lanes = shape.lanes;\n var top = grid.bounds.y;\n var rowvalue;\n var columnValue;\n var phaseCount = (shape.phaseSize > 0) ? shape.phases.length : 0;\n var node;\n var canvas;\n var cell;\n var i;\n var j;\n var k;\n var orientation = shape.orientation === 'Horizontal' ? true : false;\n var col = orientation ? shape.phases.length || 1 : lanes.length + 1;\n var row = orientation ? ((shape.header && shape.hasHeader) ? 1 : 0) +\n (shape.phases.length > 0 ? 1 : 0) + (shape.lanes.length)\n : (shape.header && shape.hasHeader ? 1 : 0) + shape.phases.length;\n if (phaseCount === 0 && !orientation && shape.lanes.length) {\n row += 1;\n }\n if (orientation) {\n rowvalue = (shape.header && shape.hasHeader ? 1 : 0) + (phaseCount > 0 ? 1 : 0);\n columnValue = 0;\n }\n else {\n rowvalue = (shape.header && shape.hasHeader ? 1 : 0);\n columnValue = phaseCount > 0 ? 1 : 0;\n }\n if (lanes.length > 0) {\n top += (shape.header && shape.hasHeader) ? shape.header.height : 0;\n for (i = 0; i < lanes.length; i++) {\n for (j = 0; j < lanes[parseInt(i.toString(), 10)].children.length; j++) {\n node = lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)];\n node.offsetX = lanes[parseInt(i.toString(), 10)].width;\n node.offsetY = lanes[parseInt(i.toString(), 10)].height;\n diagram.initObject(node);\n diagram.nodes.push(node);\n // EJ2-63939 - Check whether the lane child is BPMN text node or not\n if (node.shape.type === 'Bpmn' && node.shape.annotations && node.shape.annotations.length > 0) {\n obj.isTextNode = true;\n }\n canvas = node.wrapper;\n if (orientation) {\n for (k = columnValue; k < col; k++) {\n cell = grid.rows[parseInt(rowvalue.toString(), 10)].cells[parseInt(k.toString(), 10)];\n if (canvas.margin.left < (cell.bounds.right - grid.bounds.x)) {\n node.parentId = cell.children[0].id;\n if (k > columnValue) {\n canvas.margin.left = canvas.margin.left - (cell.bounds.left - grid.bounds.left);\n }\n else {\n if ((cell.children[0].children[1].actualSize.width + padding) >= canvas.margin.left) {\n canvas.margin.left = cell.children[0].children[1].actualSize.width + padding;\n }\n }\n if (canvas.margin.left < padding) {\n canvas.margin.left = padding;\n }\n if (canvas.margin.top < padding) {\n canvas.margin.top = padding;\n }\n addChildToLane(canvas, node, diagram);\n break;\n }\n }\n }\n else {\n for (var k_1 = rowvalue; k_1 < row; k_1++) {\n cell = grid.rows[parseInt(k_1.toString(), 10)].cells[parseInt(columnValue.toString(), 10)];\n if (canvas.margin.top < (cell.bounds.bottom - top)) {\n node.parentId = cell.children[0].id;\n if (k_1 > rowvalue) {\n canvas.margin.top = canvas.margin.top - (cell.bounds.top - top);\n }\n else {\n if ((cell.children[0].children[1].actualSize.height + padding) >= canvas.margin.top) {\n canvas.margin.top = cell.children[0].children[1].actualSize.height + padding;\n }\n }\n if (canvas.margin.left < padding) {\n canvas.margin.left = padding;\n }\n if (canvas.margin.top < padding) {\n canvas.margin.top = padding;\n }\n addChildToLane(canvas, node, diagram);\n break;\n }\n }\n }\n }\n // eslint-disable-next-line\n orientation ? rowvalue++ : columnValue++;\n }\n }\n grid.measure(new Size(obj.width, obj.height));\n grid.arrange(grid.desiredSize);\n updateChildOuterBounds(grid, obj);\n obj.width = obj.wrapper.width = grid.width;\n obj.height = obj.wrapper.height = grid.height;\n updateHeaderMaxWidth(diagram, obj);\n obj.wrapper.measure(new Size(obj.width, obj.height));\n obj.wrapper.arrange(grid.desiredSize);\n checkLaneChildrenOffset(obj);\n checkPhaseOffset(obj, diagram);\n checkLaneSize(obj);\n}\n/**\n * addChildToLane method \\\n *\n * @returns {void} addChildToLane method .\\\n * @param {Container} canvas - provide the row value.\n * @param {NodeModel} node - provide the row value.\n * @param {Diagram} diagram - provide the row value.\n * @private\n */\nfunction addChildToLane(canvas, node, diagram) {\n canvas.measure(new Size(node.width, node.height));\n canvas.arrange(canvas.desiredSize);\n var parent = diagram.getObject(node.parentId);\n diagram.addChild(parent, node.id);\n}\n/**\n * updateChildOuterBounds method \\\n *\n * @returns {void} updateChildOuterBounds method .\\\n * @param {GridPanel} grid - provide the row value.\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function updateChildOuterBounds(grid, obj) {\n var columnDefinitions = grid.columnDefinitions();\n var rowDefinitions = grid.rowDefinitions();\n var i;\n var k;\n var j;\n var cell;\n var child;\n var row;\n var rowIndex = findStartLaneIndex(obj);\n if (obj.shape.orientation === 'Vertical') {\n if (rowIndex === 0) {\n rowIndex = (obj.shape.header && obj.shape.hasHeader) ? 1 : 0;\n }\n }\n var padding = obj.shape.padding;\n for (i = 0; i < columnDefinitions.length; i++) {\n grid.updateColumnWidth(i, columnDefinitions[parseInt(i.toString(), 10)].width, true, padding);\n }\n for (i = rowIndex; i < rowDefinitions.length; i++) {\n grid.updateRowHeight(i, rowDefinitions[parseInt(i.toString(), 10)].height, true, padding);\n }\n for (k = 0; k < rowDefinitions.length; k++) {\n row = grid.rows[parseInt(k.toString(), 10)];\n for (i = 0; i < columnDefinitions.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n if (cell.children && cell.children.length > 0) {\n for (j = 0; j < cell.children.length; j++) {\n child = cell.children[parseInt(j.toString(), 10)];\n if (child.maxWidth) {\n child.maxWidth = cell.actualSize.width;\n }\n if (child.maxHeight) {\n child.maxHeight = cell.actualSize.height;\n }\n }\n }\n }\n }\n}\n/**\n * checkLaneSize method \\\n *\n * @returns {void} checkLaneSize method .\\\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function checkLaneSize(obj) {\n if (obj.shape.type === 'SwimLane' && !obj.shape.isLane && !obj.shape.isPhase) {\n var lane = void 0;\n var i = void 0;\n var columns = void 0;\n var size = void 0; //let laneCount: number = 0;\n var lanes = obj.shape.lanes;\n var laneIndex = findStartLaneIndex(obj);\n var rows = obj.wrapper.children[0].rowDefinitions();\n for (i = 0; i < lanes.length; i++, laneIndex++) {\n lane = lanes[parseInt(i.toString(), 10)];\n if (obj.shape.orientation === 'Horizontal') {\n size = rows[parseInt(laneIndex.toString(), 10)].height;\n if (lane.height !== size) {\n lane.height = size;\n }\n }\n else {\n columns = obj.wrapper.children[0].columnDefinitions();\n size = columns[parseInt(laneIndex.toString(), 10)].width;\n if (lane.width !== size) {\n lane.width = size;\n }\n }\n }\n }\n}\n/**\n * checkPhaseOffset method \\\n *\n * @returns {void} checkPhaseOffset method .\\\n * @param {NodeModel} obj - provide the obj value.\n * @param {Diagram} diagram - provide the obj value.\n * @private\n */\nexport function checkPhaseOffset(obj, diagram) {\n var shape = obj.shape;\n var phases = shape.phases;\n var i;\n var offset;\n var phaseRow;\n var phase;\n var gridRowIndex = (shape.header && shape.hasHeader) ? 1 : 0;\n var grid = obj.wrapper.children[0];\n var top = grid.bounds.y + ((shape.header && shape.hasHeader) ? shape.header.height : 0);\n if (obj.shape.type === 'SwimLane') {\n obj = diagram.getObject(obj.id) || obj;\n if (phases.length > 0) {\n grid = obj.wrapper.children[0];\n if (shape.orientation === 'Horizontal') {\n phaseRow = (shape.header && shape.hasHeader) ? grid.rows[1] : grid.rows[0];\n for (i = 0; i < phases.length; i++) {\n phase = phaseRow.cells[parseInt(i.toString(), 10)].children[0];\n offset = phase.bounds.right - grid.bounds.x;\n if (phases[parseInt(i.toString(), 10)].offset !== offset) {\n phases[parseInt(i.toString(), 10)].offset = offset;\n }\n diagram.nameTable[phase.id].maxWidth = phase.maxWidth;\n }\n }\n else {\n for (i = 0; i < phases.length; i++) {\n phase = grid.rows[gridRowIndex + i].cells[0].children[0];\n offset = phase.bounds.bottom - top;\n if (phases[parseInt(i.toString(), 10)].offset !== offset) {\n phases[parseInt(i.toString(), 10)].offset = offset;\n }\n diagram.nameTable[phase.id].maxWidth = phase.maxWidth;\n }\n }\n }\n }\n}\n/**\n * updateConnectorsProperties method \\\n *\n * @returns {void} checkPhaseOffset method .\\\n * @param {string[]} connectors - provide the obj value.\n * @param {Diagram} diagram - provide the obj value.\n * @private\n */\nexport function updateConnectorsProperties(connectors, diagram) {\n if (connectors && connectors.length > 0) {\n var edges = void 0;\n if (diagram.lineRoutingModule && (diagram.constraints & DiagramConstraints.LineRouting)) {\n diagram.lineRoutingModule.renderVirtualRegion(diagram, true);\n }\n for (var i = 0; i < connectors.length; i++) {\n edges = diagram.getObject(connectors[parseInt(i.toString(), 10)]);\n if (diagram.lineRoutingModule && (diagram.constraints & DiagramConstraints.LineRouting) && edges.type === 'Orthogonal') {\n diagram.lineRoutingModule.refreshConnectorSegments(diagram, edges, true);\n }\n else {\n diagram.connectorPropertyChange(edges, {}, {\n sourceID: edges.sourceID, targetID: edges.targetID\n });\n }\n }\n }\n}\n/**\n * laneInterChanged method \\\n *\n * @returns {void} laneInterChanged method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} obj - provide the obj value.\n * @param {NodeModel} target - provide the target value.\n * @param {PointModel} position - provide the position value.\n * @private\n */\nexport function laneInterChanged(diagram, obj, target, position) {\n var index;\n var undoElement;\n var entry;\n var redoElement;\n var sourceIndex;\n var targetIndex;\n var temp;\n var sourceLaneIndex;\n var targetLaneIndex;\n var rowIndex;\n var swimLane = (diagram.getObject(obj.parentId));\n var shape = swimLane.shape;\n var grid = swimLane.wrapper.children[0];\n var lanes = shape.lanes;\n var connectors = getConnectors(diagram, grid, obj.rowIndex, true);\n if ((shape.orientation === 'Horizontal' && obj.rowIndex !== target.rowIndex) ||\n (shape.orientation === 'Vertical' && obj.columnIndex !== target.columnIndex)) {\n if (shape.orientation === 'Horizontal') {\n sourceIndex = obj.rowIndex;\n targetIndex = target.rowIndex;\n index = ((shape.header && shape.hasHeader) ? 1 : 0) + (shape.phases.length && shape.phaseSize ? 1 : 0);\n sourceLaneIndex = obj.rowIndex - index;\n targetLaneIndex = target.rowIndex - index;\n if (lanes[parseInt(sourceLaneIndex.toString(), 10)].canMove) {\n if (sourceLaneIndex < targetLaneIndex) {\n if (position && target.wrapper.offsetY > position.y) {\n targetIndex += (targetLaneIndex > 0) ? -1 : 1;\n targetLaneIndex += (targetLaneIndex > 0) ? -1 : 1;\n }\n }\n else {\n if (position && target.wrapper.offsetY < position.y) {\n targetIndex += 1;\n targetLaneIndex += 1;\n }\n }\n if (sourceIndex !== targetIndex) {\n grid.updateRowIndex(sourceIndex, targetIndex);\n }\n }\n }\n else {\n sourceIndex = obj.columnIndex;\n targetIndex = target.columnIndex;\n index = (shape.phases.length && shape.phaseSize) ? 1 : 0;\n sourceLaneIndex = obj.columnIndex - index;\n targetLaneIndex = target.columnIndex - index;\n rowIndex = (shape.header && shape.hasHeader) ? 1 : 0;\n if (lanes[parseInt(sourceLaneIndex.toString(), 10)].canMove) {\n if (sourceLaneIndex < targetLaneIndex) {\n if (position && target.wrapper.offsetX > position.x) {\n targetIndex += (targetLaneIndex > 0) ? -1 : 1;\n targetLaneIndex += (targetLaneIndex > 0) ? -1 : 1;\n }\n }\n else {\n if (position && target.wrapper.offsetX < position.x) {\n targetIndex += 1;\n targetLaneIndex += 1;\n }\n }\n if (sourceIndex !== targetIndex) {\n if ((shape.phaseSize === 0 || shape.phases.length === 0) && (targetIndex === 0 || sourceIndex === 0)) {\n if (shape.header && shape.hasHeader) {\n var changeHeaderIndex = (targetIndex === 0) ? sourceIndex : targetIndex;\n grid.rows[0].cells[parseInt(changeHeaderIndex.toString(), 10)].children = grid.rows[0].cells[0].children;\n grid.rows[0].cells[parseInt(changeHeaderIndex.toString(), 10)].columnSpan = grid.rows[0].cells[0].columnSpan;\n grid.rows[0].cells[0].children = [];\n }\n }\n grid.updateColumnIndex(0, sourceIndex, targetIndex);\n }\n }\n }\n if (sourceIndex !== targetIndex) {\n temp = lanes[parseInt(sourceLaneIndex.toString(), 10)];\n if (temp.canMove) {\n undoElement = {\n target: cloneObject(target), source: cloneObject(obj)\n };\n temp = lanes[parseInt(sourceLaneIndex.toString(), 10)];\n lanes.splice(sourceLaneIndex, 1);\n lanes.splice(targetLaneIndex, 0, temp);\n redoElement = {\n target: cloneObject(undoElement.source), source: cloneObject(undoElement.target)\n };\n entry = {\n type: 'LanePositionChanged', redoObject: redoElement,\n undoObject: undoElement, category: 'Internal'\n };\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n diagram.commandHandler.addHistoryEntry(entry);\n }\n ChangeLaneIndex(diagram, swimLane, 0);\n updateConnectorsProperties(connectors, diagram);\n updateSwimLaneChildPosition(lanes, diagram);\n swimLane.wrapper.measure(new Size(swimLane.width, swimLane.height));\n swimLane.wrapper.arrange(swimLane.wrapper.desiredSize);\n diagram.updateDiagramObject(swimLane);\n }\n }\n }\n diagram.updateDiagramElementQuad();\n}\n/**\n * updateSwimLaneObject method \\\n *\n * @returns {void} updateSwimLaneObject method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {Node} obj - provide the obj value.\n * @param {NodeModel} swimLane - provide the target value.\n * @param {NodeModel} helperObject - provide the position value.\n * @private\n */\nexport function updateSwimLaneObject(diagram, obj, swimLane, helperObject) {\n var parentNode = diagram.getObject(swimLane.id);\n var shape = parentNode.shape;\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n var lanes = shape.lanes;\n var phases = shape.phases;\n var helperWidth = helperObject.wrapper.actualSize.width;\n var helperHeight = helperObject.wrapper.actualSize.height;\n var objWidth = obj.wrapper.actualSize.width;\n var objHeight = obj.wrapper.actualSize.height;\n if (parentNode.shape.type === 'SwimLane') {\n if (shape.orientation === 'Horizontal') {\n if (obj.isPhase) {\n phases[obj.columnIndex].offset += (helperWidth - objWidth);\n }\n else {\n index = (shape.phaseSize && shape.phases.length > 0) ? index + 1 : index;\n lanes[(obj.rowIndex - index)].height += (helperHeight - objHeight);\n }\n }\n else {\n if (obj.isPhase) {\n phases[(obj.rowIndex - index)].offset += (helperHeight - objHeight);\n }\n else {\n index = (shape.phaseSize && shape.phases.length > 0) ? 1 : 0;\n lanes[(obj.columnIndex - index)].width += (helperWidth - objWidth);\n }\n }\n }\n}\n/**\n * findLaneIndex method \\\n *\n * @returns {number} findLaneIndex method .\\\n * @param {NodeModel} swimLane - provide the diagram value.\n * @param {NodeModel} laneObj - provide the obj value.\n * @private\n */\nexport function findLaneIndex(swimLane, laneObj) {\n var laneIndex;\n var shape = swimLane.shape;\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n if (shape.orientation === 'Horizontal') {\n index += shape.phases.length > 0 ? 1 : 0;\n laneIndex = laneObj.rowIndex - index;\n }\n else {\n laneIndex = laneObj.columnIndex - (shape.phaseSize && shape.phases.length > 0 ? 1 : 0);\n }\n return laneIndex;\n}\n/**\n * findPhaseIndex method \\\n *\n * @returns {number} findPhaseIndex method .\\\n * @param {NodeModel} phase - provide the diagram value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @private\n */\nexport function findPhaseIndex(phase, swimLane) {\n var shape = swimLane.shape;\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n var phaseIndex = (shape.orientation === 'Horizontal') ? phase.columnIndex : phase.rowIndex - index;\n return phaseIndex;\n}\n/**\n * findStartLaneIndex method \\\n *\n * @returns {number} findStartLaneIndex method .\\\n * @param {NodeModel} swimLane - provide the obj value.\n * @private\n */\nexport function findStartLaneIndex(swimLane) {\n var index = 0;\n var shape = swimLane.shape;\n if (shape.orientation === 'Horizontal') {\n index = (shape.header && shape.hasHeader) ? 1 : 0;\n }\n if (shape.phases.length > 0 && shape.phaseSize) {\n index += 1;\n }\n return index;\n}\n/**\n * updatePhaseMaxWidth method \\\n *\n * @returns {void} updatePhaseMaxWidth method .\\\n * @param {NodeModel} parent - provide the obj value.\n * @param {Diagram} diagram - provide the obj value.\n * @param {Canvas} wrapper - provide the obj value.\n * @param {number} columnIndex - provide the obj value.\n * @private\n */\nexport function updatePhaseMaxWidth(parent, diagram, wrapper, columnIndex) {\n var shape = parent.shape;\n if (shape.phases.length > 0) {\n var node = diagram.nameTable[shape.phases[parseInt(columnIndex.toString(), 10)].header.id];\n if (node && node.maxWidth < wrapper.outerBounds.width) {\n node.maxWidth = wrapper.outerBounds.width;\n node.wrapper.maxWidth = wrapper.outerBounds.width;\n }\n }\n}\n/**\n * updateHeaderMaxWidth method \\\n *\n * @returns {void} updateHeaderMaxWidth method .\\\n * @param {NodeModel} diagram - provide the obj value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @private\n */\nexport function updateHeaderMaxWidth(diagram, swimLane) {\n if (swimLane.shape.header && swimLane.shape.hasHeader) {\n var grid = swimLane.wrapper.children[0];\n var id = grid.rows[0].cells[0].children[0].id;\n var headerNode = diagram.nameTable[\"\" + id];\n if (headerNode && headerNode.isHeader && headerNode.maxWidth < swimLane.width) {\n headerNode.maxWidth = swimLane.width;\n headerNode.wrapper.maxWidth = swimLane.width;\n }\n }\n}\n/**\n * addLane method \\\n *\n * @returns {void} addLane method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} parent - provide the obj value.\n * @param {LaneModel} lane - provide the obj value.\n * @param {number} count - provide the obj value.\n * @private\n */\nexport function addLane(diagram, parent, lane, count) {\n var args;\n var swimLane = diagram.nameTable[parent.id];\n if (swimLane.shape.type === 'SwimLane') {\n diagram.protectPropertyChange(true);\n var grid = swimLane.wrapper.children[0];\n var bounds = grid.bounds;\n var shape = swimLane.shape;\n var redoObj = void 0;\n var orientation_1 = false;\n var entry = void 0;\n var index = void 0;\n var children = void 0;\n var j = void 0;\n var i = void 0;\n var k = void 0;\n var cell = void 0;\n var child = void 0;\n var point = void 0;\n var laneObj = new Lane(shape, 'lanes', lane, true);\n index = (shape.header && shape.hasHeader) ? 1 : 0;\n if (shape.orientation === 'Horizontal') {\n orientation_1 = true;\n index = shape.phases.length > 0 ? index + 1 : index;\n }\n var connectors = getConnectors(diagram, grid, 0, true);\n var laneIndex = (count !== undefined) ? count : shape.lanes.length;\n index += laneIndex;\n args = {\n element: laneObj, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changing', type: 'Addition', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n if (!args.cancel) {\n if (orientation_1) {\n var rowDef = new RowDefinition();\n rowDef.height = lane.height;\n grid.addRow(index, rowDef, false);\n swimLane.height = (swimLane.height !== undefined) ? swimLane.height + lane.height : swimLane.height;\n swimLane.wrapper.height = grid.height = swimLane.height;\n }\n else {\n var colDef = new ColumnDefinition();\n colDef.width = lane.width;\n grid.addColumn(laneIndex + 1, colDef, false);\n if (swimLane.width) {\n swimLane.width += lane.width;\n swimLane.wrapper.width = grid.width = swimLane.width;\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n grid.rows[0].cells[0].columnSpan += 1;\n }\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n laneObj.id = (laneObj.id === '') ? randomId() : laneObj.id;\n }\n if (count !== undefined) {\n shape.lanes.splice(count, 0, laneObj);\n }\n else {\n shape.lanes.push(laneObj);\n }\n args = {\n element: laneObj, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changed', type: 'Addition', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n laneCollection(grid, diagram, swimLane, index, laneIndex, orientation_1);\n redoObj = (shape.orientation === 'Horizontal') ?\n diagram.nameTable[grid.rows[parseInt(index.toString(), 10)].cells[0].children[0].id] :\n ((shape.header && shape.hasHeader) ? diagram.nameTable[grid.rows[1].cells[parseInt(index.toString(), 10)].children[0].id] :\n diagram.nameTable[grid.rows[0].cells[parseInt(index.toString(), 10)].children[0].id]);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n entry = {\n type: 'LaneCollectionChanged', changeType: 'Insert', undoObject: cloneObject(laneObj),\n redoObject: cloneObject(redoObj), category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n }\n var startRowIndex = (shape.orientation === 'Horizontal') ?\n index : ((shape.header && shape.hasHeader) ? 1 : 0);\n ChangeLaneIndex(diagram, swimLane, startRowIndex);\n swimLaneMeasureAndArrange(swimLane);\n updateHeaderMaxWidth(diagram, swimLane);\n children = lane.children;\n if (children && children.length > 0) {\n for (j = 0; j < children.length; j++) {\n child = children[parseInt(j.toString(), 10)];\n point = { x: child.wrapper.offsetX, y: child.wrapper.offsetY };\n if (shape.orientation === 'Horizontal') {\n cell = grid.rows[parseInt(index.toString(), 10)].cells[parseInt(i.toString(), 10)];\n for (i = 0; i < grid.rows[parseInt(index.toString(), 10)].cells.length; i++) {\n addChildNodeToNewLane(diagram, grid.rows[parseInt(index.toString(), 10)].cells[parseInt(i.toString(), 10)], point, child);\n }\n }\n else {\n for (k = 0; k < grid.rows.length; k++) {\n cell = grid.rows[parseInt(k.toString(), 10)].cells[parseInt(index.toString(), 10)];\n addChildNodeToNewLane(diagram, cell, point, child);\n }\n }\n }\n }\n updateConnectorsProperties(connectors, diagram);\n diagram.drag(swimLane, bounds.x - grid.bounds.x, bounds.y - grid.bounds.y);\n }\n diagram.protectPropertyChange(false);\n }\n}\n/**\n * addChildNodeToNewLane method \\\n *\n * @returns {void} addChildNodeToNewLane method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {GridCell} cell - provide the cell value.\n * @param {PointModel} point - provide the point value.\n * @param {NodeModel} child - provide the child value.\n * @private\n */\nfunction addChildNodeToNewLane(diagram, cell, point, child) {\n if (cell.children && cell.children.length > 0) {\n var canvas = cell.children[0];\n var parent_1 = diagram.nameTable[canvas.id];\n if (canvas.bounds.containsPoint(point)) {\n diagram.addChild(parent_1, child);\n }\n }\n}\n/**\n * addPhase method \\\n *\n * @returns {void} addPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} parent - provide the cell value.\n * @param {PhaseModel} newPhase - provide the point value.\n * @private\n */\nexport function addPhase(diagram, parent, newPhase) {\n if (parent.shape.type === 'SwimLane') {\n var gridRowIndex = void 0;\n var gridColIndex = void 0;\n var phaseNode = void 0;\n var phase = void 0;\n var previousPhase = void 0;\n var nextPhase = void 0;\n var phaseIndex = void 0;\n var i = void 0;\n var x = parent.wrapper.bounds.x;\n var y = parent.wrapper.bounds.y;\n var shape = parent.shape;\n var padding = shape.padding;\n var phasesCollection = shape.phases;\n var width = void 0;\n var grid = parent.wrapper.children[0];\n var orientation_2 = shape.orientation === 'Horizontal' ? true : false;\n gridRowIndex = (shape.header && shape.hasHeader) ? 0 : -1;\n if (shape.phases.length > 0) {\n gridRowIndex += 1;\n gridColIndex = 0;\n }\n var laneHeaderSize = (orientation_2) ? shape.lanes[0].header.width : shape.lanes[0].header.height;\n if (newPhase.offset > laneHeaderSize) {\n for (i = 0; i < phasesCollection.length; i++) {\n phase = phasesCollection[parseInt(i.toString(), 10)];\n previousPhase = (i > 0) ? phasesCollection[i - 1] : phase;\n if (phase.offset > newPhase.offset) {\n width = (i > 0) ? newPhase.offset - previousPhase.offset : newPhase.offset;\n if (orientation_2) {\n var nextCol = grid.columnDefinitions()[parseInt(i.toString(), 10)];\n nextCol.width -= width;\n nextPhase = diagram.nameTable[shape.phases[parseInt(i.toString(), 10)].header.id];\n nextPhase.maxWidth = nextPhase.wrapper.maxWidth = nextCol.width;\n grid.updateColumnWidth(i, nextCol.width, false);\n var addPhase_1 = new ColumnDefinition();\n addPhase_1.width = width;\n phaseIndex = i;\n grid.addColumn(i, addPhase_1, false);\n break;\n }\n else {\n var nextRow = grid.rowDefinitions()[i + gridRowIndex];\n nextRow.height -= width;\n nextPhase = diagram.nameTable[shape.phases[parseInt(i.toString(), 10)].header.id];\n grid.updateRowHeight(i + gridRowIndex, nextRow.height, false);\n var addPhase_2 = new RowDefinition();\n addPhase_2.height = width;\n phaseIndex = i;\n grid.addRow(i + gridRowIndex, addPhase_2, false);\n break;\n }\n }\n }\n if (diagram.diagramActions & DiagramAction.UndoRedo && phaseIndex === undefined) {\n var entry = diagram.historyManager.currentEntry.next;\n if (entry.isLastPhase) {\n phaseIndex = phasesCollection.length;\n addLastPhase(phaseIndex, parent, entry, grid, orientation_2, newPhase);\n }\n }\n var phaseObj = new Phase((parent.shape), 'phases', newPhase, true);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n phaseObj.id += randomId();\n }\n shape.phases.splice(phaseIndex, 0, phaseObj);\n phaseDefine(grid, diagram, parent, gridRowIndex, orientation_2, phaseIndex);\n if (orientation_2) {\n phaseNode = diagram.nameTable[grid.rows[parseInt(gridRowIndex.toString(), 10)].cells[parseInt(phaseIndex.toString(), 10)].children[0].id];\n if (phaseIndex === 0 && shape.header && shape.hasHeader) {\n grid.rows[0].cells[0].children = grid.rows[0].cells[1].children;\n grid.rows[0].cells[1].children = [];\n var fristRow = grid.rows[0];\n for (var i_2 = 0; i_2 < fristRow.cells.length; i_2++) {\n fristRow.cells[parseInt(i_2.toString(), 10)].minWidth = undefined;\n if (i_2 === 0) {\n fristRow.cells[parseInt(i_2.toString(), 10)].columnSpan = grid.rows[0].cells.length;\n }\n else {\n fristRow.cells[parseInt(i_2.toString(), 10)].columnSpan = 1;\n }\n }\n }\n addHorizontalPhase(diagram, parent, grid, phaseIndex, orientation_2);\n var col = grid.columnDefinitions();\n grid.updateColumnWidth(phaseIndex, col[parseInt(phaseIndex.toString(), 10)].width, true, padding);\n phaseNode.maxWidth = phaseNode.wrapper.maxWidth = col[parseInt(phaseIndex.toString(), 10)].width;\n if (col.length > phaseIndex + 1) {\n var nextPhaseNode = diagram.nameTable[grid.rows[parseInt(gridRowIndex.toString(), 10)].cells[phaseIndex + 1].children[0].id];\n grid.updateColumnWidth(phaseIndex + 1, col[phaseIndex + 1].width, true, padding);\n nextPhaseNode.maxWidth = nextPhaseNode.wrapper.maxWidth = col[phaseIndex + 1].width;\n }\n parent.width = parent.wrapper.width = parent.wrapper.children[0].width = grid.width;\n }\n else {\n phaseNode = diagram.nameTable[grid.rows[gridRowIndex + phaseIndex].cells[0].children[0].id];\n var row = grid.rowDefinitions();\n var size = row[gridRowIndex + phaseIndex].height;\n addVerticalPhase(diagram, parent, grid, gridRowIndex + phaseIndex, orientation_2);\n grid.updateRowHeight(gridRowIndex + phaseIndex, size, true, padding);\n if (row.length > gridRowIndex + phaseIndex + 1) {\n size = row[gridRowIndex + phaseIndex + 1].height;\n grid.updateRowHeight(gridRowIndex + phaseIndex + 1, size, true, padding);\n }\n parent.height = parent.wrapper.height = parent.wrapper.children[0].height = grid.actualSize.height;\n }\n swimLaneMeasureAndArrange(parent);\n parent.width = parent.wrapper.actualSize.width;\n updateHeaderMaxWidth(diagram, parent);\n diagram.drag(parent, x - parent.wrapper.bounds.x, y - parent.wrapper.bounds.y);\n checkPhaseOffset(parent, diagram);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'PhaseCollectionChanged', changeType: 'Insert', undoObject: cloneObject(phaseObj),\n redoObject: cloneObject(phaseNode), category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n }\n diagram.updateDiagramObject(parent);\n }\n }\n}\n/**\n * addLastPhase method \\\n *\n * @returns {void} addLastPhase method .\\\n * @param {number} phaseIndex - provide the diagram value.\n * @param {NodeModel} parent - provide the cell value.\n * @param {HistoryEntry} entry - provide the point value.\n * @param {GridPanel} grid - provide the grid value.\n * @param {boolean} orientation - provide the orientation value.\n * @param {PhaseModel} newPhase - provide the newPhase value.\n * @private\n */\nexport function addLastPhase(phaseIndex, parent, entry, grid, orientation, newPhase) {\n var shape = parent.shape;\n var prevPhase = shape.phases[phaseIndex - 2];\n var prevOffset = entry.previousPhase.offset;\n if (orientation) {\n var nextCol = grid.columnDefinitions()[phaseIndex - 1];\n var addPhase_3 = new ColumnDefinition();\n if (phaseIndex > 1) {\n addPhase_3.width = (nextCol.width) - (prevOffset - prevPhase.offset);\n nextCol.width = prevOffset - prevPhase.offset;\n }\n else {\n addPhase_3.width = nextCol.width - prevOffset;\n nextCol.width = prevOffset;\n }\n grid.updateColumnWidth(phaseIndex - 1, nextCol.width, false);\n grid.addColumn(phaseIndex, addPhase_3, false);\n }\n else {\n var nextCol = grid.rowDefinitions()[parseInt(phaseIndex.toString(), 10)];\n var addPhase_4 = new RowDefinition();\n if (phaseIndex > 1) {\n addPhase_4.height = entry.undoObject.offset - prevOffset;\n nextCol.height = prevOffset - prevPhase.offset;\n }\n else {\n addPhase_4.height = nextCol.height - prevOffset;\n nextCol.height = prevOffset;\n }\n grid.updateRowHeight(phaseIndex, nextCol.height, false);\n grid.addRow(1 + phaseIndex, addPhase_4, false);\n }\n}\n/**\n * addHorizontalPhase method \\\n *\n * @returns {void} addHorizontalPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the cell value.\n * @param {GridPanel} grid - provide the point value.\n * @param {number} index - provide the point value.\n * @param {boolean} orientation - provide the point value.\n * @private\n */\nexport function addHorizontalPhase(diagram, node, grid, index, orientation) {\n var shape = node.shape;\n var nextCell;\n var i;\n var prevCell;\n var gridCell;\n var row;\n var laneIndex = findStartLaneIndex(node);\n if (shape.header && shape.hasHeader) {\n grid.rows[0].cells[0].columnSpan = grid.rows[0].cells.length;\n }\n for (i = laneIndex; i < grid.rows.length; i++) {\n row = grid.rows[parseInt(i.toString(), 10)];\n prevCell = row.cells[index - 1];\n gridCell = row.cells[parseInt(index.toString(), 10)];\n nextCell = row.cells[index + 1];\n addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, i, index);\n }\n ChangeLaneIndex(diagram, node, 1);\n}\n/**\n * addVerticalPhase method \\\n *\n * @returns {void} addVerticalPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the cell value.\n * @param {GridPanel} grid - provide the point value.\n * @param {number} rowIndex - provide the point value.\n * @param {boolean} orientation - provide the point value.\n * @private\n */\nexport function addVerticalPhase(diagram, node, grid, rowIndex, orientation) {\n var prevCell;\n var gridCell;\n var nextCell;\n var row = grid.rows[parseInt(rowIndex.toString(), 10)];\n var nextRow = grid.rows[rowIndex + 1];\n var prevRow = grid.rows[rowIndex - 1];\n for (var i = 1; i < row.cells.length; i++) {\n gridCell = row.cells[parseInt(i.toString(), 10)];\n nextCell = (nextRow) ? nextRow.cells[parseInt(i.toString(), 10)] : undefined;\n prevCell = prevRow.cells[parseInt(i.toString(), 10)];\n addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, rowIndex, i);\n }\n ChangeLaneIndex(diagram, node, 1);\n}\n/**\n * addSwimlanePhases method \\\n *\n * @returns {void} addSwimlanePhases method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the node value.\n * @param {GridPanel} prevCell - provide the prevCell value.\n * @param {number} gridCell - provide the gridCell value.\n * @param {boolean} nextCell - provide the nextCell value.\n * @param {boolean} rowIndex - provide the rowIndex value.\n * @param {boolean} columnIndex - provide the columnIndex value.\n * @private\n */\nfunction addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, rowIndex, columnIndex) {\n var x;\n var y;\n var shape = node.shape;\n var orientation = shape.orientation === 'Horizontal' ? true : false;\n var grid = node.wrapper.children[0];\n var width = gridCell.desiredCellWidth;\n var height = gridCell.desiredCellHeight;\n //const col: number = (orientation) ? rowIndex : columnIndex;\n //let parentWrapper: Container;\n var j;\n var i = (orientation) ? rowIndex : columnIndex;\n if (prevCell) {\n x = orientation ? prevCell.bounds.x + prevCell.bounds.width : prevCell.bounds.x;\n y = orientation ? prevCell.bounds.y : prevCell.bounds.y + prevCell.bounds.height;\n }\n else {\n x = grid.bounds.x;\n y = nextCell.bounds.y;\n }\n var rect = new Rect(x, y, width, height);\n var canvas = {\n id: node.id + ((orientation) ? shape.lanes[i - 2] : shape.lanes[i - 1]).id + randomId()[0],\n rowIndex: rowIndex, columnIndex: columnIndex,\n width: gridCell.minWidth, height: gridCell.minHeight,\n style: ((orientation) ? shape.lanes[i - 2] : shape.lanes[i - 1]).style,\n constraints: NodeConstraints.Default | NodeConstraints.AllowDrop,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n var parentWrapper = addObjectToGrid(diagram, grid, node, canvas, false, false, true);\n parentWrapper.children[0].isCalculateDesiredSize = false;\n grid.addObject(parentWrapper, rowIndex, columnIndex);\n if (nextCell && nextCell.children && nextCell.children.length) {\n for (j = 0; j < nextCell.children.length; j++) {\n if (orientation) {\n diagram.nameTable[nextCell.children[parseInt(j.toString(), 10)].id].columnIndex += 1;\n }\n else {\n diagram.nameTable[nextCell.children[parseInt(j.toString(), 10)].id].rowIndex += 1;\n }\n }\n }\n arrangeChildInGrid(diagram, nextCell, gridCell, rect, parentWrapper, orientation, prevCell);\n}\n/**\n * arrangeChildInGrid method \\\n *\n * @returns {void} arrangeChildInGrid method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {GridCell} nextCell - provide the nextCell value.\n * @param {GridPanel} gridCell - provide the gridCell value.\n * @param {Rect} rect - provide the rect value.\n * @param {Container} parentWrapper - provide the parentWrapper value.\n * @param {boolean} orientation - provide the orientation value.\n * @param {GridCell} prevCell - provide the prevCell value.\n * @private\n */\nexport function arrangeChildInGrid(diagram, nextCell, gridCell, rect, parentWrapper, orientation, prevCell) {\n var child;\n var point;\n var childNode;\n var parent = diagram.nameTable[parentWrapper.id];\n var changeCell = (!nextCell) ? prevCell : nextCell;\n var swimLane = diagram.nameTable[parent.parentId];\n var padding = swimLane.shape.padding;\n if (changeCell.children && changeCell.children[0].children.length > 1) {\n for (var j = 1; j < changeCell.children[0].children.length; j++) {\n child = changeCell.children[0].children[parseInt(j.toString(), 10)];\n childNode = diagram.nameTable[child.id];\n point = (orientation) ? { x: child.bounds.x, y: child.bounds.center.y } :\n { x: child.bounds.center.x, y: child.bounds.top };\n if (rect.containsPoint(point)) {\n gridCell.children[0].children.push(child);\n changeCell.children[0].children.splice(j, 1);\n j--;\n diagram.deleteChild(childNode);\n if (!childNode.isLane) {\n childNode.parentId = parentWrapper.id;\n }\n if (!parent.children) {\n parent.children = [];\n }\n if (!nextCell) {\n if (orientation) {\n childNode.margin.left = childNode.wrapper.bounds.x - changeCell.children[0].bounds.right;\n }\n else {\n childNode.margin.top = childNode.wrapper.bounds.y - changeCell.children[0].bounds.bottom;\n }\n }\n parent.children.push(child.id);\n childNode.zIndex = parent.zIndex + 1;\n diagram.removeElements(childNode);\n }\n else if (nextCell) {\n if (orientation) {\n childNode.margin.left -= gridCell.desiredCellWidth;\n if (padding > childNode.margin.left) {\n childNode.margin.left = padding;\n }\n }\n else {\n childNode.margin.top -= gridCell.desiredCellHeight;\n if (padding > childNode.margin.top) {\n childNode.margin.top = padding;\n }\n }\n }\n }\n }\n}\n/**\n * swimLaneSelection method \\\n *\n * @returns {void} swimLaneSelection method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the node value.\n * @param {string} corner - provide the corner value.\n * @private\n */\nexport function swimLaneSelection(diagram, node, corner) {\n if (node.shape.type === 'SwimLane' && (corner === 'ResizeSouth' || corner === 'ResizeEast')) {\n var shape = node.shape;\n var wrapper = node.wrapper.children[0];\n var child = void 0;\n var index = void 0;\n if (corner === 'ResizeSouth') {\n if (shape.orientation === 'Vertical') {\n child = wrapper.rows[wrapper.rows.length - 1].cells[0];\n }\n else {\n index = wrapper.rows.length - 1;\n child = wrapper.rows[parseInt(index.toString(), 10)].cells[wrapper.rows[parseInt(index.toString(), 10)].cells.length - 1];\n }\n }\n else {\n index = (shape.header && shape.hasHeader) ? 1 : 0;\n child = wrapper.rows[parseInt(index.toString(), 10)].cells[wrapper.rows[parseInt(index.toString(), 10)].cells.length - 1];\n }\n diagram.commandHandler.select(diagram.nameTable[child.children[0].id]);\n }\n}\n/**\n * pasteSwimLane method \\\n *\n * @returns {void} pasteSwimLane method .\\\n * @param {Diagram} swimLane - provide the diagram value.\n * @param {NodeModel} diagram - provide the diagram value.\n * @param {string} clipboardData - provide the clipboardData value.\n * @param {string} laneNode - provide the laneNode value.\n * @param {string} isLane - provide the isLane value.\n * @param {string} isUndo - provide the isUndo value.\n * @private\n */\nexport function pasteSwimLane(swimLane, diagram, clipboardData, laneNode, isLane, isUndo) {\n var i;\n var j;\n var lane;\n var phase;\n var node;\n var ranId = randomId();\n var cloneLane;\n var childX;\n var childY;\n var shape = swimLane.shape; //let lanes: LaneModel[];\n var phases = shape.phases;\n var nodeX = swimLane.offsetX - swimLane.wrapper.actualSize.width / 2;\n var nodeY = swimLane.offsetY - swimLane.wrapper.actualSize.height / 2;\n if (shape.orientation === 'Vertical') {\n nodeY += (shape.header && shape.hasHeader) ? shape.header.height : 0;\n }\n if (!isUndo) {\n if (!isLane) {\n swimLane.id += ranId;\n if (shape && shape.header && shape.hasHeader) {\n shape.header.id += ranId;\n }\n else {\n shape.header = undefined;\n }\n }\n for (i = 0; phases && i < phases.length; i++) {\n phase = phases[parseInt(i.toString(), 10)];\n phase.id += ranId;\n }\n }\n var lanes = (isLane) ? [clipboardData.childTable[laneNode.id]] : shape.lanes;\n for (i = 0; lanes && i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n if (!isUndo) {\n lane.id += ranId;\n }\n for (j = 0; lane.children && j < lane.children.length; j++) {\n node = lane.children[parseInt(j.toString(), 10)];\n childX = node.wrapper.offsetX - node.width / 2;\n childY = node.wrapper.offsetY - node.height / 2;\n node.zIndex = -1;\n node.inEdges = node.outEdges = [];\n if (isUndo || (clipboardData && (clipboardData.pasteIndex === 1 || clipboardData.pasteIndex === 0))) {\n if (shape.orientation === 'Vertical') {\n node.margin.top = childY - nodeY;\n }\n else {\n node.margin.left = childX - nodeX;\n }\n }\n if (!isUndo) {\n node.id += ranId;\n }\n }\n }\n if (!isUndo) {\n if (isLane) {\n var newShape = {\n lanes: lanes,\n phases: phases, phaseSize: shape.phaseSize,\n type: 'SwimLane', orientation: shape.orientation,\n header: { annotation: { content: 'Title' }, height: 50 }\n };\n cloneLane = { shape: newShape };\n if (shape.orientation === 'Horizontal') {\n cloneLane.width = swimLane.wrapper.actualSize.width;\n cloneLane.height = laneNode.wrapper.actualSize.height + shape.header.height + shape.phaseSize;\n cloneLane.offsetX = swimLane.wrapper.offsetX + (clipboardData.pasteIndex * 10);\n cloneLane.offsetY = laneNode.wrapper.offsetY + (clipboardData.pasteIndex * 10);\n }\n else {\n cloneLane.width = laneNode.wrapper.actualSize.width;\n cloneLane.height = swimLane.wrapper.actualSize.height;\n cloneLane.offsetX = laneNode.wrapper.offsetX + (clipboardData.pasteIndex * 10);\n cloneLane.offsetY = swimLane.wrapper.offsetY + (clipboardData.pasteIndex * 10);\n }\n swimLane = cloneLane;\n }\n if (clipboardData.pasteIndex !== 0) {\n swimLane.offsetX += 10;\n swimLane.offsetY += 10;\n }\n swimLane.zIndex = -1;\n swimLane = diagram.add(swimLane);\n if (!isLane) {\n for (var _i = 0, _a = Object.keys(clipboardData.childTable); _i < _a.length; _i++) {\n var i_3 = _a[_i];\n var connector = clipboardData.childTable[\"\" + i_3];\n connector.id += ranId;\n connector.sourceID += ranId;\n connector.targetID += ranId;\n connector.zIndex = -1;\n diagram.add(connector);\n }\n }\n if (diagram.mode !== 'SVG') {\n diagram.refreshDiagramLayer();\n }\n diagram.select([swimLane]);\n }\n return swimLane;\n}\n/**\n * gridSelection method \\\n *\n * @returns {void} gridSelection method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {SelectorModel} selectorModel - provide the selectorModel value.\n * @param {string} id - provide the id value.\n * @param {boolean} isSymbolDrag - provide the isSymbolDrag value.\n * @private\n */\nexport function gridSelection(diagram, selectorModel, id, isSymbolDrag) {\n var canvas;\n var node = selectorModel.nodes[0];\n if (isSymbolDrag || checkParentAsContainer(diagram, node, true)) {\n var targetnode = void 0;\n var bounds = void 0;\n var swimLaneId = void 0;\n var element = new DiagramElement();\n if (id) {\n swimLaneId = (diagram.nameTable[\"\" + id].parentId);\n targetnode = node = diagram.nameTable[\"\" + id];\n }\n var wrapper = !id ? node.wrapper : targetnode.wrapper;\n var parentNode = diagram.nameTable[swimLaneId || node.parentId];\n if (parentNode && parentNode.container.type === 'Grid') {\n canvas = new Canvas();\n canvas.children = [];\n if (isSymbolDrag || !(node.isHeader)) {\n if ((parentNode.container.orientation === 'Horizontal' && node.isPhase) ||\n (parentNode.container.orientation === 'Vertical' &&\n (node.rowIndex > 0 && node.columnIndex > 0 || node.isLane))) {\n bounds = findBounds(parentNode, (targetnode) ? targetnode.columnIndex : node.columnIndex, (parentNode.shape.header && parentNode.shape.hasHeader) ? true : false);\n canvas.offsetX = bounds.center.x;\n canvas.offsetY = bounds.center.y;\n element.width = bounds.width;\n element.height = bounds.height;\n }\n else {\n canvas.offsetX = parentNode.offsetX;\n canvas.offsetY = wrapper.offsetY;\n element.width = parentNode.wrapper.actualSize.width;\n element.height = wrapper.actualSize.height;\n }\n }\n canvas.children.push(element);\n canvas.measure(new Size());\n canvas.arrange(canvas.desiredSize);\n }\n }\n return canvas;\n}\n/**\n * removeLaneChildNode method \\\n *\n * @returns {void} removeLaneChildNode method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} swimLaneNode - provide the diagram value.\n * @param {NodeModel} currentObj - provide the currentObj value.\n * @param {NodeModel} isChildNode - provide the isChildNode value.\n * @param {number} laneIndex - provide the laneIndex value.\n * @private\n */\nexport function removeLaneChildNode(diagram, swimLaneNode, currentObj, isChildNode, laneIndex) {\n laneIndex = (laneIndex !== undefined) ? laneIndex : findLaneIndex(swimLaneNode, currentObj);\n var preventHistory = false;\n var lanenode = swimLaneNode.shape.lanes[parseInt(laneIndex.toString(), 10)];\n for (var j = lanenode.children.length - 1; j >= 0; j--) {\n if (isChildNode) {\n if (isChildNode.id === lanenode.children[parseInt(j.toString(), 10)].id) {\n lanenode.children.splice(j, 1);\n }\n }\n else {\n diagram.removeDependentConnector(lanenode.children[parseInt(j.toString(), 10)]);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n diagram.diagramActions = diagram.diagramActions | DiagramAction.UndoRedo;\n preventHistory = true;\n }\n diagram.remove(lanenode.children[parseInt(j.toString(), 10)]);\n lanenode.children.splice(j, 1);\n if (preventHistory) {\n diagram.diagramActions = diagram.diagramActions & ~DiagramAction.UndoRedo;\n }\n }\n }\n}\n/**\n * getGridChildren method \\\n *\n * @returns {DiagramElement} getGridChildren method .\\\n * @param {Diagram} obj - provide the obj value.\n * @private\n */\nexport function getGridChildren(obj) {\n var children = obj.children[0];\n return children;\n}\n/**\n * removeSwimLane method \\\n *\n * @returns {void} removeSwimLane method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} obj - provide the obj value.\n * @private\n */\nexport function removeSwimLane(diagram, obj) {\n var rows = obj.wrapper.children[0].rows;\n //let preventHistory: boolean = false;\n var node;\n var i;\n var j;\n var k;\n var child;\n var removeNode;\n for (i = 0; i < rows.length; i++) {\n for (j = 0; j < rows[parseInt(i.toString(), 10)].cells.length; j++) {\n child = getGridChildren(rows[parseInt(i.toString(), 10)].cells[parseInt(j.toString(), 10)]);\n if (child && child.children) {\n for (k = child.children.length - 1; k >= 0; k--) {\n if (child.children[parseInt(k.toString(), 10)].children) {\n removeNode = diagram.nameTable[child.children[parseInt(k.toString(), 10)].id];\n if (removeNode) {\n if (removeNode.isLane) {\n deleteNode(diagram, removeNode);\n }\n else {\n diagram.removeDependentConnector(removeNode);\n if ((removeNode.constraints & NodeConstraints.Delete)) {\n diagram.remove(removeNode);\n }\n else {\n removeChildInContainer(diagram, removeNode, {}, false);\n }\n diagram.diagramActions &= ~DiagramAction.PreventHistory;\n }\n }\n }\n }\n }\n if (child) {\n node = diagram.nameTable[child.id];\n if (node) {\n deleteNode(diagram, node);\n }\n }\n }\n }\n}\n/**\n * deleteNode method \\\n *\n * @returns {void} deleteNode method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} node - provide the obj value.\n * @private\n */\nfunction deleteNode(diagram, node) {\n diagram.nodes.splice(diagram.nodes.indexOf(node), 1);\n diagram.removeFromAQuad(node);\n diagram.removeObjectsFromLayer(node);\n delete diagram.nameTable[node.id];\n diagram.removeElements(node);\n}\n/**\n * removeLane method \\\n *\n * @returns {void} removeLane method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} lane - provide the obj value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @param {LaneModel} lanes - provide the obj value.\n * @private\n */\nexport function removeLane(diagram, lane, swimLane, lanes) {\n var args;\n if (swimLane.shape.type === 'SwimLane') {\n var shape = swimLane.shape;\n var laneIndex = void 0;\n if (shape.lanes.length === 1) {\n diagram.remove(swimLane);\n }\n else {\n var x = swimLane.wrapper.bounds.x;\n var y = swimLane.wrapper.bounds.y;\n var row = void 0;\n var i = void 0;\n var cell = void 0;\n var j = void 0;\n var child = void 0;\n var grid = swimLane.wrapper.children[0];\n laneIndex = (lanes) ? (shape.lanes.indexOf(lanes)) : findLaneIndex(swimLane, lane);\n args = {\n element: lane, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changing', type: 'Removal', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n if (!args.cancel) {\n var undoObj = cloneObject(shape.lanes[parseInt(laneIndex.toString(), 10)]);\n removeLaneChildNode(diagram, swimLane, lane, undefined, laneIndex);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'LaneCollectionChanged', changeType: 'Remove', undoObject: undoObj,\n redoObject: cloneObject(lane), category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n }\n shape.lanes.splice(laneIndex, 1);\n var index = (lane) ? (shape.orientation === 'Horizontal' ? lane.rowIndex : lane.columnIndex) :\n (findStartLaneIndex(swimLane) + laneIndex);\n if (shape.orientation === 'Horizontal') {\n row = grid.rows[parseInt(index.toString(), 10)];\n for (i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n if (cell && cell.children.length > 0) {\n for (j = 0; j < cell.children.length; j++) {\n child = cell.children[parseInt(j.toString(), 10)];\n removeChildren(diagram, child);\n }\n }\n }\n grid.removeRow(index);\n }\n else {\n swimLane.width = (swimLane.width !== undefined) ?\n swimLane.width - grid.rows[0].cells[parseInt(index.toString(), 10)].actualSize.width : swimLane.width;\n for (i = 0; i < grid.rows.length; i++) {\n cell = grid.rows[parseInt(i.toString(), 10)].cells[parseInt(index.toString(), 10)];\n if (cell && cell.children.length > 0) {\n for (j = 0; j < cell.children.length; j++) {\n child = cell.children[parseInt(j.toString(), 10)];\n removeChildren(diagram, child);\n }\n }\n }\n grid.removeColumn(index);\n }\n args = {\n element: lane, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changed', type: 'Removal', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n swimLane.width = swimLane.wrapper.width = grid.width;\n swimLane.height = swimLane.wrapper.height = grid.height;\n swimLaneMeasureAndArrange(swimLane);\n if (swimLane.shape.orientation === 'Vertical') {\n index = 0;\n }\n ChangeLaneIndex(diagram, swimLane, index);\n diagram.drag(swimLane, x - swimLane.wrapper.bounds.x, y - swimLane.wrapper.bounds.y);\n diagram.updateDiagramObject(swimLane);\n }\n }\n }\n}\n/**\n * removeChildren method \\\n *\n * @returns {void} removeChildren method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {Canvas} canvas - provide the obj value.\n * @private\n */\nexport function removeChildren(diagram, canvas) {\n var i;\n var node;\n if (canvas instanceof Canvas) {\n if (canvas.children.length > 0) {\n for (i = 0; i < canvas.children.length; i++) {\n if (canvas.children[parseInt(i.toString(), 10)] instanceof Canvas) {\n removeChildren(diagram, canvas.children[parseInt(i.toString(), 10)]);\n }\n }\n }\n node = diagram.getObject(canvas.id);\n deleteNode(diagram, node);\n }\n}\n/**\n * removePhase method \\\n *\n * @returns {void} removePhase method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} phase - provide the obj value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @param {PhaseModel} swimLanePhases - provide the obj value.\n * @private\n */\nexport function removePhase(diagram, phase, swimLane, swimLanePhases) {\n diagram.protectPropertyChange(true);\n var x = swimLane.wrapper.bounds.x;\n var y = swimLane.wrapper.bounds.y;\n var isLastPhase = false;\n var previousPhase;\n var shape = swimLane.shape;\n var grid = swimLane.wrapper.children[0];\n var phaseIndex = swimLanePhases ? shape.phases.indexOf(swimLanePhases) : findPhaseIndex(phase, swimLane);\n var phaseLength = shape.phases.length;\n if (shape.phases.length > 1) {\n if (phaseIndex === phaseLength - 1) {\n isLastPhase = true;\n previousPhase = cloneObject(shape.phases[phaseIndex - 1]);\n }\n var undoObj = cloneObject(shape.phases[parseInt(phaseIndex.toString(), 10)]);\n shape.phases.splice(phaseIndex, 1);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'PhaseCollectionChanged', changeType: 'Remove', undoObject: undoObj, previousPhase: previousPhase,\n redoObject: cloneObject(phase), category: 'Internal', isLastPhase: isLastPhase\n };\n diagram.addHistoryEntry(entry);\n }\n if (shape.orientation === 'Horizontal') {\n removeHorizontalPhase(diagram, grid, phase, phaseIndex);\n }\n else {\n removeVerticalPhase(diagram, grid, phase, phaseIndex, swimLane);\n }\n updateHeaderMaxWidth(diagram, swimLane);\n ChangeLaneIndex(diagram, swimLane, 1);\n checkPhaseOffset(swimLane, diagram);\n diagram.protectPropertyChange(false);\n diagram.updateDiagramObject(swimLane);\n }\n}\n/**\n * removeHorizontalPhase method \\\n *\n * @returns {void} removeHorizontalPhase method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {GridPanel} grid - provide the obj value.\n * @param {NodeModel} phase - provide the obj value.\n * @param {number} phaseIndex - provide the obj value.\n * @private\n */\nexport function removeHorizontalPhase(diagram, grid, phase, phaseIndex) {\n var row;\n var cell;\n var prevCell;\n var actualChild; //let prevChild: Canvas;\n var prevCanvas;\n var width;\n phaseIndex = (phaseIndex !== undefined) ? phaseIndex : phase.columnIndex;\n var i;\n var j;\n var k;\n var child;\n var node;\n var object;\n for (i = 0; i < grid.rows.length; i++) {\n row = grid.rows[parseInt(i.toString(), 10)];\n if (row.cells.length > 1) {\n cell = row.cells[parseInt(phaseIndex.toString(), 10)];\n prevCell = (row.cells.length - 1 === phaseIndex) ? row.cells[phaseIndex - 1] :\n row.cells[phaseIndex + 1];\n prevCanvas = prevCell.children[0];\n if (cell.children.length > 0) {\n actualChild = cell.children[0];\n node = diagram.nameTable[actualChild.id];\n if (prevCell.children.length === 0 && cell.children.length > 0) {\n prevCell.children = cell.children;\n prevCell.columnSpan = cell.columnSpan - 1;\n }\n else {\n for (j = 0; j < actualChild.children.length; j++) {\n child = actualChild.children[parseInt(j.toString(), 10)];\n if (child instanceof Canvas) {\n object = diagram.nameTable[child.id];\n if (!object.isLane) {\n object.parentId = prevCanvas.id;\n }\n if ((row.cells.length - 1 === phaseIndex)) {\n object.margin.left = object.wrapper.bounds.x - prevCanvas.bounds.x;\n child.margin.left = object.wrapper.bounds.x - prevCanvas.bounds.x;\n }\n prevCanvas.children.push(child);\n if (diagram.nameTable[prevCanvas.id]) {\n var parentNode = diagram.nameTable[prevCanvas.id];\n if (!parentNode.children) {\n parentNode.children = [];\n }\n parentNode.children.push(child.id);\n }\n actualChild.children.splice(j, 1);\n j--;\n if (node && node.children && node.children.indexOf(object.id) !== -1) {\n node.children.splice(node.children.indexOf(object.id), 1);\n }\n }\n if ((row.cells.length - 1 !== phaseIndex)) {\n for (k = 0; k < prevCanvas.children.length; k++) {\n var prevChild = prevCanvas.children[parseInt(k.toString(), 10)];\n if (prevChild instanceof Canvas) {\n var prevNode = diagram.nameTable[prevChild.id];\n prevNode.margin.left = prevNode.wrapper.bounds.x - actualChild.bounds.x;\n prevChild.margin.left = prevNode.wrapper.bounds.x - actualChild.bounds.x;\n }\n }\n }\n }\n if (node && node.isPhase) {\n var object_1 = diagram.nameTable[prevCanvas.id];\n if (object_1) {\n prevCanvas.maxWidth = object_1.wrapper.maxWidth = object_1.wrapper.maxWidth += node.wrapper.maxWidth;\n }\n }\n deleteNode(diagram, node);\n }\n }\n }\n }\n var prevWidth = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width;\n grid.removeColumn(phaseIndex);\n if ((phaseIndex < grid.columnDefinitions().length)) {\n width = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width;\n width += prevWidth;\n grid.updateColumnWidth(phaseIndex, width, true);\n }\n else {\n width = grid.columnDefinitions()[phaseIndex - 1].width;\n width += prevWidth;\n grid.updateColumnWidth(phaseIndex - 1, width, true);\n }\n}\n/**\n * removeVerticalPhase method \\\n *\n * @returns {void} removeVerticalPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {GridPanel} grid - provide the grid value.\n * @param {NodeModel} phase - provide the phase value.\n * @param {number} phaseIndex - provide the phaseIndex value.\n * @param {number} swimLane - provide the swimLane value.\n * @private\n */\nexport function removeVerticalPhase(diagram, grid, phase, phaseIndex, swimLane) {\n var cell;\n var height;\n var i;\n var j;\n var k;\n var prevCell;\n var prevChild;\n var shape = swimLane.shape;\n var child;\n var object;\n var phaseRowIndex = (phaseIndex !== undefined) ? ((shape.header) ? phaseIndex + 1 : phaseIndex) : phase.rowIndex;\n var row = grid.rows[parseInt(phaseRowIndex.toString(), 10)];\n var top = swimLane.wrapper.bounds.y;\n var phaseCount = shape.phases.length;\n if (shape.header !== undefined && shape.hasHeader) {\n top += grid.rowDefinitions()[0].height;\n }\n var prevRow = (phaseIndex === phaseCount) ? grid.rows[phaseRowIndex - 1] : grid.rows[phaseRowIndex + 1];\n for (i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n prevCell = prevRow.cells[parseInt(i.toString(), 10)];\n prevChild = prevCell.children[0];\n if (cell.children.length > 0) {\n var children = cell.children[0];\n var node = diagram.nameTable[children.id];\n if (phaseIndex < phaseCount) {\n for (k = 0; k < prevChild.children.length; k++) {\n child = prevChild.children[parseInt(k.toString(), 10)];\n if (child instanceof Canvas) {\n object = diagram.nameTable[child.id];\n object.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : children.bounds.y);\n child.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : children.bounds.y);\n }\n }\n }\n for (j = 0; j < children.children.length; j++) {\n child = children.children[parseInt(j.toString(), 10)];\n if (child instanceof Canvas) {\n object = diagram.nameTable[child.id];\n object.parentId = prevChild.id;\n if (phaseIndex === phaseCount) {\n object.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : prevChild.bounds.y);\n child.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : prevChild.bounds.y);\n }\n prevChild.children.push(child);\n children.children.splice(j, 1);\n j--;\n if (node.children && node.children.indexOf(object.id) !== -1) {\n node.children.splice(node.children.indexOf(object.id), 1);\n }\n }\n }\n deleteNode(diagram, node);\n }\n }\n var prevHeight = grid.rowDefinitions()[parseInt(phaseRowIndex.toString(), 10)].height;\n grid.removeRow(phaseRowIndex);\n if ((phaseRowIndex < grid.rowDefinitions().length)) {\n height = grid.rowDefinitions()[parseInt(phaseRowIndex.toString(), 10)].height;\n height += prevHeight;\n grid.updateRowHeight(phaseRowIndex, height, true);\n }\n else {\n height = grid.rowDefinitions()[phaseRowIndex - 1].height;\n height += prevHeight;\n grid.updateRowHeight(phaseRowIndex - 1, height, true);\n }\n}\n/**\n * considerSwimLanePadding method \\\n *\n * @returns {void} considerSwimLanePadding method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the grid value.\n * @param {number} padding - provide the phase value.\n * @private\n */\nexport function considerSwimLanePadding(diagram, node, padding) {\n var lane = diagram.nameTable[node.parentId];\n if (lane && lane.isLane) {\n var swimLane = diagram.nameTable[lane.parentId];\n var grid = swimLane.wrapper.children[0];\n //let x: number = swimLane.wrapper.bounds.x; let y: number = swimLane.wrapper.bounds.y;\n grid.updateColumnWidth(lane.columnIndex, grid.columnDefinitions()[lane.columnIndex].width, true, padding);\n grid.updateRowHeight(lane.rowIndex, grid.rowDefinitions()[lane.rowIndex].height, true, padding);\n var canvas = lane.wrapper;\n var laneHeader = void 0;\n var isConsiderHeader = false;\n if (node.margin.left < padding) {\n node.margin.left = padding;\n }\n if (node.margin.top < padding) {\n node.margin.top = padding;\n }\n for (var i = 0; i < canvas.children.length; i++) {\n var child = canvas.children[parseInt(i.toString(), 10)];\n if (child instanceof Canvas) {\n var childNode = diagram.nameTable[child.id];\n if (childNode.isLane) {\n laneHeader = childNode.wrapper;\n isConsiderHeader = true;\n break;\n }\n }\n }\n if (laneHeader) {\n if (swimLane.shape.orientation === 'Horizontal') {\n if (node.margin.left < padding + laneHeader.actualSize.width) {\n node.margin.left = padding + laneHeader.actualSize.width;\n }\n }\n else {\n if (node.margin.top < padding + laneHeader.actualSize.height) {\n node.margin.top = padding + laneHeader.actualSize.height;\n }\n }\n }\n swimLane.wrapper.measure(new Size(swimLane.width, swimLane.height));\n swimLane.wrapper.arrange(swimLane.wrapper.desiredSize);\n node.offsetX = node.wrapper.offsetX;\n node.offsetY = node.wrapper.offsetY;\n diagram.nodePropertyChange(node, {}, { margin: { left: node.margin.left, top: node.margin.top } });\n //EJ2-68372- Text-Annotation in event node is not positioned properly while drag the swimlane\n if (diagram.bpmnModule && node.shape.type === 'Bpmn' && node.shape.annotations && node.shape.annotations.length > 0) {\n diagram.nodePropertyChange(node, {}, { margin: { left: node.margin.left, top: node.margin.top } });\n }\n grid.measure(new Size(grid.width, grid.height));\n grid.arrange(grid.desiredSize);\n swimLane.width = swimLane.wrapper.width = swimLane.wrapper.children[0].actualSize.width;\n swimLane.height = swimLane.wrapper.height = swimLane.wrapper.children[0].actualSize.height;\n }\n}\n/**\n * checkLaneChildrenOffset method \\\n *\n * @returns {void} checkLaneChildrenOffset method .\\\n * @param {NodeModel} swimLane - provide the diagram value.\n * @private\n */\nexport function checkLaneChildrenOffset(swimLane) {\n if (swimLane.shape.type === 'SwimLane') {\n var lanes = swimLane.shape.lanes;\n var lane = void 0;\n var child = void 0;\n for (var i = 0; i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n for (var j = 0; j < lane.children.length; j++) {\n child = lane.children[parseInt(j.toString(), 10)];\n child.offsetX = child.wrapper.offsetX;\n child.offsetY = child.wrapper.offsetY;\n }\n }\n }\n}\n/**\n * findLane method \\\n *\n * @returns {LaneModel} findLane method .\\\n * @param {Node} laneNode - provide the laneNode value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function findLane(laneNode, diagram) {\n var lane;\n if (laneNode.isLane) {\n var swimLane = diagram.getObject(laneNode.parentId);\n if (swimLane && swimLane.shape.type === 'SwimLane' && laneNode.isLane) {\n var laneIndex = findLaneIndex(swimLane, laneNode);\n lane = swimLane.shape.lanes[parseInt(laneIndex.toString(), 10)];\n }\n }\n return lane;\n}\n/**\n * canLaneInterchange method \\\n *\n * @returns {boolean} canLaneInterchange method .\\\n * @param {Node} laneNode - provide the laneNode value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function canLaneInterchange(laneNode, diagram) {\n if (laneNode.isLane) {\n var lane = findLane(laneNode, diagram);\n var eventHandler = 'eventHandler';\n var resize = diagram[\"\" + eventHandler].action;\n var canResize = resize.includes('Resize');\n if (canResize || lane.canMove) {\n return true;\n }\n }\n return false;\n}\n/**\n * updateSwimLaneChildPosition method \\\n *\n * @returns {void} updateSwimLaneChildPosition method .\\\n * @param {Lane[]} lanes - provide the laneNode value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateSwimLaneChildPosition(lanes, diagram) {\n var lane;\n var node;\n for (var i = 0; i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n for (var j = 0; j < lane.children.length; j++) {\n node = diagram.nameTable[lane.children[parseInt(j.toString(), 10)].id];\n node.offsetX = node.wrapper.offsetX;\n node.offsetY = node.wrapper.offsetY;\n }\n }\n}\n","import { isBlazor } from '@syncfusion/ej2-base';\nimport { Node } from '../objects/node';\nimport { Diagram } from '../diagram';\nimport { Selector } from '../objects/node';\nimport { Size } from '../primitives/size';\nimport { cloneObject } from './../utility/base-util';\nimport { getObjectType } from './../utility/diagram-util';\nimport { Rect } from '../primitives/rect';\nimport { getAdornerLayerSvg } from '../utility/dom-util';\nimport { swimLaneMeasureAndArrange, checkLaneSize, checkPhaseOffset, canLaneInterchange } from '../utility/swim-lane-util';\nimport { updatePhaseMaxWidth, updateHeaderMaxWidth, updateConnectorsProperties } from '../utility/swim-lane-util';\nimport { considerSwimLanePadding } from '../utility/swim-lane-util';\nimport { DiagramAction, DiagramConstraints, NodeConstraints } from '../enum/enum';\nimport { getDiagramElement } from '../utility/dom-util';\n/**\n * Interaction for Container\n */\n//#region canvas Container interaction\n/**\n * updateCanvasBounds method\\\n *\n * @returns { void } updateCanvasBounds method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @param {PointModel} position - provide the position value.\n * @param {boolean} isBoundsUpdate - provide the isBoundsUpdate value.\n * @private\n */\nexport function updateCanvasBounds(diagram, obj, position, isBoundsUpdate) {\n var container;\n var connectorList = [];\n var groupAction = false;\n if (checkParentAsContainer(diagram, obj, true)) {\n diagram.protectPropertyChange(true);\n container = diagram.nameTable[obj.parentId];\n var wrapper = container.wrapper;\n if (container && container.container.type === 'Canvas') {\n if ((isBoundsUpdate || (wrapper.bounds.x <= position.x && wrapper.bounds.right >= position.x &&\n (wrapper.bounds.y <= position.y && wrapper.bounds.bottom >= position.y)))) {\n var parentWrapper = void 0;\n var y = wrapper.bounds.y;\n var x = wrapper.bounds.x;\n var parent_1 = diagram.nameTable[container.parentId] || container;\n var shape = parent_1.shape;\n if (shape.type === 'SwimLane') {\n groupAction = updateLaneBoundsAfterAddChild(container, parent_1, obj, diagram, true);\n }\n else {\n var parent_2 = diagram.nameTable[container.parentId] || container;\n var shape_1 = parent_2.shape;\n parentWrapper = parent_2.wrapper;\n if (wrapper.actualSize.width < wrapper.outerBounds.width &&\n (!(wrapper.bounds.x > wrapper.outerBounds.x))) {\n if (container.rowIndex !== undefined) {\n //const columnIndex:number = parent.columns.length - 1;\n parentWrapper.updateColumnWidth(container.columnIndex, wrapper.outerBounds.width, true);\n if (shape_1.orientation === 'Horizontal' && shape_1.phaseSize) {\n updatePhaseMaxWidth(parent_2, diagram, wrapper, container.columnIndex);\n }\n updateHeaderMaxWidth(diagram, parent_2);\n diagram.drag(parent_2, x - wrapper.bounds.x, y - wrapper.bounds.y);\n }\n else {\n diagram.scale(container, (1 + ((wrapper.outerBounds.width - wrapper.actualSize.width) / wrapper.actualSize.width)), 1, ((wrapper.outerBounds.x < wrapper.bounds.x) ? { x: 1, y: 0.5 } : { x: 0, y: 0.5 }));\n }\n }\n if (wrapper.actualSize.height < wrapper.outerBounds.height &&\n (!(wrapper.bounds.y > wrapper.outerBounds.y))) {\n if (container.rowIndex !== undefined) {\n parentWrapper.updateRowHeight(container.rowIndex, wrapper.outerBounds.height, true);\n diagram.drag(parent_2, x - wrapper.bounds.x, y - wrapper.bounds.y);\n }\n else {\n diagram.scale(container, 1, (1 + ((wrapper.outerBounds.height - wrapper.actualSize.height) / wrapper.actualSize.height)), ((wrapper.outerBounds.y < wrapper.bounds.y) ? { x: 0.5, y: 1 } : { x: 0.5, y: 0 }));\n }\n }\n }\n }\n diagram.select([obj]);\n updateConnectorsProperties(connectorList, diagram);\n }\n diagram.protectPropertyChange(false);\n }\n return groupAction;\n}\n/**\n * removeChildInContainer method\\\n *\n * @returns { void } removeChildInContainer method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @param {PointModel} position - provide the position value.\n * @param {boolean} isBoundsUpdate - provide the isBoundsUpdate value.\n * @private\n */\nexport function removeChildInContainer(diagram, obj, position, isBoundsUpdate) {\n var container; //let connectorList: string[] = [];\n if (checkParentAsContainer(diagram, obj, true)) {\n var isProtectedOnChange = 'isProtectedOnChange';\n var propertyChangeValue = diagram[\"\" + isProtectedOnChange];\n diagram.protectPropertyChange(true);\n container = diagram.nameTable[obj.parentId];\n var wrapper = container.wrapper;\n if (container && container.container.type === 'Canvas') {\n if ((!isBoundsUpdate && (!(wrapper.bounds.x <= position.x && wrapper.bounds.right >= position.x &&\n (wrapper.bounds.y <= position.y && wrapper.bounds.bottom >= position.y))))) {\n if (!(obj.constraints & NodeConstraints.AllowMovingOutsideLane)) {\n var undoObj = cloneObject(obj);\n diagram.clearSelection();\n removeChildrenInLane(diagram, obj);\n obj.parentId = '';\n //EJ2-65676 - Exception throws on updating node annotation after drag and drop from swimlane to diagram canvas.\n obj.parentObj = diagram;\n obj.propName = 'nodes';\n var entry = {\n type: 'ChildCollectionChanged', category: 'Internal',\n undoObject: undoObj, redoObject: cloneObject(obj)\n };\n diagram.addHistoryEntry(entry);\n if (diagram.commandHandler.isContainer) {\n diagram.commandHandler.isContainer = false;\n diagram.endGroupAction();\n }\n moveSwinLaneChild(obj, diagram);\n }\n }\n }\n diagram.protectPropertyChange(propertyChangeValue);\n }\n}\n/**\n * findBounds method\\\n *\n * @returns { NodeModel | ConnectorModel } findBounds method .\\\n * @param {NodeModel} obj - provide the diagram value.\n * @param {number} columnIndex - provide the isVertical value.\n * @param {boolean} isHeader - provide the isVertical value.\n * @private\n */\nexport function findBounds(obj, columnIndex, isHeader) {\n var rect = new Rect();\n var rows = (obj.shape.type === 'SwimLane') ?\n obj.wrapper.children[0].rows : obj.wrapper.rows;\n for (var i = ((isHeader) ? 1 : 0); i < rows.length; i++) {\n rect.uniteRect(rows[parseInt(i.toString(), 10)].cells[parseInt(columnIndex.toString(), 10)].bounds);\n }\n return rect;\n}\n/**\n * createHelper method\\\n *\n * @returns { NodeModel | ConnectorModel } createHelper method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @private\n */\nexport function createHelper(diagram, obj) {\n var newObj;\n var cloneObject = {};\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n cloneObject[\"\" + prop] = obj[\"\" + prop];\n }\n if (getObjectType(obj) === Node) {\n newObj = new Node(diagram, 'nodes', cloneObject, true);\n newObj.id = obj.id;\n diagram.initObject(newObj);\n }\n diagram.updateDiagramObject(newObj);\n return newObj;\n}\n/**\n * renderContainerHelper method\\\n *\n * @returns { NodeModel | ConnectorModel } renderContainerHelper method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @private\n */\nexport function renderContainerHelper(diagram, obj) {\n diagram.enableServerDataBinding(false);\n var object;\n var container;\n var nodes;\n if ((!isBlazor()) || (isBlazor() && (diagram.diagramActions & DiagramAction.ToolAction))) {\n if (diagram.selectedObject.helperObject) {\n nodes = diagram.selectedObject.helperObject;\n }\n else if (diagram.selectedItems.nodes.length > 0 || diagram.selectedItems.connectors.length > 0) {\n if (obj instanceof Selector && obj.nodes.length + obj.connectors.length === 1) {\n object = (obj.nodes.length > 0) ? obj.nodes[0] : obj.connectors[0];\n container = diagram.selectedItems.wrapper.children[0];\n }\n else {\n object = obj;\n if (isBlazor()) {\n if (obj === diagram.selectedItems.nodes[0]) {\n container = diagram.selectedItems.wrapper;\n }\n else {\n container = obj.wrapper;\n }\n }\n else {\n container = diagram.selectedItems.wrapper;\n }\n }\n diagram.selectedObject.actualObject = object;\n if ((!diagram.currentSymbol) && (((object.isLane && canLaneInterchange(object, diagram) &&\n checkParentAsContainer(diagram, object))\n || ((!object.isLane) && checkParentAsContainer(diagram, object))) ||\n ((diagram.constraints & DiagramConstraints.LineRouting) && diagram.selectedItems.nodes.length > 0))) {\n var node = {\n id: 'helper',\n rotateAngle: container.rotateAngle,\n offsetX: container.offsetX, offsetY: container.offsetY,\n minWidth: container.minWidth, minHeight: container.minHeight,\n maxWidth: container.maxWidth, maxHeight: container.maxHeight,\n width: container.actualSize.width,\n height: container.actualSize.height,\n style: { strokeDashArray: '2 2', fill: 'transparent', strokeColor: '#7D7D7D', strokeWidth: 2 }\n };\n nodes = createHelper(diagram, node);\n diagram.selectedObject.helperObject = nodes;\n }\n }\n }\n diagram.enableServerDataBinding(true);\n return nodes;\n}\n/**\n * checkParentAsContainer method\\\n *\n * @returns { void } checkParentAsContainer method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @param {boolean} isChild - provide the isChild value.\n * @private\n */\nexport function checkParentAsContainer(diagram, obj, isChild) {\n var parentNode = (isChild) ? diagram.nameTable[obj.parentId] :\n (diagram.nameTable[obj.parentId] || obj);\n if (parentNode && parentNode.container) {\n return true;\n }\n return false;\n}\n/**\n * checkChildNodeInContainer method\\\n *\n * @returns { void } checkChildNodeInContainer method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} obj - provide the isVertical value.\n * @private\n */\nexport function checkChildNodeInContainer(diagram, obj) {\n var parentNode = diagram.nameTable[obj.parentId];\n if (parentNode.container.type === 'Canvas') {\n obj.margin.left = (obj.offsetX - parentNode.wrapper.bounds.x - (obj.width / 2));\n obj.margin.top = (obj.offsetY - parentNode.wrapper.bounds.y - (obj.height / 2));\n }\n diagram.nodePropertyChange(obj, {}, {\n width: obj.width, height: obj.height,\n offsetX: obj.offsetX, offsetY: obj.offsetY,\n margin: {\n left: obj.margin.left,\n right: obj.margin.right, top: obj.margin.top,\n bottom: obj.margin.bottom\n }, rotateAngle: obj.rotateAngle\n });\n if (!parentNode.isLane) {\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n }\n}\nfunction removeChildrenInLane(diagram, node) {\n if (node.parentId && node.parentId !== '') {\n var prevParentNode = diagram.nameTable[node.parentId];\n if (prevParentNode.isLane && prevParentNode.parentId) {\n var swimlane = diagram.nameTable[prevParentNode.parentId];\n var canvasId = (prevParentNode.id.slice(swimlane.id.length));\n var prevParentId = canvasId.substring(0, canvasId.length - 1);\n var lanes = swimlane.shape.lanes;\n var lane = void 0;\n for (var i = 0; i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n if (prevParentId === lane.id) {\n for (var j = 0; j < lane.children.length; j++) {\n if (lane.children[parseInt(j.toString(), 10)].id === node.id) {\n lane.children.splice(j, 1);\n j--;\n }\n }\n }\n }\n }\n diagram.deleteChild(node);\n }\n}\n/**\n * addChildToContainer method\\\n *\n * @returns { void } addChildToContainer method .\\\n * @param {DiagramElement} diagram - provide the element value.\n * @param {boolean} parent - provide the isVertical value.\n * @param {PointModel} node - provide the node value.\n * @param {Diagram} isUndo - provide the isUndo value.\n * @param {boolean} historyAction - provide the historyAction value.\n * @private\n */\nexport function addChildToContainer(diagram, parent, node, isUndo, historyAction) {\n if (!diagram.currentSymbol) {\n diagram.protectPropertyChange(true);\n var swimlane = diagram.nameTable[parent.parentId];\n node = diagram.getObject(node.id) || node;\n var child = (diagram.nodes.indexOf(node) !== -1) ? node.id : node;\n if (parent.container.type === 'Canvas' && !historyAction) {\n var left = (node.wrapper.offsetX - node.wrapper.actualSize.width / 2) -\n (parent.wrapper.offsetX - parent.wrapper.actualSize.width / 2);\n var top_1 = (node.wrapper.offsetY - node.wrapper.actualSize.height / 2) -\n (parent.wrapper.offsetY - parent.wrapper.actualSize.height / 2);\n node.margin.left = left;\n node.margin.top = top_1;\n }\n else if (swimlane) {\n var swimLaneBounds = swimlane.wrapper.bounds;\n var parentBounds = parent.wrapper.bounds;\n if (swimlane.shape.orientation === 'Horizontal') {\n node.margin.left -= parentBounds.x - swimLaneBounds.x;\n }\n else {\n var laneHeaderId = parent.parentId + swimlane.shape.lanes[0].id + '_0_header';\n node.margin.top -= parentBounds.y - swimLaneBounds.y - diagram.nameTable[\"\" + laneHeaderId].wrapper.bounds.height;\n }\n }\n var container = diagram.nameTable[parent.id];\n if (!container.children) {\n container.children = [];\n }\n if (container.children.indexOf(node.id) === -1) {\n removeChildrenInLane(diagram, node);\n if (diagram.getObject(node.id)) {\n diagram.removeElements(node);\n }\n var undoObj = cloneObject(node);\n diagram.addChild(container, child);\n node = diagram.getObject(node.id);\n if (container.isLane && container.parentId) {\n swimlane = diagram.nameTable[container.parentId];\n // EJ2-63939 - Check whether the lane child is BPMN text node or not\n if (node.shape.type === 'Bpmn' && node.shape.annotations && node.shape.annotations.length > 0) {\n swimlane.isTextNode = true;\n }\n var lanes = swimlane.shape.lanes;\n var canvasId = (container.id.slice(swimlane.id.length));\n var currentParentId = canvasId.substring(0, canvasId.length - 1);\n for (var i = 0; i < lanes.length; i++) {\n if (container.isLane && currentParentId === lanes[parseInt(i.toString(), 10)].id) {\n // eslint-disable-next-line\n if (!(node.parentObj instanceof Diagram)) {\n // eslint-disable-next-line\n node.parentObj = lanes[parseInt(i.toString(), 10)];\n }\n if (!diagram.nameTable.hasOwnProperty(node.id)) {\n lanes[parseInt(i.toString(), 10)].children.push(node);\n }\n }\n }\n }\n diagram.updateDiagramObject(node);\n moveSwinLaneChild(node, diagram);\n if (!container.parentId) {\n diagram.updateDiagramObject(container);\n }\n else if (!isUndo) {\n updateLaneBoundsAfterAddChild(container, swimlane, node, diagram);\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'ChildCollectionChanged', category: 'Internal',\n undoObject: undoObj, redoObject: cloneObject(node), historyAction: historyAction ? 'AddNodeToLane' : undefined\n };\n diagram.addHistoryEntry(entry);\n }\n }\n diagram.protectPropertyChange(false);\n }\n}\nfunction moveSwinLaneChild(node, diagram) {\n var sourceNode = getDiagramElement(node.id + '_groupElement', diagram.element.id);\n var targetId = (node.parentId) ? node.parentId + '_groupElement' : diagram.element.id + '_diagramLayer';\n var targetNode = getDiagramElement(targetId, diagram.element.id);\n if (sourceNode && targetNode) {\n targetNode.appendChild(sourceNode);\n }\n}\nexport function updateLaneBoundsAfterAddChild(container, swimLane, node, diagram, isBoundsUpdate) {\n var undoObject = cloneObject(container);\n var isUpdateRow;\n var isGroupAction = false;\n var padding = swimLane.shape.padding;\n var containerBounds = container.wrapper.bounds;\n var containerOuterBounds = container.wrapper.outerBounds;\n var nodeBounds = node.wrapper.bounds;\n if (swimLane && swimLane.shape.type === 'SwimLane' &&\n (containerBounds.right < nodeBounds.right + padding ||\n containerBounds.bottom < nodeBounds.bottom + padding)) {\n var grid = swimLane.wrapper.children[0];\n var x = grid.bounds.x;\n var y = grid.bounds.y;\n var size = void 0;\n if (containerBounds.right < nodeBounds.right + padding &&\n containerOuterBounds.x <= containerBounds.x) {\n size = nodeBounds.right - containerBounds.right;\n isUpdateRow = false;\n grid.updateColumnWidth(container.columnIndex, containerBounds.width + size, true, padding);\n }\n if (containerBounds.bottom < nodeBounds.bottom + padding &&\n containerOuterBounds.y <= containerBounds.y) {\n size = nodeBounds.bottom - containerBounds.bottom;\n isUpdateRow = true;\n grid.updateRowHeight(container.rowIndex, containerBounds.height + size, true, padding);\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n if (isBoundsUpdate) {\n diagram.startGroupAction();\n isGroupAction = true;\n }\n if (isUpdateRow !== undefined) {\n var entry = {\n category: 'Internal',\n type: (isUpdateRow) ? 'RowHeightChanged' : 'ColumnWidthChanged',\n undoObject: undoObject, redoObject: cloneObject(container)\n };\n diagram.addHistoryEntry(entry);\n }\n }\n swimLane.width = swimLane.wrapper.width = grid.width;\n swimLane.height = swimLane.wrapper.height = grid.height;\n swimLaneMeasureAndArrange(swimLane);\n if (swimLane.shape.orientation === 'Horizontal') {\n updatePhaseMaxWidth(swimLane, diagram, container.wrapper, container.columnIndex);\n }\n updateHeaderMaxWidth(diagram, swimLane);\n diagram.drag(swimLane, x - grid.bounds.x, y - grid.bounds.y);\n checkPhaseOffset(swimLane, diagram);\n checkLaneSize(swimLane);\n }\n considerSwimLanePadding(diagram, node, padding);\n diagram.updateDiagramElementQuad();\n return isGroupAction;\n}\n//#endregion\n//# reginon stack panel interaction\n/**\n * renderStackHighlighter method\\\n *\n * @returns { void } renderStackHighlighter method .\\\n * @param {DiagramElement} element - provide the element value.\n * @param {boolean} isVertical - provide the isVertical value.\n * @param {PointModel} position - provide the position value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {boolean} isUml - provide the isUml value.\n * @param {boolean} isSwimlane - provide the isSwimlane value.\n * @private\n */\nexport function renderStackHighlighter(element, isVertical, position, diagram, isUml, isSwimlane) {\n var adornerSvg = getAdornerLayerSvg(diagram.element.id);\n diagram.diagramRenderer.renderStackHighlighter(element, adornerSvg, diagram.scroller.transform, isVertical, position, isUml, isSwimlane);\n}\n/**\n * moveChildInStack method\\\n *\n * @returns { void } moveChildInStack method .\\\n * @param {Node} sourceNode - provide the sourceNode value.\n * @param {Node} target - provide the target value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {Actions} action - provide the action value.\n * @private\n */\nexport function moveChildInStack(sourceNode, target, diagram, action) {\n var obj = sourceNode;\n var parent = diagram.nameTable[obj.parentId];\n var sourceParent = diagram.nameTable[obj.parentId];\n if (target && sourceParent && sourceParent.container && sourceParent.container.type === 'Stack' &&\n target.container && target.container.type === 'Stack' && (sourceParent.id !== target.parentId)) {\n var value = sourceParent.wrapper.children.indexOf(obj.wrapper);\n if (value > -1) {\n diagram.nameTable[obj.id].parentId = target.id;\n sourceParent.wrapper.children.splice(value, 1);\n }\n }\n if (target && target.parentId && obj.parentId && action === 'Drag' &&\n sourceParent.container && sourceParent.container.type === 'Stack') {\n var targetIndex = parent.wrapper.children.indexOf(target.wrapper);\n var sourceIndex = parent.wrapper.children.indexOf(obj.wrapper);\n var undoElement = {\n targetIndex: targetIndex, target: target,\n sourceIndex: sourceIndex, source: sourceNode\n };\n parent.wrapper.children.splice(sourceIndex, 1);\n parent.wrapper.children.splice(targetIndex, 0, obj.wrapper);\n var redoElement = {\n targetIndex: sourceIndex, target: target,\n sourceIndex: targetIndex, source: sourceNode\n };\n var entry = {\n type: 'StackChildPositionChanged', redoObject: redoElement,\n undoObject: undoElement, category: 'Internal'\n };\n diagram.commandHandler.addHistoryEntry(entry);\n }\n}\n//#end region\n//# region Swimlane rendering\n//#end region\n","import { Connector } from '../objects/connector';\nimport { Node } from '../objects/node';\nimport { Rect } from '../primitives/rect';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { getUserHandlePosition, checkPortRestriction, canShowControlPoints } from '../utility/diagram-util';\nimport { canMove, canDragSourceEnd, canDragTargetEnd, canContinuousDraw, canDragSegmentThumb, canSingleSelect, canMultiSelect } from '../utility/constraints-util';\nimport { canZoomPan, defaultTool, canDrawOnce, canDrag, canDraw, canSelect, canRotate } from '../utility/constraints-util';\nimport { canShowCorner, canResizeCorner } from '../utility/diagram-util';\nimport { Point } from '../primitives/point';\nimport { TextElement } from '../core/elements/text-element';\nimport { PortConstraints, DiagramTools, PortVisibility, ThumbsConstraints } from '../enum/enum';\nimport { Selector } from '../objects/node';\nimport { PointPort } from './../objects/port';\nimport { ShapeAnnotation, PathAnnotation } from '../objects/annotation';\nimport { checkParentAsContainer } from '../interaction/container-interaction';\n/**\n * Finds the action to be taken for the object under mouse\n *\n */\n/* tslint:disable */\n/**\n * findToolToActivate method\\\n *\n * @returns {Actions} findToolToActivate method .\\\n * @param {Object} obj - provide the options value.\n * @param {DiagramElement} wrapper - provide the options value.\n * @param {PointModel} position - provide the options value.\n * @param {Diagram} diagram - provide the options value.\n * @param {ITouches[] | TouchList} touchStart - provide the options value.\n * @param {ITouches[] | TouchList} touchMove - provide the options value.\n * @param {NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel} target - provide the options value.\n * @private\n */\nexport function findToolToActivate(obj, wrapper, position, diagram, touchStart, touchMove, target) {\n //let conn: Connector = diagram.selectedItems.connectors[0] as Connector;\n if (touchMove && touchMove.length > 1 && touchStart && touchStart.length > 1) {\n return 'PinchZoom';\n }\n if (diagram.currentSymbol) {\n return 'Drag';\n }\n var eventHandler = 'eventHandler';\n if (diagram[\"\" + eventHandler].action === 'PortDraw') {\n diagram.tool &= ~DiagramTools.DrawOnce;\n }\n //Drawing Tools\n if ((canDrawOnce(diagram) || canContinuousDraw(diagram)) && diagram.drawingObject) {\n return 'Draw';\n }\n if (hasSelection(diagram)) {\n var handle = diagram.selectedItems;\n if (handle.wrapper && canShowCorner(handle.constraints, 'UserHandle')) {\n for (var _i = 0, _a = handle.userHandles; _i < _a.length; _i++) {\n var obj_1 = _a[_i];\n if (obj_1.visible) {\n var paddedBounds = getUserHandlePosition(handle, obj_1, diagram.scroller.transform);\n if (contains(position, paddedBounds, obj_1.size / (2 * diagram.scroller.transform.scale))) {\n return obj_1.name;\n }\n }\n }\n }\n }\n if (hasSelection(diagram)) {\n var element = (diagram.selectedItems.annotation) ?\n diagram.selectedItems.wrapper.children[0] : diagram.selectedItems.wrapper;\n var selectorBnds = element.bounds;\n var handle = diagram.selectedItems;\n var paddedBounds = new Rect(selectorBnds.x, selectorBnds.y, selectorBnds.width, selectorBnds.height);\n if (hasSingleConnection(diagram) && !diagram.selectedItems.annotation) {\n var conn = diagram.selectedItems.connectors[0];\n var sourcePaddingValue = (diagram.selectedItems.handleSize / 2) / diagram.scrollSettings.currentZoom;\n var targetPaddingValue = (diagram.selectedItems.handleSize / 2) / diagram.scrollSettings.currentZoom;\n if (canShowCorner(handle.constraints, 'ResizeAll')) {\n if ((canShowCorner(handle.constraints, 'ConnectorSourceThumb'))\n && canDragSourceEnd(conn) && contains(position, conn.sourcePoint, sourcePaddingValue)) {\n return 'ConnectorSourceEnd';\n }\n if ((canShowCorner(handle.constraints, 'ConnectorTargetThumb'))\n && canDragTargetEnd(conn) && contains(position, conn.targetPoint, targetPaddingValue)) {\n return 'ConnectorTargetEnd';\n }\n var action = checkForConnectorSegment(conn, handle, position, diagram);\n if (action !== 'OrthoThumb') {\n if ((canShowCorner(handle.constraints, 'ConnectorSourceThumb'))\n && canDragSourceEnd(conn)) {\n if (action) {\n return action;\n }\n }\n if ((canShowCorner(handle.constraints, 'ConnectorTargetThumb'))\n && canDragTargetEnd(conn)) {\n if (action) {\n return action;\n }\n }\n }\n else {\n return action;\n }\n }\n }\n else {\n var ten = (diagram.selectedItems.handleSize / 2) / diagram.scroller.currentZoom;\n var tenRotate = 10 / diagram.scroller.currentZoom;\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n //check for resizing tool\n var x = element.offsetX - element.pivot.x * element.actualSize.width;\n var y = element.offsetY - element.pivot.y * element.actualSize.height;\n var rotateThumb = {\n x: x + ((element.pivot.x === 0.5 ? element.pivot.x * 2 : element.pivot.x) * element.actualSize.width / 2),\n y: y - 30 / diagram.scroller.currentZoom\n };\n rotateThumb = transformPointByMatrix(matrix, rotateThumb);\n var labelSelection = diagram.selectedItems.annotation ? true : false;\n var labelRotate = (labelSelection && (canRotate(diagram.selectedItems.annotation))) ? true : false;\n if (canShowCorner(handle.constraints, 'Rotate') && contains(position, rotateThumb, tenRotate) &&\n (diagram.selectedItems.thumbsConstraints & ThumbsConstraints.Rotate)) {\n if (labelSelection && labelRotate) {\n return 'LabelRotate';\n }\n else if (!labelSelection) {\n return 'Rotate';\n }\n }\n paddedBounds.Inflate(ten);\n if (paddedBounds.containsPoint(position)) {\n var action = checkResizeHandles(diagram, element, position, matrix, x, y);\n if (action) {\n return action;\n }\n }\n }\n }\n //Panning\n if (canZoomPan(diagram) && !obj) {\n return 'Pan';\n }\n //826364 - Drawing Tool is not activated on hovering the ports while both ZoomPan and single select constraints enabled\n if ((target instanceof PointPort) && (!canZoomPan(diagram) || (canSingleSelect(diagram) || canMultiSelect(diagram)))) {\n var action = findPortToolToActivate(diagram, target);\n if (action !== 'None') {\n return action;\n }\n }\n if ((target instanceof ShapeAnnotation || target instanceof PathAnnotation) && (!canZoomPan(diagram) && (canSelect(target)))) {\n if (isSelected(diagram, target, undefined, wrapper) && canMove(target)) {\n return 'LabelDrag';\n }\n return 'LabelSelect';\n }\n if (obj !== null) {\n if (obj instanceof Node || obj instanceof Connector) {\n if (wrapper && wrapper.id) {\n var id = wrapper.id.split(obj.id)[1];\n if (id && id.match('^_icon')) {\n return 'LayoutAnimation';\n }\n }\n if (wrapper && wrapper.id) {\n var userid = void 0;\n for (var i = 0; i < obj.fixedUserHandles.length; i++) {\n userid = obj.fixedUserHandles[parseInt(i.toString(), 10)].id;\n if (wrapper.id && (wrapper.id.indexOf(userid) > -1)) {\n return 'FixedUserHandle';\n }\n }\n }\n if (wrapper instanceof TextElement && wrapper.hyperlink.link) {\n return 'Hyperlink';\n }\n if (canMove(obj) && isSelected(diagram, obj, false) && diagram.selectedItems.annotation === undefined) {\n if ((obj instanceof Connector && !(contains(position, obj.sourcePoint, obj.hitPadding) ||\n contains(position, obj.targetPoint, obj.hitPadding))) ||\n !(obj instanceof Connector)) {\n return 'Drag';\n }\n }\n else if (obj && canZoomPan(diagram) && !defaultTool(diagram)) {\n return 'Pan';\n }\n else if (diagram.selectedItems.nodes.length && diagram.selectedItems.nodes[0].isLane &&\n diagram.selectedItems.wrapper && diagram.selectedItems.wrapper.bounds.containsPoint(position)) {\n return 'Drag';\n }\n else {\n return 'Select';\n }\n }\n else {\n return 'Select';\n }\n }\n return 'Select';\n}\n/* tslint:enable */\nfunction checkResizeHandles(diagram, element, position, matrix, x, y) {\n var action;\n if ((diagram.selectedItems.nodes.length === 1 && diagram.selectedItems.connectors.length === 0)\n && diagram.selectedItems.nodes[0].container) {\n action = checkResizeHandleForContainer(diagram, element, position, x, y);\n }\n if (!action && (!diagram.selectedItems.nodes[0] || (!diagram.selectedItems.nodes[0].isPhase &&\n !diagram.selectedItems.nodes[0].isLane && diagram.selectedItems.nodes[0].shape.type !== 'SwimLane'))) {\n action = checkForResizeHandles(diagram, element, position, matrix, x, y);\n }\n if (action) {\n return action;\n }\n return null;\n}\n/**\n * checkForConnectorSegment method\\\n *\n * @returns {Actions} checkForConnectorSegment method .\\\n * @param {Connector} conn - provide the options value.\n * @param {SelectorModel} handle - provide the options value.\n * @param {PointModel} position - provide the options value.\n * @param {Diagram} diagram - provide the options value.\n * @private\n */\nfunction checkForConnectorSegment(conn, handle, position, diagram) {\n //(EJ2-70650)-Unable to drag bezier control thumb, when we increase handleSize value \n //Added below code for drag the bezier control thumb while increasing handle size (Changing cursor from pointer to drag cursor)\n var targetPaddingValue = (handle.handleSize / 2) / diagram.scrollSettings.currentZoom;\n var sourcePaddingValue = (handle.handleSize / 2) / diagram.scrollSettings.currentZoom;\n if (conn.type === 'Bezier' && diagram.connectorEditingToolModule) {\n for (var i = 0; i < conn.segments.length; i++) {\n var segment = (conn.segments)[parseInt(i.toString(), 10)];\n // EJ2-67447 - Bezier segment control points are clickable after hiding it with controlPointsVisibility property.\n // The below condition is used to check the control points visibility of the connector.\n if (contains(position, !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1, sourcePaddingValue) && ((i === 0 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Source')) || (i !== 0 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Intermediate')))) {\n return 'BezierSourceThumb';\n }\n if (contains(position, !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2, targetPaddingValue) && ((i === conn.segments.length - 1 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Target')) || (i !== conn.segments.length - 1 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Intermediate')))) {\n return 'BezierTargetThumb';\n }\n }\n }\n if (diagram.connectorEditingToolModule && canDragSegmentThumb(conn)) {\n if (conn.type === 'Straight' || conn.type === 'Bezier') {\n for (var i = 0; i < conn.segments.length; i++) {\n //let segment: StraightSegmentModel | BezierSegmentModel;\n var segment = (conn.segments)[parseInt(i.toString(), 10)];\n if (contains(position, segment.point, 10)) {\n return 'SegmentEnd';\n }\n }\n }\n else {\n for (var i = 0; i < conn.segments.length; i++) {\n var segPoint = { x: 0, y: 0 };\n var segment = (conn.segments)[parseInt(i.toString(), 10)];\n if (segment.allowDrag) {\n for (var j = 0; j < segment.points.length - 1; j++) {\n var length_1 = Point.distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]);\n if (length_1 >= 50) {\n segPoint.x = ((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2);\n segPoint.y = ((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2);\n if (contains(position, segPoint, 30)) {\n return 'OrthoThumb';\n }\n }\n }\n }\n }\n }\n }\n return null;\n}\n/**\n * findPortToolToActivate method\\\n *\n * @returns {boolean} findPortToolToActivate method .\\\n * @param {Diagram} diagram - provide the options value.\n * @param {NodeModel | PointPortModel} target - provide the options value.\n * @param {ITouches[] | TouchList} touchStart - provide the options value.\n * @param {ITouches[] | TouchList} touchMove - provide the options value.\n * @private\n */\nexport function findPortToolToActivate(diagram, target, \n// eslint-disable-next-line\ntouchStart, touchMove) {\n if (canDrag(target, diagram) && (checkPortRestriction(target, PortVisibility.Hover)\n || (checkPortRestriction(target, PortVisibility.Visible)))) {\n if ((target.constraints & PortConstraints.Drag)) {\n return 'PortDrag';\n }\n }\n else if (canDraw(target, diagram) && (checkPortRestriction(target, PortVisibility.Hover)\n || (checkPortRestriction(target, PortVisibility.Visible)))) {\n if (target.constraints & PortConstraints.Draw) {\n diagram.drawingObject = {};\n var connector = { type: 'Orthogonal', sourcePortID: target.id };\n diagram.drawingObject = connector;\n diagram.tool |= DiagramTools.DrawOnce;\n diagram.currentDrawingObject = connector;\n return 'PortDraw';\n }\n }\n return 'None';\n}\n/**\n * Resize handle for container and also object.\n * @param {Diagram} diagram - provide the options value.\n * @param {DiagramElement} element - provide the options value.\n * @param {PointModel} position - provide the options value.\n * @param {number} x - provide the options value.\n * @param {number} y - provide the options value.\n * @returns {Actions} Resize handle for container and also object.\\\n *\n * @private\n */\nfunction checkResizeHandleForContainer(diagram, element, position, x, y) {\n var ten = 10 / diagram.scroller.currentZoom;\n var forty = 40 / diagram.scroller.currentZoom;\n var selectedItems = diagram.selectedItems;\n var width = element.actualSize.width;\n var height = element.actualSize.height;\n var left = new Rect(x, y + 20, element.style.strokeWidth, height - 40);\n var right = new Rect(x + width, y + 20, element.style.strokeWidth, height - 40);\n var top = new Rect(x + 20, y, width - 40, element.style.strokeWidth);\n var bottom = new Rect(x + 20, y + height, width - 40, element.style.strokeWidth);\n var container = checkParentAsContainer(diagram, diagram.selectedItems.nodes[0], true) ?\n diagram.nameTable[diagram.selectedItems.nodes[0].parentId] : diagram.selectedItems.nodes[0];\n if (width >= forty && height >= forty) {\n if (canResizeCorner(selectedItems.constraints, 'ResizeEast', selectedItems.thumbsConstraints, selectedItems) &&\n right.containsPoint(position, ten)) {\n return 'ResizeEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouth', selectedItems.thumbsConstraints, selectedItems) &&\n bottom.containsPoint(position, ten)) {\n return 'ResizeSouth';\n }\n if (container.container.type !== 'Grid') {\n if (canResizeCorner(selectedItems.constraints, 'ResizeWest', selectedItems.thumbsConstraints, selectedItems) &&\n left.containsPoint(position, ten)) {\n return 'ResizeWest';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorth', selectedItems.thumbsConstraints, selectedItems) &&\n top.containsPoint(position, ten)) {\n return 'ResizeNorth';\n }\n }\n }\n return null;\n}\nfunction checkForResizeHandles(diagram, element, position, matrix, x, y) {\n var forty = 40 / diagram.scroller.currentZoom;\n var ten = (diagram.selectedItems.handleSize / 2) / diagram.scroller.currentZoom;\n var selectedItems = diagram.selectedItems;\n var labelSelection = (selectedItems.annotation) ? true : false;\n if (element.actualSize.width >= forty && element.actualSize.height >= forty) {\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouthEast', selectedItems.thumbsConstraints, selectedItems) && contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height }), ten)) {\n return (labelSelection) ? 'LabelResizeSouthEast' : 'ResizeSouthEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouthWest', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height }), ten)) {\n return (labelSelection) ? 'LabelResizeSouthWest' : 'ResizeSouthWest';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorthEast', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y }), ten)) {\n return (labelSelection) ? 'LabelResizeNorthEast' : 'ResizeNorthEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorthWest', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x, y: y }), ten)) {\n return (labelSelection) ? 'LabelResizeNorthWest' : 'ResizeNorthWest';\n }\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeEast', selectedItems.thumbsConstraints, selectedItems) && contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height / 2 }), ten)) {\n return (labelSelection) ? 'LabelResizeEast' : 'ResizeEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeWest', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height / 2 }), ten)) {\n return (labelSelection) ? 'LabelResizeWest' : 'ResizeWest';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouth', selectedItems.thumbsConstraints, selectedItems) && contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y + element.actualSize.height }), ten)) {\n return (labelSelection) ? 'LabelResizeSouth' : 'ResizeSouth';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorth', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y }), ten)) {\n return (labelSelection) ? 'LabelResizeNorth' : 'ResizeNorth';\n }\n return null;\n}\n/**\n * contains method\\\n *\n * @returns {boolean} contains method .\\\n * @param {PointModel} mousePosition - provide the options value.\n * @param {PointModel} corner - provide the corner value.\n * @param {number} padding - provide the padding value.\n * @private\n */\nexport function contains(mousePosition, corner, padding) {\n if (mousePosition.x >= corner.x - padding && mousePosition.x <= corner.x + padding) {\n if (mousePosition.y >= corner.y - padding && mousePosition.y <= corner.y + padding) {\n return true;\n }\n }\n return false;\n}\n/**\n * hasSelection method\\\n *\n * @returns {boolean} hasSelection method .\\\n * @param {Diagram} diagram - provide the options value.\n * @private\n */\nexport function hasSelection(diagram) {\n if (diagram.selectedItems.nodes.length > 0 || diagram.selectedItems.connectors.length > 0) {\n return true;\n }\n return false;\n}\n/**\n * hasSingleConnection method\\\n *\n * @returns {boolean} hasSingleConnection method .\\\n * @param {Diagram} diagram - provide the options value.\n * @private\n */\nexport function hasSingleConnection(diagram) {\n if (diagram.selectedItems.connectors.length === 1 && !diagram.selectedItems.nodes.length) {\n return true;\n }\n return false;\n}\n/**\n * isSelected method\\\n *\n * @returns {boolean} isSelected method .\\\n * @param {Diagram} diagram - provide the options value.\n * @param {Object} element - provide the options value.\n * @param {boolean} firstLevel - provide the options value.\n * @param {DiagramElement} wrapper - provide the options value.\n * @private\n */\nexport function isSelected(diagram, element, firstLevel, wrapper) {\n if (firstLevel === void 0) { firstLevel = true; }\n if (element instanceof Selector) {\n return true;\n }\n if (element instanceof Node) {\n while (element) {\n if (diagram.selectedItems.nodes.indexOf(element) !== -1 && diagram.selectedItems.annotation === undefined) {\n return true;\n }\n if (!firstLevel) {\n element = diagram.nameTable[element.parentId];\n }\n else {\n break;\n }\n }\n }\n else if (element instanceof Connector) {\n if (diagram.selectedItems.connectors.indexOf(element) !== -1 && diagram.selectedItems.annotation === undefined) {\n return true;\n }\n }\n else if (element instanceof ShapeAnnotation || element instanceof PathAnnotation) {\n if (diagram.selectedItems.annotation && diagram.selectedItems.wrapper.children[0].id === wrapper.id) {\n return true;\n }\n }\n return false;\n}\n/**\n * getCursor method\\\n *\n * @returns {boolean} getCursor method .\\\n * @param {Actions} cursor - provide the options value.\n * @param {number} angle - provide the options value.\n * @private\n */\nexport function getCursor(cursor, angle) {\n //to avoid angles less than 0 & angles greater than 360\n angle += 360;\n angle %= 360;\n if (cursor.indexOf('Resize') === -1) {\n return cursors[\"\" + cursor];\n }\n else {\n var dir = cursors[\"\" + cursor];\n if ((angle >= 0 && angle < 25) || (angle >= 160 && angle <= 205) || (angle >= 340 && angle <= 360)) {\n return dir;\n }\n else if ((angle >= 25 && angle <= 70) || (angle >= 205 && angle <= 250)) {\n if (dir === 'n-resize' || dir === 's-resize') {\n return 'ne-resize';\n }\n else if (dir === 'nw-resize' || dir === 'se-resize') {\n return 'n-resize';\n }\n else if (dir === 'e-resize' || dir === 'w-resize') {\n return 'nw-resize';\n }\n else {\n return 'e-resize';\n }\n }\n else if ((angle >= 70 && angle <= 115) || (angle >= 250 && angle <= 295)) {\n if (dir === 'n-resize' || dir === 's-resize') {\n return 'e-resize';\n }\n else if (dir === 'nw-resize' || dir === 'se-resize') {\n return 'ne-resize';\n }\n else if (dir === 'e-resize' || dir === 'w-resize') {\n return 'n-resize';\n }\n else {\n return 'nw-resize';\n }\n }\n else if ((angle >= 115 && angle <= 155) || (angle >= 295 && angle <= 340)) {\n if (dir === 'n-resize' || dir === 's-resize') {\n return 'nw-resize';\n }\n else if (dir === 'nw-resize' || dir === 'se-resize') {\n return 'e-resize';\n }\n else if (dir === 'e-resize' || dir === 'w-resize') {\n return 'ne-resize';\n }\n }\n else {\n return 'n-resize';\n }\n }\n return cursors[\"\" + cursor];\n}\nvar cursors = {\n 'None': 'default',\n 'Rotate': 'crosshair',\n 'Select': 'default',\n 'Drag': 'move',\n 'ResizeWest': 'w-resize',\n 'ResizeEast': 'e-resize',\n 'ResizeSouth': 's-resize',\n 'ResizeNorth': 'n-resize',\n 'Draw': 'crosshair',\n 'PortDraw': 'crosshair',\n 'ResizeNorthEast': 'ne-resize',\n 'ResizeNorthWest': 'nw-resize',\n 'ResizeSouthEast': 'se-resize',\n 'ResizeSouthWest': 'sw-resize',\n 'ConnectorSourceEnd': 'move',\n 'ConnectorTargetEnd': 'move',\n 'BezierSourceThumb': 'move',\n 'BezierTargetThumb': 'move',\n 'OrthoThumb': 'move',\n 'SegmentEnd': 'move',\n 'Pan': 'grab',\n 'Hyperlink': 'pointer',\n 'PortDrag': 'pointer',\n 'LabelSelect': 'pointer',\n 'LabelDrag': 'move',\n 'LabelRotate': 'crosshair',\n 'LabelResizeWest': 'w-resize',\n 'LabelResizeEast': 'e-resize',\n 'LabelResizeSouth': 's-resize',\n 'LabelResizeNorth': 'n-resize',\n 'LabelResizeNorthEast': 'ne-resize',\n 'LabelResizeNorthWest': 'nw-resize',\n 'LabelResizeSouthEast': 'se-resize',\n 'LabelResizeSouthWest': 'sw-resize'\n};\n","import { TextElement } from '../core/elements/text-element';\nimport { Node } from '../objects/node';\nimport { getIndex, cloneObject } from './base-util';\nimport { isBlazor } from '@syncfusion/ej2-base';\n/**\n * Defines the behavior of commands\n */\n/* eslint-disable */\nvar DeepDiffMapper = /** @class */ (function () {\n function DeepDiffMapper() {\n this.valueCreated = 'created';\n this.valueUpdated = \"updated\";\n this.valueDeleted = \"deleted\";\n this.valueUnchanged = \"unchanged\";\n /** @private */\n this.newNodeObject = [];\n /** @private */\n this.newConnectorObject = [];\n /** @private */\n this.diagramObject = {};\n /* eslint-enable */\n }\n /** @private */\n DeepDiffMapper.prototype.updateObjectCollection = function (layers, diagram) {\n for (var i = 0; i < layers.length; i++) {\n if (layers[i]['objects']) {\n layers[i]['objects'] = (diagram.layers[i].objects);\n }\n else {\n layers[i]['objects'] = [];\n layers[i]['objects'] = diagram.layers[i].objects;\n }\n }\n };\n /** @private */\n DeepDiffMapper.prototype.getOldObject = function (id, isNode, diagram) {\n var oldObject = isNode ? diagram.oldNodeObjects : diagram.oldConnectorObjects;\n for (var i = 0; i < oldObject.length; i++) {\n if (oldObject[i].id === id) {\n return oldObject[i];\n }\n }\n return undefined;\n };\n /** @private */\n DeepDiffMapper.prototype.changeSegments = function (diff, newObject) {\n for (var _i = 0, _a = Object.keys(diff); _i < _a.length; _i++) {\n var prop = _a[_i];\n if (prop === 'segments') {\n var seg = this.removeNullValues(newObject[prop]);\n diff[prop] = seg;\n }\n }\n return diff;\n };\n DeepDiffMapper.prototype.removeNullValues = function (segments) {\n var newSegments = [];\n var seg = {};\n for (var i = 0; i < segments.length; i++) {\n seg = this.removeNullObjectValues(segments[i]);\n newSegments.push(seg);\n }\n return newSegments;\n };\n ;\n /** @private */\n DeepDiffMapper.prototype.removeNullObjectValues = function (segment) {\n var newSegObject = {};\n for (var _i = 0, _a = Object.keys(segment); _i < _a.length; _i++) {\n var prop = _a[_i];\n if (segment[prop] !== undefined) {\n newSegObject[prop] = (segment[prop] instanceof Object) ? this.removeNullObjectValues(segment[prop]) : segment[prop];\n }\n }\n return newSegObject;\n };\n ;\n /** @private */\n DeepDiffMapper.prototype.getDifferenceValues = function (selectedObject, args, labelDrag, diagram) {\n var diffValue;\n var diff;\n var result;\n var isNode = selectedObject instanceof Node;\n var oldObject;\n if (selectedObject) {\n oldObject = isNode ? this.getOldObject(selectedObject.id, true, diagram) : this.getOldObject(selectedObject.id, false, diagram);\n if (oldObject) {\n var newObject = cloneObject(selectedObject);\n result = this.map(newObject, oldObject);\n diffValue = this.frameObject({}, result);\n diff = this.removeEmptyValues(diffValue);\n diff = this.changeSegments(diff, newObject);\n if (diff.children) {\n diff.children = cloneObject(selectedObject).children;\n }\n if (diff.ports && diff.ports.length) {\n for (var i = 0; i < diff.ports.length; i++) {\n if (newObject.ports[i].outEdges) {\n diff.ports[i].outEdges = newObject.ports[i].outEdges;\n }\n if (newObject.ports[i].inEdges) {\n diff.ports[i].inEdges = newObject.ports[i].inEdges;\n }\n }\n }\n return this.getDiagramObjects(diff, selectedObject.id, isNode, args, labelDrag, diagram);\n }\n }\n };\n /** @private */\n DeepDiffMapper.prototype.getLayerObject = function (oldDiagram, temp, diagram) {\n if (isBlazor()) {\n var diffLayers = {};\n diffLayers['layers'] = [];\n var newDiagram = {};\n newDiagram['layers'] = [];\n for (var i = 0; i < diagram.layers.length; i++) {\n newDiagram['layers'].push(cloneObject(diagram.layers[i]));\n }\n var result = void 0;\n for (var i = 0; i < newDiagram['layers'].length; i++) {\n if (!temp) {\n result = this.map(cloneObject(newDiagram['layers'][i]), oldDiagram['layers'][i]);\n }\n else {\n result = this.map(oldDiagram['layers'][i], cloneObject(newDiagram['layers'][i]));\n }\n var diffValue = this.frameObject({}, result);\n var diff = this.removeEmptyValues(diffValue);\n diffLayers['layers'][i] = diff;\n }\n this.updateObjectCollection(diffLayers['layers'], diagram);\n return diffLayers;\n }\n };\n /** @private */\n DeepDiffMapper.prototype.getDiagramObjects = function (diffValue, object, isNode, args, labelDrag, diagram) {\n var index = 0;\n index = getIndex(diagram, object);\n diffValue.sfIndex = index;\n if (isNode) {\n this.newNodeObject.push(diffValue);\n }\n else {\n this.newConnectorObject.push(diffValue);\n }\n if (args && (((args.sourceWrapper instanceof TextElement) && labelDrag) || args.portId)) {\n var tempObject = void 0;\n var objectValue = void 0;\n if (isNode) {\n objectValue = args.portId ? this.newNodeObject[0].ports : this.newNodeObject[0].annotations;\n }\n else {\n objectValue = this.newConnectorObject[0].annotations || [];\n }\n for (var i = 0; i < objectValue.length; i++) {\n if (Object.keys(objectValue[i]).length > 0) {\n var selectedObject = diagram.nameTable[object];\n tempObject = objectValue[i];\n if (args.portId) {\n this.newNodeObject[0].ports = [tempObject];\n }\n else {\n for (var j = 0; j < selectedObject.annotations.length; j++) {\n if (args.sourceWrapper.id === selectedObject.id + \"_\" + selectedObject.annotations[j].id) {\n tempObject.sfIndex = j;\n }\n }\n if (isNode) {\n this.newNodeObject[0].annotations = [tempObject];\n }\n else {\n this.newConnectorObject[0].annotations = [tempObject];\n }\n }\n }\n }\n }\n this.diagramObject = { nodes: this.newNodeObject, connectors: this.newConnectorObject };\n //return returnValue;\n };\n DeepDiffMapper.prototype.removeArrayValues = function (obj) {\n var newObj = [];\n var value = JSON.stringify(obj);\n if (!(value === JSON.stringify({ 'data': [] }))) {\n for (var i = 0; i < obj.length; i++) {\n if (obj[i] instanceof Object) {\n var newValue = this.removeEmptyValues(obj[i]);\n newObj.push(newValue);\n }\n else {\n newObj.push(obj[i]);\n }\n }\n }\n return newObj;\n };\n /** @private */\n DeepDiffMapper.prototype.removeEmptyValues = function (frame) {\n var newObj = {};\n for (var _i = 0, _a = Object.keys(frame); _i < _a.length; _i++) {\n var prop = _a[_i];\n if (prop !== 'wrapper' && (prop !== 'data' || (prop === 'data' && !(frame[prop] instanceof Array)))) {\n var obj = frame[prop];\n var value = JSON.stringify(obj);\n if (obj instanceof Array) {\n var newValue = this.removeArrayValues(obj);\n if (JSON.stringify(newValue) !== '[]') {\n newObj[prop] = newValue;\n }\n }\n else {\n if (obj instanceof Object) {\n if (!(value === JSON.stringify({ 'data': [] }))) {\n var newValue = this.removeEmptyValues(obj);\n if (JSON.stringify(newValue) !== '{}') {\n newObj[prop] = newValue;\n }\n }\n }\n else {\n if (!(value === JSON.stringify(['data']) || value === JSON.stringify('data')\n || value === JSON.stringify({ 'data': [] }))) {\n if (prop !== 'version' && prop !== 'ejsAction') {\n newObj[prop] = frame[prop];\n }\n }\n }\n }\n }\n }\n return newObj;\n };\n DeepDiffMapper.prototype.map = function (obj1, obj2, arrayName) {\n if (this.isFunction(obj1) || this.isFunction(obj2)) {\n throw 'Invalid argument. Function given, object expected.';\n }\n if (this.isValue(obj1) || this.isValue(obj2)) {\n return {\n type: this.compareValues(obj1, obj2),\n data: obj1 === undefined ? obj2 : obj1\n };\n }\n var diff = {};\n if (this.isArray(obj1)) {\n for (var i_1 = 0; i_1 < obj1.length; i_1++) {\n if (!diff[arrayName]) {\n diff[arrayName] = [];\n }\n var ss = this.map(obj1[i_1], obj2[i_1]);\n diff[arrayName].push(ss);\n }\n }\n else {\n for (var key in obj1) {\n if (this.isFunction(obj1[key])) {\n continue;\n }\n var value2 = undefined;\n if (obj2[key] !== undefined) {\n value2 = obj2[key];\n }\n var kk = this.map(obj1[key], value2, this.isArray(value2) ? key : undefined);\n if (this.isArray(value2)) {\n diff[key] = kk[key];\n }\n else {\n diff[key] = kk;\n }\n }\n }\n if (this.isArray(obj2)) {\n for (var i = obj2.length - 1; i >= 0; i--) {\n if (!diff[arrayName]) {\n diff[arrayName] = [];\n }\n if (this.isFunction(obj2[i]) || diff[arrayName][i] !== undefined) {\n if (diff[arrayName][i].type && diff[arrayName][i].type !== this.valueUpdated) {\n delete diff[arrayName];\n }\n continue;\n }\n var ss = this.map(undefined, obj2[i]);\n diff[arrayName][i] = ss;\n }\n }\n else {\n for (var key in obj2) {\n if (this.isFunction(obj2[key]) || diff[key] !== undefined) {\n if (diff[key].type && ((diff[key].type !== this.valueUpdated) && (diff[key].type !== this.valueDeleted))) {\n delete diff[key];\n }\n continue;\n }\n var kk = this.map(undefined, obj2[key]);\n diff[key] = kk;\n }\n }\n return diff;\n };\n DeepDiffMapper.prototype.compareValues = function (value1, value2) {\n if (value1 === value2) {\n return this.valueUnchanged;\n }\n if (this.isDate(value1) && this.isDate(value2) && value1.getTime() === value2.getTime()) {\n return this.valueUnchanged;\n }\n if (value1 === undefined) {\n return this.valueCreated;\n }\n if (value2 === undefined) {\n return this.valueDeleted;\n }\n return this.valueUpdated;\n };\n DeepDiffMapper.prototype.isFunction = function (x) {\n return Object.prototype.toString.call(x) === '[object Function]';\n };\n DeepDiffMapper.prototype.isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n DeepDiffMapper.prototype.isDate = function (x) {\n return Object.prototype.toString.call(x) === '[object Date]';\n };\n DeepDiffMapper.prototype.isObject = function (x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n };\n DeepDiffMapper.prototype.isValue = function (x) {\n return !this.isObject(x) && !this.isArray(x);\n };\n DeepDiffMapper.prototype.frameObject = function (final, obj) {\n for (var key in obj) {\n if (this.isArray(obj[key])) {\n if (!final[key]) {\n final[key] = [];\n }\n for (var i = 0; i < obj[key].length; i++) {\n var kk = this.frameObject({}, obj[key][i]);\n final[key].push(kk);\n }\n }\n else {\n if ((key != 'type') || (key == 'type' && (obj[key] !== this.valueUpdated && obj[key] !== this.valueUnchanged && obj[key] !== this.valueDeleted && obj[key] !== this.valueCreated))) {\n if (this.isFunction(obj[key])) {\n continue;\n }\n if (this.isValue(obj[key])) {\n return obj['data'];\n }\n else {\n var kk = this.frameObject({}, obj[key]);\n if (this.isValue(kk) || Object.keys(kk).length > 0) {\n final[key] = kk;\n }\n }\n }\n }\n }\n return final;\n };\n return DeepDiffMapper;\n}());\nexport { DeepDiffMapper };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Node } from '../objects/node';\nimport { Connector, BezierSegment, StraightSegment } from '../objects/connector';\nimport { Point } from '../primitives/point';\nimport { BpmnSubEvent } from '../objects/node';\nimport { PointPort } from '../objects/port';\nimport { rotatePoint, cloneObject, randomId } from '../utility/base-util';\nimport { Rect } from '../primitives/rect';\nimport { getFreeHandPath, getPolygonPath } from '../utility/path-util';\nimport { canOutConnect, canInConnect, canAllowDrop, canPortInConnect, canPortOutConnect, canMove } from '../utility/constraints-util';\nimport { transformPointByMatrix, rotateMatrix, identityMatrix } from '../primitives/matrix';\nimport { NodeConstraints, DiagramEvent, PortConstraints } from './../enum/enum';\nimport { TextElement } from '../core/elements/text-element';\nimport { contains } from './actions';\nimport { Selector } from '../objects/node';\nimport { getInOutConnectPorts, cloneBlazorObject, getDropEventArguements, getObjectType, checkPort } from '../utility/diagram-util';\nimport { initializeCSPTemplate, isBlazor } from '@syncfusion/ej2-base';\nimport { DeepDiffMapper } from '../utility/diff-map';\nimport { findAngle } from '../utility/connector';\n/**\n * Defines the interactive tools\n */\nvar ToolBase = /** @class */ (function () {\n /**\n * Initializes the tool\n *\n * @param {CommandHandler} command Command that is corresponding to the current action\n * @param protectChange\n */\n function ToolBase(command, protectChange) {\n if (protectChange === void 0) { protectChange = false; }\n /**\n * Command that is corresponding to the current action\n */\n this.commandHandler = null;\n this.deepDiffer = new DeepDiffMapper();\n /**\n * Sets/Gets whether the interaction is being done\n */\n this.inAction = false;\n /**\n * Sets/Gets the protect change\n */\n this.isProtectChange = false;\n /**\n * Sets/Gets the current element that is under mouse\n */\n this.currentElement = null;\n /** @private */\n this.blocked = false;\n this.isTooltipVisible = false;\n /** @private */\n this.childTable = {};\n /**\n * Sets/Gets the previous object when mouse down\n */\n this.undoElement = { nodes: [], connectors: [] };\n this.checkProperty = true;\n this.undoParentElement = { nodes: [], connectors: [] };\n this.commandHandler = command;\n this.isProtectChange = protectChange;\n }\n ToolBase.prototype.startAction = function (currentElement) {\n this.currentElement = currentElement;\n this.inAction = true;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseDown = function (args) {\n if (isBlazor()) {\n this.commandHandler.enableCloneObject(true);\n this.commandHandler.ismouseEvents(true);\n }\n this.currentElement = args.source;\n this.startPosition = this.currentPosition = this.prevPosition = args.position;\n this.isTooltipVisible = true;\n this.startAction(args.source);\n this.checkProperty = true;\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n this.mouseDownElement = args.source;\n };\n ToolBase.prototype.checkPropertyValue = function () {\n if (this.checkProperty) {\n this.commandHandler.startTransaction(this.isProtectChange);\n }\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseMove = function (args) {\n this.currentPosition = args.position;\n if (this.inAction) {\n this.commandHandler.startTransaction(this.isProtectChange);\n this.checkProperty = false;\n }\n //this.currentElement = currentElement;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.currentPosition = args.position;\n // this.currentElement = currentElement;\n this.isTooltipVisible = false;\n this.commandHandler.endTransaction(this.isProtectChange);\n if (isBlazor()) {\n this.commandHandler.enableCloneObject(false);\n this.commandHandler.ismouseEvents(false);\n this.commandHandler.getBlazorOldValues(args, this instanceof LabelDragTool);\n }\n this.endAction();\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n this.mouseDownElement = null;\n };\n ToolBase.prototype.endAction = function () {\n if (!this.isTooltipVisible) {\n this.commandHandler.closeTooltip();\n }\n this.commandHandler = null;\n this.currentElement = null;\n this.currentPosition = null;\n this.inAction = false;\n this.blocked = false;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseWheel = function (args) {\n this.currentPosition = args.position;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ToolBase.prototype.updateSize = function (shape, startPoint, endPoint, corner, initialBounds, angle) {\n shape = this.commandHandler.renderContainerHelper(shape) || shape;\n var horizontalsnap = { snapped: false, offset: 0, left: false, right: false };\n var verticalsnap = { snapped: false, offset: 0, top: false, bottom: false };\n var difx = this.currentPosition.x - this.startPosition.x;\n var dify = this.currentPosition.y - this.startPosition.y;\n var snapEnabled = (!(shape instanceof TextElement)) && this.commandHandler.snappingModule\n && this.commandHandler.snappingModule.canSnap();\n var snapLine = snapEnabled ? this.commandHandler.snappingModule.getLayer() : null;\n var rotateAngle = (shape instanceof TextElement) ? angle : shape.rotateAngle;\n var matrix;\n matrix = identityMatrix();\n rotateMatrix(matrix, -rotateAngle, 0, 0);\n var x = shape.offsetX;\n var y = shape.offsetY;\n var w = shape.width;\n var h = shape.height;\n x = x - w * shape.pivot.x;\n y = y - h * shape.pivot.y;\n var deltaWidth = 0;\n var deltaHeight = 0;\n var diff;\n var width = (shape instanceof TextElement) ? shape.actualSize.width : shape.width;\n var height = (shape instanceof TextElement) ? shape.actualSize.height : shape.height;\n switch (corner) {\n case 'ResizeWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n deltaHeight = 1;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n difx;\n dify = 0;\n deltaWidth = (initialBounds.width - difx) / width;\n break;\n case 'ResizeEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n difx;\n dify = 0;\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = 1;\n break;\n case 'ResizeNorth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n dify;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n dify;\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n case 'ResizeNorthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n difx;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n dify;\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeNorthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = !snapEnabled ? dify : this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n difx = !snapEnabled ? difx : this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = !snapEnabled ? dify : this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n difx = !snapEnabled ? difx : this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n deltaHeight = (initialBounds.height + dify) / height;\n deltaWidth = (initialBounds.width + difx) / width;\n break;\n case 'ResizeSouthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : dify;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : difx;\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n }\n return { width: deltaWidth, height: deltaHeight };\n };\n ToolBase.prototype.getPivot = function (corner) {\n switch (corner) {\n case 'ResizeWest':\n return { x: 1, y: 0.5 };\n case 'ResizeEast':\n return { x: 0, y: 0.5 };\n case 'ResizeNorth':\n return { x: 0.5, y: 1 };\n case 'ResizeSouth':\n return { x: 0.5, y: 0 };\n case 'ResizeNorthEast':\n return { x: 0, y: 1 };\n case 'ResizeNorthWest':\n return { x: 1, y: 1 };\n case 'ResizeSouthEast':\n return { x: 0, y: 0 };\n case 'ResizeSouthWest':\n return { x: 1, y: 0 };\n }\n return { x: 0.5, y: 0.5 };\n };\n //method to get node shape name\n ToolBase.prototype.getShapeType = function () {\n var shape;\n if (this.commandHandler.diagram.drawingObject.shape.type === 'Image' || 'HTML' || 'Native' || 'Path') {\n shape = this.commandHandler.diagram.drawingObject.shape.type;\n }\n else {\n shape = this.commandHandler.diagram.drawingObject.shape.shape;\n }\n return shape;\n };\n //EJ2-52203-Method to trigger ElementDraw Event when we draw node or connector with the drawing Tool\n ToolBase.prototype.triggerElementDrawEvent = function (source, state, objectType, elementType, isMouseDownAction) {\n var arg = {\n source: source, state: state, objectType: objectType, cancel: false, elementType: elementType\n };\n this.commandHandler.triggerEvent(DiagramEvent.elementDraw, arg);\n if (isMouseDownAction && arg.cancel) {\n {\n this.commandHandler.diagram.resetTool();\n }\n }\n };\n return ToolBase;\n}());\nexport { ToolBase };\n/**\n * Helps to select the objects\n */\nvar SelectTool = /** @class */ (function (_super) {\n __extends(SelectTool, _super);\n function SelectTool(commandHandler, protectChange, action) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.action = action;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n //draw selected region\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n if (this.mouseDownElement && !canMove(this.mouseDownElement)) {\n this.commandHandler.clearObjectSelection(this.mouseDownElement);\n }\n else {\n this.commandHandler.clearSelectedItems();\n this.commandHandler.drawSelectionRectangle(rect.x, rect.y, rect.width, rect.height);\n }\n }\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n //rubber band selection\n if (!this.commandHandler.isUserHandle(this.currentPosition)) {\n if (Point.equals(this.currentPosition, this.prevPosition) === false && this.inAction) {\n var region = Rect.toBounds([this.prevPosition, this.currentPosition]);\n this.commandHandler.doRubberBandSelection(region);\n }\n else {\n //single selection\n var arrayNodes = this.commandHandler.getSelectedObject();\n if (!this.commandHandler.hasSelection() || !args.info || !args.info.ctrlKey) {\n this.commandHandler.clearSelection(args.source === null ? true : false);\n if (this.action === 'LabelSelect') {\n this.commandHandler.labelSelect(args.source, args.sourceWrapper);\n }\n else if (args.source) {\n this.commandHandler.selectObjects([args.source], false, arrayNodes);\n }\n }\n else {\n //handling multiple selection\n if (args && args.source) {\n if (!this.commandHandler.isSelected(args.source)) {\n this.commandHandler.selectObjects([args.source], true);\n }\n else {\n if (args.clickCount === 1) {\n this.commandHandler.unSelect(args.source);\n this.commandHandler.updateBlazorSelector();\n }\n }\n }\n }\n }\n }\n this.inAction = false;\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return SelectTool;\n}(ToolBase));\nexport { SelectTool };\nvar FixedUserHandleTool = /** @class */ (function (_super) {\n __extends(FixedUserHandleTool, _super);\n function FixedUserHandleTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param args\n * @private\n */\n FixedUserHandleTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.inAction = false;\n var val = args.source;\n var fixedUserHandle;\n var iconId = args.sourceWrapper.id;\n for (var i = 0; i < val.fixedUserHandles.length; i++) {\n if (iconId.indexOf(val.fixedUserHandles[parseInt(i.toString(), 10)].id) > -1) {\n fixedUserHandle = val.fixedUserHandles[parseInt(i.toString(), 10)];\n }\n }\n if (isBlazor()) {\n var element = getObjectType(args.source) === Connector ? { connector: args.source }\n : { node: args.source };\n var fixedUserHandles = getObjectType(args.source) === Connector ?\n { connectorFixedUserHandle: fixedUserHandle }\n : { nodeFixedUserHandle: fixedUserHandle };\n var arg = {\n fixedUserHandle: fixedUserHandles,\n element: element\n };\n var trigger = DiagramEvent.fixedUserHandleClick;\n this.commandHandler.triggerEvent(trigger, arg);\n _super.prototype.mouseUp.call(this, args);\n }\n else {\n var arg = {\n fixedUserHandle: fixedUserHandle,\n element: args.source\n };\n var trigger = DiagramEvent.fixedUserHandleClick;\n this.commandHandler.triggerEvent(trigger, arg);\n _super.prototype.mouseUp.call(this, args);\n }\n };\n return FixedUserHandleTool;\n}(ToolBase));\nexport { FixedUserHandleTool };\n/**\n * Helps to edit the selected connectors\n */\nvar ConnectTool = /** @class */ (function (_super) {\n __extends(ConnectTool, _super);\n function ConnectTool(commandHandler, endPoint) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.isConnected = false;\n _this.endPoint = endPoint;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseDown = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var selectorModel, connector, arg, oldValue, connectors, i, segment, segmentpoint1, segmentpoint2;\n return __generator(this, function (_a) {\n if (isBlazor() && args && args.source) {\n this.commandHandler.insertSelectedObjects();\n this.commandHandler.insertBlazorConnector(args.source);\n selectorModel = args.source;\n if (selectorModel.connectors) {\n connector = selectorModel.connectors[0];\n this.oldConnector = cloneObject(connector);\n arg = {\n connector: cloneBlazorObject(connector),\n oldValue: { connectorTargetValue: { portId: undefined, nodeId: undefined } },\n newValue: { connectorTargetValue: { portId: undefined, nodeId: undefined } },\n cancel: false, state: 'Changing', connectorEnd: this.endPoint\n };\n this.tempArgs = arg;\n }\n }\n this.inAction = true;\n this.undoElement = undefined;\n if (!(this instanceof ConnectorDrawingTool)) {\n this.undoElement = cloneObject(args.source);\n }\n _super.prototype.mouseDown.call(this, args);\n if (args.source && args.source.connectors) {\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connectors = args.source.connectors[0];\n this.oldConnector = cloneObject(connectors);\n }\n // Sets the selected segment\n if (this.endPoint === 'BezierSourceThumb' || this.endPoint === 'BezierTargetThumb') {\n for (i = 0; i < connectors.segments.length; i++) {\n segment = connectors.segments[parseInt(i.toString(), 10)];\n segmentpoint1 = !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1;\n segmentpoint2 = !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2;\n //(EJ2-70650)-Unable to drag bezier control thumb, when we increase handleSize value \n //Added below code for drag the bezier control thumb while increasing handle size(For hitPadding)\n if (this.currentElement.handleSize !== connectors.hitPadding) {\n connectors.hitPadding = this.currentElement.handleSize;\n }\n if (contains(this.currentPosition, segmentpoint1, connectors.hitPadding) ||\n contains(this.currentPosition, segmentpoint2, connectors.hitPadding)) {\n this.selectedSegment = segment;\n }\n }\n }\n this.currentPosition = args.position;\n return [2 /*return*/];\n });\n });\n };\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseUp = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var trigger, temparg, nodeEndId, portEndId, diagram, blazorInterop, blazor, eventObj, connector, nodeEndId, portEndId, arg, oldValues, connector, targetPortName, targetNodeNode, target, arg, trigger, obj, entry, obj, entry, connector;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!isBlazor()) return [3 /*break*/, 3];\n trigger = DiagramEvent.connectionChange;\n temparg = void 0;\n if (!(this.tempArgs && this.oldConnector)) return [3 /*break*/, 3];\n this.commandHandler.updatePropertiesToBlazor(args, false);\n this.tempArgs.state = 'Changed';\n nodeEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n portEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n this.tempArgs.oldValue = this.endPoint === 'ConnectorSourceEnd' ?\n { connectorSourceValue: { nodeId: this.oldConnector[\"\" + nodeEndId], portId: this.oldConnector[\"\" + portEndId] } } :\n { connectorTargetValue: { nodeId: this.oldConnector[\"\" + nodeEndId], portId: this.oldConnector[\"\" + portEndId] } };\n temparg = {\n state: this.tempArgs.state, oldValue: this.tempArgs.oldValue,\n newValue: this.tempArgs.newValue, cancel: this.tempArgs.cancel, connectorEnd: this.tempArgs.connectorEnd\n };\n diagram = 'diagram';\n blazorInterop = 'sfBlazor';\n blazor = 'Blazor';\n if (!(window && window[\"\" + blazor] && this.commandHandler[\"\" + diagram].connectionChange)) return [3 /*break*/, 2];\n eventObj = { 'EventName': 'connectionChange', args: JSON.stringify(this.tempArgs) };\n return [4 /*yield*/, window[\"\" + blazorInterop].updateBlazorDiagramEvents(eventObj, this.commandHandler[\"\" + diagram])];\n case 1:\n temparg = _a.sent();\n _a.label = 2;\n case 2:\n if (temparg) {\n this.commandHandler.updateConnectorValue(temparg);\n }\n _a.label = 3;\n case 3:\n if (!isBlazor() && this.isConnected && args.source.connectors) {\n connector = args.source.connectors[0];\n nodeEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n portEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n arg = {\n connector: cloneBlazorObject(connector),\n oldValue: { nodeId: this.oldConnector[\"\" + nodeEndId], portId: this.oldConnector[\"\" + portEndId] },\n newValue: { nodeId: connector[\"\" + nodeEndId], portId: connector[\"\" + portEndId] }, cancel: false,\n state: 'Changed', connectorEnd: this.endPoint\n };\n if (connector[\"\" + nodeEndId] !== this.oldConnector[\"\" + nodeEndId]) {\n this.commandHandler.triggerEvent(DiagramEvent.connectionChange, arg);\n this.isConnected = false;\n }\n }\n this.checkPropertyValue();\n this.commandHandler.updateSelector();\n this.commandHandler.removeSnap();\n this.commandHandler.changeAnnotationDrag(args);\n if ((!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' &&\n args.source.connectors.length &&\n ((!Point.equals(args.source.connectors[0].sourcePoint, this.undoElement.connectors[0].sourcePoint) ||\n (args.source.connectors[0].sourceID !== this.undoElement.connectors[0].sourceID)))) ||\n (this.endPoint === 'ConnectorTargetEnd' &&\n ((!Point.equals(args.source.connectors[0].targetPoint, this.undoElement.connectors[0].targetPoint))\n || (args.source.connectors[0].targetID !== this.undoElement.connectors[0].targetID))))) {\n oldValues = void 0;\n connector = void 0;\n if (args.source && args.source.connectors) {\n oldValues = { x: this.prevPosition.x, y: this.prevPosition.y };\n connector = args.source.connectors[0];\n }\n targetPortName = void 0;\n targetNodeNode = void 0;\n if (args.target) {\n target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (target instanceof PointPort) ? targetPortName = target.id : targetNodeNode = target.id;\n }\n arg = {\n connector: connector, state: 'Completed', targetNode: targetNodeNode,\n oldValue: oldValues, newValue: oldValues, cancel: false, targetPort: targetPortName\n };\n if (isBlazor()) {\n arg = {\n connector: cloneBlazorObject(connector), state: 'Completed', targetNode: targetNodeNode,\n oldValue: cloneBlazorObject(oldValues), newValue: oldValues, cancel: arg.cancel, targetPort: targetPortName\n };\n }\n trigger = this.endPoint === 'ConnectorSourceEnd' ? DiagramEvent.sourcePointChange : DiagramEvent.targetPointChange;\n this.commandHandler.triggerEvent(trigger, arg);\n this.commandHandler.removeTerminalSegment(connector, true);\n if (this.undoElement && args.source) {\n obj = void 0;\n obj = cloneObject(args.source);\n entry = {\n type: 'ConnectionChanged', redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement),\n category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n }\n }\n else if (!(this instanceof ConnectorDrawingTool) &&\n (this.endPoint === 'BezierTargetThumb' || this.endPoint === 'BezierSourceThumb')) {\n if (this.undoElement && args.source) {\n obj = cloneObject(args.source);\n entry = {\n type: 'SegmentChanged', redoObject: obj, undoObject: this.undoElement, category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n }\n }\n this.commandHandler.updateBlazorSelector();\n this.canCancel = undefined;\n this.tempArgs = undefined;\n //(EJ2-66201) - Exception occurs when mouse-hover on ports in node\n if (args.source && args.source.connectors) {\n connector = args.source.connectors[0];\n if (connector.isBezierEditing) {\n connector.isBezierEditing = false;\n }\n }\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n }\n });\n });\n };\n /* tslint:disable */\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var tempArgs;\n if ((!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' &&\n Point.equals(args.source.connectors[0].sourcePoint, this.undoElement.connectors[0].sourcePoint)) ||\n (this.endPoint === 'ConnectorTargetEnd' &&\n Point.equals(args.source.connectors[0].targetPoint, this.undoElement.connectors[0].targetPoint)))) {\n var oldValue = void 0;\n var connectors = void 0;\n if (args.source && args.source.connectors) {\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connectors = args.source.connectors[0];\n }\n var targetPort = void 0;\n var targetNode = void 0;\n if (args.target) {\n targetNode = args.target.id;\n var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (target instanceof PointPort || target instanceof BpmnSubEvent) ? targetPort = target.id : targetNode = target.id;\n }\n var arg = {\n connector: connectors, state: 'Start', targetNode: targetNode,\n oldValue: oldValue, newValue: oldValue, cancel: false, targetPort: targetPort\n };\n if (isBlazor()) {\n arg = {\n connector: cloneBlazorObject(connectors), state: 'Start', targetNode: targetNode,\n oldValue: oldValue, newValue: oldValue, cancel: arg.cancel, targetPort: targetPort\n };\n }\n var trigger = this.endPoint === 'ConnectorSourceEnd' ?\n DiagramEvent.sourcePointChange : DiagramEvent.targetPointChange;\n this.commandHandler.triggerEvent(trigger, arg);\n }\n this.currentPosition = args.position;\n if (this.currentPosition && this.prevPosition) {\n var diffX = this.currentPosition.x - this.prevPosition.x;\n var diffY = this.currentPosition.y - this.prevPosition.y;\n var newValue = void 0;\n var oldValue = void 0;\n var inPort = void 0;\n var outPort = void 0;\n this.currentPosition = this.commandHandler.snapConnectorEnd(this.currentPosition);\n var connector = void 0;\n if (args.source && args.source.connectors) {\n newValue = { x: this.currentPosition.x, y: this.currentPosition.y };\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connector = args.source.connectors[0];\n }\n var targetPortId = void 0;\n var targetNodeId = void 0;\n if (args.target) {\n var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (target instanceof PointPort) ? targetPortId = target.id : targetNodeId = target.id;\n }\n var arg = {\n connector: connector, state: 'Progress', targetNode: targetNodeId,\n oldValue: oldValue, newValue: newValue, cancel: false, targetPort: targetPortId\n };\n if (isBlazor()) {\n arg = {\n connector: cloneBlazorObject(connector), state: 'Progress', targetNode: targetNodeId,\n oldValue: oldValue, newValue: newValue, cancel: arg.cancel, targetPort: targetPortId\n };\n }\n if (!(this instanceof ConnectorDrawingTool)) {\n var trigger = this.endPoint === 'ConnectorSourceEnd' ?\n DiagramEvent.sourcePointChange : DiagramEvent.targetPointChange;\n this.commandHandler.triggerEvent(trigger, arg);\n }\n if (args.target) {\n inPort = getInOutConnectPorts(args.target, true);\n outPort = getInOutConnectPorts(args.target, false);\n }\n if (!arg.cancel && this.inAction && this.endPoint !== undefined && diffX !== 0 || diffY !== 0) {\n // EJ2-65331 - The condition checks whether the cancel argument is true or false\n if (!arg.cancel) {\n this.blocked = !this.commandHandler.dragConnectorEnds(this.endPoint, args.source, this.currentPosition, this.selectedSegment, args.target, targetPortId);\n this.commandHandler.updateSelector();\n }\n if (args.target && ((this.endPoint === 'ConnectorSourceEnd' && (canOutConnect(args.target) || canPortOutConnect(outPort)))\n || (this.endPoint === 'ConnectorTargetEnd' && (canInConnect(args.target) || canPortInConnect(inPort))))) {\n if (this.commandHandler.canDisconnect(this.endPoint, args, targetPortId, targetNodeId)) {\n tempArgs = this.commandHandler.disConnect(args.source, this.endPoint, this.canCancel);\n this.isConnected = true;\n }\n var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n if (target instanceof Node) {\n if ((canInConnect(target) && this.endPoint === 'ConnectorTargetEnd')\n || (canOutConnect(target) && this.endPoint === 'ConnectorSourceEnd')) {\n tempArgs = this.commandHandler.connect(this.endPoint, args, this.canCancel);\n this.isConnected = true;\n }\n }\n else {\n var isConnect = this.checkConnect(target);\n if (isConnect) {\n this.isConnected = true;\n tempArgs = this.commandHandler.connect(this.endPoint, args, this.canCancel);\n }\n }\n }\n else if (this.endPoint.indexOf('Bezier') === -1) {\n this.isConnected = true;\n tempArgs = this.commandHandler.disConnect(args.source, this.endPoint, this.canCancel);\n this.commandHandler.updateSelector();\n }\n }\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_1 = this.getTooltipContent(args.position);\n var contentTemp = function () {\n return content_1;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'ConnectTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n if (tempArgs) {\n this.tempArgs = tempArgs;\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ConnectTool.prototype.getTooltipContent = function (position) {\n return 'X:' + Math.round(position.x) + ' ' + 'Y:' + Math.round(position.y);\n };\n ConnectTool.prototype.checkConnect = function (target) {\n if (canPortInConnect(target) && this.endPoint === 'ConnectorTargetEnd') {\n return true;\n }\n else if (canPortOutConnect(target) && this.endPoint === 'ConnectorSourceEnd') {\n return true;\n }\n else if (!(target.constraints & PortConstraints.None) && !canPortInConnect(target) && !canPortOutConnect(target)\n && (target.constraints === undefined || (target.constraints & (PortConstraints.Default & ~(PortConstraints.InConnect | PortConstraints.OutConnect))) > 0)) {\n return true;\n }\n return false;\n };\n /** @private */\n ConnectTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.prevPosition = null;\n this.endPoint = null;\n };\n return ConnectTool;\n}(ToolBase));\nexport { ConnectTool };\n/**\n * Drags the selected objects\n */\nvar MoveTool = /** @class */ (function (_super) {\n __extends(MoveTool, _super);\n function MoveTool(commandHandler, objType) {\n var _this = _super.call(this, commandHandler, true) || this;\n /** @private */\n _this.currentTarget = null;\n _this.canCancel = false;\n _this.canTrigger = false;\n _this.objectType = objType;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n MoveTool.prototype.mouseDown = function (args) {\n if (args.source instanceof Node || args.source instanceof Connector) {\n var arrayNodes = this.commandHandler.getSelectedObject();\n this.commandHandler.selectObjects([args.source], args.info && args.info.ctrlKey, arrayNodes);\n var selectedObject = { nodes: [], connectors: [] };\n if (args.source instanceof Node) {\n selectedObject.nodes.push(cloneObject(args.source));\n }\n else {\n selectedObject.connectors.push(cloneObject(args.source));\n }\n this.undoElement = cloneObject(selectedObject);\n }\n else {\n this.undoElement = cloneObject(args.source);\n }\n this.undoParentElement = this.commandHandler.getSubProcess(args.source);\n if (this.objectType === 'Port') {\n this.portId = args.sourceWrapper.id;\n }\n this.commandHandler.insertBlazorConnector(args.source);\n var oldValues;\n if (isBlazor()) {\n this.commandHandler.insertSelectedObjects();\n this.startPosition = this.currentPosition = this.prevPosition = args.position;\n this.initialOffset = { x: 0, y: 0 };\n if (args.source) {\n oldValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY };\n }\n var arg = {\n source: cloneObject(args.source), state: 'Start', oldValue: oldValues, newValue: {},\n target: cloneObject(args.target), targetPosition: args.position, allowDrop: true, cancel: false\n };\n this.tempArgs = arg;\n }\n _super.prototype.mouseDown.call(this, args);\n this.initialOffset = { x: 0, y: 0 };\n };\n /* tslint:disable */\n /**\n * @param args\n * @param isPreventHistory\n * @param args\n * @param isPreventHistory\n * @private\n */\n MoveTool.prototype.mouseUp = function (args, isPreventHistory) {\n return __awaiter(this, void 0, void 0, function () {\n var oldValues, newValues, arg, blazorArgs, diagram, blazorInterop, blazor, eventObj, tx, ty, obj, historyAdded, object, redoObject, wrapper, arg, canAddHistory, entry, entry_1, snappedPoint, arg, nodes, isEndGroup, temp, i, i, entry;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(isBlazor() && this.objectType !== 'Port')) return [3 /*break*/, 3];\n this.commandHandler.updatePropertiesToBlazor(args, false);\n if (args.source) {\n newValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY };\n oldValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY };\n }\n arg = {\n state: 'Completed',\n oldValue: cloneBlazorObject(this.tempArgs.oldValue), newValue: cloneBlazorObject(newValues),\n target: cloneBlazorObject(this.currentTarget), targetPosition: cloneBlazorObject(this.currentPosition),\n allowDrop: true, cancel: false\n };\n blazorArgs = void 0;\n diagram = 'diagram';\n blazorInterop = 'sfBlazor';\n blazor = 'Blazor';\n if (!(window && window[\"\" + blazor] && this.commandHandler[\"\" + diagram].positionChange)) return [3 /*break*/, 2];\n eventObj = { 'EventName': 'positionChange', args: JSON.stringify(arg) };\n return [4 /*yield*/, window[\"\" + blazorInterop].updateBlazorDiagramEvents(eventObj, this.commandHandler[\"\" + diagram])];\n case 1:\n blazorArgs = _a.sent();\n _a.label = 2;\n case 2:\n if (blazorArgs && blazorArgs.cancel) {\n this.commandHandler.enableCloneObject(true);\n this.commandHandler.ismouseEvents(true);\n this.canCancel = true;\n }\n if (this.canCancel) {\n this.commandHandler.insertBlazorObject(args.source);\n tx = this.tempArgs.oldValue.offsetX - args.source.wrapper.offsetX;\n ty = this.tempArgs.oldValue.offsetY - args.source.wrapper.offsetY;\n this.commandHandler.dragSelectedObjects(tx, ty);\n }\n _a.label = 3;\n case 3:\n this.checkPropertyValue();\n historyAdded = false;\n redoObject = { nodes: [], connectors: [] };\n if (!(this.objectType !== 'Port')) return [3 /*break*/, 8];\n if (args.source instanceof Node || args.source instanceof Connector) {\n if (args.source instanceof Node) {\n redoObject.nodes.push(cloneObject(args.source));\n }\n else {\n redoObject.connectors.push(cloneObject(args.source));\n }\n obj = cloneObject(redoObject);\n wrapper = args.source.wrapper;\n obj.offsetX = wrapper.offsetX;\n obj.offsetY = wrapper.offsetY;\n }\n else {\n obj = cloneObject(args.source);\n }\n object = this.commandHandler.renderContainerHelper(args.source) || args.source || this.commandHandler.renderContainerHelper(args.source);\n if ((object.id === 'helper') || (object.id !== 'helper')) {\n //EJ2-71257 - Position change event completed state is not fired on selecting the node first and then dragging the node while changing node width at progress state.\n // If object is instanceof selector then checked the length of selected objects is 1 or not. \n if ((((object instanceof Selector && ((Math.round(object.width) === Math.round(this.undoElement.width) && Math.round(object.height) === Math.round(this.undoElement.height)) || (object.selectedObjects && object.selectedObjects.length === 1))) || !(object instanceof Selector)) && (object.offsetX !== this.undoElement.offsetX || object.offsetY !== this.undoElement.offsetY ||\n object.sourcePoint !== this.undoElement.sourcePoint\n // eslint-disable-next-line max-len\n || object.targetPoint !== this.undoElement.targetPoint)) || this.isSelectionHasConnector(object)) {\n if (args.source) {\n newValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY };\n oldValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY };\n }\n arg = {\n source: args.source, state: 'Completed', oldValue: oldValues, newValue: newValues,\n target: this.currentTarget, targetPosition: this.currentPosition, allowDrop: true, cancel: false\n };\n arg = {\n source: cloneBlazorObject(args.source), state: 'Completed',\n oldValue: cloneBlazorObject(oldValues), newValue: cloneBlazorObject(newValues),\n target: cloneBlazorObject(this.currentTarget), targetPosition: cloneBlazorObject(this.currentPosition),\n allowDrop: arg.allowDrop, cancel: arg.cancel\n };\n if (isBlazor()) {\n arg = this.getBlazorPositionChangeEventArgs(arg, this.currentTarget);\n }\n canAddHistory = true;\n //EJ2-69852): Position Change event trigger for clicking second time in swimlane header issue\n if (!isBlazor()) {\n if (object.id === 'helper') {\n if (this.canTrigger) {\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg);\n this.connectorEndPointChangeEvent(arg);\n canAddHistory = true;\n }\n else {\n canAddHistory = false;\n }\n }\n else {\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg);\n this.connectorEndPointChangeEvent(arg);\n }\n }\n if (!isPreventHistory && canAddHistory) {\n this.commandHandler.startGroupAction();\n historyAdded = true;\n entry = {\n type: 'PositionChanged',\n redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n if (obj.nodes[0] && obj.nodes[0].processId) {\n entry_1 = {\n type: 'SizeChanged', category: 'Internal',\n undoObject: this.undoParentElement, redoObject: this.commandHandler.getSubProcess(args.source)\n };\n this.commandHandler.addHistoryEntry(entry_1);\n }\n this.commandHandler.addHistoryEntry(entry);\n }\n }\n }\n snappedPoint = this.commandHandler.snapPoint(this.prevPosition, this.currentPosition, 0, 0);\n this.commandHandler.removeSnap();\n this.commandHandler.removeHighlighter();\n if (!(args.source && this.currentTarget && canAllowDrop(this.currentTarget) &&\n this.commandHandler.isDroppable(args.source, this.currentTarget))) return [3 /*break*/, 7];\n this.commandHandler.drop(this.currentElement, this.currentTarget, this.currentPosition);\n if (this.currentTarget && this.currentTarget instanceof Connector) {\n if (this.commandHandler.diagram.enableConnectorSplit === true) {\n if (this.currentElement) {\n if (this.currentElement && this.currentElement instanceof Node) {\n this.commandHandler.connectorSplit(this.currentElement, this.currentTarget);\n }\n else if (this.currentElement instanceof Selector && !(this.commandHandler.PreventConnectorSplit)) {\n if (this.currentElement.nodes.length > 0) {\n this.commandHandler.connectorSplit(this.currentElement.nodes[0], this.currentTarget);\n this.commandHandler.PreventConnectorSplit = false;\n }\n }\n }\n }\n }\n arg = {\n element: args.source, target: this.currentTarget, position: this.currentPosition, cancel: false\n };\n if (!isBlazor()) return [3 /*break*/, 5];\n arg = getDropEventArguements(args, arg);\n return [4 /*yield*/, this.commandHandler.triggerEvent(DiagramEvent.drop, arg)];\n case 4:\n arg = (_a.sent()) || arg;\n return [3 /*break*/, 6];\n case 5:\n this.commandHandler.triggerEvent(DiagramEvent.drop, arg);\n _a.label = 6;\n case 6:\n if (!arg.cancel && args.source && this.commandHandler.isParentAsContainer(this.currentTarget)) {\n nodes = (args.source instanceof Selector) ? args.source.nodes : [args.source];\n isEndGroup = false;\n temp = void 0;\n for (i = 0; i < nodes.length; i++) {\n if (nodes[0].parentId === nodes[parseInt(i.toString(), 10)].parentId) {\n temp = true;\n }\n else {\n temp = false;\n break;\n }\n }\n for (i = 0; i < nodes.length; i++) {\n if (!nodes[parseInt(i.toString(), 10)].container && temp) {\n isEndGroup = true;\n this.commandHandler.updateLaneChildrenZindex(nodes[parseInt(i.toString(), 10)], this.currentTarget);\n this.commandHandler.dropChildToContainer(this.currentTarget, nodes[parseInt(i.toString(), 10)]);\n this.commandHandler.renderContainerHelper(nodes[parseInt(i.toString(), 10)]);\n }\n }\n if (historyAdded && this.commandHandler.isContainer && isEndGroup) {\n this.commandHandler.endGroupAction();\n }\n }\n _a.label = 7;\n case 7:\n if (args.source && this.currentTarget) {\n this.commandHandler.dropAnnotation(args.source, this.currentTarget);\n }\n this.commandHandler.updateSelector();\n if (historyAdded && !this.commandHandler.isContainer) {\n this.commandHandler.endGroupAction();\n }\n return [3 /*break*/, 9];\n case 8:\n redoObject.nodes.push(cloneObject(args.source));\n args.portId = this.portId;\n obj = cloneObject(redoObject);\n entry = {\n type: 'PortPositionChanged', objectId: this.portId,\n redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n _a.label = 9;\n case 9:\n this.commandHandler.updateBlazorSelector();\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n }\n });\n });\n };\n //EJ2-59309-While drag the connected node the connector endPointChange event does not get trigger\n MoveTool.prototype.connectorEndPointChangeEvent = function (arg, snappedPoint) {\n var selectedElement = arg.source;\n if (selectedElement instanceof Selector && selectedElement.nodes.length > 0) {\n for (var i = 0; i < selectedElement.nodes.length; i++) {\n var node = selectedElement.nodes[parseInt(i.toString(), 10)];\n if (node && node.inEdges.length > 0) {\n for (var j = 0; j < node.inEdges.length; j++) {\n var connector = this.commandHandler.diagram.getObject(node.inEdges[parseInt(j.toString(), 10)]);\n this.triggerEndPointEvent(connector, arg, snappedPoint, 'targetPointChange');\n }\n }\n if (node && node.outEdges.length > 0) {\n for (var j = 0; j < node.outEdges.length; j++) {\n var connector = this.commandHandler.diagram.getObject(node.outEdges[parseInt(j.toString(), 10)]);\n this.triggerEndPointEvent(connector, arg, snappedPoint, 'sourcePointChange');\n }\n }\n }\n }\n };\n MoveTool.prototype.triggerEndPointEvent = function (connector, arg, snappedPoint, eventName) {\n var args = {\n connector: connector, state: arg.state, targetNode: connector.targetID, targetPort: connector.targetPortID,\n sourceNode: connector.sourceID, sourcePort: connector.sourcePortID, oldValue: { x: connector.targetPoint.x, y: connector.targetPoint.y },\n newValue: { x: connector.targetPoint.x + (snappedPoint ? snappedPoint.x : 0), y: connector.targetPoint.y + (snappedPoint ? snappedPoint.y : 0) }, cancel: arg.cancel\n };\n this.commandHandler.triggerEvent((eventName === 'targetPointChange') ? DiagramEvent.targetPointChange : DiagramEvent.sourcePointChange, args);\n };\n MoveTool.prototype.isSelectionHasConnector = function (args) {\n if (args.nodes && args.connectors && args.nodes.length > 0 && args.connectors.length > 0 &&\n (args.width !== this.undoElement.width || args.height !== this.undoElement.height)) {\n return true;\n }\n return false;\n };\n MoveTool.prototype.getBlazorPositionChangeEventArgs = function (args, target) {\n args = {\n source: cloneBlazorObject(args.source), state: args.state, oldValue: args.oldValue, newValue: args.newValue,\n target: getObjectType(target) === Connector ? { connector: cloneBlazorObject(target) }\n : { node: cloneBlazorObject(target) },\n targetPosition: this.currentPosition, allowDrop: true, cancel: false\n };\n return args;\n };\n /* tslint:disable */\n /**\n * @param args\n * @private\n */\n MoveTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var isSame = false;\n var object;\n object = this.commandHandler.renderContainerHelper(args.source) ||\n args.source;\n if (object instanceof Node || object instanceof Connector) {\n if (object instanceof Node) {\n if (object.offsetX === this.undoElement.nodes[0].offsetX &&\n object.offsetY === this.undoElement.nodes[0].offsetY) {\n isSame = true;\n }\n }\n else {\n if (Point.equals(object.sourcePoint, this.undoElement.connectors[0].sourcePoint) &&\n Point.equals(object.targetPoint, this.undoElement.connectors[0].targetPoint)) {\n isSame = true;\n }\n }\n }\n else {\n if (object.wrapper.offsetX === this.undoElement.wrapper.offsetX &&\n object.wrapper.offsetY === this.undoElement.wrapper.offsetY) {\n isSame = true;\n }\n }\n var oldValues;\n if (object) {\n oldValues = { offsetX: object.wrapper.offsetX, offsetY: object.wrapper.offsetY };\n }\n var arg = {\n source: object, state: 'Start', oldValue: oldValues, newValue: oldValues,\n target: args.target, targetPosition: args.position, allowDrop: true, cancel: false\n };\n arg = {\n source: cloneBlazorObject(object), state: 'Start', oldValue: cloneBlazorObject(oldValues),\n newValue: cloneBlazorObject(oldValues),\n target: args.target, targetPosition: args.position, allowDrop: arg.allowDrop, cancel: arg.cancel\n };\n if (isSame && !isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg);\n this.connectorEndPointChangeEvent(arg);\n }\n this.currentPosition = args.position;\n if (this.objectType !== 'Port') {\n var x = this.currentPosition.x - this.prevPosition.x;\n var y = this.currentPosition.y - this.prevPosition.y;\n var diffX = this.initialOffset.x + (this.currentPosition.x - this.prevPosition.x);\n var diffY = this.initialOffset.y + (this.currentPosition.y - this.prevPosition.y);\n this.commandHandler.dragOverElement(args, this.currentPosition);\n this.commandHandler.disConnect(args.source);\n this.commandHandler.removeSnap();\n var oldValues_1;\n var newValues = void 0;\n var snappedPoint = this.commandHandler.snapPoint(this.prevPosition, this.currentPosition, diffX, diffY);\n this.initialOffset.x = diffX - snappedPoint.x;\n this.initialOffset.y = diffY - snappedPoint.y;\n if (object) {\n oldValues_1 = { offsetX: object.wrapper.offsetX, offsetY: object.wrapper.offsetY };\n newValues = {\n offsetX: object.wrapper.offsetX + snappedPoint.x,\n offsetY: object.wrapper.offsetY + snappedPoint.y\n };\n }\n if (this.currentTarget && args.target !== this.currentTarget) {\n this.commandHandler.removeChildFromBPmn(args.source, args.target, this.currentTarget);\n }\n this.currentTarget = args.target;\n var arg_1 = {\n source: object, state: 'Progress', oldValue: oldValues_1, newValue: newValues,\n target: args.target, targetPosition: args.position, allowDrop: true, cancel: false\n };\n if (isBlazor()) {\n arg_1 = this.getBlazorPositionChangeEventArgs(arg_1, args.target);\n }\n if (!isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg_1);\n this.canTrigger = true;\n this.connectorEndPointChangeEvent(arg_1, snappedPoint);\n }\n if (!arg_1.cancel && !this.canCancel) {\n this.blocked = !this.commandHandler.dragSelectedObjects(snappedPoint.x, snappedPoint.y);\n var blocked = !(this.commandHandler.mouseOver(this.currentElement, this.currentTarget, this.currentPosition));\n this.blocked = this.blocked || blocked;\n }\n this.commandHandler.removeStackHighlighter();\n this.commandHandler.renderStackHighlighter(args);\n if (this.currentTarget && (args.source !== this.currentTarget) &&\n this.commandHandler.isDroppable(args.source, this.currentTarget) && args.source.id !== 'helper') {\n var object_1 = (args.source instanceof Selector) ? args.source.nodes[0] : args.source;\n if ((!this.commandHandler.isParentAsContainer(object_1, true))\n && (object_1.shape.type !== 'SwimLane' && !object_1.shape.isPhase)) {\n if (this.currentTarget.isLane) {\n this.commandHandler.renderStackHighlighter(args, this.currentTarget);\n }\n else {\n this.commandHandler.drawHighlighter(this.currentTarget);\n }\n }\n }\n else {\n this.commandHandler.removeHighlighter();\n }\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_2 = this.getTooltipContent(args.source);\n var contentTemp = function () {\n return content_2;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'MoveTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n }\n else {\n var matrix = identityMatrix();\n var node = args.source;\n rotateMatrix(matrix, -node.rotateAngle, node.offsetX, node.offsetY);\n var prevPosition = transformPointByMatrix(matrix, { x: this.prevPosition.x, y: this.prevPosition.y });\n var position = transformPointByMatrix(matrix, { x: args.position.x, y: args.position.y });\n this.commandHandler.portDrag(args.source, args.sourceWrapper, position.x - prevPosition.x, position.y - prevPosition.y);\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n MoveTool.prototype.getTooltipContent = function (node) {\n return 'X:' + Math.round(node.wrapper.bounds.x) + ' ' + 'Y:' + Math.round(node.wrapper.bounds.y);\n };\n /**\n * @param args\n * @private\n */\n MoveTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /** @private */\n MoveTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.currentTarget = null;\n this.prevPosition = null;\n };\n return MoveTool;\n}(ToolBase));\nexport { MoveTool };\n/**\n * Rotates the selected objects\n */\nvar RotateTool = /** @class */ (function (_super) {\n __extends(RotateTool, _super);\n function RotateTool(commandHandler) {\n var _this = _super.call(this, commandHandler, true) || this;\n /** @private */\n _this.rotateStart = false;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseDown = function (args) {\n if (isBlazor()) {\n var object = void 0;\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n var oldValue = { rotateAngle: object.wrapper.rotateAngle };\n var arg = {\n source: cloneBlazorObject(args.source), state: 'Start', oldValue: oldValue, newValue: undefined, cancel: false\n };\n var temparg = arg;\n this.tempArgs = temparg;\n if (this.tempArgs && this.tempArgs.cancel) {\n this.canCancel = true;\n }\n }\n this.undoElement = cloneObject(args.source);\n if (this.undoElement.nodes[0] && this.undoElement.nodes[0].children) {\n var objects = [];\n var nodes = this.commandHandler.getAllDescendants(this.undoElement.nodes[0], objects);\n for (var i = 0; i < nodes.length; i++) {\n var node = this.commandHandler.cloneChild(nodes[parseInt(i.toString(), 10)].id);\n this.childTable[nodes[parseInt(i.toString(), 10)].id] = cloneObject(node);\n }\n }\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseUp = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var diagram, blazorInterop, blazor, object_2, oldValue, newValue, arg, blazorArgs, eventObj, object, oldValue, arg, obj, entry;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.checkPropertyValue();\n if (!isBlazor()) return [3 /*break*/, 3];\n diagram = 'diagram';\n blazorInterop = 'sfBlazor';\n blazor = 'Blazor';\n this.commandHandler.updatePropertiesToBlazor(args, false);\n object_2 = this.commandHandler.renderContainerHelper(args.source) || args.source;\n oldValue = { rotateAngle: this.tempArgs.oldValue.rotateAngle };\n newValue = { rotateAngle: object_2.wrapper.rotateAngle };\n arg = {\n state: 'Completed', oldValue: oldValue, newValue: newValue, cancel: false\n };\n blazorArgs = void 0;\n if (!(window && window[\"\" + blazor] && this.commandHandler[\"\" + diagram].rotateChange)) return [3 /*break*/, 2];\n eventObj = { 'EventName': 'rotateChange', args: JSON.stringify(arg) };\n return [4 /*yield*/, window[\"\" + blazorInterop].updateBlazorDiagramEvents(eventObj, this.commandHandler[\"\" + diagram])];\n case 1:\n blazorArgs = _a.sent();\n _a.label = 2;\n case 2:\n if (blazorArgs && blazorArgs.cancel) {\n this.commandHandler.enableCloneObject(true);\n this.commandHandler.ismouseEvents(true);\n this.canCancel = true;\n }\n if (this.canCancel) {\n this.commandHandler.insertBlazorObject(args.source);\n this.commandHandler.rotatePropertyChnage(this.tempArgs.oldValue.rotateAngle);\n }\n _a.label = 3;\n case 3:\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n if (this.undoElement.rotateAngle !== object.wrapper.rotateAngle) {\n oldValue = { rotateAngle: object.wrapper.rotateAngle };\n arg = {\n source: args.source, state: 'Completed', oldValue: oldValue,\n newValue: oldValue, cancel: false\n };\n if (!isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.rotateChange, arg);\n }\n obj = void 0;\n obj = cloneObject(args.source);\n entry = {\n type: 'RotationChanged', redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal',\n childTable: this.childTable\n };\n this.commandHandler.addHistoryEntry(entry);\n this.commandHandler.updateSelector();\n this.rotateStart = false;\n }\n this.commandHandler.updateBlazorSelector();\n this.canCancel = undefined;\n this.tempArgs = undefined;\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object;\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n //EJ2-837158-Resize - Event \"Start\" state triggers multiple times in rotate action\n if (this.undoElement.rotateAngle === object.wrapper.rotateAngle && !this.rotateStart) {\n var oldValue_1 = { rotateAngle: object.wrapper.rotateAngle };\n var arg_2 = {\n source: args.source, state: 'Start', oldValue: oldValue_1, newValue: oldValue_1, cancel: false\n };\n if (!isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.rotateChange, arg_2);\n }\n this.rotateStart = true;\n }\n this.currentPosition = args.position;\n var refPoint = { x: object.wrapper.offsetX, y: object.wrapper.offsetY };\n var angle = Point.findAngle(refPoint, this.currentPosition) + 90;\n var snapAngle = this.commandHandler.snapAngle(angle);\n angle = snapAngle !== 0 ? snapAngle : angle;\n angle = (angle + 360) % 360;\n var oldValue = { rotateAngle: object.wrapper.rotateAngle };\n var newValue = { rotateAngle: angle };\n var arg = {\n source: args.source, state: 'Progress', oldValue: oldValue,\n newValue: newValue, cancel: false\n };\n var arg1 = {\n source: cloneBlazorObject(args.source), state: 'Progress', oldValue: cloneBlazorObject(oldValue),\n newValue: cloneBlazorObject(newValue), cancel: arg.cancel\n };\n if (!isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.rotateChange, arg1);\n }\n if ((!isBlazor() && !arg1.cancel) || (isBlazor() && !this.canCancel)) {\n this.blocked = !(this.commandHandler.rotateSelectedItems(angle - object.wrapper.rotateAngle));\n }\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_3 = this.getTooltipContent(args.source);\n var contentTemp = function () {\n return content_3;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'RotateTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n return !this.blocked;\n };\n RotateTool.prototype.getTooltipContent = function (node) {\n return Math.round((node.rotateAngle % 360)).toString() + '\\xB0';\n };\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /** @private */\n RotateTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return RotateTool;\n}(ToolBase));\nexport { RotateTool };\n/**\n * Scales the selected objects\n */\nvar ResizeTool = /** @class */ (function (_super) {\n __extends(ResizeTool, _super);\n function ResizeTool(commandHandler, corner) {\n var _this = _super.call(this, commandHandler, true) || this;\n /** @private */\n _this.resizeStart = false;\n /** @private */\n _this.initialBounds = new Rect();\n _this.canCancel = false;\n _this.corner = corner;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ResizeTool.prototype.mouseDown = function (args) {\n var oldValues;\n if (isBlazor()) {\n this.commandHandler.insertSelectedObjects();\n this.startPosition = this.currentPosition = this.prevPosition = args.position;\n this.currentElement = args.source;\n this.initialBounds.x = args.source.wrapper.offsetX;\n this.initialBounds.y = args.source.wrapper.offsetY;\n this.initialBounds.height = args.source.wrapper.actualSize.height;\n this.initialBounds.width = args.source.wrapper.actualSize.width;\n if (args.source) {\n oldValues = {\n offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n };\n }\n var arg = {\n source: cloneBlazorObject(args.source), state: 'Start', oldValue: oldValues, newValue: cloneBlazorObject(this.currentElement), cancel: false\n };\n this.tempArgs = arg;\n }\n this.undoElement = cloneObject(args.source);\n this.undoParentElement = this.commandHandler.getSubProcess(args.source);\n _super.prototype.mouseDown.call(this, args);\n if (this.undoElement.nodes[0] && this.undoElement.nodes[0].children) {\n var elements = [];\n var nodes = this.commandHandler.getAllDescendants(this.undoElement.nodes[0], elements);\n for (var i = 0; i < nodes.length; i++) {\n var node = this.commandHandler.cloneChild(nodes[parseInt(i.toString(), 10)].id);\n this.childTable[nodes[parseInt(i.toString(), 10)].id] = cloneObject(node);\n }\n }\n this.commandHandler.checkSelection(args.source, this.corner);\n _super.prototype.mouseDown.call(this, args);\n this.initialBounds.x = args.source.wrapper.offsetX;\n this.initialBounds.y = args.source.wrapper.offsetY;\n this.initialBounds.height = args.source.wrapper.actualSize.height;\n this.initialBounds.width = args.source.wrapper.actualSize.width;\n };\n /**\n * @param args\n * @param isPreventHistory\n * @param args\n * @param isPreventHistory\n * @private\n */\n ResizeTool.prototype.mouseUp = function (args, isPreventHistory) {\n return __awaiter(this, void 0, void 0, function () {\n var diagram, blazorInterop, blazor, obj, oldValues, arg, blazorArgs, eventObj, scaleWidth, scaleHeight, object, deltaValues, oldValue, arg, obj, entry, entry_2;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!isBlazor()) return [3 /*break*/, 4];\n diagram = 'diagram';\n blazorInterop = 'sfBlazor';\n blazor = 'Blazor';\n this.commandHandler.updatePropertiesToBlazor(args, false);\n obj = cloneObject(args.source);\n oldValues = {\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height,\n offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY\n };\n arg = {\n oldValue: this.tempArgs.oldValue, newValue: oldValues, cancel: false,\n state: 'Completed'\n };\n if (!!this.canCancel) return [3 /*break*/, 3];\n blazorArgs = void 0;\n if (!(window && window[\"\" + blazor] && this.commandHandler[\"\" + diagram].sizeChange)) return [3 /*break*/, 2];\n eventObj = { 'EventName': 'sizeChange', args: JSON.stringify(arg) };\n return [4 /*yield*/, window[\"\" + blazorInterop].updateBlazorDiagramEvents(eventObj, this.commandHandler[\"\" + diagram])];\n case 1:\n blazorArgs = _a.sent();\n _a.label = 2;\n case 2:\n if (blazorArgs && blazorArgs.cancel) {\n this.commandHandler.enableCloneObject(true);\n this.commandHandler.ismouseEvents(true);\n this.commandHandler.insertBlazorObject(args.source);\n scaleWidth = this.tempArgs.oldValue.width / obj.wrapper.actualSize.width;\n scaleHeight = this.tempArgs.oldValue.height / obj.wrapper.actualSize.height;\n this.commandHandler.scaleSelectedItems(scaleWidth, scaleHeight, this.getPivot(this.corner));\n }\n _a.label = 3;\n case 3:\n this.tempArgs = undefined;\n this.canCancel = undefined;\n _a.label = 4;\n case 4:\n this.checkPropertyValue();\n this.commandHandler.removeSnap();\n this.commandHandler.updateSelector();\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n if ((this.undoElement.offsetX !== object.wrapper.offsetX || this.undoElement.offsetY !== object.wrapper.offsetY ||\n this.undoElement.width !== object.wrapper.bounds.width || this.undoElement.height !== object.wrapper.bounds.height)) {\n if (!isBlazor()) {\n deltaValues = this.updateSize(args.source, this.currentPosition, this.prevPosition, this.corner, this.initialBounds);\n this.blocked = this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.currentPosition, this.prevPosition, object);\n oldValue = {\n offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n };\n arg = {\n source: cloneBlazorObject(args.source), state: 'Completed',\n oldValue: oldValue, newValue: oldValue, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.sizeChange, arg);\n }\n obj = cloneObject(args.source);\n entry = {\n type: 'SizeChanged', redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal',\n childTable: this.childTable\n };\n this.resizeStart = false;\n if (!isPreventHistory) {\n this.commandHandler.startGroupAction();\n this.commandHandler.addHistoryEntry(entry);\n if (obj.nodes[0] && obj.nodes[0].processId) {\n entry_2 = {\n type: 'SizeChanged', redoObject: this.commandHandler.getSubProcess(args.source),\n undoObject: this.undoParentElement, category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry_2);\n }\n this.commandHandler.endGroupAction();\n }\n }\n this.commandHandler.updateBlazorSelector();\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/, !this.blocked];\n }\n });\n });\n };\n /**\n * @param args\n * @private\n */\n ResizeTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object;\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n //EJ2-837158-Resize - Event \"Start\" state triggers multiple times in resize\n if (this.undoElement.offsetX === object.wrapper.offsetX && this.undoElement.offsetY === object.wrapper.offsetY && !this.resizeStart) {\n var oldValue = {\n offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY,\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n };\n var arg = {\n source: args.source, state: 'Start', oldValue: oldValue, newValue: this.currentElement, cancel: false\n };\n if (!isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.sizeChange, arg);\n }\n this.resizeStart = true;\n }\n this.currentPosition = args.position;\n var x = this.currentPosition.x - this.startPosition.x;\n var y = this.currentPosition.y - this.startPosition.y;\n var changes = { x: x, y: y };\n changes = rotatePoint(-this.currentElement.wrapper.rotateAngle, undefined, undefined, changes);\n var sx = (this.currentElement.wrapper.actualSize.width + changes.x) / this.currentElement.wrapper.actualSize.width;\n var sy = (this.currentElement.wrapper.actualSize.height + changes.y) / this.currentElement.wrapper.actualSize.height;\n changes = this.getChanges(changes);\n this.commandHandler.removeSnap();\n var deltaValues = this.updateSize(args.source, this.startPosition, this.currentPosition, this.corner, this.initialBounds);\n this.blocked = !(this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.startPosition, this.currentPosition, object));\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_4 = this.getTooltipContent(args.source);\n //Task 834121: Content-Security-Policy support for diagram\n var contentTemp = function () {\n return content_4;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'ResizeTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ResizeTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ResizeTool.prototype.getTooltipContent = function (node) {\n return 'W:' + Math.round(node.wrapper.bounds.width) + ' ' + 'H:' + Math.round(node.wrapper.bounds.height);\n };\n ResizeTool.prototype.getChanges = function (change) {\n switch (this.corner) {\n case 'ResizeEast':\n return { x: change.x, y: 0 };\n case 'ResizeSouthEast':\n return change;\n case 'ResizeSouth':\n return { x: 0, y: change.y };\n case 'ResizeNorth':\n return { x: 0, y: -change.y };\n case 'ResizeNorthEast':\n return { x: change.x, y: -change.y };\n case 'ResizeNorthWest':\n return { x: -change.x, y: -change.y };\n case 'ResizeWest':\n return { x: -change.x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -change.x, y: change.y };\n }\n return change;\n };\n /**\n * Updates the size with delta width and delta height using scaling.\n */\n /**\n * Aspect ratio used to resize the width or height based on resizing the height or width\n *\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n */\n ResizeTool.prototype.scaleObjects = function (deltaWidth, deltaHeight, corner, startPoint, endPoint, source) {\n if (source instanceof Selector && source.nodes.length === 1 && source.nodes[0].constraints & NodeConstraints.AspectRatio) {\n if (corner === 'ResizeWest' || corner === 'ResizeEast' || corner === 'ResizeNorth' || corner === 'ResizeSouth') {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n deltaHeight = deltaWidth = Math.max(deltaHeight === 1 ? 0 : deltaHeight, deltaWidth === 1 ? 0 : deltaWidth);\n }\n }\n else if (startPoint !== endPoint) {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n else {\n deltaHeight = deltaWidth = 0;\n }\n }\n var oldValue = {\n offsetX: source.offsetX, offsetY: source.offsetY,\n width: source.width, height: source.height\n };\n this.blocked = this.commandHandler.scaleSelectedItems(deltaWidth, deltaHeight, this.getPivot(this.corner));\n var newValue = {\n offsetX: source.offsetX, offsetY: source.offsetY,\n width: source.width, height: source.height\n };\n var arg;\n arg = { source: source, state: 'Progress', oldValue: oldValue, newValue: newValue, cancel: false };\n var arg1;\n arg1 = {\n source: cloneBlazorObject(source), state: 'Progress',\n oldValue: cloneBlazorObject(oldValue), newValue: cloneBlazorObject(newValue), cancel: arg.cancel\n };\n if (!isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.sizeChange, arg1);\n }\n if (arg1.cancel || this.canCancel) {\n this.commandHandler.scaleSelectedItems(1 / deltaWidth, 1 / deltaHeight, this.getPivot(this.corner));\n }\n return this.blocked;\n };\n return ResizeTool;\n}(ToolBase));\nexport { ResizeTool };\n/**\n * Draws a node that is defined by the user\n */\nvar NodeDrawingTool = /** @class */ (function (_super) {\n __extends(NodeDrawingTool, _super);\n function NodeDrawingTool(commandHandler, sourceObject) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n this.commandHandler.setFocus();\n this.triggerElementDrawEvent(args.source, 'Start', 'Node', this.getShapeType(), true);\n };\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var checkBoundaryConstraints;\n var node = {\n offsetX: this.currentPosition.x, width: 3, height: 3,\n offsetY: this.currentPosition.y\n };\n if (!this.drawingObject) {\n this.drawingObject = this.commandHandler.drawObject(node);\n }\n this.triggerElementDrawEvent(this.drawingObject, 'Progress', 'Node', this.getShapeType(), false);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, rect);\n if (checkBoundaryConstraints) {\n this.commandHandler.updateNodeDimension(this.drawingObject, rect);\n }\n }\n return checkBoundaryConstraints;\n };\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var checkBoundaryConstraints;\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, rect);\n if (this.drawingObject && this.drawingObject instanceof Node) {\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Node', this.getShapeType(), false);\n this.drawingObject = null;\n }\n this.commandHandler.updateBlazorSelector();\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n };\n /** @private */\n NodeDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return NodeDrawingTool;\n}(ToolBase));\nexport { NodeDrawingTool };\n/**\n * Draws a connector that is defined by the user\n */\nvar ConnectorDrawingTool = /** @class */ (function (_super) {\n __extends(ConnectorDrawingTool, _super);\n function ConnectorDrawingTool(commandHandler, endPoint, sourceObject) {\n var _this = _super.call(this, commandHandler, endPoint) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseDown = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n this.commandHandler.setFocus();\n this.triggerElementDrawEvent(args.source, 'Start', 'Connector', this.commandHandler.diagram.drawingObject.type, true);\n return [2 /*return*/];\n });\n });\n };\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseMove = function (args) {\n this.commandHandler.enableServerDataBinding(false);\n if (this.inAction) {\n var connector = {\n sourcePoint: this.currentPosition, targetPoint: this.currentPosition\n };\n if (!this.drawingObject) {\n this.drawingObject = this.commandHandler.drawObject(connector);\n }\n args.source = this.drawingObject;\n this.triggerElementDrawEvent(args.source, 'Progress', 'Connector', this.drawingObject.type, false);\n if (((args.target && args.target instanceof Node) || (args.actualObject && args.sourceWrapper && checkPort(args.actualObject, args.sourceWrapper)))\n && (this.endPoint !== 'ConnectorTargetEnd' || (canInConnect(args.target)))) {\n this.commandHandler.connect(this.endPoint, args);\n }\n this.endPoint = 'ConnectorTargetEnd';\n }\n if (!this.inAction) {\n this.commandHandler.updateSelector();\n if (args.source && args.sourceWrapper) {\n this.commandHandler.renderHighlighter(args, true);\n }\n }\n _super.prototype.mouseMove.call(this, args);\n this.commandHandler.enableServerDataBinding(true);\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseUp = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.commandHandler.enableServerDataBinding(false);\n this.checkPropertyValue();\n if (this.drawingObject && this.drawingObject instanceof Connector) {\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Connector', this.drawingObject.type, false);\n this.drawingObject = null;\n }\n this.commandHandler.updateBlazorSelector();\n this.inAction = false;\n this.commandHandler.enableServerDataBinding(true);\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n });\n });\n };\n /** @private */\n ConnectorDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return ConnectorDrawingTool;\n}(ConnectTool));\nexport { ConnectorDrawingTool };\nvar TextDrawingTool = /** @class */ (function (_super) {\n __extends(TextDrawingTool, _super);\n function TextDrawingTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n TextDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.commandHandler.clearSelection();\n var node = {\n shape: { type: 'Text' },\n offsetX: this.currentPosition.x,\n offsetY: this.currentPosition.y\n };\n if (!args.source) {\n this.drawingNode = this.commandHandler.drawObject(node);\n }\n };\n /**\n * @param args\n * @private\n */\n TextDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (!this.drawingNode) {\n var node = {\n shape: { type: 'Text' }, offsetX: this.currentPosition.x, width: 30, height: 30,\n // EJ2-42640-Text size is different if Text Node is created over another diagram commited by sivakumar sekar\n // commanded style property and added it after the object is drawn\n // style: { strokeDashArray: '2 2', fill: 'transparent' },\n offsetY: this.currentPosition.y\n };\n this.drawingNode = this.commandHandler.drawObject(node);\n this.drawingNode.style.strokeDashArray = '2 2';\n this.drawingNode.style.fill = 'transparent';\n }\n else {\n this.drawingNode.style.strokeColor = 'black';\n this.drawingNode.style.strokeDashArray = '2 2';\n this.drawingNode.style.fill = 'transparent';\n }\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n this.commandHandler.updateNodeDimension(this.drawingNode, rect);\n }\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n TextDrawingTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n if (this.drawingNode) {\n this.drawingNode.style.strokeColor = 'none';\n this.drawingNode.style.fill = 'none';\n }\n else {\n this.drawingNode = args.source;\n }\n if (this.drawingNode && (this.drawingNode instanceof Node || this.drawingNode instanceof Connector)) {\n this.commandHandler.addText(this.drawingNode, this.currentPosition);\n }\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n };\n /** @private */\n TextDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return TextDrawingTool;\n}(ToolBase));\nexport { TextDrawingTool };\n/**\n * Pans the diagram control on drag\n */\nvar ZoomPanTool = /** @class */ (function (_super) {\n __extends(ZoomPanTool, _super);\n function ZoomPanTool(commandHandler, zoom) {\n var _this = _super.call(this, commandHandler) || this;\n _this.zooming = zoom;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ZoomPanTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n this.commandHandler.setBlazorDiagramProps(true);\n };\n /**\n * @param args\n * @private\n */\n ZoomPanTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n if (!this.zooming && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var difX = this.currentPosition.x - this.prevPosition.x;\n var difY = this.currentPosition.y - this.prevPosition.y;\n this.commandHandler.scroll(difX, difY, this.currentPosition);\n }\n else if (args.moveTouches && args.moveTouches.length && args.moveTouches.length >= 2) {\n var startTouch0 = args.startTouches[0];\n var startTouch1 = args.startTouches[1];\n var moveTouch0 = args.moveTouches[0];\n var moveTouch1 = args.moveTouches[1];\n var scale = this.getDistance(moveTouch0, moveTouch1) / this.getDistance(startTouch0, startTouch1);\n var focusPoint = args.position;\n this.commandHandler.zoom(scale, 0, 0, focusPoint);\n this.updateTouch(startTouch0, moveTouch0);\n this.updateTouch(startTouch1, moveTouch1);\n }\n }\n this.commandHandler.dataBinding();\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ZoomPanTool.prototype.mouseUp = function (args) {\n this.commandHandler.setBlazorDiagramProps(false);\n this.checkPropertyValue();\n this.commandHandler.updatePanState(false);\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n };\n /** @private */\n ZoomPanTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n ZoomPanTool.prototype.getDistance = function (touch1, touch2) {\n var x = touch2.pageX - touch1.pageX;\n var y = touch2.pageY - touch1.pageY;\n return Math.sqrt((x * x) + (y * y));\n };\n ZoomPanTool.prototype.updateTouch = function (startTouch, moveTouch) {\n startTouch.pageX = moveTouch.pageX;\n startTouch.pageY = moveTouch.pageY;\n };\n return ZoomPanTool;\n}(ToolBase));\nexport { ZoomPanTool };\n/**\n * Animate the layout during expand and collapse\n */\nvar ExpandTool = /** @class */ (function (_super) {\n __extends(ExpandTool, _super);\n function ExpandTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n ExpandTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.commandHandler.initExpand(args);\n _super.prototype.mouseUp.call(this, args);\n };\n return ExpandTool;\n}(ToolBase));\nexport { ExpandTool };\n/**\n * Opens the annotation hypeLink at mouse up\n */\nvar LabelTool = /** @class */ (function (_super) {\n __extends(LabelTool, _super);\n function LabelTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n LabelTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var tab = '_blank';\n var windowOption = '';\n var windowHeight = window.innerHeight;\n var windowWidth = window.innerWidth;\n var screenTop = window.screenTop;\n var screenLeft = window.screenLeft;\n if (args.sourceWrapper.hyperlink.hyperlinkOpenState === 'CurrentTab') {\n tab = '_self';\n }\n else if (args.sourceWrapper.hyperlink.hyperlinkOpenState === 'NewWindow') {\n windowOption = 'height=' + windowHeight + ',width=' + windowWidth + ',top=' + screenTop + ',left=' + screenLeft;\n }\n var win = window.open(args.sourceWrapper.hyperlink.link, tab, windowOption);\n win.focus();\n _super.prototype.mouseUp.call(this, args);\n };\n return LabelTool;\n}(ToolBase));\nexport { LabelTool };\n/**\n * Draws a Polygon shape node dynamically using polygon Tool\n */\nvar PolygonDrawingTool = /** @class */ (function (_super) {\n __extends(PolygonDrawingTool, _super);\n function PolygonDrawingTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n PolygonDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n if (!this.drawingObject) {\n this.startPoint = { x: this.startPosition.x, y: this.startPosition.y };\n var node = {\n offsetX: this.currentPosition.x,\n offsetY: this.currentPosition.y,\n width: 5, height: 5,\n style: { strokeColor: 'black', strokeWidth: 1 },\n shape: {\n type: 'Basic',\n shape: 'Polygon',\n points: [{ x: this.startPoint.x, y: this.startPoint.y }, { x: this.currentPosition.x, y: this.currentPosition.y }]\n }\n };\n if (isBlazor() && node.shape.type === 'Basic') {\n node.shape.basicShape = 'Polygon';\n }\n this.drawingObject = this.commandHandler.drawObject(node);\n }\n else {\n var pt = void 0;\n var obj = this.drawingObject.shape;\n pt = obj.points[obj.points.length - 1];\n pt = { x: pt.x, y: pt.y };\n this.drawingObject.shape.points.push(pt);\n }\n };\n /**\n * @param args\n * @private\n */\n PolygonDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n var obj = this.drawingObject.shape;\n if (this.drawingObject && this.currentPosition) {\n obj.points[obj.points.length - 1].x = this.currentPosition.x;\n obj.points[obj.points.length - 1].y = this.currentPosition.y;\n this.drawingObject.wrapper.children[0].data = getPolygonPath(this.drawingObject.shape.points);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var region = Rect.toBounds(this.drawingObject.shape.points);\n this.commandHandler.updateNodeDimension(this.drawingObject, region);\n }\n }\n }\n return true;\n };\n /**\n * @param args\n * @param dblClickArgs\n * @param args\n * @param dblClickArgs\n * @private\n */\n PolygonDrawingTool.prototype.mouseUp = function (args, dblClickArgs) {\n this.checkPropertyValue();\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n this.inAction = false;\n if (this.drawingObject) {\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n }\n }\n this.endAction();\n };\n /**\n * @param args\n * @private\n */\n PolygonDrawingTool.prototype.mouseWheel = function (args) {\n _super.prototype.mouseWheel.call(this, args);\n this.mouseMove(args);\n };\n /** @private */\n PolygonDrawingTool.prototype.endAction = function () {\n this.inAction = false;\n this.drawingObject = null;\n };\n return PolygonDrawingTool;\n}(ToolBase));\nexport { PolygonDrawingTool };\n/**\n * Draws a PolyLine Connector dynamically using PolyLine Drawing Tool\n */\nvar PolyLineDrawingTool = /** @class */ (function (_super) {\n __extends(PolyLineDrawingTool, _super);\n function PolyLineDrawingTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n var obj = this.drawingObject;\n obj.targetPoint = this.currentPosition;\n this.commandHandler.updateConnectorPoints(obj);\n }\n return true;\n };\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n if (!this.drawingObject) {\n var connector = {\n id: 'Connector',\n type: 'Straight',\n sourcePoint: this.currentPosition,\n targetPoint: this.currentPosition\n };\n this.drawingObject = this.commandHandler.drawObject(connector);\n }\n else {\n var drawObject = this.drawingObject;\n var segment = void 0;\n segment = new StraightSegment(drawObject, 'segments', { type: 'Straight' }, true);\n segment.point = this.currentPosition;\n drawObject.segments[drawObject.segments.length - 1] = segment;\n }\n };\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseWheel = function (args) {\n _super.prototype.mouseWheel.call(this, args);\n this.mouseMove(args);\n };\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n if (this.drawingObject) {\n var drawObject = this.drawingObject;\n drawObject.segments[drawObject.segments.length - 1].point = { x: 0, y: 0 };\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n }\n }\n this.endAction();\n };\n /** @private */\n PolyLineDrawingTool.prototype.endAction = function () {\n this.drawingObject = null;\n this.inAction = false;\n };\n return PolyLineDrawingTool;\n}(ToolBase));\nexport { PolyLineDrawingTool };\nvar LabelDragTool = /** @class */ (function (_super) {\n __extends(LabelDragTool, _super);\n function LabelDragTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.undoElement = cloneObject(args.source);\n this.annotationId = args.sourceWrapper.id;\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var difx = this.currentPosition.x - this.prevPosition.x;\n var dify = this.currentPosition.y - this.prevPosition.y;\n var node = args.source;\n if (node instanceof Node) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, -node.rotateAngle, 0, 0);\n var diff = transformPointByMatrix(matrix, { x: difx, y: dify });\n difx = diff.x;\n dify = diff.y;\n }\n if (this.inAction) {\n this.commandHandler.labelDrag(args.source, args.sourceWrapper, difx, dify);\n this.commandHandler.updateSelector();\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var redoValue = args.source;\n this.inAction = false;\n var entryValue = {\n type: 'AnnotationPropertyChanged',\n objectId: this.annotationId, undoObject: cloneObject(this.undoElement),\n category: 'Internal', redoObject: cloneObject(redoValue)\n };\n this.commandHandler.addHistoryEntry(entryValue);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n return LabelDragTool;\n}(ToolBase));\nexport { LabelDragTool };\nvar LabelResizeTool = /** @class */ (function (_super) {\n __extends(LabelResizeTool, _super);\n function LabelResizeTool(commandHandler, corner) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.corner = corner;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n var object = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n this.annotationId = args.source.wrapper.children[0].id;\n this.undoElement = cloneObject(object);\n var annotation = args.source.wrapper.children[0];\n this.initialBounds = {\n x: annotation.offsetX,\n y: annotation.offsetY,\n width: annotation.actualSize.width,\n height: annotation.actualSize.height\n };\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n this.resizeObject(args);\n }\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var redoObject = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n this.inAction = false;\n var entry = {\n type: 'AnnotationPropertyChanged', objectId: this.annotationId,\n redoObject: cloneObject(redoObject), undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.resizeObject = function (args) {\n var object;\n object = (args.source.nodes.length) ? args.source.nodes[0] : args.source.connectors[0];\n var textElement = args.source.wrapper.children[0];\n var deltaWidth;\n var deltaHeight;\n var center = { x: textElement.offsetX, y: textElement.offsetY };\n var rotateAngle = textElement.rotateAngle;\n rotateAngle += (object instanceof Node) ? object.rotateAngle : 0;\n rotateAngle = (rotateAngle + 360) % 360;\n var trans = identityMatrix();\n rotateMatrix(trans, rotateAngle, center.x, center.y);\n var corner = this.corner.slice(5);\n var pivot = this.updateSize(textElement, this.startPosition, this.currentPosition, corner, this.initialBounds, rotateAngle);\n var x = textElement.offsetX - textElement.actualSize.width * textElement.pivot.x;\n var y = textElement.offsetY - textElement.actualSize.height * textElement.pivot.y;\n var pivotPoint = this.getPivot(corner);\n pivotPoint = { x: x + textElement.actualSize.width * pivotPoint.x, y: y + textElement.actualSize.height * pivotPoint.y };\n var point = transformPointByMatrix(trans, pivotPoint);\n pivot.x = point.x;\n pivot.y = point.y;\n deltaWidth = pivot.width;\n deltaHeight = pivot.height;\n deltaWidth = (deltaWidth < 0) ? 1 : deltaWidth;\n deltaHeight = (deltaHeight < 0) ? 1 : deltaHeight;\n this.commandHandler.labelResize(object, args.source.annotation, deltaWidth, deltaHeight, pivot, args.source);\n this.commandHandler.updateSelector();\n };\n return LabelResizeTool;\n}(ToolBase));\nexport { LabelResizeTool };\nvar LabelRotateTool = /** @class */ (function (_super) {\n __extends(LabelRotateTool, _super);\n function LabelRotateTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.annotationId = args.source.wrapper.children[0].id;\n var object = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n this.undoElement = cloneObject(object);\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (args.source) {\n if (this.inAction) {\n var object = args.source.nodes[0] ? args.source.nodes[0] :\n args.source.connectors[0];\n var annotation = void 0;\n annotation = (args.source.annotation);\n this.commandHandler.labelRotate(object, annotation, this.currentPosition, args.source);\n this.commandHandler.updateSelector();\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.inAction = false;\n var redoEntry = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n var entryObject = {\n type: 'AnnotationPropertyChanged', objectId: this.annotationId,\n redoObject: cloneObject(redoEntry),\n undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entryObject);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n return LabelRotateTool;\n}(ToolBase));\nexport { LabelRotateTool };\n/**\n * EJ2-33302 - Freehand drawing support in diagram control.\n */\nvar FreeHandTool = /** @class */ (function (_super) {\n __extends(FreeHandTool, _super);\n function FreeHandTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * mouseMove - Collect the points using current mouse position and convert it into pathData.\n * @param args\n * @private\n */\n FreeHandTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n var obj = this.drawingObject.shape;\n if (this.drawingObject && this.currentPosition) {\n var pt = this.currentPosition;\n obj.points.push(pt);\n this.drawingObject.wrapper.children[0].data = getFreeHandPath(this.drawingObject.shape.points);\n obj.data = getFreeHandPath(obj.points);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var region = Rect.toBounds(this.drawingObject.shape.points);\n this.commandHandler.updateNodeDimension(this.drawingObject, region);\n }\n }\n }\n return true;\n };\n /**\n * @param args\n * @private\n */\n FreeHandTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n if (!this.drawingObject) {\n this.startPoint = { x: this.startPosition.x, y: this.startPosition.y };\n var node = {\n offsetX: this.currentPosition.x,\n offsetY: this.currentPosition.y,\n width: 5, height: 5,\n style: { strokeColor: 'black', strokeWidth: 1, fill: 'transparent' },\n shape: {\n type: 'Path',\n points: [{ x: this.startPoint.x, y: this.startPoint.y }, { x: this.currentPosition.x, y: this.currentPosition.y }]\n }\n };\n this.drawingObject = this.commandHandler.drawObject(node);\n }\n };\n /**\n * mouseUp - Remove the drawn object. Reduce and smoothen the collected points and create\n * a bezier connector using the smoothened points.\n * @param args\n * @private\n */\n FreeHandTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var tolerance = 10;\n var smoothValue = 0.5;\n if (this.inAction) {\n this.inAction = false;\n if (this.drawingObject) {\n var obj = this.drawingObject.shape;\n var points = obj.points;\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n var prevId = this.drawingObject.id;\n var prevObj = this.commandHandler.diagram.nameTable[\"\" + prevId];\n this.commandHandler.diagram.remove(prevObj);\n points = this.pointReduction(points, tolerance);\n //EJ2-69816 - Added below code to set the allow segment reset as false to avoid the unwanted segment reset.\n var newObj = {\n id: 'newConnector' + randomId(), type: 'Bezier',\n sourcePoint: { x: points[0].x, y: points[0].y }, targetPoint: { x: points[points.length - 1].x, y: points[points.length - 1].y },\n segments: [], targetDecorator: { shape: 'None' }, bezierSettings: { allowSegmentsReset: false }\n };\n this.drawingObject = this.commandHandler.drawObject(newObj);\n this.drawingObject = this.bezierCurveSmoothness(points, smoothValue, this.drawingObject, obj);\n this.commandHandler.updateConnectorPoints(this.drawingObject);\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n //(EJ2-70838)- Added code to resolve style property not added dynamically for freehand connector\n // Added code to resolve style property not added dynamically for freehand connector\n _super.prototype.mouseUp.call(this, args);\n }\n }\n };\n /**\n * Reduce the collected points based on tolerance value.\n * @param points\n * @param tolerance\n * @returns points\n */\n FreeHandTool.prototype.pointReduction = function (points, tolerance) {\n if (points === null || points.length < 3) {\n return points;\n }\n var firstPoint = 0;\n var lastPoint = points.length - 1;\n var pointIndex = [];\n pointIndex.push(firstPoint);\n pointIndex.push(lastPoint);\n while (points[parseInt(firstPoint.toString(), 10)] === (points[parseInt(lastPoint.toString(), 10)])) {\n lastPoint--;\n }\n this.reduction(points, firstPoint, lastPoint, tolerance, pointIndex);\n var returnedPoints = [];\n pointIndex.sort(function (a, b) { return a - b; });\n pointIndex.forEach(function (element) {\n returnedPoints.push(points[parseInt(element.toString(), 10)]);\n });\n return returnedPoints;\n };\n FreeHandTool.prototype.reduction = function (points, firstPoint, lastPoint, tolerance, pointIndex) {\n var maxDistance = 0;\n var largestPointIndex = 0;\n for (var i = firstPoint; i < lastPoint; i++) {\n var distance = this.perpendicularDistance(points[parseInt(firstPoint.toString(), 10)], points[parseInt(lastPoint.toString(), 10)], points[parseInt(i.toString(), 10)]);\n if (distance > maxDistance) {\n maxDistance = distance;\n largestPointIndex = i;\n }\n }\n if (maxDistance > tolerance && largestPointIndex !== 0) {\n pointIndex.push(largestPointIndex);\n this.reduction(points, firstPoint, largestPointIndex, tolerance, pointIndex);\n this.reduction(points, largestPointIndex, lastPoint, tolerance, pointIndex);\n }\n };\n /**\n * Calculate the perpendicular distance of each point with first and last points\n * @param point1\n * @param point2\n * @param point3\n * @returns\n */\n FreeHandTool.prototype.perpendicularDistance = function (point1, point2, point3) {\n var area = Math.abs(.5 * ((point1.x * point2.y - point2.x * point1.y) +\n (point2.x * point3.y - point3.x * point2.y) + (point3.x * point1.y - point1.x * point3.y)));\n var base = Math.sqrt(Math.pow(point1.x - point2.x, 2) + Math.pow(point1.y - point2.y, 2));\n var height = area / base * 2;\n return height;\n };\n /**\n * Smoothen the bezier curve based on the points and smoothValue.\n * @param points\n * @param smoothValue\n * @param drawingObject\n * @param obj\n * @returns drawingObject\n */\n FreeHandTool.prototype.bezierCurveSmoothness = function (points, smoothValue, drawingObject, obj) {\n if (points.length < 3) {\n return drawingObject;\n }\n for (var i = 0; i < points.length - 1; i++) {\n var pointx1 = points[parseInt(i.toString(), 10)].x;\n var pointy1 = points[parseInt(i.toString(), 10)].y;\n var pointx2 = points[i + 1].x;\n var pointy2 = points[i + 1].y;\n var pointx0 = void 0;\n var pointy0 = void 0;\n if (i === 0) {\n var previousPoint = points[parseInt(i.toString(), 10)];\n pointx0 = previousPoint.x;\n pointy0 = previousPoint.y;\n }\n else {\n pointx0 = points[i - 1].x;\n pointy0 = points[i - 1].y;\n }\n var pointx3 = void 0, pointy3 = void 0;\n if (i === points.length - 2) {\n var nextPoint = points[i + 1];\n pointx3 = nextPoint.x;\n pointy3 = nextPoint.y;\n }\n else {\n pointx3 = points[i + 2].x;\n pointy3 = points[i + 2].y;\n }\n var xc1 = (pointx0 + pointx1) / 2.0;\n var yc1 = (pointy0 + pointy1) / 2.0;\n var xc2 = (pointx1 + pointx2) / 2.0;\n var yc2 = (pointy1 + pointy2) / 2.0;\n var xc3 = (pointx2 + pointx3) / 2.0;\n var yc3 = (pointy2 + pointy3) / 2.0;\n var point0 = {};\n var point1 = {};\n var point2 = {};\n var point3 = {};\n point0.x = pointx0;\n point0.y = pointy0;\n point1.x = pointx1;\n point1.y = pointy1;\n point2.x = pointx2;\n point2.y = pointy2;\n point3.x = pointx3;\n point3.y = pointy3;\n var len1 = Point.findLength(point0, point1);\n var len2 = Point.findLength(point1, point2);\n var len3 = Point.findLength(point2, point3);\n var k1 = len1 / (len1 + len2);\n var k2 = len2 / (len2 + len3);\n var xm1 = xc1 + (xc2 - xc1) * k1;\n var ym1 = yc1 + (yc2 - yc1) * k1;\n var xm2 = xc2 + (xc3 - xc2) * k2;\n var ym2 = yc2 + (yc3 - yc2) * k2;\n var Controlpointx1 = xm1 + (xc2 - xm1) * smoothValue + pointx1 - xm1;\n var Controlpointy1 = ym1 + (yc2 - ym1) * smoothValue + pointy1 - ym1;\n var Controlpointx2 = xm2 + (xc2 - xm2) * smoothValue + pointx2 - xm2;\n var Controlpointy2 = ym2 + (yc2 - ym2) * smoothValue + pointy2 - ym2;\n var segment = new BezierSegment(obj, 'segments', { type: 'Bezier' }, true);\n var cnPt1 = { x: Controlpointx1, y: Controlpointy1 };\n var cnPt2 = { x: Controlpointx2, y: Controlpointy2 };\n var segSourcePoint = { x: pointx1, y: pointy1 };\n var segTargetPoint = { x: pointx2, y: pointy2 };\n segment.type = 'Bezier';\n drawingObject.segments[parseInt(i.toString(), 10)] = segment;\n if (i === 0) {\n cnPt1 = { x: pointx1, y: pointy1 };\n }\n if (i === points.length - 2) {\n cnPt2 = { x: pointx2, y: pointy2 };\n }\n drawingObject.segments[parseInt(i.toString(), 10)].vector1 = { angle: findAngle(segSourcePoint, cnPt1), distance: Point.findLength(segSourcePoint, cnPt1) };\n drawingObject.segments[parseInt(i.toString(), 10)].vector2 = { angle: findAngle(segTargetPoint, cnPt2), distance: Point.findLength(segTargetPoint, cnPt2) };\n drawingObject.segments[parseInt(i.toString(), 10)].point = segTargetPoint;\n }\n return drawingObject;\n };\n return FreeHandTool;\n}(ToolBase));\nexport { FreeHandTool };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable no-self-assign */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { Property, Complex, Collection, ChildProperty, ComplexFactory, CollectionFactory, isBlazor, compile as baseTemplateCompiler } from '@syncfusion/ej2-base';\nimport { ShapeStyle, StrokeStyle } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { TextElement } from '../core/elements/text-element';\nimport { Transform, ConnectorConstraints, ControlPointsVisibility } from '../enum/enum';\nimport { PortConstraints, BezierSmoothness } from '../enum/enum';\nimport { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { findAngle, findConnectorPoints, getOuterBounds } from '../utility/connector';\nimport { getAnnotationPosition, alignLabelOnSegments, updateConnector } from '../utility/diagram-util';\nimport { setUMLActivityDefaults, initfixedUserHandlesSymbol } from '../utility/diagram-util';\nimport { findDistance, findPath, updatePathElement, setConnectorDefaults } from '../utility/diagram-util';\nimport { randomId, getFunction } from './../utility/base-util';\nimport { flipConnector } from './../utility/diagram-util';\nimport { PathElement } from '../core/elements/path-element';\nimport { PathAnnotation } from './annotation';\nimport { Canvas } from '../core/containers/canvas';\nimport { getDecoratorShape } from './dictionary/common';\nimport { DiagramElement } from '../core/elements/diagram-element';\nimport { DiagramAction } from '../enum/enum';\nimport { NodeBase } from './node-base';\nimport { DiagramTooltip } from './tooltip';\nimport { identityMatrix, rotateMatrix, scaleMatrix, transformPointsByMatrix, transformPointByMatrix } from '../primitives/matrix';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { getTemplateContent } from '../utility/dom-util';\nimport { SymbolSize } from './preview';\nimport { ConnectorFixedUserHandle } from './fixed-user-handle';\nimport { ResizeTool } from '../interaction/tool';\nvar getConnectorType = function (obj) {\n if (isBlazor()) {\n return DiagramConnectorShape;\n }\n else {\n if (obj) {\n switch (obj.type) {\n case 'Bpmn':\n return BpmnFlow;\n case 'UmlActivity':\n return ActivityFlow;\n case 'UmlClassifier':\n return RelationShip;\n default:\n return ConnectorShape;\n }\n }\n return ConnectorShape;\n }\n};\nvar getSegmentType = function (obj) {\n if (obj) {\n if (isBlazor()) {\n return DiagramConnectorSegment;\n }\n else {\n switch (obj.type) {\n case 'Straight':\n return StraightSegment;\n case 'Bezier':\n return BezierSegment;\n case 'Orthogonal':\n return OrthogonalSegment;\n default:\n return StraightSegment;\n }\n }\n }\n return undefined;\n};\n/**\n * Decorators are used to decorate the end points of the connector with some predefined path geometry\n */\nvar Decorator = /** @class */ (function (_super) {\n __extends(Decorator, _super);\n function Decorator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(10)\n ], Decorator.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], Decorator.prototype, \"height\", void 0);\n __decorate([\n Property('Arrow')\n ], Decorator.prototype, \"shape\", void 0);\n __decorate([\n Complex({ fill: 'black', strokeColor: 'black', strokeWidth: 1 }, ShapeStyle)\n ], Decorator.prototype, \"style\", void 0);\n __decorate([\n Complex({ x: 0, y: 0.5 }, Point)\n ], Decorator.prototype, \"pivot\", void 0);\n __decorate([\n Property('')\n ], Decorator.prototype, \"pathData\", void 0);\n return Decorator;\n}(ChildProperty));\nexport { Decorator };\n/**\n * Describes the length and angle between the control point and the start point of bezier segment\n */\nvar Vector = /** @class */ (function (_super) {\n __extends(Vector, _super);\n function Vector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Vector.prototype, \"angle\", void 0);\n __decorate([\n Property(0)\n ], Vector.prototype, \"distance\", void 0);\n return Vector;\n}(ChildProperty));\nexport { Vector };\n/**\n * Describes the length and angle between the control point and the start point of bezier segment\n */\nvar BezierSettings = /** @class */ (function (_super) {\n __extends(BezierSettings, _super);\n function BezierSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(ControlPointsVisibility.All)\n ], BezierSettings.prototype, \"controlPointsVisibility\", void 0);\n __decorate([\n Property('FreeForm')\n ], BezierSettings.prototype, \"segmentEditOrientation\", void 0);\n __decorate([\n Property(BezierSmoothness.Default)\n ], BezierSettings.prototype, \"smoothness\", void 0);\n __decorate([\n Property(true)\n ], BezierSettings.prototype, \"allowSegmentsReset\", void 0);\n return BezierSettings;\n}(ChildProperty));\nexport { BezierSettings };\n/**\n * Sets the type of the connector\n */\nvar ConnectorShape = /** @class */ (function (_super) {\n __extends(ConnectorShape, _super);\n function ConnectorShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], ConnectorShape.prototype, \"type\", void 0);\n return ConnectorShape;\n}(ChildProperty));\nexport { ConnectorShape };\n/**\n * Sets the type of the flow in a BPMN Process\n */\nvar ActivityFlow = /** @class */ (function (_super) {\n __extends(ActivityFlow, _super);\n function ActivityFlow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Object')\n ], ActivityFlow.prototype, \"flow\", void 0);\n __decorate([\n Property(30)\n ], ActivityFlow.prototype, \"exceptionFlowHeight\", void 0);\n return ActivityFlow;\n}(ConnectorShape));\nexport { ActivityFlow };\n/**\n * Sets the type of the flow in a BPMN Process\n */\nvar BpmnFlow = /** @class */ (function (_super) {\n __extends(BpmnFlow, _super);\n function BpmnFlow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Sequence')\n ], BpmnFlow.prototype, \"flow\", void 0);\n __decorate([\n Property('Normal')\n ], BpmnFlow.prototype, \"sequence\", void 0);\n __decorate([\n Property('Default')\n ], BpmnFlow.prototype, \"message\", void 0);\n __decorate([\n Property('Default')\n ], BpmnFlow.prototype, \"association\", void 0);\n return BpmnFlow;\n}(ConnectorShape));\nexport { BpmnFlow };\n/**\n * Defines the behavior of connector segments\n */\nvar ConnectorSegment = /** @class */ (function (_super) {\n __extends(ConnectorSegment, _super);\n // tslint:disable-next-line:no-any\n function ConnectorSegment(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n _this.points = [];\n return _this;\n }\n __decorate([\n Property('Straight')\n ], ConnectorSegment.prototype, \"type\", void 0);\n __decorate([\n Property(true)\n ], ConnectorSegment.prototype, \"allowDrag\", void 0);\n return ConnectorSegment;\n}(ChildProperty));\nexport { ConnectorSegment };\n/**\n * Defines the behavior of straight segments\n */\nvar StraightSegment = /** @class */ (function (_super) {\n __extends(StraightSegment, _super);\n function StraightSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class StraightSegment\n *\n * @private\n */\n StraightSegment.prototype.getClassName = function () {\n return 'StraightSegment';\n };\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], StraightSegment.prototype, \"point\", void 0);\n return StraightSegment;\n}(ConnectorSegment));\nexport { StraightSegment };\n/**\n * Defines the behavior of bezier segments\n */\nvar BezierSegment = /** @class */ (function (_super) {\n __extends(BezierSegment, _super);\n function BezierSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * Returns the name of class BezierSegment\n */\n BezierSegment.prototype.getClassName = function () {\n return 'BezierSegment';\n };\n /**\n * @private\n * Returns the total points of the bezier curve\n */\n BezierSegment.prototype.getPoints = function (segments, start) {\n var points = [];\n if (points.length > 0 || start != null) {\n var st = points.length > 0 ? points[points.length - 1] : start;\n var bezier = this.bezireToPoly(st, segments);\n points.push.apply(points, bezier);\n }\n return points;\n };\n /**\n * @private\n * Returns the total points of the bezier curve\n */\n BezierSegment.prototype.bezireToPoly = function (start, segment) {\n var points = [];\n if (segment) {\n var bezSeg = segment;\n var pt0 = start;\n var pt1 = bezSeg.bezierPoint1;\n var pt2 = bezSeg.bezierPoint2;\n var pt3 = { x: bezSeg.points[1].x, y: bezSeg.points[1].y };\n this.flattenCubicBezier(points, pt0, pt1, pt2, pt3, 10);\n }\n return points;\n };\n /**\n * @private\n * Returns the total points of the bezier curve\n */\n BezierSegment.prototype.flattenCubicBezier = function (points, ptStart, ptCtrl1, ptCtrl2, ptEnd, tolerance) {\n var max = ((Point.findLength(ptStart, ptCtrl1) + Point.findLength(ptCtrl1, ptCtrl2) + Point.findLength(ptCtrl2, ptEnd)) / tolerance);\n var i;\n for (i = 0; i <= max; i++) {\n var t = i / max;\n var x = (1 - t) * (1 - t) * (1 - t) * ptStart.x +\n 3 * t * (1 - t) * (1 - t) * ptCtrl1.x +\n 3 * t * t * (1 - t) * ptCtrl2.x +\n t * t * t * ptEnd.x;\n var y = (1 - t) * (1 - t) * (1 - t) * ptStart.y +\n 3 * t * (1 - t) * (1 - t) * ptCtrl1.y +\n 3 * t * t * (1 - t) * ptCtrl2.y +\n t * t * t * ptEnd.y;\n points.push({ x: x, y: y });\n }\n };\n __decorate([\n Property('Horizontal')\n ], BezierSegment.prototype, \"orientation\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], BezierSegment.prototype, \"point1\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], BezierSegment.prototype, \"point2\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], BezierSegment.prototype, \"vector1\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], BezierSegment.prototype, \"vector2\", void 0);\n return BezierSegment;\n}(StraightSegment));\nexport { BezierSegment };\n/**\n * Defines the behavior of orthogonal segments\n */\nvar OrthogonalSegment = /** @class */ (function (_super) {\n __extends(OrthogonalSegment, _super);\n function OrthogonalSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the module of class OrthogonalSegment\n *\n * @private\n */\n OrthogonalSegment.prototype.getClassName = function () {\n return 'OrthogonalSegment';\n };\n __decorate([\n Property(null)\n ], OrthogonalSegment.prototype, \"length\", void 0);\n __decorate([\n Property(null)\n ], OrthogonalSegment.prototype, \"direction\", void 0);\n return OrthogonalSegment;\n}(ConnectorSegment));\nexport { OrthogonalSegment };\n/**\n * Defines the behavior of orthogonal segments\n */\nvar DiagramConnectorSegment = /** @class */ (function (_super) {\n __extends(DiagramConnectorSegment, _super);\n function DiagramConnectorSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * Returns the module of class OrthogonalSegment\n */\n DiagramConnectorSegment.prototype.getClassName = function () {\n return 'DiagramConnectorSegment';\n };\n __decorate([\n Property('Straight')\n ], DiagramConnectorSegment.prototype, \"type\", void 0);\n __decorate([\n Property(true)\n ], DiagramConnectorSegment.prototype, \"allowDrag\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], DiagramConnectorSegment.prototype, \"point\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], DiagramConnectorSegment.prototype, \"point1\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], DiagramConnectorSegment.prototype, \"point2\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], DiagramConnectorSegment.prototype, \"vector1\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], DiagramConnectorSegment.prototype, \"vector2\", void 0);\n __decorate([\n Property(null)\n ], DiagramConnectorSegment.prototype, \"length\", void 0);\n __decorate([\n Property(null)\n ], DiagramConnectorSegment.prototype, \"direction\", void 0);\n return DiagramConnectorSegment;\n}(ChildProperty));\nexport { DiagramConnectorSegment };\n/**\n * Get the direction of the control points while the bezier is connected to the node\n */\nexport function getDirection(bounds, points, excludeBounds) {\n var center = bounds.center;\n var direction;\n var part = excludeBounds ? 45 : (180 / (2 + 2 / (bounds.height / bounds.width)));\n var fourty5 = part;\n var one35 = (180 - part);\n var two25 = one35 + (2 * part);\n var three15 = 360 - part;\n var angle = findAngle(points, center);\n if (angle > fourty5 && angle < one35) {\n return direction = 'top';\n }\n else if (angle > one35 && angle < two25) {\n return direction = 'right';\n }\n else if (angle > two25 && angle < three15) {\n return direction = 'bottom';\n }\n else {\n return direction = 'left';\n }\n}\nexport function isEmptyVector(element) {\n if (!element.distance && !element.angle) {\n return true;\n }\n return false;\n}\n/**\n * Get the bezier points if control points are not given.\n */\nexport function getBezierPoints(sourcePoint, targetPoint, direction) {\n var distance = 60;\n var value = { x: 0, y: 0 };\n if (!direction) {\n if (Math.abs(targetPoint.x - sourcePoint.x) > Math.abs(targetPoint.y - sourcePoint.y)) {\n direction = sourcePoint.x < targetPoint.x ? 'right' : 'left';\n }\n else {\n direction = sourcePoint.y < targetPoint.y ? 'bottom' : 'top';\n }\n }\n switch (direction) {\n case 'bottom':\n case 'top':\n distance = Math.min(Math.abs(sourcePoint.y - targetPoint.y) * 0.45, distance);\n value = { x: sourcePoint.x, y: sourcePoint.y + (direction === 'bottom' ? distance : -distance) };\n break;\n case 'right':\n case 'left':\n distance = Math.min(Math.abs(sourcePoint.x - targetPoint.x) * 0.45, distance);\n value = { x: sourcePoint.x + (direction === 'right' ? distance : -distance), y: sourcePoint.y };\n break;\n }\n return value;\n}\n/**\n * Get the bezier curve bounds.\n */\nexport function getBezierBounds(startPoint, controlPoint1, controlPoint2, endPoint, connector) {\n var minx = 0;\n var miny = 0;\n var maxx = 0;\n var maxy = 0;\n var tolerancevalue = 3;\n var max = Number((connector.distance(controlPoint1, startPoint) +\n connector.distance(controlPoint2, controlPoint1) +\n connector.distance(endPoint, controlPoint2)) / tolerancevalue);\n if (max !== 0) {\n for (var i = 0; i <= max; i++) {\n var t = i / max;\n var x = (1 - t) * (1 - t) * (1 - t) * startPoint.x +\n 3 * t * (1 - t) * (1 - t) * controlPoint1.x +\n 3 * t * t * (1 - t) * controlPoint2.x +\n t * t * t * endPoint.x;\n var y = (1 - t) * (1 - t) * (1 - t) * startPoint.y +\n 3 * t * (1 - t) * (1 - t) * controlPoint1.y +\n 3 * t * t * (1 - t) * controlPoint2.y +\n t * t * t * endPoint.y;\n if (i === 0) {\n minx = maxx = x;\n miny = maxy = y;\n }\n else {\n minx = Math.min(x, minx);\n miny = Math.min(y, miny);\n maxx = Math.max(x, maxx);\n maxy = Math.max(y, maxy);\n }\n }\n }\n return {\n x: minx, y: miny, width: maxx - minx, height: maxy - miny,\n left: minx, top: miny, right: (minx + (maxx - minx)), bottom: (miny + (maxy - miny)),\n center: { x: (minx + (maxx - minx)) / 2, y: (miny + (maxy - miny)) / 2 }\n };\n}\n/**\n * Get the intermediate bezier curve for point over connector\n */\nexport function bezierPoints(connector, startPoint, point1, point2, endPoint, i, max) {\n var pt = { x: 0, y: 0 };\n var t = i / max;\n var x = (1 - t) * (1 - t) * (1 - t) * startPoint.x +\n 3 * t * (1 - t) * (1 - t) * point1.x +\n 3 * t * t * (1 - t) * point2.x +\n t * t * t * endPoint.x;\n pt.x = x;\n var y = (1 - t) * (1 - t) * (1 - t) * startPoint.y +\n 3 * t * (1 - t) * (1 - t) * point1.y +\n 3 * t * t * (1 - t) * point2.y +\n t * t * t * endPoint.y;\n pt.y = y;\n return pt;\n}\n/**\n * Defines the behavior of the UMLActivity Classifier multiplicity connection defaults\n */\nvar MultiplicityLabel = /** @class */ (function (_super) {\n __extends(MultiplicityLabel, _super);\n function MultiplicityLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], MultiplicityLabel.prototype, \"optional\", void 0);\n __decorate([\n Property(undefined)\n ], MultiplicityLabel.prototype, \"lowerBounds\", void 0);\n __decorate([\n Property(undefined)\n ], MultiplicityLabel.prototype, \"upperBounds\", void 0);\n return MultiplicityLabel;\n}(ChildProperty));\nexport { MultiplicityLabel };\n/**\n * Defines the behavior of the UMLActivity Classifier multiplicity connection defaults\n */\nvar ClassifierMultiplicity = /** @class */ (function (_super) {\n __extends(ClassifierMultiplicity, _super);\n function ClassifierMultiplicity() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('OneToOne')\n ], ClassifierMultiplicity.prototype, \"type\", void 0);\n __decorate([\n Complex({}, MultiplicityLabel)\n ], ClassifierMultiplicity.prototype, \"target\", void 0);\n __decorate([\n Complex({}, MultiplicityLabel)\n ], ClassifierMultiplicity.prototype, \"source\", void 0);\n return ClassifierMultiplicity;\n}(ChildProperty));\nexport { ClassifierMultiplicity };\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar RelationShip = /** @class */ (function (_super) {\n __extends(RelationShip, _super);\n function RelationShip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('UmlClassifier')\n ], RelationShip.prototype, \"type\", void 0);\n __decorate([\n Property('Aggregation')\n ], RelationShip.prototype, \"relationship\", void 0);\n __decorate([\n Property('Directional')\n ], RelationShip.prototype, \"associationType\", void 0);\n __decorate([\n Complex({}, ClassifierMultiplicity)\n ], RelationShip.prototype, \"multiplicity\", void 0);\n return RelationShip;\n}(ConnectorShape));\nexport { RelationShip };\n/**\n * Connector shape for blazor\n */\nvar DiagramConnectorShape = /** @class */ (function (_super) {\n __extends(DiagramConnectorShape, _super);\n function DiagramConnectorShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], DiagramConnectorShape.prototype, \"type\", void 0);\n __decorate([\n Property('Directional')\n ], DiagramConnectorShape.prototype, \"associationType\", void 0);\n __decorate([\n Property('Aggregation')\n ], DiagramConnectorShape.prototype, \"relationship\", void 0);\n __decorate([\n Complex({}, ClassifierMultiplicity)\n ], DiagramConnectorShape.prototype, \"multiplicity\", void 0);\n __decorate([\n Property('Sequence')\n ], DiagramConnectorShape.prototype, \"bpmnFlow\", void 0);\n __decorate([\n Property('Default')\n ], DiagramConnectorShape.prototype, \"message\", void 0);\n __decorate([\n Property('Normal')\n ], DiagramConnectorShape.prototype, \"sequence\", void 0);\n __decorate([\n Property('Default')\n ], DiagramConnectorShape.prototype, \"association\", void 0);\n __decorate([\n Property('Object')\n ], DiagramConnectorShape.prototype, \"umlActivityFlow\", void 0);\n __decorate([\n Property(30)\n ], DiagramConnectorShape.prototype, \"exceptionFlowHeight\", void 0);\n return DiagramConnectorShape;\n}(ChildProperty));\nexport { DiagramConnectorShape };\n/**\n * Connectors are used to create links between nodes\n */\nvar Connector = /** @class */ (function (_super) {\n __extends(Connector, _super);\n // tslint:disable-next-line:no-any\n function Connector(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n /** @private */\n _this.parentId = '';\n /** @private */\n _this.bridges = [];\n /** @private */\n _this.status = 'None';\n if (_this.shape && _this.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(defaultValue, _this);\n }\n if (defaultValue && defaultValue.shape && defaultValue.shape.type !== 'None') {\n setConnectorDefaults(defaultValue, _this);\n }\n return _this;\n }\n /* tslint:disable */\n Connector.prototype.setPortID = function (diagram, isTarget) {\n if (this.targetID && this.sourceID) {\n var targetNode = diagram.nameTable[this.targetID];\n var sourceNode = diagram.nameTable[this.sourceID];\n var ports = isTarget ? (targetNode && targetNode.ports) : (sourceNode && sourceNode.ports);\n var port = void 0;\n for (var i = 0; ports && i < ports.length; i++) {\n port = ports[parseInt(i.toString(), 10)];\n if (this.targetPortID === port.id && isTarget) {\n if ((port.constraints & PortConstraints.None) || !(port.constraints & PortConstraints.InConnect)) {\n this.targetPortID = '';\n }\n }\n else if (this.sourcePortID === port.id && !isTarget) {\n if ((port.constraints & PortConstraints.None) || !(port.constraints & PortConstraints.OutConnect)) {\n this.sourcePortID = '';\n }\n }\n }\n }\n };\n /* tslint:enable */\n /** @private */\n // tslint:disable-next-line:no-any\n Connector.prototype.init = function (diagram) {\n if (!this.id) {\n this.id = randomId();\n }\n if (this.sourcePortID) {\n this.setPortID(diagram);\n }\n if (this.targetPortID) {\n this.setPortID(diagram, true);\n }\n var bpmnElement;\n var container = new Canvas();\n var segment = new PathElement();\n segment.id = this.id + '_path';\n var srcDecorator = new PathElement();\n var targetDecorator = new PathElement();\n segment = this.getSegmentElement(this, segment);\n //let bounds: Rect;\n var points = [];\n points = this.type === 'Bezier' ? this.intermediatePoints : this.getConnectorPoints(this.type);\n points = this.clipDecorators(this, points);\n var bounds = Rect.toBounds(points);\n container.width = bounds.width;\n container.height = bounds.height;\n container.offsetX = bounds.x + container.pivot.x * bounds.width;\n container.offsetY = bounds.y + container.pivot.y * bounds.height;\n switch (this.shape.type) {\n case 'Bpmn':\n // eslint-disable-next-line no-case-declarations\n var flow = (isBlazor() ? this.shape.bpmnFlow : this.shape.flow);\n switch (flow) {\n case 'Sequence':\n bpmnElement = this.getBpmnSequenceFlow();\n break;\n case 'Association':\n bpmnElement = new PathElement();\n bpmnElement.visible = false;\n this.getBpmnAssociationFlow();\n break;\n case 'Message':\n bpmnElement = this.getBpmnMessageFlow();\n segment = this.getSegmentElement(this, segment);\n this.updateShapePosition(this, bpmnElement);\n break;\n }\n break;\n case 'UmlActivity':\n // eslint-disable-next-line no-case-declarations\n var activityFlow = (isBlazor() ? this.shape.umlActivityFlow :\n this.shape.flow);\n switch (activityFlow) {\n case 'Object':\n this.getUMLObjectFlow();\n break;\n case 'Exception':\n this.getUMLExceptionFlow(segment);\n break;\n }\n break;\n case 'UmlClassifier':\n this.getConnectorRelation();\n break;\n }\n var anglePoints = this.intermediatePoints;\n if (this.type === 'Bezier') {\n var firstSegment = this.segments[0];\n var lastSegment = this.segments[this.segments.length - 1];\n anglePoints = [!Point.isEmptyPoint(lastSegment.point2) ? lastSegment.point2 : lastSegment.bezierPoint2,\n !Point.isEmptyPoint(firstSegment.point1) ? firstSegment.point1 : firstSegment.bezierPoint1];\n }\n var accessContent = 'getDescription';\n var getDescription = diagram[\"\" + accessContent];\n //const strokeWidth: number = this.sourceWrapper ? this.sourceWrapper.style.strokeWidth / 2 / 2 : 0;\n srcDecorator = this.getDecoratorElement(points[0], anglePoints[1], this.sourceDecorator, true, getDescription);\n targetDecorator = this.getDecoratorElement(points[points.length - 1], anglePoints[anglePoints.length - 2], this.targetDecorator, false, getDescription);\n srcDecorator.id = this.id + '_srcDec';\n targetDecorator.id = this.id + '_tarDec';\n segment.style = this.style;\n /* tslint:disable:no-string-literal */\n segment.style['fill'] = 'transparent';\n if (getDescription !== undefined) {\n // tslint:disable-next-line:no-any\n var wrapperContent = getDescription(this, diagram);\n segment.description = wrapperContent ? wrapperContent : this.id;\n }\n container.style.strokeColor = 'transparent';\n container.style.fill = 'transparent';\n container.style.strokeWidth = 0;\n container.children = [segment, srcDecorator, targetDecorator];\n container.id = this.id;\n if (bpmnElement !== undefined) {\n container.children.push(bpmnElement);\n }\n container.offsetX = segment.offsetX;\n container.offsetY = segment.offsetY;\n container.width = segment.width;\n container.height = segment.height;\n for (var i = 0; this.annotations !== undefined, i < this.annotations.length; i++) {\n container.children.push(this.getAnnotationElement(this.annotations[parseInt(i.toString(), 10)], this.intermediatePoints, bounds, getDescription, diagram.element.id, diagram.annotationTemplate));\n }\n for (var i = 0; this.fixedUserHandles !== undefined, i < this.fixedUserHandles.length; i++) {\n container.children.push(this.getfixedUserHandle(this.fixedUserHandles[parseInt(i.toString(), 10)], this.intermediatePoints, bounds));\n }\n this.wrapper = container;\n return container;\n };\n Connector.prototype.getConnectorRelation = function () {\n var shape = this.shape;\n if (shape.relationship === 'Association') {\n this.segments[0].type = 'Straight';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'Arrow';\n }\n else if (shape.relationship === 'Inheritance') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'Arrow';\n }\n else if (shape.relationship === 'Composition') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'Diamond';\n this.targetDecorator.shape = 'None';\n }\n else if (shape.relationship === 'Aggregation') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'Diamond';\n this.targetDecorator.shape = 'None';\n }\n else if (shape.relationship === 'Dependency') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'OpenArrow';\n }\n else if (shape.relationship === 'Realization') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'Arrow';\n }\n if (shape.associationType === 'BiDirectional') {\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'None';\n }\n var text1 = '';\n //let lower: MultiplicityLabelModel;\n //let upper: MultiplicityLabelModel;\n var sourceText = '';\n var targetText = '';\n var text = '';\n if (shape.multiplicity.source) {\n shape.multiplicity.source.lowerBounds = shape.multiplicity.source.lowerBounds;\n shape.multiplicity.source.upperBounds = shape.multiplicity.source.upperBounds;\n }\n if (shape.multiplicity.target) {\n shape.multiplicity.target.lowerBounds = shape.multiplicity.target.lowerBounds;\n shape.multiplicity.target.upperBounds = shape.multiplicity.target.upperBounds;\n }\n var lower = shape.multiplicity.source;\n var upper = shape.multiplicity.target;\n text = lower.upperBounds ? lower.lowerBounds + '...' + lower.upperBounds : lower.lowerBounds;\n text1 = upper.upperBounds ? upper.lowerBounds + '...' + upper.upperBounds : upper.lowerBounds;\n if (shape.multiplicity.type === 'ManyToOne') {\n shape.multiplicity.target.optional = false;\n sourceText = text ? text : '*';\n targetText = '1';\n }\n if (shape.multiplicity.type === 'OneToMany') {\n shape.multiplicity.source.optional = false;\n targetText = text1 ? text1 : '*';\n sourceText = '1';\n }\n ///831806 -Added ManyToMany relationship for UML class connector annotation label\n if (shape.multiplicity.type === 'ManyToMany') {\n sourceText = text ? text : '*';\n targetText = text1 ? text1 : '*';\n }\n if (shape.multiplicity.type === 'OneToOne') {\n shape.multiplicity.target.optional = false;\n shape.multiplicity.source.optional = false;\n sourceText = '1';\n targetText = '1';\n }\n this.annotations = [\n {\n id: this.id + 'sourcelabel', content: sourceText, offset: 0, alignment: 'Before',\n margin: { right: 5, bottom: 5 }\n },\n {\n id: this.id + 'targetlabel', content: targetText, offset: 1, alignment: 'Before',\n margin: { right: 5, bottom: 5 }\n }\n ];\n };\n Connector.prototype.getBpmnSequenceFlow = function () {\n var segment = new PathElement();\n var pathseq = new PathElement();\n var pathseqData;\n if ((this.shape.sequence) === 'Normal' && this.type !== 'Bezier') {\n this.targetDecorator.shape = 'Arrow';\n }\n if ((this.shape.sequence) === 'Default') {\n segment = this.getSegmentElement(this, segment);\n var anglePoints = this.intermediatePoints;\n pathseq = updatePathElement(anglePoints, this);\n this.targetDecorator.shape = 'Arrow';\n }\n if ((this.shape.sequence) === 'Conditional') {\n this.targetDecorator.shape = 'Arrow';\n this.sourceDecorator.shape = 'Diamond';\n pathseq.id = this.id + this.shape.type;\n }\n return pathseq;\n };\n /** @private */\n Connector.prototype.getUMLObjectFlow = function () {\n if (this.annotations) {\n for (var i = 0; i < this.annotations.length; i++) {\n this.annotations[parseInt(i.toString(), 10)].content = '[' + this.annotations[parseInt(i.toString(), 10)].content + ']';\n }\n }\n };\n /** @private */\n Connector.prototype.getUMLExceptionFlow = function (segment) {\n this.type = 'Straight';\n var height = (this.shape.exceptionFlowHeight) / 2;\n var midPt = { x: (this.targetPoint.x + this.sourcePoint.x) / 2, y: (this.targetPoint.y + this.sourcePoint.y) / 2 };\n var xDist = midPt.x - this.sourcePoint.x;\n var yDist = midPt.y - this.sourcePoint.y;\n var dist = Math.sqrt(xDist * xDist + yDist * yDist);\n var fractionOfTotal = (height) / dist;\n var midPt2 = { x: midPt.x - xDist * fractionOfTotal, y: midPt.y - yDist * fractionOfTotal };\n var midPt1 = { x: midPt.x + xDist * fractionOfTotal, y: midPt.y + yDist * fractionOfTotal };\n var matrix = identityMatrix();\n rotateMatrix(matrix, 315, midPt.x, midPt.y);\n this.segments = [];\n var segments = new StraightSegment(this, 'segments', { type: 'Straight', point: transformPointByMatrix(matrix, midPt1) }, true);\n (this.segments).push(segments);\n segments = new StraightSegment(this, 'segments', { type: 'Straight', point: transformPointByMatrix(matrix, midPt2) }, true);\n (this.segments).push(segments);\n segment = this.getSegmentElement(this, segment);\n };\n Connector.prototype.getBpmnAssociationFlow = function () {\n if ((this.shape.association) === 'Default') {\n this.targetDecorator.shape = 'None';\n this.style.strokeDashArray = '2 2';\n }\n if ((this.shape.association) === 'Directional') {\n this.targetDecorator.shape = 'OpenArrow';\n this.style.strokeDashArray = '2 2';\n }\n if ((this.shape.association) === 'BiDirectional') {\n this.targetDecorator.shape = 'OpenArrow';\n this.sourceDecorator.shape = 'OpenArrow';\n this.style.strokeDashArray = '2 2';\n }\n };\n /** @private */\n Connector.prototype.getfixedUserHandle = function (fixedUserHandle, points, bounds) {\n var fixedUserHandleContainer = new Canvas();\n fixedUserHandleContainer.float = true;\n var children = [];\n fixedUserHandle.id = fixedUserHandle.id || randomId();\n fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id;\n fixedUserHandleContainer.children = children;\n fixedUserHandleContainer.visible = fixedUserHandle.visibility;\n fixedUserHandleContainer.width = fixedUserHandle.width;\n fixedUserHandleContainer.height = fixedUserHandle.height;\n fixedUserHandleContainer.style.strokeWidth = fixedUserHandle.handleStrokeWidth;\n fixedUserHandleContainer.style.fill = fixedUserHandle.fill;\n fixedUserHandleContainer.style.strokeColor = fixedUserHandle.handleStrokeColor;\n fixedUserHandleContainer.cornerRadius = fixedUserHandle.cornerRadius;\n this.updateAnnotation(fixedUserHandle, points, bounds, fixedUserHandleContainer);\n var symbolIcon = initfixedUserHandlesSymbol(fixedUserHandle, fixedUserHandleContainer);\n fixedUserHandleContainer.children.push(symbolIcon);\n fixedUserHandleContainer.description = fixedUserHandleContainer.id;\n return fixedUserHandleContainer;\n };\n Connector.prototype.getBpmnMessageFlow = function () {\n var segmentMessage = new PathElement();\n this.targetDecorator.shape = 'Arrow';\n this.targetDecorator.width = 10;\n this.targetDecorator.height = 10;\n this.sourceDecorator.shape = 'Circle';\n this.sourceDecorator.style.fill = 'white';\n this.targetDecorator.style.fill = 'white';\n if (((this.shape.message) === 'InitiatingMessage') ||\n ((this.shape.message) === 'NonInitiatingMessage')) {\n segmentMessage.id = this.id + '_' + (this.shape.message);\n segmentMessage.width = 25;\n segmentMessage.height = 15;\n segmentMessage.data = 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0';\n segmentMessage.horizontalAlignment = 'Center';\n segmentMessage.verticalAlignment = 'Center';\n segmentMessage.transform = Transform.Self;\n segmentMessage.style.fill = (this.shape.message) === 'NonInitiatingMessage' ? 'lightgrey' : 'white';\n }\n return segmentMessage;\n };\n /** @private */\n Connector.prototype.distance = function (pt1, pt2) {\n return findDistance(pt1, pt2);\n };\n /** @private */\n Connector.prototype.findPath = function (sourcePt, targetPt) {\n return findPath(sourcePt, targetPt);\n };\n /** @private */\n Connector.prototype.getAnnotationElement = function (annotation, points, bounds, getDescription, diagramId, annotationTemplate) {\n annotation.id = annotation.id || randomId();\n var textele;\n if (isBlazor() && annotation.annotationType === 'Template') {\n annotation.template = annotation.template ? annotation.template : '';\n }\n if (diagramId && (annotation.template || annotation.annotationType === 'Template'\n || (annotationTemplate && annotation.content === ''))) {\n // Task 834121: Content-Security-Policy support for diagram\n var diagramElement = document.getElementById(diagramId);\n var instance = 'ej2_instances';\n var diagram = diagramElement[\"\" + instance][0];\n textele = new DiagramHtmlElement(this.id, diagramId, annotation.id, annotationTemplate);\n if (annotation.template && typeof annotation.template === 'function' && diagram.isReact) {\n textele.templateFn = baseTemplateCompiler(annotation.template);\n textele.isTemplate = true;\n }\n textele = getTemplateContent(textele, annotation, annotationTemplate, diagram);\n }\n else {\n textele = new TextElement();\n textele.content = annotation.content;\n textele.style.textOverflow = 'Wrap';\n }\n textele.constraints = annotation.constraints;\n textele.visible = annotation.visibility;\n textele.rotateAngle = annotation.rotateAngle;\n textele.horizontalAlignment = annotation.horizontalAlignment;\n textele.verticalAlignment = annotation.verticalAlignment;\n textele.width = annotation.width;\n textele.height = annotation.height;\n if (bounds.width !== undefined && !annotation.template) {\n textele.width = (annotation.width || bounds.width) - annotation.margin.left - annotation.margin.right;\n }\n textele.margin = annotation.margin;\n textele.id = this.id + '_' + annotation.id;\n if (bounds.width === 0) {\n bounds.width = this.style.strokeWidth;\n }\n if (bounds.height === 0) {\n bounds.height = this.style.strokeWidth;\n }\n textele.style = annotation.style;\n // tslint:disable-next-line:no-any\n var wrapperContent;\n var description = getFunction(getDescription);\n if (description) {\n wrapperContent = description(annotation, this);\n }\n textele.description = wrapperContent ? wrapperContent : textele.id;\n this.updateAnnotation(annotation, points, bounds, textele);\n return textele;\n };\n /** @private */\n Connector.prototype.updateAnnotation = function (annotation, points, bounds, textElement, canRefresh) {\n //let getPointloop: SegmentInfo;\n //let align: Alignment; let hAlign: string;\n var pivotPoint = { x: 0, y: 0 };\n if (!(textElement instanceof DiagramHtmlElement || DiagramElement) && (!canRefresh)) {\n textElement.refreshTextElement();\n }\n textElement.width = (annotation.width || bounds.width);\n var getPointloop = getAnnotationPosition(points, annotation, bounds);\n var newPoint = getPointloop.point;\n if (annotation instanceof PathAnnotation && annotation.segmentAngle) {\n textElement.rotateAngle = annotation.rotateAngle + getPointloop.angle;\n textElement.rotateAngle = (textElement.rotateAngle + 360) % 360;\n }\n if (bounds.width === 0) {\n bounds.width = this.style.strokeWidth;\n }\n if (bounds.height === 0) {\n bounds.height = this.style.strokeWidth;\n }\n var offsetPoint = { x: ((newPoint.x - bounds.x) / bounds.width), y: ((newPoint.y - bounds.y) / bounds.height) };\n pivotPoint.x = bounds.width * offsetPoint.x;\n pivotPoint.y = bounds.height * offsetPoint.y;\n var align = alignLabelOnSegments(annotation, getPointloop.angle, points);\n var hAlign = align.hAlign;\n var vAlign = align.vAlign;\n var horizor;\n var verzor;\n if (hAlign === 'left') {\n horizor = 'Left';\n pivotPoint.x += annotation.displacement.x;\n }\n else if (hAlign === 'right') {\n horizor = 'Right';\n pivotPoint.x -= annotation.displacement.x;\n }\n else if (hAlign === 'center') {\n horizor = 'Center';\n }\n if (vAlign === 'top') {\n verzor = 'Top';\n pivotPoint.y += annotation.displacement.y;\n }\n else if (vAlign === 'bottom') {\n verzor = 'Bottom';\n pivotPoint.y -= annotation.displacement.y;\n }\n else if (vAlign === 'center') {\n verzor = 'Center';\n }\n textElement.horizontalAlignment = horizor;\n textElement.verticalAlignment = verzor;\n textElement.setOffsetWithRespectToBounds(pivotPoint.x, pivotPoint.y, 'Absolute');\n textElement.relativeMode = 'Point';\n };\n /** @private */\n Connector.prototype.getConnectorPoints = function (type, points, layoutOrientation, lineDistribution) {\n //const width: number = Math.abs(this.sourcePoint.x - this.targetPoint.x);\n //const height: number = Math.abs(this.sourcePoint.y - this.targetPoint.y);\n points = findConnectorPoints(this, layoutOrientation, lineDistribution);\n var newPoints = points.slice(0);\n if (newPoints && newPoints.length > 0) {\n this.sourcePoint = newPoints[0];\n this.targetPoint = newPoints[newPoints.length - 1];\n }\n return newPoints;\n };\n /** @private */\n Connector.prototype.clipDecorator = function (connector, points, isSource, diagramAction) {\n var point = { x: 0, y: 0 };\n var start = { x: 0, y: 0 };\n var end = { x: 0, y: 0 };\n var length = points.length;\n start = !isSource ? points[length - 1] : points[0];\n end = !isSource ? points[length - 2] : points[1];\n var len = Point.distancePoints(start, end);\n len = (len === 0) ? 1 : len;\n var strokeWidth = 1;\n var node = isSource ? connector.sourceWrapper : connector.targetWrapper;\n if (node) {\n strokeWidth = node.style.strokeWidth;\n if (diagramAction && ((diagramAction) & DiagramAction.DecoratorPropertyChange)) {\n strokeWidth = 1;\n }\n }\n var width = strokeWidth - 1;\n point.x = (Math.round(start.x + width * (end.x - start.x) / len));\n point.y = (Math.round(start.y + width * (end.y - start.y) / len));\n if ((isSource && connector.sourceDecorator.shape !== 'None') ||\n (!isSource && connector.targetDecorator.shape !== 'None')) {\n point = Point.adjustPoint(point, end, true, (diagramAction & DiagramAction.DecoratorPropertyChange) ? 0 : (strokeWidth / 2));\n }\n return point;\n };\n /** @private */\n Connector.prototype.clipDecorators = function (connector, pts, diagramAction) {\n if (connector.sourceDecorator.shape !== 'None') {\n pts[0] = this.clipDecorator(connector, pts, true, diagramAction);\n }\n if (connector.targetDecorator.shape !== 'None') {\n pts[pts.length - 1] = this.clipDecorator(connector, pts, false, diagramAction);\n }\n return pts;\n };\n /** @private */\n Connector.prototype.updateSegmentElement = function (connector, points, element, diagramActions) {\n var bounds = new Rect();\n //let point: PointModel[];\n var segmentPath = this.getSegmentPath(connector, points, diagramActions);\n if (connector.type === 'Bezier') {\n if (this.segments.length > 0) {\n for (var i = 0; i < this.segments.length; i++) {\n var segment = this.segments[parseInt(i.toString(), 10)];\n var connectorSegment = connector.segments[parseInt(i.toString(), 10)];\n // eslint-disable-next-line max-len\n var point1 = !Point.isEmptyPoint(segment.point1) ? connectorSegment.point1 : connectorSegment.bezierPoint1;\n // eslint-disable-next-line max-len\n var point2 = !Point.isEmptyPoint(segment.point2) ? connectorSegment.point2 : connectorSegment.bezierPoint2;\n bounds.uniteRect(getBezierBounds(segment.points[0], point1, point2, segment.points[1], connector));\n }\n }\n }\n else {\n bounds = Rect.toBounds(points);\n }\n element.width = bounds.width;\n element.height = bounds.height;\n element.offsetX = bounds.x + element.width / 2;\n element.offsetY = bounds.y + element.height / 2;\n element.data = segmentPath;\n if (connector.wrapper) {\n connector.wrapper.offsetX = element.offsetX;\n connector.wrapper.offsetY = element.offsetY;\n connector.wrapper.width = bounds.width;\n connector.wrapper.height = bounds.height;\n }\n return element;\n };\n /** @private */\n Connector.prototype.getSegmentElement = function (connector, segmentElement, layoutOrientation, diagramActions, isFlip) {\n if (isFlip === void 0) { isFlip = true; }\n //let bounds: Rect; let segmentPath: string;\n var points = [];\n if (isFlip) {\n flipConnector(connector);\n }\n points = this.getConnectorPoints(connector.type, undefined, layoutOrientation);\n this.intermediatePoints = points;\n segmentElement.staticSize = true;\n segmentElement = this.updateSegmentElement(connector, points, segmentElement, diagramActions);\n return segmentElement;\n };\n /** @private */\n Connector.prototype.getDecoratorElement = function (offsetPoint, adjacentPoint, decorator, isSource, getDescription) {\n var decEle = new PathElement();\n var getPath;\n var angle;\n decEle.transform = Transform.Self;\n this.updateDecoratorElement(decEle, offsetPoint, adjacentPoint, decorator);\n if (getDescription !== undefined) {\n // tslint:disable-next-line:no-any\n var wrapperContent = getDescription(decorator, this);\n decEle.description = wrapperContent ? wrapperContent :\n ('Specifies the ' + isSource ? 'source' : 'target' + 'port element of the connector');\n }\n return decEle;\n };\n Connector.prototype.bridgePath = function (connector, path, pointIndex) {\n var pathData = path;\n if (connector.bridges.length > 0) {\n if (connector.type === 'Straight' && connector.segments.length < 2) {\n for (var n = 0; n < connector.bridges.length; n++) {\n var bridge = connector.bridges[parseInt(n.toString(), 10)];\n if (!bridge.rendered) {\n pathData += ' L' + bridge.startPoint.x + ' ' + bridge.startPoint.y;\n pathData += bridge.path;\n bridge.rendered = true;\n }\n }\n }\n else if (connector.type === 'Orthogonal' || (connector.type === 'Straight' && connector.segments.length > 1)) {\n for (var n = 0; n < connector.bridges.length; n++) {\n var bridge = connector.bridges[parseInt(n.toString(), 10)];\n if (bridge.segmentPointIndex === pointIndex) {\n if (!bridge.rendered) {\n if (bridge.segmentPointIndex === pointIndex) {\n pathData += ' L' + bridge.startPoint.x + ' ' + bridge.startPoint.y;\n pathData += bridge.path;\n bridge.rendered = true;\n }\n }\n }\n }\n }\n }\n return pathData;\n };\n /** @private */\n Connector.prototype.updateDecoratorElement = function (element, pt, adjacentPoint, decorator) {\n //let getPath: string;// let angle: number;\n element.offsetX = pt.x;\n element.offsetY = pt.y;\n var angle = Point.findAngle(pt, adjacentPoint);\n var getPath = getDecoratorShape(decorator.shape, decorator);\n var size = new Size(decorator.width, decorator.height);\n element.pivot.x = decorator.pivot.x;\n element.pivot.y = decorator.pivot.y;\n element.style = decorator.style;\n element.rotateAngle = angle;\n element.data = getPath;\n element.canMeasurePath = true;\n element.width = size.width;\n element.height = size.height;\n };\n /** @private */\n Connector.prototype.getSegmentPath = function (connector, points, diagramAction) {\n var path = '';\n var getPt;\n var end;\n var st;\n var pts = [];\n var j = 0;\n while (j < points.length) {\n pts.push({ x: points[parseInt(j.toString(), 10)].x, y: points[parseInt(j.toString(), 10)].y });\n j++;\n }\n for (var m = 0; m < connector.bridges.length; m++) {\n var bridge = connector.bridges[parseInt(m.toString(), 10)];\n bridge.rendered = false;\n }\n pts = this.clipDecorators(connector, pts, diagramAction);\n if (this.cornerRadius > 0 && this.type !== 'Bezier') {\n for (var j_1 = 0; j_1 < pts.length - 1; j_1++) {\n getPt = pts[parseInt(j_1.toString(), 10)];\n if (j_1 === 0) {\n path = 'M' + getPt.x + ' ' + getPt.y;\n }\n var segLength = Point.distancePoints(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1]);\n if (segLength > 0) {\n if (j_1 < pts.length - 2) {\n if (segLength < this.cornerRadius * 2) {\n end = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], false, segLength / 2);\n }\n else {\n end = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], false, this.cornerRadius);\n }\n }\n else {\n end = pts[j_1 + 1];\n }\n if (j_1 > 0) {\n if (segLength < this.cornerRadius * 2) {\n st = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], true, segLength / 2);\n if (j_1 < pts.length - 2) {\n end = null;\n }\n }\n else {\n st = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], true, this.cornerRadius);\n }\n }\n if (st) {\n path += 'Q' + getPt.x + ' ' + getPt.y + ' ' + st.x + ' ' + st.y;\n }\n if (end) {\n if (connector.bridges.length > 0) {\n path = this.bridgePath(connector, path, j_1);\n if (connector.type === 'Orthogonal') {\n path = this.bridgePath(connector, path, j_1 + 1);\n }\n }\n path += ' L' + end.x + ' ' + end.y;\n }\n }\n }\n }\n else {\n if (this.type === 'Bezier') {\n var isrezise = void 0;\n var isDrawing = void 0;\n if (this.parentObj.element) {\n var action = this.parentObj.element.ej2_instances[0]['eventHandler'].action;\n isrezise = (this.parentObj.element.ej2_instances[0]['eventHandler']).tool instanceof ResizeTool;\n isDrawing = action.includes('PortDraw') || action.includes('Drag');\n }\n var direction = void 0;\n var segments = this.segments;\n for (var j_2 = 0; j_2 < segments.length; j_2++) {\n if (pts.length > 2) {\n segments[parseInt(j_2.toString(), 10)].bezierPoint1 = { x: 0, y: 0 };\n segments[parseInt(j_2.toString(), 10)].bezierPoint2 = { x: 0, y: 0 };\n }\n if (Point.isEmptyPoint(segments[parseInt(j_2.toString(), 10)].point1) && !segments[parseInt(j_2.toString(), 10)].vector1.angle && !segments[parseInt(j_2.toString(), 10)].vector1.distance) {\n if ((connector.sourceID || this.sourcePortID) && this.sourceWrapper && !isDrawing && !isrezise) {\n direction = getDirection(this.sourceWrapper.bounds, pts[parseInt(j_2.toString(), 10)], true);\n }\n segments[parseInt(j_2.toString(), 10)].bezierPoint1 = getBezierPoints(pts[parseInt(j_2.toString(), 10)], pts[j_2 + 1], direction);\n }\n else if (segments[parseInt(j_2.toString(), 10)].vector1.angle || segments[parseInt(j_2.toString(), 10)].vector1.distance) {\n segments[parseInt(j_2.toString(), 10)].bezierPoint1 = Point.transform(pts[parseInt(j_2.toString(), 10)], segments[parseInt(j_2.toString(), 10)].vector1.angle, segments[parseInt(j_2.toString(), 10)].vector1.distance);\n }\n else {\n segments[parseInt(j_2.toString(), 10)].bezierPoint1 = {\n x: segments[parseInt(j_2.toString(), 10)].point1.x || segments[parseInt(j_2.toString(), 10)].bezierPoint1.x,\n y: segments[parseInt(j_2.toString(), 10)].point1.y || segments[parseInt(j_2.toString(), 10)].bezierPoint1.y\n };\n }\n if (Point.isEmptyPoint(segments[parseInt(j_2.toString(), 10)].point2) && !segments[parseInt(j_2.toString(), 10)].vector2.angle && !segments[parseInt(j_2.toString(), 10)].vector2.distance) {\n if ((connector.targetID || this.targetPortID) && this.targetWrapper && !isDrawing && !isrezise) {\n direction = getDirection(this.targetWrapper.bounds, pts[j_2 + 1], true);\n }\n segments[parseInt(j_2.toString(), 10)].bezierPoint2 = getBezierPoints(pts[j_2 + 1], pts[parseInt(j_2.toString(), 10)], direction);\n }\n else if (segments[parseInt(j_2.toString(), 10)].vector2.angle || segments[parseInt(j_2.toString(), 10)].vector2.distance) {\n segments[parseInt(j_2.toString(), 10)].bezierPoint2 = Point.transform(pts[j_2 + 1], segments[parseInt(j_2.toString(), 10)].vector2.angle, segments[parseInt(j_2.toString(), 10)].vector2.distance);\n }\n else {\n segments[parseInt(j_2.toString(), 10)].bezierPoint2 = {\n x: segments[parseInt(j_2.toString(), 10)].point2.x || segments[parseInt(j_2.toString(), 10)].bezierPoint2.x,\n y: segments[parseInt(j_2.toString(), 10)].point2.y || segments[parseInt(j_2.toString(), 10)].bezierPoint2.y\n };\n }\n }\n pts.splice(1, 0, { x: segments[0].bezierPoint1.x, y: segments[0].bezierPoint1.y });\n pts.splice(pts.length - 1, 0, {\n x: segments[segments.length - 1].bezierPoint2.x, y: segments[segments.length - 1].bezierPoint2.y\n });\n pts = this.clipDecorators(connector, pts, diagramAction);\n for (var j_3 = 0; j_3 < segments.length; j_3++) {\n if (j_3 === 0) {\n path = 'M' + pts[0].x + ' ' + pts[0].y;\n }\n var lastPoint = (j_3 === segments.length - 1) ? pts[pts.length - 1].x + ' ' + pts[pts.length - 1].y :\n segments[parseInt(j_3.toString(), 10)].points[segments[parseInt(j_3.toString(), 10)].points.length - 1].x + ' ' + segments[parseInt(j_3.toString(), 10)].points[segments[parseInt(j_3.toString(), 10)].points.length - 1].y;\n path += 'C' +\n segments[parseInt(j_3.toString(), 10)].bezierPoint1.x + ' ' + segments[parseInt(j_3.toString(), 10)].bezierPoint1.y + ' ' + segments[parseInt(j_3.toString(), 10)].bezierPoint2.x + ' '\n + segments[parseInt(j_3.toString(), 10)].bezierPoint2.y + ' ' + lastPoint;\n }\n }\n else {\n for (var k = 0; k < pts.length; k++) {\n getPt = pts[parseInt(k.toString(), 10)];\n if (k === 0) {\n path = 'M' + getPt.x + ' ' + getPt.y;\n }\n if (k > 0) {\n path = this.bridgePath(connector, path, k);\n path += ' ' + 'L' + getPt.x + ' ' + getPt.y;\n }\n }\n }\n }\n return path;\n };\n /** @private */\n Connector.prototype.updateShapeElement = function (connector) {\n var element;\n switch (connector.shape.type) {\n case 'Bpmn':\n if (connector.wrapper.children[3] instanceof PathElement) {\n element = connector.wrapper.children[3];\n }\n if (connector.shape.flow === 'Message' ||\n (isBlazor() && connector.shape.bpmnFlow === 'Message')) {\n this.updateShapePosition(connector, element);\n }\n break;\n case 'UmlActivity':\n if (connector.shape.flow === 'Exception' || (isBlazor() &&\n connector.shape.umlActivityFlow === 'Exception')) {\n this.getUMLExceptionFlow(connector.wrapper.children[0]);\n }\n break;\n }\n };\n /** @private */\n Connector.prototype.updateShapePosition = function (connector, element) {\n var segmentOffset = 0.5;\n var angle;\n var pt;\n var length = 0;\n var anglePoints = this.intermediatePoints;\n for (var i = 0; i < anglePoints.length - 1; i++) {\n length = length + this.distance(anglePoints[parseInt(i.toString(), 10)], anglePoints[i + 1]);\n var offsetLength = length * segmentOffset;\n if (length >= offsetLength) {\n angle = findAngle(anglePoints[parseInt(i.toString(), 10)], anglePoints[i + 1]);\n pt = Point.transform(anglePoints[parseInt(i.toString(), 10)], angle, offsetLength);\n }\n }\n element.offsetX = pt.x;\n element.offsetY = pt.y;\n };\n /** @hidden */\n Connector.prototype.scale = function (sw, sh, width, height, refObject) {\n var tx = 0;\n var ty = 0;\n if (this.wrapper && this.wrapper.outerBounds) {\n var outerBounds = getOuterBounds(this);\n // EJ2-56887 - Connector do not get rendered properly in symbol palette.\n // Added the absolute command to change the connector height to positive if it is in negative value.\n var connWidth = Math.abs((this.wrapper.bounds.width || this.style.strokeWidth || 1) - 2);\n var connHeight = Math.abs((this.wrapper.bounds.height || this.style.strokeWidth || 1) - 2);\n tx = (outerBounds.width - connWidth);\n ty = (outerBounds.height - connHeight);\n sw = Math.abs((width - (Math.max(tx, ty))) / connWidth);\n sh = Math.abs((height - (Math.max(tx, ty))) / connHeight);\n tx = ty = Math.min(tx, ty);\n }\n sw = sh = Math.min(sw, sh);\n var matrix = identityMatrix();\n refObject = refObject || this.wrapper;\n rotateMatrix(matrix, -refObject.rotateAngle, refObject.offsetX, refObject.offsetY);\n scaleMatrix(matrix, sw, sh, refObject.offsetX, refObject.offsetY);\n rotateMatrix(matrix, refObject.rotateAngle, refObject.offsetX, refObject.offsetY);\n var points = transformPointsByMatrix(matrix, this.intermediatePoints);\n this.sourcePoint = points[0];\n this.targetPoint = points[points.length - 1];\n points = this.intermediatePoints = findConnectorPoints(this);\n updateConnector(this, points);\n return { x: tx, y: ty };\n };\n /**\n * @private\n * Returns the name of class Connector\n */\n Connector.prototype.getClassName = function () {\n return 'Connector';\n };\n __decorate([\n ComplexFactory(getConnectorType)\n ], Connector.prototype, \"shape\", void 0);\n __decorate([\n Property(ConnectorConstraints.Default)\n ], Connector.prototype, \"constraints\", void 0);\n __decorate([\n Property(10)\n ], Connector.prototype, \"bridgeSpace\", void 0);\n __decorate([\n Collection([], PathAnnotation)\n ], Connector.prototype, \"annotations\", void 0);\n __decorate([\n Complex({}, Point)\n ], Connector.prototype, \"sourcePoint\", void 0);\n __decorate([\n Complex({}, Point)\n ], Connector.prototype, \"targetPoint\", void 0);\n __decorate([\n Collection([], ConnectorFixedUserHandle)\n ], Connector.prototype, \"fixedUserHandles\", void 0);\n __decorate([\n CollectionFactory(getSegmentType)\n ], Connector.prototype, \"segments\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"sourceID\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"targetID\", void 0);\n __decorate([\n Property(10)\n ], Connector.prototype, \"hitPadding\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"connectionPadding\", void 0);\n __decorate([\n Property('Straight')\n ], Connector.prototype, \"type\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"cornerRadius\", void 0);\n __decorate([\n Complex({ shape: 'None' }, Decorator)\n ], Connector.prototype, \"sourceDecorator\", void 0);\n __decorate([\n Complex({ shape: 'Arrow' }, Decorator)\n ], Connector.prototype, \"targetDecorator\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], Connector.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"sourcePortID\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"targetPortID\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"sourcePadding\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Connector.prototype, \"previewSize\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Connector.prototype, \"dragSize\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"targetPadding\", void 0);\n __decorate([\n Property(13)\n ], Connector.prototype, \"connectorSpacing\", void 0);\n __decorate([\n Complex({ strokeWidth: 1, strokeColor: 'black' }, StrokeStyle)\n ], Connector.prototype, \"style\", void 0);\n __decorate([\n Property(null)\n ], Connector.prototype, \"maxSegmentThumb\", void 0);\n __decorate([\n Property(false)\n ], Connector.prototype, \"allowNodeOverlap\", void 0);\n __decorate([\n Complex({}, BezierSettings)\n ], Connector.prototype, \"bezierSettings\", void 0);\n __decorate([\n Property(null)\n ], Connector.prototype, \"wrapper\", void 0);\n return Connector;\n}(NodeBase));\nexport { Connector };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Component, Property } from '@syncfusion/ej2-base';\nimport { createSvgElement, createHtmlElement, setAttributeSvg } from '../diagram/utility/dom-util';\nimport { Size } from '../diagram/primitives/size';\nimport { getFunction } from '../diagram/utility/base-util';\n/**\n * Represents the Ruler component that measures the Diagram objects, indicate positions, and align Diagram elements.\n * ```html\n *
Show Ruler
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Ruler = /** @class */ (function (_super) {\n __extends(Ruler, _super);\n /**\n * Constructor for creating the Ruler Component\n *\n * @param {RulerModel} options The ruler model.\n * @param {string | HTMLElement} element The ruler element.\n */\n function Ruler(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.offset = 0;\n /** @private */\n _this.scale = 1;\n return _this;\n }\n /**\n * Initializes the values of private members.\n *\n * @returns {void} Initializes the values of private members.\n * @private\n */\n Ruler.prototype.preRender = function () {\n this.unWireEvents();\n this.wireEvents();\n };\n /**\n * Renders the rulers.\n *\n * @returns {void} Renders the rulers.\n * @private\n */\n Ruler.prototype.render = function () {\n this.updateRulerGeometry();\n this.renderComplete();\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n Ruler.prototype.getModuleName = function () {\n return 'Ruler';\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n Ruler.prototype.destroy = function () {\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n this.element.classList.remove('e-ruler');\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Get the properties to be maintained in the persisted state.\n */\n Ruler.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Refreshes the ruler when the Ruler properties are updated\\\n *\n * @returns { void} Refreshes the ruler when the Ruler properties are updated .\\\n * @param {RulerModel} newProp - provide the newProp value.\n * @param {RulerModel} oldProp - provide the oldProp value.\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Ruler.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'length':\n case 'interval':\n case 'segmentWidth':\n case 'tickAlignment':\n case 'markerColor':\n case 'thickness':\n this.updateRuler();\n break;\n }\n }\n };\n Ruler.prototype.updateRulerGeometry = function () {\n this.element.style.textAlign = 'left';\n this.renderRulerSpace();\n this.updateRuler();\n };\n Ruler.prototype.renderRulerSpace = function () {\n var rulerGeometry = this.getRulerGeometry();\n var div = document.getElementById(this.element.id + '_ruler_space');\n if (!div) {\n div = createHtmlElement('div', {\n 'id': this.element.id + '_ruler_space',\n 'style': 'height:' + rulerGeometry.height + 'px;width:' + rulerGeometry.width + 'px;cssFloat:' + 'left;'\n });\n this.element.appendChild(div);\n }\n return div;\n };\n Ruler.prototype.updateRuler = function () {\n var rulerSize = this.getRulerSize();\n var rulerGeometry = this.getRulerGeometry();\n var length = 0;\n var offset = 0;\n var availableSize = new Size();\n var svg = this.getRulerSVG(rulerGeometry);\n if (svg) {\n length = this.length;\n availableSize.height = rulerSize;\n offset = this.offset;\n if (length && length !== Infinity) {\n var unitLength = length + this.segmentWidth;\n var unitOffset = offset;\n this.updateSegments(unitOffset, (unitLength + Math.abs(unitOffset)), svg, rulerSize);\n }\n }\n };\n Ruler.prototype.updateSegments = function (start, end, svg, rulerSize) {\n var run = start;\n var trans = { trans: 0 };\n while (run < end) {\n var rulerSegment = this.getNewSegment(run, svg);\n if (rulerSegment) {\n svg.appendChild(rulerSegment.segment);\n run = this.updateSegment(start, end, rulerSegment, run, trans, rulerSize);\n }\n }\n };\n Ruler.prototype.updateSegment = function (start, end, rulerSegment, run, trans, rulerSize) {\n var segWidth = this.updateSegmentWidth(this.scale);\n if (run === start) {\n this.startValue = Math.floor(start / segWidth) * segWidth / this.scale;\n this.startValue = (this.startValue % 1) !== 0 ? Number((this.startValue).toFixed(1)) : this.startValue;\n rulerSegment.label.textContent = this.startValue.toString();\n this.defStartValue = run = this.startValue * this.scale;\n if (this.orientation === 'Horizontal') {\n this.hRulerOffset = start - run;\n }\n else {\n this.vRulerOffset = start - run;\n }\n }\n else {\n this.startValue = (run / this.scale);\n this.startValue = (this.startValue % 1) !== 0 ? Number((this.startValue).toFixed(1)) : this.startValue;\n rulerSegment.label.textContent = this.startValue.toString();\n }\n this.updateTickLabel(rulerSegment, rulerSize);\n var translate = (this.orientation === 'Horizontal') ? ((trans.trans + 0.5) + ',0.5') : ('0.5,' + (trans.trans + 0.5));\n rulerSegment.segment.setAttribute('transform', 'translate(' + translate + ')');\n trans.trans += segWidth;\n run += segWidth;\n return run;\n };\n Ruler.prototype.updateTickLabel = function (rulerSegment, rulerSize) {\n var bBox = rulerSegment.segment.lastChild.getBBox();\n var isHorizontal = (this.orientation === 'Horizontal') ? true : false;\n var isRightOrBottom = (this.tickAlignment === 'RightOrBottom') ? true : false;\n var x = isHorizontal ? 2 : 0;\n var y = isHorizontal ? (isRightOrBottom ? (rulerSize / 2 + (11 / 2) - (11 / 2)) :\n (rulerSize / 2 + (11 / 2))) : bBox.height;\n var translate = isRightOrBottom ? (-(bBox.width + 2) + ',' + ((rulerSize / 2) - bBox.height)) :\n (-(bBox.width + 2) + ',' + ((rulerSize / 2) - bBox.height / 2));\n var attr = isHorizontal ? { 'x': x, 'y': y } :\n { 'x': x, 'y': y, 'transform': 'rotate(270)' + 'translate(' + translate + ')' };\n setAttributeSvg(rulerSegment.segment.lastChild, attr);\n };\n Ruler.prototype.getNewSegment = function (run, svg) {\n var segment = this.createNewTicks(run, svg);\n var label = this.createTickLabel(svg, segment);\n return { segment: segment, label: label };\n };\n Ruler.prototype.createNewTicks = function (run, svg) {\n var tick;\n var tickInterval;\n var segmentWidth = this.updateSegmentWidth(this.scale);\n //let g: SVGElement;\n var attr = { 'class': 'e-ruler-segment' };\n var g = createSvgElement('g', attr);\n for (var i = 0; i < this.interval; i++) {\n tickInterval = segmentWidth / this.interval;\n tick = this.createTick(svg, tickInterval, i + 1, run);\n g.appendChild(tick);\n }\n return g;\n };\n Ruler.prototype.getLinePoint = function (svg, tickInterval, length) {\n var segmentWidth = this.updateSegmentWidth(this.scale);\n var rulerSize = this.getRulerSize();\n tickInterval = tickInterval * (length - 1);\n length = ((tickInterval % segmentWidth) === 0) ? rulerSize : rulerSize * 0.3;\n return length;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Ruler.prototype.createTick = function (svg, tickInterval, length, run) {\n var ruler;\n //let line: SVGElement;\n var linePoint = this.getLinePoint(svg, tickInterval, length);\n var rulerSize = this.getRulerSize();\n //let args: IArrangeTickOptions;\n //let attr: Object;\n var isHorizontal = (this.orientation === 'Horizontal') ? true : false;\n var isRightOrBottom = (this.tickAlignment === 'RightOrBottom') ? true : false;\n var arrangeTick = getFunction(this.arrangeTick);\n // eslint-disable-next-line\n var args = { ruler: ruler, tickLength: linePoint, tickInterval: ((this.segmentWidth / this.interval) * (length - 1)) };\n if (arrangeTick) {\n arrangeTick(args);\n }\n linePoint = args.tickLength;\n var point = tickInterval * (length - 1);\n var x1 = isHorizontal ? point : (isRightOrBottom ? rulerSize : 0);\n var x2 = isHorizontal ? point : (isRightOrBottom ? (rulerSize - linePoint) : (rulerSize - (rulerSize - linePoint)));\n var y1 = isHorizontal ? (isRightOrBottom ? rulerSize : (rulerSize - (rulerSize - linePoint))) : point;\n var y2 = isHorizontal ? (isRightOrBottom ? (rulerSize - linePoint) : 0) : point;\n var attr = { 'x1': x1, 'y1': y1, 'x2': x2, 'y2': y2, 'stroke-width': '1', 'stroke': 'black' };\n var line = createSvgElement('line', attr);\n line.setAttribute('class', 'e-ruler-tick');\n return line;\n };\n Ruler.prototype.createTickLabel = function (svg, segment) {\n var text;\n if (segment) {\n var attr = { 'class': 'e-ruler-tick-label' };\n text = createSvgElement('text', attr);\n segment.appendChild(text);\n }\n return text;\n };\n /**\n * @private\n * @param {number} scale\n */\n /**\n * updateSegmentWidth method\\\n *\n * @returns {number} updateSegmentWidth method .\\\n * @param {string} scale - provide the scale value.\n *\n * @private\n */\n Ruler.prototype.updateSegmentWidth = function (scale) {\n if (this.segmentWidth !== 100) {\n return this.segmentWidth;\n }\n var five = 25;\n var multiples = 1;\n var div;\n //let scaleRound: number;\n var fifty = 100;\n var scaleRound = Math.pow(2, Math.round(Math.log(scale) / Math.log(2)));\n div = fifty;\n div = (fifty / scaleRound);\n while (div > 100) {\n multiples /= 10;\n div /= 10;\n }\n while (div < 25) {\n multiples *= 10;\n div *= 10;\n }\n if (div >= five && div % five !== 0) {\n div = Math.round(div / five) * five;\n }\n return div * scale / multiples;\n };\n Ruler.prototype.createMarkerLine = function (rulerSvg, rulerObj, attr) {\n var line;\n if (rulerObj) {\n line = rulerSvg.getElementById(rulerObj.id + '_marker');\n if (line) {\n line.parentNode.removeChild(line);\n }\n line = createSvgElement('line', attr);\n }\n return line;\n };\n /**\n * updateSegmentWidth method\\\n *\n * @returns {void} updateSegmentWidth method .\\\n * @param {HTMLElement} rulerObj - Defines the ruler Object\n * @param {PointModel} currentPoint - Defines the current point for ruler Object\n * @param {number} offset - Defines the offset ruler Object\n *\n * @private\n */\n Ruler.prototype.drawRulerMarker = function (rulerObj, currentPoint, offset) {\n var rulerSvg;\n var rulerSize;\n var scale;\n var diff;\n var i;\n var attr;\n var line;\n var isHorizontal = this.orientation === 'Horizontal' ? true : false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var rulerSvgElements = rulerObj.getElementsByTagName('svg');\n for (i = 0; i < rulerSvgElements.length; i++) {\n if (rulerSvgElements[parseInt(i.toString(), 10)]) {\n rulerSvg = rulerSvgElements[parseInt(i.toString(), 10)];\n }\n break;\n }\n if (rulerSvg) {\n rulerSize = this.getRulerSize();\n attr = {\n 'id': rulerObj.id + '_marker', 'x1': 0, 'y1': 0, 'x2': (isHorizontal ? 0 : rulerSize),\n 'y2': (isHorizontal ? rulerSize : 0), 'stroke': this.markerColor, 'stroke-width': 1.5,\n 'class': 'e-d-ruler-marker'\n };\n line = this.createMarkerLine(rulerSvg, rulerObj, attr);\n scale = this.scale;\n diff = this.offset - this.defStartValue;\n var point = isHorizontal ? currentPoint.x : currentPoint.y;\n var move = (point * scale) + offset + diff;\n line.setAttribute('transform', 'translate(' + (isHorizontal ? ((move + 0.5) + ' 0.5') : ('0.5 ' + (move + 0.5))) + ')');\n rulerSvg.appendChild(line);\n }\n };\n Ruler.prototype.getRulerGeometry = function () {\n return new Size(this.element ? this.element.getBoundingClientRect().width : 0, this.element ? this.element.getBoundingClientRect().height : 0);\n };\n Ruler.prototype.getRulerSize = function () {\n return this.thickness;\n };\n Ruler.prototype.getRulerSVG = function (rulerGeometry) {\n var rulerSpace;\n var rulerSize = this.getRulerSize();\n var svg;\n if (this.element) {\n rulerSpace = document.getElementById(this.element.id + '_ruler_space');\n if (rulerSpace) {\n var attr = {\n 'id': this.element.id + '_Ruler_svg',\n width: this.orientation === 'Horizontal' ? (rulerGeometry.width + 200) : rulerSize + 'px',\n height: this.orientation === 'Horizontal' ? rulerSize : (rulerGeometry.height + 200) + 'px',\n style: 'position:inherit;'\n };\n svg = createSvgElement('svg', attr);\n if (rulerSpace.childNodes.length > 0) {\n for (var i = rulerSpace.childNodes.length - 1; i >= 0; i--) {\n rulerSpace.childNodes[parseInt(i.toString(), 10)].parentNode.removeChild(rulerSpace.childNodes[parseInt(i.toString(), 10)]);\n }\n }\n rulerSpace.appendChild(svg);\n }\n }\n return svg;\n };\n /**\n * Method to bind events for the ruler \\\n *\n * @returns {void} Method to bind events for the ruler .\\\n * @private\n */\n Ruler.prototype.wireEvents = function () {\n //wire Events\n };\n /**\n * Method to unbind events for the ruler \\\n *\n * @returns {void} Method to unbind events for the ruler .\\\n * @private\n */\n Ruler.prototype.unWireEvents = function () {\n //unWire Events\n };\n __decorate([\n Property(5)\n ], Ruler.prototype, \"interval\", void 0);\n __decorate([\n Property(100)\n ], Ruler.prototype, \"segmentWidth\", void 0);\n __decorate([\n Property('Horizontal')\n ], Ruler.prototype, \"orientation\", void 0);\n __decorate([\n Property('RightOrBottom')\n ], Ruler.prototype, \"tickAlignment\", void 0);\n __decorate([\n Property('red')\n ], Ruler.prototype, \"markerColor\", void 0);\n __decorate([\n Property(25)\n ], Ruler.prototype, \"thickness\", void 0);\n __decorate([\n Property(null)\n ], Ruler.prototype, \"arrangeTick\", void 0);\n __decorate([\n Property(400)\n ], Ruler.prototype, \"length\", void 0);\n return Ruler;\n}(Component));\nexport { Ruler };\n","import { createHtmlElement, removeElement } from '../utility/dom-util';\nimport { Ruler } from '../../ruler/index';\nimport { Size } from '../primitives/size';\nimport { getFunction } from '../utility/base-util';\n/**\n * defines the helper methods for the ruler\n */\n/**\n * renderOverlapElement method \\\n *\n * @returns {void} renderOverlapElement method .\\\n * @param { Diagram} diagram - provide the content value.\n * @private\n */\nexport function renderOverlapElement(diagram) {\n var rulerSize = getRulerSize(diagram);\n var attributes = {\n 'id': diagram.element.id + '_overlapRuler',\n style: 'height:' + rulerSize.height + 'px;width:' + rulerSize.width + 'px;position:absolute;left:0;top:0',\n class: 'e-ruler-overlap'\n };\n var overlap = createHtmlElement('div', attributes);\n diagram.element.insertBefore(overlap, diagram.element.firstChild);\n}\n/**\n * renderRuler method \\\n *\n * @returns {void} renderRuler method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nexport function renderRuler(diagram, isHorizontal) {\n var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n var rulerSize = getRulerSize(diagram);\n var rulerGeometry = getRulerGeometry(diagram);\n var margin = isHorizontal ? ('margin-left:' + rulerSize.width + 'px;') : ('margin-top:' + rulerSize.height + 'px;');\n if (!div) {\n var style = 'height:' + (isHorizontal ? rulerSize.height : (rulerGeometry.height + 100)) + 'px;overflow:hidden;width:' +\n (isHorizontal ? (rulerGeometry.width + 100) : rulerSize.width) + 'px;position:absolute;font-size:11px;' + margin;\n var attributes = {\n 'id': diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'),\n style: style\n };\n div = createHtmlElement('div', attributes);\n }\n diagram.element.insertBefore(div, diagram.element.firstChild);\n var diagramRuler = isHorizontal ? diagram.rulerSettings.horizontalRuler : diagram.rulerSettings.verticalRuler;\n var ruler = new Ruler(diagramRuler);\n ruler.orientation = isHorizontal ? 'Horizontal' : 'Vertical';\n ruler.length = (isHorizontal ? rulerGeometry.width : rulerGeometry.height) + diagramRuler.segmentWidth;\n ruler.appendTo('#' + diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n // eslint-disable-next-line\n isHorizontal ? diagram.hRuler = ruler : diagram.vRuler = ruler;\n var rulerObj = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n // eslint-disable-next-line\n isHorizontal ? diagram.hRuler.element = rulerObj : diagram.vRuler.element = rulerObj;\n}\n/**\n * updateRuler method \\\n *\n * @returns {void} updateRuler method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateRuler(diagram) {\n var hOffset = -diagram.scroller.horizontalOffset;\n var vOffset = -diagram.scroller.verticalOffset;\n if (diagram && diagram.rulerSettings.showRulers) {\n diagram.hRuler.length = 0;\n diagram.vRuler.length = 0;\n if (hOffset !== undefined && diagram.hRuler.element) {\n updateRulerDimension(diagram, diagram.hRuler, hOffset, true);\n }\n if (vOffset !== undefined && diagram.vRuler.element) {\n updateRulerDimension(diagram, diagram.vRuler, vOffset, false);\n }\n }\n else {\n removeRulerElements(diagram);\n }\n}\n/**\n * removeRulerElements method \\\n *\n * @returns {void} removeRulerElements method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function removeRulerElements(diagram) {\n removeElement(diagram.element.id + '_hRuler');\n removeElement(diagram.element.id + '_vRuler');\n removeElement(diagram.element.id + '_overlapRuler');\n}\n/**\n * getRulerSize method \\\n *\n * @returns {void} getRulerSize method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function getRulerSize(diagram) {\n var top = 0;\n var left = 0;\n if (diagram.rulerSettings.showRulers) {\n top = diagram.rulerSettings.horizontalRuler.thickness;\n left = diagram.rulerSettings.verticalRuler.thickness;\n }\n return new Size(left, top);\n}\n/**\n * getRulerGeometry method \\\n *\n * @returns {void} getRulerGeometry method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function getRulerGeometry(diagram) {\n var rulerSize = getRulerSize(diagram);\n var height = diagram.scroller.viewPortHeight;\n var width = diagram.scroller.viewPortWidth;\n if (width < diagram.element.clientWidth - rulerSize.width) {\n width = diagram.element.clientWidth - rulerSize.width;\n }\n if (height < diagram.element.clientHeight - rulerSize.height) {\n height = diagram.element.clientHeight - rulerSize.height;\n }\n if (diagram.hRuler && diagram.hRuler.length) {\n width = diagram.hRuler.length;\n }\n if (diagram.vRuler && diagram.vRuler.length) {\n height = diagram.vRuler.length;\n }\n return new Size(width, height);\n}\n/**\n * removeRulerMarkers method \\\n *\n * @returns {void} removeRulerMarkers method .\\\n * @private\n */\nexport function removeRulerMarkers() {\n var markers = document.getElementsByClassName('e-d-ruler-marker');\n var marker;\n var i;\n if (markers && markers.length > 0) {\n for (i = markers.length - 1; i >= 0; i--) {\n marker = markers[parseInt(i.toString(), 10)];\n if (marker) {\n marker.parentNode.removeChild(marker);\n }\n }\n }\n}\n/**\n * drawRulerMarkers method \\\n *\n * @returns {void} drawRulerMarkers method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { PointModel} currentPoint - provide the content value.\n * @private\n */\nexport function drawRulerMarkers(diagram, currentPoint) {\n if (diagram.rulerSettings.showRulers) {\n diagram.hRuler.drawRulerMarker(diagram.hRuler.element, currentPoint, diagram.scroller.horizontalOffset);\n diagram.vRuler.drawRulerMarker(diagram.vRuler.element, currentPoint, diagram.scroller.verticalOffset);\n }\n}\n/**\n * updateRulerDimension method \\\n *\n * @returns {void} updateRulerDimension method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { Ruler} ruler - provide the content value.\n * @param { number} offset - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nfunction updateRulerDimension(diagram, ruler, offset, isHorizontal) {\n var rulerSize = getRulerSize(diagram);\n var rulerGeometry = getRulerGeometry(diagram);\n var diagramRuler = isHorizontal ? diagram.rulerSettings.horizontalRuler : diagram.rulerSettings.verticalRuler;\n updateRulerDiv(diagram, rulerGeometry, isHorizontal);\n updateRulerSpace(diagram, rulerGeometry, isHorizontal);\n ruler.offset = offset;\n ruler.scale = diagram.scroller.currentZoom;\n ruler.length = (isHorizontal ? rulerGeometry.width : rulerGeometry.height) + 100;\n ruler.arrangeTick = getFunction(diagramRuler.arrangeTick);\n ruler.dataBind();\n var rulerObj = isHorizontal ? diagram.hRuler.element : diagram.vRuler.element;\n if (isHorizontal) {\n rulerObj.style.marginLeft = (rulerSize.width - ruler.hRulerOffset) + 'px';\n }\n else {\n rulerObj.style.marginTop = (rulerSize.height - ruler.vRulerOffset) + 'px';\n }\n}\n/**\n * updateRulerSpace method \\\n *\n * @returns {void} updateRulerSpace method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { Size} rulerGeometry - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nfunction updateRulerSpace(diagram, rulerGeometry, isHorizontal) {\n var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler_ruler_space' : '_vRuler_ruler_space'));\n var ruler = isHorizontal ? diagram.hRuler : diagram.vRuler;\n if (div && diagram && rulerGeometry) {\n div.style.width = (isHorizontal ? (rulerGeometry.width + (ruler.segmentWidth * 2)) : ruler.thickness) + 'px';\n div.style.height = (isHorizontal ? ruler.thickness : (rulerGeometry.height + (ruler.segmentWidth * 2))) + 'px';\n }\n}\n/**\n * updateRulerDiv method \\\n *\n * @returns {void} updateRulerDiv method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { Size} rulerGeometry - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nfunction updateRulerDiv(diagram, rulerGeometry, isHorizontal) {\n var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n var ruler = isHorizontal ? diagram.hRuler : diagram.vRuler;\n if (div && diagram && rulerGeometry) {\n div.style.width = (isHorizontal ? (rulerGeometry.width + ruler.segmentWidth) : ruler.thickness) + 'px';\n div.style.height = (isHorizontal ? ruler.thickness : (rulerGeometry.height + ruler.segmentWidth)) + 'px';\n // eslint-disable-next-line\n div = document.getElementById(diagram.element.id + '_overlapRuler');\n if (div) {\n // eslint-disable-next-line\n isHorizontal ? (div.style.height = ruler.thickness + 'px') : (div.style.width = ruler.thickness + 'px');\n }\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { DiagramTooltip } from '../objects/tooltip';\n/**\n * A collection of frequently used commands that will be added around the selector\n * ```html\n *
\n * ```\n * ```typescript\n * let nodes: NodeModel[] = [{\n * id: 'node1', width: 100, height: 100, offsetX: 100, offsetY: 100,\n * annotations: [{ content: 'Default Shape' }]\n * },\n * {\n * id: 'node2', width: 100, height: 100, offsetX: 300, offsetY: 100,\n * shape: {\n * type: 'Basic', shape: 'Ellipse'\n * },\n * annotations: [{ content: 'Path Element' }]\n * }\n * ];\n * let connectors: ConnectorModel[] = [{\n * id: 'connector1',\n * type: 'Straight',\n * sourcePoint: { x: 100, y: 300 },\n * targetPoint: { x: 200, y: 400 },\n * }];\n * let handle: UserHandleModel[] = [\n * { name: 'handle', margin: { top: 0, bottom: 0, left: 0, right: 0 }, offset: 0,\n * pathData: 'M 376.892,225.284L 371.279,211.95L 376.892,198.617L 350.225,211.95L 376.892,225.284 Z',\n * side: 'Top', horizontalAlignment: 'Center', verticalAlignment: 'Center',\n * pathColor: 'yellow' }];\n * let diagram: Diagram = new Diagram({\n * ...\n * connectors: connectors, nodes: nodes,\n * selectedItems: { constraints: SelectorConstraints.All, userHandles: handle },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n * @default {}\n */\nvar UserHandle = /** @class */ (function (_super) {\n __extends(UserHandle, _super);\n function UserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * Returns the name of class UserHandle\n *\n * @returns {string} Returns the name of class UserHandle\n * @private\n */\n UserHandle.prototype.getClassName = function () {\n return 'UserHandle';\n };\n __decorate([\n Property('')\n ], UserHandle.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"pathData\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"source\", void 0);\n __decorate([\n Property('#000000')\n ], UserHandle.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Top')\n ], UserHandle.prototype, \"side\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"borderColor\", void 0);\n __decorate([\n Property(0.5)\n ], UserHandle.prototype, \"borderWidth\", void 0);\n __decorate([\n Property(25)\n ], UserHandle.prototype, \"size\", void 0);\n __decorate([\n Property('white')\n ], UserHandle.prototype, \"pathColor\", void 0);\n __decorate([\n Property(10)\n ], UserHandle.prototype, \"displacement\", void 0);\n __decorate([\n Property(true)\n ], UserHandle.prototype, \"visible\", void 0);\n __decorate([\n Property(0)\n ], UserHandle.prototype, \"offset\", void 0);\n __decorate([\n Complex({}, Margin)\n ], UserHandle.prototype, \"margin\", void 0);\n __decorate([\n Property('Center')\n ], UserHandle.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], UserHandle.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property(false)\n ], UserHandle.prototype, \"disableNodes\", void 0);\n __decorate([\n Property(false)\n ], UserHandle.prototype, \"disableConnectors\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], UserHandle.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"template\", void 0);\n return UserHandle;\n}(ChildProperty));\nexport { UserHandle };\n","/**\n * UMLActivityShapeDictionary defines the shape of the built-in uml activity shapes \\\n *\n * @returns { string } UMLActivityShapeDictionary defines the shape of the built-in uml activity shapes .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getUMLActivityShape(shape) {\n return umlActivityShapes[shape.toString()];\n}\n/* eslint-disable */\nvar umlActivityShapes = {\n // Action,\n 'Action': 'M 90 82.895 C 90 86.819 86.776 90 82.8 90 H 7.2 C 3.224 90 0 86.819 0 82.895' +\n ' V 7.105 C 0 3.181 3.224 0 7.2 0 h 75.6 C 86.776 0 90 3.181 90 7.105 V 82.895 Z',\n // Decision,\n 'Decision': 'M10,19.707L0.293,10L10,0.293L19.707,10L10,19.707z',\n // MergeNode,\n 'MergeNode': 'M10,19.707L0.293,10L10,0.293L19.707,10L10,19.707z',\n // InitialNode,\n 'InitialNode': 'M10,19.5c-5.238,0-9.5-4.262-9.5-9.5S4.762,0.5,10,0.5s9.5,4.262,9.5,9.5S15.238,19.5,10,19.5z',\n // ForkNode,\n 'ForkNode': 'm0.75,0.75l636.00002,0l0,290l-636.00002,0l0,-290z',\n // JoinNode,\n 'JoinNode': 'm0.75,0.75l636.00002,0l0,290l-636.00002,0l0,-290z',\n // TimeEvent,\n 'TimeEvent': 'M50.001,0.00286865 L25.001,25.0029 L0.000976562,0.00286865 L50.001,0.00286865 z' +\n ' M0.000976562,50.0029 L25.001,25.0029 L50.001,50.0029 L0.000976562,50.0029 z',\n // AcceptingEvent,\n 'AcceptingEvent': 'M17.8336 32.164 L29.64 24 L17.32 16 L48.1664 16 L48.5 32 Z',\n // SendSignal,\n 'SendSignal': 'M48.164 31.8336 L56 23.832 L47.836 16 L16.168 16 L16.1668 31.8336 Z',\n // ReceiveSignal,\n 'ReceiveSignal': 'M48.1664 31.8336 L39.836 24 L47.836 16 L16.168 16 L16.168 31.836 Z',\n // StructuredNode,\n 'StructuredNode': 'M0,0 L50,0 L50,50 L0,50 z',\n // Note,\n 'Note': 'M20 12 L4 12 L4 22 L22 22 L22 14 L20 14 L20 12 L22 14 Z'\n};\n/* eslint-enable */\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty, Collection } from '@syncfusion/ej2-base';\n/**\n * Defines the combination of keys and modifier keys\n */\nvar KeyGesture = /** @class */ (function (_super) {\n __extends(KeyGesture, _super);\n function KeyGesture() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], KeyGesture.prototype, \"key\", void 0);\n __decorate([\n Property()\n ], KeyGesture.prototype, \"keyModifiers\", void 0);\n return KeyGesture;\n}(ChildProperty));\nexport { KeyGesture };\n/**\n * Defines a command and a key gesture to define when the command should be executed\n */\nvar Command = /** @class */ (function (_super) {\n __extends(Command, _super);\n function Command() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * Returns the name of class Command\n *\n * @returns {string} Returns the name of class Command\n * @private\n */\n Command.prototype.getClassName = function () {\n return 'Command';\n };\n __decorate([\n Property('')\n ], Command.prototype, \"name\", void 0);\n __decorate([\n Property()\n ], Command.prototype, \"canExecute\", void 0);\n __decorate([\n Property()\n ], Command.prototype, \"execute\", void 0);\n __decorate([\n Complex({}, KeyGesture)\n ], Command.prototype, \"gesture\", void 0);\n __decorate([\n Property('')\n ], Command.prototype, \"parameter\", void 0);\n return Command;\n}(ChildProperty));\nexport { Command };\n/**\n * Defines the collection of commands and the corresponding key gestures\n *\n */\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Collection([], Command)\n ], CommandManager.prototype, \"commands\", void 0);\n return CommandManager;\n}(ChildProperty));\nexport { CommandManager };\n/**\n * Defines the behavior of the context menu items\n */\nvar ContextMenuSettings = /** @class */ (function (_super) {\n __extends(ContextMenuSettings, _super);\n function ContextMenuSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], ContextMenuSettings.prototype, \"show\", void 0);\n __decorate([\n Property()\n ], ContextMenuSettings.prototype, \"showCustomMenuOnly\", void 0);\n __decorate([\n Property()\n ], ContextMenuSettings.prototype, \"items\", void 0);\n return ContextMenuSettings;\n}(ChildProperty));\nexport { ContextMenuSettings };\n","import { Size } from './../primitives/size';\nimport { Rect } from './../primitives/rect';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix, scaleMatrix } from './../primitives/matrix';\nimport { DiagramElement } from './../core/elements/diagram-element';\nimport { Container } from './../core/containers/container';\nimport { StrokeStyle, Stop } from './../core/appearance';\nimport { Point } from './../primitives/point';\nimport { ConnectorConstraints, NodeConstraints, PortConstraints, DiagramConstraints, DiagramTools, Transform, BlazorAction, ControlPointsVisibility } from './../enum/enum';\nimport { SelectorConstraints, ThumbsConstraints } from './../enum/enum';\nimport { PathElement } from './../core/elements/path-element';\nimport { DiagramNativeElement } from './../core/elements/native-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { ImageElement } from '../core/elements/image-element';\nimport { PathAnnotation, ShapeAnnotation } from './../objects/annotation';\nimport { Node, FlowShape, BasicShape, Native, Html, UmlActivityShape, BpmnGateway, BpmnDataObject, BpmnEvent, BpmnSubEvent, BpmnActivity, BpmnAnnotation, MethodArguments, UmlClassAttribute, UmlClassMethod, UmlClass, UmlInterface, UmlEnumerationMember, UmlEnumeration, Lane, Phase, ChildContainer, SwimLane, Path, Image, Text, BpmnShape, UmlClassifierShape, Header } from './../objects/node';\nimport { Connector, bezierPoints, BezierSegment, StraightSegment, OrthogonalSegment } from './../objects/connector';\nimport { getBasicShape } from './../objects/dictionary/basic-shapes';\nimport { getFlowShape } from './../objects/dictionary/flow-shapes';\nimport { Diagram } from './../diagram';\nimport { findAngle } from './connector';\nimport { getContent, removeElement, hasClass, getDiagramElement } from './dom-util';\nimport { getBounds, cloneObject, rotatePoint, getFunction } from './base-util';\nimport { getPolygonPath } from './../utility/path-util';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { getRulerSize } from '../ruler/ruler';\nimport { canResize } from './constraints-util';\nimport { UserHandle } from '../interaction/selector';\nimport { getUMLActivityShape } from '../objects/dictionary/umlactivity-shapes';\nimport { Canvas } from '../core/containers/canvas';\nimport { PointPort } from '../objects/port';\nimport { Command } from '../diagram/keyboard-commands';\nimport { pasteSwimLane } from './swim-lane-util';\nimport { isBlazor, Browser, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { ConnectorFixedUserHandle } from '../objects/fixed-user-handle';\n/**\n * completeRegion method\\\n *\n * @returns { void } completeRegion method .\\\n * @param {Rect} region - provide the region value.\n * @param {(NodeModel | ConnectorModel)[]} selectedObjects - provide the selectedObjects value.\n * @private\n */\nexport function completeRegion(region, selectedObjects) {\n var collection = [];\n for (var i = 0; i < selectedObjects.length; i++) {\n var obj = selectedObjects[parseInt(i.toString(), 10)];\n if (region.containsRect(obj.wrapper.bounds)) {\n collection.push(obj);\n }\n }\n return collection;\n}\n/**\n * findNodeByName method \\\n *\n * @returns { boolean } findNodeByName method .\\\n * @param {(NodeModel | ConnectorModel)[]} nodes - provide the nodes value.\n * @param {string} name - provide the orientation value.\n * @private\n */\nexport function findNodeByName(nodes, name) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[parseInt(i.toString(), 10)].id === name) {\n return true;\n }\n }\n return false;\n}\n/**\n * findNodeByName method \\\n *\n * @returns { string } findNodeByName method .\\\n * @param {(NodeModel | ConnectorModel)[]} drawingObject - provide the drawingObject value.\n * @private\n */\nexport function findObjectType(drawingObject) {\n var type;\n if (drawingObject) {\n if (drawingObject.type) {\n type = 'Connector';\n }\n else if (drawingObject.shape && !drawingObject.type) {\n type = 'Node';\n }\n }\n return type;\n}\n/**\n * setSwimLaneDefaults method \\\n *\n * @returns { void } setSwimLaneDefaults method .\\\n * @param {NodeModel | ConnectorModel} child - provide the child value.\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @private\n */\nexport function setSwimLaneDefaults(child, node) {\n if (node instanceof Node) {\n if (!child.shape.header) {\n node.shape.hasHeader = false;\n }\n }\n}\n/**\n * getSpaceValue method \\\n *\n * @returns { number } getSpaceValue method .\\\n * @param {number[]} intervals - provide the intervals value.\n * @param {boolean} isLine - provide the isLine value.\n * @param {number} i - provide the i value.\n * @param {number} space - provide the space value.\n * @private\n */\nexport function getSpaceValue(intervals, isLine, i, space) {\n space = !isLine ? ((intervals[i - 1] !== undefined) ? intervals[i - 1] + space : 0) : space;\n return space;\n}\n/**\n * getInterval method \\\n *\n * @returns { number[] } getInterval method .\\\n * @param {number[]} intervals - provide the intervals value.\n * @param {boolean} isLine - provide the isLine value.\n * @private\n */\nexport function getInterval(intervals, isLine) {\n var newInterval = [];\n if (!isLine) {\n for (var k = 0; k < intervals.length; k++) {\n newInterval.push(intervals[parseInt(k.toString(), 10)]);\n }\n newInterval.push(intervals[newInterval.length - 2]);\n newInterval.push(intervals[newInterval.length - 2]);\n }\n else {\n newInterval = intervals;\n }\n return newInterval;\n}\n/**\n * setPortsEdges method \\\n *\n * @returns { Node } setPortsEdges method .\\\n * @param {Node} node - provide the node value.\n * @private\n */\nexport function setPortsEdges(node) {\n for (var k = 0; k < node.ports.length; k++) {\n node.ports[parseInt(k.toString(), 10)].inEdges = [];\n node.ports[parseInt(k.toString(), 10)].outEdges = [];\n }\n return node;\n}\n/**\n * setUMLActivityDefaults method \\\n *\n * @returns { void } setUMLActivityDefaults method .\\\n * @param {NodeModel | ConnectorModel} child - provide the child value.\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @private\n */\nexport function setUMLActivityDefaults(child, node) {\n if (node instanceof Node) {\n var shape = (isBlazor() ? child.shape.umlActivityShape :\n child.shape.shape);\n switch (shape) {\n case 'JoinNode':\n if (!child.width) {\n node.width = 20;\n }\n if (!child.height) {\n node.height = 90;\n }\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n case 'ForkNode':\n if (!child.width) {\n node.width = 90;\n }\n if (!child.height) {\n node.height = 20;\n }\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n case 'InitialNode':\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n case 'FinalNode':\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n }\n }\n else {\n var flow = (isBlazor() ?\n child.shape.umlActivityFlow : child.shape.flow);\n switch (flow) {\n case 'Object':\n if (!child.style || !child.style.strokeDashArray) {\n node.style.strokeDashArray = '8 4';\n }\n if (!child.style || !child.style.strokeWidth) {\n node.style.strokeWidth = 2;\n }\n if (!child.targetDecorator || !child.targetDecorator.shape) {\n node.targetDecorator.shape = 'OpenArrow';\n }\n break;\n case 'Control':\n if (!child.style || !child.style.strokeWidth) {\n node.style.strokeWidth = 2;\n }\n if (!child.targetDecorator || !child.targetDecorator.shape) {\n node.targetDecorator.shape = 'OpenArrow';\n }\n if (!child.sourceDecorator || !child.sourceDecorator.shape) {\n node.sourceDecorator.shape = 'None';\n }\n break;\n }\n }\n}\n/* eslint-disable */\n/**\n * setConnectorDefaults method \\\n *\n * @returns { void } setConnectorDefaults method .\\\n * @param {ConnectorModel} child - provide the child value.\n * @param {ConnectorModel} node - provide the node value.\n * @private\n */\nexport function setConnectorDefaults(child, node) {\n switch ((child.shape).type) {\n case 'Bpmn':\n var bpmnFlow = (isBlazor() ? child.shape.bpmnFlow : child.shape.flow);\n switch (bpmnFlow) {\n case 'Sequence':\n if ((((child.shape.sequence) === 'Normal' && child.type !== 'Bezier')) ||\n ((child.shape.sequence) === 'Default') || ((child.shape.sequence) === 'Conditional')) {\n if (node.targetDecorator && node.targetDecorator.style) {\n node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style\n && child.targetDecorator.style.fill) || 'black';\n }\n if ((child.shape.sequence) === 'Conditional' && node.sourceDecorator) {\n if (node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n node.sourceDecorator.width = (child.sourceDecorator && child.sourceDecorator.width) || 20;\n node.sourceDecorator.height = (child.sourceDecorator && child.sourceDecorator.width) || 10;\n }\n }\n break;\n case 'Association':\n if (((child.shape.association) === 'Default') ||\n ((child.shape.association) === 'Directional') ||\n ((child.shape.association) === 'BiDirectional')) {\n if (node.targetDecorator && node.targetDecorator.style) {\n node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style &&\n child.targetDecorator.style.fill) || 'black';\n }\n if ((child.shape.association) === 'BiDirectional') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n node.sourceDecorator.width = (child.sourceDecorator && child.sourceDecorator.width) || 5;\n node.sourceDecorator.height = (child.sourceDecorator && child.sourceDecorator.height) || 10;\n }\n }\n }\n break;\n case 'Message':\n if (node.style && !node.style.strokeDashArray) {\n node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '4 4';\n }\n break;\n }\n break;\n case 'UmlActivity':\n var flow = (isBlazor() ?\n child.shape.umlActivityFlow : child.shape.flow);\n switch (flow) {\n case 'Exception':\n if (((child.shape.association) === 'Directional') ||\n ((child.shape.association) === 'BiDirectional')) {\n node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '2 2';\n }\n break;\n }\n break;\n case 'UmlClassifier':\n var hasRelation = false;\n if (child.shape.relationship === 'Association') {\n hasRelation = true;\n }\n else if (child.shape.relationship === 'Inheritance') {\n if (node.targetDecorator && node.targetDecorator.style) {\n node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style &&\n child.targetDecorator.style.fill) || 'white';\n }\n if (node.style) {\n hasRelation = true;\n node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '4 4';\n }\n }\n else if (child.shape.relationship === 'Composition') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'black';\n }\n hasRelation = true;\n }\n else if (child.shape.relationship === 'Aggregation' ||\n child.shape.relationship === undefined) {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n hasRelation = true;\n }\n else if (child.shape.relationship === 'Dependency') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n hasRelation = true;\n node.style.strokeDashArray = '4 4';\n }\n else if (child.shape.relationship === 'Realization') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n hasRelation = true;\n }\n if (hasRelation) {\n node.style.strokeWidth = (child.style && child.style.strokeWidth) || 2;\n }\n break;\n }\n}\n/* eslint-enable */\n/**\n * findNearestPoint method \\\n *\n * @returns { PointModel } findNearestPoint method .\\\n * @param {PointModel} reference - provide the reference value.\n * @param {PointModel} start - provide the start value.\n * @param {PointModel} end - provide the end value.\n * @private\n */\nexport function findNearestPoint(reference, start, end) {\n var shortestPoint;\n var shortest = Point.findLength(start, reference);\n var shortest1 = Point.findLength(end, reference);\n if (shortest > shortest1) {\n shortestPoint = end;\n }\n else {\n shortestPoint = start;\n }\n var angleBWStAndEnd = Point.findAngle(start, end);\n var angleBWStAndRef = Point.findAngle(shortestPoint, reference);\n var r = Point.findLength(shortestPoint, reference);\n var vaAngle = angleBWStAndRef + ((angleBWStAndEnd - angleBWStAndRef) * 2);\n return {\n x: (shortestPoint.x + r * Math.cos(vaAngle * Math.PI / 180)),\n y: (shortestPoint.y + r * Math.sin(vaAngle * Math.PI / 180))\n };\n}\n/**\n * pointsForBezier method \\\n *\n * @returns { PointModel[] } pointsForBezier method .\\\n * @param {ConnectorModel} connector - provide the connector value.\n * @private\n */\nfunction pointsForBezier(connector) {\n var points = [];\n if (connector.type === 'Bezier') {\n var k = 0;\n for (var i = 0; i < connector.segments.length; i++) {\n var tolerance = 1.5;\n var segment = connector.segments[parseInt(i.toString(), 10)];\n //const pt: PointModel = { x: 0, y: 0 };\n var point1 = !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1;\n var point2 = !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2;\n var max = Number((connector.distance(point1, segment.points[0]) +\n connector.distance(point2, point1) +\n connector.distance(segment.points[1], point2)) / tolerance);\n for (var j = 0; j < max - 1; j = j + 10) {\n points[parseInt(k.toString(), 10)] =\n bezierPoints(connector, segment.points[0], !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1, !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2, segment.points[1], j, max);\n k++;\n }\n }\n }\n return points;\n}\n/**\n * isDiagramChild method \\\n *\n * @returns { boolean } isDiagramChild method .\\\n * @param {HTMLElement} htmlLayer - provide the htmlLayer value.\n * @private\n */\nexport function isDiagramChild(htmlLayer) {\n var element = htmlLayer.parentElement;\n do {\n if (hasClass(element, 'e-diagram')) {\n return true;\n }\n element = element.parentElement;\n } while (element);\n return false;\n}\n/**\n * groupHasType method \\\n *\n * @returns { boolean } groupHasType method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {Shapes} type - provide the type value.\n * @param {{}} nameTable - provide the nameTable value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function groupHasType(node, type, nameTable) {\n var contains = false;\n if (node && node.children && node.children.length > 0) {\n var child = void 0;\n var i = 0;\n for (; i < node.children.length; i++) {\n child = nameTable[node.children[parseInt(i.toString(), 10)]];\n if (child.shape.type === type) {\n return true;\n }\n return groupHasType(child, type, nameTable);\n }\n }\n return contains;\n}\n/**\n * groupHasType method \\\n *\n * @returns { void } groupHasType method .\\\n * @param {NodeModel | ConnectorModel} actualNode - provide the actualNode value.\n * @param { NodeModel | ConnectorModel} plainValue - provide the plainValue value.\n * @param {object} defaultValue - provide the defaultValue value.\n * @param {NodeModel | ConnectorModel} property - provide the property value.\n * @param {string} oldKey - provide the oldKey value.\n * @private\n */\nexport function updateDefaultValues(actualNode, plainValue, \n// eslint-disable-next-line @typescript-eslint/ban-types\ndefaultValue, property, oldKey) {\n if (defaultValue && ((actualNode instanceof Connector) || actualNode\n && ((actualNode.shape && actualNode.shape.type !== 'SwimLane') || actualNode.shape === undefined))) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var keyObj = void 0;\n for (var _i = 0, _a = Object.keys(defaultValue); _i < _a.length; _i++) {\n var key = _a[_i];\n keyObj = defaultValue[\"\" + key];\n if (key === 'shape' && keyObj.type) {\n actualNode.shape = { type: keyObj.type };\n }\n if (keyObj) {\n if (Array.isArray(keyObj) && keyObj.length && keyObj.length > 0 && (oldKey !== 'annotations' && oldKey !== 'ports')) {\n if (actualNode[\"\" + key].length > 0) {\n for (var i = 0; i <= actualNode[\"\" + key].length; i++) {\n updateDefaultValues(actualNode[\"\" + key], plainValue ? plainValue[\"\" + key] : undefined, defaultValue[\"\" + key], (key === 'annotations' || key === 'ports') ? actualNode : undefined, key);\n }\n }\n else {\n updateDefaultValues(actualNode[\"\" + key], plainValue ? plainValue[\"\" + key] : undefined, defaultValue[\"\" + key], (key === 'annotations' || key === 'ports') ? actualNode : undefined, key);\n }\n }\n else if (keyObj instanceof Object && plainValue && (oldKey !== 'annotations' && oldKey !== 'ports')) {\n updateDefaultValues(actualNode[\"\" + key], plainValue[\"\" + key], defaultValue[\"\" + key]);\n }\n else if ((oldKey !== 'annotations' && oldKey !== 'ports')\n && (plainValue && !plainValue[\"\" + key]) || (!plainValue && actualNode\n && (actualNode[\"\" + key] || actualNode[\"\" + key] !== undefined))) {\n actualNode[\"\" + key] = defaultValue[\"\" + key];\n }\n else {\n var createObject = void 0;\n if (oldKey === 'annotations' || oldKey === 'ports') {\n if (oldKey === 'annotations') {\n if (actualNode[\"\" + key]) {\n updateDefaultValues(actualNode[\"\" + key], plainValue[\"\" + key], defaultValue[\"\" + key]);\n }\n if (!actualNode[\"\" + key]) {\n if (getObjectType(property) === Connector) {\n createObject = new PathAnnotation(property, 'annotations', defaultValue[\"\" + key]);\n property.annotations.push(createObject);\n }\n else {\n createObject = new ShapeAnnotation(property, 'annotations', defaultValue[\"\" + key]);\n property.annotations.push(createObject);\n }\n }\n }\n else {\n if (actualNode[\"\" + key]) {\n updateDefaultValues(actualNode[\"\" + key], plainValue[\"\" + key], defaultValue[\"\" + key]);\n }\n else {\n createObject = new PointPort(property, 'ports', defaultValue[\"\" + key]);\n property.ports.push(createObject);\n }\n }\n }\n }\n }\n }\n }\n}\n/* tslint:disable:no-string-literal */\n/**\n * updateLayoutValue method \\\n *\n * @returns { void } updateLayoutValue method .\\\n * @param {TreeInfo} actualNode - provide the actualNode value.\n * @param { object} defaultValue - provide the defaultValue value.\n * @param {INode[]} nodes - provide the nodes value.\n * @param {INode} node - provide the node value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function updateLayoutValue(actualNode, defaultValue, nodes, node) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var keyObj;\n var assistantKey = 'Role';\n if (defaultValue) {\n for (var _i = 0, _a = Object.keys(defaultValue); _i < _a.length; _i++) {\n var key = _a[_i];\n keyObj = defaultValue[\"\" + key];\n if (key === 'getAssistantDetails') {\n if (isBlazor()) {\n // Iterate the node data and get the assistant.\n for (var _b = 0, _c = Object.keys(node.data); _b < _c.length; _b++) {\n var dataValue = _c[_b];\n assistantKey = dataValue;\n if (node.data[\"\" + assistantKey] === defaultValue[\"\" + key]['root']) {\n break;\n }\n }\n }\n if (node.data[\"\" + assistantKey] === defaultValue[\"\" + key]['root']) {\n var assitants = defaultValue[\"\" + key]['assistants'];\n for (var i = 0; i < assitants.length; i++) {\n for (var j = 0; j < nodes.length; j++) {\n if (nodes[parseInt(j.toString(), 10)].data[\"\" + assistantKey] === assitants[parseInt(i.toString(), 10)]) {\n actualNode.assistants.push(nodes[parseInt(j.toString(), 10)].id);\n actualNode.children.splice(0, 1);\n }\n }\n }\n }\n }\n else if (keyObj) {\n actualNode[\"\" + key] = defaultValue[\"\" + key];\n }\n }\n }\n if (!actualNode.hasSubTree && defaultValue.canEnableSubTree) {\n actualNode.orientation = node.layoutInfo.orientation;\n actualNode.type = node.layoutInfo.type;\n if (node.layoutInfo.offset !== actualNode.offset && (node.layoutInfo.offset) !== undefined) {\n actualNode.offset = node.layoutInfo.offset;\n }\n }\n node.layoutInfo.hasSubTree = actualNode.hasSubTree;\n}\n/* tslint:enable:no-string-literal */\n/**\n * isPointOverConnector method \\\n *\n * @returns { boolean } isPointOverConnector method .\\\n * @param {ConnectorModel} connector - provide the connector value.\n * @param { PointModel} reference - provide the reference value.\n * @private\n */\nexport function isPointOverConnector(connector, reference) {\n //let intermediatePoints: PointModel[];\n var intermediatePoints = connector.type === 'Bezier' ? pointsForBezier(connector) :\n connector.intermediatePoints;\n for (var i = 0; i < intermediatePoints.length - 1; i++) {\n var start = intermediatePoints[parseInt(i.toString(), 10)];\n var end = intermediatePoints[i + 1];\n var rect = Rect.toBounds([start, end]);\n rect.Inflate(connector.hitPadding);\n if (rect.containsPoint(reference)) {\n var intersectinPt = findNearestPoint(reference, start, end);\n var segment1 = { x1: start.x, x2: end.x, y1: start.y, y2: end.y };\n var segment2 = { x1: reference.x, x2: intersectinPt.x, y1: reference.y, y2: intersectinPt.y };\n var intersectDetails = intersect3(segment1, segment2);\n if (intersectDetails.enabled) {\n var distance = Point.findLength(reference, intersectDetails.intersectPt);\n if (Math.abs(distance) < connector.hitPadding) {\n return true;\n }\n }\n else {\n var rect_1 = Rect.toBounds([reference, reference]);\n rect_1.Inflate(3);\n if (rect_1.containsPoint(start) || rect_1.containsPoint(end)) {\n return true;\n }\n }\n if (Point.equals(reference, intersectinPt)) {\n return true;\n }\n }\n }\n if (connector.annotations.length > 0) {\n var container = connector.wrapper.children;\n for (var i = 3; i < container.length; i++) {\n var textElement = container[parseInt(i.toString(), 10)];\n if (textElement.bounds.containsPoint(reference)) {\n return true;\n }\n }\n }\n return false;\n}\n/**\n * intersect3 method \\\n *\n * @returns { Intersection } intersect3 method .\\\n * @param {ConnectorModel} lineUtil1 - provide the lineUtil1 value.\n * @param { PointModel} lineUtil2 - provide the lineUtil2 value.\n * @private\n */\nexport function intersect3(lineUtil1, lineUtil2) {\n var point = { x: 0, y: 0 };\n var l1 = lineUtil1;\n var l2 = lineUtil2;\n var d = (l2.y2 - l2.y1) * (l1.x2 - l1.x1) - (l2.x2 - l2.x1) * (l1.y2 - l1.y1);\n var na = (l2.x2 - l2.x1) * (l1.y1 - l2.y1) - (l2.y2 - l2.y1) * (l1.x1 - l2.x1);\n var nb = (l1.x2 - l1.x1) * (l1.y1 - l2.y1) - (l1.y2 - l1.y1) * (l1.x1 - l2.x1);\n /*( EJ2-42102 - Connector segments not update properly ) by sivakumar sekar - condition added to avoid bridging for\n overlapping segments in the connectors and to validate whether the connector is intersecting over the other */\n if (d === 0 || ((lineUtil1.x1 === lineUtil2.x1 || lineUtil1.y1 === lineUtil2.y1) &&\n (lineUtil1.x2 === lineUtil2.x2 || lineUtil1.y2 === lineUtil2.y2) && ((na === 0 || nb === 0) && d > 0))) {\n return { enabled: false, intersectPt: point };\n }\n var ua = na / d;\n var ub = nb / d;\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n point.x = l1.x1 + (ua * (l1.x2 - l1.x1));\n point.y = l1.y1 + (ua * (l1.y2 - l1.y1));\n return { enabled: true, intersectPt: point };\n }\n return { enabled: false, intersectPt: point };\n}\n/**\n * intersect2 method \\\n *\n * @returns { PointModel } intersect2 method .\\\n * @param {PointModel} start1 - provide the start1 value.\n * @param { PointModel} end1 - provide the end1 value.\n * @param { PointModel} start2 - provide the start2 value.\n * @param { PointModel} end2 - provide the end2 value.\n * @private\n */\nexport function intersect2(start1, end1, start2, end2) {\n var point = { x: 0, y: 0 };\n var lineUtil1 = getLineSegment(start1.x, start1.y, end1.x, end1.y);\n var lineUtil2 = getLineSegment(start2.x, start2.y, end2.x, end2.y);\n var line3 = intersect3(lineUtil1, lineUtil2);\n if (line3.enabled) {\n return line3.intersectPt;\n }\n else {\n return point;\n }\n}\n/**\n * getLineSegment method \\\n *\n * @returns { Segment } getLineSegment method .\\\n * @param {number} x1 - provide the x1 value.\n * @param { number} y1 - provide the y1 value.\n * @param { number} x2 - provide the x2 value.\n * @param { number} y2 - provide the y2 value.\n * @private\n */\nexport function getLineSegment(x1, y1, x2, y2) {\n return { 'x1': Number(x1) || 0, 'y1': Number(y1) || 0, 'x2': Number(x2) || 0, 'y2': Number(y2) || 0 };\n}\n/**\n * getPoints method \\\n *\n * @returns { PointModel[] } getPoints method .\\\n * @param {number} element - provide the element value.\n * @param { number} corners - provide the corners value.\n * @param { number} padding - provide the padding value.\n * @private\n */\nexport function getPoints(element, corners, padding) {\n var line = [];\n padding = padding || 0;\n var left = { x: corners.topLeft.x - padding, y: corners.topLeft.y };\n var right = { x: corners.topRight.x + padding, y: corners.topRight.y };\n var top = { x: corners.bottomRight.x, y: corners.bottomRight.y - padding };\n var bottom = { x: corners.bottomLeft.x, y: corners.bottomLeft.y + padding };\n line.push(left);\n line.push(right);\n line.push(top);\n line.push(bottom);\n return line;\n}\n/**\n * getTooltipOffset method \\\n *\n * @returns { PointModel[] } getTooltipOffset method .\\\n * @param {number} diagram - provide the diagram value.\n * @param { number} mousePosition - provide the mousePosition value.\n * @param { NodeModel | ConnectorModel | PointPortModel} node - provide the node value.\n * @param { string} type - provide the type value.\n * @private\n */\nexport function getTooltipOffset(diagram, mousePosition, node, type) {\n //let offset: PointModel;\n var inheritTooltip = (node instanceof Node) ? (node.constraints & NodeConstraints.InheritTooltip)\n : (node instanceof Connector) ? (node.constraints & ConnectorConstraints.InheritTooltip)\n : (node.constraints & PortConstraints.InheritTooltip);\n var objectTooltip = (node instanceof Node) ? (node.constraints & NodeConstraints.Tooltip)\n : (node instanceof Connector) ? (node.constraints & ConnectorConstraints.Tooltip)\n : (node.constraints & PortConstraints.ToolTip);\n var isMouseBased = ((!inheritTooltip && objectTooltip ? node.tooltip.relativeMode\n : diagram.tooltip.relativeMode) === 'Mouse') ? true : false;\n if (type === 'Mouse') {\n isMouseBased = true;\n }\n else if (type === 'Object') {\n isMouseBased = false;\n }\n var offset = tooltipOffset(node, mousePosition, diagram, isMouseBased);\n var rulerSize = getRulerSize(diagram);\n return { x: offset.x + rulerSize.width, y: offset.y + rulerSize.height };\n}\n/**\n * tooltipOffset method \\\n *\n * @returns { PointModel } tooltipOffset method .\\\n * @param {NodeModel | ConnectorModel | PointPortModel} node - provide the node value.\n * @param { PointModel} mousePosition - provide the mousePosition value.\n * @param { Diagram } diagram - provide the diagram value.\n * @param { boolean} isMouseBased - provide the isMouseBased value.\n * @private\n */\nfunction tooltipOffset(node, mousePosition, diagram, isMouseBased) {\n var point = {};\n //let scale: number = diagram.scroller.transform.scale;\n var element = document.getElementById(diagram.element.id);\n var bounds;\n //EJ2-62120-Tooltip support for ports\n if (node instanceof Node || node instanceof Connector) {\n bounds = node.wrapper.bounds;\n }\n else {\n var objects = diagram.findObjectsUnderMouse(mousePosition);\n var obj = diagram.findObjectUnderMouse(objects, 'Select', false);\n var portElement = diagram.findElementUnderMouse(obj, mousePosition);\n bounds = portElement.bounds;\n }\n var rect = element.getBoundingClientRect();\n /* eslint-enable */\n //let horizontalOffset: number = diagram.scroller.horizontalOffset;\n //let verticalOffset: number = diagram.scroller.verticalOffset;\n switch (diagram.tooltipObject.position) {\n case 'BottomCenter':\n point = offsetPoint(mousePosition, bounds.bottomCenter, diagram, isMouseBased, (rect.width / 2), rect.height);\n break;\n case 'BottomLeft':\n case 'LeftBottom':\n point = offsetPoint(mousePosition, bounds.bottomLeft, diagram, isMouseBased, 0, rect.height);\n break;\n case 'BottomRight':\n case 'RightBottom':\n point = offsetPoint(mousePosition, bounds.bottomRight, diagram, isMouseBased, rect.width, rect.height);\n break;\n case 'LeftCenter':\n point = offsetPoint(mousePosition, bounds.middleLeft, diagram, isMouseBased, 0, (rect.height / 2));\n break;\n case 'LeftTop':\n case 'TopLeft':\n point = offsetPoint(mousePosition, bounds.topLeft, diagram, isMouseBased, 0, 0);\n break;\n case 'RightCenter':\n point = offsetPoint(mousePosition, bounds.middleRight, diagram, isMouseBased, rect.width, (rect.height / 2));\n break;\n case 'RightTop':\n case 'TopRight':\n point = offsetPoint(mousePosition, bounds.topRight, diagram, isMouseBased, rect.width, 0);\n break;\n case 'TopCenter':\n point = offsetPoint(mousePosition, bounds.topCenter, diagram, isMouseBased, (rect.width / 2), 0);\n break;\n }\n return point;\n}\n/**\n * offsetPoint method \\\n *\n * @returns { PointModel } offsetPoint method .\\\n * @param { PointModel} mousePosition - provide the mousePosition value.\n * @param { PointModel } bound - provide the diagram value.\n * @param { Diagram} diagram - provide the isMouseBased value.\n * @param { boolean} isMouseBased - provide the isMouseBased value.\n * @param { number} x - provide the isMouseBased value.\n * @param { number} y - provide the isMouseBased value.\n * @private\n */\nfunction offsetPoint(mousePosition, bound, diagram, isMouseBased, x, y) {\n var point = {};\n var scale = diagram.scroller.transform.scale;\n var horizontalOffset = diagram.scroller.horizontalOffset;\n var verticalOffset = diagram.scroller.verticalOffset;\n point.x = (isMouseBased ? mousePosition.x : bound.x) * scale + horizontalOffset - x;\n point.y = (isMouseBased ? mousePosition.y : bound.y) * scale + verticalOffset - y;\n return point;\n}\n/**\n * Gets the fixed user handles symbol \\\n *\n * @returns { DiagramElement } Gets the fixed user handles symbol .\\\n * @param {ConnectorFixedUserHandleModel | NodeFixedUserHandleModel} options - provide the options value.\n * @param { Canvas} fixedUserHandleContainer - provide the fixedUserHandleContainer value.\n * @private\n */\nexport function initfixedUserHandlesSymbol(options, fixedUserHandleContainer) {\n //let fixedUserHandleContent: PathElement | DiagramNativeElement;\n var fixedUserHandleContent = new PathElement();\n fixedUserHandleContent.data = options.pathData;\n fixedUserHandleContent.height =\n options.height > 10 ? options.height - (options.padding.bottom + options.padding.top) : options.height;\n fixedUserHandleContent.width =\n options.width > 10 ? options.width - (options.padding.left + options.padding.right) : options.width;\n fixedUserHandleContent.visible = fixedUserHandleContainer.visible;\n fixedUserHandleContent.id = fixedUserHandleContainer.id + '_shape';\n fixedUserHandleContent.inversedAlignment = false;\n fixedUserHandleContent.horizontalAlignment = 'Center';\n fixedUserHandleContent.verticalAlignment = 'Center';\n fixedUserHandleContent.style = {\n fill: options.iconStrokeColor, strokeColor: options.iconStrokeColor,\n strokeWidth: options.iconStrokeWidth\n };\n fixedUserHandleContent.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction');\n fixedUserHandleContent.relativeMode = 'Object';\n fixedUserHandleContent.description = fixedUserHandleContainer.description || '';\n return fixedUserHandleContent;\n}\n/**\n * sort method \\\n *\n * @returns { (NodeModel | ConnectorModel)[] } sort method .\\\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the options value.\n * @param { DistributeOptions} option - provide the fixedUserHandleContainer value.\n * @private\n */\nexport function sort(objects, option) {\n var i = 0;\n var j = 0;\n var temp;\n for (i = 0; i < objects.length; i++) {\n var b = getBounds(objects[parseInt(i.toString(), 10)].wrapper);\n for (j = i + 1; j < objects.length; j++) {\n var bounds = getBounds(objects[parseInt(j.toString(), 10)].wrapper);\n if (option === 'Top' || option === 'Bottom' || option === 'BottomToTop' || option === 'Middle') {\n if (b.center.y > bounds.center.y) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n else {\n if (b.center.x > bounds.center.x) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n }\n return objects;\n}\n/**\n * getAnnotationPosition method \\\n *\n * @returns {SegmentInfo } getAnnotationPosition method .\\\n * @param {PointModel[]} pts - provide the pts value.\n * @param { PathAnnotation | ConnectorFixedUserHandle} annotation - provide the annotation value.\n * @param { Rect } bound - provide the bound value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function getAnnotationPosition(pts, annotation, bound) {\n //let angle: number;\n //let getloop: SegmentInfo;\n //let point: PointModel;\n var getloop = getOffsetOfConnector(pts, annotation);\n var angle = Point.findAngle(pts[getloop.index], pts[getloop.index + 1]);\n var alignednumber = getAlignedPosition(annotation);\n var point = Point.transform(getloop.point, angle + 45, alignednumber);\n getloop.point = point;\n getloop.angle = angle;\n return getloop;\n}\n/**\n * getOffsetOfConnector method \\\n *\n * @returns {SegmentInfo } getOffsetOfConnector method .\\\n * @param {PointModel[]} points - provide the pts value.\n * @param { PathAnnotation | ConnectorFixedUserHandle} annotation - provide the annotation value.\n * @private\n */\nexport function getOffsetOfConnector(points, annotation) {\n // eslint-disable-next-line\n var length = 0;\n var offset = annotation.offset;\n var point;\n var angle;\n var lengths = [];\n var prevLength;\n var kCount;\n for (var j = 0; j < points.length - 1; j++) {\n length += Point.distancePoints(points[parseInt(j.toString(), 10)], points[j + 1]);\n lengths.push(length);\n }\n var offsetLength = offset * length;\n for (var k = 0; k < lengths.length; k++) {\n if (lengths[parseInt(k.toString(), 10)] >= offsetLength) {\n angle = Point.findAngle(points[parseInt(k.toString(), 10)], points[k + 1]);\n point = Point.transform(points[parseInt(k.toString(), 10)], angle, offsetLength - (prevLength || 0));\n kCount = k;\n return { point: point, index: kCount };\n }\n prevLength = lengths[parseInt(k.toString(), 10)];\n }\n return { point: point, index: kCount };\n}\n/**\n * getAlignedPosition method \\\n *\n * @returns {number } getAlignedPosition method .\\\n * @param {PointModel[]} annotation - provide the annotation value.\n * @private\n */\nexport function getAlignedPosition(annotation) {\n var cnst;\n if ((annotation instanceof ConnectorFixedUserHandle)) {\n cnst = 0;\n }\n else {\n cnst = annotation.content === undefined ? 10 : 0;\n }\n var state = 0;\n switch (annotation.alignment) {\n case 'Center':\n state = 0;\n break;\n case 'Before':\n state = -((0) / 2 + cnst);\n break;\n case 'After':\n state = ((0) / 2 + cnst);\n break;\n }\n return state;\n}\n/**\n * alignLabelOnSegments method \\\n *\n * @returns {Alignment } alignLabelOnSegments method .\\\n * @param {PathAnnotation | ConnectorFixedUserHandle} obj - provide the obj value.\n * @param { number } ang - provide the ang value.\n * @param { PointModel[] } pts - provide the pts value.\n * @private\n */\nexport function alignLabelOnSegments(obj, ang, pts) {\n //let angle: number = ang % 360;\n ang %= 360;\n var fourty5 = 45;\n var one35 = 135;\n var two25 = 225;\n var three15 = 315;\n var vAlign;\n var hAlign;\n switch (obj.alignment) {\n case 'Before':\n if (ang >= fourty5 && ang <= one35) {\n hAlign = 'right';\n vAlign = obj.offset === 0.5 ? 'center' : 'top';\n }\n else if (ang >= two25 && ang <= three15) {\n hAlign = 'left';\n vAlign = obj.offset === 0.5 ? 'center' : 'bottom';\n }\n else if (ang > fourty5 && ang < two25) {\n vAlign = 'top';\n hAlign = obj.offset === 0.5 ? 'center' : 'right';\n }\n else {\n vAlign = 'bottom';\n hAlign = (obj.offset === 0.5) ? 'center' : 'left';\n }\n break;\n case 'After':\n if (ang >= fourty5 && ang <= one35) {\n hAlign = 'left';\n vAlign = obj.offset === 0.5 ? 'center' : 'top';\n }\n else if (ang >= two25 && ang <= three15) {\n hAlign = 'right';\n vAlign = obj.offset === 0.5 ? 'center' : 'bottom';\n }\n else if (ang > fourty5 && ang < two25) {\n vAlign = 'bottom';\n hAlign = obj.offset === 0.5 ? 'center' : 'right';\n }\n else {\n vAlign = 'top';\n hAlign = obj.offset === 0.5 ? 'center' : 'left';\n }\n break;\n case 'Center':\n hAlign = !isNullOrUndefined(obj.horizontalAlignment) ? obj.horizontalAlignment.toLowerCase() : 'center';\n vAlign = !isNullOrUndefined(obj.verticalAlignment) ? obj.verticalAlignment.toLowerCase() : 'center';\n break;\n }\n if (obj.offset === 0 || obj.offset === 1) {\n //let direction: string;\n var direction = getBezierDirection(pts[0], pts[1]);\n switch (direction) {\n case 'left':\n hAlign = obj.offset === 0 ? 'right' : 'left';\n break;\n case 'right':\n hAlign = obj.offset === 0 ? 'left' : 'right';\n break;\n case 'bottom':\n vAlign = obj.offset === 0 ? 'top' : 'bottom';\n break;\n case 'top':\n vAlign = obj.offset === 0 ? 'bottom' : 'top';\n break;\n }\n }\n return { hAlign: hAlign, vAlign: vAlign };\n}\n/**\n * getBezierDirection method \\\n *\n * @returns {string } getBezierDirection method .\\\n * @param {PointModel} src - provide the src value.\n * @param { PointModel } tar - provide the tar value.\n * @private\n */\nexport function getBezierDirection(src, tar) {\n if (Math.abs(tar.x - src.x) > Math.abs(tar.y - src.y)) {\n return src.x < tar.x ? 'right' : 'left';\n }\n else {\n return src.y < tar.y ? 'bottom' : 'top';\n }\n}\n/**\n * removeChildNodes method \\\n *\n * @returns {void } removeChildNodes method .\\\n * @param {NodeModel} node - provide the node value.\n * @param { Diagram } diagram - provide the diagram value.\n * @private\n */\nexport function removeChildNodes(node, diagram) {\n if (node instanceof Node && node.children) {\n for (var i = 0; i < node.children.length; i++) {\n if (diagram.nameTable[node.children[parseInt(i.toString(), 10)]].children) {\n removeChildNodes(node, diagram);\n }\n diagram.removeFromAQuad(diagram.nameTable[node.children[parseInt(i.toString(), 10)]]);\n diagram.removeObjectsFromLayer(diagram.nameTable[node.children[parseInt(i.toString(), 10)]]);\n delete diagram.nameTable[node.children[parseInt(i.toString(), 10)]];\n }\n }\n}\n/**\n * getChild method \\\n *\n * @returns {string[] } getChild method .\\\n * @param {Canvas} child - provide the child value.\n * @param { string[] } children - provide the children value.\n * @private\n */\nexport function getChild(child, children) {\n if (child && child.children && child.children.length > 0) {\n for (var j = 0; j < child.children.length; j++) {\n var subChild = child.children[parseInt(j.toString(), 10)];\n if (subChild instanceof Canvas) {\n getChild(subChild, children);\n }\n }\n }\n if (children.indexOf(child.id) === -1) {\n children.push(child.id);\n }\n return children;\n}\n/**\n * getSwimLaneChildren method \\\n *\n * @returns {string[] } getSwimLaneChildren method .\\\n * @param {NodeModel[]} nodes - provide the nodes value.\n * @private\n */\nfunction getSwimLaneChildren(nodes) {\n var children = [];\n var node;\n var grid;\n var childTable;\n var child;\n var gridChild = 'childTable';\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (node.shape.type === 'SwimLane') {\n grid = node.wrapper.children[0];\n childTable = grid[\"\" + gridChild];\n for (var _i = 0, _a = Object.keys(childTable); _i < _a.length; _i++) {\n var key = _a[_i];\n child = childTable[\"\" + key];\n children = getChild(child, children);\n }\n }\n }\n return children;\n}\n/**\n * removeUnnecessaryNodes method \\\n *\n * @returns {void } removeUnnecessaryNodes method .\\\n * @param {string[]} children - provide the children value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nfunction removeUnnecessaryNodes(children, diagram) {\n var nodes = diagram.nodes;\n if (nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (children.indexOf(nodes[parseInt(i.toString(), 10)].id) !== -1) {\n nodes.splice(i, 1);\n i--;\n }\n }\n }\n}\n/**\n * serialize method \\\n *\n * @returns {string } serialize method .\\\n * @param {Diagram} model - provide the model value.\n * @private\n */\nexport function serialize(model) {\n var removeNodes = getSwimLaneChildren(model.nodes);\n var clonedObject = cloneObject(model, model.getCustomProperty);\n clonedObject.selectedItems.nodes = [];\n clonedObject.selectedItems.connectors = [];\n clonedObject.selectedItems.wrapper = null;\n if (model.serializationSettings.preventDefaults) {\n clonedObject = preventDefaults(clonedObject, model);\n }\n removeUnnecessaryNodes(removeNodes, clonedObject);\n return JSON.stringify(clonedObject);\n}\n/**\n * preventDefaults method \\\n *\n * @returns {string } preventDefaults method .\\\n * @param {Object} clonedObject - provide the clonedObject value.\n * @param {object} model - provide the model value.\n * @param {object} defaultObject - provide the defaultObject value.\n * @param {boolean} isNodeShape - provide the isNodeShape value.\n * @private\n */\n// eslint-disable-next-line\nfunction preventDefaults(clonedObject, model, defaultObject, isNodeShape) {\n defaultObject = getConstructor(model, defaultObject);\n var properties = [];\n properties = properties.concat(Object.keys(clonedObject));\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n if (model instanceof Node) {\n isNodeShape = (property === 'shape') ? true : false;\n }\n if (clonedObject[\"\" + property] instanceof Array) {\n preventArrayDefaults(clonedObject, defaultObject, model, property);\n }\n else if ((clonedObject[\"\" + property] instanceof Object) && defaultObject && defaultObject[\"\" + property]) {\n if (property !== 'wrapper') {\n clonedObject[\"\" + property] = preventDefaults(clonedObject[\"\" + property], model[\"\" + property], defaultObject[\"\" + property], isNodeShape);\n }\n }\n else if ((defaultObject && clonedObject[\"\" + property] === defaultObject[\"\" + property]) || clonedObject[\"\" + property] === undefined) {\n if (!(isNodeShape && property === 'type') && !(model instanceof SwimLane && property === 'orientation')) {\n delete clonedObject[\"\" + property];\n }\n }\n if (JSON.stringify(clonedObject[\"\" + property]) === '[]' ||\n JSON.stringify(clonedObject[\"\" + property]) === '{}' ||\n clonedObject[\"\" + property] === undefined) {\n delete clonedObject[\"\" + property];\n }\n }\n defaultObject = undefined;\n properties = undefined;\n return clonedObject;\n}\n/**\n * preventArrayDefaults method \\\n *\n * @returns {void } preventArrayDefaults method .\\\n * @param {object} clonedObject - provide the clonedObject value.\n * @param {object} defaultObject - provide the defaultObject value.\n * @param {object} model - provide the model value.\n * @param {string} property - provide the property value.\n * @private\n */\n// eslint-disable-next-line\nfunction preventArrayDefaults(clonedObject, defaultObject, model, property) {\n if (clonedObject[\"\" + property].length === 0) {\n delete clonedObject[\"\" + property];\n // eslint-disable-next-line\n }\n else if (clonedObject[property].every(function (element) { return typeof element === 'number'; })) {\n var i = void 0;\n var isSameArray = true;\n for (i = 0; i < clonedObject[\"\" + property].length; i++) {\n if (isSameArray && clonedObject[\"\" + property][parseInt(i.toString(), 10)] === defaultObject[\"\" + property][parseInt(i.toString(), 10)]) {\n isSameArray = true;\n }\n else {\n isSameArray = false;\n }\n }\n if (isSameArray) {\n delete clonedObject[\"\" + property];\n }\n }\n else {\n var i = void 0;\n // Bug 826717: Unable to select swimlane child nodes after serializing the diagram when we enable preventDefault property.\n // Removed the codition to delete the layers from clonedObject.\n if (clonedObject[\"\" + property] && property !== 'layers') {\n for (i = clonedObject[\"\" + property].length - 1; i >= 0; i--) {\n if (property === 'nodes' || property === 'connectors') {\n clonedObject[\"\" + property][parseInt(i.toString(), 10)].wrapper = null;\n }\n if (property !== 'dataManager') {\n clonedObject[\"\" + property][parseInt(i.toString(), 10)] = preventDefaults(clonedObject[\"\" + property][parseInt(i.toString(), 10)], model[\"\" + property][parseInt(i.toString(), 10)], (defaultObject[\"\" + property] !== undefined ? defaultObject[\"\" + property][parseInt(i.toString(), 10)] : []));\n if (JSON.stringify(clonedObject[\"\" + property][parseInt(i.toString(), 10)]) === '[]' ||\n JSON.stringify(clonedObject[\"\" + property][parseInt(i.toString(), 10)]) === '{}' ||\n clonedObject[\"\" + property][parseInt(i.toString(), 10)] === undefined) {\n clonedObject[\"\" + property].splice(i, 1);\n }\n }\n }\n }\n }\n clonedObject = undefined;\n}\n/* eslint-disable */\n/**\n * getConstructor method \\\n *\n * @returns {object } getConstructor method .\\\n * @param {object} model - provide the model value.\n * @param {object} defaultObject - provide the defaultObject value.\n * @private\n */\n/* tslint:disable */\nfunction getConstructor(model, defaultObject) {\n var obj = [];\n var constructor;\n var getClassName = 'getClassName';\n if (model[getClassName]) {\n //EJ2-59327 - Memory leak occurs in saveDiagram method \n var parent_1 = new Diagram();\n switch (model[getClassName]()) {\n case 'Diagram':\n constructor = parent_1;\n break;\n case 'Node':\n constructor = new Node(parent_1, '', obj);\n break;\n case 'Path':\n constructor = new Path(parent_1, '', obj);\n break;\n case 'Native':\n constructor = new Native(parent_1, '', obj);\n break;\n case 'Html':\n constructor = new Html(parent_1, '', obj);\n break;\n case 'Image':\n constructor = new Image(parent_1, '', obj);\n break;\n case 'Text':\n constructor = new Text(parent_1, '', obj);\n break;\n case 'BasicShape':\n constructor = new BasicShape(parent_1, '', obj);\n break;\n case 'FlowShape':\n constructor = new FlowShape(parent_1, '', obj);\n break;\n case 'BpmnShape':\n constructor = new BpmnShape(parent_1, '', obj);\n break;\n case 'UmlActivityShape':\n constructor = new UmlActivityShape(parent_1, '', obj);\n break;\n case 'UmlClassifierShape':\n constructor = new UmlClassifierShape(parent_1, '', obj);\n break;\n case 'SwimLane':\n constructor = new SwimLane(parent_1, '', obj);\n if (model.header) {\n constructor.header = new Header(parent_1, '', obj);\n constructor.header.style.fill = '';\n }\n break;\n case 'ShapeAnnotation':\n constructor = new ShapeAnnotation(parent_1, '', obj);\n break;\n case 'PointPort':\n constructor = new PointPort(parent_1, '', obj);\n break;\n case 'BpmnGateway':\n constructor = new BpmnGateway(parent_1, '', obj);\n break;\n case 'BpmnDataObject':\n constructor = new BpmnDataObject(parent_1, '', obj);\n break;\n case 'BpmnEvent':\n constructor = new BpmnEvent(parent_1, '', obj);\n break;\n case 'BpmnSubEvent':\n constructor = new BpmnSubEvent(parent_1, '', obj);\n break;\n case 'BpmnActivity':\n constructor = new BpmnActivity(parent_1, '', obj);\n break;\n case 'BpmnAnnotation':\n constructor = new BpmnAnnotation(parent_1, '', obj);\n break;\n case 'MethodArguments':\n constructor = new MethodArguments(parent_1, '', obj);\n break;\n case 'UmlClassAttribute':\n constructor = new UmlClassAttribute(parent_1, '', obj);\n break;\n case 'UmlClassMethod':\n constructor = new UmlClassMethod(parent_1, '', obj);\n break;\n case 'UmlClass':\n constructor = new UmlClass(parent_1, '', obj);\n break;\n case 'UmlInterface':\n constructor = new UmlInterface(parent_1, '', obj);\n break;\n case 'UmlEnumerationMember':\n constructor = new UmlEnumerationMember(parent_1, '', obj);\n break;\n case 'UmlEnumeration':\n constructor = new UmlEnumeration(parent_1, '', obj);\n break;\n case 'Lane':\n constructor = new Lane(parent_1, '', obj);\n break;\n case 'Phase':\n constructor = new Phase(parent_1, '', obj);\n break;\n case 'ChildContainer':\n constructor = new ChildContainer();\n break;\n case 'Connector':\n constructor = new Connector(parent_1, '', obj);\n break;\n case 'StraightSegment':\n constructor = new StraightSegment(parent_1, '', obj);\n break;\n case 'BezierSegment':\n constructor = new BezierSegment(parent_1, '', obj);\n break;\n case 'OrthogonalSegment':\n constructor = new OrthogonalSegment(parent_1, '', obj);\n break;\n case 'PathAnnotation':\n constructor = new PathAnnotation(parent_1, '', obj);\n break;\n case 'Stop':\n constructor = new Stop(parent_1, '', obj);\n break;\n case 'Point':\n if (!defaultObject) {\n constructor = new Point(parent_1, '', obj);\n }\n else {\n constructor = defaultObject;\n }\n break;\n case 'UserHandle':\n constructor = new UserHandle(parent_1, '', obj);\n break;\n case 'Command':\n constructor = new Command(parent_1, '', obj);\n break;\n }\n }\n else {\n constructor = defaultObject;\n }\n parent = undefined;\n defaultObject = undefined;\n return constructor;\n}\n/* eslint-enable */\n/* eslint-disable */\n/** @private */\nexport function deserialize(model, diagram) {\n diagram.enableServerDataBinding(false);\n var blazorAction = diagram.blazorActions;\n diagram.blazorActions = diagram.addConstraints(blazorAction, BlazorAction.ClearObject);\n diagram.clear();\n diagram.blazorActions = diagram.removeConstraints(blazorAction, BlazorAction.ClearObject);\n diagram.protectPropertyChange(true);\n var map = diagram.dataSourceSettings.doBinding;\n var nodeTemp = diagram.setNodeTemplate;\n var getDescription = diagram.getDescription;\n var getCustomProperty = diagram.getCustomProperty;\n var commands = {};\n for (var _i = 0, _a = diagram.commandManager.commands; _i < _a.length; _i++) {\n var command = _a[_i];\n commands[command.name] = { execute: command.execute, canExecute: command.canExecute };\n }\n var arrangeTickHorizontal = diagram.rulerSettings.horizontalRuler.arrangeTick;\n var arrangeTickVertical = diagram.rulerSettings.verticalRuler.arrangeTick;\n var getLayoutInfo = diagram.layout.getLayoutInfo;\n var getBranch = diagram.layout.getBranch;\n var nodeDefaults = diagram.getNodeDefaults;\n var connectorDefaults = diagram.getConnectorDefaults;\n var dataObj;\n if (!(model instanceof Object)) {\n dataObj = JSON.parse(model);\n }\n else {\n dataObj = model;\n }\n dataObj = upgrade(dataObj);\n diagram.contextMenuSettings = dataObj.contextMenuSettings || {};\n diagram.constraints = dataObj.constraints || DiagramConstraints.Default;\n diagram.tool = dataObj.tool || DiagramTools.Default;\n diagram.bridgeDirection = dataObj.bridgeDirection || 'Top';\n diagram.pageSettings = dataObj.pageSettings || {};\n diagram.drawingObject = dataObj.drawingObject || undefined;\n diagram.tooltip = dataObj.tooltip || {};\n diagram.addInfo = dataObj.addInfo || undefined;\n diagram.getDescription = getDescription;\n diagram.scrollSettings = dataObj.scrollSettings || {};\n diagram.commandManager = dataObj.commandManager || {};\n /**\n * EJ2-62846-Exception occurs after save and load when layers are undefined.\n */\n if (dataObj.layers && dataObj.layers.length > 0) {\n sortLayerObjects(dataObj);\n }\n diagram.layers = dataObj.layers || [];\n diagram.rulerSettings.horizontalRuler.arrangeTick = arrangeTickHorizontal;\n diagram.rulerSettings.verticalRuler.arrangeTick = arrangeTickVertical;\n for (var _b = 0, _c = diagram.commandManager.commands; _b < _c.length; _b++) {\n var cmd = _c[_b];\n if (commands[cmd.name]) {\n cmd.execute = commands[cmd.name].execute;\n cmd.canExecute = commands[cmd.name].canExecute;\n }\n }\n diagram.backgroundColor = dataObj.backgroundColor || 'transparent';\n diagram.basicElements = dataObj.basicElements || [];\n // EJ2-66465 - Added below code to empty the segment collection if connector type is bezier\n if (dataObj.connectors) {\n for (var i = 0; i < dataObj.connectors.length; i++) {\n // EJ2-69816 - Added below code to empty the segment collection if connector type is bezier and allowSegmentsReset is true\n if (dataObj.connectors[i].type === 'Bezier' && dataObj.connectors[i].segments.length > 0 && dataObj.connectors[i].bezierSettings.allowSegmentsReset) {\n dataObj.connectors[i].segments = [];\n }\n }\n }\n diagram.connectors = dataObj.connectors || [];\n diagram.dataSourceSettings = dataObj.dataSourceSettings || {};\n diagram.dataSourceSettings.doBinding = map;\n diagram.height = dataObj.height || '100%';\n diagram.setNodeTemplate = nodeTemp;\n diagram.getConnectorDefaults = connectorDefaults;\n diagram.getNodeDefaults = nodeDefaults;\n diagram.getCustomProperty = getCustomProperty;\n diagram.mode = dataObj.mode || 'SVG';\n if (dataObj.nodes) {\n for (var i = 0; i < dataObj.nodes.length; i++) {\n if (dataObj.nodes[i].shape && dataObj.nodes[i].shape.type === 'SwimLane') {\n if (dataObj.nodes[i].wrapper == null) {\n {\n dataObj.nodes[i].wrapper = {\n actualSize: { width: dataObj.nodes[i].width, height: dataObj.nodes[i].height },\n offsetX: dataObj.nodes[i].offsetX, offsetY: dataObj.nodes[i].offsetY\n };\n }\n }\n pasteSwimLane(dataObj.nodes[i], undefined, undefined, undefined, undefined, true);\n }\n }\n }\n diagram.nodes = dataObj.nodes || [];\n diagram.rulerSettings = dataObj.rulerSettings || {};\n diagram.snapSettings = dataObj.snapSettings || {};\n diagram.width = dataObj.width || '100%';\n diagram.layout = dataObj.layout || {};\n if (dataObj.layout && dataObj.layout.type !== \"None\") {\n diagram.canLayout = false;\n }\n diagram.layout.getLayoutInfo = getFunction(getLayoutInfo);\n diagram.layout.getBranch = getFunction(getBranch);\n diagram.diagramActions = 0;\n diagram.isLoading = true;\n diagram.protectPropertyChange(false);\n var key = 'refresh';\n var component;\n for (var i = 0; i < diagram.views.length; i++) {\n component = diagram.views[diagram.views[i]];\n diagram.blazorActions = diagram.addConstraints(blazorAction, BlazorAction.ClearObject);\n // EJ2-69580 - When we load the diagram, we can refresh diagram component alone, does not need to refresh overview seperately. \n // While refresh diagram, nodes added in both the diagram and overview.\n if (component instanceof Diagram) {\n component.refresh();\n }\n diagram.blazorActions = diagram.removeConstraints(blazorAction, BlazorAction.ClearObject);\n if (component instanceof Diagram) {\n diagram.element.classList.add('e-diagram');\n }\n }\n if (dataObj.selectedItems) {\n dataObj.selectedItems.nodes = [];\n dataObj.selectedItems.connectors = [];\n //EJ2-61674 Exception occurs when we move the node after save and load\n dataObj.selectedItems.selectedObjects = [];\n }\n diagram.selectedItems = dataObj.selectedItems;\n diagram.enableServerDataBinding(true);\n diagram.canLayout = true;\n diagram.swimlaneChildTable = {};\n diagram.swimlaneZIndexTable = {};\n return dataObj;\n}\n/**\n * EJ2-61537 - Connectors not connected to the node after save and load\n * when we add nodes and connectors at runtime.\n * */\n/**\n* Sort the nodes and connectors in the layers.\n*\n* @param {Diagram} dataObj - provide the model value.\n* @private\n* */\nfunction sortLayerObjects(dataObj) {\n var i, j, k;\n var layers = [];\n for (i = 0; i < dataObj.layers.length; i++) {\n for (j = 0; j < dataObj.layers[i].objects.length; j++) {\n if (dataObj.nodes) {\n for (k = 0; k < dataObj.nodes.length; k++) {\n if (dataObj.layers[i].objects[j] === dataObj.nodes[k].id) {\n layers.push(dataObj.layers[i].objects[j]);\n }\n }\n }\n }\n for (j = 0; j < dataObj.layers[i].objects.length; j++) {\n if (dataObj.connectors) {\n for (k = 0; k < dataObj.connectors.length; k++) {\n if (dataObj.layers[i].objects[j] === dataObj.connectors[k].id) {\n layers.push(dataObj.layers[i].objects[j]);\n }\n }\n }\n }\n dataObj.layers[i].objects = layers;\n layers = [];\n }\n}\n/* eslint-enable */\n/**\n * upgrade method \\\n *\n * @returns {Diagram } upgrade method .\\\n * @param {Diagram} dataObj - provide the model value.\n * @private\n */\nexport function upgrade(dataObj) {\n if (dataObj && (dataObj.version === undefined || (dataObj.version < 17.1)) && dataObj.nodes) {\n var nodes = dataObj.nodes;\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n if (node && node.ports && node.ports.length > 0) {\n for (var _a = 0, _b = node.ports; _a < _b.length; _a++) {\n var port = _b[_a];\n if (port && port.constraints && port.constraints === PortConstraints.None) {\n port.constraints = PortConstraints.Default;\n }\n }\n }\n }\n }\n return dataObj;\n}\n/**\n * updateStyle method \\\n *\n * @returns {void } updateStyle method .\\\n * @param {TextStyleModel} changedObject - provide the changedObject value.\n * @param {DiagramElement} target - provide the target value.\n * @private\n */\nexport function updateStyle(changedObject, target) {\n //since text style model is the super set of shape style model, we used text style model\n var style = target.style;\n var textElement = target;\n target.canApplyStyle = true;\n for (var _i = 0, _a = Object.keys(changedObject); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'fill':\n style.fill = changedObject.fill;\n if (style instanceof StrokeStyle) {\n /* tslint:disable:no-string-literal */\n style['fill'] = 'transparent';\n }\n break;\n case 'textOverflow':\n style.textOverflow = changedObject.textOverflow;\n break;\n case 'opacity':\n style.opacity = changedObject.opacity;\n break;\n case 'strokeColor':\n style.strokeColor = changedObject.strokeColor;\n break;\n case 'strokeDashArray':\n style.strokeDashArray = changedObject.strokeDashArray;\n break;\n case 'strokeWidth':\n style.strokeWidth = changedObject.strokeWidth;\n break;\n case 'bold':\n style.bold = changedObject.bold;\n break;\n case 'color':\n style.color = changedObject.color;\n break;\n case 'textWrapping':\n style.textWrapping = changedObject.textWrapping;\n break;\n case 'fontFamily':\n style.fontFamily = changedObject.fontFamily;\n break;\n case 'fontSize':\n style.fontSize = changedObject.fontSize;\n break;\n case 'italic':\n style.italic = changedObject.italic;\n break;\n case 'textAlign':\n style.textAlign = changedObject.textAlign;\n break;\n case 'whiteSpace':\n style.whiteSpace = changedObject.whiteSpace;\n break;\n case 'textDecoration':\n style.textDecoration = changedObject.textDecoration;\n break;\n case 'gradient':\n if (style.gradient) {\n updateGradient(changedObject.gradient, style.gradient);\n break;\n }\n }\n }\n if (target instanceof TextElement) {\n textElement.refreshTextElement();\n }\n}\n/**\n * updateGradient method \\\n *\n * @returns {void } updateGradient method .\\\n * @param {GradientModel | LinearGradientModel | RadialGradientModel} changedGradient - provide the changedGradient value.\n * @param {GradientModel | LinearGradientModel | RadialGradientModel} targetGradient - provide the targetGradient value.\n * @private\n */\nfunction updateGradient(changedGradient, targetGradient) {\n for (var _i = 0, _a = Object.keys(changedGradient); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'type':\n targetGradient.type = changedGradient.type;\n break;\n case 'x1':\n targetGradient.x1 = changedGradient.x1;\n break;\n case 'x2':\n targetGradient.x2 = changedGradient.x2;\n break;\n case 'y1':\n targetGradient.y1 = changedGradient.y1;\n break;\n case 'y2':\n targetGradient.y2 = changedGradient.y2;\n break;\n case 'cx':\n targetGradient.cx = changedGradient.cx;\n break;\n case 'cy':\n targetGradient.cy = changedGradient.cy;\n break;\n case 'fx':\n targetGradient.fx = changedGradient.fx;\n break;\n case 'fy':\n targetGradient.fy = changedGradient.fy;\n break;\n case 'r':\n targetGradient.r = changedGradient.r;\n break;\n case 'stops':\n targetGradient.stops = changedGradient.stops;\n break;\n }\n }\n}\n/* eslint-disable */\n/**\n * updateHyperlink method \\\n *\n * @returns {void } updateHyperlink method .\\\n * @param {HyperlinkModel} changedObject - provide the changedObject value.\n * @param {DiagramElement} target - provide the target value.\n * @param {AnnotationModel} actualAnnotation - provide the actualAnnotation value.\n * @private\n */\nexport function updateHyperlink(changedObject, target, actualAnnotation) {\n var textElement = target;\n var hyperlink = textElement.hyperlink;\n for (var _i = 0, _a = Object.keys(changedObject); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'color':\n textElement.style.color = hyperlink.color = changedObject.color;\n break;\n case 'content':\n textElement.content = hyperlink.content = changedObject.content || hyperlink.link;\n break;\n case 'link':\n var labelStyle = actualAnnotation.style;\n textElement.style.color = changedObject.link ? hyperlink.color : labelStyle.color;\n textElement.style.textDecoration = changedObject.link ? hyperlink.textDecoration : actualAnnotation.style.textDecoration;\n textElement.content = changedObject.link ? hyperlink.content || changedObject.link : actualAnnotation.content;\n hyperlink.link = changedObject.link;\n break;\n case 'textDecoration':\n textElement.style.textDecoration = hyperlink.textDecoration = changedObject.textDecoration;\n break;\n case 'hyperlinkOpenState':\n hyperlink.hyperlinkOpenState = changedObject.hyperlinkOpenState;\n break;\n }\n }\n}\n/* eslint-enable */\n/**\n * updateShapeContent method \\\n *\n * @returns {void } updateShapeContent method .\\\n * @param {DiagramElement} content - provide the content value.\n * @param {Node} actualObject - provide the actualObject value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateShapeContent(content, actualObject, diagram) {\n content.width = actualObject.width;\n content.height = actualObject.height;\n content.minHeight = actualObject.minHeight;\n content.maxHeight = actualObject.maxHeight;\n content.minWidth = actualObject.minWidth;\n content.maxWidth = actualObject.maxWidth;\n content.horizontalAlignment = actualObject.wrapper.children[0].horizontalAlignment;\n content.verticalAlignment = actualObject.wrapper.children[0].verticalAlignment;\n content.relativeMode = actualObject.wrapper.children[0].relativeMode;\n content.visible = actualObject.wrapper.children[0].visible;\n if (actualObject.shape instanceof Text) {\n content.margin = actualObject.shape.margin;\n }\n content.id = actualObject.wrapper.children[0].id;\n content.style = actualObject.style;\n //let view: View;\n for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(actualObject.id + '_groupElement', elementId);\n removeElement(actualObject.id + '_content_groupElement', elementId);\n removeElement(actualObject.id + '_html_element', elementId);\n }\n actualObject.wrapper.children.splice(0, 1);\n actualObject.wrapper.children.splice(0, 0, content);\n}\n/* eslint-disable */\n/**\n * updateShape method \\\n *\n * @returns {void } updateShape method .\\\n * @param {Node} node - provide the node value.\n * @param {Node} actualObject - provide the actualObject value.\n * @param {Node} oldObject - provide the oldObject value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateShape(node, actualObject, oldObject, diagram) {\n var content = new DiagramElement();\n var i;\n //let textStyle: TextStyleModel; let nodeStyle: TextStyleModel;\n switch (node.shape.type) {\n case 'Path':\n var pathContent = new PathElement();\n pathContent.data = actualObject.shape.data;\n content = pathContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Image':\n var imageContent = new ImageElement();\n imageContent.source = actualObject.shape.source;\n imageContent.imageAlign = actualObject.shape.align;\n imageContent.imageScale = actualObject.shape.scale;\n content = imageContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Text':\n //issue\n var textContent = new TextElement();\n // (textContent as TextElement).content = (node.shape as TextModel).content;\n content = textContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Basic':\n var element = ((isBlazor() ? actualObject.shape.basicShape === 'Rectangle' :\n actualObject.shape.shape === 'Rectangle')) ? new DiagramElement() : new PathElement();\n if ((!isBlazor() && actualObject.shape.shape === 'Polygon') ||\n (isBlazor() && actualObject.shape.basicShape === 'Polygon')) {\n element.data = getPolygonPath(actualObject.shape.points);\n }\n else {\n element.data = getBasicShape((isBlazor() ? actualObject.shape.basicShape :\n actualObject.shape.shape));\n }\n if ((!isBlazor() && actualObject.shape.shape === 'Rectangle') ||\n (isBlazor() && actualObject.shape.basicShape === 'Rectangle')) {\n element.cornerRadius = actualObject.shape.cornerRadius;\n }\n //EJ2-70880 - Node disappeared after changing shape and type dynamically.\n content = element;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Flow':\n /* eslint-disable */\n var flowShapeElement = new PathElement();\n var shape = (isBlazor()) ? actualObject.shape.flowShape : actualObject.shape.shape;\n flowShapeElement.data = getFlowShape(shape);\n content = flowShapeElement;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Native':\n var nativeContent = new DiagramNativeElement(node.id, diagram.element.id);\n nativeContent.content = actualObject.shape.content;\n nativeContent.scale = actualObject.shape.scale;\n content = nativeContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'HTML':\n var htmlContent = new DiagramHtmlElement(actualObject.id, diagram.element.id);\n htmlContent.content = actualObject.shape.content;\n content = htmlContent;\n updateShapeContent(content, actualObject, diagram);\n }\n if (node.shape.type === undefined || node.shape.type === oldObject.shape.type || (isBlazor() && node.shape.type === 'UmlActivity')) {\n updateContent(node, actualObject, diagram, oldObject);\n }\n else {\n content.width = actualObject.wrapper.children[0].width;\n content.height = actualObject.wrapper.children[0].height;\n if (actualObject.shape instanceof Text) {\n content.margin = actualObject.shape.margin;\n }\n content.style = actualObject.style;\n actualObject.wrapper.children[0] = content;\n }\n}\n/* eslint-enable */\n/**\n * updateContent method \\\n *\n * @returns {void } updateContent method .\\\n * @param {Node} newValues - provide the newValues value.\n * @param {Node} actualObject - provide the actualObject value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {Node} oldObject - provide the oldObject value.\n * @private\n */\nexport function updateContent(newValues, actualObject, diagram, oldObject) {\n if (Object.keys(newValues.shape).length > 0) {\n if (actualObject.shape.type === 'Path' && newValues.shape.data !== undefined) {\n actualObject.wrapper.children[0].data = newValues.shape.data;\n }\n else if (actualObject.shape.type === 'Text' && newValues.shape.content !== undefined) {\n actualObject.wrapper.children[0].content = newValues.shape.content;\n }\n else if (actualObject.shape.type === 'Image' && newValues.shape.source !== undefined) {\n actualObject.wrapper.children[0].source = newValues.shape.source;\n }\n else if (actualObject.shape.type === 'Native') {\n var nativeElement = void 0;\n for (var i = 0; i < diagram.views.length; i++) {\n nativeElement = getDiagramElement(actualObject.wrapper.children[0].id + '_native_element', diagram.views[parseInt(i.toString(), 10)]);\n if (newValues.shape.content !== undefined && nativeElement) {\n nativeElement.removeChild(nativeElement.children[0]);\n actualObject.wrapper.children[0].content = newValues.shape.content;\n nativeElement.appendChild(getContent(actualObject.wrapper.children[0], false));\n }\n }\n actualObject.wrapper.children[0].scale = newValues.shape.scale ?\n newValues.shape.scale : actualObject.wrapper.children[0].scale;\n }\n else if (actualObject.shape.type === 'HTML') {\n var htmlElement = void 0;\n for (var i = 0; i < diagram.views.length; i++) {\n htmlElement = getDiagramElement(actualObject.wrapper.children[0].id + '_html_element', diagram.views[parseInt(i.toString(), 10)]);\n if (htmlElement) {\n htmlElement.removeChild(htmlElement.children[0]);\n actualObject.wrapper.children[0].content = newValues.shape.content;\n htmlElement.appendChild(getContent(actualObject.wrapper.children[0], true));\n }\n }\n }\n else if (actualObject.shape.type === 'Flow' && ((isBlazor() && newValues.shape.flowShape !== undefined) ||\n newValues.shape.shape !== undefined)) {\n actualObject.shape.shape = isBlazor() ? newValues.shape.flowShape :\n newValues.shape.shape;\n var shapes = actualObject.shape.shape;\n var flowshapedata = getFlowShape(shapes.toString());\n actualObject.wrapper.children[0].data = flowshapedata;\n }\n else if (actualObject.shape.type === 'UmlActivity' &&\n ((isBlazor() && newValues.shape.umlActivityShape !== undefined) ||\n (!isBlazor() && newValues.shape.shape !== undefined))) {\n updateUmlActivityNode(actualObject, newValues);\n }\n else if (newValues.shape.cornerRadius !== undefined) {\n actualObject.wrapper.children[0].cornerRadius = newValues.shape.cornerRadius;\n }\n else if (actualObject.shape.type === 'Basic' && (oldObject && oldObject.shape.shape === 'Rectangle')) {\n var basicshape = new PathElement();\n var basicshapedata = getBasicShape((isBlazor()) ? actualObject.shape.basicShape :\n actualObject.shape.shape);\n basicshape.data = basicshapedata;\n var content = basicshape;\n updateShapeContent(content, actualObject, diagram);\n }\n else if (((isBlazor() && newValues.shape.basicShape !== undefined) ||\n newValues.shape.shape !== undefined)) {\n actualObject.shape.shape = isBlazor() ? newValues.shape.basicShape :\n newValues.shape.shape;\n var shapes = actualObject.shape.shape;\n var basicShapeData = getBasicShape(shapes.toString());\n actualObject.wrapper.children[0].data = basicShapeData;\n }\n }\n actualObject.wrapper.children[0].canMeasurePath = true;\n}\n/**\n * updateUmlActivityNode method \\\n *\n * @returns {void } updateUmlActivityNode method .\\\n * @param {Node} actualObject - provide the newValues value.\n * @param {Node} newValues - provide the actualObject value.\n * @private\n */\nexport function updateUmlActivityNode(actualObject, newValues) {\n if (!isBlazor()) {\n actualObject.shape.shape = newValues.shape.shape;\n }\n else {\n actualObject.shape.umlActivityShape = newValues.shape.umlActivityShape;\n }\n var shapes = !isBlazor() ? actualObject.shape.shape :\n actualObject.shape.umlActivityShape;\n var umlActivityShapeData = getUMLActivityShape(shapes.toString());\n if ((isBlazor() && actualObject.shape.umlActivityShape === 'InitialNode') ||\n (!isBlazor() && actualObject.shape.shape === 'InitialNode')) {\n actualObject.wrapper.children[0].style.fill = 'black';\n }\n else if ((!isBlazor() && (actualObject.shape.shape === 'ForkNode' ||\n actualObject.shape.shape === 'JoinNode')) ||\n ((isBlazor() && (actualObject.shape.umlActivityShape === 'ForkNode' ||\n actualObject.shape.umlActivityShape === 'JoinNode')))) {\n actualObject.wrapper.children[0].style.fill = 'black';\n }\n else if ((!isBlazor() && actualObject.shape.shape === 'FinalNode') ||\n (isBlazor() && actualObject.shape.umlActivityShape === 'FinalNode')) {\n if (actualObject instanceof Node) {\n actualObject.wrapper = getUMLFinalNode(actualObject);\n }\n }\n if (umlActivityShapeData) {\n actualObject.wrapper.children[0].data = umlActivityShapeData;\n }\n}\n/**\n * getUMLFinalNode method \\\n *\n * @returns {Canvas } getUMLFinalNode method .\\\n * @param {Node} node - provide the newValues value.\n * @private\n */\nexport function getUMLFinalNode(node) {\n var finalNodeShape = new Canvas();\n finalNodeShape.style.fill = 'transparent';\n //childNode0\n var pathData = 'M 25 50 C 11.21 50 0 38.79 0 25 C 0 11.21 11.21 0 25 0 C 38.78 0 50 11.21 50 25' +\n ' C 50 38.79 38.78 50 25 50';\n var innerFinalNode = new PathElement();\n innerFinalNode.data = pathData;\n innerFinalNode.id = node.id + '_0_finalNode';\n innerFinalNode.horizontalAlignment = 'Center';\n innerFinalNode.verticalAlignment = 'Center';\n innerFinalNode.relativeMode = 'Object';\n innerFinalNode.style.strokeColor = node.style.strokeColor;\n innerFinalNode.style.strokeWidth = node.style.strokeWidth;\n //childNode1\n var outerFinalNode = new PathElement();\n outerFinalNode.data = pathData;\n outerFinalNode.id = node.id + '_1_finalNode';\n outerFinalNode.horizontalAlignment = 'Center';\n outerFinalNode.verticalAlignment = 'Center';\n outerFinalNode.relativeMode = 'Object';\n outerFinalNode.style.fill = node.style.fill;\n outerFinalNode.style.strokeColor = node.style.strokeColor;\n outerFinalNode.style.strokeWidth = node.style.strokeWidth;\n //append child and set style\n finalNodeShape.children = [innerFinalNode, outerFinalNode];\n finalNodeShape.children[0].width = node.width;\n finalNodeShape.children[0].height = node.height;\n finalNodeShape.children[1].height = node.height / 1.5;\n finalNodeShape.children[1].width = node.width / 1.5;\n finalNodeShape.style.strokeWidth = 0;\n finalNodeShape.style.strokeColor = 'transparent';\n return finalNodeShape;\n}\n/**\n * getUMLActivityShapes method \\\n *\n * @returns {DiagramElement } getUMLActivityShapes method .\\\n * @param {PathElement} umlActivityShape - provide the umlActivityShape value.\n * @param {DiagramElement} content - provide the content value.\n * @param {Node} node - provide the node value.\n * @private\n */\nexport function getUMLActivityShapes(umlActivityShape, content, node) {\n var shape = (isBlazor() ? node.shape.umlActivityShape : node.shape.shape);\n var umlActivityShapeData = getUMLActivityShape(shape);\n umlActivityShape.data = umlActivityShapeData;\n content = umlActivityShape;\n switch (shape) {\n case 'StructuredNode':\n if (node.annotations) {\n for (var i = 0; i < node.annotations.length; i++) {\n node.annotations[parseInt(i.toString(), 10)].content = '<<' + node.annotations[parseInt(i.toString(), 10)].content + '>>';\n }\n }\n content = umlActivityShape;\n break;\n case 'FinalNode':\n content = getUMLFinalNode(node);\n break;\n }\n return content;\n}\n/**\n * removeGradient method \\\n *\n * @returns {void } removeGradient method .\\\n * @param {string} svgId - provide the umlActivityShape value.\n * @private\n */\nexport function removeGradient(svgId) {\n removeElement(svgId + '_linear');\n removeElement(svgId + '_radial');\n}\n/**\n * removeItem method \\\n *\n * @returns {void } removeItem method .\\\n * @param {string[]} array - provide the umlActivityShape value.\n * @param {string} item - provide the umlActivityShape value.\n * @private\n */\nexport function removeItem(array, item) {\n var index = array.indexOf(item);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n/**\n * updateConnector method \\\n *\n * @returns {void } updateConnector method .\\\n * @param {Connector} connector - provide the connector value.\n * @param {PointModel[]} points - provide the points value.\n * @param {DiagramAction} diagramActions - provide the diagramActions value.\n * @private\n */\nexport function updateConnector(connector, points, diagramActions) {\n var anglePoint; //let srcDecorator: DecoratorModel;\n //let targetPoint: PointModel;\n connector.intermediatePoints = points;\n connector.updateSegmentElement(connector, points, connector.wrapper.children[0], diagramActions);\n var srcDecorator = connector.sourceDecorator;\n if (connector.type === 'Bezier') {\n var firstSegment = connector.segments[0];\n var lastSegment = connector.segments[connector.segments.length - 1];\n anglePoint = [!Point.isEmptyPoint(lastSegment.point2) ? lastSegment.point2 : lastSegment.bezierPoint2,\n !Point.isEmptyPoint(firstSegment.point1) ? firstSegment.point1 : firstSegment.bezierPoint1];\n }\n else {\n anglePoint = connector.intermediatePoints;\n }\n points = connector.clipDecorators(connector, points, diagramActions);\n var element = connector.wrapper.children[0];\n element.canMeasurePath = true;\n element = connector.wrapper.children[1];\n connector.updateDecoratorElement(element, points[0], anglePoint[1], srcDecorator);\n //const targetPoint: PointModel = connector.targetPoint;\n var tarDecorator = connector.targetDecorator;\n element = connector.wrapper.children[2];\n connector.updateDecoratorElement(element, points[points.length - 1], anglePoint[anglePoint.length - 2], tarDecorator);\n connector.updateShapeElement(connector);\n}\n/**\n * getUserHandlePosition method \\\n *\n * @returns {PointModel } getUserHandlePosition method .\\\n * @param {SelectorModel} selectorItem - provide the connector value.\n * @param {UserHandleModel} handle - provide the handle value.\n * @param {Transforms} transform - provide the transform value.\n * @private\n */\nexport function getUserHandlePosition(selectorItem, handle, transform) {\n var wrapper = selectorItem.wrapper;\n //let positionPoints: PointModel;\n var bounds = wrapper.bounds;\n var offset = handle.offset;\n var size = handle.size / transform.scale;\n var margin = handle.margin;\n var point;\n var left = wrapper.offsetX - wrapper.actualSize.width * wrapper.pivot.x;\n var top = wrapper.offsetY - wrapper.actualSize.height * wrapper.pivot.y;\n point = { x: 0, y: 0 };\n if (selectorItem.nodes.length > 0) {\n switch (handle.side) {\n case 'Top':\n point.x += left + bounds.width * offset;\n point.y += top - (size / 2 + 12.5);\n break;\n case 'Bottom':\n point.x += left + offset * bounds.width;\n point.y += top + wrapper.actualSize.height + (size / 2 + 12.5);\n break;\n case 'Left':\n point.x += left - (size / 2 + 12.5);\n point.y += top + offset * bounds.height;\n break;\n case 'Right':\n point.x += left + wrapper.actualSize.width + (size / 2 + 12.5);\n point.y += top + offset * bounds.height;\n break;\n }\n point.x += ((margin.left - margin.right) / transform.scale) +\n (size / 2) * (handle.horizontalAlignment === 'Center' ? 0 : (handle.horizontalAlignment === 'Right' ? -1 : 1));\n point.y += ((margin.top - margin.bottom) / transform.scale) +\n (size / 2) * (handle.verticalAlignment === 'Center' ? 0 : (handle.verticalAlignment === 'Top' ? -1 : 1));\n }\n else if (selectorItem.connectors.length > 0) {\n var connector = selectorItem.connectors[0];\n var annotation = { offset: offset };\n var connectorOffset = getOffsetOfConnector(connector.intermediatePoints, annotation);\n var index = connectorOffset.index;\n point = connectorOffset.point;\n var getPointloop = getAnnotationPosition(connector.intermediatePoints, annotation, bounds);\n //const points: PointModel[] = connector.intermediatePoints;\n //const offsetLength: number;\n var angle = getPointloop.angle;\n var matrix = identityMatrix();\n rotateMatrix(matrix, -angle, connector.intermediatePoints[parseInt(index.toString(), 10)].x, connector.intermediatePoints[parseInt(index.toString(), 10)].y);\n point = transformPointByMatrix(matrix, point);\n point.x += (margin.left - margin.right) +\n (size / 2) * (handle.horizontalAlignment === 'Center' ? 0 : (handle.horizontalAlignment === 'Right' ? -1 : 1));\n point.y += (margin.top - margin.bottom) +\n (size / 2) * (handle.verticalAlignment === 'Center' ? 0 : (handle.verticalAlignment === 'Top' ? -1 : 1));\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, connector.intermediatePoints[parseInt(index.toString(), 10)].x, connector.intermediatePoints[parseInt(index.toString(), 10)].y);\n point = transformPointByMatrix(matrix, point);\n }\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY);\n point = transformPointByMatrix(matrix, point);\n }\n return point;\n}\n/**\n * canResizeCorner method \\\n *\n * @returns {SelectorConstraints } canResizeCorner method .\\\n * @param {string} selectorConstraints - provide the selectorConstraints value.\n * @param {string} action - provide the selectorConstraints value.\n * @param {ThumbsConstraints} thumbsConstraints - provide the thumbsConstraints value.\n * @param {Selector} selectedItems - provide the selectedItems value.\n * @private\n */\nexport function canResizeCorner(selectorConstraints, action, thumbsConstraints, selectedItems) {\n if (selectedItems.annotation) {\n if (canResize(selectedItems.annotation)) {\n return true;\n }\n }\n else if ((SelectorConstraints[\"\" + action] & selectorConstraints) && (ThumbsConstraints[\"\" + action] & thumbsConstraints)) {\n return true;\n }\n return false;\n}\n/**\n * canShowCorner method \\\n *\n * @returns {boolean } canShowCorner method .\\\n * @param {SelectorConstraints} selectorConstraints - provide the selectorConstraints value.\n * @param {string} action - provide the thumbsConstraints value.\n * @private\n */\nexport function canShowCorner(selectorConstraints, action) {\n if (SelectorConstraints[\"\" + action] & selectorConstraints) {\n return true;\n }\n return false;\n}\n/**\n * canShowControlPoints method \\\n *\n * @returns {boolean } canShowControlPoints method .\\\n * @param {ControlPointsVisibility} bezierControlPoints - provide the bezierControlPoints value.\n * @param {string} action - provide the value.\n * @private\n */\nexport function canShowControlPoints(bezierControlPoints, action) {\n if (ControlPointsVisibility[\"\" + action] & bezierControlPoints) {\n return true;\n }\n return false;\n}\n/**\n * checkPortRestriction method \\\n *\n * @returns {number } checkPortRestriction method .\\\n * @param {PointPortModel} port - provide the port value.\n * @param {PortVisibility} portVisibility - provide the portVisibility value.\n * @private\n */\nexport function checkPortRestriction(port, portVisibility) {\n return port.visibility & portVisibility;\n}\n/**\n * findAnnotation method \\\n *\n * @returns {ShapeAnnotationModel | PathAnnotationModel | TextModel } findAnnotation method .\\\n * @param { NodeModel | ConnectorModel} node - provide the port value.\n * @param {string} id - provide the portVisibility value.\n * @private\n */\nexport function findAnnotation(node, id) {\n var annotation;\n if (node.shape.type === 'Text') {\n annotation = (node.shape);\n }\n else {\n var annotationId = id.split('_');\n id = annotationId[annotationId.length - 1];\n for (var i = 0; i < node.annotations.length; i++) {\n if (id === node.annotations[parseInt(i.toString(), 10)].id) {\n annotation = node.annotations[parseInt(i.toString(), 10)];\n }\n }\n }\n return annotation;\n}\n/**\n * findPort method \\\n *\n * @returns {PointPortModel} findPort method .\\\n * @param { NodeModel | ConnectorModel} node - provide the port value.\n * @param {string} id - provide the portVisibility value.\n * @private\n */\nexport function findPort(node, id) {\n var port;\n var portId = id.split('_');\n id = portId[portId.length - 1];\n if (node) {\n node = node;\n for (var i = 0; i < node.ports.length; i++) {\n if (id === node.ports[parseInt(i.toString(), 10)].id) {\n return node.ports[parseInt(i.toString(), 10)];\n }\n }\n }\n return port;\n}\n/**\n * getInOutConnectPorts method \\\n *\n * @returns {PointPortModel} getInOutConnectPorts method .\\\n * @param { NodeModel} node - provide the port value.\n * @param {boolean} isInConnect - provide the portVisibility value.\n * @private\n */\nexport function getInOutConnectPorts(node, isInConnect) {\n var port = {};\n var i = 0;\n if (node.ports) {\n var ports = node.ports;\n for (i = 0; i < ports.length; i++) {\n if (isInConnect) {\n if ((ports[parseInt(i.toString(), 10)].constraints & PortConstraints.InConnect)) {\n port = ports[parseInt(i.toString(), 10)];\n }\n }\n else {\n if ((ports[parseInt(i.toString(), 10)].constraints & PortConstraints.OutConnect)) {\n port = ports[parseInt(i.toString(), 10)];\n }\n }\n }\n }\n return port;\n}\n/**\n * findObjectIndex method \\\n *\n * @returns {PointPortModel} findObjectIndex method .\\\n * @param { NodeModel | ConnectorModel} node - provide the node value.\n * @param {string} id - provide the string value.\n * @param {boolean} annotation - provide the boolean value.\n * @private\n */\nexport function findObjectIndex(node, id, annotation) {\n //let index: number;\n var collection = (annotation) ? node.annotations : node.ports;\n for (var i = 0; i < collection.length; i++) {\n if (collection[parseInt(i.toString(), 10)].id === id) {\n return (i).toString();\n }\n }\n return '-1';\n}\n/**\n * getObjectFromCollection method \\\n *\n * @returns {boolean} getObjectFromCollection method .\\\n * @param { (NodeModel | ConnectorModel)[] } obj - provide the node value.\n * @param {string} id - provide the string value.\n * @private\n */\nexport function getObjectFromCollection(obj, id) {\n var i;\n for (i = 0; i < obj.length; i++) {\n if (id === obj[parseInt(i.toString(), 10)].id) {\n return true;\n }\n }\n return false;\n}\n/**\n * scaleElement method \\\n *\n * @returns {void} scaleElement method .\\\n * @param { DiagramElement } element - provide the element value.\n * @param {number} sw - provide the string value.\n * @param {number} sh - provide the string value.\n * @param {DiagramElement} refObject - provide the refObject value.\n * @private\n */\nexport function scaleElement(element, sw, sh, refObject) {\n if (element.width !== undefined && element.height !== undefined) {\n element.width *= sw;\n element.height *= sh;\n }\n if (element instanceof Container) {\n var matrix = identityMatrix();\n var width = refObject.width || refObject.actualSize.width;\n var height = refObject.height || refObject.actualSize.height;\n if (width !== undefined && height !== undefined) {\n var x = refObject.offsetX - width * refObject.pivot.x;\n var y = refObject.offsetY - height * refObject.pivot.y;\n var refPoint = {\n x: x + width * refObject.pivot.x,\n y: y + height * refObject.pivot.y\n };\n refPoint = rotatePoint(refObject.rotateAngle, refObject.offsetX, refObject.offsetY, refPoint);\n rotateMatrix(matrix, -refObject.rotateAngle, refPoint.x, refPoint.y);\n scaleMatrix(matrix, sw, sh, refPoint.x, refPoint.y);\n rotateMatrix(matrix, refObject.rotateAngle, refPoint.x, refPoint.y);\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.width !== undefined && child.height !== undefined) {\n var newPosition = transformPointByMatrix(matrix, { x: child.offsetX, y: child.offsetY });\n child.offsetX = newPosition.x;\n child.offsetY = newPosition.y;\n scaleElement(child, sw, sh, refObject);\n }\n }\n }\n }\n}\n/**\n * scaleElement method \\\n *\n * @returns {void} scaleElement method .\\\n * @param { Node } obj - provide the obj value.\n * @param {number} x - provide the x value.\n * @param {number} y - provide the y value.\n * @param {DiagramElement} nameTable - provide the refObject value.\n * @param {DiagramElement} drop - provide the drop value.\n * @param {DiagramElement} diagram - provide the diagram value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function arrangeChild(obj, x, y, nameTable, drop, diagram) {\n var child = obj.children;\n var node;\n for (var i = 0; i < child.length; i++) {\n node = nameTable[child[parseInt(i.toString(), 10)]];\n if (node) {\n if (node.children) {\n arrangeChild(node, x, y, nameTable, drop, diagram);\n }\n else {\n node.offsetX -= x;\n node.offsetY -= y;\n if (!drop) {\n //let content: DiagramElement;\n //let container: Container;\n nameTable[node.id] = node;\n var container = node.initContainer();\n if (!container.children) {\n container.children = [];\n }\n var content = node.init(diagram);\n container.children.push(content);\n container.measure(new Size(node.width, node.height));\n container.arrange(container.desiredSize);\n }\n }\n }\n }\n}\n/**\n * insertObject method \\\n *\n * @returns {void} insertObject method .\\\n * @param { NodeModel | ConnectorModel } obj - provide the obj value.\n * @param { string } key - provide the obj value.\n * @param { Object[]} collection - provide the x value.\n * @private\n */\nexport function insertObject(obj, key, collection) {\n if (collection.length === 0) {\n collection.push(obj);\n }\n else if (collection.length === 1) {\n if (collection[0][\"\" + key] > obj[\"\" + key]) {\n collection.splice(0, 0, obj);\n }\n else {\n collection.push(obj);\n }\n }\n else if (collection.length > 1) {\n var low = 0;\n var high = collection.length - 1;\n var mid = Math.floor((low + high) / 2);\n while (mid !== low) {\n if (collection[parseInt(mid.toString(), 10)][\"\" + key] < obj[\"\" + key]) {\n low = mid;\n mid = Math.floor((low + high) / 2);\n }\n else if (collection[parseInt(mid.toString(), 10)][\"\" + key] > obj[\"\" + key]) {\n high = mid;\n mid = Math.floor((low + high) / 2);\n }\n else {\n break;\n }\n }\n if (collection[parseInt(high.toString(), 10)][\"\" + key] < obj[\"\" + key]) {\n collection.push(obj);\n }\n else if (collection[parseInt(low.toString(), 10)][\"\" + key] > obj[\"\" + key]) {\n collection.splice(low, 0, obj);\n }\n else if ((collection[parseInt(low.toString(), 10)][\"\" + key] < obj[\"\" + key]) && collection[parseInt(high.toString(), 10)][\"\" + key] > obj[\"\" + key]) {\n collection.splice(high, 0, obj);\n }\n }\n}\n/**\n * getElement method \\\n *\n * @returns {Object} getElement method .\\\n * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the obj value.\n * @private\n */\nexport function getElement(element) {\n var diagramElement = document.getElementById(element.diagramId);\n var instance = 'ej2_instances';\n // eslint-disable-next-line\n var node = {};\n var nodes = diagramElement[\"\" + instance][0].nodes;\n if (nodes === undefined) {\n nodes = getPaletteSymbols(diagramElement[\"\" + instance][0]);\n }\n var length = 'length';\n for (var i = 0; nodes && i < nodes[\"\" + length]; i++) {\n if (nodes[parseInt(i.toString(), 10)].id === element.nodeId) {\n return getAnnotation(nodes[parseInt(i.toString(), 10)], element);\n }\n }\n var connectors = diagramElement[\"\" + instance][0].connectors;\n for (var i = 0; connectors && i < connectors[\"\" + length]; i++) {\n if (connectors[parseInt(i.toString(), 10)].id === element.nodeId) {\n return getAnnotation(connectors[parseInt(i.toString(), 10)], element);\n }\n }\n // eslint-disable-next-line\n var enterObject = diagramElement[instance][0].enterObject;\n if (enterObject && (enterObject['id'] === element.nodeId || enterObject['children'])) {\n if (enterObject['children'] && groupHasType(enterObject, 'HTML', diagramElement[\"\" + instance][0].enterTable)) {\n return diagramElement[\"\" + instance][0].enterTable[element.nodeId];\n }\n else {\n return enterObject;\n }\n }\n return null;\n}\n/**\n * getAnnotation method \\\n *\n * @returns {Object} getAnnotation method .\\\n * @param { Object } obj - provide the obj value.\n * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the obj value.\n * @private\n */\nfunction getAnnotation(obj, element) {\n var annotations = obj.annotations;\n var length = 'length';\n var j;\n for (j = 0; annotations && j < annotations[\"\" + length]; j++) {\n if (element.annotationId && annotations[parseInt(j.toString(), 10)].id === element.annotationId) {\n return annotations[parseInt(j.toString(), 10)];\n }\n }\n return obj;\n}\n/**\n * getPaletteSymbols method \\\n *\n * @returns {NodeModel[]} getPaletteSymbols method .\\\n * @param { Object } symbolPalette - provide the symbolPalette value.\n * @private\n */\nfunction getPaletteSymbols(symbolPalette) {\n var nodes = [];\n for (var i = 0; i < symbolPalette.palettes.length; i++) {\n var symbols = symbolPalette.palettes[parseInt(i.toString(), 10)].symbols;\n for (var j = 0; j < symbols.length; j++) {\n if (symbols[parseInt(j.toString(), 10)] instanceof Node) {\n nodes.push(symbols[parseInt(j.toString(), 10)]);\n }\n }\n }\n return nodes;\n}\n/**\n * getCollectionChangeEventArguements method \\\n *\n * @returns {IBlazorCollectionChangeEventArgs} getCollectionChangeEventArguements method .\\\n * @param { IBlazorCollectionChangeEventArgs } args1 - provide the args1 value.\n * @param { NodeModel | ConnectorModel } obj - provide the obj value.\n * @param { EventState } state - provide the state value.\n * @param { ChangeType } type - provide the type value.\n * @private\n */\nexport function getCollectionChangeEventArguements(args1, obj, state, type) {\n if (isBlazor()) {\n args1 = {\n cause: args1.cause, state: state, type: type, cancel: false,\n element: getObjectType(obj) === Connector ?\n { connector: cloneBlazorObject(obj) } : { node: cloneBlazorObject(obj) }\n };\n }\n return args1;\n}\n/**\n * getDropEventArguements method \\\n *\n * @returns {IBlazorDropEventArgs} getDropEventArguements method .\\\n * @param { MouseEventArgs } args - provide the args1 value.\n * @param { IBlazorDropEventArgs } arg - provide the obj value.\n * @private\n */\nexport function getDropEventArguements(args, arg) {\n if (isBlazor()) {\n var isConnector = (getObjectType(args.source) === Connector);\n var object = cloneBlazorObject(args.source);\n var target = cloneBlazorObject(args.target);\n // BLAZ-20491 - Added the below code to check whether selector has nodes or connectors in it.\n // If it does not have means then we can directly access node.\n var connector = void 0;\n var node = void 0;\n if (object.connectors && object.connectors.length > 0) {\n connector = object.connectors[0];\n }\n else {\n connector = object;\n }\n if (object.nodes && object.nodes.length > 0) {\n node = object.nodes[0];\n }\n else {\n node = object;\n }\n arg = {\n element: isConnector ? {\n connector: connector,\n connectorId: connector.id\n }\n : { node: node, nodeId: node.id },\n target: isConnector ? { connector: target } : { node: target },\n position: arg.position, cancel: arg.cancel\n };\n }\n return arg;\n}\n/**\n * getPoint method \\\n *\n * @returns {PointModel} getPoint method .\\\n * @param { number } x - provide the x value.\n * @param { number } y - provide the y value.\n * @param { number } w - provide the w value.\n * @param { number } h - provide the y value.\n * @param { number } angle - provide the y value.\n * @param { number } offsetX - provide the y value.\n * @param { number } offsetY - provide the y value.\n * @param { PointModel } cornerPoint - provide the y value.\n * @private\n */\nexport function getPoint(x, y, w, h, angle, offsetX, offsetY, cornerPoint) {\n var pivot = { x: 0, y: 0 };\n var trans = identityMatrix();\n rotateMatrix(trans, angle, offsetX, offsetY);\n switch (cornerPoint.x) {\n case 0:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h }));\n break;\n }\n break;\n case 0.5:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h }));\n break;\n }\n break;\n case 1:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h }));\n break;\n }\n break;\n }\n return { x: pivot.x, y: pivot.y };\n}\n/* eslint-disable */\n/**\n * Get the object as Node | Connector \\\n *\n * @returns {Object} Get the object as Node | Connector .\\\n * @param { number } obj - provide the x value.\n * @private\n */\nexport var getObjectType = function (obj) {\n if (obj) {\n if (obj.sourceID !== undefined || obj.sourcePoint !== undefined ||\n obj.targetID !== undefined || obj.targetPoint !== undefined ||\n obj.type !== undefined) {\n obj = Connector;\n }\n else {\n obj = Node;\n }\n }\n return obj;\n};\n/** @private */\nexport var flipConnector = function (connector) {\n if (!connector.sourceID && !connector.targetID) {\n var source = { x: connector.sourcePoint.x, y: connector.sourcePoint.y };\n var target = { x: connector.targetPoint.x, y: connector.targetPoint.y };\n if (connector.flip === 'Horizontal') {\n connector.sourcePoint.x = target.x;\n connector.targetPoint.x = source.x;\n }\n else if (connector.flip === 'Vertical') {\n connector.sourcePoint.y = target.y;\n connector.targetPoint.y = source.y;\n }\n else if (connector.flip === 'Both') {\n connector.sourcePoint = target;\n connector.targetPoint = source;\n }\n }\n};\n/** @private */\nexport var updatePortEdges = function (portContent, flip, port) {\n var offsetX = port.offset.x;\n var offsetY = port.offset.y;\n if (flip === 'Horizontal') {\n offsetX = 1 - port.offset.x;\n offsetY = port.offset.y;\n }\n else if (flip === 'Vertical') {\n offsetX = port.offset.x;\n offsetY = 1 - port.offset.y;\n }\n else if (flip === 'Both') {\n offsetX = 1 - port.offset.x;\n offsetY = 1 - port.offset.y;\n }\n portContent.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n return portContent;\n};\n/** @private */\nexport var alignElement = function (element, offsetX, offsetY, diagram, flip) {\n if (element.hasChildren()) {\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n var childX = ((offsetX - child.offsetX) + offsetX);\n var childY = ((offsetY - child.offsetY) + offsetY);\n if (flip === 'Horizontal' || flip === 'Both') {\n child.offsetX = childX;\n child.flipOffset.x = childX - child.desiredSize.width / 2;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n child.offsetY = childY;\n child.flipOffset.y = childY - child.desiredSize.height / 2;\n }\n if (child instanceof Canvas || child instanceof Container) {\n alignElement(child, offsetX, offsetY, diagram, flip);\n }\n child.measure(new Size(child.bounds.width, child.bounds.height));\n child.arrange(child.desiredSize);\n var node = diagram.nameTable[child.id];\n if (node) {\n diagram.updateConnectorEdges(node);\n }\n }\n }\n};\n/** @private */\nexport var cloneSelectedObjects = function (diagram) {\n var nodes = diagram.selectedItems.nodes;\n var connectors = diagram.selectedItems.connectors;\n var isProtectedOnChange = 'isProtectedOnChange';\n var isEnableServerDatabind = diagram.allowServerDataBinding;\n var isProtectedOnChangeValue = diagram[isProtectedOnChange];\n diagram.protectPropertyChange(true);\n diagram.allowServerDataBinding = false;\n diagram.selectedItems.nodes = [];\n diagram.selectedItems.connectors = [];\n diagram.allowServerDataBinding = isEnableServerDatabind;\n diagram.protectPropertyChange(isProtectedOnChangeValue);\n var clonedSelectedItems = cloneObject(diagram.selectedItems);\n for (var i = 0; i < nodes.length; i++) {\n diagram.selectedItems.nodes.push(diagram.nameTable[nodes[i].id]);\n }\n for (var i = 0; i < connectors.length; i++) {\n diagram.selectedItems.connectors.push(diagram.nameTable[connectors[i].id]);\n }\n return clonedSelectedItems;\n};\n/** @private */\nexport var updatePathElement = function (anglePoints, connector) {\n var pathElement = new PathElement();\n var pathseqData;\n for (var j = 0; j < anglePoints.length - 1; j++) {\n pathseqData = findPath(anglePoints[j], anglePoints[j + 1]);\n pathElement.data = pathseqData[0];\n pathElement.id = connector.id + '_' + (connector.shape.sequence);\n pathElement.offsetX = pathseqData[1].x;\n pathElement.offsetY = pathseqData[1].y;\n pathElement.rotateAngle = 45;\n pathElement.transform = Transform.Self;\n }\n return pathElement;\n};\n/** @private */\nexport var checkPort = function (node, element) {\n if (node instanceof Node) {\n for (var i = 0; i < node.ports.length; i++) {\n if (node.ports[i].id === element.id.split('_')[1]) {\n return true;\n }\n }\n }\n return false;\n};\n/** @private */\nexport var findPath = function (sourcePoint, targetPoint) {\n var beginningpoint = { x: sourcePoint.x, y: sourcePoint.y };\n var distance = findDistance(sourcePoint, targetPoint);\n distance = Math.min(30, distance / 2);\n var angle = findAngle(sourcePoint, targetPoint);\n var transferpt = Point.transform({ x: beginningpoint.x, y: beginningpoint.y }, angle, distance);\n var startpoint = Point.transform({ x: transferpt.x, y: transferpt.y }, angle, -12);\n var endpoint = Point.transform({ x: startpoint.x, y: startpoint.y }, angle, 12 * 2);\n var path = 'M' + startpoint.x + ' ' + startpoint.y + ' L' + endpoint.x + ' ' + endpoint.y;\n return [path, transferpt];\n};\n/** @private */\nexport var getConnectorDirection = function (src, tar) {\n if (Math.abs(tar.x - src.x) > Math.abs(tar.y - src.y)) {\n return src.x < tar.x ? 'Right' : 'Left';\n }\n else {\n return src.y < tar.y ? 'Bottom' : 'Top';\n }\n};\n/** @private */\nexport var findDistance = function (point1, point2) {\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n};\n/* eslint-enable */\n/**\n * cloneBlazorObject method \\\n *\n * @returns {Object} cloneBlazorObject method .\\\n * @param { object } args - provide the args value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function cloneBlazorObject(args) {\n if (isBlazor()) {\n args = cloneObject(args);\n }\n return args;\n}\n/**\n * checkBrowserInfo method \\\n *\n * @returns {Object} checkBrowserInfo method .\\\n * @private\n */\nexport function checkBrowserInfo() {\n if ((navigator.platform.indexOf('Mac') >= 0 || navigator.platform.indexOf('iPad') >= 0\n || navigator.platform.indexOf('iPhone') >= 0 || navigator.platform.indexOf('MacIntel') >= 0)\n && (Browser.info.name === 'safari' || Browser.info.name === 'webkit')) {\n return true;\n }\n return false;\n}\n/**\n * canMeasureDecoratorPath method \\\n *\n * @returns {boolean} canMeasureDecoratorPath method .\\\n * @param { string[] } objects - provide the args value.\n * @private\n */\nexport function canMeasureDecoratorPath(objects) {\n if (objects.indexOf('shape') !== -1 || objects.indexOf('pathData') !== -1 ||\n objects.indexOf('width') !== -1 || objects.indexOf('height') !== -1) {\n return true;\n }\n return false;\n}\n/**\n * getPreviewSize method \\\n *\n * @returns {Size} getPreviewSize method .\\\n * @param { SymbolPaletteModel } sourceElement - provide the args value.\n * @param { Node } clonedObject - provide the args value.\n * @param { DiagramElement } wrapper - provide the args value.\n * @private\n */\nexport function getPreviewSize(sourceElement, clonedObject, wrapper) {\n //let previewWidth: number;\n //let previewHeight: number;\n var previewWidth = getSymbolSize(sourceElement, clonedObject, wrapper, 'width');\n var previewHeight = getSymbolSize(sourceElement, clonedObject, wrapper, 'height');\n return new Size(previewWidth, previewHeight);\n}\n/**\n * getSymbolSize method \\\n *\n * @returns {number} getSymbolSize method .\\\n * @param { SymbolPaletteModel } sourceElement - provide the sourceElement value.\n * @param { Node } clonedObject - provide the clonedObject value.\n * @param { DiagramElement } wrapper - provide the wrapper value.\n * @param { string } size - provide the size value.\n * @private\n */\nexport function getSymbolSize(sourceElement, clonedObject, wrapper, size) {\n var previewSize = 0;\n if (clonedObject.previewSize[\"\" + size] !== undefined) {\n previewSize = clonedObject.previewSize[\"\" + size];\n }\n else if (sourceElement.symbolPreview[\"\" + size] !== undefined) {\n previewSize = sourceElement.symbolPreview[\"\" + size];\n }\n else {\n previewSize = clonedObject[\"\" + size] || wrapper.actualSize[\"\" + size];\n }\n return previewSize;\n}\n/**\n * findParent method \\\n *\n * @returns {string} findParent method .\\\n * @param { Node } clonedObject - provide the clonedObject value.\n * @param { Diagram } wrapper - provide the diagram element.\n * @param { string } size - provide the parent id.\n * @private\n */\nexport function findParentInSwimlane(node, diagram, parent) {\n if (node && node.parentId) {\n node = diagram.nameTable[node.parentId];\n if (node.parentId) {\n parent = findParentInSwimlane(node, diagram, parent);\n }\n else {\n parent = node.id;\n }\n }\n return parent;\n}\n/**\n * selectionHasConnector method \\\n *\n * @returns {boolean} selectionHasConnector method .\\\n * @param { Diagram } wrapper - provide the diagram element.\n * @param { selector } size - provide the selector element.\n * @private\n */\nexport function selectionHasConnector(diagram, selector) {\n if (diagram.selectedItems.connectors.length > 1 && diagram.selectedItems.nodes.length === 0 && selector.rotateAngle !== 0) {\n return true;\n }\n return false;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\n/**\n * Defines the behavior of default IconShapes\n */\nvar IconShape = /** @class */ (function (_super) {\n __extends(IconShape, _super);\n function IconShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], IconShape.prototype, \"shape\", void 0);\n __decorate([\n Property('white')\n ], IconShape.prototype, \"fill\", void 0);\n __decorate([\n Property('Auto')\n ], IconShape.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Auto')\n ], IconShape.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property(10)\n ], IconShape.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], IconShape.prototype, \"height\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 1 }, Point)\n ], IconShape.prototype, \"offset\", void 0);\n __decorate([\n Property('#1a1a1a')\n ], IconShape.prototype, \"borderColor\", void 0);\n __decorate([\n Property(1)\n ], IconShape.prototype, \"borderWidth\", void 0);\n __decorate([\n Complex({}, Margin)\n ], IconShape.prototype, \"margin\", void 0);\n __decorate([\n Property('')\n ], IconShape.prototype, \"pathData\", void 0);\n __decorate([\n Property('')\n ], IconShape.prototype, \"content\", void 0);\n __decorate([\n Property(0)\n ], IconShape.prototype, \"cornerRadius\", void 0);\n __decorate([\n Complex({ left: 2, right: 2, top: 2, bottom: 2 }, Margin)\n ], IconShape.prototype, \"padding\", void 0);\n __decorate([\n Property('#1a1a1a')\n ], IconShape.prototype, \"iconColor\", void 0);\n return IconShape;\n}(ChildProperty));\nexport { IconShape };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Container } from './container';\nimport { rotateSize } from '../../utility/base-util';\n/**\n * StackPanel module is used to arrange its children in a line\n */\nvar StackPanel = /** @class */ (function (_super) {\n __extends(StackPanel, _super);\n function StackPanel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Gets/Sets the orientation of the stack panel\n */\n _this.orientation = 'Vertical';\n /**\n * Not applicable for canvas\n * to avoid the child size updation with respect to parent ser true\n *\n * @private\n */\n _this.measureChildren = undefined;\n /**\n * Sets or gets whether the padding of the element needs to be measured\n *\n * @private\n */\n _this.considerPadding = true;\n return _this;\n }\n /**\n * Measures the minimum space that the panel needs \\\n *\n * @returns { Size } Measures the minimum space that the panel needs.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n StackPanel.prototype.measure = function (availableSize) {\n var updateSize = this.orientation === 'Horizontal' ? this.updateHorizontalStack : this.updateVerticalStack;\n this.desiredSize = this.measureStackPanel(availableSize, updateSize);\n return this.desiredSize;\n };\n /**\n * Arranges the child elements of the stack panel \\\n *\n * @returns { Size } Arranges the child elements of the stack panel.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n StackPanel.prototype.arrange = function (desiredSize) {\n var updateSize = this.orientation === 'Horizontal' ? this.arrangeHorizontalStack : this.arrangeVerticalStack;\n this.actualSize = this.arrangeStackPanel(desiredSize, updateSize);\n this.updateBounds();\n return this.actualSize;\n };\n /**\n * Measures the minimum space that the panel needs \\\n *\n * @returns { Size } Measures the minimum space that the panel needs.\\\n * @param {Size} availableSize - provide the id value.\n * @param {Function} updateSize - provide the id value.\n *\n * @private\n */\n StackPanel.prototype.measureStackPanel = function (availableSize, updateSize) {\n var desired = undefined;\n if (this.children !== undefined && this.children.length > 0) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n child.parentTransform = this.rotateAngle + this.parentTransform;\n //Measure children\n if (this.measureChildren) {\n child.measure(child.desiredSize);\n }\n else {\n child.measure(availableSize);\n }\n var childSize = child.desiredSize.clone();\n //Consider Child's margin\n this.applyChildMargin(child, childSize);\n //Consider children's rotation\n if (child.rotateAngle !== 0) {\n childSize = rotateSize(childSize, child.rotateAngle);\n }\n //Measure stack panel\n if (desired === undefined) {\n desired = childSize;\n }\n else {\n if (!child.preventContainer) {\n updateSize(childSize, desired);\n }\n }\n }\n }\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n this.stretchChildren(desired);\n //Considering padding values\n if (this.considerPadding) {\n this.applyPadding(desired);\n }\n return desired;\n };\n StackPanel.prototype.arrangeStackPanel = function (desiredSize, updatePosition) {\n if (this.children !== undefined && this.children.length > 0) {\n var x = void 0;\n var y = void 0;\n x = this.offsetX - desiredSize.width * this.pivot.x + this.padding.left;\n y = this.offsetY - desiredSize.height * this.pivot.y + this.padding.top;\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n var childSize = child.desiredSize.clone();\n var rotatedSize = childSize;\n if (this.orientation === 'Vertical') {\n y += child.margin.top;\n }\n else {\n x += child.margin.left;\n }\n if (child.rotateAngle !== 0) {\n rotatedSize = rotateSize(childSize, child.rotateAngle);\n }\n var center = updatePosition(x, y, child, this, desiredSize, rotatedSize);\n _super.prototype.findChildOffsetFromCenter.call(this, child, center);\n child.arrange(childSize, true);\n if (this.orientation === 'Vertical') {\n y += rotatedSize.height + child.margin.bottom;\n }\n else {\n x += rotatedSize.width + child.margin.right;\n }\n }\n }\n return desiredSize;\n };\n StackPanel.prototype.updateHorizontalStack = function (child, parent) {\n parent.height = Math.max(child.height, parent.height);\n parent.width += child.width;\n };\n StackPanel.prototype.updateVerticalStack = function (child, parent) {\n parent.width = Math.max(child.width, parent.width);\n parent.height += child.height;\n };\n StackPanel.prototype.arrangeHorizontalStack = function (x, y, child, parent, parenBounds, childBounds) {\n var centerY = 0;\n if (child.verticalAlignment === 'Top') {\n centerY = y + child.margin.top + childBounds.height / 2;\n }\n else if (child.verticalAlignment === 'Bottom') {\n var parentBottom = parent.offsetY + parenBounds.height * (1 - parent.pivot.y);\n centerY = parentBottom - parent.padding.bottom - child.margin.bottom - childBounds.height / 2;\n }\n else {\n centerY = parent.offsetY - parenBounds.height * parent.pivot.y + parenBounds.height / 2;\n if (child.margin.top) {\n centerY = y + child.margin.top + childBounds.height / 2;\n }\n }\n return { x: x + childBounds.width / 2, y: centerY };\n };\n StackPanel.prototype.arrangeVerticalStack = function (x, y, child, parent, parentSize, childSize) {\n var centerX = 0;\n if (child.horizontalAlignment === 'Left') {\n centerX = x + child.margin.left + childSize.width / 2;\n }\n else if (child.horizontalAlignment === 'Right') {\n var parentRight = parent.offsetX + parentSize.width * (1 - parent.pivot.x);\n centerX = parentRight - parent.padding.right - child.margin.right - childSize.width / 2;\n }\n else {\n centerX = parent.offsetX - parentSize.width * parent.pivot.x + parentSize.width / 2;\n if (child.margin.left) {\n centerX = x + child.margin.left + childSize.width / 2;\n }\n }\n return { x: centerX, y: y + childSize.height / 2 };\n };\n StackPanel.prototype.stretchChildren = function (size) {\n if (this.children !== undefined && this.children.length > 0) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (this.orientation === 'Vertical') {\n if (child.horizontalAlignment === 'Stretch') {\n child.desiredSize.width = size.width - (child.margin.left + child.margin.right);\n }\n }\n else {\n if (child.verticalAlignment === 'Stretch') {\n child.desiredSize.height = size.height - (child.margin.top + child.margin.bottom);\n }\n }\n }\n }\n };\n StackPanel.prototype.applyChildMargin = function (child, size) {\n size.height += child.margin.top + child.margin.bottom;\n size.width += child.margin.left + child.margin.right;\n };\n return StackPanel;\n}(Container));\nexport { StackPanel };\n","import { NodeConstraints, AnnotationConstraints } from '../enum/enum';\nimport { Node } from '../objects/node';\nimport { randomId } from './../utility/base-util';\n/**\n * These utility methods help to process the data and to convert it to desired dimensions\n */\n/**\n * getULMClassifierShapes method \\\n *\n * @returns {DiagramElement} getULMClassifierShapes method .\\\n * @param { DiagramElement} content - provide the content value.\n * @param {NodeModel} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function getULMClassifierShapes(content, node, diagram) {\n var classifier;\n var textWrap = 'NoWrap';\n if (node.shape.classifier === 'Class') {\n classifier = node.shape.classShape;\n }\n else if (node.shape.classifier === 'Enumeration') {\n classifier = node.shape.enumerationShape;\n }\n else if (node.shape.classifier === 'Interface') {\n classifier = node.shape.interfaceShape;\n }\n //let attributeText: string = '';\n node.container = { type: 'Stack', orientation: 'Vertical' };\n node.constraints = (NodeConstraints.Default | NodeConstraints.HideThumbs) &\n ~(NodeConstraints.Rotate | NodeConstraints.Resize);\n node.style = {\n fill: node.style.fill, strokeColor: node.style.strokeColor,\n strokeWidth: 1.5\n };\n node.children = [];\n if (node.maxWidth) {\n textWrap = 'Wrap';\n }\n var newObj = new Node(diagram, 'nodes', {\n id: node.id + '_umlClass_header',\n annotations: [\n {\n id: 'name', content: classifier.name,\n offset: { x: 0.5, y: 0.65 }, margin: { left: 10, right: 10 },\n style: {\n bold: true, fontSize: 14, color: classifier.style.color, fill: classifier.style.fill,\n textWrapping: textWrap\n }\n }, {\n content: '<<' + node.shape.classifier + '>>', margin: { left: 10, right: 10 },\n id: 'class', style: {\n fontSize: classifier.style.fontSize,\n color: classifier.style.color, fill: classifier.style.fill,\n textWrapping: textWrap\n }, offset: { x: 0.5, y: 0.3 }, constraints: AnnotationConstraints.ReadOnly\n }\n ],\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n verticalAlignment: 'Stretch',\n horizontalAlignment: 'Stretch',\n style: { fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor }\n }, true);\n diagram.initObject(newObj);\n diagram.nodes.push(newObj);\n diagram.UpdateBlazorDiagramModel(newObj, 'Node');\n node.children.push(newObj.id);\n getClassNodes(node, diagram, classifier, textWrap);\n getClassMembers(node, diagram, classifier, textWrap);\n /* eslint-disable */\n node.offsetX = node.offsetX;\n node.offsetY = node.offsetY;\n node.style.fill = node.style.fill;\n node.borderColor = node.borderColor;\n diagram.initObject(node);\n /* eslint-enable */\n return content;\n}\n/**\n * getClassNodes method \\\n *\n * @returns {void} getClassNodes method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassNodes(node, diagram, classifier, textWrap) {\n if (node.shape.classifier === 'Enumeration') {\n var member = classifier.members;\n if (member && member.length) {\n addSeparator(node, diagram);\n var memberText = '';\n for (var i = 0; i < member.length; i++) {\n var members = member[parseInt(i.toString(), 10)];\n if (members.name !== '') {\n memberText += members.name;\n }\n if (i !== member.length) {\n var style = getStyle(node, members);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlMember',\n annotations: [\n {\n id: 'name', content: memberText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n style: {\n fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ?\n '#ffffff00' : node.style.strokeColor, textWrapping: textWrap\n },\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n diagram.initObject(temp);\n diagram.nodes.push(temp);\n diagram.UpdateBlazorDiagramModel(temp, 'Node');\n node.children.push(temp.id);\n memberText = '';\n if (members.isSeparator && (i !== member.length - 1)) {\n addSeparator(node, diagram);\n }\n }\n }\n }\n }\n else {\n var attributes = classifier.attributes;\n if (attributes.length) {\n var attributeText = '';\n addSeparator(node, diagram);\n for (var i = 0; i < attributes.length; i++) {\n var text = void 0;\n var attribute = attributes[parseInt(i.toString(), 10)];\n if (attribute.scope && (attribute).scope === 'Public') {\n text = ' +';\n }\n else if (attribute.scope && attribute.scope === 'Private') {\n text = '-';\n }\n else if (attribute.scope && attribute.scope === 'Protected') {\n text = '#';\n }\n else {\n text = '~';\n }\n if (attribute.name !== '') {\n if (text) {\n attributeText += text + ' ' + attribute.name + ' ' + ': ' + attribute.type;\n }\n }\n if (i !== attributes.length) {\n var style = getStyle(node, attribute);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlProperty', style: { fill: node.style.fill,\n strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor },\n annotations: [\n {\n id: 'name', content: attributeText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n diagram.initObject(temp);\n diagram.nodes.push(temp);\n diagram.UpdateBlazorDiagramModel(temp, 'Node');\n node.children.push(temp.id);\n attributeText = '';\n if (attribute.isSeparator && (i !== attributes.length - 1)) {\n addSeparator(node, diagram);\n }\n }\n }\n }\n }\n}\n/**\n * getClassMembers method \\\n *\n * @returns {void} getClassMembers method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassMembers(node, diagram, classifier, textWrap) {\n if (classifier.methods && classifier.methods.length) {\n var methods = classifier.methods;\n addSeparator(node, diagram);\n var argumentText = '';\n var methodText = '';\n var text = void 0;\n for (var i = 0; i < methods.length; i++) {\n var method = methods[parseInt(i.toString(), 10)];\n if (method.scope && method.scope === 'Public') {\n text = ' +';\n }\n else if (method.scope && method.scope === 'Private') {\n text = '-';\n }\n else if (method.scope && method.scope === 'Protected') {\n text = '#';\n }\n else {\n text = '~';\n }\n if (method.parameters) {\n for (var j = 0; j < method.parameters.length; j++) {\n if (method.parameters[parseInt(j.toString(), 10)].type) {\n argumentText += method.parameters[parseInt(j.toString(), 10)].name + ':' + method.parameters[parseInt(j.toString(), 10)].type;\n }\n else {\n argumentText += method.parameters[parseInt(j.toString(), 10)].name;\n }\n if (j !== method.parameters.length - 1) {\n argumentText += ',';\n }\n }\n }\n if (method.name !== '') {\n if (text) {\n methodText += text + ' ' + method.name + '(' + argumentText + ')' + ' ' + ':' + ' ' + method.type;\n }\n }\n if (i !== methods.length) {\n var style = getStyle(node, method);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlMethods', verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n annotations: [\n {\n id: 'name', content: methodText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ],\n style: {\n fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ?\n '#ffffff00' : node.style.strokeColor\n }, minHeight: 25,\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize)\n }, true);\n diagram.initObject(temp);\n diagram.nodes.push(temp);\n diagram.UpdateBlazorDiagramModel(temp, 'Node');\n node.children.push(temp.id);\n methodText = '';\n if (method.isSeparator && (i !== methods.length - 1)) {\n addSeparator(node, diagram);\n }\n }\n }\n }\n}\n/**\n * addSeparator method \\\n *\n * @returns {void} addSeparator method .\\\n * @param { Node} stack - provide the stack value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function addSeparator(stack, diagram) {\n var lineObject = new Node(diagram, 'nodes', {\n id: randomId() + '_path', height: 1, constraints: NodeConstraints.Default & ~(NodeConstraints.Select),\n verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n style: { strokeColor: (stack.style.strokeColor === 'black') ? '#ffffff00' : stack.style.strokeColor }\n }, true);\n diagram.initObject(lineObject);\n diagram.nodes.push(lineObject);\n stack.children.push(lineObject.id);\n}\n/**\n * getStyle method \\\n *\n * @returns {TextStyleModel} addSeparator method .\\\n * @param { Node} stack - provide the stack value.\n * @param {UmlClassModel} node - provide the node value.\n * @private\n */\nexport function getStyle(stack, node) {\n var newStyle = {};\n var style = node.style;\n newStyle.fill = (style.fill !== 'transparent') ? style.fill : stack.style.fill;\n newStyle.color = style.color;\n newStyle.fontSize = (style.fontSize !== 12) ? style.fontSize : stack.style.fontSize;\n newStyle.strokeColor = (style.strokeColor !== 'black') ? style.strokeColor : stack.style.strokeColor;\n newStyle.strokeWidth = (style.strokeWidth !== 1) ? style.strokeWidth : stack.style.strokeWidth;\n return newStyle;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar LayoutInfo = /** @class */ (function (_super) {\n __extends(LayoutInfo, _super);\n function LayoutInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Horizontal')\n ], LayoutInfo.prototype, \"orientation\", void 0);\n __decorate([\n Property('Center')\n ], LayoutInfo.prototype, \"type\", void 0);\n __decorate([\n Property(undefined)\n ], LayoutInfo.prototype, \"offset\", void 0);\n __decorate([\n Property(false)\n ], LayoutInfo.prototype, \"enableRouting\", void 0);\n __decorate([\n Property([])\n ], LayoutInfo.prototype, \"children\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"assistants\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"level\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"hasSubTree\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"rows\", void 0);\n return LayoutInfo;\n}(ChildProperty));\nexport { LayoutInfo };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable max-len */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable no-case-declarations */\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { Property, Complex, Collection, ChildProperty, ComplexFactory, isBlazor, compile as baseTemplateCompiler } from '@syncfusion/ej2-base';\nimport { ShapeStyle, Margin, TextStyle, Shadow } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { Size } from '../primitives/size';\nimport { ElementAction } from '../enum/enum';\nimport { Container } from '../core/containers/container';\nimport { Canvas } from '../core/containers/canvas';\nimport { getBasicShape } from './dictionary/basic-shapes';\nimport { DiagramElement } from '../core/elements/diagram-element';\nimport { PathElement } from '../core/elements/path-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { ImageElement } from '../core/elements/image-element';\nimport { DiagramNativeElement } from '../core/elements/native-element';\nimport { PointPort } from './port';\nimport { SelectorConstraints } from '../enum/enum';\nimport { Annotation, ShapeAnnotation } from './annotation';\nimport { getPortShape, getIconShape } from './dictionary/common';\nimport { getFlowShape } from './dictionary/flow-shapes';\nimport { NodeConstraints } from '../enum/enum';\nimport { checkPortRestriction, setUMLActivityDefaults, getUMLActivityShapes } from './../utility/diagram-util';\nimport { updatePortEdges, initfixedUserHandlesSymbol } from './../utility/diagram-util';\nimport { setSwimLaneDefaults, setPortsEdges } from './../utility/diagram-util';\nimport { randomId, getFunction, cloneObject } from './../utility/base-util';\nimport { NodeBase } from './node-base';\nimport { canShadow } from './../utility/constraints-util';\nimport { PortVisibility } from '../enum/enum';\nimport { IconShape } from './icon';\nimport { measurePath, getContent, getTemplateContent } from './../utility/dom-util';\nimport { getFreeHandPath, getPolygonPath } from './../utility/path-util';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { StackPanel } from '../core/containers/stack-panel';\nimport { GridPanel } from '../core/containers/grid';\nimport { getULMClassifierShapes } from '../utility/uml-util';\nimport { initSwimLane } from './../utility/swim-lane-util';\nimport { Connector } from './connector';\nimport { UserHandle } from '../interaction/selector';\nimport { LayoutInfo } from '../diagram/layoutinfo';\nimport { SymbolSize } from './preview';\nimport { NodeFixedUserHandle } from './fixed-user-handle';\nvar getShapeType = function (obj) {\n if (obj) {\n if (isBlazor()) {\n return DiagramShape;\n }\n else {\n switch (obj.type) {\n case 'Basic':\n return BasicShape;\n case 'Flow':\n return FlowShape;\n case 'Path':\n return Path;\n case 'Image':\n return Image;\n case 'Text':\n return Text;\n case 'Bpmn':\n return BpmnShape;\n case 'Native':\n return Native;\n case 'HTML':\n return Html;\n case 'UmlActivity':\n return UmlActivityShape;\n case 'UmlClassifier':\n return UmlClassifierShape;\n case 'SwimLane':\n return SwimLane;\n default:\n return BasicShape;\n }\n }\n }\n return (isBlazor()) ? DiagramShape : BasicShape;\n};\n/**\n * Defines the behavior of default shape\n */\nvar Shape = /** @class */ (function (_super) {\n __extends(Shape, _super);\n function Shape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Basic')\n ], Shape.prototype, \"type\", void 0);\n return Shape;\n}(ChildProperty));\nexport { Shape };\n/**\n * Defines the behavior of path shape\n */\nvar Path = /** @class */ (function (_super) {\n __extends(Path, _super);\n function Path() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * getClassName method \\\n *\n * @returns { string } toBounds method .\\\n *\n * @private\n */\n Path.prototype.getClassName = function () {\n return 'Path';\n };\n __decorate([\n Property('Path')\n ], Path.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Path.prototype, \"data\", void 0);\n return Path;\n}(Shape));\nexport { Path };\n/**\n * Defines the behavior of Native shape\n */\nvar Native = /** @class */ (function (_super) {\n __extends(Native, _super);\n function Native() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Native\n *\n * @private\n */\n Native.prototype.getClassName = function () {\n return 'Native';\n };\n __decorate([\n Property('Native')\n ], Native.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Native.prototype, \"content\", void 0);\n __decorate([\n Property('Stretch')\n ], Native.prototype, \"scale\", void 0);\n return Native;\n}(Shape));\nexport { Native };\n/**\n * Defines the behavior of html shape\n */\nvar Html = /** @class */ (function (_super) {\n __extends(Html, _super);\n function Html() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Html\n *\n * @private\n */\n Html.prototype.getClassName = function () {\n return 'Html';\n };\n __decorate([\n Property('HTML')\n ], Html.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Html.prototype, \"content\", void 0);\n return Html;\n}(Shape));\nexport { Html };\n/**\n * Defines the behavior of image shape\n */\nvar Image = /** @class */ (function (_super) {\n __extends(Image, _super);\n function Image() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Image\n *\n * @private\n */\n Image.prototype.getClassName = function () {\n return 'Image';\n };\n __decorate([\n Property('Image')\n ], Image.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Image.prototype, \"source\", void 0);\n __decorate([\n Property('None')\n ], Image.prototype, \"scale\", void 0);\n __decorate([\n Property('None')\n ], Image.prototype, \"align\", void 0);\n return Image;\n}(Shape));\nexport { Image };\n/**\n * Defines the behavior of the text shape\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Text\n *\n * @private\n */\n Text.prototype.getClassName = function () {\n return 'Text';\n };\n __decorate([\n Property('Text')\n ], Text.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Text.prototype, \"content\", void 0);\n __decorate([\n Complex({}, Margin)\n ], Text.prototype, \"margin\", void 0);\n return Text;\n}(Shape));\nexport { Text };\n/**\n * Defines the behavior of the basic shape\n */\nvar BasicShape = /** @class */ (function (_super) {\n __extends(BasicShape, _super);\n function BasicShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BasicShape\n *\n * @private\n *\n */\n BasicShape.prototype.getClassName = function () {\n return 'BasicShape';\n };\n __decorate([\n Property('Basic')\n ], BasicShape.prototype, \"type\", void 0);\n __decorate([\n Property('Rectangle')\n ], BasicShape.prototype, \"shape\", void 0);\n __decorate([\n Property(0)\n ], BasicShape.prototype, \"cornerRadius\", void 0);\n __decorate([\n Collection([], Point)\n ], BasicShape.prototype, \"points\", void 0);\n return BasicShape;\n}(Shape));\nexport { BasicShape };\n/**\n * Defines the behavior of the flow shape\n */\nvar FlowShape = /** @class */ (function (_super) {\n __extends(FlowShape, _super);\n function FlowShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class FlowShape\n *\n * @private\n */\n FlowShape.prototype.getClassName = function () {\n return 'FlowShape';\n };\n __decorate([\n Property('Flow')\n ], FlowShape.prototype, \"type\", void 0);\n __decorate([\n Property('Terminator')\n ], FlowShape.prototype, \"shape\", void 0);\n return FlowShape;\n}(Shape));\nexport { FlowShape };\n/**\n * Defines the behavior of the bpmn gateway shape\n */\nvar BpmnGateway = /** @class */ (function (_super) {\n __extends(BpmnGateway, _super);\n function BpmnGateway() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnGateway\n *\n * @private\n */\n BpmnGateway.prototype.getClassName = function () {\n return 'BpmnGateway';\n };\n __decorate([\n Property('None')\n ], BpmnGateway.prototype, \"type\", void 0);\n return BpmnGateway;\n}(ChildProperty));\nexport { BpmnGateway };\n/**\n * Defines the behavior of the bpmn data object\n */\nvar BpmnDataObject = /** @class */ (function (_super) {\n __extends(BpmnDataObject, _super);\n function BpmnDataObject() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnDataObject\n *\n * @private\n */\n BpmnDataObject.prototype.getClassName = function () {\n return 'BpmnDataObject';\n };\n __decorate([\n Property('None')\n ], BpmnDataObject.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], BpmnDataObject.prototype, \"collection\", void 0);\n return BpmnDataObject;\n}(ChildProperty));\nexport { BpmnDataObject };\n/**\n * Defines the behavior of the bpmn task shape\n */\nvar BpmnTask = /** @class */ (function (_super) {\n __extends(BpmnTask, _super);\n function BpmnTask() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], BpmnTask.prototype, \"type\", void 0);\n __decorate([\n Property('None')\n ], BpmnTask.prototype, \"loop\", void 0);\n __decorate([\n Property(false)\n ], BpmnTask.prototype, \"call\", void 0);\n __decorate([\n Property(false)\n ], BpmnTask.prototype, \"compensation\", void 0);\n return BpmnTask;\n}(ChildProperty));\nexport { BpmnTask };\n/**\n * Defines the behavior of the bpmn Event shape\n */\nvar BpmnEvent = /** @class */ (function (_super) {\n __extends(BpmnEvent, _super);\n function BpmnEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnEvent\n *\n * @private\n */\n BpmnEvent.prototype.getClassName = function () {\n return 'BpmnEvent';\n };\n __decorate([\n Property('Start')\n ], BpmnEvent.prototype, \"event\", void 0);\n __decorate([\n Property('None')\n ], BpmnEvent.prototype, \"trigger\", void 0);\n return BpmnEvent;\n}(ChildProperty));\nexport { BpmnEvent };\n/**\n * Defines the behavior of the bpmn sub event\n */\nvar BpmnSubEvent = /** @class */ (function (_super) {\n __extends(BpmnSubEvent, _super);\n function BpmnSubEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnSubEvent\n *\n * @private\n */\n BpmnSubEvent.prototype.getClassName = function () {\n return 'BpmnSubEvent';\n };\n __decorate([\n Property('None')\n ], BpmnSubEvent.prototype, \"trigger\", void 0);\n __decorate([\n Property('Start')\n ], BpmnSubEvent.prototype, \"event\", void 0);\n __decorate([\n Property('')\n ], BpmnSubEvent.prototype, \"id\", void 0);\n __decorate([\n Complex({}, Point)\n ], BpmnSubEvent.prototype, \"offset\", void 0);\n __decorate([\n Collection([], ShapeAnnotation)\n ], BpmnSubEvent.prototype, \"annotations\", void 0);\n __decorate([\n Collection([], PointPort)\n ], BpmnSubEvent.prototype, \"ports\", void 0);\n __decorate([\n Property()\n ], BpmnSubEvent.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], BpmnSubEvent.prototype, \"height\", void 0);\n __decorate([\n Complex({}, Margin)\n ], BpmnSubEvent.prototype, \"margin\", void 0);\n __decorate([\n Property('Center')\n ], BpmnSubEvent.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], BpmnSubEvent.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property(true)\n ], BpmnSubEvent.prototype, \"visible\", void 0);\n return BpmnSubEvent;\n}(ChildProperty));\nexport { BpmnSubEvent };\n/**\n * Defines the behavior of the BpmnTransactionSubProcess\n */\nvar BpmnTransactionSubProcess = /** @class */ (function (_super) {\n __extends(BpmnTransactionSubProcess, _super);\n function BpmnTransactionSubProcess() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ id: 'success', event: 'End', offset: { x: 1, y: 0.5 } }, BpmnSubEvent)\n ], BpmnTransactionSubProcess.prototype, \"success\", void 0);\n __decorate([\n Complex({ id: 'failure', event: 'Intermediate', trigger: 'Error', offset: { x: 0.25, y: 1 } }, BpmnSubEvent)\n ], BpmnTransactionSubProcess.prototype, \"failure\", void 0);\n __decorate([\n Complex({ id: 'cancel', event: 'Intermediate', trigger: 'Cancel', offset: { x: 0.75, y: 1 } }, BpmnSubEvent)\n ], BpmnTransactionSubProcess.prototype, \"cancel\", void 0);\n return BpmnTransactionSubProcess;\n}(ChildProperty));\nexport { BpmnTransactionSubProcess };\n/**\n * Defines the behavior of the BPMNSubProcess\n */\nvar BpmnSubProcess = /** @class */ (function (_super) {\n __extends(BpmnSubProcess, _super);\n function BpmnSubProcess() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], BpmnSubProcess.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], BpmnSubProcess.prototype, \"adhoc\", void 0);\n __decorate([\n Property('Default')\n ], BpmnSubProcess.prototype, \"boundary\", void 0);\n __decorate([\n Property(false)\n ], BpmnSubProcess.prototype, \"compensation\", void 0);\n __decorate([\n Property('None')\n ], BpmnSubProcess.prototype, \"loop\", void 0);\n __decorate([\n Property(true)\n ], BpmnSubProcess.prototype, \"collapsed\", void 0);\n __decorate([\n Collection([], BpmnSubEvent)\n ], BpmnSubProcess.prototype, \"events\", void 0);\n __decorate([\n Complex({}, BpmnTransactionSubProcess)\n ], BpmnSubProcess.prototype, \"transaction\", void 0);\n __decorate([\n Property(undefined)\n ], BpmnSubProcess.prototype, \"processes\", void 0);\n return BpmnSubProcess;\n}(ChildProperty));\nexport { BpmnSubProcess };\n/**\n * Defines the behavior of the bpmn activity shape\n */\nvar BpmnActivity = /** @class */ (function (_super) {\n __extends(BpmnActivity, _super);\n function BpmnActivity() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnActivity\n *\n * @private\n */\n BpmnActivity.prototype.getClassName = function () {\n return 'BpmnActivity';\n };\n __decorate([\n Property('Task')\n ], BpmnActivity.prototype, \"activity\", void 0);\n __decorate([\n Complex({}, BpmnTask)\n ], BpmnActivity.prototype, \"task\", void 0);\n __decorate([\n Complex({}, BpmnSubProcess)\n ], BpmnActivity.prototype, \"subProcess\", void 0);\n return BpmnActivity;\n}(ChildProperty));\nexport { BpmnActivity };\n/**\n * Defines the behavior of the bpmn annotation\n *\n */\nvar BpmnAnnotation = /** @class */ (function (_super) {\n __extends(BpmnAnnotation, _super);\n // tslint:disable-next-line:no-any\n function BpmnAnnotation(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n /**\n * @private\n * Returns the name of class BpmnAnnotation\n */\n BpmnAnnotation.prototype.getClassName = function () {\n return 'BpmnAnnotation';\n };\n __decorate([\n Property('')\n ], BpmnAnnotation.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], BpmnAnnotation.prototype, \"id\", void 0);\n __decorate([\n Property(0)\n ], BpmnAnnotation.prototype, \"angle\", void 0);\n __decorate([\n Property()\n ], BpmnAnnotation.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], BpmnAnnotation.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], BpmnAnnotation.prototype, \"length\", void 0);\n return BpmnAnnotation;\n}(ChildProperty));\nexport { BpmnAnnotation };\n/**\n * Defines the behavior of the bpmn shape\n */\nvar BpmnShape = /** @class */ (function (_super) {\n __extends(BpmnShape, _super);\n function BpmnShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnShape\n *\n * @private\n */\n BpmnShape.prototype.getClassName = function () {\n return 'BpmnShape';\n };\n __decorate([\n Property('Bpmn')\n ], BpmnShape.prototype, \"type\", void 0);\n __decorate([\n Property('Event')\n ], BpmnShape.prototype, \"shape\", void 0);\n __decorate([\n Complex({}, BpmnEvent)\n ], BpmnShape.prototype, \"event\", void 0);\n __decorate([\n Complex({}, BpmnGateway)\n ], BpmnShape.prototype, \"gateway\", void 0);\n __decorate([\n Complex({}, BpmnDataObject)\n ], BpmnShape.prototype, \"dataObject\", void 0);\n __decorate([\n Complex({}, BpmnActivity)\n ], BpmnShape.prototype, \"activity\", void 0);\n __decorate([\n Complex({}, BpmnAnnotation)\n ], BpmnShape.prototype, \"annotation\", void 0);\n __decorate([\n Collection([], BpmnAnnotation)\n ], BpmnShape.prototype, \"annotations\", void 0);\n return BpmnShape;\n}(Shape));\nexport { BpmnShape };\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar UmlActivityShape = /** @class */ (function (_super) {\n __extends(UmlActivityShape, _super);\n function UmlActivityShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlActivityShape\n *\n * @private\n */\n UmlActivityShape.prototype.getClassName = function () {\n return 'UmlActivityShape';\n };\n __decorate([\n Property('UmlActivity')\n ], UmlActivityShape.prototype, \"type\", void 0);\n __decorate([\n Property('Action')\n ], UmlActivityShape.prototype, \"shape\", void 0);\n return UmlActivityShape;\n}(Shape));\nexport { UmlActivityShape };\n/**\n * Defines the behavior of the uml class method\n */\nvar MethodArguments = /** @class */ (function (_super) {\n __extends(MethodArguments, _super);\n function MethodArguments() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class MethodArguments\n *\n * @private\n */\n MethodArguments.prototype.getClassName = function () {\n return 'MethodArguments';\n };\n __decorate([\n Property('')\n ], MethodArguments.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], MethodArguments.prototype, \"type\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], MethodArguments.prototype, \"style\", void 0);\n return MethodArguments;\n}(ChildProperty));\nexport { MethodArguments };\n/**\n * Defines the behavior of the uml class attributes\n */\nvar UmlClassAttribute = /** @class */ (function (_super) {\n __extends(UmlClassAttribute, _super);\n function UmlClassAttribute() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassAttribute\n *\n * @private\n */\n UmlClassAttribute.prototype.getClassName = function () {\n return 'UmlClassAttribute';\n };\n __decorate([\n Property('Public')\n ], UmlClassAttribute.prototype, \"scope\", void 0);\n __decorate([\n Property(false)\n ], UmlClassAttribute.prototype, \"isSeparator\", void 0);\n return UmlClassAttribute;\n}(MethodArguments));\nexport { UmlClassAttribute };\n/**\n * Defines the behavior of the uml class method\n */\nvar UmlClassMethod = /** @class */ (function (_super) {\n __extends(UmlClassMethod, _super);\n function UmlClassMethod() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassMethod\n *\n * @private\n */\n UmlClassMethod.prototype.getClassName = function () {\n return 'UmlClassMethod';\n };\n __decorate([\n Collection([], MethodArguments)\n ], UmlClassMethod.prototype, \"parameters\", void 0);\n return UmlClassMethod;\n}(UmlClassAttribute));\nexport { UmlClassMethod };\n/**\n * Defines the behavior of the uml class shapes\n */\nvar UmlClass = /** @class */ (function (_super) {\n __extends(UmlClass, _super);\n function UmlClass() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClass\n *\n * @private\n */\n UmlClass.prototype.getClassName = function () {\n return 'UmlClass';\n };\n __decorate([\n Property('')\n ], UmlClass.prototype, \"name\", void 0);\n __decorate([\n Collection([], UmlClassAttribute)\n ], UmlClass.prototype, \"attributes\", void 0);\n __decorate([\n Collection([], UmlClassMethod)\n ], UmlClass.prototype, \"methods\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], UmlClass.prototype, \"style\", void 0);\n return UmlClass;\n}(ChildProperty));\nexport { UmlClass };\n/**\n * Defines the behavior of the uml interface shapes\n */\nvar UmlInterface = /** @class */ (function (_super) {\n __extends(UmlInterface, _super);\n function UmlInterface() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlInterface\n *\n * @private\n */\n UmlInterface.prototype.getClassName = function () {\n return 'UmlInterface';\n };\n __decorate([\n Property(false)\n ], UmlInterface.prototype, \"isSeparator\", void 0);\n return UmlInterface;\n}(UmlClass));\nexport { UmlInterface };\n/**\n * Defines the behavior of the uml interface shapes\n */\nvar UmlEnumerationMember = /** @class */ (function (_super) {\n __extends(UmlEnumerationMember, _super);\n function UmlEnumerationMember() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlEnumerationMember\n *\n * @private\n */\n UmlEnumerationMember.prototype.getClassName = function () {\n return 'UmlEnumerationMember';\n };\n __decorate([\n Property('')\n ], UmlEnumerationMember.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], UmlEnumerationMember.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], UmlEnumerationMember.prototype, \"isSeparator\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], UmlEnumerationMember.prototype, \"style\", void 0);\n return UmlEnumerationMember;\n}(ChildProperty));\nexport { UmlEnumerationMember };\n/**\n * Defines the behavior of the uml interface shapes\n */\nvar UmlEnumeration = /** @class */ (function (_super) {\n __extends(UmlEnumeration, _super);\n function UmlEnumeration() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlEnumeration\n *\n * @private\n */\n UmlEnumeration.prototype.getClassName = function () {\n return 'UmlEnumeration';\n };\n __decorate([\n Property('')\n ], UmlEnumeration.prototype, \"name\", void 0);\n __decorate([\n Collection([], UmlEnumerationMember)\n ], UmlEnumeration.prototype, \"members\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], UmlEnumeration.prototype, \"style\", void 0);\n return UmlEnumeration;\n}(ChildProperty));\nexport { UmlEnumeration };\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar UmlClassifierShape = /** @class */ (function (_super) {\n __extends(UmlClassifierShape, _super);\n function UmlClassifierShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassifierShape\n *\n * @private\n */\n UmlClassifierShape.prototype.getClassName = function () {\n return 'UmlClassifierShape';\n };\n __decorate([\n Property('UmlClassifier')\n ], UmlClassifierShape.prototype, \"type\", void 0);\n __decorate([\n Complex({}, UmlClass)\n ], UmlClassifierShape.prototype, \"classShape\", void 0);\n __decorate([\n Complex({}, UmlInterface)\n ], UmlClassifierShape.prototype, \"interfaceShape\", void 0);\n __decorate([\n Complex({}, UmlEnumeration)\n ], UmlClassifierShape.prototype, \"enumerationShape\", void 0);\n __decorate([\n Property('Class')\n ], UmlClassifierShape.prototype, \"classifier\", void 0);\n return UmlClassifierShape;\n}(Shape));\nexport { UmlClassifierShape };\n/* tslint:disable */\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar DiagramShape = /** @class */ (function (_super) {\n __extends(DiagramShape, _super);\n function DiagramShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassifierShape\n *\n * @private\n */\n DiagramShape.prototype.getClassName = function () {\n return 'DiagramShape';\n };\n __decorate([\n Property('Basic')\n ], DiagramShape.prototype, \"type\", void 0);\n __decorate([\n Property('Rectangle')\n ], DiagramShape.prototype, \"basicShape\", void 0);\n __decorate([\n Property('Terminator')\n ], DiagramShape.prototype, \"flowShape\", void 0);\n __decorate([\n Property('Event')\n ], DiagramShape.prototype, \"bpmnShape\", void 0);\n __decorate([\n Property('Action')\n ], DiagramShape.prototype, \"umlActivityShape\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"data\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"textContent\", void 0);\n __decorate([\n Property('Stretch')\n ], DiagramShape.prototype, \"scale\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"source\", void 0);\n __decorate([\n Property('None')\n ], DiagramShape.prototype, \"align\", void 0);\n __decorate([\n Complex({}, Margin)\n ], DiagramShape.prototype, \"margin\", void 0);\n __decorate([\n Property(0)\n ], DiagramShape.prototype, \"cornerRadius\", void 0);\n __decorate([\n Collection([], Point)\n ], DiagramShape.prototype, \"points\", void 0);\n __decorate([\n Complex({}, BpmnDataObject)\n ], DiagramShape.prototype, \"dataObject\", void 0);\n __decorate([\n Complex({}, BpmnEvent)\n ], DiagramShape.prototype, \"event\", void 0);\n __decorate([\n Complex({}, BpmnGateway)\n ], DiagramShape.prototype, \"gateway\", void 0);\n __decorate([\n Collection([], BpmnAnnotation)\n ], DiagramShape.prototype, \"annotations\", void 0);\n __decorate([\n Complex({}, BpmnActivity)\n ], DiagramShape.prototype, \"activity\", void 0);\n __decorate([\n Complex({}, BpmnAnnotation)\n ], DiagramShape.prototype, \"annotation\", void 0);\n __decorate([\n Complex({}, UmlEnumeration)\n ], DiagramShape.prototype, \"enumerationShape\", void 0);\n __decorate([\n Property('Class')\n ], DiagramShape.prototype, \"classifier\", void 0);\n __decorate([\n Complex({}, UmlClass)\n ], DiagramShape.prototype, \"classShape\", void 0);\n __decorate([\n Complex({}, UmlInterface)\n ], DiagramShape.prototype, \"interfaceShape\", void 0);\n return DiagramShape;\n}(ChildProperty));\nexport { DiagramShape };\n/* tslint:enable */\n/**\n * Defines the behavior of nodes\n */\nvar Node = /** @class */ (function (_super) {\n __extends(Node, _super);\n function Node(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n /** @private */\n _this.isCanvasUpdate = false;\n /** @private */\n _this.status = 'None';\n /** @private */\n _this.parentId = '';\n /** @private */\n _this.processId = '';\n /** @private */\n _this.umlIndex = -1;\n /** @private */\n _this.outEdges = [];\n /** @private */\n _this.inEdges = [];\n /** @private */\n _this.isHeader = false;\n /** @private */\n _this.isLane = false;\n /** @private */\n _this.isPhase = false;\n /** @private */\n _this.isTextNode = false;\n var nodeDefault;\n if (_this.children && _this.children.length > 0) {\n nodeDefault = defaultValue;\n if (!nodeDefault.style || !nodeDefault.style.fill) {\n _this.style.fill = 'transparent';\n }\n if (!nodeDefault.style || !nodeDefault.style.strokeColor) {\n _this.style.strokeColor = 'transparent';\n }\n }\n if (_this.shape && _this.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(defaultValue, _this);\n }\n if (_this.shape && _this.shape.type === 'SwimLane') {\n setSwimLaneDefaults(defaultValue, _this);\n }\n if (_this.ports && _this.ports.length) {\n setPortsEdges(_this);\n }\n return _this;\n }\n Object.defineProperty(Node.prototype, \"actualSize\", {\n /** @private */\n get: function () {\n if (this.wrapper !== null) {\n return this.wrapper.actualSize;\n }\n else {\n return new Size(this.width || 0, this.height || 0);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Allows to initialize the UI of a node\n */\n /** @private */\n /* tslint:disable */\n // tslint:disable-next-line:no-any\n Node.prototype.init = function (diagram) {\n var content;\n if (this.shape.type !== 'SwimLane') {\n content = new DiagramElement();\n }\n else {\n content = new GridPanel();\n }\n var textStyle;\n var changedProperties = 'changedProperties';\n var oldProperties = 'oldProperties';\n this.shape[\"\" + changedProperties] = {};\n this.shape[\"\" + oldProperties] = {};\n switch (this.shape.type) {\n case 'Path':\n if ((!isBlazor() && (this.type === 'Freehand'))) {\n var path = new PathElement();\n path.data = getFreeHandPath(this.shape.points);\n content = path;\n }\n else {\n var pathContent = new PathElement();\n pathContent.data = this.shape.data;\n content = pathContent;\n }\n break;\n case 'Image':\n var imageContent = new ImageElement();\n imageContent.source = this.shape.source;\n imageContent.imageAlign = this.shape.align;\n imageContent.imageScale = this.shape.scale;\n content = imageContent;\n break;\n case 'Text':\n var textContent = new TextElement();\n textContent.content = (isBlazor() ? this.shape.textContent : this.shape.content);\n content = textContent;\n textStyle = this.style;\n content.style = textStyle;\n break;\n case 'Basic':\n if ((!isBlazor() && this.shape.shape === 'Rectangle') || (isBlazor() && this.shape.basicShape === 'Rectangle')) {\n var basicshape = new DiagramElement();\n content = basicshape;\n content.cornerRadius = this.shape.cornerRadius;\n }\n else if ((!isBlazor() && this.shape.shape === 'Polygon') || (isBlazor() && this.shape.basicShape === 'Polygon')) {\n var path = new PathElement();\n path.data = getPolygonPath(this.shape.points);\n content = path;\n }\n else {\n var basicshape = new PathElement();\n var basicshapedata = getBasicShape((isBlazor()) ? this.shape.basicShape : this.shape.shape);\n basicshape.data = basicshapedata;\n content = basicshape;\n }\n break;\n case 'Flow':\n var flowshape = new PathElement();\n var flowshapedata = getFlowShape((isBlazor() ? this.shape.flowShape : this.shape.shape));\n flowshape.data = flowshapedata;\n content = flowshape;\n break;\n case 'UmlActivity':\n var umlactivityshape = new PathElement();\n content = getUMLActivityShapes(umlactivityshape, content, this);\n break;\n case 'Bpmn':\n if (diagram.bpmnModule) {\n content = diagram.bpmnModule.initBPMNContent(content, this, diagram);\n this.wrapper.elementActions = this.wrapper.elementActions | ElementAction.ElementIsGroup;\n var subProcess = this.shape.activity.subProcess;\n if (subProcess.processes && subProcess.processes.length) {\n var children = this.shape.activity.subProcess.processes;\n for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {\n var i = children_1[_i];\n if (diagram.nameTable[\"\" + i] && (!diagram.nameTable[\"\" + i].processId || diagram.nameTable[\"\" + i].processId === this.id)) {\n diagram.nameTable[\"\" + i].processId = this.id;\n if (subProcess.collapsed) {\n diagram.updateElementVisibility(diagram.nameTable[\"\" + i].wrapper, diagram.nameTable[\"\" + i], !subProcess.collapsed);\n }\n content.children.push(diagram.nameTable[\"\" + i].wrapper);\n }\n }\n }\n }\n break;\n case 'Native':\n var nativeContent = new DiagramNativeElement(this.id, diagram.element.id);\n nativeContent.content = this.shape.content;\n nativeContent.scale = this.shape.scale;\n content = nativeContent;\n break;\n case 'HTML':\n var htmlContent = new DiagramHtmlElement(this.id, diagram.element.id, undefined, diagram.nodeTemplate);\n if (this.shape.content && (typeof (this.shape.content) === 'string' || !diagram.isReact)) {\n htmlContent.content = this.shape.content;\n }\n else if (diagram.nodeTemplate) {\n htmlContent.isTemplate = true;\n htmlContent.template = htmlContent.content = getContent(htmlContent, true, this);\n }\n //Task 834121: Content-Security-Policy support for diagram.\n if (this.shape.content && typeof (this.shape.content) === 'function' && diagram.isReact) {\n htmlContent.isTemplate = true;\n htmlContent.templateFn = baseTemplateCompiler(this.shape.content);\n htmlContent.template = htmlContent.content = getContent(htmlContent, true, this);\n }\n content = htmlContent;\n break;\n case 'UmlClassifier':\n // let umlClassifierShape: StackPanel = new StackPanel();\n content = getULMClassifierShapes(content, this, diagram);\n break;\n case 'SwimLane':\n this.annotations = [];\n this.ports = [];\n content.cellStyle.fill = 'none';\n content.cellStyle.strokeColor = 'none';\n this.container = { type: 'Grid', orientation: this.shape.orientation };\n content.id = this.id;\n this.container.orientation = this.shape.orientation;\n this.constraints |= NodeConstraints.HideThumbs;\n initSwimLane(content, diagram, this);\n break;\n }\n content.id = this.id + '_content';\n content.relativeMode = 'Object';\n // (EJ2-56444) - Added the below code to check whether node shape type is basic and shape is rectangle.\n // This code added due to while render radial gradient in canvas mode we want to check this type and pass args according to that\n if (this.shape.type === 'Basic' && this.shape.shape === 'Rectangle') {\n content.shapeType = 'Rectangle';\n }\n else {\n content.shapeType = 'Others';\n }\n if (this.width !== undefined) {\n content.width = this.width;\n }\n content.horizontalAlignment = 'Stretch';\n if (this.height !== undefined) {\n content.height = this.height;\n }\n if (this.minHeight !== undefined) {\n content.minHeight = this.minHeight;\n }\n if (this.maxHeight !== undefined) {\n content.maxHeight = this.maxHeight;\n }\n if (this.minWidth !== undefined) {\n content.minWidth = this.minWidth;\n }\n if (this.maxWidth !== undefined) {\n content.maxWidth = this.maxWidth;\n }\n if ((!isBlazor() && this.shape.shape === 'Rectangle' && !this.shape.cornerRadius) ||\n ((isBlazor()) && (this.shape.basicShape === 'Rectangle'\n && this.shape.type === 'Basic' && !this.shape.cornerRadius))) {\n content.isRectElement = true;\n }\n content.verticalAlignment = 'Stretch';\n if ((this.shape instanceof Text) || (isBlazor() && this.shape.type === 'Text')) {\n content.margin = this.shape.margin;\n }\n if (canShadow(this)) {\n if ((this.constraints & NodeConstraints.Shadow) !== 0) {\n content.shadow = this.shadow;\n }\n }\n if ((this.shape.type !== 'Bpmn' || ((!isBlazor() && this.shape.shape === 'Message') || (isBlazor() && this.shape.bpmnShape === 'Message')) ||\n ((!isBlazor() && this.shape.shape === 'DataSource') || (isBlazor() && this.shape.bpmnShape === 'DataSource'))) && ((this.shape.type !== 'UmlActivity' || ((!isBlazor() && this.shape.shape !== 'FinalNode') ||\n (isBlazor() && this.shape.umlActivityShape !== 'FinalNode'))))) {\n if (this.shape.type !== 'Text') {\n content.style = this.style;\n this.oldGradientValue = (this.style.gradient) ? cloneObject(this.style.gradient) : null;\n }\n }\n if (!(this.wrapper.elementActions & ElementAction.ElementIsGroup) && this.flip === 'Horizontal' || this.flip === 'Vertical') {\n content.flip = this.flip;\n }\n return content;\n };\n /* tslint:enable */\n /** @private */\n Node.prototype.initContainer = function () {\n if (!this.id) {\n this.id = randomId();\n }\n // Creates canvas element\n var canvas;\n if (!this.container || this.shape instanceof SwimLane) {\n canvas = this.children ? new Container() : new Canvas();\n }\n else {\n switch (this.container.type) {\n case 'Canvas':\n canvas = new Canvas();\n break;\n case 'Stack':\n canvas = new StackPanel();\n break;\n case 'Grid':\n canvas = new GridPanel();\n canvas.setDefinitions(this.rows, this.columns);\n break;\n }\n }\n canvas.id = this.id;\n canvas.offsetX = this.offsetX;\n canvas.offsetY = this.offsetY;\n canvas.visible = this.visible;\n canvas.horizontalAlignment = this.horizontalAlignment;\n canvas.verticalAlignment = this.verticalAlignment;\n if (this.container) {\n canvas.width = this.width;\n canvas.height = this.height;\n if (this.container.type === 'Stack') {\n canvas.orientation = this.container.orientation;\n }\n }\n canvas.style.fill = this.backgroundColor;\n canvas.style.strokeColor = this.borderColor;\n canvas.style.strokeWidth = this.borderWidth;\n canvas.rotateAngle = this.rotateAngle;\n canvas.minHeight = this.minHeight;\n canvas.minWidth = this.minWidth;\n canvas.maxHeight = this.maxHeight;\n canvas.maxWidth = this.maxWidth;\n canvas.pivot = this.pivot;\n canvas.margin = this.margin;\n canvas.flip = this.flip;\n this.wrapper = canvas;\n return canvas;\n };\n /** @private */\n Node.prototype.initPorts = function (accessibilityContent, container) {\n for (var i = 0; this.ports !== undefined, i < this.ports.length; i++) {\n this.initPort(accessibilityContent, container, this.ports[parseInt(i.toString(), 10)]);\n }\n };\n /** @private */\n Node.prototype.initPort = function (accessibilityContent, container, port) {\n var canvas = this.wrapper;\n var portWrapper;\n // eslint-disable-next-line prefer-const\n portWrapper = this.initPortWrapper(port, this);\n // tslint:disable-next-line:no-any\n var wrapperContent;\n var contentAccessibility = getFunction(accessibilityContent);\n if (contentAccessibility) {\n wrapperContent = contentAccessibility(portWrapper, this);\n }\n portWrapper.description = wrapperContent ? wrapperContent : portWrapper.id;\n portWrapper.inversedAlignment = canvas.inversedAlignment;\n portWrapper.elementActions = portWrapper.elementActions | ElementAction.ElementIsPort;\n container.children.push(portWrapper);\n };\n Node.prototype.getIconOffet = function (layout, icon) {\n var x;\n var y;\n if (layout.orientation === 'BottomToTop') {\n x = icon.offset.x;\n y = 1 - icon.offset.y;\n }\n else if (layout.orientation === 'LeftToRight') {\n x = icon.offset.y;\n y = icon.offset.x;\n }\n else if (layout.orientation === 'RightToLeft') {\n x = 1 - icon.offset.y;\n y = icon.offset.x;\n }\n else {\n x = icon.offset.x;\n y = icon.offset.y;\n }\n return { x: x, y: y };\n };\n /** @private */\n Node.prototype.initIcons = function (accessibilityContent, layout, container, diagramId) {\n var canvas = this.wrapper;\n var offset;\n var icon = this.isExpanded ? this.expandIcon : this.collapseIcon;\n if (icon.shape !== 'None') {\n var iconContainer = new Canvas();\n iconContainer.float = true;\n var children = [];\n iconContainer.id = this.id + '_icon_content';\n iconContainer.children = children;\n iconContainer.height = icon.height;\n iconContainer.width = icon.width;\n iconContainer.style.strokeColor = 'transparent';\n iconContainer.margin = icon.margin;\n iconContainer.horizontalAlignment = 'Center';\n iconContainer.verticalAlignment = 'Center';\n iconContainer.visible = this.visible;\n iconContainer.cornerRadius = icon.cornerRadius;\n offset = this.getIconOffet(layout, icon);\n iconContainer.setOffsetWithRespectToBounds(offset.x, offset.y, 'Fraction');\n iconContainer.relativeMode = 'Point';\n this.initIconSymbol(icon, iconContainer, accessibilityContent, diagramId);\n // tslint:disable-next-line:no-any\n var wrapperContent = void 0;\n var contentAccessibility = getFunction(accessibilityContent);\n if (contentAccessibility) {\n wrapperContent = contentAccessibility(icon, this);\n }\n iconContainer.description = wrapperContent ? wrapperContent : iconContainer.id;\n iconContainer.inversedAlignment = canvas.inversedAlignment;\n container.children.push(iconContainer);\n }\n };\n /** @private */\n Node.prototype.initfixedUserHandles = function (fixedUserHandle) {\n var canvas = this.wrapper;\n //let fixedUserHandleContainer: Canvas;\n var fixedUserHandleContainer = new Canvas();\n fixedUserHandleContainer.float = true;\n var children = [];\n fixedUserHandle.id = fixedUserHandle.id || randomId();\n fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id;\n fixedUserHandleContainer.children = children;\n fixedUserHandleContainer.height = fixedUserHandle.height;\n fixedUserHandleContainer.width = fixedUserHandle.width;\n fixedUserHandleContainer.style.strokeColor = fixedUserHandle.handleStrokeColor;\n fixedUserHandleContainer.style.fill = fixedUserHandle.fill;\n fixedUserHandleContainer.style.strokeWidth = fixedUserHandle.handleStrokeWidth;\n fixedUserHandleContainer.margin = fixedUserHandle.margin;\n fixedUserHandleContainer.visible = fixedUserHandle.visibility;\n fixedUserHandleContainer.cornerRadius = fixedUserHandle.cornerRadius;\n fixedUserHandleContainer.horizontalAlignment = 'Center';\n fixedUserHandleContainer.verticalAlignment = 'Center';\n var offset = this.getfixedUserHandleOffet(fixedUserHandle);\n fixedUserHandleContainer.setOffsetWithRespectToBounds(offset.x, offset.y, 'Fraction');\n fixedUserHandleContainer.relativeMode = 'Point';\n var symbolIcon = initfixedUserHandlesSymbol(fixedUserHandle, fixedUserHandleContainer);\n fixedUserHandleContainer.children.push(symbolIcon);\n fixedUserHandleContainer.description = fixedUserHandleContainer.id;\n fixedUserHandleContainer.inversedAlignment = canvas.inversedAlignment;\n return fixedUserHandleContainer;\n };\n Node.prototype.getfixedUserHandleOffet = function (fixedUserHandle) {\n //let x: number;\n //let y: number;\n var x = fixedUserHandle.offset.x;\n var y = fixedUserHandle.offset.y;\n return { x: x, y: y };\n };\n /** @private */\n Node.prototype.initAnnotations = function (accessibilityContent, container, diagramId, virtualize, annotationTemplate) {\n var annotation;\n for (var i = 0; this.annotations !== undefined, i < this.annotations.length; i++) {\n annotation = this.initAnnotationWrapper(this.annotations[parseInt(i.toString(), 10)], diagramId, virtualize, i, annotationTemplate);\n // tslint:disable-next-line:no-any\n var wrapperContent = void 0;\n var contentAccessibility = getFunction(accessibilityContent);\n if (contentAccessibility) {\n wrapperContent = contentAccessibility(annotation, this);\n }\n annotation.description = wrapperContent ? wrapperContent : annotation.id;\n annotation.inversedAlignment = container.inversedAlignment;\n container.children.push(annotation);\n }\n };\n /** @private */\n Node.prototype.initPortWrapper = function (ports, Node) {\n ports.id = ports.id || randomId();\n // Creates port element\n var portContent = new PathElement();\n portContent.height = ports.height;\n portContent.width = ports.width;\n var pathdata = (ports.shape === 'Custom') ? ports.pathData : getPortShape(ports.shape);\n portContent.id = this.id + '_' + (ports.id);\n portContent.margin = ports.margin;\n portContent.data = pathdata;\n //EJ2-826617 - For BPMN node port flip is to be defined.\n //EJ2-830012 - Complex-hierarchical tree breaks due to Node undefined\n if (Node) {\n if (Node.shape.type === 'Bpmn') {\n portContent.flip = this.flip;\n }\n }\n var style = ports.style;\n portContent.style = {\n fill: style.fill, strokeColor: style.strokeColor, gradient: null,\n opacity: style.opacity, strokeDashArray: style.strokeDashArray, strokeWidth: style.strokeWidth\n };\n portContent.horizontalAlignment = ports.horizontalAlignment;\n portContent.verticalAlignment = ports.verticalAlignment;\n if (Node && Node.flipMode !== 'Label' && Node.flipMode !== 'None') {\n portContent = updatePortEdges(portContent, this.flip, ports);\n }\n else {\n portContent = updatePortEdges(portContent, 'None', ports);\n }\n if (this.width !== undefined || this.height !== undefined) {\n portContent.float = true;\n }\n portContent.relativeMode = 'Point';\n portContent.visible = checkPortRestriction(ports, PortVisibility.Visible) &&\n !checkPortRestriction(ports, PortVisibility.Hover) && !checkPortRestriction(ports, PortVisibility.Connect) ? true : false;\n portContent.elementActions = portContent.elementActions | ElementAction.ElementIsPort;\n return portContent;\n };\n /** @private */\n Node.prototype.initAnnotationWrapper = function (annotation, diagramId, virtualize, value, annotationTemplate) {\n annotation.id = annotation.id || value + 'annotation' || randomId();\n var label = annotation;\n var annotationcontent;\n if (isBlazor() && annotation.annotationType === 'Template') {\n annotation.template = annotation.template ? annotation.template : '';\n }\n if (diagramId && (annotation.template || annotation.annotationType === 'Template'\n || (annotationTemplate && annotation.content === ''))) {\n annotationcontent = new DiagramHtmlElement(this.id, diagramId, annotation.id, annotationTemplate);\n // Task 834121: Content-Security-Policy support for diagram\n var diagramElement = document.getElementById(diagramId);\n var instance = 'ej2_instances';\n var diagram = diagramElement[\"\" + instance][0];\n if (annotation.template && typeof annotation.template === 'function' && diagram.isReact) {\n annotationcontent.templateFn = baseTemplateCompiler(annotation.template);\n annotationcontent.isTemplate = true;\n }\n annotationcontent = getTemplateContent(annotationcontent, annotation, annotationTemplate, diagram);\n }\n else {\n annotationcontent = new TextElement();\n annotationcontent.canMeasure = !virtualize;\n var style = annotation.style;\n var link = annotation.hyperlink.link ? annotation.hyperlink : undefined;\n annotationcontent.style = {\n fill: style.fill, strokeColor: style.strokeColor, strokeWidth: style.strokeWidth,\n bold: style.bold, textWrapping: style.textWrapping,\n color: link ? link.color || annotationcontent.hyperlink.color : style.color, whiteSpace: style.whiteSpace,\n fontFamily: style.fontFamily, fontSize: style.fontSize, italic: style.italic, gradient: null, opacity: style.opacity,\n strokeDashArray: style.strokeDashArray, textAlign: style.textAlign, textOverflow: annotation.style.textOverflow,\n textDecoration: link ? link.textDecoration ||\n annotationcontent.hyperlink.textDecoration : style.textDecoration\n };\n annotationcontent.hyperlink.link = annotation.hyperlink.link || undefined;\n annotationcontent.hyperlink.hyperlinkOpenState = annotation.hyperlink.hyperlinkOpenState || undefined;\n annotationcontent.hyperlink.content = annotation.hyperlink.content || undefined;\n annotationcontent.hyperlink.textDecoration = annotation.hyperlink.textDecoration || undefined;\n annotationcontent.content = link ? link.content ||\n annotationcontent.hyperlink.link : annotation.content;\n }\n annotationcontent.constraints = annotation.constraints;\n annotationcontent.height = annotation.height;\n annotationcontent.width = annotation.width;\n annotationcontent.visible = annotation.visibility;\n annotationcontent.rotateAngle = annotation.rotateAngle;\n annotationcontent.id = this.id + '_' + annotation.id;\n if (this.width !== undefined && !annotation.template) {\n if (annotation.width === undefined || (annotation.width > this.width &&\n (annotation.style.textWrapping === 'Wrap' || annotation.style.textWrapping === 'WrapWithOverflow'))) {\n annotationcontent.width = this.width;\n }\n }\n annotationcontent.margin = annotation.margin;\n annotationcontent.horizontalAlignment = annotation.horizontalAlignment;\n annotationcontent.verticalAlignment = annotation.verticalAlignment;\n annotationcontent.setOffsetWithRespectToBounds(label.offset.x, label.offset.y, 'Fraction');\n if (this.width !== undefined || this.height !== undefined) {\n annotationcontent.float = true;\n }\n annotationcontent.relativeMode = 'Point';\n return annotationcontent;\n };\n Node.prototype.initIconContainer = function (options, iconContainer) {\n var rect = new DiagramElement();\n rect.id = iconContainer.id + '_rect';\n rect.height = options.height;\n rect.width = options.width;\n rect.visible = iconContainer.visible;\n rect.margin = options.margin;\n rect.cornerRadius = options.cornerRadius;\n rect.style = {\n fill: options.fill, strokeColor: options.borderColor,\n strokeWidth: options.borderWidth\n };\n rect.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction');\n rect.horizontalAlignment = 'Center';\n rect.verticalAlignment = 'Center';\n rect.relativeMode = 'Object';\n rect.description = rect.description || 'Click here to expand or collapse';\n return rect;\n };\n Node.prototype.initIconSymbol = function (options, iconContainer, accessibilityContent, diagramId) {\n var iconContent;\n iconContainer.children.push(this.initIconContainer(options, iconContainer));\n if (options.shape === 'Template') {\n iconContent = new DiagramNativeElement(this.id, diagramId);\n iconContent.content = options.content;\n iconContent.height = 10;\n iconContent.width = 10;\n }\n else {\n iconContent = new PathElement();\n iconContent.data = getIconShape(options);\n var iconContentBounds = measurePath(iconContent.data);\n iconContent.height =\n iconContentBounds.height < 10 ? iconContentBounds.height : 10 - (options.padding.bottom + options.padding.top);\n iconContent.width =\n iconContentBounds.width < 10 ? iconContentBounds.width : 10 - (options.padding.left + options.padding.right);\n }\n iconContent.id = iconContainer.id + '_shape';\n iconContent.horizontalAlignment = 'Center';\n iconContent.verticalAlignment = 'Center';\n iconContent.visible = iconContainer.visible;\n iconContent.visible = iconContainer.visible;\n iconContent.style = {\n fill: 'black',\n strokeColor: options.iconColor,\n strokeWidth: options.borderWidth,\n };\n iconContent.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction');\n iconContent.relativeMode = 'Object';\n iconContent.description = iconContainer.description || 'Click here to expand or collapse';\n iconContainer.children.push(iconContent);\n };\n /**\n * @private\n *\n * Returns the name of class Node\n */\n Node.prototype.getClassName = function () {\n return 'Node';\n };\n __decorate([\n Collection([], ShapeAnnotation)\n ], Node.prototype, \"annotations\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"offsetX\", void 0);\n __decorate([\n Complex({}, LayoutInfo)\n ], Node.prototype, \"layoutInfo\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"offsetY\", void 0);\n __decorate([\n Collection([], PointPort)\n ], Node.prototype, \"ports\", void 0);\n __decorate([\n Property(true)\n ], Node.prototype, \"isExpanded\", void 0);\n __decorate([\n Collection([], NodeFixedUserHandle)\n ], Node.prototype, \"fixedUserHandles\", void 0);\n __decorate([\n Complex({}, IconShape)\n ], Node.prototype, \"expandIcon\", void 0);\n __decorate([\n Complex({}, IconShape)\n ], Node.prototype, \"collapseIcon\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], Node.prototype, \"pivot\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"minWidth\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"minHeight\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"maxWidth\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"rotateAngle\", void 0);\n __decorate([\n Complex({ fill: 'white' }, TextStyle)\n ], Node.prototype, \"style\", void 0);\n __decorate([\n Property('transparent')\n ], Node.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('none')\n ], Node.prototype, \"borderColor\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"borderWidth\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"data\", void 0);\n __decorate([\n ComplexFactory(getShapeType)\n ], Node.prototype, \"shape\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Node.prototype, \"previewSize\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Node.prototype, \"dragSize\", void 0);\n __decorate([\n Property(null)\n ], Node.prototype, \"wrapper\", void 0);\n __decorate([\n Property(NodeConstraints.Default)\n ], Node.prototype, \"constraints\", void 0);\n __decorate([\n Complex({}, Shadow)\n ], Node.prototype, \"shadow\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"children\", void 0);\n __decorate([\n Complex({ left: 0, right: 0, top: 0, bottom: 0 }, Margin)\n ], Node.prototype, \"padding\", void 0);\n __decorate([\n Property(null)\n ], Node.prototype, \"container\", void 0);\n __decorate([\n Property('Left')\n ], Node.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Top')\n ], Node.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"rows\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"columns\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"rowIndex\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"columnIndex\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"rowSpan\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"columnSpan\", void 0);\n __decorate([\n Property('')\n ], Node.prototype, \"branch\", void 0);\n return Node;\n}(NodeBase));\nexport { Node };\n/**\n * Defines the behavior of header in swimLane\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Header.prototype, \"id\", void 0);\n __decorate([\n Complex({}, Annotation)\n ], Header.prototype, \"annotation\", void 0);\n __decorate([\n Complex({ fill: '#E7F4FF', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], Header.prototype, \"style\", void 0);\n __decorate([\n Property(50)\n ], Header.prototype, \"height\", void 0);\n __decorate([\n Property(50)\n ], Header.prototype, \"width\", void 0);\n return Header;\n}(ChildProperty));\nexport { Header };\n/**\n * Defines the behavior of lane in swimLane\n */\nvar Lane = /** @class */ (function (_super) {\n __extends(Lane, _super);\n function Lane() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Lane\n *\n * @private\n */\n Lane.prototype.getClassName = function () {\n return 'Lane';\n };\n __decorate([\n Property('')\n ], Lane.prototype, \"id\", void 0);\n __decorate([\n Complex({ fill: '#F9F9F9', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], Lane.prototype, \"style\", void 0);\n __decorate([\n Collection([], Node)\n ], Lane.prototype, \"children\", void 0);\n __decorate([\n Property(100)\n ], Lane.prototype, \"height\", void 0);\n __decorate([\n Property(100)\n ], Lane.prototype, \"width\", void 0);\n __decorate([\n Complex({ style: { fill: '#E7F4FF', strokeColor: '#CCCCCC' }, annotation: { content: 'Function' } }, Header)\n ], Lane.prototype, \"header\", void 0);\n __decorate([\n Property(true)\n ], Lane.prototype, \"canMove\", void 0);\n __decorate([\n Property()\n ], Lane.prototype, \"addInfo\", void 0);\n return Lane;\n}(ChildProperty));\nexport { Lane };\n/**\n * Defines the behavior of phase in swimLane\n */\nvar Phase = /** @class */ (function (_super) {\n __extends(Phase, _super);\n function Phase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Phase\n *\n * @private\n */\n Phase.prototype.getClassName = function () {\n return 'Phase';\n };\n __decorate([\n Property('')\n ], Phase.prototype, \"id\", void 0);\n __decorate([\n Complex({ strokeColor: '#CCCCCC' }, ShapeStyle)\n ], Phase.prototype, \"style\", void 0);\n __decorate([\n Complex({ annotation: { content: 'Phase' } }, Header)\n ], Phase.prototype, \"header\", void 0);\n __decorate([\n Property(100)\n ], Phase.prototype, \"offset\", void 0);\n __decorate([\n Property()\n ], Phase.prototype, \"addInfo\", void 0);\n return Phase;\n}(ChildProperty));\nexport { Phase };\n/**\n * Defines the behavior of swimLane shape\n */\nvar SwimLane = /** @class */ (function (_super) {\n __extends(SwimLane, _super);\n function SwimLane() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Defines space between children and lane\n *\n * @private\n *\n */\n _this.padding = 20;\n /**\n * Defines header by user or not\n *\n * @private\n *\n */\n _this.hasHeader = true;\n return _this;\n }\n /**\n * Returns the name of class Phase\n *\n * @private\n */\n SwimLane.prototype.getClassName = function () {\n return 'SwimLane';\n };\n __decorate([\n Property('SwimLane')\n ], SwimLane.prototype, \"type\", void 0);\n __decorate([\n Property(20)\n ], SwimLane.prototype, \"phaseSize\", void 0);\n __decorate([\n Collection([], Phase)\n ], SwimLane.prototype, \"phases\", void 0);\n __decorate([\n Property('Horizontal')\n ], SwimLane.prototype, \"orientation\", void 0);\n __decorate([\n Collection([], Lane)\n ], SwimLane.prototype, \"lanes\", void 0);\n __decorate([\n Complex({ style: { fill: '#E7F4FF', strokeColor: '#CCCCCC' }, annotation: { content: 'Function' } }, Header)\n ], SwimLane.prototype, \"header\", void 0);\n __decorate([\n Property(false)\n ], SwimLane.prototype, \"isLane\", void 0);\n __decorate([\n Property(false)\n ], SwimLane.prototype, \"isPhase\", void 0);\n return SwimLane;\n}(Shape));\nexport { SwimLane };\n/**\n * Defines the behavior of container\n */\nvar ChildContainer = /** @class */ (function () {\n function ChildContainer() {\n }\n /**\n * Returns the name of class ChildContainer\n *\n * @private\n */\n ChildContainer.prototype.getClassName = function () {\n return 'ChildContainer';\n };\n __decorate([\n Property('Canvas')\n ], ChildContainer.prototype, \"type\", void 0);\n __decorate([\n Property('Vertical')\n ], ChildContainer.prototype, \"orientation\", void 0);\n return ChildContainer;\n}());\nexport { ChildContainer };\n/**\n * Defines the size and position of selected items and defines the appearance of selector\n */\nvar Selector = /** @class */ (function (_super) {\n __extends(Selector, _super);\n function Selector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Initializes the UI of the container\n */\n Selector.prototype.init = function (diagram) {\n var container = new Container();\n container.measureChildren = false;\n //const consize: Size = new Size();\n container.children = [];\n if (this.annotation) {\n var object = (this.nodes.length > 0) ? diagram.nameTable[this.nodes[0].id].wrapper :\n diagram.nameTable[this.connectors[0].id].wrapper;\n var wrapper = diagram.getWrapper(object, this.annotation.id);\n container.children.push(wrapper);\n }\n else {\n if (this.nodes || this.connectors) {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = diagram.nameTable[this.nodes[parseInt(i.toString(), 10)].id];\n var wrapper = node.wrapper;\n // this.width = wrapper.actualSize.width;\n // this.height = wrapper.actualSize.height;\n // this.rotateAngle = wrapper.rotateAngle;\n // this.offsetX = wrapper.offsetX;\n // this.offsetY = wrapper.offsetY;\n container.children.push(wrapper);\n }\n for (var j = 0; j < this.connectors.length; j++) {\n var connector = diagram.nameTable[this.connectors[parseInt(j.toString(), 10)].id];\n var wrapper = connector.wrapper;\n // this.width = wrapper.actualSize.width; this.height = wrapper.actualSize.height;\n // this.rotateAngle = wrapper.rotateAngle; this.offsetX = wrapper.offsetX;\n // this.offsetY = wrapper.offsetY;\n container.children.push(wrapper);\n }\n }\n }\n var isProtectedOnChange = 'isProtectedOnChange';\n var diagramProtectPropertyChange = diagram[\"\" + isProtectedOnChange];\n diagram.protectPropertyChange(false);\n this.wrapper = container;\n diagram.protectPropertyChange(diagramProtectPropertyChange);\n return container;\n };\n __decorate([\n Property(null)\n ], Selector.prototype, \"wrapper\", void 0);\n __decorate([\n Property(14)\n ], Selector.prototype, \"handleSize\", void 0);\n __decorate([\n Collection([], Node)\n ], Selector.prototype, \"nodes\", void 0);\n __decorate([\n Collection([], Connector)\n ], Selector.prototype, \"connectors\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"rotateAngle\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetY\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], Selector.prototype, \"pivot\", void 0);\n __decorate([\n Property('CompleteIntersect')\n ], Selector.prototype, \"rubberBandSelectionMode\", void 0);\n __decorate([\n Collection([], UserHandle)\n ], Selector.prototype, \"userHandles\", void 0);\n __decorate([\n Property(SelectorConstraints.All)\n ], Selector.prototype, \"constraints\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"setTooltipTemplate\", void 0);\n __decorate([\n Collection([], Node)\n ], Selector.prototype, \"selectedObjects\", void 0);\n return Selector;\n}(ChildProperty));\nexport { Selector };\n","import { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { processPathData, splitArrayCollection, transformPath } from './path-util';\nimport { whiteSpaceToString, wordBreakToString, textAlignToString, bBoxText, cloneObject } from './base-util';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { compile, createElement, Browser, isBlazor } from '@syncfusion/ej2-base';\nimport { Node } from '../objects/node';\nimport { getElement, cloneBlazorObject } from './diagram-util';\nimport { templateCompiler } from '../utility/base-util';\n/**\n * Defines the functionalities that need to access DOM\n */\n/**\n * removeElementsByClass method \\\n *\n * @returns {void} removeElementsByClass method .\\\n * @param { string } className - provide the element value.\n * @param {string} id - provide the string value.\n * @private\n */\nexport function removeElementsByClass(className, id) {\n var elements;\n if (id && document.getElementById(id).classList.contains(className)) {\n elements = document.getElementById(id).getElementsByClassName(className);\n }\n else {\n elements = document.getElementsByClassName(className);\n }\n while (elements.length > 0) {\n elements[0].parentNode.removeChild(elements[0]);\n }\n}\n/**\n * findSegmentPoints method \\\n *\n * @returns {PointModel[]} findSegmentPoints method .\\\n * @param { PathElement } element - provide the element value.\n * @private\n */\nexport function findSegmentPoints(element) {\n var pts = [];\n var sample;\n var sampleLength;\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var svg = window[\"\" + measureWindowElement].children[2];\n var pathNode = getChildNode(svg)[0];\n pathNode.setAttributeNS(null, 'd', element.data);\n var pathBounds = element.absoluteBounds; // || pathNode.getBBox();\n var pathData = updatePath(element, pathBounds, element);\n pathNode.setAttributeNS(null, 'd', pathData);\n var pathLength = pathNode.getTotalLength();\n for (sampleLength = 0; sampleLength <= pathLength; sampleLength += 10) {\n sample = pathNode.getPointAtLength(sampleLength);\n pts.push({ x: sample.x, y: sample.y });\n }\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n return pts;\n}\n/**\n * getChildNode method \\\n *\n * @returns {SVGElement[] | HTMLCollection} findSegmentPoints method .\\\n * @param { SVGElement } node - provide the element value.\n * @private\n */\nexport function getChildNode(node) {\n var child;\n var collection = [];\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n for (var i = 0; i < node.childNodes.length; i++) {\n child = node.childNodes[parseInt(i.toString(), 10)];\n if (child.nodeType === 1) {\n collection.push(child);\n }\n }\n }\n else {\n collection = node.children;\n }\n return collection;\n}\n/**\n * translatePoints method \\\n *\n * @returns {PointModel[]} translatePoints method .\\\n * @param { SVGElement } element - provide the element value.\n * @param { PointModel[] } points - provide the element value.\n * @private\n */\nexport function translatePoints(element, points) {\n var translatedPts = [];\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n var pt1 = {\n x: element.offsetX - element.actualSize.width * element.pivot.x + point.x,\n y: element.offsetY - element.actualSize.height * element.pivot.y + point.y\n };\n var matrix = void 0;\n var angle = element.rotateAngle + element.parentTransform;\n if (angle) {\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, element.offsetX, element.offsetY);\n }\n if (matrix) {\n pt1 = transformPointByMatrix(matrix, pt1);\n }\n translatedPts.push(pt1);\n }\n return translatedPts;\n}\n/**\n * measurePath method \\\n *\n * @returns {Rect} measurePath method .\\\n * @param { string } data - provide the element value.\n * @private\n */\nexport function measurePath(data) {\n if (data) {\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var svg = window[\"\" + measureWindowElement].children[2];\n var element = getChildNode(svg)[0];\n element.setAttribute('d', data);\n var bounds = element.getBBox();\n var svgBounds = new Rect(bounds.x, bounds.y, bounds.width, bounds.height);\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n return svgBounds;\n }\n return new Rect(0, 0, 0, 0);\n}\n/**\n * getTextOptions method \\\n *\n * @returns {BaseAttributes} getTextOptions method .\\\n * @param { TextElement } element - provide the element value.\n * @param { number } maxWidth - provide the maxWidth value.\n * @private\n */\nfunction getTextOptions(element, maxWidth) {\n var options = {\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray, opacity: element.style.opacity, shadow: element.shadow,\n gradient: element.style.gradient, visible: element.visible, id: element.id, description: element.description,\n width: maxWidth || element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5\n };\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.textWrapping = element.style.textWrapping;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = '';\n return options;\n}\n/**\n * wrapSvgText method \\\n *\n * @returns {SubTextElement[]} wrapSvgText method .\\\n * @param { TextAttributes } text - provide the element value.\n * @param { string } textValue - provide the maxWidth value.\n * @param { number } laneWidth - provide the maxWidth value.\n * @private\n */\nfunction wrapSvgText(text, textValue, laneWidth) {\n var childNodes = [];\n var k = 0;\n var txtValue;\n var bounds1;\n var content = textValue || text.content;\n if (text.whiteSpace !== 'nowrap' && text.whiteSpace !== 'pre') {\n if (text.breakWord === 'breakall') {\n txtValue = '';\n txtValue += content[0];\n for (k = 0; k < content.length; k++) {\n bounds1 = bBoxText(txtValue, text);\n if (bounds1 >= text.width && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: bounds1 };\n txtValue = '';\n }\n else {\n txtValue = txtValue + (content[k + 1] || '');\n if (txtValue.indexOf('\\n') > -1) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: bBoxText(txtValue, text) };\n txtValue = '';\n }\n var width = bBoxText(txtValue, text);\n if (Math.ceil(width) + 2 >= text.width && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n if (k === content.length - 1 && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n }\n }\n else {\n childNodes = wordWrapping(text, textValue, laneWidth);\n }\n }\n else {\n childNodes[childNodes.length] = { text: content, x: 0, dy: 0, width: bBoxText(content, text) };\n }\n return childNodes;\n}\n/**\n * wordWrapping method \\\n *\n * @returns {SubTextElement[]} wordWrapping method .\\\n * @param { TextAttributes } text - provide the element value.\n * @param { string } textValue - provide the maxWidth value.\n * @param { number } laneWidth - provide the maxWidth value.\n * @private\n */\nfunction wordWrapping(text, textValue, laneWidth) {\n var childNodes = [];\n var txtValue = '';\n var j = 0;\n var i = 0;\n var wrap = text.whiteSpace !== 'nowrap' ? true : false;\n var content = textValue || text.content;\n var eachLine = content.split('\\n');\n var txt;\n var words;\n var newText;\n var existingWidth;\n var existingText;\n for (j = 0; j < eachLine.length; j++) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n txt = '';\n words = text.textWrapping !== 'NoWrap' ? eachLine[parseInt(j.toString(), 10)].split(' ') : (text.textWrapping === 'NoWrap') ? [eachLine[parseInt(j.toString(), 10)]] : eachLine;\n for (i = 0; i < words.length; i++) {\n txtValue += (((i !== 0 || words.length === 1) && wrap && txtValue.length > 0) ? ' ' : '') + words[parseInt(i.toString(), 10)];\n newText = txtValue + ' ' + (words[i + 1] || '');\n var width = bBoxText(newText, text);\n if (Math.floor(width) > (laneWidth || text.width) - 2 && txtValue.length > 0) {\n childNodes[childNodes.length] = {\n text: txtValue, x: 0, dy: 0,\n width: newText === txtValue ? width : (txtValue === existingText) ? existingWidth : bBoxText(txtValue, text)\n };\n txtValue = '';\n }\n else {\n if (i === words.length - 1) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n existingText = newText;\n existingWidth = width;\n }\n }\n return childNodes;\n}\n/**\n * wrapSvgTextAlign method \\\n *\n * @returns {TextBounds} wrapSvgTextAlign method .\\\n * @param { TextAttributes } text - provide the element value.\n * @param { string } childNodes - provide the maxWidth value.\n * @private\n */\nfunction wrapSvgTextAlign(text, childNodes) {\n var wrapBounds = { x: 0, width: 0 };\n var k = 0;\n var txtWidth;\n var width;\n for (k = 0; k < childNodes.length; k++) {\n txtWidth = childNodes[parseInt(k.toString(), 10)].width;\n width = txtWidth;\n if (text.textAlign === 'left') {\n txtWidth = 0;\n }\n else if (text.textAlign === 'center') {\n if (txtWidth > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n txtWidth = 0;\n }\n else {\n txtWidth = -txtWidth / 2;\n }\n }\n else if (text.textAlign === 'right') {\n txtWidth = -txtWidth;\n }\n else {\n txtWidth = childNodes.length > 1 ? 0 : -txtWidth / 2;\n }\n childNodes[parseInt(k.toString(), 10)].dy = text.fontSize * 1.2;\n childNodes[parseInt(k.toString(), 10)].x = txtWidth;\n if (!wrapBounds) {\n wrapBounds = {\n x: txtWidth,\n width: width\n };\n }\n else {\n wrapBounds.x = Math.min(wrapBounds.x, txtWidth);\n wrapBounds.width = Math.max(wrapBounds.width, width);\n }\n }\n return wrapBounds;\n}\n/**\n * measureHtmlText method \\\n *\n * @returns {TextBounds} measureHtmlText method .\\\n * @param { TextStyleModel } style - provide the style value.\n * @param { string } content - provide the content value.\n * @param { string } width - provide the width value.\n * @param { string } height - provide the height value.\n * @param { string } maxWidth - provide the maxWidth value.\n * @private\n */\nexport function measureHtmlText(style, content, width, height, maxWidth) {\n var bounds = new Size();\n var text = createHtmlElement('span', { 'style': 'display:inline-block; line-height: normal' });\n if (style.bold) {\n text.style.fontWeight = 'bold';\n }\n if (style.italic) {\n text.style.fontStyle = 'italic';\n }\n if (width !== undefined) {\n text.style.width = width.toString() + 'px';\n }\n if (height !== undefined) {\n text.style.height = height.toString() + 'px';\n }\n if (maxWidth !== undefined) {\n text.style.maxWidth = maxWidth.toString() + 'px';\n }\n text.style.fontFamily = style.fontFamily;\n text.style.fontSize = style.fontSize + 'px';\n text.style.color = style.color;\n text.textContent = content;\n text.style.whiteSpace = whiteSpaceToString(style.whiteSpace, style.textWrapping);\n if (maxWidth !== undefined) {\n text.style.wordBreak = 'break-word';\n }\n else {\n text.style.wordBreak = wordBreakToString(style.textWrapping);\n }\n document.body.appendChild(text);\n bounds.width = text.offsetWidth;\n bounds.height = text.offsetHeight;\n document.body.removeChild(text);\n return bounds;\n}\n/**\n * measureText method \\\n *\n * @returns {Size} measureText method .\\\n * @param { TextStyleModel } text - provide the text value.\n * @param { string } style - provide the style value.\n * @param { string } content - provide the content value.\n * @param { number } maxWidth - provide the maxWidth value.\n * @param { string } textValue - provide the textValue value.\n * @private\n */\nexport function measureText(text, style, content, maxWidth, textValue) {\n var bounds = new Size(0, 0);\n var childNodes;\n var wrapBounds;\n var options = getTextOptions(text, maxWidth);\n text.childNodes = childNodes = wrapSvgText(options, textValue, text.isLaneOrientation ? maxWidth : undefined);\n text.wrapBounds = wrapBounds = wrapSvgTextAlign(options, childNodes);\n bounds.width = wrapBounds.width;\n if (text.wrapBounds.width >= maxWidth && options.textOverflow !== 'Wrap') {\n bounds.width = maxWidth;\n }\n bounds.height = childNodes.length * text.style.fontSize * 1.2;\n return bounds;\n}\n/**\n * measureImage method \\\n *\n * @returns {Size} measureImage method .\\\n * @param { string } source - provide the text value.\n * @param { Size } contentSize - provide the style value.\n * @param { string } id - provide the content value.\n * @param { Function } callback - provide the maxWidth value.\n * @private\n */\n// eslint-disable-next-line\nexport function measureImage(source, contentSize, id, callback) {\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var imageElement = window[\"\" + measureWindowElement].children[1];\n imageElement.setAttribute('src', source);\n var bounds = imageElement.getBoundingClientRect();\n var width = bounds.width;\n var height = bounds.height;\n contentSize = new Size(width, height);\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n var element = document.createElement('img');\n element.setAttribute('src', source);\n setAttributeHtml(element, { id: id + 'sf-imageNode', style: 'display: none;' });\n document.body.appendChild(element);\n // eslint-disable-next-line\n element.onload = function (event) {\n var loadedImage = event.currentTarget;\n if (callback) {\n callback(id, { width: loadedImage.width, height: loadedImage.height });\n }\n };\n return contentSize;\n}\n/* eslint-disable */\n/**\n * measureNativeContent method \\\n *\n * @returns {Rect} measureNativeContent method .\\\n * @param { SVGElement } nativeContent - provide the text value.\n * @private\n */\nexport function measureNativeContent(nativeContent) {\n var measureWindowElement = 'measureElement';\n window[measureWindowElement].style.visibility = 'visible';\n var nativeSVG = window[measureWindowElement].children[2];\n nativeSVG.appendChild(nativeContent);\n var bounds = nativeContent.getBoundingClientRect();\n var svgBounds = nativeSVG.getBoundingClientRect();\n var rect = bounds;\n rect.x = bounds.left - svgBounds.left;\n rect.y = bounds.top - svgBounds.top;\n nativeSVG.removeChild(nativeContent);\n window[measureWindowElement].style.visibility = 'hidden';\n return rect;\n}\n/**\n * measureNativeSvg method \\\n *\n * @returns {Rect} measureNativeSvg method .\\\n * @param { SVGElement } nativeContent - provide the text value.\n * @private\n */\nexport function measureNativeSvg(nativeContent) {\n var measureWindowElement = 'measureElement';\n window[measureWindowElement].style.visibility = 'visible';\n var nativeSVG = window[measureWindowElement].children[2];\n nativeSVG.appendChild(nativeContent);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var svgBounds = nativeSVG.getBoundingClientRect();\n nativeSVG.removeChild(nativeContent);\n window[measureWindowElement].style.visibility = 'hidden';\n return svgBounds;\n}\n/**\n * updatePath method \\\n *\n * @returns {string} updatePath method .\\\n * @param { SVGElement } element - provide the element value.\n * @param { Rect } bounds - provide the bounds value.\n * @param { PathElement } child - provide the child value.\n * @param { BaseAttributes } options - provide the options value.\n * @private\n */\nexport function updatePath(element, bounds, child, options) {\n var initX = 0;\n var initY = 0;\n var scaleX = 0;\n var scaleY = 0;\n var isScale = false;\n var newPathString = '';\n var arrayCollection = [];\n var bBox = bounds;\n if (initX !== bBox.x || initY !== bBox.y) {\n scaleX = initX - Number(bBox.x);\n scaleY = initY - Number(bBox.y);\n }\n if (element.actualSize.width !== bBox.width || element.actualSize.height !== bBox.height || options) {\n scaleX = (options && options.width || element.actualSize.width) / Number(bBox.width ? bBox.width : 1);\n scaleY = (options && options.height || element.actualSize.height) / Number(bBox.height ? bBox.height : 1);\n isScale = true;\n }\n arrayCollection = processPathData(element.data);\n arrayCollection = splitArrayCollection(arrayCollection);\n newPathString = transformPath(arrayCollection, scaleX, scaleY, isScale, bBox.x, bBox.y, initX, initY);\n isScale = false;\n return newPathString;\n}\n/**\n * getDiagramLayerSvg method \\\n *\n * @returns {string} getDiagramLayerSvg method .\\\n * @param { string } diagramId - provide the element value.\n * @private\n */\nexport function getDiagramLayerSvg(diagramId) {\n //let diagramLayerSvg: SVGSVGElement;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-diagram-layer');\n var diagramLayerSvg = elementcoll[0];\n return diagramLayerSvg;\n}\n/**\n * getDiagramElement method \\\n *\n * @returns {HTMLElement} getDiagramElement method .\\\n * @param { string } elementId - provide the elementId value.\n * @param { string } contentId - provide the elementId value.\n * @private\n */\nexport function getDiagramElement(elementId, contentId) {\n var diagramElement;\n var element;\n if (contentId) {\n element = document.getElementById(contentId);\n }\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n diagramElement = (element) ? element.querySelector('#' + elementId) : document.getElementById(elementId);\n }\n else {\n diagramElement = (element) ? element.querySelector('#' + CSS.escape(elementId)) : document.getElementById(elementId);\n }\n return diagramElement;\n}\n/**\n * getDomIndex method \\\n *\n * @returns {HTMLElement} getDomIndex method .\\\n * @param { string } viewId - provide the elementId value.\n * @param { string } elementId - provide the elementId value.\n * @param { string } layer - provide the elementId value.\n * @private\n */\nexport function getDomIndex(viewId, elementId, layer) {\n var index = undefined;\n var parentElement;\n var postId = '';\n if (layer === 'native') {\n parentElement = getNativeLayer(viewId);\n postId = '_content_groupElement';\n }\n else if (layer === 'html') {\n parentElement = getHTMLLayer(viewId).childNodes[0];\n postId = '_html_element';\n }\n else {\n parentElement = getDiagramLayer(viewId);\n postId = '_groupElement';\n }\n var childElement;\n for (var i = 0; parentElement.childNodes && i < parentElement.childNodes.length; i++) {\n childElement = parentElement.childNodes[i];\n if (childElement && childElement.id === elementId + postId) {\n index = i;\n break;\n }\n }\n return index;\n}\n/**\n * getAdornerLayerSvg method \\\n *\n * @returns {SVGSVGElement} getAdornerLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getAdornerLayerSvg(diagramId) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-adorner-layer');\n adornerLayerSvg = elementcoll[0];\n return adornerLayerSvg;\n}\n/**\n * getSelectorElement method \\\n *\n * @returns {SVGSVGElement} getSelectorElement method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getSelectorElement(diagramId) {\n var adornerLayer = null;\n var adornerSvg = getAdornerLayerSvg(diagramId);\n adornerLayer = adornerSvg.getElementById(diagramId + '_SelectorElement');\n return adornerLayer;\n}\n/**\n * getAdornerLayer method \\\n *\n * @returns {SVGSVGElement} getAdornerLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getAdornerLayer(diagramId) {\n var adornerLayer = null;\n var diagramAdornerSvg = getAdornerLayerSvg(diagramId);\n adornerLayer = diagramAdornerSvg.getElementById(diagramId + '_diagramAdorner');\n return adornerLayer;\n}\n/**\n * getUserHandleLayer method \\\n *\n * @returns {HTMLElement} getUserHandleLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getUserHandleLayer(diagramId) {\n var adornerLayer = null;\n var diagramUserHandleLayer = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramUserHandleLayer.getElementsByClassName('e-userHandle-layer');\n adornerLayer = elementcoll[0];\n return adornerLayer;\n}\n/**\n * getDiagramLayer method \\\n *\n * @returns {HTMLElement} getDiagramLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getDiagramLayer(diagramId) {\n //let diagramLayer: SVGElement;\n var diagramLayerSvg = getDiagramLayerSvg(diagramId);\n var diagramLayer = diagramLayerSvg.getElementById(diagramId + '_diagramLayer');\n return diagramLayer;\n}\n/**\n * getPortLayerSvg method \\\n *\n * @returns {SVGSVGElement} getPortLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getPortLayerSvg(diagramId) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-ports-expand-layer');\n adornerLayerSvg = elementcoll[0];\n return adornerLayerSvg;\n}\n/**\n * getNativeLayerSvg method \\\n *\n * @returns {SVGSVGElement} getNativeLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getNativeLayerSvg(diagramId) {\n var nativeLayerSvg;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-native-layer');\n nativeLayerSvg = elementcoll[0];\n return nativeLayerSvg;\n}\n/**\n * getGridLayerSvg method \\\n *\n * @returns {SVGSVGElement} getNativeLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getGridLayerSvg(diagramId) {\n var gridLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-grid-layer');\n gridLayerSvg = elementcoll[0];\n return gridLayerSvg;\n}\n/**\n * getBackgroundLayerSvg method \\\n *\n * @returns {SVGSVGElement} getBackgroundLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getBackgroundLayerSvg(diagramId) {\n var gridLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-background-layer');\n return elementcoll[0].parentNode;\n}\n/**\n * getBackgroundImageLayer method \\\n *\n * @returns {SVGSVGElement} getBackgroundImageLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getBackgroundImageLayer(diagramId) {\n var imageLayer = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-background-image-layer');\n imageLayer = elementcoll[0];\n return imageLayer;\n}\n/**\n * getBackgroundLayer method \\\n *\n * @returns {SVGSVGElement} getBackgroundLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getBackgroundLayer(diagramId) {\n var imageLayer = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-background-layer');\n imageLayer = elementcoll[0];\n return imageLayer;\n}\n/**\n * getGridLayer method \\\n *\n * @returns {SVGSVGElement} getGridLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getGridLayer(diagramId) {\n var domTable = 'domTable';\n var expandCollapse = null;\n if (!window[domTable][diagramId + '_gridline']) {\n var diagramGridSvg = getGridLayerSvg(diagramId);\n expandCollapse = diagramGridSvg.getElementById(diagramId + '_gridline');\n window[domTable][diagramId + '_gridline'] = expandCollapse;\n }\n else {\n expandCollapse = window[domTable][diagramId + '_gridline'];\n }\n return expandCollapse;\n}\n// /** @private */\n// export function getExpandCollapseLayer(diagramId: string): SVGElement {\n// let expandCollapse: SVGElement = null;\n// let diagramPortSvg: SVGSVGElement = getPortLayerSvg(diagramId);\n// expandCollapse = diagramPortSvg.getElementById(diagramId + '_diagramExpander') as SVGElement;\n// return expandCollapse;\n// }\n// /** @private */\n// export function getPortsLayer(diagramId: string): SVGElement {\n// let expandCollapse: SVGElement = null;\n// let diagramPortSvg: SVGSVGElement = getPortLayerSvg(diagramId);\n// expandCollapse = diagramPortSvg.getElementById(diagramId + '_diagramPorts') as SVGElement;\n// return expandCollapse;\n// }\n/**\n * getNativeLayer method \\\n *\n * @returns {SVGSVGElement} getNativeLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getNativeLayer(diagramId) {\n var nativeLayer = null;\n var nativeLayerSvg = getNativeLayerSvg(diagramId);\n nativeLayer = nativeLayerSvg.getElementById(diagramId + '_nativeLayer');\n return nativeLayer;\n}\n/**\n * getHTMLLayer method \\\n *\n * @returns {SVGSVGElement} getHTMLLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getHTMLLayer(diagramId) {\n var htmlLayer = null;\n var domTable = 'domTable';\n if (!window[domTable][diagramId + 'html_layer']) {\n var element = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = element.getElementsByClassName('e-html-layer');\n htmlLayer = elementcoll[0];\n window[domTable][diagramId + 'html_layer'] = htmlLayer;\n }\n else {\n htmlLayer = window[domTable][diagramId + 'html_layer'];\n }\n return htmlLayer;\n}\n/* eslint-enable */\n/**\n * createHtmlElement method \\\n *\n * @returns {SVGSVGElement} createHtmlElement method .\\\n * @param { string } elementType - provide the diagramId value.\n * @param { Object } attribute - provide the diagramId value.\n * @private\n */\nexport function createHtmlElement(elementType, attribute) {\n var element = createElement(elementType);\n setAttributeHtml(element, attribute);\n return element;\n}\n/**\n * createSvgElement method \\\n *\n * @returns {SVGSVGElement} createSvgElement method .\\\n * @param { string } elementType - provide the elementType value.\n * @param { Object } attribute - provide the attribute value.\n * @private\n */\nexport function createSvgElement(elementType, attribute) {\n var element = document.createElementNS('http://www.w3.org/2000/svg', elementType);\n setAttributeSvg(element, attribute);\n return element;\n}\n/** @hidden */\n/**\n * parentsUntil method \\\n *\n * @returns {SVGSVGElement} parentsUntil method .\\\n * @param { Element } elem - provide the elementType value.\n * @param { string } selector - provide the attribute value.\n * @param { boolean } isID - provide the attribute value.\n * @private\n */\nexport function parentsUntil(elem, selector, isID) {\n var parent = elem;\n while (parent) {\n if (isID ? parent.id === selector : hasClass(parent, selector)) {\n break;\n }\n parent = parent.parentNode;\n }\n return parent;\n}\n/**\n * hasClass method \\\n *\n * @returns {SVGSVGElement} hasClass method .\\\n * @param { HTMLElement } element - provide the element value.\n * @param { string } className - provide the className value.\n * @private\n */\nexport function hasClass(element, className) {\n var eClassName = (typeof element.className === 'object') ? element.className.animVal : element.className;\n return ((' ' + eClassName + ' ').indexOf(' ' + className + ' ') > -1) ? true : false;\n}\n/**\n * getScrollerWidth method \\\n *\n * @returns {number} getScrollerWidth method .\\\n * @private\n */\nexport function getScrollerWidth() {\n var outer = createHtmlElement('div', { 'style': 'visibility:hidden; width: 100px' });\n document.body.appendChild(outer);\n var widthNoScroll = outer.getBoundingClientRect().width;\n // force scrollbars\n outer.style.overflow = 'scroll';\n // add innerdiv\n var inner = createHtmlElement('div', { 'style': 'width:100%' });\n outer.appendChild(inner);\n var widthWithScroll = inner.getBoundingClientRect().width;\n // remove divs\n outer.parentNode.removeChild(outer);\n return widthNoScroll - widthWithScroll;\n}\n/**\n * addTouchPointer method \\\n *\n * @returns {ITouches[]} addTouchPointer method .\\\n * @param { ITouches[] } touchList - provide the touchList value.\n * @param { PointerEvent } e - provide the e value.\n * @param { TouchList } touches - provide the touches value.\n * @private\n */\nexport function addTouchPointer(touchList, e, touches) {\n touchList = [];\n for (var i = 0, length_1 = touches.length; i < length_1; i++) {\n touchList.push({ pageX: touches[parseInt(i.toString(), 10)].clientX, pageY: touches[parseInt(i.toString(), 10)].clientY, pointerId: null });\n }\n return touchList;\n}\n/**\n * removes the element from dom \\\n *\n * @returns {void} removes the element from dom .\\\n * @param { ITouches[] } elementId - provide the elementId value.\n * @param { PointerEvent } contentId - provide the contentId value.\n * @private\n */\nexport function removeElement(elementId, contentId) {\n var div = getDiagramElement(elementId, contentId);\n if (div) {\n div.parentNode.removeChild(div);\n }\n}\n/**\n * getContent method \\\n *\n * @returns {void} getContent method .\\\n * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the elementId value.\n * @param { boolean } isHtml - provide the boolean value.\n * @param { Node | Annotation | PathAnnotation } nodeObject - provide the nodeObject value.\n * @private\n */\nexport function getContent(element, isHtml, nodeObject) {\n var div;\n /* eslint-disable */\n if (isHtml) {\n var attr = { 'style': 'height: 100%; width: 100%' };\n div = createHtmlElement('div', attr);\n }\n else {\n div = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n }\n var node = getElement(element);\n var content = '';\n var sentNode = {};\n var isSvg = false;\n var propertyName;\n if (node instanceof Node) {\n sentNode = node;\n if (node.shape.type === 'Native') {\n isSvg = true;\n var svgContent = void 0;\n var div_1 = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n document.body.appendChild(div_1);\n div_1.innerHTML = (node.shape.content);\n /* tslint:disable */\n svgContent = (div_1.getElementsByTagName('svg').length > 0)\n ? div_1.getElementsByTagName('svg')[0].outerHTML :\n div_1.getElementsByTagName('g').length > 0 ? div_1.getElementsByTagName('g')[0].outerHTML : \"\";\n /* tslint:disable */\n node.shape.content = svgContent;\n /* tslint:disable */\n element.content = svgContent;\n div_1.parentElement.removeChild(div_1);\n }\n //let blazor: string = 'Blazor';\n if (isBlazor()) {\n content = 'diagramsf_node_template';\n sentNode = cloneBlazorObject(node);\n }\n propertyName = \"nodeTemplate\";\n }\n else {\n sentNode = node;\n //new\n if (isBlazor()) {\n sentNode = cloneBlazorObject(node);\n content = 'diagramsf_annotation_template';\n }\n propertyName = \"annotationTemplate\";\n }\n var item;\n var diagramElement = document.getElementById(element.diagramId);\n var instance = 'ej2_instances';\n var diagram = diagramElement[instance][0];\n if ((typeof element.content === 'string' || typeof element.content === 'function') && (!element.isTemplate || isBlazor())) {\n var template = document.getElementById(element.content);\n if (template) {\n div.appendChild(template);\n }\n else {\n /* eslint-disable */\n var compiledString = void 0;\n compiledString = compile(element.content);\n for (var _i = 0, _a = compiledString(sentNode, diagram, propertyName, content); _i < _a.length; _i++) {\n item = _a[_i];\n div.appendChild(item);\n }\n //new\n // for (item of compiledString(sentNode, null, null, content, undefined, undefined, isSvg)) {\n // div.appendChild(item);\n // }\n }\n }\n else if (element.isTemplate) {\n var compiledString = void 0;\n if (diagram.isReact) {\n compiledString = element.getNodeTemplate()(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div);\n }\n else if (diagram.isVue || diagram.isVue3) {\n // EJ2-57563 - Added the below code to provide slot template support for Vue and Vue 3\n var templateFn = element.getNodeTemplate();\n if (templateFn) {\n // If other than slot template, this if block gets execute and template get returned.\n compiledString = element.getNodeTemplate()(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div);\n }\n else {\n // If we provide slot template means then it enters in this block and returns a template\n if (propertyName === 'nodeTemplate') {\n compiledString = compile(diagram.nodeTemplate);\n }\n else {\n compiledString = compile(diagram.annotationTemplate);\n }\n compiledString = compiledString(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div);\n }\n }\n else {\n compiledString = element.getNodeTemplate()(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false);\n }\n if (compiledString) {\n for (var i = 0; i < compiledString.length; i++) {\n div.appendChild(compiledString[parseInt(i.toString(), 10)]);\n }\n }\n }\n else {\n div.appendChild(element.content);\n }\n return element.isTemplate ?\n div : (isHtml ? div.cloneNode(true) : div.cloneNode(true));\n}\n/* eslint-enable */\n/**\n * setAttributeSvg method \\\n *\n * @returns {void} setAttributeSvg method .\\\n * @param { SVGElement } svg - provide the svg value.\n * @param { Object } attributes - provide the boolean value.\n * @private\n */\nexport function setAttributeSvg(svg, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n // Added below condition to check whether svg is undefined or not\n if (svg && keys[parseInt(i.toString(), 10)] !== 'style') {\n svg.setAttribute(keys[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]);\n }\n else {\n applyStyleAgainstCsp(svg, attributes[keys[parseInt(i.toString(), 10)]]);\n }\n }\n}\n/**\n * applyStyleAgainstCsp method \\\n *\n * @returns {void} applyStyleAgainstCsp method .\\\n * @param { SVGElement } svg - provide the svg value.\n * @param { string } attributes - provide the boolean value.\n * @private\n */\nexport function applyStyleAgainstCsp(svg, attributes) {\n var keys = attributes.split(';');\n for (var i = 0; i < keys.length; i++) {\n var attribute = keys[parseInt(i.toString(), 10)].split(':');\n if (attribute.length === 2) {\n svg.style[attribute[0].trim()] = attribute[1].trim();\n }\n }\n}\n/**\n * setAttributeHtml method \\\n *\n * @returns {void} setAttributeHtml method .\\\n * @param { HTMLElement } element - provide the svg value.\n * @param { Object } attributes - provide the boolean value.\n * @private\n */\nexport function setAttributeHtml(element, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n if (keys[parseInt(i.toString(), 10)] !== 'style') {\n element.setAttribute(keys[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]);\n }\n else {\n applyStyleAgainstCsp(element, attributes[keys[parseInt(i.toString(), 10)]]);\n }\n }\n}\n/**\n * createMeasureElements method \\\n *\n * @returns {void} createMeasureElements method .\\\n * @private\n */\nexport function createMeasureElements() {\n var measureWindowElement = 'measureElement';\n if (!window[\"\" + measureWindowElement]) {\n var divElement = createHtmlElement('div', {\n id: 'measureElement',\n style: 'visibility:hidden ; height: 0px ; width: 0px; overflow: hidden;'\n });\n var text = createHtmlElement('span', { 'style': 'display:inline-block ; line-height: normal' });\n divElement.appendChild(text);\n //let imageElement: HTMLImageElement;\n var imageElement = createHtmlElement('img', { 'alt': 'measureElementImage', 'src': 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' });\n divElement.appendChild(imageElement);\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n divElement.appendChild(svg);\n var element = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n element.setAttribute('d', '');\n svg.appendChild(element);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var data = document.createTextNode('');\n var tSpan = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n svg.appendChild(tSpan);\n window[\"\" + measureWindowElement] = divElement;\n window[\"\" + measureWindowElement].usageCount = 1;\n document.body.appendChild(divElement);\n var measureElementCount = 'measureElementCount';\n if (!window[\"\" + measureElementCount]) {\n window[\"\" + measureElementCount] = 1;\n }\n else {\n window[\"\" + measureElementCount]++;\n }\n }\n else {\n window[\"\" + measureWindowElement].usageCount += 1;\n }\n}\n/**\n * setChildPosition method \\\n *\n * @returns {number} setChildPosition method .\\\n * @param {SubTextElement} temp - provide the temp value.\n * @param {SubTextElement[]} childNodes - provide the childNodes value.\n * @param {number} i - provide the i value.\n * @param {TextAttributes} options - provide the options value.\n * @private\n */\nexport function setChildPosition(temp, childNodes, i, options) {\n if (childNodes.length >= 1 && temp.x === 0 &&\n (options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') &&\n (options.textWrapping === 'Wrap' || options.textWrapping === 'WrapWithOverflow')) {\n temp.x = childNodes[i - 1] ? childNodes[i - 1].x : -(temp.width / 2);\n return temp.x;\n }\n return temp.x;\n}\n/**\n * getTemplateContent method \\\n *\n * @returns {DiagramHtmlElement} getTemplateContent method .\\\n * @param {DiagramHtmlElement} annotationcontent - provide the annotationcontent value.\n * @param {Annotation} annotation - provide the annotation value.\n * @param {number} annotationTemplate - provide the annotationTemplate value.\n * @private\n */\nexport function getTemplateContent(\n// eslint-disable-next-line @typescript-eslint/ban-types\nannotationcontent, annotation, annotationTemplate, diagram) {\n if ((annotationTemplate && !annotation.template) ||\n (annotation.template && typeof annotation.template === 'function' && diagram.isReact)) {\n annotationcontent.isTemplate = true;\n annotationcontent.template = annotationcontent.content = getContent(annotationcontent, true, annotation);\n }\n else {\n annotationcontent.content = annotation.template;\n }\n return annotationcontent;\n}\n/* eslint-disable */\n/** @private */\nexport function createUserHandleTemplates(userHandleTemplate, template, selectedItems, diagramID) {\n var userHandleFn;\n var handle;\n var compiledString;\n var i;\n var div;\n var diagramElement = document.getElementById(diagramID);\n var instance = 'ej2_instances';\n var diagram = diagramElement[instance][0];\n if (userHandleTemplate && template) {\n userHandleFn = templateCompiler(userHandleTemplate);\n for (var _i = 0, _a = selectedItems.userHandles; _i < _a.length; _i++) {\n handle = _a[_i];\n if (userHandleFn) {\n compiledString = userHandleFn(cloneObject(handle), diagram, 'userHandleTemplate' + '_' + handle.name, undefined, undefined, false);\n for (i = 0; i < compiledString.length; i++) {\n var attr = {\n 'style': 'height: 100%; width: 100%; pointer-events: all',\n 'id': handle.name + '_template_hiddenUserHandle'\n };\n div = createHtmlElement('div', attr);\n div.appendChild(compiledString[i]);\n }\n template[0].appendChild(div);\n }\n }\n }\n else if (isBlazor()) {\n var content = 'diagramsf_userHandle_template';\n var a = void 0;\n for (var _b = 0, _c = selectedItems.userHandles; _b < _c.length; _b++) {\n handle = _c[_b];\n if (!handle.pathData && !handle.content && !handle.source) {\n compiledString = compile(handle.content);\n for (i = 0, a = compiledString(cloneBlazorObject(handle), diagram, 'userHandleTemplate', content); i < a.length; i++) {\n var attr = {\n 'style': 'height: 100%; width: 100%; pointer-events: all',\n 'id': handle.name + '_template_hiddenUserHandle'\n };\n div = createHtmlElement('div', attr);\n div.appendChild(a[i]);\n }\n template[0].appendChild(div);\n }\n }\n }\n}\n/* eslint-enable */\n","import { compile as baseTemplateComplier } from '@syncfusion/ej2-base';\nimport { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { getValue } from '@syncfusion/ej2-base';\nimport { getChildNode, applyStyleAgainstCsp } from './dom-util';\nimport { Node, BasicShape, Shape, Native, BpmnShape, BpmnActivity, BpmnTask, BpmnSubProcess } from '../objects/node';\nimport { IconShape } from '../objects/icon';\nimport { TextStyle, ShapeStyle, Margin } from '../core/appearance';\nimport { Port } from '../objects/port';\nimport { Annotation } from '../objects/annotation';\nimport { Connector, Decorator } from '../objects/connector';\n/**\n * Implements the basic functionalities\n */\n/**\n * Used to generate the random id \\\n *\n * @returns { boolean } Used to generate the random id .\\\n *\n * @private\n */\nexport function randomId() {\n var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';\n var id = '';\n var num;\n for (var i = 0; i < 5; i++) {\n if ('crypto' in window && 'getRandomValues' in crypto) {\n var count = new Uint16Array(1);\n // tslint:disable-next-line:no-any\n var intCrypto = window.msCrypto || window.crypto;\n num = intCrypto.getRandomValues(count)[0] % (chars.length - 1);\n }\n else {\n num = Math.floor(Math.random() * chars.length);\n }\n if (i === 0 && num < 10) {\n i--;\n continue;\n }\n id += chars.substring(num, num + 1);\n }\n return id;\n}\n/**\n * Used to get the index value \\\n *\n * @returns { boolean } Used to get the index value .\\\n * @param {Diagram} comp - provide the Diagram value.\n * @param {string} id - provide the id value.\n *\n * @private\n */\nexport function getIndex(comp, id) {\n if (comp.nodes && comp.nodes.length > 0) {\n for (var i = 0; i < comp.nodes.length; i++) {\n if (comp.nodes[parseInt(i.toString(), 10)].id === id) {\n return i;\n }\n }\n }\n if (comp.connectors && comp.connectors.length > 0) {\n for (var i = 0; i < comp.connectors.length; i++) {\n if (comp.connectors[parseInt(i.toString(), 10)].id === id) {\n return i;\n }\n }\n }\n return null;\n}\n/**\n * templateCompiler method\\\n *\n * @returns { Function } templateCompiler method .\\\n * @param {string} template - provide the template value.\n *\n * @private\n */\nexport function templateCompiler(template) {\n if (template) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var e = void 0;\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return baseTemplateComplier(document.querySelector(template).innerHTML.trim());\n }\n else {\n return baseTemplateComplier(template);\n }\n }\n catch (e) {\n return baseTemplateComplier(template);\n }\n }\n return undefined;\n}\n/**\n * cornersPointsBeforeRotation method\\\n *\n * @returns { Rect } templateCompiler method .\\\n * @param {DiagramElement} ele - provide the template value.\n *\n * @private\n */\nexport function cornersPointsBeforeRotation(ele) {\n var bounds = new Rect();\n var top = ele.offsetY - ele.actualSize.height * ele.pivot.y;\n var bottom = ele.offsetY + ele.actualSize.height * (1 - ele.pivot.y);\n var left = ele.offsetX - ele.actualSize.width * ele.pivot.x;\n var right = ele.offsetX + ele.actualSize.width * (1 - ele.pivot.x);\n var topLeft = { x: left, y: top };\n //const topCenter: PointModel = { x: (left + right) / 2, y: top };\n var topRight = { x: right, y: top };\n //const middleLeft: PointModel = { x: left, y: (top + bottom) / 2 };\n //const middleRight: PointModel = { x: right, y: (top + bottom) / 2 };\n var bottomLeft = { x: left, y: bottom };\n //const bottomCenter: PointModel = { x: (left + right) / 2, y: bottom };\n var bottomRight = { x: right, y: bottom };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n return bounds;\n}\n/**\n * getBounds method\\\n *\n * @returns { Rect } getBounds method .\\\n * @param {DiagramElement} element - provide the template value.\n *\n * @private\n */\nexport function getBounds(element) {\n var bounds = new Rect();\n //let corners: Rect;\n var corners = cornersPointsBeforeRotation(element);\n var middleLeft = corners.middleLeft;\n var topCenter = corners.topCenter;\n var bottomCenter = corners.bottomCenter;\n var middleRight = corners.middleRight;\n var topLeft = corners.topLeft;\n var topRight = corners.topRight;\n var bottomLeft = corners.bottomLeft;\n var bottomRight = corners.bottomRight;\n element.corners = {\n topLeft: topLeft, topCenter: topCenter, topRight: topRight, middleLeft: middleLeft,\n middleRight: middleRight, bottomLeft: bottomLeft, bottomCenter: bottomCenter, bottomRight: bottomRight\n };\n if (element.rotateAngle !== 0 || element.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n element.corners.topLeft = topLeft = transformPointByMatrix(matrix, topLeft);\n element.corners.topCenter = topCenter = transformPointByMatrix(matrix, topCenter);\n element.corners.topRight = topRight = transformPointByMatrix(matrix, topRight);\n element.corners.middleLeft = middleLeft = transformPointByMatrix(matrix, middleLeft);\n element.corners.middleRight = middleRight = transformPointByMatrix(matrix, middleRight);\n element.corners.bottomLeft = bottomLeft = transformPointByMatrix(matrix, bottomLeft);\n element.corners.bottomCenter = bottomCenter = transformPointByMatrix(matrix, bottomCenter);\n element.corners.bottomRight = bottomRight = transformPointByMatrix(matrix, bottomRight);\n //Set corners based on rotate angle\n }\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n element.corners.left = bounds.left;\n element.corners.right = bounds.right;\n element.corners.top = bounds.top;\n element.corners.bottom = bounds.bottom;\n element.corners.center = bounds.center;\n element.corners.width = bounds.width;\n element.corners.height = bounds.height;\n return bounds;\n}\n/**\n * updateCloneProp method\\\n *\n * @returns { Rect } updateCloneProp method .\\\n * @param {DiagramElement} properties - provide the template value.\n * @param {DiagramElement} obj - provide the template value.\n *\n * @private\n */\nfunction updateCloneProp(properties, obj) {\n var prop = [];\n if (obj instanceof Node) {\n prop = ['width', 'height', 'offsetX', 'offsetY', 'container', 'visible', 'horizontalAlignment', 'verticalAlignment',\n 'backgroundColor', 'borderColor', 'borderWidth', 'rotateAngle', 'minHeight', 'minWidth', 'maxHeight',\n 'maxWidth', 'pivot', 'margin', 'flip', 'wrapper', 'constraints', 'style', 'annotations', 'ports', 'isExpanded', 'expandIcon'];\n }\n else if (obj instanceof Connector) {\n prop = ['constraints', 'sourcePadding', 'targetPadding', 'cornerRadius', 'flip', 'type', 'targetDecorator', 'sourceDecorator',\n 'sourceID', 'shape', 'bridgeSpace', 'annotations', 'segments', 'hitPadding', 'tooltip', 'previewSize', 'dragSize', 'style',\n 'sourcePortID', 'targetID', 'targetPortID', 'visible'];\n }\n else if (obj instanceof Decorator) {\n prop = ['height', 'width', 'shape', 'style', 'pivot', 'pathData'];\n }\n else if (obj instanceof Shape || obj instanceof IconShape) {\n prop.push('shape');\n if (obj instanceof BasicShape) {\n prop.push('cornerRadius');\n }\n else if (obj instanceof Text) {\n prop.push('margin');\n }\n else if (obj instanceof Image) {\n prop.push('align');\n prop.push('scale');\n }\n else if (obj instanceof Native) {\n prop.push('scale');\n }\n else if (obj instanceof BpmnShape) {\n prop.push('activity');\n prop.push('annotations');\n }\n else if (obj instanceof IconShape) {\n prop.push('borderColor');\n prop.push('borderWidth');\n prop.push('cornerRadius');\n prop.push('fill');\n }\n }\n else if (obj instanceof BpmnActivity) {\n prop.push('subProcess');\n }\n else if (obj instanceof BpmnTask) {\n prop.push('call');\n prop.push('compensation');\n prop.push('loop');\n }\n else if (obj instanceof BpmnSubProcess) {\n prop.push('adhoc');\n prop.push('boundary');\n prop.push('compensation');\n prop.push('loop');\n prop.push('processes');\n }\n else if (obj instanceof Port) {\n prop.push('height');\n prop.push('width');\n prop.push('visibility');\n prop.push('horizontalAlignment');\n prop.push('verticalAlignment');\n prop.push('shape');\n }\n else if (obj instanceof Annotation) {\n prop.push('constraints');\n prop.push('height');\n prop.push('horizontalAlignment');\n prop.push('rotateAngle');\n prop.push('template');\n prop.push('verticalAlignment');\n prop.push('visibility');\n prop.push('width');\n prop.push('margin');\n }\n else if (obj instanceof Margin) {\n prop.push('left');\n prop.push('right');\n prop.push('top');\n prop.push('bottom');\n }\n else if (obj instanceof TextStyle) {\n prop = ['strokeWidth', 'strokeDashArray', 'opacity', 'gradient', 'fontSize', 'fontFamily', 'textOverflow',\n 'textDecoration', 'whiteSpace', 'textWrapping', 'textAlign', 'italic', 'bold'];\n }\n if (obj instanceof ShapeStyle) {\n prop.push('strokeColor');\n prop.push('color');\n }\n properties = properties.concat(prop);\n return properties;\n}\n/**\n * cloneObject method\\\n *\n * @returns { Rect } cloneObject method .\\\n * @param {DiagramElement} obj - provide the obj value.\n * @param {DiagramElement} additionalProp - provide the additionalProp value.\n * @param {DiagramElement} key - provide the key value.\n * @param {DiagramElement} cloneBlazorProp - provide the cloneBlazorProp value.\n *\n * @private\n */\nexport function cloneObject(obj, additionalProp, key, cloneBlazorProp) {\n var newObject = {};\n var keys = 'properties';\n var prop = 'propName';\n if (obj) {\n key = obj[\"\" + prop];\n var sourceObject = obj[\"\" + keys] || obj;\n var properties = [];\n properties = properties.concat(Object.keys(sourceObject));\n var customProperties = [];\n properties.push('version');\n if (key) {\n var propAdditional = getFunction(additionalProp);\n if (propAdditional) {\n customProperties = propAdditional(key);\n }\n else {\n customProperties = [];\n }\n properties = properties.concat(customProperties);\n }\n var internalProp = getInternalProperties(key);\n properties = properties.concat(internalProp);\n if (cloneBlazorProp) {\n properties = updateCloneProp(properties, obj);\n }\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n if (property !== 'historyManager') {\n if (property !== 'wrapper') {\n //const constructorId: string = 'constructor';\n //const name: string = 'name';\n // eslint-disable-next-line no-prototype-builtins\n var isEventEmmitter = obj[\"\" + property] && obj.hasOwnProperty('observers') ? true : false;\n if (!isEventEmmitter) {\n if (obj[\"\" + property] instanceof Array) {\n newObject[\"\" + property] = cloneArray((internalProp.indexOf(property) === -1 && obj[\"\" + keys]) ? obj[\"\" + keys][\"\" + property] : obj[\"\" + property], additionalProp, property, cloneBlazorProp);\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof HTMLElement) {\n newObject[\"\" + property] = obj[\"\" + property].cloneNode(true).innerHtml;\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof Object) {\n newObject[\"\" + property] = cloneObject((internalProp.indexOf(property) === -1 && obj[\"\" + keys]) ? obj[\"\" + keys][\"\" + property] : obj[\"\" + property], undefined, undefined, cloneBlazorProp);\n }\n else {\n newObject[\"\" + property] = obj[\"\" + property];\n }\n }\n }\n else {\n if (obj[\"\" + property]) {\n newObject[\"\" + property] = {\n actualSize: {\n width: obj[\"\" + property].actualSize.width, height: obj[\"\" + property].actualSize.height\n }, offsetX: obj[\"\" + property].offsetX, offsetY: obj[\"\" + property].offsetY\n };\n }\n }\n }\n }\n }\n return newObject;\n}\n/**\n * getInternalProperties method\\\n *\n * @returns { string[] } getInternalProperties method .\\\n * @param {string} propName - provide the propName value.\n *\n * @private\n */\nexport function getInternalProperties(propName) {\n switch (propName) {\n case 'nodes':\n case 'children':\n return ['inEdges', 'outEdges', 'parentId', 'processId', 'nodeId', 'umlIndex', 'isPhase', 'isLane'];\n case 'connectors':\n return ['parentId'];\n case 'annotation':\n return ['nodeId'];\n case 'annotations':\n return ['nodeId'];\n case 'shape':\n return ['hasHeader'];\n case 'layers':\n return ['objectZIndex'];\n }\n return [];\n}\n/**\n * cloneArray method\\\n *\n * @returns { Object[] } getInternalProperties method .\\\n * @param {string} sourceArray - provide the sourceArray value.\n * @param {string} additionalProp - provide the additionalProp value.\n * @param {string} key - provide the key value.\n * @param {string} cloneBlazorProp - provide the cloneBlazorProp value.\n *\n * @private\n */\nexport function cloneArray(sourceArray, additionalProp, key, cloneBlazorProp) {\n var clonedArray;\n if (sourceArray) {\n clonedArray = [];\n for (var i = 0; i < sourceArray.length; i++) {\n if (sourceArray[parseInt(i.toString(), 10)] instanceof Array) {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n else if (sourceArray[parseInt(i.toString(), 10)] instanceof Object) {\n clonedArray.push(cloneObject(sourceArray[parseInt(i.toString(), 10)], additionalProp, key, cloneBlazorProp));\n }\n else {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n }\n }\n return clonedArray;\n}\n/**\n * extendObject method\\\n *\n * @returns { Object} getInternalProperties method .\\\n * @param {string} options - provide the options value.\n * @param {string} childObject - provide the childObject value.\n *\n * @private\n */\nexport function extendObject(options, childObject) {\n var properties = 'properties';\n if (options) {\n if (!childObject) {\n childObject = { properties: {} };\n }\n //const target: Object = childObject;\n for (var _i = 0, _a = Object.keys(options); _i < _a.length; _i++) {\n var property = _a[_i];\n if (options[\"\" + property] instanceof Array) {\n var extendeArray = extendArray(options[\"\" + property], childObject[\"\" + properties][\"\" + property]);\n if (!childObject[\"\" + properties][\"\" + property] || !childObject[\"\" + properties][\"\" + property].length) {\n childObject[\"\" + property] = extendeArray;\n }\n }\n else if (options[\"\" + property] instanceof Array === false && options[\"\" + property] instanceof HTMLElement) {\n childObject[\"\" + property] = options[\"\" + property].cloneNode(true).innerHtml;\n }\n else if (options[\"\" + property] instanceof Array === false && options[\"\" + property] instanceof Object) {\n var extendedObject = extendObject(options[\"\" + property], childObject[\"\" + properties][\"\" + property]);\n if (extendedObject[\"\" + properties] && !Object.keys(extendedObject[\"\" + properties]).length) {\n delete extendedObject[\"\" + properties];\n }\n childObject[\"\" + property] = extendedObject;\n }\n else {\n childObject[\"\" + property] = childObject[\"\" + properties][\"\" + property] !== undefined ?\n childObject[\"\" + property] : options[\"\" + property];\n }\n }\n }\n return childObject;\n}\n/**\n * extendObject method\\\n *\n * @returns { Object} getInternalProperties method .\\\n * @param {string} sourceArray - provide the sourceArray value.\n * @param {string} childArray - provide the childArray value.\n *\n * @private\n */\nexport function extendArray(sourceArray, childArray) {\n var clonedArray = [];\n var reset = false;\n if (!childArray) {\n childArray = [];\n }\n if (!childArray.length) {\n reset = true;\n }\n for (var i = 0; i < sourceArray.length; i++) {\n if (sourceArray[parseInt(i.toString(), 10)] instanceof Array) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var extendedArray = extendArray(sourceArray[parseInt(i.toString(), 10)], childArray[parseInt(i.toString(), 10)]);\n if (reset) {\n clonedArray.push(extendArray);\n }\n }\n else if (sourceArray[parseInt(i.toString(), 10)] instanceof Object) {\n var extendedObject = extendObject(sourceArray[parseInt(i.toString(), 10)], childArray[parseInt(i.toString(), 10)]);\n if (reset) {\n clonedArray.push(extendedObject);\n }\n }\n else {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n }\n return clonedArray;\n}\n/**\n * textAlignToString method\\\n *\n * @returns { Object} textAlignToString method .\\\n * @param {string} value - provide the sourceArray value.\n *\n * @private\n */\nexport function textAlignToString(value) {\n var state = '';\n switch (value) {\n case 'Center':\n state = 'center';\n break;\n case 'Left':\n state = 'left';\n break;\n case 'Right':\n state = 'right';\n break;\n }\n return state;\n}\n/**\n * wordBreakToString method\\\n *\n * @returns { string } wordBreakToString method .\\\n * @param {TextWrap | TextDecoration} value - provide the value value.\n *\n * @private\n */\nexport function wordBreakToString(value) {\n var state = '';\n switch (value) {\n case 'Wrap':\n state = 'breakall';\n break;\n case 'NoWrap':\n state = 'keepall';\n break;\n case 'WrapWithOverflow':\n state = 'normal';\n break;\n case 'LineThrough':\n state = 'line-through';\n break;\n }\n return state;\n}\n/**\n * bBoxText method\\\n *\n * @returns { number } bBoxText method .\\\n * @param {string} textContent - provide the textContent value.\n * @param {string} options - provide the options value.\n *\n * @private\n */\nexport function bBoxText(textContent, options) {\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var svg = window[\"\" + measureWindowElement].children[2];\n var text = getChildNode(svg)[1];\n text.textContent = textContent;\n applyStyleAgainstCsp(text, 'font-size:' + options.fontSize + 'px; font-family:'\n + options.fontFamily + ';font-weight:' + (options.bold ? 'bold' : 'normal'));\n var bBox = text.getBBox().width;\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n return bBox;\n}\n/**\n * middleElement method\\\n *\n * @returns { number} middleElement method .\\\n * @param {number} i - provide the textContent value.\n * @param {number} j - provide the options value.\n *\n * @private\n */\nexport function middleElement(i, j) {\n var m = 0;\n m = (i + j) / 2;\n return m;\n}\n/**\n * overFlow method\\\n *\n * @returns { number} overFlow method .\\\n * @param {number} text - provide the text value.\n * @param {number} options - provide the options value.\n *\n * @private\n */\nexport function overFlow(text, options) {\n var i = 0;\n var j = 0;\n var middle = 0;\n var bounds = 0;\n var temp = '';\n j = text.length;\n var t = 0;\n do {\n if (bounds > 0) {\n i = middle;\n }\n middle = Math.floor(middleElement(i, j));\n temp += text.substr(i, middle);\n bounds = bBoxText(temp, options);\n } while (bounds <= options.width);\n temp = temp.substr(0, i);\n for (t = i; t < j; t++) {\n temp += text[parseInt(t.toString(), 10)];\n bounds = bBoxText(temp, options);\n if (bounds >= options.width) {\n text = text.substr(0, temp.length - 1);\n break;\n }\n }\n if (options.textOverflow === 'Ellipsis') {\n text = text.substr(0, text.length - 3);\n text += '...';\n }\n else {\n text = text.substr(0, text.length);\n }\n return text;\n}\n/**\n * whiteSpaceToString method\\\n *\n * @returns { number} whiteSpaceToString method .\\\n * @param {number} value - provide the value value.\n * @param {number} wrap - provide the wrap value.\n *\n * @private\n */\nexport function whiteSpaceToString(value, wrap) {\n if (wrap === 'NoWrap' && value === 'PreserveAll') {\n return 'pre';\n }\n var state = '';\n switch (value) {\n case 'CollapseAll':\n state = 'nowrap';\n break;\n case 'CollapseSpace':\n state = 'pre-line';\n break;\n case 'PreserveAll':\n state = 'pre-wrap';\n break;\n }\n return state;\n}\n/**\n * rotateSize method\\\n *\n * @returns { number} rotateSize method .\\\n * @param {number} size - provide the size value.\n * @param {number} angle - provide the angle value.\n *\n * @private\n */\nexport function rotateSize(size, angle) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, 0, 0);\n var topLeft = transformPointByMatrix(matrix, { x: 0, y: 0 });\n var topRight = transformPointByMatrix(matrix, { x: size.width, y: 0 });\n var bottomLeft = transformPointByMatrix(matrix, { x: 0, y: size.height });\n var bottomRight = transformPointByMatrix(matrix, { x: size.width, y: size.height });\n var minX = Math.min(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var minY = Math.min(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n var maxX = Math.max(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var maxY = Math.max(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n return new Size(maxX - minX, maxY - minY);\n}\n/**\n * rotatePoint method\\\n *\n * @returns { number} rotateSize method .\\\n * @param {number} angle - provide the angle value.\n * @param {number} pivotX - provide the pivotX value.\n * @param {number} pivotY - provide the pivotY value.\n * @param {PointModel} point - provide the point value.\n * @private\n */\nexport function rotatePoint(angle, pivotX, pivotY, point) {\n if (angle !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivotX, pivotY);\n return transformPointByMatrix(matrix, point);\n }\n return point;\n}\n/**\n * getOffset method\\\n *\n * @returns { number} getOffset method .\\\n * @param {PointModel} topLeft - provide the angle value.\n * @param {DiagramElement} obj - provide the pivotX value.\n * @private\n */\nexport function getOffset(topLeft, obj) {\n var offX = topLeft.x + obj.desiredSize.width * obj.pivot.x;\n var offY = topLeft.y + obj.desiredSize.height * obj.pivot.y;\n return {\n x: offX, y: offY\n };\n}\n/**\n * getFunction method\\\n *\n * @returns { Function } getFunction method .\\\n * @param {PointModel} value - provide the angle value.\n * @private\n */\nexport function getFunction(value) {\n if (value !== undefined) {\n if (typeof value === 'string') {\n value = getValue(value, window);\n }\n }\n return value;\n}\n","/* eslint-disable no-case-declarations */\n/* eslint-disable @typescript-eslint/indent */\nimport { Size } from './../primitives/size';\nimport { Point } from './../primitives/point';\nimport { processPathData, pathSegmentCollection, getRectanglePath } from './../utility/path-util';\nimport { overFlow } from './../utility/base-util';\nimport { createHtmlElement, setChildPosition } from './../utility/dom-util';\n/**\n * Canvas Renderer\n */\n/** @private */\nvar CanvasRenderer = /** @class */ (function () {\n function CanvasRenderer() {\n }\n /**\n * Provide the context value for the canvas \\\n *\n * @returns {CanvasRenderingContext2D} Provide the context value for the canvas .\\\n * @param { HTMLCanvasElement} canvas - Return the dashed array values .\n * @private\n */\n CanvasRenderer.getContext = function (canvas) {\n return canvas.getContext('2d');\n };\n CanvasRenderer.setCanvasSize = function (canvas, width, height) {\n if (canvas) {\n canvas.setAttribute('width', width.toString());\n canvas.setAttribute('height', height.toString());\n }\n };\n /**\n * Draw the gradient for the diagram shapes .\\\n *\n * @returns {SVGElement} Draw the gradient for the diagram shapes.\n * @param {StyleAttributes} options - Provide the options for the gradient element .\n * @param {SVGElement} ctx - Provide canvas values .\n * @param {string} x - Provide the x value for the gradient .\n * @param {string} y - Provide the x value for the gradient .\n * @private\n */\n CanvasRenderer.prototype.renderGradient = function (options, ctx, x, y) {\n var max;\n var min;\n var grd;\n if (options.gradient.type !== 'None') {\n for (var i = 0; i < options.gradient.stops.length; i++) {\n max = max !== undefined ? options.gradient.stops[parseInt(i.toString(), 10)].offset : Math.max(max, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n min = min !== undefined ? options.gradient.stops[parseInt(i.toString(), 10)].offset : Math.min(min, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n }\n if (options.gradient.type === 'Linear') {\n var linear = options.gradient;\n grd = ctx.createLinearGradient(x + linear.x1, y + linear.y1, x + linear.x2, y + linear.y2);\n }\n else {\n var radial = options.gradient;\n grd = ctx.createRadialGradient(x + radial.fx, y + radial.fy, 0, x + radial.cx, y + radial.cy, radial.r);\n }\n for (var i = 0; i < options.gradient.stops.length; i++) {\n var stop_1 = options.gradient.stops[parseInt(i.toString(), 10)];\n var offset = min < 0 ? (max + stop_1.offset) / (2 * max) : stop_1.offset / max;\n grd.addColorStop(offset, stop_1.color);\n }\n ctx.fillStyle = grd;\n }\n return ctx;\n };\n /**\n * Draw the shawdow for the rectangle shape in diagram \\\n *\n * @returns {void} Draw the shawdow for the rectangle shape in diagram .\\\n *\n * @param { SVGElement} options - Provide the base attributes .\n * @param { RectAttributes} canvas - Provide the canvas values .\n * @param { string} collection - Provide the collection value.\n * @private\n */\n CanvasRenderer.prototype.renderShadow = function (options, canvas, collection) {\n if (collection === void 0) { collection = null; }\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n ctx.strokeStyle = ctx.fillStyle = options.shadow.color;\n ctx.globalAlpha = options.shadow.opacity;\n var ptModel = { x: 0, y: 0 };\n var point = Point.transform(ptModel, options.shadow.angle, options.shadow.distance);\n var transX = options.x + point.x;\n var transY = options.y + point.y;\n var pivotX = transX + options.width * options.pivotX;\n var pivotY = transY + options.height * options.pivotY;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n if (collection) {\n ctx.translate(transX, transY);\n this.renderPath(canvas, options, collection);\n ctx.translate(-transX, -transY);\n }\n else {\n ctx.rect(transX, transY, options.width, options.height);\n ctx.fillRect(transX, transY, options.width, options.height);\n }\n ctx.fill();\n ctx.stroke();\n ctx.closePath();\n ctx.restore();\n };\n /**\n * Create canvas element for the diagram \\\n *\n * @returns {HTMLCanvasElement} Create canvas element for the diagram .\\\n *\n * @param { SVGElement} id - Provide the id for the canvas.\n * @param { Object} width - Provide the width for the canvas.\n * @param { Object} height - Provide the height for the canvas.\n * @private\n */\n CanvasRenderer.createCanvas = function (id, width, height) {\n var canvasObj = createHtmlElement('canvas', { 'id': id });\n this.setCanvasSize(canvasObj, width, height);\n return canvasObj;\n };\n CanvasRenderer.prototype.setStyle = function (canvas, style) {\n var ctx = CanvasRenderer.getContext(canvas);\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n ctx.strokeStyle = style.stroke;\n ctx.lineWidth = style.strokeWidth;\n if (style.strokeWidth === 0) {\n ctx.strokeStyle = 'transparent';\n }\n ctx.globalAlpha = style.opacity;\n var dashArray = [];\n if (style.dashArray) {\n dashArray = this.parseDashArray(style.dashArray);\n }\n ctx.setLineDash(dashArray);\n if (style.gradient && style.gradient.type !== 'None') {\n if (style.shapeType === 'Rectangle') {\n this.renderGradient(style, ctx, style.x, style.y);\n }\n else {\n this.renderGradient(style, ctx, 0, 0);\n }\n }\n else {\n ctx.fillStyle = style.fill;\n }\n };\n CanvasRenderer.prototype.rotateContext = function (canvas, angle, x, y) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.translate(x, y);\n ctx.rotate(angle * Math.PI / 180);\n ctx.translate(-x, -y);\n };\n CanvasRenderer.prototype.setFontStyle = function (canvas, text) {\n var ctx = CanvasRenderer.getContext(canvas);\n var font = '';\n if (text.italic) {\n font += 'italic ';\n }\n if (text.bold) {\n font += 'bold ';\n }\n font += (text.fontSize) + 'px ';\n font += text.fontFamily;\n ctx.font = font;\n };\n /**\n * Return the dashed array values \\\n *\n * @returns {number[]} Return the dashed array values .\\\n * @param { SVGElement} dashArray - Return the dashed array values .\n * @private\n */\n CanvasRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n var separator = dashArray.indexOf(' ') !== -1 ? ' ' : ',';\n var splittedDashes = dashArray.split(separator);\n for (var _i = 0, splittedDashes_1 = splittedDashes; _i < splittedDashes_1.length; _i++) {\n var i = splittedDashes_1[_i];\n dashes.push(Number(i));\n }\n return dashes;\n };\n CanvasRenderer.prototype.drawRoundedRect = function (canvas, options) {\n var context = CanvasRenderer.getContext(canvas);\n context.beginPath();\n var x = options.x;\n var y = options.y;\n var w = options.width;\n var h = options.height;\n var mx = x + w / 2;\n var my = y + h / 2;\n context.beginPath();\n this.setStyle(canvas, options);\n context.moveTo(x, my);\n context.quadraticCurveTo(x, y, mx, y);\n context.quadraticCurveTo(x + w, y, x + w, my);\n context.quadraticCurveTo(x + w, y + h, mx, y + h);\n context.quadraticCurveTo(x, y + h, x, my);\n context.stroke();\n };\n //Rendering Part\n /**\n * Draw the Rectangle for the diagram \\\n *\n * @returns {void} Draw the Rectangle for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG .\n * @param { RectAttributes} options - Provide the Rect attributes .\n * @param { string} diagramId - Provide the diagram id .\n * @param { boolean} isExport - Provide the isExport .\n * @private\n */\n CanvasRenderer.prototype.drawRectangle = function (canvas, options, diagramId, isExport) {\n if (options.visible === true) {\n if (options.cornerRadius) {\n if (!isExport && (options.width < 30 || options.height < 30)) {\n this.drawRoundedRect(canvas, options);\n }\n else {\n options.data = getRectanglePath(options.cornerRadius, options.height, options.width);\n this.drawPath(canvas, options);\n }\n }\n else {\n var ctx = CanvasRenderer.getContext(canvas);\n if (options.shadow) {\n this.renderShadow(options, canvas);\n }\n ctx.save();\n ctx.beginPath();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var cornerRadius = options.cornerRadius;\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n this.setStyle(canvas, options);\n ctx.rect(options.x, options.y, options.width, options.height);\n ctx.fillRect(options.x, options.y, options.width, options.height);\n ctx.fill();\n ctx.stroke();\n ctx.closePath();\n ctx.restore();\n }\n }\n };\n // public updateSelectionRegion(canvas: HTMLCanvasElement, options: RectAttributes): void {\n // this.drawRectangle(canvas, options);\n // }\n // public drawLine(canvas: HTMLCanvasElement, options: LineAttributes): void {\n // let ctx: CanvasRenderingContext2D = CanvasRenderer.getContext(canvas);\n // ctx.save();\n // ctx.beginPath();\n // let pivotX: number = options.x + options.width * options.pivotX;\n // let pivotY: number = options.y + options.height * options.pivotY;\n // this.rotateContext(canvas, options.angle, pivotX, pivotY);\n // this.setStyle(canvas, options as StyleAttributes);\n // ctx.translate(options.x, options.y);\n // ctx.moveTo(options.startPoint.x, options.startPoint.y);\n // ctx.lineTo(options.endPoint.x, options.endPoint.y);\n // ctx.translate(-options.x, -options.y);\n // ctx.stroke();\n // ctx.closePath();\n // ctx.restore();\n // }\n // public drawCircle(canvas: HTMLCanvasElement, options: CircleAttributes): void {\n // let ctx: CanvasRenderingContext2D = CanvasRenderer.getContext(canvas);\n // ctx.save();\n // ctx.beginPath();\n // let pivotY: number = options.y + options.height * options.pivotY;\n // let pivotX: number = options.x + options.width * options.pivotX;\n // this.setStyle(canvas, options as StyleAttributes);\n // this.rotateContext(canvas, options.angle, pivotX, pivotY);\n // ctx.arc(options.centerX, options.centerY, options.radius, 0, 2 * Math.PI);\n // ctx.fill();\n // ctx.stroke();\n // ctx.closePath();\n // ctx.restore();\n // }\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param { PathAttributes} options - Provide the path element attributes .\n * @private\n */\n CanvasRenderer.prototype.drawPath = function (canvas, options) {\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n if (options.shadow) {\n this.renderShadow(options, canvas, collection);\n }\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n var pivotY = options.y + options.height * options.pivotY;\n var pivotX = options.x + options.width * options.pivotX;\n if (options.flip === 'Horizontal' || options.flip === 'Vertical') {\n ctx.translate(options.x + options.width / 2, options.y + options.height / 2);\n ctx.rotate(-options.angle * Math.PI / 180);\n ctx.translate(-options.x - options.width / 2, -options.y - options.height / 2);\n }\n else {\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n }\n this.setStyle(canvas, options);\n ctx.translate(options.x, options.y);\n if (options.flip === 'Horizontal') {\n ctx.scale(-1, 1);\n ctx.translate(options.width * -1, 0);\n }\n else if (options.flip === 'Vertical') {\n ctx.scale(1, -1);\n ctx.translate(0, options.height * -1);\n }\n else if (options.flip === 'Both') {\n ctx.scale(-1, -1);\n ctx.translate(options.width * -1, options.height * -1);\n }\n this.renderPath(canvas, options, collection);\n ctx.fill();\n ctx.translate(-options.x, -options.y);\n ctx.stroke();\n ctx.restore();\n };\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param {PathAttributes} options - Provide the path element attributes .\n * @param {Object[]} collection - Provide the parent SVG element .\n * @private\n */\n CanvasRenderer.prototype.renderPath = function (canvas, options, collection) {\n if (options.visible === true) {\n var ctx = CanvasRenderer.getContext(canvas);\n var x0 = void 0;\n var y0 = void 0;\n var x1 = void 0;\n var y1 = void 0;\n var x2 = void 0;\n var y2 = void 0;\n var x = void 0;\n var y = void 0;\n var length_1;\n var i = void 0;\n var segs = collection;\n for (x = 0, y = 0, i = 0, length_1 = segs.length; i < length_1; ++i) {\n var obj = segs[parseInt(i.toString(), 10)];\n var seg = obj;\n var char = seg.command;\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n switch (char) {\n case 'M':\n ctx.moveTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'L':\n ctx.lineTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'C':\n ctx.bezierCurveTo(x1, y1, x2, y2, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n seg.x2 = x2;\n seg.y2 = y2;\n break;\n case 'Q':\n ctx.quadraticCurveTo(x1, y1, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n break;\n case 'A':\n // eslint-disable-next-line\n var curr = { x: x0, y: y0 };\n var rx = seg.r1;\n var ry = seg.r2;\n var xAxisRotation = seg.angle * (Math.PI / 180.0);\n var largeArc = seg.largeArc;\n var sweep = seg.sweep;\n var cp = { x: x, y: y };\n var currp = {\n x: Math.cos(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.sin(xAxisRotation) * (curr.y - cp.y) / 2.0,\n y: -Math.sin(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.cos(xAxisRotation) * (curr.y - cp.y) / 2.0\n };\n var l = Math.pow(currp.x, 2) / Math.pow(rx, 2) + Math.pow(currp.y, 2) / Math.pow(ry, 2);\n if (l > 1) {\n rx *= Math.sqrt(l);\n ry *= Math.sqrt(l);\n }\n var k = (Math.pow(ry, 2) * Math.pow(currp.x, 2));\n var s = (largeArc === sweep ? -1 : 1) * Math.sqrt(((Math.pow(rx, 2) * Math.pow(ry, 2)) - (Math.pow(rx, 2) * Math.pow(currp.y, 2)) - k) /\n (Math.pow(rx, 2) * Math.pow(currp.y, 2) + Math.pow(ry, 2) * Math.pow(currp.x, 2)));\n if (isNaN(s)) {\n s = 0;\n }\n var cpp = { x: s * rx * currp.y / ry, y: s * -ry * currp.x / rx };\n var centp = {\n x: (curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y,\n y: (curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y\n };\n var a1 = this.a([1, 0], [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry]);\n var u = [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry];\n var v = [(-currp.x - cpp.x) / rx, (-currp.y - cpp.y) / ry];\n var ad = this.a(u, v);\n if (this.r(u, v) <= -1) {\n ad = Math.PI;\n }\n if (this.r(u, v) >= 1) {\n ad = 0;\n }\n var dir = !sweep ? -1.0 : 1.0;\n var ah = a1 + dir * (ad / 2.0);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var halfWay = {\n x: centp.x + rx * Math.cos(ah),\n y: centp.y + ry * Math.sin(ah)\n };\n seg.centp = centp;\n seg.xAxisRotation = xAxisRotation;\n seg.rx = rx;\n seg.ry = ry;\n seg.a1 = a1;\n seg.ad = ad;\n seg.sweep = sweep;\n if (ctx != null) {\n var ra = rx > ry ? rx : ry;\n var sx = rx > ry ? 1 : rx / ry;\n var sy = rx > ry ? ry / rx : 1;\n ctx.save();\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, ra, a1, a1 + ad, !sweep);\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n ctx.restore();\n }\n break;\n case 'Z':\n case 'z':\n ctx.closePath();\n x = x0;\n y = y0;\n break;\n }\n x0 = x;\n y0 = y;\n }\n }\n };\n /**\n * Draw the text element for the diagram\\\n *\n * @returns {void} Draw the text element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param {TextAttributes} options - Provide the text element attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {Object} ariaLabel - Provide the label properties .\n * @param {string} diagramId - Provide the diagram id .\n * @param {number} scaleValue - Provide the scale value .\n * @param {Container} parentNode - Provide the parent node .\n * @private\n */\n CanvasRenderer.prototype.drawText = function (canvas, options, parentSvg, ariaLabel, diagramId, scaleValue, parentNode) {\n if (options.content && options.visible === true) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n this.setStyle(canvas, options);\n if (scaleValue) {\n options.fontSize *= scaleValue;\n }\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n this.setFontStyle(canvas, options);\n var i = 0;\n var childNodes = [];\n childNodes = options.childNodes;\n var wrapBounds = options.wrapBounds;\n ctx.fillStyle = options.color;\n if (wrapBounds) {\n var position = this.labelAlign(options, wrapBounds, childNodes);\n for (i = 0; i < childNodes.length; i++) {\n var child = childNodes[parseInt(i.toString(), 10)];\n child.x = setChildPosition(child, childNodes, i, options);\n var offsetX = position.x + (scaleValue ? child.x * scaleValue : child.x) - wrapBounds.x;\n var offsetY = position.y + (scaleValue ? child.dy * scaleValue : child.dy) * i + ((options.fontSize) * 0.8);\n if (wrapBounds.width > options.width && options.textOverflow !== 'Wrap' && options.textWrapping === 'NoWrap') {\n child.text = overFlow(child.text, options);\n }\n if ((options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') && options.textWrapping === 'Wrap') {\n if (offsetY < parentNode.actualSize.height + parentNode.bounds.y) {\n if (options.textOverflow === 'Ellipsis' && childNodes[i + 1]) {\n var temp = childNodes[i + 1];\n var y = position.y + temp.dy * (i + 1) + ((options.fontSize) * 0.8);\n if (y > parentNode.actualSize.height + parentNode.bounds.y) {\n child.text = child.text.slice(0, child.text.length - 3);\n child.text = child.text.concat('...');\n }\n }\n ctx.fillText(child.text, offsetX, offsetY);\n }\n }\n else {\n ctx.fillText(child.text, offsetX, offsetY);\n }\n if (options.textDecoration === 'Underline'\n || options.textDecoration === 'Overline'\n || options.textDecoration === 'LineThrough') {\n var startPointX = offsetX;\n var startPointY = void 0;\n var textlength = ctx.measureText(child.text).width;\n var endPointX = offsetX + textlength;\n var endPointY = void 0;\n switch (options.textDecoration) {\n case 'Underline':\n startPointY = offsetY + 2;\n endPointY = offsetY + 2;\n break;\n case 'Overline':\n startPointY = (position.y + child.dy * i);\n endPointY = (position.y + child.dy * i);\n break;\n case 'LineThrough':\n startPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n endPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n }\n ctx.beginPath();\n ctx.moveTo(startPointX, startPointY);\n ctx.lineTo(endPointX, endPointY);\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.fontSize * .08;\n ctx.globalAlpha = options.opacity;\n ctx.stroke();\n }\n }\n }\n ctx.restore();\n }\n };\n CanvasRenderer.prototype.loadImage = function (ctx, obj, canvas, pivotX, pivotY) {\n this.rotateContext(canvas, obj.angle, pivotX, pivotY);\n var image = new Image();\n image.src = obj.source;\n this.image(ctx, image, obj.x, obj.y, obj.width, obj.height, obj);\n };\n /**\n * Draw the image element for the diagram\\\n *\n * @returns {void} Draw the image element for the diagram .\n * @param { SVGElement | HTMLCanvasElement} canvas - Provide the SVG element .\n * @param {ImageAttributes} obj - Provide the image attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {boolean} fromPalette - Provide the pointer event value .\n * @private\n */\n CanvasRenderer.prototype.drawImage = function (canvas, obj, parentSvg, fromPalette) {\n var _this = this;\n if (obj.visible) {\n var ctx_1 = CanvasRenderer.getContext(canvas);\n ctx_1.save();\n var pivotX_1 = obj.x + obj.width * obj.pivotX;\n var pivotY_1 = obj.y + obj.height * obj.pivotY;\n var imageObj = new Image();\n imageObj.src = obj.source;\n var id = ctx_1.canvas.id.split('_');\n // eslint-disable-next-line\n var value = id[id.length - 1] === ('diagram' || 'diagramLayer') ? true : false;\n // eslint-disable-next-line\n /**\n * Since Clipping portion for node with slice option is not calculated properly\n * if (obj.sourceX !== undefined && obj.sourceY !== undefined && obj.sourceWidth !== undefined\n * && obj.sourceHeight !== undefined) {\n * ctx.drawImage(imageObj, obj.sourceX, obj.sourceY, obj.sourceWidth, obj.sourceHeight, obj.x, obj.y, obj.width, obj.height);\n * } else {\n * ctx.drawImage(imageObj, obj.x, obj.y, obj.width, obj.height);\n * }\n */\n if (!fromPalette) {\n this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n }\n else {\n imageObj.onload = function () {\n _this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n };\n }\n ctx_1.restore();\n }\n };\n CanvasRenderer.prototype.image = function (ctx, image, x, y, width, height, alignOptions) {\n ctx.beginPath();\n var srcWidth = image.width;\n var srcHeight = image.height;\n var destinationW = width;\n var destinationH = height;\n var resultWidth = 0;\n var resultHeight = 0;\n if (alignOptions && alignOptions.alignment !== 'None') {\n var xalign = alignOptions.alignment.toLowerCase().substr(1, 3);\n var yalign = alignOptions.alignment.toLowerCase().substr(5, 3);\n if (alignOptions.scale === 'Slice') {\n // eslint-disable-next-line\n var a = function () {\n resultWidth = destinationW;\n resultHeight = srcHeight * destinationW / srcWidth;\n };\n // eslint-disable-next-line\n var b = function () {\n resultWidth = srcWidth * destinationH / srcHeight;\n resultHeight = destinationH;\n };\n if (destinationW > destinationH) {\n a();\n if (destinationH > resultHeight) {\n b();\n }\n }\n else if (destinationW === destinationH) {\n if (srcWidth > srcHeight) {\n b();\n }\n else {\n a();\n }\n }\n else {\n b();\n if (destinationW > resultWidth) {\n a();\n }\n }\n var x1 = this.getSliceOffset(xalign, resultWidth, destinationW, srcWidth);\n var y1 = this.getSliceOffset(yalign, resultHeight, destinationH, srcHeight);\n var sWidth = srcWidth - x1;\n var sHeight = srcHeight - y1;\n var dWidth = resultWidth - (x1 * (resultWidth / srcWidth));\n var dHeight = resultHeight - (y1 * (resultHeight / srcHeight));\n var canvas1 = createHtmlElement('canvas', { 'width': width.toString(), 'height': height.toString() });\n var ctx1 = canvas1.getContext('2d');\n ctx1.drawImage(image, x1, y1, sWidth, sHeight, 0, 0, dWidth, dHeight);\n ctx.drawImage(canvas1, x, y, width, height);\n }\n else if (alignOptions.scale === 'Meet') {\n var srcRatio = (srcHeight / srcWidth);\n var destRatio = (destinationH / destinationW);\n resultWidth = destRatio > srcRatio ? destinationW : destinationH / srcRatio;\n resultHeight = destRatio > srcRatio ? destinationW * srcRatio : destinationH;\n x += this.getMeetOffset(xalign, resultWidth, destinationW);\n y += this.getMeetOffset(yalign, resultHeight, destinationH);\n ctx.drawImage(image, 0, 0, srcWidth, srcHeight, x, y, resultWidth, resultHeight);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n }\n else if (alignOptions.flip !== 'None') {\n var scaleX = 1;\n var scaleY = 1;\n if (alignOptions.flip === 'Horizontal' || alignOptions.flip === 'Both') {\n x = -x;\n width = -width;\n scaleX = -1;\n }\n if (alignOptions.flip === 'Vertical' || alignOptions.flip === 'Both') {\n y = -y;\n height = -height;\n scaleY = -1;\n }\n ctx.scale(scaleX, scaleY);\n ctx.drawImage(image, x, y, width, height);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n ctx.closePath();\n };\n CanvasRenderer.prototype.getSliceOffset = function (arg, res, dest, src) {\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (res - dest) / 2 * src / res;\n case 'max': return (res - dest) * src / res;\n default: return 0;\n }\n };\n CanvasRenderer.prototype.getMeetOffset = function (arg, res, dest) {\n var max = Math.max(res, dest);\n var min = Math.min(res, dest);\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (max - min) / 2;\n case 'max': return max - min;\n default: return 0;\n }\n };\n //end region\n // vector magnitude\n CanvasRenderer.prototype.m = function (v) { return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2)); };\n // ratio between two vectors\n CanvasRenderer.prototype.r = function (u, v) { return (u[0] * v[0] + u[1] * v[1]) / (this.m(u) * this.m(v)); };\n // angle between two vectors\n CanvasRenderer.prototype.a = function (u, v) { return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(this.r(u, v)); };\n // text utility\n /**\n * Draw the SVG label.\\\n *\n * @returns {PointModel} Draw the SVG label .\n * @param {TextAttributes} text - Provide the canvas element .\n * @param {Object} wrapBounds - Provide the canvas element .\n * @param {SubTextElement []} childNodes - Provide the canvas element .\n * @private\n */\n CanvasRenderer.prototype.labelAlign = function (text, wrapBounds, childNodes) {\n var bounds = new Size(wrapBounds.width, childNodes.length * (text.fontSize * 1.2));\n var position = { x: 0, y: 0 };\n var labelX = text.x;\n var labelY = text.y;\n var offsetx = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointx = offsetx;\n var pointy = offsety;\n if (text.textAlign === 'left') {\n pointx = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBounds.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n if (text.textWrapping === 'NoWrap') {\n pointx = 0;\n }\n else {\n pointx = text.width * 0.5;\n }\n }\n else {\n pointx = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointx = (text.width * 1);\n }\n position.x = labelX + pointx + (wrapBounds ? wrapBounds.x : 0);\n position.y = labelY + pointy - bounds.height / 2;\n return position;\n };\n return CanvasRenderer;\n}());\nexport { CanvasRenderer };\n","import { Point } from './../primitives/point';\nimport { Size } from './../primitives/size';\nimport { pathSegmentCollection, processPathData } from './../utility/path-util';\nimport { setAttributeSvg, setChildPosition } from './../utility/dom-util';\nimport { overFlow, wordBreakToString, cornersPointsBeforeRotation } from './../utility/base-util';\nimport { CanvasRenderer } from './../rendering/canvas-renderer';\nimport { DiagramNativeElement } from '../core/elements/native-element';\nimport { createSvgElement, createHtmlElement, getBackgroundLayerSvg } from '../utility/dom-util';\nimport { removeGradient, checkBrowserInfo } from '../utility/diagram-util';\nimport { isBlazor } from '@syncfusion/ej2-base';\n/**\n * SVG Renderer\n */\n/** @private */\nvar SvgRenderer = /** @class */ (function () {\n function SvgRenderer() {\n }\n /**\n * Draw the shawdow for the rectangle shape in diagram \\\n *\n * @returns {void} Draw the shawdow for the rectangle shape in diagram .\\\n *\n * @param { SVGElement} options - Provide the base attributes .\n * @param { RectAttributes} canvas - Provide the canvas values .\n * @param { string} collection - Provide the collection value.\n * @param { boolean} parentSvg - Provide the parent SVG values .\n * @private\n */\n SvgRenderer.prototype.renderShadow = function (options, canvas, collection, parentSvg) {\n if (collection === void 0) { collection = null; }\n var pointModel = { x: 0, y: 0 };\n var point = Point.transform(pointModel, options.shadow.angle, options.shadow.distance);\n //const tX: number = options.x + point.x; const tY: number = options.y + point.y;\n //let pivotX: number = tX + options.width * options.pivotX;\n //let pivotY: number = tY + options.height * options.pivotY;\n var type;\n var shadowElement;\n if (parentSvg) {\n shadowElement = parentSvg.getElementById(canvas.id + '_shadow');\n }\n if (!shadowElement) {\n type = collection ? 'path' : 'rect';\n shadowElement = document.createElementNS('http://www.w3.org/2000/svg', type);\n canvas.appendChild(shadowElement);\n }\n var attr = {\n 'id': canvas.id + '_shadow', 'fill': options.shadow.color, 'stroke': options.shadow.color,\n 'opacity': options.shadow.opacity.toString(),\n 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' +\n 'translate(' + (options.x + point.x) + ',' + (options.y + point.y) + ')'\n };\n if (parentSvg) {\n var svgContainer = parentSvg.getElementById(canvas.id);\n if (svgContainer) {\n svgContainer.insertBefore(shadowElement, svgContainer.firstChild);\n }\n }\n setAttributeSvg(shadowElement, attr);\n if (!collection) {\n setAttributeSvg(shadowElement, { 'width': options.width, 'height': options.height });\n }\n else if (collection) {\n this.renderPath(shadowElement, options, collection);\n }\n };\n /**\n * Return the dashed array values \\\n *\n * @returns {number[]} Return the dashed array values .\\\n * @param { SVGElement} dashArray - Return the dashed array values .\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n SvgRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n return dashes;\n };\n /**\n * Draw the Rectangle for the diagram \\\n *\n * @returns {void} Draw the Rectangle for the diagram .\\\n *\n * @param { SVGElement} svg - Provide the SVG .\n * @param { RectAttributes} options - Provide the Rect attributes .\n * @param { string} diagramId - Provide the diagram id .\n * @param { boolean} onlyRect - Provide the boolean attribute for the shawdow rendering .\n * @param { boolean} isSelector - Provide the selector possobilities .\n * @param { SVGSVGElement} parentSvg - Provide the parent svg element .\n * @param { Object} ariaLabel - Provide the Arial label attributes .\n * @param { boolean} isCircularHandle - Provide the boolean attribute for the circular handle .\n * @param { number} enableSelector - Provide the selector possobilities .\n * @private\n */\n SvgRenderer.prototype.drawRectangle = function (svg, options, diagramId, onlyRect, isSelector, parentSvg, ariaLabel, isCircularHandle, enableSelector) {\n if (options.shadow && !onlyRect) {\n this.renderShadow(options, svg, undefined, parentSvg);\n }\n var id;\n if (options.id === svg.id) {\n id = options.id + '_container';\n }\n else {\n id = options.id;\n }\n var rect;\n if (parentSvg) {\n rect = parentSvg.getElementById(id);\n }\n if (!rect || isSelector) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n svg.appendChild(rect);\n }\n var shadowElement;\n if (parentSvg && !options.shadow) {\n shadowElement = parentSvg.getElementById(options.id + '_groupElement_shadow');\n if (shadowElement) {\n shadowElement.parentNode.removeChild(shadowElement);\n }\n }\n var attr;\n // EJ2-65895 - Added below code to calculate the transform to render the circular handle\n if (isCircularHandle) {\n attr = {\n 'id': id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden',\n 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width / 2) + ',' + (options.y + options.height / 2) + ')',\n 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity\n };\n }\n else {\n attr = {\n 'id': id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden',\n 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity\n };\n }\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n var classval = options.class || '';\n if (!enableSelector) {\n if (classval.includes('e-diagram-resize-handle') || classval.includes('e-diagram-endpoint-handle') || classval.includes('e-diagram-bezier-control-handle')) {\n classval += ' e-disabled';\n }\n }\n if (options.class) {\n attr['class'] = classval;\n }\n var poiterEvents = 'pointer-events';\n if (!ariaLabel) {\n attr[\"\" + poiterEvents] = 'none';\n }\n setAttributeSvg(rect, attr);\n this.setSvgStyle(rect, options, diagramId);\n };\n /**\n * Update the diagram selection region \\\n *\n * @returns {void} Update the diagram selection region .\\\n *\n * @param { SVGElement} gElement - Provide the element type.\n * @param { RectAttributes} options - Provide the Rect attributes .\n * @private\n */\n SvgRenderer.prototype.updateSelectionRegion = function (gElement, options) {\n var rect;\n rect = gElement.parentNode.getElementById(options.id);\n var attr = {\n 'id': options.id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n class: 'e-diagram-selected-region'\n };\n if (!rect) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n gElement.appendChild(rect);\n }\n this.setSvgStyle(rect, options);\n setAttributeSvg(rect, attr);\n };\n /**\n * Create the g element for the diagram \\\n *\n * @returns {SVGGElement} Create the g element for the diagram .\\\n *\n * @param { SVGElement} elementType - Provide the element type.\n * @param { Object} attribute - Provide the attributes for the g element.\n * @private\n */\n SvgRenderer.prototype.createGElement = function (elementType, attribute) {\n var gElement = createSvgElement(elementType, attribute);\n return gElement;\n };\n /**\n * Draw the line for the diagram\\\n *\n * @returns {void} Draw the line for the diagram .\\\n *\n * @param { SVGElement} gElement - Provide the g element .\n * @param { LineAttributes} options - Provide the line element attributes .\n * @private\n */\n SvgRenderer.prototype.drawLine = function (gElement, options) {\n var line = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n this.setSvgStyle(line, options);\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n //const kk: string = '';\n var attr = {\n 'id': options.id,\n 'x1': options.startPoint.x + options.x,\n 'y1': options.startPoint.y + options.y,\n 'x2': options.endPoint.x + options.x,\n 'y2': options.endPoint.y + options.y,\n 'stroke': options.stroke,\n 'stroke-width': options.strokeWidth.toString(), 'opacity': options.opacity.toString(),\n 'transform': 'rotate(' + options.angle + ' ' + pivotX + ' ' + pivotY + ')',\n 'visibility': options.visible ? 'visible' : 'hidden'\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(line, attr);\n gElement.appendChild(line);\n };\n /**\n * Draw the circle for the diagram\\\n *\n * @returns {void} Draw the circle for the diagram .\\\n *\n * @param { SVGElement} gElement - Provide the g element .\n * @param { CircleAttributes} options - Provide the circle element attributes .\n * @param {string} enableSelector - Provide the selector constraints string .\n * @param {Object} ariaLabel - Provide arial label value .\n * @private\n */\n SvgRenderer.prototype.drawCircle = function (gElement, options, enableSelector, ariaLabel) {\n var circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n this.setSvgStyle(circle, options);\n var classval = options.class || '';\n if (!enableSelector) {\n classval += ' e-disabled';\n }\n var attr = {\n 'id': options.id,\n 'cx': options.centerX,\n 'cy': options.centerY,\n 'r': options.radius,\n 'visibility': options.visible ? 'visible' : 'hidden',\n 'class': classval\n };\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n circle.style.display = options.visible ? 'block' : 'none';\n setAttributeSvg(circle, attr);\n gElement.appendChild(circle);\n };\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} svg - Provide the SVG element .\n * @param { PathAttributes} options - Provide the path element attributes .\n * @param {string} diagramId - Provide the diagram id .\n * @param {boolean} isSelector - Provide selector boolean value .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {Object} ariaLabel - Provide arial label value .\n * @param {number} scale - Provide the scale value .\n * @private\n */\n SvgRenderer.prototype.drawPath = function (svg, options, diagramId, isSelector, parentSvg, ariaLabel, scale) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var x = Math.floor((Math.random() * 10) + 1);\n //const id: string = svg.id + '_shape' + x.toString();\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n if (options.shadow) {\n this.renderShadow(options, svg, collection, parentSvg);\n }\n var shadowElement;\n if (parentSvg && !options.shadow) {\n shadowElement = parentSvg.getElementById(options.id + '_groupElement_shadow');\n if (shadowElement) {\n shadowElement.parentNode.removeChild(shadowElement);\n }\n }\n var path;\n if (parentSvg) {\n path = parentSvg.getElementById(options.id);\n }\n if (!path || isSelector) {\n path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svg.appendChild(path);\n }\n this.renderPath(path, options, collection);\n var attr = {};\n if (scale) {\n attr = {\n 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + '),scale(' + scale + ')',\n 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity\n };\n }\n else {\n attr = {\n 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + ')',\n 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity\n };\n }\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(path, attr);\n this.setSvgStyle(path, options, diagramId);\n };\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} svg - Provide the SVG element .\n * @param {PathAttributes} options - Provide the path element attributes .\n * @param {Object[]} collection - Provide the parent SVG element .\n * @private\n */\n SvgRenderer.prototype.renderPath = function (svg, options, collection) {\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var segments = collection;\n var d = '';\n for (x = 0, y = 0, i = 0, length = segments.length; i < length; ++i) {\n var obj = segments[parseInt(i.toString(), 10)];\n var segment = obj;\n var char = segment.command;\n if ('x1' in segment) {\n x1 = segment.x1;\n }\n if ('x2' in segment) {\n x2 = segment.x2;\n }\n if ('y1' in segment) {\n y1 = segment.y1;\n }\n if ('y2' in segment) {\n y2 = segment.y2;\n }\n if ('x' in segment) {\n x = segment.x;\n }\n if ('y' in segment) {\n y = segment.y;\n }\n switch (char) {\n case 'M':\n d = d + 'M' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'L':\n d = d + 'L' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'C':\n d = d + 'C' + x1.toString() + ',' + y1.toString() + ',' + x2.toString() + ',' + y2.toString() + ',';\n d += x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Q':\n d = d + 'Q' + x1.toString() + ',' + y1.toString() + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'A':\n d = d + 'A' + segment.r1.toString() + ',' + segment.r2.toString() + ',' + segment.angle.toString() + ',';\n d += segment.largeArc.toString() + ',' + segment.sweep + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Z':\n case 'z':\n d = d + 'Z' + ' ';\n break;\n }\n }\n svg.setAttribute('d', d);\n };\n SvgRenderer.prototype.setSvgFontStyle = function (text, options) {\n text.style.fontStyle = options.italic ? 'italic' : 'normal';\n text.style.fontWeight = options.bold ? 'bold' : 'normal';\n text.style.fontSize = options.fontSize.toString() + 'px';\n text.style.fontFamily = options.fontFamily;\n };\n /**\n * Draw the text element for the diagram\\\n *\n * @returns {void} Draw the text element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param {TextAttributes} options - Provide the text element attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {Object} ariaLabel - Provide the label properties .\n * @param {string} diagramId - Provide the diagram id .\n * @param {number} scaleValue - Provide the scale value .\n * @param {Container} parentNode - Provide the parent node .\n * @private\n */\n SvgRenderer.prototype.drawText = function (canvas, options, parentSvg, ariaLabel, diagramId, scaleValue, parentNode) {\n if (options.content !== undefined) {\n var textNode = void 0;\n var childNodes = void 0;\n var wrapBounds = void 0;\n var position = void 0;\n var child = void 0;\n var tspanElement = void 0;\n var offsetX = 0;\n var offsetY = 0;\n var i = 0;\n var text = void 0;\n var nodeContent = void 0;\n if (parentSvg) {\n text = parentSvg.getElementById(options.id + '_text');\n }\n if (text) {\n if (options.doWrap) {\n while (text.firstChild) {\n text.removeChild(text.firstChild);\n }\n }\n }\n else {\n options.doWrap = true;\n text = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n if (options.whiteSpace === 'pre-wrap') {\n text.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n }\n if (parentNode) {\n nodeContent = document.getElementById(parentNode.id + '_content_groupElement');\n }\n if (nodeContent && parentNode && parentNode.children && parentNode.children[0] instanceof DiagramNativeElement) {\n var textTag = this.createGElement('g', { id: ariaLabel + '_groupElement' });\n nodeContent.appendChild(textTag);\n textTag.appendChild(text);\n }\n else {\n canvas.appendChild(text);\n }\n }\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n var childNodesHeight = 0;\n if (options.doWrap || options.textOverflow !== 'Wrap') {\n //(EJ2-70658)- Node annotation disappear, while giving same id for annotation in two different diagrams\n //Added the below code for removing the extra span element that added when we double click the text annotation node\n while (text.firstChild) {\n text.removeChild(text.firstChild);\n }\n this.setSvgStyle(text, options, diagramId);\n this.setSvgFontStyle(text, options);\n textNode = document.createTextNode(options.content);\n childNodes = options.childNodes;\n wrapBounds = options.wrapBounds;\n position = this.svgLabelAlign(options, wrapBounds, childNodes);\n if (wrapBounds.width > options.width && options.textOverflow !== 'Wrap' && options.textWrapping === 'NoWrap') {\n childNodes[0].text = overFlow(options.content, options);\n }\n for (i = 0; i < childNodes.length; i++) {\n tspanElement = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n textNode = document.createTextNode(childNodes[parseInt(i.toString(), 10)].text);\n child = childNodes[parseInt(i.toString(), 10)];\n child.x = setChildPosition(child, childNodes, i, options);\n offsetX = position.x + child.x - wrapBounds.x;\n offsetY = position.y + child.dy * (i) + ((options.fontSize) * 0.8);\n if ((options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') &&\n (options.textWrapping === 'WrapWithOverflow' || options.textWrapping === 'Wrap') && parentNode) {\n var size = (options.isHorizontalLane) ? parentNode.actualSize.width : parentNode.actualSize.height;\n if (offsetY < size) {\n if (options.textOverflow === 'Ellipsis' && childNodes[i + 1]) {\n var temp = childNodes[i + 1];\n var y = position.y + temp.dy * (i + 1) + ((options.fontSize) * 0.8);\n if (y > size) {\n child.text = child.text.slice(0, child.text.length - 3);\n child.text = child.text.concat('...');\n textNode.data = child.text;\n }\n }\n this.setText(text, tspanElement, child, textNode, offsetX, offsetY);\n childNodesHeight += child.dy;\n }\n else {\n break;\n }\n }\n else {\n this.setText(text, tspanElement, child, textNode, offsetX, offsetY);\n }\n }\n }\n if (childNodesHeight && options.isHorizontalLane) {\n pivotX = options.parentOffsetX + options.pivotX;\n pivotY = options.parentOffsetY + options.pivotY;\n options.y = options.parentOffsetY - childNodesHeight * options.pivotY + 0.5;\n }\n if (options.textDecoration && options.textDecoration === 'LineThrough') {\n options.textDecoration = wordBreakToString(options.textDecoration);\n }\n var attr = {\n 'id': options.id + '_text', 'fill': options.color, 'visibility': options.visible ? 'visible' : 'hidden',\n 'text-decoration': options.textDecoration, 'transform': 'rotate(' + options.angle + ','\n + (pivotX) + ',' + (pivotY) + ')'\n + 'translate(' + (options.x) + ',' + (options.y) + ')', 'opacity': options.opacity\n };\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n setAttributeSvg(text, attr);\n }\n };\n SvgRenderer.prototype.setText = function (text, tspanElement, child, textNode, offsetX, offsetY) {\n setAttributeSvg(tspanElement, { 'x': offsetX.toString(), 'y': offsetY.toString() });\n text.setAttribute('fill', child.text);\n tspanElement.appendChild(textNode);\n text.appendChild(tspanElement);\n };\n /**\n * Draw the image element for the diagram\\\n *\n * @returns {void} Draw the image element for the diagram .\n * @param { SVGElement | HTMLCanvasElement} canvas - Provide the SVG element .\n * @param {ImageAttributes} obj - Provide the image attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {boolean} fromPalette - Provide the pointer event value .\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n SvgRenderer.prototype.drawImage = function (canvas, obj, parentSvg, fromPalette) {\n ///const id: string = obj.id + '_image';\n var image;\n if (parentSvg) {\n image = parentSvg.getElementById(obj.id + 'image');\n }\n if (!image) {\n image = document.createElementNS('http://www.w3.org/2000/svg', 'image');\n canvas.appendChild(image);\n }\n var imageObj = new Image();\n imageObj.src = obj.source;\n var scale = obj.scale !== 'None' ? obj.scale : '';\n if (isBlazor() && obj.alignment === 'None' && scale === 'Stretch') {\n scale = '';\n }\n var imgAlign = obj.alignment;\n var aspectRatio = imgAlign.charAt(0).toLowerCase() + imgAlign.slice(1);\n if (scale !== 'Stretch') {\n aspectRatio += ' ' + scale.charAt(0).toLowerCase() + scale.slice(1);\n }\n var attr = {\n 'id': obj.id + 'image', 'x': obj.x.toString(), 'y': obj.y.toString(), 'transform': 'rotate(' + obj.angle + ','\n + (obj.x + obj.width * obj.pivotX) + ',' + (obj.y + obj.height * obj.pivotY) + ')',\n 'width': obj.width.toString(), 'visibility': obj.visible ? 'visible' : 'hidden',\n 'height': obj.height.toString(), 'preserveAspectRatio': aspectRatio,\n //832073 - Opacity when set to Zero for image node is not working \n //opacity value is already set as '1' by default\n 'opacity': obj.opacity.toString()\n };\n setAttributeSvg(image, attr);\n image.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', imageObj.src.toString());\n };\n /**\n * Draw the HTML element for the diagram\\\n *\n * @returns {void} Draw the native element for the diagram.\n * @param {DiagramHtmlElement} element - Provide the element .\n * @param {HTMLElement} canvas - Provide the canvas element .\n * @param {Transforms} transform - Provide the transform value .\n * @param {boolean} value - Provide the pointer event value .\n * @param {number} indexValue - Provide the index value .\n * @private\n */\n SvgRenderer.prototype.drawHTMLContent = function (element, canvas, transform, value, indexValue) {\n var htmlElement;\n var parentHtmlElement;\n if (canvas) {\n var i = void 0;\n var j = void 0;\n var parentElement = void 0;\n for (i = 0; i < canvas.childNodes.length; i++) {\n parentElement = canvas.childNodes[parseInt(i.toString(), 10)];\n for (j = 0; j < parentElement.childNodes.length; j++) {\n if (parentElement.childNodes[parseInt(j.toString(), 10)].id === element.id + '_html_element') {\n htmlElement = parentElement.childNodes[parseInt(j.toString(), 10)];\n break;\n }\n }\n }\n }\n if (!htmlElement) {\n parentHtmlElement = canvas.querySelector(('#' + element.id + '_html_element')) ||\n canvas.querySelector(('#' + element.nodeId + '_html_element'));\n if (!parentHtmlElement) {\n var attr_1 = {\n 'id': element.nodeId + '_html_element',\n 'class': 'foreign-object'\n };\n parentHtmlElement = createHtmlElement('div', attr_1);\n }\n var attr = {\n 'id': element.id + '_html_element',\n 'class': 'foreign-object'\n };\n htmlElement = createHtmlElement('div', attr);\n var isOverviewLayer = false;\n if (canvas.parentNode && canvas.parentNode.parentNode && canvas.parentNode.parentNode.parentNode && canvas.parentNode.parentNode.parentNode.classList.contains('e-overview')) {\n isOverviewLayer = true;\n }\n if (isOverviewLayer) {\n htmlElement.appendChild(element.template.cloneNode(true));\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n element.isTemplate ? htmlElement.appendChild(element.template) : htmlElement.appendChild(element.template.cloneNode(true));\n }\n if (indexValue !== undefined && canvas.childNodes.length > indexValue) {\n canvas.insertBefore(htmlElement, canvas.childNodes[parseInt(indexValue.toString(), 10)]);\n }\n parentHtmlElement.appendChild(htmlElement);\n canvas.appendChild(parentHtmlElement);\n }\n var point = cornersPointsBeforeRotation(element).topLeft;\n htmlElement.setAttribute('style', 'height:' + (element.actualSize.height) + 'px; width:' + (element.actualSize.width) +\n 'px;left:' + point.x + 'px; top:' + point.y + 'px;' +\n 'position:absolute;transform:rotate(' + (element.rotateAngle + element.parentTransform) + 'deg);' +\n 'pointer-events:' + (value ? 'all' : 'none')\n + ';visibility:' + ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n };\n /**\n * Draw the native element for the diagram\\\n *\n * @returns {void} Draw the native element for the diagram.\n * @param {DiagramNativeElement} element - Provide the node element .\n * @param {HTMLCanvasElement} canvas - Provide the SVG element .\n * @param {number} height - Provide the height for the shape .\n * @param {number} width - Provide the width for the shape .\n * @param {SVGSVGElement} parentSvg - Provide the parent svg for the shape .\n * @private\n */\n SvgRenderer.prototype.drawNativeContent = function (element, canvas, height, width, parentSvg) {\n var nativeElement;\n var clipPath;\n if (parentSvg) {\n nativeElement = parentSvg.getElementById(element.id + '_native_element');\n clipPath = parentSvg.getElementById(element.id + '_clip');\n }\n if (!nativeElement) {\n nativeElement = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n nativeElement.setAttribute('id', element.id + '_native_element');\n nativeElement.appendChild(element.template.cloneNode(true));\n var svgContentTag = this.createGElement('g', { id: element.id + '_inner_native_element' });\n svgContentTag.appendChild(nativeElement);\n canvas.appendChild(svgContentTag);\n }\n if (clipPath) {\n nativeElement.removeChild(clipPath);\n }\n nativeElement.setAttribute('style', 'visibility:' +\n ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n this.setNativTransform(element, nativeElement, height, width);\n if (element.scale === 'Slice') {\n this.drawClipPath(element, nativeElement, height, width, parentSvg);\n }\n setAttributeSvg(nativeElement, element.description ? { 'role': 'img', 'aria-label': element.description } : {});\n };\n SvgRenderer.prototype.setNativTransform = function (element, nativeElement, height, width) {\n //let angle: number;\n var contentWidth = element.contentSize.width !== 0 ? element.contentSize.width : 1;\n var contentHeight = element.contentSize.height !== 0 ? element.contentSize.height : 1;\n var x = element.templatePosition.x * width / contentWidth;\n var y = element.templatePosition.y * height / contentHeight;\n nativeElement.setAttribute('transform', 'rotate(' + element.parentTransform + ',' + element.offsetX + ',' + element.offsetY +\n ') translate(' + (element.offsetX - x - width * element.pivot.x) + ',' + (element.offsetY - y - height * element.pivot.y) +\n ') scale(' + (width / contentWidth) + ',' + (height / contentHeight) + ')');\n };\n /**\n *used to crop the given native element into a rectangle of the given size .\\\n *\n * @returns {SVGElement} used to crop the given native element into a rectangle of the given size.\n * @param {DiagramNativeElement} node - Provide the node element .\n * @param {SVGElement} group - Provide the SVG element .\n * @param {number} height - Provide the height for the shape .\n * @param {number} width - Provide the width for the shape .\n * @param {SVGSVGElement} parentSvg - Provide the parent svg for the shape .\n * @private\n */\n SvgRenderer.prototype.drawClipPath = function (node, group, height, width, parentSvg) {\n var contentWidth = node.contentSize.width;\n var contentHeight = node.contentSize.height;\n //let actualWidth: number = node.actualSize.width;\n //let actualHeight: number = node.actualSize.height;\n var clipWidth = node.width / (width / contentWidth);\n var clipHeight = node.height / (height / contentHeight);\n var x = node.templatePosition.x + (node.width >= node.height ? 0 : (contentWidth - clipWidth) / 2);\n var y = node.templatePosition.y + (node.height >= node.width ? 0 : (contentHeight - clipHeight) / 2);\n var clipPath = parentSvg.getElementById(node.id + '_clip');\n clipPath = document.createElementNS('http://www.w3.org/2000/svg', 'clipPath');\n clipPath.setAttribute('id', node.id + '_clip');\n group.appendChild(clipPath);\n var rect = parentSvg.getElementById(node.id + '_clip_rect');\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n clipPath.appendChild(rect);\n var attr = {\n 'id': node.id + '_clip_rect', 'width': clipWidth.toString(), 'height': clipHeight.toString(),\n 'x': x.toString(), 'y': y.toString()\n };\n setAttributeSvg(rect, attr);\n if (checkBrowserInfo()) {\n group.setAttribute('clip-path', 'url(' + location.protocol + '//' + location.host + location.pathname +\n '#' + node.id + '_clip)');\n }\n else {\n group.setAttribute('clip-path', 'url(#' + node.id + '_clip)');\n }\n return group;\n };\n /**\n * Draw the gradient for the diagram shapes .\\\n *\n * @returns {SVGElement} Draw the gradient for the diagram shapes.\n * @param {StyleAttributes} options - Provide the options for the gradient element .\n * @param {SVGElement} svg - Provide the SVG element .\n * @param {string} diagramId - Provide the diagram id .\n * @private\n */\n SvgRenderer.prototype.renderGradient = function (options, svg, diagramId) {\n var max;\n var min;\n var grd;\n var svgContainer = getBackgroundLayerSvg(diagramId);\n var defs = svgContainer.getElementById(diagramId + 'gradient_pattern');\n if (!defs) {\n defs = createSvgElement('defs', { id: diagramId + 'gradient_pattern' });\n svgContainer.insertBefore(defs, svgContainer.firstChild);\n }\n var radial;\n var linear; //let stop: StopModel; let offset: number;\n removeGradient(svg.id);\n if (options.gradient.type !== 'None') {\n for (var i = 0; i < options.gradient.stops.length; i++) {\n max = !max ? options.gradient.stops[parseInt(i.toString(), 10)].offset : Math.max(max, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n min = !min ? options.gradient.stops[parseInt(i.toString(), 10)].offset : Math.min(min, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n }\n if (options.gradient.type === 'Linear') {\n linear = options.gradient;\n linear.id = svg.id + '_linear';\n grd = this.createLinearGradient(linear);\n defs.appendChild(grd);\n }\n else {\n radial = options.gradient;\n radial.id = svg.id + '_radial';\n grd = this.createRadialGradient(radial);\n defs.appendChild(grd);\n }\n for (var i = 0; i < options.gradient.stops.length; i++) {\n var stop_1 = options.gradient.stops[parseInt(i.toString(), 10)];\n var offset = min < 0 ? (max + stop_1.offset) / (2 * max) : stop_1.offset / max;\n var stopElement = document.createElementNS('http://www.w3.org/2000/svg', 'stop');\n setAttributeSvg(stopElement, { 'offset': offset.toString(), 'style': 'stop-color:' + stop_1.color });\n grd.appendChild(stopElement);\n }\n }\n return grd;\n };\n /**\n * Draw the Linear gradient for the diagram .\\\n *\n * @returns {SVGElement} Draw the Linear gradient for the diagram.\n * @param {LinearGradientModel} linear - Provide the objects for the gradient element .\n * @private\n */\n SvgRenderer.prototype.createLinearGradient = function (linear) {\n var lineargradient = document.createElementNS('http://www.w3.org/2000/svg', 'linearGradient');\n var attr = {\n 'id': linear.id, 'x1': linear.x1 + '%', 'y1': linear.y1 + '%', 'x2': linear.x2 + '%', 'y2': linear.y2 + '%'\n };\n setAttributeSvg(lineargradient, attr);\n return lineargradient;\n };\n /**\n * Draw the radial gradient for the diagram .\\\n *\n * @returns {SVGElement} Draw the radial gradient for the diagram.\n * @param {RadialGradientModel} radial - Provide the objects for the gradient element .\n * @private\n */\n SvgRenderer.prototype.createRadialGradient = function (radial) {\n var radialgradient = document.createElementNS('http://www.w3.org/2000/svg', 'radialGradient');\n var attr = {\n 'id': radial.id, 'cx': radial.cx + '%', 'cy': radial.cy + '%', 'r': radial.r + '%', 'fx': radial.fx + '%', 'fy': radial.fy + '%'\n };\n setAttributeSvg(radialgradient, attr);\n return radialgradient;\n };\n /**\n * Set the SVG style for the SVG elements in the diagram.\\\n *\n * @returns {void}\n * @param {SVGElement} svg - Provide the canvas element .\n * @param {StyleAttributes} style - Provide the canvas element .\n * @param {string} diagramId - Provide the canvas element .\n * @private\n */\n SvgRenderer.prototype.setSvgStyle = function (svg, style, diagramId) {\n if (style.canApplyStyle || style.canApplyStyle === undefined) {\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n var dashArray = [];\n var fill = void 0;\n if (style.dashArray) {\n var canvasRenderer = new CanvasRenderer();\n dashArray = canvasRenderer.parseDashArray(style.dashArray);\n }\n if (style.gradient && style.gradient.type !== 'None' && diagramId) {\n var grd = this.renderGradient(style, svg, diagramId);\n if (checkBrowserInfo()) {\n fill = 'url(' + location.protocol + '//' + location.host + location.pathname + '#' + grd.id + ')';\n }\n else {\n fill = 'url(#' + grd.id + ')';\n }\n }\n else {\n fill = style.fill;\n }\n if (style.stroke) {\n svg.setAttribute('stroke', style.stroke);\n }\n if (style.strokeWidth !== undefined && style.strokeWidth !== null) {\n svg.setAttribute('stroke-width', style.strokeWidth.toString());\n }\n if (dashArray) {\n svg.setAttribute('stroke-dasharray', dashArray.toString() || 'none');\n }\n if (fill) {\n svg.setAttribute('fill', fill);\n }\n }\n };\n //end region\n // text utility\n /**\n * Draw the SVG label.\\\n *\n * @returns {PointModel} Draw the SVG label .\n * @param {TextAttributes} text - Provide the canvas element .\n * @param {Object} wrapBound - Provide the canvas element .\n * @param {SubTextElement []} childNodes - Provide the canvas element .\n * @private\n */\n SvgRenderer.prototype.svgLabelAlign = function (text, wrapBound, childNodes) {\n var bounds = new Size(wrapBound.width, childNodes.length * (text.fontSize * 1.2));\n var pos = { x: 0, y: 0 };\n var x = 0;\n var y = 1.2;\n var offsetX = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointX = offsetX;\n var pointY = offsety;\n if (text.textAlign === 'left') {\n pointX = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBound.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n if (text.textWrapping === 'NoWrap') {\n pointX = 0;\n }\n else {\n pointX = text.width * 0.5;\n }\n }\n else {\n pointX = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointX = (text.width * 1);\n }\n pos.x = x + pointX + (wrapBound ? wrapBound.x : 0);\n pos.y = y + pointY - bounds.height / 2;\n return pos;\n };\n return SvgRenderer;\n}());\nexport { SvgRenderer };\n","import { PathElement } from '../core/elements/path-element';\nimport { ImageElement } from '../core/elements/image-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { Container } from '../core/containers/container';\nimport { rotateMatrix, identityMatrix, transformPointByMatrix } from '../primitives/matrix';\nimport { Size } from '../primitives/size';\nimport { wordBreakToString, whiteSpaceToString, textAlignToString, randomId } from '../utility/base-util';\nimport { getUserHandlePosition, canShowCorner, getInterval, getSpaceValue, canShowControlPoints } from '../utility/diagram-util';\nimport { getDiagramElement, getAdornerLayer, getGridLayer, getHTMLLayer, updatePath } from '../utility/dom-util';\nimport { measurePath, getBackgroundLayerSvg, getBackgroundImageLayer, setAttributeSvg } from '../utility/dom-util';\nimport { SnapConstraints, RendererAction } from '../enum/enum';\nimport { ThumbsConstraints, SelectorConstraints, ElementAction } from '../enum/enum';\nimport { SvgRenderer } from './svg-renderer';\nimport { CanvasRenderer } from './canvas-renderer';\nimport { processPathData, splitArrayCollection, transformPath } from '../utility/path-util';\nimport { isDiagramChild } from '../utility/diagram-util';\nimport { DiagramNativeElement } from '../core/elements/native-element';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { Point } from '../primitives/point';\nimport { canDrawThumbs, avoidDrawSelector } from '../utility/constraints-util';\nimport { Diagram } from '../diagram';\nimport { getSegmentThumbShapeHorizontal, getSegmentThumbShapeVertical } from '../objects/dictionary/common';\n/**\n * Renderer module is used to render basic diagram elements\n */\n/** @private */\nvar DiagramRenderer = /** @class */ (function () {\n function DiagramRenderer(name, svgRender, isSvgMode) {\n /** @private */\n this.renderer = null;\n /** @private */\n this.isSvgMode = true;\n this.transform = { x: 0, y: 0 };\n this.diagramId = name;\n this.element = getDiagramElement(this.diagramId);\n this.svgRenderer = svgRender;\n this.isSvgMode = isSvgMode;\n this.renderer = isSvgMode ? new SvgRenderer() : new CanvasRenderer();\n }\n /**\n * Method used to set the cur \\\n *\n * @param {HTMLElement} canvas - Provide the canvas .\n * @param {string} cursor - Provide the element .\n * @returns {void } Method used to set the layer .\\\n * @private\n */\n DiagramRenderer.prototype.setCursor = function (canvas, cursor) {\n canvas.style.cursor = cursor;\n };\n /**\n * Method used to set the layer \\\n *\n * @returns {void } Method used to set the layer .\\\n *\n * @private\n */\n DiagramRenderer.prototype.setLayers = function () {\n this.iconSvgLayer = this.element.getElementsByClassName('e-ports-expand-layer')[0];\n this.adornerSvgLayer = this.element.getElementsByClassName('e-adorner-layer')[0];\n this.nativeSvgLayer = this.element.getElementsByClassName('e-native-layer')[0];\n this.diagramSvgLayer = this.element.getElementsByClassName('e-diagram-layer')[0];\n };\n DiagramRenderer.prototype.getAdornerLayer = function () {\n var adornerLayer = getAdornerLayer(this.diagramId);\n return adornerLayer;\n };\n DiagramRenderer.prototype.getParentSvg = function (element, targetElement, canvas) {\n if (this.diagramId && element && element.id) {\n if (element.id.split('_icon_content').length > 1 || element.id.split('_nodeport').length > 1 ||\n (element.elementActions & ElementAction.ElementIsPort)) {\n return this.iconSvgLayer;\n }\n if (targetElement && targetElement === 'selector') {\n return this.adornerSvgLayer;\n }\n else if (element instanceof DiagramNativeElement) {\n return this.nativeSvgLayer;\n }\n else {\n return this.diagramSvgLayer;\n }\n }\n return canvas;\n };\n DiagramRenderer.prototype.getParentElement = function (element, defaultParent, svgElement, indexValue) {\n var layerGElement = defaultParent;\n if (svgElement && this.diagramId && element && element.id) {\n if (element.id.split('_icon_content').length > 1) {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramExpander');\n defaultParent = null;\n }\n else if (element.id.split('_nodeport').length > 1) {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramPorts');\n }\n else if (element instanceof DiagramNativeElement) {\n layerGElement = svgElement.getElementById(this.diagramId + '_nativeLayer');\n defaultParent = null;\n }\n else if (element.elementActions & ElementAction.ElementIsPort) {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramPorts');\n defaultParent = null;\n }\n else {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramLayer');\n }\n var groupElement = this.getGroupElement(element, defaultParent || layerGElement, indexValue);\n layerGElement = groupElement.g;\n if (groupElement.svg) {\n svgElement = groupElement.svg;\n }\n }\n return { g: layerGElement, svg: svgElement };\n };\n DiagramRenderer.prototype.getGroupElement = function (element, canvas, indexValue) {\n var gElement;\n var parentSvg = this.getParentSvg(element);\n var svgElement;\n if (canvas && parentSvg) {\n if (parentSvg) {\n gElement = parentSvg.getElementById(element.id + '_groupElement');\n if (!gElement && parentSvg !== this.nativeSvgLayer) { //code added\n var nativeSvg = this.nativeSvgLayer;\n gElement = nativeSvg.getElementById(element.id + '_groupElement');\n svgElement = nativeSvg;\n }\n }\n if (!gElement) {\n gElement = this.svgRenderer.createGElement('g', { id: element.id + '_groupElement' });\n if (indexValue !== undefined && canvas.childNodes.length > indexValue) {\n canvas.insertBefore(gElement, canvas.childNodes[parseInt(indexValue.toString(), 10)]);\n }\n else {\n canvas.appendChild(gElement);\n }\n }\n }\n return { g: gElement, svg: svgElement };\n };\n /**\n * Method used to render the diagram element \\\n *\n * @returns {void } Method used to render the diagram element .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the canvas value.\n * @param {HTMLElement } htmlLayer - Provide the HTMLElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @param {SVGSVGElement} parentSvg - Provide the SVGSVGElement value.\n * @param {boolean } createParent - Provide the boolean value.\n * @param {boolean } fromPalette - Provide the boolean value.\n * @param {number } indexValue - Provide the indexValue value.\n * @param {boolean } isPreviewNode - Provide the isPreviewNode value.\n * @param {object } centerPoint - Provide the centerPoint value.\n * @private\n */\n DiagramRenderer.prototype.renderElement = function (element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint) {\n var isElement = true;\n if (element instanceof Container) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isElement = false;\n element.id = element.id ? element.id : randomId();\n this.renderContainer(element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint);\n }\n else if (element instanceof ImageElement) {\n this.renderImageElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof PathElement) {\n this.renderPathElement(element, canvas, transform, parentSvg, fromPalette, isPreviewNode);\n }\n else if (element instanceof TextElement) {\n this.renderTextElement(element, canvas, transform, parentSvg, fromPalette, centerPoint);\n }\n else if (element instanceof DiagramNativeElement) {\n this.renderNativeElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof DiagramHtmlElement) {\n this.renderHTMLElement(element, canvas, htmlLayer, transform, parentSvg, fromPalette, indexValue);\n }\n else {\n this.renderRect(element, canvas, transform, parentSvg, isPreviewNode);\n }\n };\n /**\n * Method used to draw the selection rectangle for the node \\\n *\n * @returns {void } Method used to draw the selection rectangle for the node .\\\n *\n * @param {number} x - Provide the DiagramElement value.\n * @param {number } y - Provide the SVGElement value.\n * @param {number } w - Provide the Transforms value.\n * @param {number } h - Provide the Transforms value.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the Transforms value.\n * @param {number } t - Provide the Transforms value.\n * @private\n */\n DiagramRenderer.prototype.drawSelectionRectangle = function (x, y, w, h, canvas, t) {\n x = (x + t.tx) * t.scale;\n y = (y + t.ty) * t.scale;\n var options = {\n width: w * t.scale, height: h * t.scale,\n x: x + 0.5, y: y + 0.5, fill: 'transparent', stroke: 'gray', angle: 0,\n pivotX: 0.5, pivotY: 0.5, strokeWidth: 1,\n dashArray: '6 3', opacity: 1,\n visible: true, id: canvas.id + '_selected_region'\n };\n var adornerLayer = this.getAdornerLayer();\n this.svgRenderer.updateSelectionRegion(adornerLayer, options);\n };\n /**\n * Method used to render the highlighter \\\n *\n * @returns {void } Method used to render the highlighter .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {SVGElement } canvas - Provide the SVGElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @private\n */\n DiagramRenderer.prototype.renderHighlighter = function (element, canvas, transform) {\n var width = element.actualSize.width || 2;\n var height = element.actualSize.height || 2;\n var x = element.offsetX - width * element.pivot.x;\n var y = element.offsetY - height * element.pivot.y;\n x = (x + transform.tx) * transform.scale;\n y = (y + transform.ty) * transform.scale;\n var options = {\n width: width * transform.scale, height: height * transform.scale,\n x: x, y: y, fill: 'transparent', stroke: '#8CC63F', angle: element.rotateAngle,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: 4,\n dashArray: '', opacity: 1, cornerRadius: 0,\n visible: true, id: canvas.id + '_highlighter', class: 'e-diagram-highlighter'\n };\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, canvas);\n };\n /**\n * Method used to render the node selection rectangle \\\n *\n * @returns {void } Method used to render the node selection rectangle .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {SVGElement } canvas - Provide the SVGElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @param {number } isFirst - Provide the boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderSelectionRectangle = function (element, canvas, transform, isFirst) {\n var width = element.actualSize.width || 2;\n var height = element.actualSize.height || 2;\n var x = element.offsetX - width * element.pivot.x;\n var y = element.offsetY - height * element.pivot.y;\n x = (x + transform.tx) * transform.scale;\n y = (y + transform.ty) * transform.scale;\n var options = {\n width: width * transform.scale, height: height * transform.scale,\n x: x, y: y, fill: 'transparent', stroke: '#00cc00', angle: element.rotateAngle,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: isFirst ? 2 : 1,\n dashArray: '', opacity: 1, cornerRadius: 0,\n visible: true, id: element.id + '_highlighter', class: 'e-diagram-selection-indicator'\n };\n var parentSvg = this.getParentSvg(element, 'selector');\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n };\n /**\n * Method used to render the selection line for connector \\\n *\n * @returns {void } Method used to render the selection line for connector .\\\n *\n * @param {PathElement} element - Provide the path element of the diagram .\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value.\n * @param { boolean } isFirst - Provide the boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderSelectionLine = function (element, canvas, transform, isFirst) {\n var options = this.getBaseAttributes(element, transform);\n options.data = element.absolutePath;\n options.id = options.id + '_highlighter';\n var ariaLabel = element.description ? element.description : element.id;\n if (!this.isSvgMode) {\n options.x = element.flipOffset.x ? element.flipOffset.x : options.x;\n options.y = element.flipOffset.y ? element.flipOffset.y : options.y;\n }\n if (transform) {\n options.x = options.x * transform.scale;\n options.y = options.y * transform.scale;\n }\n options.stroke = '#00cc00';\n options.strokeWidth = isFirst ? 2 : 1;\n options.class = 'e-diagram-selection-indicator';\n var parentSvg = this.getParentSvg(element, 'selector');\n this.svgRenderer.drawPath(canvas, options, this.diagramId, undefined, parentSvg, ariaLabel, transform.scale);\n };\n /**\n * Method used to render the stack highlighter \\\n *\n * @returns {void } Method used to render the stack highlighter .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {SVGElement } canvas - Provide the SVGElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @param {boolean} isVertical - Provide the Boolean value.\n * @param {PointModel } position - Provide the PointModel value.\n * @param {boolean } isUml - Provide the boolean value.\n * @param {boolean } isSwimlane - Provide the boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderStackHighlighter = function (element, canvas, transform, isVertical, position, isUml, isSwimlane) {\n var width = element.actualSize.width || 2;\n var x = element.offsetX - width * element.pivot.x;\n var height = element.actualSize.height || 2;\n var y = element.offsetY - height * element.pivot.y;\n x = (x + transform.tx) * transform.scale;\n var data;\n var bounds = element.bounds;\n var newPathString = '';\n y = (y + transform.ty) * transform.scale;\n if (!isVertical) {\n var d = height * transform.scale;\n data = 'M 10 -10 L 0 0 Z M -10 -10 L 0 0 Z M 0 0 L 0 ' + (d) + ' Z M 0 ' + (d) +\n ' L -10 ' + (d + 10) + ' Z L 10 ' + (d + 10) + ' Z';\n if (position.x >= element.offsetX) {\n x += width;\n }\n }\n else {\n if (isUml) {\n var d = width * transform.scale;\n data = 'M 0 0 L ' + (d + 2) + ' 0 Z';\n var scaleX = -bounds.x;\n var scaleY = -bounds.y;\n var arrayCollection = [];\n scaleX = element.actualSize.width / Number(bounds.width ? bounds.width : 1) * transform.scale;\n scaleY = element.actualSize.height / Number(bounds.height ? bounds.height : 1) * transform.scale;\n var umlData = 'M7,4 L8,4 8,7 11,7 11,8 8,8 8,11 7,11 7,8 4,8 4,7 7,7 z M7.5,0.99999994' +\n 'C3.9160004,1 1,3.9160004 0.99999994,7.5 1,11.084 3.9160004,14 7.5,14 11.084,14 14,11.084 14,7.5 14,' +\n '3.9160004 11.084,1 7.5,0.99999994 z M7.5,0 C11.636002,0 15,3.3639984 15,7.5 15,11.636002 11.636002,15 7.5,' +\n '15 3.3640003,15 0,11.636002 0,7.5 0,3.3639984 3.3640003,0 7.5,0 z';\n arrayCollection = processPathData(umlData);\n arrayCollection = splitArrayCollection(arrayCollection);\n newPathString = transformPath(arrayCollection, scaleX + d + 2, scaleY - 8, false, bounds.x, bounds.y, 0, 0);\n if (position.y >= element.offsetY) {\n y += height;\n }\n }\n else {\n if (isSwimlane) {\n if (position.y >= element.offsetY) {\n y += height;\n }\n }\n var d = width * transform.scale;\n data = 'M -10 -10 L 0 0 Z M -10 10 L 0 0 Z M 0 0 L ' + (d) + ' 0 Z M ' + (d) + ' 0 L ' +\n (d + 10) + ' 10 Z L ' + (d + 10) + ' -10 Z';\n }\n }\n var options = {\n data: data + newPathString,\n width: width * transform.scale, height: height * transform.scale,\n x: x, y: y, fill: 'transparent', stroke: '#8CC63F', angle: element.rotateAngle,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: 1,\n dashArray: '', opacity: 1,\n visible: true, id: canvas.id + '_stack_highlighter', class: 'e-diagram-highlighter'\n };\n this.svgRenderer.drawPath(canvas, options, this.diagramId);\n };\n /**\n * Method used to draw the line \\\n *\n * @returns {void } Method used to draw the line .\\\n *\n * @param {SVGElement} canvas - Provide the SVGElement value.\n * @param {LineAttributes } options - Provide the LineAttributes value.\n * @private\n */\n DiagramRenderer.prototype.drawLine = function (canvas, options) {\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * Method used to draw the path \\\n *\n * @returns {void } Method used to draw the path .\\\n *\n * @param {SVGElement} canvas - Provide the canvas value.\n * @param {PathAttributes } options - Provide the PathAttributes value.\n * @private\n */\n DiagramRenderer.prototype.drawPath = function (canvas, options) {\n this.svgRenderer.drawPath(canvas, options, this.diagramId);\n };\n /**\n * Method used to render the resize handle \\\n *\n * @returns {void } Method used to render the resize handle .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { ThumbsConstraints } constraints - Provide the constraints value .\n * @param { number} currentZoom - Provide the currentZoom value.\n * @param { SelectorConstraints } selectorConstraints - Provide the selectorConstraints value .\n * @param { Transforms } transform - Provide the transform value.\n * @param { boolean } canMask - Provide the canMask boolean value.\n * @param { number } enableNode - Provide the enableNode value.\n * @param { boolean } nodeConstraints - Provide the nodeConstraints value.\n * @param { boolean } isSwimlane - Provide the isSwimlane boolean value.\n * @param { number } handleSize - Provide the handleSize value.\n * @private\n */\n DiagramRenderer.prototype.renderResizeHandle = function (element, canvas, constraints, currentZoom, selectorConstraints, transform, canMask, enableNode, nodeConstraints, isSwimlane, handleSize) {\n var left = element.offsetX - element.actualSize.width * element.pivot.x;\n var top = element.offsetY - element.actualSize.height * element.pivot.y;\n var height = element.actualSize.height;\n var width = element.actualSize.width;\n if (!isSwimlane &&\n (constraints & ThumbsConstraints.Rotate && canDrawThumbs(this.rendererActions) && (!avoidDrawSelector(this.rendererActions)))) {\n this.renderPivotLine(element, canvas, transform, selectorConstraints, canMask);\n this.renderRotateThumb(element, canvas, transform, selectorConstraints, canMask);\n }\n this.renderBorder(element, canvas, transform, enableNode, nodeConstraints, isSwimlane);\n var nodeWidth = element.actualSize.width * currentZoom;\n var nodeHeight = element.actualSize.height * currentZoom;\n if (!nodeConstraints && canDrawThumbs(this.rendererActions) && (!avoidDrawSelector(this.rendererActions))) {\n if (nodeWidth >= 40 && nodeHeight >= 40) {\n //Hide corners when the size is less than 40\n if (selectorConstraints & SelectorConstraints.ResizeNorthWest) {\n this.renderCircularHandle('resizeNorthWest', element, left, top, canvas, canShowCorner(selectorConstraints, 'ResizeNorthWest'), constraints & ThumbsConstraints.ResizeNorthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top left side direction' }, undefined, 'e-diagram-resize-handle e-northwest', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeNorthEast) {\n this.renderCircularHandle('resizeNorthEast', element, left + width, top, canvas, canShowCorner(selectorConstraints, 'ResizeNorthEast'), constraints & ThumbsConstraints.ResizeNorthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top right side direction' }, undefined, 'e-diagram-resize-handle e-northeast', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeSouthWest) {\n this.renderCircularHandle('resizeSouthWest', element, left, top + height, canvas, canShowCorner(selectorConstraints, 'ResizeSouthWest'), constraints & ThumbsConstraints.ResizeSouthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom left side direction' }, undefined, 'e-diagram-resize-handle e-southwest', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeSouthEast) {\n this.renderCircularHandle('resizeSouthEast', element, left + width, top + height, canvas, canShowCorner(selectorConstraints, 'ResizeSouthEast'), constraints & ThumbsConstraints.ResizeSouthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom right side direction' }, undefined, 'e-diagram-resize-handle e-southeast', handleSize);\n }\n }\n if (selectorConstraints & SelectorConstraints.ResizeNorth) {\n this.renderCircularHandle('resizeNorth', element, left + width / 2, top, canvas, canShowCorner(selectorConstraints, 'ResizeNorth'), constraints & ThumbsConstraints.ResizeNorth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top side direction' }, undefined, 'e-diagram-resize-handle e-north', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeSouth) {\n this.renderCircularHandle('resizeSouth', element, left + width / 2, top + height, canvas, canShowCorner(selectorConstraints, 'ResizeSouth'), constraints & ThumbsConstraints.ResizeSouth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom side direction' }, undefined, 'e-diagram-resize-handle e-south', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeWest) {\n this.renderCircularHandle('resizeWest', element, left, top + height / 2, canvas, canShowCorner(selectorConstraints, 'ResizeWest'), constraints & ThumbsConstraints.ResizeWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on left side direction' }, undefined, 'e-diagram-resize-handle e-west', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeEast) {\n this.renderCircularHandle('resizeEast', element, left + width, top + height / 2, canvas, canShowCorner(selectorConstraints, 'ResizeEast'), constraints & ThumbsConstraints.ResizeEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on right side direction' }, undefined, 'e-diagram-resize-handle e-east', handleSize);\n }\n }\n };\n /**\n * Method used to render the end point of the handle \\\n *\n * @returns {void } Method used to render the end point of the handle .\\\n *\n * @param {ConnectorModel} selector - Provide the ConnectorModel.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the element.\n * @param { ThumbsConstraints } constraints - Provide the constraints value .\n * @param { SelectorConstraints} selectorConstraints - Provide the selectorConstraints value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { boolean } connectedSource - Provide the connectedSource boolean value.\n * @param { boolean } connectedTarget - Provide the connectedTarget boolean value.\n * @param { boolean } isSegmentEditing - Provide the isSegmentEditing boolean value.\n * @param { boolean } canShowBezierPoints - Provide the canShowBezierPoints boolean value.\n * @param {number} handleSize - Provide the handleSize value.\n * @private\n */\n DiagramRenderer.prototype.renderEndPointHandle = function (selector, canvas, constraints, selectorConstraints, transform, connectedSource, connectedTarget, isSegmentEditing, canShowBezierPoints, handleSize) {\n var sourcePoint = selector.sourcePoint;\n var targetPoint = selector.targetPoint;\n var wrapper = selector.wrapper;\n var i;\n var segment;\n this.renderCircularHandle('connectorSourceThumb', wrapper, sourcePoint.x, sourcePoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, undefined, { 'aria-label': 'Thumb to move the source point of the connector' }, undefined, 'e-diagram-endpoint-handle e-sourceend', handleSize);\n this.renderCircularHandle('connectorTargetThumb', wrapper, targetPoint.x, targetPoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorTargetThumb'), constraints & ThumbsConstraints.ConnectorTarget, transform, connectedTarget, undefined, { 'aria-label': 'Thumb to move the target point of the connector' }, undefined, 'e-diagram-endpoint-handle e-targetend', handleSize);\n if (isSegmentEditing) {\n if ((selector.type === 'Straight' || selector.type === 'Bezier') && selector.segments.length > 0) {\n for (i = 0; i < selector.segments.length - 1; i++) {\n segment = selector.segments[parseInt(i.toString(), 10)];\n var className = selector.type === 'Bezier' ? 'e-diagram-bezier-segment-handle' : 'e-diagram-straight-segment-handle';\n this.renderCircularHandle(('segementThumb_' + (i + 1)), wrapper, segment.point.x, segment.point.y, canvas, true, constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, null, null, i, className, handleSize);\n }\n }\n else {\n // (EJ2-57115) - Added below code to check if maxSegmentThumb is zero or not\n if (!selector.maxSegmentThumb) {\n for (i = 0; i < selector.segments.length; i++) {\n var seg = selector.segments[parseInt(i.toString(), 10)];\n this.renderOrthogonalThumbs('orthoThumb_' + (i + 1), wrapper, seg, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), transform, selector);\n }\n }\n else {\n // (EJ2-57115) - Added below code to check if maxSegmentThumb is non zero then we have ignore the rendering of\n // first and last segment thumb\n var start = selector.segments.length <= selector.maxSegmentThumb ? 0 : 1;\n var end = selector.segments.length <= selector.maxSegmentThumb ? selector.segments.length : selector.segments.length - 1;\n // (EJ2-57115) - If maxSegmentThumb is greater than or equal to 3 means then set start as second segment(1) and end as last before segment\n if (selector.maxSegmentThumb >= 3 && selector.segments.length === 3) {\n start = 1;\n end = selector.segments.length - 1;\n }\n // (EJ2-57115) - If segments length is greater than maxSegmentThumb + 2 means then set start as 2\n start = selector.segments.length > selector.maxSegmentThumb + 2 ? 2 : start;\n // (EJ2-57115) - If segments length is greater than maxSegmentThumb + 2 means then set end as last before segment\n end = selector.segments.length > selector.maxSegmentThumb + 2 ? selector.segments.length - 2 : end;\n if (selector.segments.length === 1 && selector.segments[0].points.length <= 2) {\n start = 1;\n end = selector.segments.length;\n }\n for (i = start; i < end; i++) {\n var seg = selector.segments[parseInt(i.toString(), 10)];\n this.renderOrthogonalThumbs('orthoThumb_' + (i + 1), wrapper, seg, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), transform, selector);\n }\n }\n }\n }\n if (selector.type === 'Bezier' && canShowBezierPoints) {\n var segmentCount = selector.segments.length - 1;\n var controlPointsVisibility = selector.bezierSettings != null ? selector.bezierSettings.controlPointsVisibility : null;\n for (i = 0; i <= segmentCount; i++) {\n var segment_1 = selector.segments[parseInt(i.toString(), 10)];\n var bezierPoint = !Point.isEmptyPoint(segment_1.point1) ? segment_1.point1\n : segment_1.bezierPoint1;\n if (controlPointsVisibility != null && (i === 0 && canShowControlPoints(controlPointsVisibility, 'Source'))\n || (i !== 0 && canShowControlPoints(controlPointsVisibility, 'Intermediate'))) {\n this.renderCircularHandle('bezierPoint_' + (i + 1) + '_1', wrapper, bezierPoint.x, bezierPoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), constraints & ThumbsConstraints.ConnectorSource, transform, undefined, undefined, { 'aria-label': 'Thumb to move the source point of the connector' }, undefined, 'e-diagram-bezier-control-handle e-source', handleSize);\n if (canShowCorner(selectorConstraints, 'ConnectorSourceThumb')) {\n this.renderBezierLine('bezierLine_' + (i + 1) + '_1', wrapper, canvas, segment_1.points[0], !Point.isEmptyPoint(segment_1.point1) ? segment_1.point1 : segment_1.bezierPoint1, transform);\n }\n }\n bezierPoint = !Point.isEmptyPoint(segment_1.point2) ? segment_1.point2 : segment_1.bezierPoint2;\n if (controlPointsVisibility != null && (i === segmentCount && canShowControlPoints(controlPointsVisibility, 'Target'))\n || (i !== segmentCount && canShowControlPoints(controlPointsVisibility, 'Intermediate'))) {\n this.renderCircularHandle('bezierPoint_' + (i + 1) + '_2', wrapper, bezierPoint.x, bezierPoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorTargetThumb'), constraints & ThumbsConstraints.ConnectorTarget, transform, undefined, undefined, { 'aria-label': 'Thumb to move the target point of the connector' }, undefined, 'e-diagram-bezier-control-handle e-target', handleSize);\n if (canShowCorner(selectorConstraints, 'ConnectorTargetThumb')) {\n this.renderBezierLine('bezierLine_' + (i + 1) + '_2', wrapper, canvas, segment_1.points[1], !Point.isEmptyPoint(segment_1.point2) ? segment_1.point2 : segment_1.bezierPoint2, transform);\n }\n }\n }\n }\n };\n /**\n * Method used to render the orthogonal thumb \\\n *\n * @returns {void } Method used to render the orthogonal thumb .\\\n *\n * @param {string} id - Provide the id for the element.\n * @param {DiagramElement } selector - Provide the selector element.\n * @param { OrthogonalSegment } segment - Provide the segment value .\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { boolean } visibility - Provide the visibility value .\n * @param { Transforms } t - Provide the Transforms value.\n * @param { ConnectorModel } connector - Provide the connector value.\n * @private\n */\n DiagramRenderer.prototype.renderOrthogonalThumbs = function (id, selector, segment, canvas, visibility, t, connector) {\n var orientation;\n var visible;\n var length;\n var j = 0;\n // (EJ2-57115) - Added below code to check if maxSegmentThumb is zero or not\n if (!connector.maxSegmentThumb) {\n for (j = 0; j < segment.points.length - 1; j++) {\n length = Point.distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]);\n orientation = (segment.points[parseInt(j.toString(), 10)].y.toFixed(2) === segment.points[j + 1].y.toFixed(2)) ? 'horizontal' : 'vertical';\n visible = (length >= 50 && segment.allowDrag) ? true : false;\n this.renderOrthogonalThumb((id + '_' + (j + 1)), selector, (((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2)), (((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2)), canvas, visible, orientation, t);\n }\n }\n else {\n // (EJ2-57115) - Added below code to check if maxSegmentThumb greater then 3 means then we have ignore the rendering of\n // first and last segment thumb\n // Set the start value as 1 if segment points is greater than 3\n var start = segment.points.length < 3 ? 0 : 1;\n // set the end value as segment.points.length - 2 if segment points is greater then 3\n var end = segment.points.length < 3 ? segment.points.length - 1 : segment.points.length - 2;\n start = connector.segments.length === 1 ? start : 0;\n end = connector.segments.length === 1 ? end : segment.points.length - 1;\n for (j = start; j < end; j++) {\n length = Point.distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]);\n orientation = (segment.points[parseInt(j.toString(), 10)].y.toFixed(2) === segment.points[j + 1].y.toFixed(2)) ? 'horizontal' : 'vertical';\n visible = (length >= 50 && segment.allowDrag) ? true : false;\n this.renderOrthogonalThumb((id + '_' + (j + 1)), selector, (((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2)), (((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2)), canvas, visible, orientation, t);\n }\n }\n };\n /**\n * Method used to render the orthogonal thumb \\\n *\n * @returns {void } Method used to render the orthogonal thumb .\\\n *\n * @param {string} id - Provide the id for the element.\n * @param {DiagramElement } selector - Provide the selector element.\n * @param { Transforms } x - Provide the x value .\n * @param { Transforms } y - Provide the y value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { boolean } visible - Provide the visible boolean value.\n * @param { string } orientation - Provide the orientation value.\n * @param { Transforms } t - Provide the Transforms value.\n * @private\n */\n DiagramRenderer.prototype.renderOrthogonalThumb = function (id, selector, x, y, canvas, visible, orientation, t) {\n var path;\n var h;\n var v;\n var diagramElement = document.getElementById(this.diagramId);\n var instance = 'ej2_instances';\n var diagram;\n if (diagramElement) {\n diagram = diagramElement[\"\" + instance][0];\n }\n if (orientation === 'horizontal') {\n path = getSegmentThumbShapeHorizontal(diagram.segmentThumbShape);\n switch (diagram.segmentThumbShape) {\n case 'Arrow':\n case 'OpenArrow':\n case 'DoubleArrow':\n h = -15;\n v = -15;\n break;\n case 'Square':\n case 'Rectangle':\n case 'Ellipse':\n h = -5;\n v = -5;\n break;\n case 'Rhombus':\n case 'Circle':\n case 'Diamond':\n h = -10;\n v = -5;\n break;\n case 'IndentedArrow':\n case 'OutdentedArrow':\n h = -5;\n v = -4;\n break;\n case 'Fletch':\n case 'OpenFetch':\n h = -5;\n v = -4.5;\n break;\n }\n }\n else {\n path = getSegmentThumbShapeVertical(diagram.segmentThumbShape);\n switch (diagram.segmentThumbShape) {\n case 'Arrow':\n case 'OpenArrow':\n case 'DoubleArrow':\n h = -15;\n v = -15;\n break;\n case 'Square':\n case 'IndentedArrow':\n case 'OutdentedArrow':\n case 'Fletch':\n case 'OpenFetch':\n h = -5;\n v = -5;\n break;\n case 'Rhombus':\n case 'Diamond':\n h = -5;\n v = -15;\n break;\n case 'Rectangle':\n h = -7;\n v = -5;\n break;\n case 'Circle':\n h = -5;\n v = -7;\n break;\n case 'Ellipse':\n h = -7;\n v = -7;\n break;\n }\n }\n var options = {\n x: ((x + t.tx) * t.scale) + h, y: ((y + t.ty) * t.scale) + v, angle: 0,\n fill: '#e2e2e2', stroke: 'black', strokeWidth: 1, dashArray: '', data: path,\n width: 20, height: 20, pivotX: 0, pivotY: 0, opacity: 1, visible: visible, id: id,\n class: 'e-diagram-ortho-segment-handle'\n };\n this.svgRenderer.drawPath(canvas, options, this.diagramId);\n };\n /**\n * Method used to render the pivot line line\\\n *\n * @returns {void } Method used to render the pivot line line .\\\n *\n * @param {DiagramElement} element - Provide the diagram element value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { Transforms } transform - Provide the transform value .\n * @param { SelectorConstraints } selectorConstraints - Provide the selector constraints value.\n * @param { boolean } canMask - Provide the canMask boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderPivotLine = function (element, canvas, transform, selectorConstraints, canMask) {\n var wrapper = element;\n var dashArray = '2,3';\n var visible = (selectorConstraints & SelectorConstraints.Rotate) ? true : false;\n if (canMask) {\n visible = false;\n }\n var options = this.getBaseAttributes(wrapper, transform);\n options.fill = 'None';\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.dashArray = dashArray;\n options.visible = visible;\n var scale = transform.scale;\n options.x *= scale;\n options.y *= scale;\n options.width *= scale;\n options.height *= scale;\n options.id = 'pivotLine';\n options.class = 'e-diagram-pivot-line';\n var startPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: -20 };\n var endPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: 0 };\n options.startPoint = startPoint;\n options.endPoint = endPoint;\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * Method used to render the bezier line for the connector \\\n *\n * @returns {void } Method used to render the bezier line for the connector .\\\n *\n * @param {string} id - Provide the id value for the bezier line.\n * @param { DiagramElement } wrapper - Provide the wrapper for the element.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element .\n * @param { PointModel } start - Provide the pointmodel value.\n * @param { PointModel } end - Provide the pointmodel value.\n * @param { Transforms } transform - Provide the itransform value .\n * @private\n */\n DiagramRenderer.prototype.renderBezierLine = function (id, wrapper, canvas, start, end, transform) {\n var dashArray = '3,3';\n var options = this.getBaseAttributes(wrapper, transform);\n options.id = id;\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.dashArray = dashArray;\n options.fill = 'None';\n options.class = 'e-diagram-bezier-control-line';\n options.x = 0;\n options.y = 0;\n var scale = transform.scale;\n var x1 = (start.x + transform.tx) * scale;\n var y1 = (start.y + transform.ty) * scale;\n var x2 = (end.x + transform.tx) * scale;\n var y2 = (end.y + transform.ty) * scale;\n var startPoint = { x: x1, y: y1 };\n var endPoint = { x: x2, y: y2 };\n options.startPoint = startPoint;\n options.endPoint = endPoint;\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * Method used to render the circular handle for the node element \\\n *\n * @returns {void } Method used to render the circular handle for the node element .\\\n *\n * @param {string} id - Provide the id value.\n * @param { DiagramElement } selector - Provide the selector element value.\n * @param { number } cx - Provide cx value .\n * @param { number } cy - Provide cx value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { boolean } visible - Provide the visible property for the handle .\n * @param { number } enableSelector - Provide the value for the enableSelector .\n * @param { Transforms } t - Provide the transform value .\n * @param { boolean } connected - Provide the connected boolean value .\n * @param { boolean } canMask - Provide the canMask boolean value .\n * @param { Object } ariaLabel - Provide the label properties .\n * @param { number } count - Provide the count value .\n * @param { string } className - Provide the class name for this element .\n * @param { number } handleSize - Provide the handle size value .\n *\n * @private\n */\n // Feature (EJ2-44346) Provide support to increase the size of the resize thumb\n DiagramRenderer.prototype.renderCircularHandle = function (id, selector, cx, cy, canvas, visible, enableSelector, t, connected, canMask, ariaLabel, count, className, handleSize) {\n var wrapper = selector;\n var newPoint = { x: cx, y: cy };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = this.getBaseAttributes(wrapper);\n options.stroke = 'black';\n options.strokeWidth = 1;\n if (count !== undefined) {\n options.id = 'segmentEnd_' + count;\n options.fill = '#e2e2e2';\n }\n else {\n options.fill = connected ? '#8CC63F' : 'white';\n }\n options.cornerRadius = handleSize / 2;\n options.angle = selector.rotateAngle;\n options.id = id;\n options.visible = visible;\n options.class = className;\n options.width = handleSize;\n options.height = handleSize;\n // EJ2-65895 - Added below code to calculate the rect x and y if node pivot is not equal to 0.5\n options.x = (newPoint.x + t.tx) * t.scale;\n options.y = (newPoint.y + t.ty) * t.scale;\n options.x = options.x - options.width / 2;\n options.y = options.y - options.height / 2;\n if (connected) {\n options.class += ' e-connected';\n }\n if (canMask) {\n options.visible = false;\n }\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, true, true, parentSvg, ariaLabel, true, enableSelector);\n };\n /**\n * Method used to render border for the node element \\\n *\n * @returns {void } Method used to render border for the node element .\\\n *\n * @param {SelectorModel} selector - Provide the selector model instance.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { number } enableNode - Provide enableNode boolean value.\n * @param { boolean } isBorderTickness - Provide the thickness value for the node.\n * @param { boolean } isSwimlane - Provide the isSwimlane boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderBorder = function (selector, canvas, transform, enableNode, isBorderTickness, isSwimlane) {\n var wrapper = selector;\n var options = this.getBaseAttributes(wrapper, transform);\n options.x *= transform.scale;\n options.y *= transform.scale;\n options.width *= transform.scale;\n options.height *= transform.scale;\n options.fill = 'transparent';\n options.stroke = '#097F7F';\n options.strokeWidth = 1.2;\n options.gradient = null;\n options.dashArray = '6,3';\n options.class = 'e-diagram-selector';\n if (isSwimlane) {\n options.class += ' e-diagram-lane';\n }\n options.id = 'borderRect';\n options.id = (this.rendererActions & RendererAction.DrawSelectorBorder) ? 'borderRect_symbol' : 'borderRect';\n if (!enableNode) {\n options.class += ' e-disabled';\n }\n if (isBorderTickness) {\n options.class += ' e-thick-border';\n }\n options.cornerRadius = 0;\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, true, parentSvg);\n };\n /**\n * Method used to render user handle for the node element \\\n *\n * @returns {void } Method used to render user handle for the node element .\\\n *\n * @param {SelectorModel} selectorItem - Provide the selector model instance.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { HTMLElement } diagramUserHandlelayer - Provide the HTMLElement value.\n * @private\n */\n DiagramRenderer.prototype.renderUserHandler = function (selectorItem, canvas, transform, diagramUserHandlelayer) {\n var wrapper = selectorItem.wrapper;\n var canDraw;\n for (var _i = 0, _a = selectorItem.userHandles; _i < _a.length; _i++) {\n var obj = _a[_i];\n canDraw = true;\n if ((obj.disableConnectors && selectorItem.connectors.length > 0) ||\n (obj.disableNodes && selectorItem.nodes.length > 0)) {\n canDraw = false;\n }\n var div = document.getElementById(obj.name + '_template_hiddenUserHandle');\n if (div) {\n obj.template = (div.childNodes[0]).cloneNode(true);\n }\n //const newPoint: PointModel;\n var newPoint = getUserHandlePosition(selectorItem, obj, transform);\n newPoint.x = (newPoint.x + transform.tx) * transform.scale;\n newPoint.y = (newPoint.y + transform.ty) * transform.scale;\n if (obj.visible) {\n obj.visible = (selectorItem.constraints & SelectorConstraints.UserHandle) ? true : false;\n }\n if (canDraw) {\n if (obj.pathData) {\n var data = obj.pathData ? obj.pathData : obj.content;\n var option = this.getBaseAttributes(wrapper);\n option.id = obj.name + '_userhandle';\n option.fill = obj.backgroundColor;\n option.stroke = obj.borderColor;\n option.strokeWidth = obj.borderWidth;\n option.centerX = newPoint.x;\n option.centerY = newPoint.y;\n option.radius = obj.size * 0.5;\n option.class = 'e-diagram-userhandle-circle';\n option.angle = 0;\n option.visible = obj.visible;\n option.opacity = 1;\n this.svgRenderer.drawCircle(canvas, option, 1, { 'aria-label': obj.name + 'user handle' });\n var pathPading = 5;\n var arrayCollection = [];\n arrayCollection = processPathData(data);\n arrayCollection = splitArrayCollection(arrayCollection);\n var pathSize = measurePath(data);\n //requiredSize/contentSize\n var scaleX = (obj.size - 0.45 * obj.size) / pathSize.width;\n var scaleY = (obj.size - 0.45 * obj.size) / pathSize.height;\n var newData = transformPath(arrayCollection, scaleX, scaleY, true, pathSize.x, pathSize.y, 0, 0);\n pathSize = measurePath(newData);\n var options = {\n x: newPoint.x - pathSize.width / 2,\n y: newPoint.y - pathSize.height / 2, angle: 0, id: '',\n class: 'e-diagram-userhandle-path', fill: obj.pathColor,\n stroke: obj.backgroundColor, strokeWidth: 0.5, dashArray: '', data: newData,\n width: obj.size - pathPading, height: obj.size - pathPading, pivotX: 0, pivotY: 0, opacity: 1, visible: obj.visible\n };\n this.svgRenderer.drawPath(canvas, options, this.diagramId, undefined, undefined, { 'aria-label': obj.name + 'user handle' });\n }\n else if (obj.content) {\n //const handleContent: DiagramNativeElement;\n var handleContent = new DiagramNativeElement(obj.name, this.diagramId);\n handleContent.content = obj.content;\n handleContent.offsetX = newPoint.x;\n handleContent.offsetY = newPoint.y;\n handleContent.id = obj.name + '_shape';\n handleContent.horizontalAlignment = 'Center';\n handleContent.verticalAlignment = 'Center';\n handleContent.visible = obj.visible;\n handleContent.setOffsetWithRespectToBounds(newPoint.x, newPoint.y, 'Fraction');\n handleContent.relativeMode = 'Object';\n handleContent.description = obj.name || 'User handle';\n handleContent.measure(new Size(obj.size, obj.size));\n handleContent.arrange(handleContent.desiredSize);\n this.svgRenderer.drawNativeContent(handleContent, canvas, obj.size, obj.size, this.adornerSvgLayer);\n }\n else if (obj.source) {\n var element = new ImageElement();\n var options = this.getBaseAttributes(element, transform);\n options.width = obj.size;\n options.height = obj.size;\n options.x = newPoint.x - (obj.size / 2);\n options.y = newPoint.y - (obj.size / 2);\n options.sourceWidth = obj.size;\n options.sourceHeight = obj.size;\n options.alignment = element.imageAlign;\n options.source = obj.source;\n options.scale = element.imageScale;\n options.visible = obj.visible;\n options.description = obj.name || 'User handle';\n options.id = obj.name + '_';\n this.renderer.drawImage(canvas, options, this.adornerSvgLayer, false);\n }\n else {\n //const templateContent: DiagramHtmlElement;\n var templateContent = new DiagramHtmlElement(obj.name, this.diagramId);\n templateContent.offsetX = newPoint.x;\n templateContent.offsetY = newPoint.y;\n templateContent.id = obj.name + '_shape';\n templateContent.visible = obj.visible;\n templateContent.relativeMode = 'Object';\n templateContent.template = obj.template;\n templateContent.measure(new Size(obj.size, obj.size));\n templateContent.arrange(templateContent.desiredSize);\n this.svgRenderer.drawHTMLContent(templateContent, diagramUserHandlelayer, undefined, true, undefined);\n }\n }\n }\n };\n /**\n * Method used to render rotate thumb of the diagramnode element \\\n *\n * @returns {void } Method used to render rotate thumb of the diagramnode element .\\\n *\n * @param {DiagramElement} wrapper - Provide the wrapper element value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { SelectorConstraints } selectorConstraints - Provide the selectorConstraints value.\n * @param { boolean } canMask - Provide the boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderRotateThumb = function (wrapper, canvas, transform, selectorConstraints, canMask) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var element = new PathElement();\n var newPoint;\n var size = new Size();\n size.width = 18;\n size.height = 16;\n var top = wrapper.offsetY - wrapper.actualSize.height * wrapper.pivot.y;\n var left = wrapper.offsetX - wrapper.actualSize.width * wrapper.pivot.x;\n var visible = (selectorConstraints & SelectorConstraints.Rotate) ? true : false;\n if (canMask) {\n visible = false;\n }\n var data = 'M 16.856144362449648 10.238890446662904 L 18.000144362449646 3.437890446662903' +\n 'L 15.811144362449646 4.254890446662903 C 14.837144362449646 2.5608904466629028 13.329144362449647 ' +\n ' 1.2598904466629026 11.485144362449645 0.5588904466629026 C 9.375144362449646 - 0.24510955333709716 7.071144362449646 ' +\n ' - 0.18010955333709716 5.010144362449646 0.7438904466629028 C 2.942144362449646 1.6678904466629028 1.365144362449646' +\n ' 3.341890446662903 0.558144362449646 5.452890446662903 C - 0.244855637550354 7.567890446662903 - 0.17985563755035394' +\n ' 9.866890446662904 0.7431443624496461 11.930890446662904 C 1.6681443624496461 13.994890446662904 3.343144362449646' +\n ' 15.575890446662903 5.457144362449647 16.380890446662903 C 6.426144362449647 16.7518904466629 7.450144362449647' +\n ' 16.9348904466629 8.470144362449647 16.9348904466629 C 9.815144362449647 16.9348904466629 11.155144362449647 ' +\n '16.6178904466629 12.367144362449647 15.986890446662901 L 11.351144362449647 14.024890446662901 C 9.767144362449647' +\n ' 14.8468904466629 7.906144362449647 14.953890446662902 6.237144362449647 14.3178904466629 C 4.677144362449647' +\n ' 13.7218904466629 3.444144362449647 12.5558904466629 2.758144362449647 11.028890446662901 C 2.078144362449646 ' +\n '9.501890446662903 2.031144362449646 7.802890446662903 2.622144362449646 6.243890446662903 C 3.216144362449646' +\n ' 4.6798904466629025 4.387144362449646 3.442890446662903 5.914144362449646 2.760890446662903 C 7.437144362449646 ' +\n '2.078890446662903 9.137144362449646 2.0298904466629026 10.700144362449645 2.6258904466629027 C 11.946144362449646 ' +\n '3.100890446662903 12.971144362449646 3.9538904466629026 13.686144362449646 5.049890446662903 L 11.540144362449645 ' +\n '5.850890446662903 L 16.856144362449648 10.238890446662904 Z';\n var pivotX = left + wrapper.pivot.x * wrapper.actualSize.width;\n var pivotY = top;\n pivotX = (pivotX + transform.tx) * transform.scale;\n pivotY = (pivotY + transform.ty) * transform.scale;\n newPoint = { x: pivotX - size.width * 0.5, y: pivotY - 30 - size.height * 0.5 };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, (transform.tx + wrapper.offsetX) * transform.scale, (transform.ty + wrapper.offsetY) * transform.scale);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = {\n x: newPoint.x,\n y: newPoint.y,\n angle: wrapper.rotateAngle + wrapper.parentTransform,\n fill: '#231f20', stroke: 'black', strokeWidth: 0.5, dashArray: '', data: data,\n width: 20, height: 20, pivotX: 0, pivotY: 0, opacity: 1, visible: visible, id: wrapper.id, class: 'e-diagram-rotate-handle'\n };\n options.id = 'rotateThumb';\n this.svgRenderer.drawPath(canvas, options, this.diagramId, true, undefined, { 'aria-label': 'Thumb to rotate the selected object' });\n };\n /**\n * Method used to render the path element for the diagram \\\n *\n * @returns {void } Method used to render the path element for the diagram .\\\n *\n * @param {PathElement} element - Provide the path element of the diagram .\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the parent SVG element .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @param { boolean } isPreviewNode - Provide the boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderPathElement = function (element, canvas, transform, parentSvg, fromPalette, isPreviewNode) {\n var options = this.getBaseAttributes(element, transform, isPreviewNode);\n options.data = element.absolutePath;\n options.data = element.absolutePath;\n var ariaLabel = element.description ? element.description : element.id;\n if (!this.isSvgMode) {\n options.x = element.flipOffset.x ? element.flipOffset.x : options.x;\n options.y = element.flipOffset.y ? element.flipOffset.y : options.y;\n }\n if (element.isExport) {\n var pathBounds = element.absoluteBounds;\n options.data = updatePath(element, pathBounds, undefined, options);\n }\n this.renderer.drawPath(canvas, options, this.diagramId, undefined, parentSvg, ariaLabel);\n };\n /**\n * Method used to update the grid line for the diagram \\\n *\n * @returns {void } Method used to update the grid line for the diagram .\\\n *\n * @param {SnapSettingsModel} snapSettings - Provide the snapsetting value of the diagram .\n * @param { SVGSVGElement } gridSvg - Provide the SVG grid element value.\n * @param { Transforms } t - Provide the transform value .\n * @param { RulerSettingsModel } rulerSettings - Provide the ruler setting property .\n * @param { RulerModel } hRuler - Provide the horizontal ruler property value .\n * @param { RulerModel } vRuler - Provide the vertical ruler property value .\n * @private\n */\n DiagramRenderer.prototype.renderSvgGridlines = function (snapSettings, gridSvg, t, rulerSettings, hRuler, vRuler) {\n var pattern = document.createElementNS('http://www.w3.org/2000/svg', 'pattern');\n var defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs');\n defs.setAttribute('id', this.diagramId + '_grid_pattern_defn');\n if (snapSettings.constraints & SnapConstraints.ShowHorizontalLines ||\n snapSettings.constraints & SnapConstraints.ShowVerticalLines) {\n pattern.setAttribute('id', this.diagramId + '_pattern');\n }\n var hWidth = 0;\n var hHeight = 0;\n var hSegmentwidth = 0;\n var vSegmentwidth = 0;\n var scale = 1;\n var isRulerGrid = false;\n var isLine = snapSettings.gridType === 'Lines';\n var verticalLineIntervals = isLine ?\n snapSettings.verticalGridlines.lineIntervals : snapSettings.verticalGridlines.dotIntervals;\n var horizontalLineIntervals = isLine ?\n snapSettings.horizontalGridlines.lineIntervals : snapSettings.horizontalGridlines.dotIntervals;\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && hRuler && vRuler) {\n hSegmentwidth = vRuler.updateSegmentWidth(t.scale);\n vSegmentwidth = hRuler.updateSegmentWidth(t.scale);\n snapSettings.horizontalGridlines.scaledIntervals = [hSegmentwidth / hRuler.interval];\n snapSettings.verticalGridlines.scaledIntervals = [vSegmentwidth / vRuler.interval];\n isRulerGrid = true;\n }\n else {\n for (var i = 0; i < verticalLineIntervals.length; i = i + 1) {\n hWidth += verticalLineIntervals[parseInt(i.toString(), 10)];\n }\n for (var i = 0; i < horizontalLineIntervals.length; i = i + 1) {\n hHeight += horizontalLineIntervals[parseInt(i.toString(), 10)];\n }\n scale = this.scaleSnapInterval(snapSettings, t.scale);\n }\n hWidth = isRulerGrid ? vSegmentwidth : hWidth * scale;\n hHeight = isRulerGrid ? hSegmentwidth : hHeight * scale;\n var attr = {\n id: this.diagramId + '_pattern', x: 0, y: 0, width: hWidth,\n height: hHeight, patternUnits: 'userSpaceOnUse'\n };\n setAttributeSvg(pattern, attr);\n this.horizontalSvgGridlines(pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, horizontalLineIntervals);\n this.verticalSvgGridlines(pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, verticalLineIntervals);\n defs.appendChild(pattern);\n gridSvg.appendChild(defs);\n };\n DiagramRenderer.prototype.horizontalSvgGridlines = function (pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, intervals) {\n var space = 0;\n var dashArray = [];\n var hLine;\n if (snapSettings.constraints & SnapConstraints.ShowHorizontalLines) {\n if (snapSettings.horizontalGridlines.lineDashArray) {\n dashArray = this.renderer.parseDashArray(snapSettings.horizontalGridlines.lineDashArray);\n }\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && vRuler) {\n intervals = this.updateLineIntervals(intervals, rulerSettings, vRuler, hHeight, isLine);\n }\n intervals = getInterval(intervals, isLine);\n for (var i = 0; i < intervals.length; i = i + 2) {\n space = getSpaceValue(intervals, isLine, i, space);\n var spaceY = 0;\n hLine = document.createElementNS('http://www.w3.org/2000/svg', isLine ? 'path' : 'circle');\n var attr = void 0;\n var d = isLine ? space + intervals[parseInt(i.toString(), 10)] / 2 : space;\n d = isRulerGrid ? d : d * scale;\n if (isLine) {\n if (dashArray.toString() === '') {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)],\n 'd': 'M0,' + (d) + ' L' + hWidth + ',' + (d) + ' Z',\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'stroke': snapSettings.horizontalGridlines.lineColor\n };\n }\n else {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)], 'stroke': snapSettings.horizontalGridlines.lineColor,\n 'd': 'M0,' + (d) + ' L' + hWidth + ',' + (d) + ' Z',\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'dashArray': dashArray.toString()\n };\n }\n setAttributeSvg(hLine, attr);\n pattern.appendChild(hLine);\n space += intervals[i + 1] + intervals[parseInt(i.toString(), 10)];\n }\n else {\n this.renderDotGrid(i, pattern, snapSettings, spaceY, d, scale, true);\n space += intervals[parseInt(i.toString(), 10)];\n }\n }\n }\n };\n DiagramRenderer.prototype.renderDotGrid = function (i, pattern, snapSettings, spacey, d, scale, isHorizontal) {\n var intervals = !isHorizontal ?\n snapSettings.horizontalGridlines.dotIntervals : snapSettings.verticalGridlines.dotIntervals;\n intervals = getInterval(intervals, false);\n var r;\n var hLine;\n //const doubleRadius: boolean;\n var dy;\n var attr;\n for (var j = 1; j < intervals.length; j = j + 2) {\n r = j === intervals.length - 1 ? intervals[0] : intervals[j - 1];\n hLine = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n dy = spacey;\n dy = dy * scale;\n attr = {\n 'cx': isHorizontal ? dy : d, 'cy': isHorizontal ? d : dy, 'fill': snapSettings.horizontalGridlines.lineColor, 'r': r\n };\n setAttributeSvg(hLine, attr);\n pattern.appendChild(hLine);\n spacey += intervals[parseInt(j.toString(), 10)] + intervals[j - 1];\n }\n };\n DiagramRenderer.prototype.verticalSvgGridlines = function (pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, intervals) {\n var space = 0;\n var dashArray = [];\n var vLine;\n if (snapSettings.constraints & SnapConstraints.ShowVerticalLines) {\n if (snapSettings.verticalGridlines.lineDashArray) {\n dashArray = this.renderer.parseDashArray(snapSettings.verticalGridlines.lineDashArray);\n }\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && hRuler) {\n intervals = this.updateLineIntervals(intervals, rulerSettings, hRuler, hWidth, isLine);\n }\n var spaceY = 0;\n intervals = getInterval(intervals, isLine);\n for (var i = 0; i < intervals.length; i = i + 2) {\n space = getSpaceValue(intervals, isLine, i, space);\n var d = isLine ? space + intervals[parseInt(i.toString(), 10)] / 2 : space;\n d = isRulerGrid ? d : d * scale;\n vLine = document.createElementNS('http://www.w3.org/2000/svg', isLine ? 'path' : 'circle');\n var attr = void 0;\n if (isLine) {\n if (dashArray.toString() === '') {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)],\n 'd': 'M' + (d) + ',0 L' + (d) + ',' + hHeight + ' Z',\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'stroke': snapSettings.verticalGridlines.lineColor\n };\n }\n else {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)],\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'stroke': snapSettings.verticalGridlines.lineColor,\n 'd': 'M' + (d) + ',0 L' + (d) + ',' + hHeight + ' Z',\n 'dashArray': dashArray.toString()\n };\n }\n setAttributeSvg(vLine, attr);\n pattern.appendChild(vLine);\n space += intervals[i + 1] + intervals[parseInt(i.toString(), 10)];\n }\n else {\n this.renderDotGrid(i, pattern, snapSettings, spaceY, d, scale, false);\n space += intervals[parseInt(i.toString(), 10)];\n }\n }\n }\n };\n /**\n * Method used to update the grid line for the diagram \\\n *\n * @returns {void } Method used to update the grid line for the diagram .\\\n *\n * @param {SnapSettingsModel} snapSettings - Provide the snapsetting value of the diagram .\n * @param { SVGSVGElement } svgGrid - Provide the SVG grid element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { RulerSettingsModel } rulerSettings - Provide the ruler setting property .\n * @param { RulerModel } hRuler - Provide the horizontal ruler property value .\n * @param { RulerModel } vRuler - Provide the vertical ruler property value .\n * @private\n */\n DiagramRenderer.prototype.updateGrid = function (snapSettings, svgGrid, transform, rulerSettings, hRuler, vRuler) {\n var grid = svgGrid.getElementById(this.diagramId + '_grid_rect');\n //let i: number;\n var isRulerGrid = false;\n if (grid) {\n var pattern = svgGrid.getElementById(this.diagramId + '_pattern');\n if (pattern) {\n pattern.parentNode.removeChild(pattern);\n }\n var hSegmentwidth = 0;\n var vSegmentwidth = 0;\n var scale = 1;\n var isLine = snapSettings.gridType === 'Lines';\n var verticalLineIntervals = isLine ?\n snapSettings.verticalGridlines.lineIntervals : snapSettings.verticalGridlines.dotIntervals;\n var horizontalLineIntervals = isLine ?\n snapSettings.horizontalGridlines.lineIntervals : snapSettings.horizontalGridlines.dotIntervals;\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && vRuler && hRuler) {\n hSegmentwidth = vRuler.updateSegmentWidth(transform.scale);\n vSegmentwidth = hRuler.updateSegmentWidth(transform.scale);\n isRulerGrid = true;\n snapSettings.horizontalGridlines.scaledIntervals = [hSegmentwidth / hRuler.interval];\n snapSettings.verticalGridlines.scaledIntervals = [vSegmentwidth / vRuler.interval];\n }\n else {\n scale = this.scaleSnapInterval(snapSettings, transform.scale);\n }\n var height = 0;\n for (var j = 0; j < horizontalLineIntervals.length; j = j + 1) {\n height += horizontalLineIntervals[parseInt(j.toString(), 10)];\n }\n var width = 0;\n for (var j = 0; j < verticalLineIntervals.length; j = j + 1) {\n width += verticalLineIntervals[parseInt(j.toString(), 10)];\n }\n var attr = {\n x: -transform.tx * transform.scale,\n y: -transform.ty * transform.scale\n };\n setAttributeSvg(grid, attr);\n width = isRulerGrid ? vSegmentwidth : width * scale;\n height = isRulerGrid ? hSegmentwidth : height * scale;\n attr = {\n id: this.diagramId + '_pattern', x: 0, y: 0, width: width,\n height: height, patternUnits: 'userSpaceOnUse'\n };\n pattern = document.createElementNS('http://www.w3.org/2000/svg', 'pattern');\n setAttributeSvg(pattern, attr);\n this.horizontalSvgGridlines(pattern, width, height, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, horizontalLineIntervals);\n this.verticalSvgGridlines(pattern, width, height, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, verticalLineIntervals);\n var defs = svgGrid.getElementById(this.diagramId + '_grid_pattern_defn');\n if (defs) {\n defs.appendChild(pattern);\n }\n }\n };\n DiagramRenderer.prototype.updateLineIntervals = function (intervals, rulerSettings, ruler, segmentWidth, isLine) {\n var newInterval = [];\n var tickInterval = segmentWidth / ruler.interval;\n var interval = isLine ? ruler.interval : ruler.interval + 1;\n for (var i = 0; i < interval * 2; i++) {\n if (i % 2 === 0) {\n newInterval[parseInt(i.toString(), 10)] = isLine ? ((i === 0) ? 1.25 : 0.25) : 0;\n }\n else {\n newInterval[parseInt(i.toString(), 10)] = isLine ? (tickInterval - newInterval[i - 1]) : tickInterval;\n }\n }\n return newInterval;\n };\n DiagramRenderer.prototype.scaleSnapInterval = function (snapSettings, scale) {\n if (scale >= 2) {\n while (scale >= 2) {\n scale /= 2;\n }\n }\n else if (scale <= 0.5) {\n while (scale <= 0.5) {\n scale *= 2;\n }\n }\n var i;\n snapSettings.horizontalGridlines.scaledIntervals = snapSettings.horizontalGridlines.snapIntervals;\n snapSettings.verticalGridlines.scaledIntervals = snapSettings.verticalGridlines.snapIntervals;\n if (scale !== 1) {\n var gridlines = snapSettings.horizontalGridlines;\n gridlines.scaledIntervals = [];\n for (i = 0; i < gridlines.snapIntervals.length; i++) {\n gridlines.scaledIntervals[parseInt(i.toString(), 10)] = gridlines.snapIntervals[parseInt(i.toString(), 10)] * scale;\n }\n gridlines = snapSettings.verticalGridlines;\n gridlines.scaledIntervals = [];\n for (i = 0; i < gridlines.snapIntervals.length; i++) {\n gridlines.scaledIntervals[parseInt(i.toString(), 10)] = gridlines.snapIntervals[parseInt(i.toString(), 10)] * scale;\n }\n }\n return scale;\n };\n /**\n * Method used to render the text element \\\n *\n * @returns {void }Method used to render the text element .\\\n *\n * @param {TextElement} element - Provide the text element .\n * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element .\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the SVG layer element .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @param { object } centerPoint - Provide the center point value .\n * @private\n */\n DiagramRenderer.prototype.renderTextElement = function (element, canvas, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transform, parentSvg, fromPalette, centerPoint) {\n var options = this.getBaseAttributes(element, transform);\n if (centerPoint) {\n //Bug 827039: Bezier annotation content alignment is not working properly.\n // Removed -2 cx-2 and cy-2 from the below two line to resolve the alignment issue.\n options.x = centerPoint.cx;\n options.y = centerPoint.cy;\n // (EJ2-56874) - Set the calculated x and y position to the bezier connector annotation's(text element) bounds x,y position\n element.bounds.x = options.x;\n element.bounds.y = options.y;\n // (EJ2-58802) - Calculate the center point x and y with the element export scale value if element is in export mode\n if (element.isExport) {\n options.x = options.x * Math.min(element.exportScaleValue.x || element.exportScaleValue.y);\n options.y = options.y * Math.min(element.exportScaleValue.x || element.exportScaleValue.y);\n }\n }\n options.cornerRadius = 0;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textWrapping = element.style.textWrapping;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.wrapBounds = element.wrapBounds;\n options.childNodes = element.childNodes;\n options.isHorizontalLane = element.isLaneOrientation;\n options.id = element.id ? element.id : randomId();\n if (element.isLaneOrientation) {\n options.parentOffsetX = this.groupElement.offsetX;\n options.parentOffsetY = this.groupElement.offsetY;\n options.parentWidth = this.groupElement.actualSize.width;\n options.parentHeight = this.groupElement.actualSize.height;\n }\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = element.style.fill;\n var ariaLabel = element.description ? element.description : element.content ? element.content : element.id;\n if ((element.style.textWrapping === 'Wrap' || element.style.textWrapping === 'WrapWithOverflow') &&\n this.groupElement && options.height > this.groupElement.actualSize.height &&\n (element.style.textOverflow === 'Clip' || element.style.textOverflow === 'Ellipsis')) {\n options.y = options.y + (options.height - this.groupElement.actualSize.height) / 2;\n }\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n this.renderer.drawText(canvas, options, parentSvg, ariaLabel, this.diagramId, (element.isExport && Math.min(element.exportScaleValue.x || element.exportScaleValue.y)), this.groupElement);\n if (this.isSvgMode) {\n element.doWrap = false;\n }\n };\n DiagramRenderer.prototype.renderNativeElement = function (element, canvas, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transform, parentSvg, fromPalette) {\n var templateWidth;\n var templateHeight;\n var nativeSvg = this.getParentSvg(element, undefined, canvas) || parentSvg;\n var nativeLayer = this.getParentElement(element, canvas, nativeSvg).g || canvas;\n var options = this.getBaseAttributes(element, transform);\n options.fill = 'transparent';\n options.cornerRadius = element.cornerRadius;\n options.stroke = 'transparent';\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n switch (element.scale) {\n case 'None':\n templateWidth = element.contentSize.width;\n templateHeight = element.contentSize.height;\n break;\n case 'Stretch':\n templateWidth = element.actualSize.width;\n templateHeight = element.actualSize.height;\n break;\n case 'Meet':\n if (element.actualSize.width <= element.actualSize.height) {\n templateWidth = templateHeight = element.actualSize.width;\n }\n else {\n templateWidth = templateHeight = element.actualSize.height;\n }\n break;\n case 'Slice':\n if (element.actualSize.width >= element.actualSize.height) {\n templateWidth = templateHeight = element.actualSize.width;\n }\n else {\n templateWidth = templateHeight = element.actualSize.height;\n }\n break;\n }\n if (this.svgRenderer) {\n this.svgRenderer.drawNativeContent(element, nativeLayer, templateHeight, templateWidth, nativeSvg);\n }\n };\n DiagramRenderer.prototype.renderHTMLElement = function (element, canvas, htmlLayer, transform, parentSvg, fromPalette, indexValue) {\n var options = this.getBaseAttributes(element, transform);\n options.fill = 'transparent';\n options.cornerRadius = element.cornerRadius;\n options.stroke = 'transparent';\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n if (this.svgRenderer) {\n this.svgRenderer.drawHTMLContent(element, htmlLayer.children[0], transform, isDiagramChild(htmlLayer), indexValue);\n }\n };\n /**\n * Method used to render the image element \\\n *\n * @returns {void }Method used to render the image element .\\\n *\n * @param {ImageElement} element - Provide the image element .\n * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element .\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the SVG layer element .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderImageElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = 0;\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n // let sx: number; let sy: number;\n var imageWidth;\n var imageHeight;\n var sourceWidth;\n var sourceHeight;\n if (element.stretch === 'Stretch') {\n imageWidth = element.actualSize.width;\n imageHeight = element.actualSize.height;\n }\n else {\n var contentWidth = element.contentSize.width;\n var contentHeight = element.contentSize.height;\n var widthRatio = options.width / contentWidth;\n var heightRatio = options.height / contentHeight;\n var ratio = void 0;\n switch (element.stretch) {\n case 'Meet':\n ratio = Math.min(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n options.x += Math.abs(options.width - imageWidth) / 2;\n options.y += Math.abs(options.height - imageHeight) / 2;\n break;\n case 'Slice':\n widthRatio = options.width / contentWidth;\n heightRatio = options.height / contentHeight;\n ratio = Math.max(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n sourceWidth = options.width / imageWidth * contentWidth;\n sourceHeight = options.height / imageHeight * contentHeight;\n break;\n case 'None':\n imageWidth = contentWidth;\n imageHeight = contentHeight;\n break;\n }\n }\n options.width = imageWidth;\n options.height = imageHeight;\n //Commented for code coverage\n //(options as ImageAttributes).sourceX = sx;\n //(options as ImageAttributes).sourceY = sy;\n options.sourceWidth = sourceWidth;\n options.sourceHeight = sourceHeight;\n options.source = element.source;\n options.alignment = element.imageAlign;\n options.scale = element.imageScale;\n options.description = element.description ? element.description : element.id;\n this.renderer.drawImage(canvas, options, parentSvg, fromPalette);\n };\n /**\n * Method used to render the container \\\n *\n * @returns {void} Method used to render the container .\\\n *\n * @param {Container} group - Provide the container .\n * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element .\n * @param { HTMLElement } htmlLayer - Provide the html layer element .\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the SVG layer element .\n * @param { boolean } createParent - Provide the boolean value .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @param { number } indexValue - Provide the indexValue value .\n * @param { boolean } isPreviewNode - Provide the boolean value .\n * @param { object } centerPoint - Provide the centerPoint value .\n * @private\n */\n DiagramRenderer.prototype.renderContainer = function (group, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint) {\n var svgParent = { svg: parentSvg, g: canvas };\n var diagramElement = document.getElementById(this.diagramId);\n var instance = 'ej2_instances';\n var diagram;\n if (diagramElement) {\n diagram = diagramElement[\"\" + instance][0];\n }\n if (this.diagramId) {\n parentSvg = this.getParentSvg(group) || parentSvg;\n if (this.isSvgMode) {\n //const groupElement: HTMLCanvasElement | SVGElement;\n // eslint-disable-next-line max-len\n var groupElement = this.getParentElement(group, canvas, parentSvg, indexValue).g || canvas;\n parentSvg = this.getParentSvg(this.hasNativeParent(group.children)) || parentSvg;\n var svgNativeParent = this.getParentElement(this.hasNativeParent(group.children), groupElement, parentSvg, indexValue);\n svgParent.svg = svgNativeParent.svg || parentSvg;\n svgParent.g = svgNativeParent.g || groupElement;\n if (createParent) {\n if (parentSvg) {\n if (!parentSvg.getElementById(svgParent.g.id)) {\n canvas.appendChild(svgParent.g);\n }\n }\n canvas = svgParent.g;\n }\n else {\n canvas = svgParent.g;\n }\n }\n }\n this.renderRect(group, canvas, transform, parentSvg);\n this.groupElement = group;\n if (group.hasChildren()) {\n var parentG = void 0;\n var svgParent_1;\n for (var _i = 0, _a = group.children; _i < _a.length; _i++) {\n var child = _a[_i];\n parentSvg = this.getParentSvg(this.hasNativeParent(group.children) || child) || parentSvg;\n if (this.isSvgMode) {\n svgParent_1 = this.getParentElement(this.hasNativeParent(group.children) || child, canvas, parentSvg);\n parentG = svgParent_1.g || canvas;\n if (svgParent_1.svg) {\n parentSvg = svgParent_1.svg;\n }\n }\n if (!this.isSvgMode) {\n child.flip = group.flip;\n }\n this.renderElement(child, parentG || canvas, htmlLayer, transform, parentSvg, true, fromPalette, indexValue, isPreviewNode, centerPoint);\n if (child instanceof TextElement && parentG && !(group.elementActions & ElementAction.ElementIsGroup)) {\n this.renderFlipElement(child, parentG, child.flip);\n }\n //EJ2-826617 - for BPMN node label\n if (child instanceof TextElement && parentG && (group.elementActions & ElementAction.ElementIsGroup)) {\n this.renderFlipElement(child, parentG, child.flip);\n }\n if ((child.elementActions & ElementAction.ElementIsPort) && parentG) {\n //EJ2-826617 - for BPMN node port\n if (parentG.id.includes(\"bpmn\")) {\n this.renderFlipElement(group, parentG, child.flip);\n child.flip = 'None';\n }\n else {\n this.renderFlipElement(group, parentG, child.flip);\n }\n }\n //EJ2-826617 - for BPMN node child rendering\n if (!(child instanceof TextElement) && group.flip !== 'None' &&\n (group.elementActions & ElementAction.ElementIsGroup) && !(child.elementActions & ElementAction.ElementIsPort) && parentG) {\n this.renderFlipElement(child, parentG || canvas, group.flip);\n }\n }\n var selectedNode = void 0;\n if (diagram && diagram.selectedItems && diagram.selectedItems.nodes && diagram.selectedItems.nodes.length > 0) {\n selectedNode = diagram.selectedItems.nodes[0];\n }\n var innerNodeContent = void 0;\n var innerLabelContent = void 0;\n var isNodeSelected = false;\n var Node_1;\n if (diagram && diagram.selectedItems) {\n Node_1 = diagram.getObject(group.id);\n }\n if (group.flip !== 'None') {\n selectedNode = Node_1;\n }\n // EJ2-71981 - Flip mode \"Port\" is not working properly while dragging multiselected node\n // Below code to set selected node value\n if (group.flip == 'None') {\n selectedNode = Node_1;\n }\n if (selectedNode && selectedNode.flipMode) {\n isNodeSelected = true;\n }\n if (!(group.elementActions & ElementAction.ElementIsGroup) && diagram instanceof Diagram && diagram.nameTable[group.id] && diagram.nameTable[group.id].propName !== 'connectors') {\n if (isNodeSelected && selectedNode) {\n if (group.children && group.children[0] instanceof DiagramNativeElement) {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_inner_native_element');\n }\n else {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_groupElement');\n }\n //Below code to check and flip the node.\n if (!(group.children[0] instanceof DiagramNativeElement) && selectedNode.shape.type !== 'Text' && selectedNode.flipMode !== 'None' && selectedNode.flipMode !== 'Label' && selectedNode.flipMode !== 'All' || (group.children[0] instanceof DiagramNativeElement && selectedNode.flipMode === 'Port')) {\n this.renderFlipElement(group, innerNodeContent, selectedNode.flip);\n return;\n }\n //Below code to check and flip the node except for flip mode Port.\n else if (group.children[0] instanceof DiagramNativeElement && (selectedNode.flipMode === 'All' || selectedNode.flipMode === 'Label') || (selectedNode.flipMode === 'Label') || (selectedNode.shape.type === 'Image' && selectedNode.flipMode === 'Label')) {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n if (group.flip !== 'None' && selectedNode.flipMode === 'None') {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the text element in the node.\n else if (group.flip !== 'None' && selectedNode.flipMode === 'Label' || (group.children[0] instanceof DiagramNativeElement && group.flip !== 'None' && selectedNode && (selectedNode.flipMode === 'None' || selectedNode.flipMode === 'All'))) {\n for (var i_1 = 0; i_1 < selectedNode.wrapper.children.length; i_1++) {\n if (selectedNode.wrapper.children[parseInt(i_1.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i_1.toString(), 10)].id + '_groupElement');\n this.renderFlipElement(group, innerLabelContent, group.flip);\n return;\n }\n }\n }\n //Below code to check and flip for flip mode all in the node.\n else if (group.flip !== 'None' && selectedNode.flipMode === 'All') {\n for (var i = 0; i < selectedNode.wrapper.children.length; i++) {\n if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement');\n this.renderFlipElement(group, innerLabelContent, group.flip);\n }\n }\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the element for None in the node.\n else {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n }\n }\n //EJ2-826617 - Flip and flip mode option for BPMN node\n if ((group.elementActions & ElementAction.ElementIsGroup) && diagram instanceof Diagram && diagram.nameTable[group.id] && diagram.nameTable[group.id].propName !== 'connectors') {\n if (isNodeSelected && selectedNode) {\n if (group.children && group.children[0] instanceof DiagramNativeElement) {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_inner_native_element');\n }\n else {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_groupElement');\n }\n //Below code to check and flip the node.\n if (!(group.children[0] instanceof DiagramNativeElement) && selectedNode.shape.type !== 'Text' && selectedNode.flipMode !== 'None' && selectedNode.flipMode !== 'Label' && selectedNode.flipMode !== 'All' || (group.children[0] instanceof DiagramNativeElement && selectedNode.flipMode === 'Port')) {\n this.renderFlipElement(group, innerNodeContent, selectedNode.flip);\n return;\n }\n //Below code to check and flip the node except for flip mode Port.\n else if (group.children[0] instanceof DiagramNativeElement && (selectedNode.flipMode === 'All' || selectedNode.flipMode === 'Label') || (selectedNode.flipMode === 'Label') || (selectedNode.shape.type === 'Image' && selectedNode.flipMode === 'Label')) {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n if (group.flip !== 'None' && selectedNode.flipMode === 'None') {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the text element in the node.\n else if (group.flip !== 'None' && selectedNode.flipMode === 'Label' || (group.children[0] instanceof DiagramNativeElement && group.flip !== 'None' && selectedNode && (selectedNode.flipMode === 'None' || selectedNode.flipMode === 'All'))) {\n for (var i_2 = 0; i_2 < selectedNode.wrapper.children.length; i_2++) {\n if (selectedNode.wrapper.children[parseInt(i_2.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i_2.toString(), 10)].id + '_groupElement');\n this.renderFlipElement(group, innerLabelContent, group.flip);\n return;\n }\n }\n }\n //Below code to check and flip for flip mode all in the node.\n else if (group.flip !== 'None' && selectedNode.flipMode === 'All') {\n for (var i = 0; i < selectedNode.wrapper.children.length; i++) {\n if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement');\n this.renderFlipElement(group, innerLabelContent, group.flip);\n }\n }\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the element for None in the node.\n else {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n }\n }\n }\n };\n DiagramRenderer.prototype.renderFlipElement = function (element, canvas, flip) {\n var attr = {};\n var scaleX = 1;\n var scaleY = 1;\n var posX = 0;\n var posY = 0;\n var offsetX = 0;\n var offsetY = 0;\n if (flip !== 'None') {\n if (flip === 'Horizontal' || flip === 'Both') {\n posX = element.bounds.center.x;\n offsetX = -element.bounds.center.x;\n scaleX = -1;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n posY = element.bounds.center.y;\n offsetY = -element.bounds.center.y;\n scaleY = -1;\n }\n attr = {\n 'transform': 'translate(' + posX + ',' + posY + ') scale(' + scaleX + ','\n + scaleY + ') translate(' + offsetX + ',' + offsetY + ')'\n };\n }\n else {\n attr = {\n 'transform': 'translate(' + 0 + ',' + 0 + ')'\n };\n }\n if (attr) {\n if (element && element.children &&\n element.children.length && (element.children[0] instanceof DiagramHtmlElement)) {\n var id = canvas.id.split('_preview');\n var layer = document.getElementById(id[0] + '_html_div') ||\n (getHTMLLayer(this.diagramId).children[0]);\n canvas = layer.querySelector(('#' + element.id + '_content_html_element'));\n if (canvas) {\n canvas.style.transform =\n 'scale(' + scaleX + ',' + scaleY + ')' + 'rotate(' + (element.rotateAngle + element.parentTransform) + 'deg)';\n }\n }\n else {\n setAttributeSvg(canvas, attr);\n }\n }\n };\n /**\n * Method used to check the native parent \\\n *\n * @returns {void} Method used to check the native parent .\\\n *\n * @param { DiagramElement[]} children - Provide the diagram element .\n * @param { number} count - Provide the count value .\n * @private\n */\n DiagramRenderer.prototype.hasNativeParent = function (children, count) {\n if (children && children.length > 0 && (count || 0 < 3)) {\n var child = children[0];\n if (child instanceof DiagramNativeElement) {\n return child;\n }\n else if (child.children && child.children.length) {\n this.hasNativeParent(child.children, count++ || 0);\n }\n }\n return undefined;\n };\n /**\n * Method used the draw the reactangle for the diagram \\\n *\n * @returns {void} Method used the draw the reactangle for the diagram .\\\n *\n * @param { SVGElement} element - Provide the SVG elements .\n * @param { RectAttributes} canvas - Provide the Canvas element .\n * @param { RectAttributes} transform - Provide transform value for the node .\n * @param { RectAttributes} parentSvg -provide the parent SVG .\n * @param { RectAttributes} isPreviewNode - Provide the preview boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderRect = function (element, canvas, transform, parentSvg, isPreviewNode) {\n var options = this.getBaseAttributes(element, transform, isPreviewNode);\n options.cornerRadius = element.cornerRadius || 0;\n if (element.isExport) {\n options.cornerRadius *= element.exportScaleValue.x;\n }\n var ariaLabel = element.description ? element.description : element.id;\n this.renderer.drawRectangle(canvas, options, this.diagramId, element.isExport, undefined, parentSvg, ariaLabel);\n };\n /**\n * Method used the draw the reactangle for the diagram \\\n *\n * @returns {void} Method used the draw the reactangle for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG elements .\n * @param { RectAttributes} options - Provide the attributes to draw the rectangle .\n * @private\n */\n DiagramRenderer.prototype.drawRect = function (canvas, options) {\n options.cornerRadius = 0;\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId);\n };\n /**\n * Will get the base attributes for all the elements \\\n *\n * @returns {BaseAttributes} Will get the base attributes for all the elements .\\\n *\n * @param { DiagramElement} element - Provide the diagram elements .\n * @param { Transforms} transform - Provide the transform value for the elements .\n * @param { boolean} isPreviewNode - Provide the preview boolean value.\n * @private\n */\n DiagramRenderer.prototype.getBaseAttributes = function (element, transform, isPreviewNode) {\n var options = {\n width: element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5,\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray || '', opacity: element.style.opacity, shadow: element.shadow,\n gradient: element.style.gradient, visible: element.visible, id: element.id, description: element.description,\n canApplyStyle: element.canApplyStyle, shapeType: element.shapeType\n };\n if (isPreviewNode) {\n options.x = options.x - .5;\n options.y = options.y - .5;\n }\n if (element.isExport) {\n options.width *= element.exportScaleValue.x;\n options.height *= element.exportScaleValue.y;\n options.x *= element.exportScaleValue.x;\n options.y *= element.exportScaleValue.y;\n options.strokeWidth *= element.exportScaleValue.x;\n }\n if (element.flip) {\n options.flip = element.flip;\n }\n if (transform) {\n options.x += transform.tx;\n options.y += transform.ty;\n }\n return options;\n };\n /**\n * Will render the SVG background image \\\n *\n * @returns {void} Will render the SVG background image .\\\n *\n * @param { Transforms} background - Provide the transforms values .\n * @param { boolean} diagramElement - Provide element for the daigram.\n * @param { boolean} x - Provide the rendering mode of the daigram.\n * @param { boolean} y - Provide the rendering mode of the daigram.\n * @param { boolean} width - Provide the rendering mode of the daigram.\n * @param { boolean} height - Provide the rendering mode of the daigram.\n * @private\n */\n DiagramRenderer.renderSvgBackGroundImage = function (background, diagramElement, x, y, width, height) {\n if (background.source) {\n var backgroundLayer = getBackgroundLayerSvg(diagramElement.id);\n var target = backgroundLayer.getElementById(diagramElement.id + '_image');\n if (!target) {\n var bgimageLayer = getBackgroundImageLayer(diagramElement.id);\n target = document.createElementNS('http://www.w3.org/2000/svg', 'image');\n target.setAttribute('id', diagramElement.id + '_image');\n bgimageLayer.appendChild(target);\n }\n var imageObj = new Image();\n imageObj.src = background.source;\n target.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', imageObj.src.toString());\n var scale = background.scale !== 'None' ? background.scale : '';\n var imgAlign = background.align;\n var aspectRatio = imgAlign.charAt(0).toLowerCase() + imgAlign.slice(1);\n if (scale) {\n aspectRatio += ' ' + scale.charAt(0).toLowerCase() + scale.slice(1);\n }\n var attr = {\n 'id': diagramElement.id + '_image', 'x': x, 'y': y,\n 'width': width, 'height': height,\n 'preserveAspectRatio': aspectRatio\n };\n setAttributeSvg(target, attr);\n }\n };\n /**\n * Method used to transform the layer \\\n *\n * @returns {boolean} Method used to transform the layer .\\\n * @param { Transforms} transform - Provide the transforms values .\n * @param { boolean} svgMode - Provide the rendering mode of the daigram.\n * @private\n */\n DiagramRenderer.prototype.transformLayers = function (transform, svgMode) {\n var tx = transform.tx * transform.scale;\n var ty = transform.ty * transform.scale;\n var domTable = 'domTable';\n if (tx !== this.transform.x || ty !== this.transform.y || (tx === 0 || ty === 0)) {\n //diagram layer\n if (svgMode) {\n if (!window[\"\" + domTable][this.diagramId + '_diagramLayer']) {\n window[\"\" + domTable][this.diagramId + '_diagramLayer'] =\n this.diagramSvgLayer.getElementById(this.diagramId + '_diagramLayer');\n }\n var diagramLayer = window[\"\" + domTable][this.diagramId + '_diagramLayer'];\n diagramLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n }\n //background\n //gridline\n var gridLayer = getGridLayer(this.diagramId);\n gridLayer.setAttribute('transform', 'translate(' + (transform.tx * transform.scale) + ','\n + (transform.ty * transform.scale) + ')');\n //portslayer\n if (!window[\"\" + domTable][this.diagramId + '_diagramPorts']) {\n window[\"\" + domTable][this.diagramId + '_diagramPorts'] = this.iconSvgLayer.getElementById(this.diagramId + '_diagramPorts');\n }\n var portsLayer = window[\"\" + domTable][this.diagramId + '_diagramPorts'];\n portsLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n //expandlayer\n if (!window[\"\" + domTable][this.diagramId + '_diagramExpander']) {\n window[\"\" + domTable][this.diagramId + '_diagramExpander'] =\n this.iconSvgLayer.getElementById(this.diagramId + '_diagramExpander');\n }\n var expandLayer = window[\"\" + domTable][this.diagramId + '_diagramExpander'];\n expandLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n //nativelayer\n if (!window[\"\" + domTable][this.diagramId + '_nativeLayer']) {\n window[\"\" + domTable][this.diagramId + '_nativeLayer'] = this.nativeSvgLayer.getElementById(this.diagramId + '_nativeLayer');\n }\n var nativeLayer = window[\"\" + domTable][this.diagramId + '_nativeLayer'];\n nativeLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n //htmlLayer\n var htmlLayer = getHTMLLayer(this.diagramId).children[0];\n htmlLayer.style.transform = 'translate('\n + (transform.tx * transform.scale) + 'px,' + (transform.ty * transform.scale) + 'px)scale('\n + transform.scale + ')';\n this.transform = { x: transform.tx * transform.scale, y: transform.ty * transform.scale };\n return true;\n }\n return false;\n };\n /**\n * Method used to update the nodes in the diagram \\\n *\n * @returns {void} Method used to update the nodes in the diagram .\\\n * @param { HTMLCanvasElement} element - Provide the diagram element .\n * @param { HTMLCanvasElement} diagramElementsLayer - Provide the diagram layer element .\n * @param { HTMLCanvasElement} htmlLayer -Provide the html element .\n * @param { HTMLCanvasElement} transform - Provide the transform value .\n * @param { HTMLCanvasElement} insertIndex - Provide the index value.\n * @param { object} centerPoint - Provide the center point value.\n * @private\n */\n DiagramRenderer.prototype.updateNode = function (element, diagramElementsLayer, htmlLayer, transform, insertIndex, centerPoint) {\n this.renderElement(element, diagramElementsLayer, htmlLayer, transform, this.getParentSvg(element), undefined, undefined, insertIndex, null, centerPoint);\n };\n return DiagramRenderer;\n}());\nexport { DiagramRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\n/**\n * Defines the size and appearance of the diagram page\n */\nvar Background = /** @class */ (function (_super) {\n __extends(Background, _super);\n function Background() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Background.prototype, \"source\", void 0);\n __decorate([\n Property('transparent')\n ], Background.prototype, \"color\", void 0);\n __decorate([\n Property('None')\n ], Background.prototype, \"scale\", void 0);\n __decorate([\n Property('None')\n ], Background.prototype, \"align\", void 0);\n return Background;\n}(ChildProperty));\nexport { Background };\nvar FitOptions = /** @class */ (function (_super) {\n __extends(FitOptions, _super);\n function FitOptions() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Page')\n ], FitOptions.prototype, \"mode\", void 0);\n __decorate([\n Property('PageSettings')\n ], FitOptions.prototype, \"region\", void 0);\n __decorate([\n Complex({ top: 25, bottom: 25, left: 25, right: 25 }, Margin)\n ], FitOptions.prototype, \"margin\", void 0);\n __decorate([\n Property(false)\n ], FitOptions.prototype, \"canZoomIn\", void 0);\n __decorate([\n Property(undefined)\n ], FitOptions.prototype, \"customBounds\", void 0);\n __decorate([\n Property(false)\n ], FitOptions.prototype, \"canFit\", void 0);\n return FitOptions;\n}(ChildProperty));\nexport { FitOptions };\n/**\n * Defines the size and appearance of diagram page\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * pageSettings: { width: 800, height: 600, orientation: 'Landscape',\n * background: { color: 'blue' }, boundaryConstraints: 'Infinity',\n * multiplePage: true, showPageBreaks: true, },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar PageSettings = /** @class */ (function (_super) {\n __extends(PageSettings, _super);\n function PageSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], PageSettings.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], PageSettings.prototype, \"height\", void 0);\n __decorate([\n Complex({}, Margin)\n ], PageSettings.prototype, \"margin\", void 0);\n __decorate([\n Property('Landscape')\n ], PageSettings.prototype, \"orientation\", void 0);\n __decorate([\n Property('Infinity')\n ], PageSettings.prototype, \"boundaryConstraints\", void 0);\n __decorate([\n Complex({}, Background)\n ], PageSettings.prototype, \"background\", void 0);\n __decorate([\n Property(false)\n ], PageSettings.prototype, \"multiplePage\", void 0);\n __decorate([\n Property(false)\n ], PageSettings.prototype, \"showPageBreaks\", void 0);\n __decorate([\n Complex({}, FitOptions)\n ], PageSettings.prototype, \"fitOptions\", void 0);\n return PageSettings;\n}(ChildProperty));\nexport { PageSettings };\n/**\n * Diagram ScrollSettings module handles the scroller properties of the diagram\n */\nvar ScrollSettings = /** @class */ (function (_super) {\n __extends(ScrollSettings, _super);\n function ScrollSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"horizontalOffset\", void 0);\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"verticalOffset\", void 0);\n __decorate([\n Property(1)\n ], ScrollSettings.prototype, \"currentZoom\", void 0);\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"viewPortWidth\", void 0);\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"viewPortHeight\", void 0);\n __decorate([\n Property(0.2)\n ], ScrollSettings.prototype, \"minZoom\", void 0);\n __decorate([\n Property(30)\n ], ScrollSettings.prototype, \"maxZoom\", void 0);\n __decorate([\n Property('Diagram')\n ], ScrollSettings.prototype, \"scrollLimit\", void 0);\n __decorate([\n Property()\n ], ScrollSettings.prototype, \"scrollableArea\", void 0);\n __decorate([\n Property(false)\n ], ScrollSettings.prototype, \"canAutoScroll\", void 0);\n __decorate([\n Complex({ left: 15, right: 15, top: 15, bottom: 15 }, Margin)\n ], ScrollSettings.prototype, \"autoScrollBorder\", void 0);\n __decorate([\n Complex({ left: 0, right: 0, top: 0, bottom: 0 }, Margin)\n ], ScrollSettings.prototype, \"padding\", void 0);\n __decorate([\n Property(0.2)\n ], ScrollSettings.prototype, \"zoomFactor\", void 0);\n return ScrollSettings;\n}(ChildProperty));\nexport { ScrollSettings };\n","/**\n * ServiceLocator\n *\n * @hidden\n */\nvar ServiceLocator = /** @class */ (function () {\n function ServiceLocator() {\n this.services = {};\n }\n ServiceLocator.prototype.register = function (name, type) {\n this.services[\"\" + name] = type;\n };\n ServiceLocator.prototype.getService = function (name) {\n return this.services[\"\" + name];\n };\n return ServiceLocator;\n}());\nexport { ServiceLocator };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { SnapConstraints } from '../enum/enum';\n/**\n * Provides a visual guidance while dragging or arranging the objects on the Diagram surface\n */\nvar Gridlines = /** @class */ (function (_super) {\n __extends(Gridlines, _super);\n function Gridlines() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('lightgray')\n ], Gridlines.prototype, \"lineColor\", void 0);\n __decorate([\n Property('')\n ], Gridlines.prototype, \"lineDashArray\", void 0);\n __decorate([\n Property([1.25, 18.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75])\n ], Gridlines.prototype, \"lineIntervals\", void 0);\n __decorate([\n Property([1, 19, 0.5, 19.5, 0.5, 19.5, 0.5, 19.5, 0.5, 19.5])\n ], Gridlines.prototype, \"dotIntervals\", void 0);\n __decorate([\n Property([20])\n ], Gridlines.prototype, \"snapIntervals\", void 0);\n return Gridlines;\n}(ChildProperty));\nexport { Gridlines };\n/**\n * Defines the gridlines and defines how and when the objects have to be snapped\n *\n * @default {}\n */\nvar SnapSettings = /** @class */ (function (_super) {\n __extends(SnapSettings, _super);\n function SnapSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({}, Gridlines)\n ], SnapSettings.prototype, \"horizontalGridlines\", void 0);\n __decorate([\n Complex({}, Gridlines)\n ], SnapSettings.prototype, \"verticalGridlines\", void 0);\n __decorate([\n Property(SnapConstraints.All)\n ], SnapSettings.prototype, \"constraints\", void 0);\n __decorate([\n Property(5)\n ], SnapSettings.prototype, \"snapAngle\", void 0);\n __decorate([\n Property('Lines')\n ], SnapSettings.prototype, \"gridType\", void 0);\n __decorate([\n Property(5)\n ], SnapSettings.prototype, \"snapObjectDistance\", void 0);\n __decorate([\n Property('#07EDE1')\n ], SnapSettings.prototype, \"snapLineColor\", void 0);\n return SnapSettings;\n}(ChildProperty));\nexport { SnapSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\n/**\n * Defines the properties of both horizontal and vertical guides/rulers to measure the diagram area.\n */\nvar DiagramRuler = /** @class */ (function (_super) {\n __extends(DiagramRuler, _super);\n function DiagramRuler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(5)\n ], DiagramRuler.prototype, \"interval\", void 0);\n __decorate([\n Property(100)\n ], DiagramRuler.prototype, \"segmentWidth\", void 0);\n __decorate([\n Property('Horizontal')\n ], DiagramRuler.prototype, \"orientation\", void 0);\n __decorate([\n Property('RightOrBottom')\n ], DiagramRuler.prototype, \"tickAlignment\", void 0);\n __decorate([\n Property('red')\n ], DiagramRuler.prototype, \"markerColor\", void 0);\n __decorate([\n Property(25)\n ], DiagramRuler.prototype, \"thickness\", void 0);\n __decorate([\n Property(null)\n ], DiagramRuler.prototype, \"arrangeTick\", void 0);\n return DiagramRuler;\n}(ChildProperty));\nexport { DiagramRuler };\n/**\n * Defines the ruler settings of diagram\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * rulerSettings: { showRulers: true,\n * horizontalRuler: { segmentWidth: 50,interval: 10 },\n * verticalRuler: {segmentWidth: 200,interval: 20}\n * },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar RulerSettings = /** @class */ (function (_super) {\n __extends(RulerSettings, _super);\n function RulerSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], RulerSettings.prototype, \"showRulers\", void 0);\n __decorate([\n Property(true)\n ], RulerSettings.prototype, \"dynamicGrid\", void 0);\n __decorate([\n Complex({ orientation: 'Horizontal' }, DiagramRuler)\n ], RulerSettings.prototype, \"horizontalRuler\", void 0);\n __decorate([\n Complex({ orientation: 'Vertical' }, DiagramRuler)\n ], RulerSettings.prototype, \"verticalRuler\", void 0);\n return RulerSettings;\n}(ChildProperty));\nexport { RulerSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar DataMappingItems = /** @class */ (function (_super) {\n __extends(DataMappingItems, _super);\n function DataMappingItems() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], DataMappingItems.prototype, \"property\", void 0);\n __decorate([\n Property('')\n ], DataMappingItems.prototype, \"field\", void 0);\n return DataMappingItems;\n}(ChildProperty));\nexport { DataMappingItems };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex, Collection } from '@syncfusion/ej2-base';\nimport { DataMappingItems as DataMappingItems } from './data-mapping';\n/**\n * Configures the data source that is to be bound with diagram\n * ```html\n *
\n * ```\n * ```typescript\n * let data: object[] = [\n * { Name: \"Elizabeth\", Role: \"Director\" },\n * { Name: \"Christina\", ReportingPerson: \"Elizabeth\", Role: \"Manager\" },\n * { Name: \"Yoshi\", ReportingPerson: \"Christina\", Role: \"Lead\" },\n * { Name: \"Philip\", ReportingPerson: \"Christina\", Role: \"Lead\" },\n * { Name: \"Yang\", ReportingPerson: \"Elizabeth\", Role: \"Manager\" },\n * { Name: \"Roland\", ReportingPerson: \"Yang\", Role: \"Lead\" },\n * { Name: \"Yvonne\", ReportingPerson: \"Yang\", Role: \"Lead\" }\n * ];\n * let items: DataManager = new DataManager(data as JSON[]);\n * let diagram: Diagram = new Diagram({\n * ...\n * layout: {\n * type: 'OrganizationalChart'\n * },\n * dataSourceSettings: {\n * id: 'Name', parentId: 'ReportingPerson', dataManager: items,\n * }\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar CrudAction = /** @class */ (function (_super) {\n __extends(CrudAction, _super);\n function CrudAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], CrudAction.prototype, \"read\", void 0);\n __decorate([\n Property('')\n ], CrudAction.prototype, \"create\", void 0);\n __decorate([\n Property('')\n ], CrudAction.prototype, \"update\", void 0);\n __decorate([\n Property('')\n ], CrudAction.prototype, \"destroy\", void 0);\n __decorate([\n Property()\n ], CrudAction.prototype, \"customFields\", void 0);\n return CrudAction;\n}(ChildProperty));\nexport { CrudAction };\nvar ConnectionDataSource = /** @class */ (function (_super) {\n __extends(ConnectionDataSource, _super);\n function ConnectionDataSource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], ConnectionDataSource.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], ConnectionDataSource.prototype, \"sourceID\", void 0);\n __decorate([\n Property('')\n ], ConnectionDataSource.prototype, \"targetID\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"sourcePointX\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"sourcePointY\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"targetPointX\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"targetPointY\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"dataManager\", void 0);\n __decorate([\n Complex({}, CrudAction)\n ], ConnectionDataSource.prototype, \"crudAction\", void 0);\n return ConnectionDataSource;\n}(ChildProperty));\nexport { ConnectionDataSource };\nvar DataSource = /** @class */ (function (_super) {\n __extends(DataSource, _super);\n function DataSource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], DataSource.prototype, \"id\", void 0);\n __decorate([\n Property(null)\n ], DataSource.prototype, \"dataManager\", void 0);\n __decorate([\n Property(null)\n ], DataSource.prototype, \"dataSource\", void 0);\n __decorate([\n Property('')\n ], DataSource.prototype, \"root\", void 0);\n __decorate([\n Property('')\n ], DataSource.prototype, \"parentId\", void 0);\n __decorate([\n Property()\n ], DataSource.prototype, \"doBinding\", void 0);\n __decorate([\n Collection([], DataMappingItems)\n ], DataSource.prototype, \"dataMapSettings\", void 0);\n __decorate([\n Complex({}, CrudAction)\n ], DataSource.prototype, \"crudAction\", void 0);\n __decorate([\n Complex({}, ConnectionDataSource)\n ], DataSource.prototype, \"connectionDataSource\", void 0);\n return DataSource;\n}(ChildProperty));\nexport { DataSource };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Margin } from '../core/appearance';\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Defines the behavior of the automatic layouts\n */\nvar Layout = /** @class */ (function (_super) {\n __extends(Layout, _super);\n function Layout() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Layout.prototype, \"fixedNode\", void 0);\n __decorate([\n Property(30)\n ], Layout.prototype, \"horizontalSpacing\", void 0);\n __decorate([\n Property('SamePoint')\n ], Layout.prototype, \"connectionPointOrigin\", void 0);\n __decorate([\n Property('Nonlinear')\n ], Layout.prototype, \"arrangement\", void 0);\n __decorate([\n Property(30)\n ], Layout.prototype, \"verticalSpacing\", void 0);\n __decorate([\n Property(30)\n ], Layout.prototype, \"maxIteration\", void 0);\n __decorate([\n Property(40)\n ], Layout.prototype, \"springFactor\", void 0);\n __decorate([\n Property(50)\n ], Layout.prototype, \"springLength\", void 0);\n __decorate([\n Complex({ left: 50, top: 50, right: 0, bottom: 0 }, Margin)\n ], Layout.prototype, \"margin\", void 0);\n __decorate([\n Property('Auto')\n ], Layout.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Auto')\n ], Layout.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property('TopToBottom')\n ], Layout.prototype, \"orientation\", void 0);\n __decorate([\n Property('Auto')\n ], Layout.prototype, \"connectionDirection\", void 0);\n __decorate([\n Property('Default')\n ], Layout.prototype, \"connectorSegments\", void 0);\n __decorate([\n Property('None')\n ], Layout.prototype, \"type\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"getLayoutInfo\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"layoutInfo\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"getBranch\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"bounds\", void 0);\n __decorate([\n Property(true)\n ], Layout.prototype, \"enableAnimation\", void 0);\n __decorate([\n Property(false)\n ], Layout.prototype, \"enableRouting\", void 0);\n __decorate([\n Property('')\n ], Layout.prototype, \"root\", void 0);\n return Layout;\n}(ChildProperty));\nexport { Layout };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Point } from '../primitives/point';\nimport { Rect } from '../primitives/rect';\nimport { intersect3, cloneBlazorObject } from '../utility/diagram-util';\nimport { cloneObject } from '../utility/base-util';\nimport { DiagramEvent } from './../enum/enum';\nimport { contains } from './actions';\nimport { getOppositeDirection } from '../utility/connector';\nimport { StraightSegment, OrthogonalSegment } from '../objects/connector';\nimport { ToolBase } from './tool';\nimport { isBlazor } from '@syncfusion/ej2-base';\n/**\n * Multiple segments editing for Connector\n */\nvar ConnectorEditing = /** @class */ (function (_super) {\n __extends(ConnectorEditing, _super);\n function ConnectorEditing(commandHandler, endPoint) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.oldValue = null;\n _this.endPoint = endPoint;\n return _this;\n }\n /**\n * mouseDown method\\\n *\n * @returns { void } mouseDown method .\\\n * @param {MouseEventArgs} args - provide the args value.\n * @private\n */\n ConnectorEditing.prototype.mouseDown = function (args) {\n var connectors;\n var edit = true;\n if (args.source && args.source.connectors) {\n connectors = args.source.connectors[0];\n }\n if (args.info && args.actualObject) {\n edit = args.info.ctrlKey && args.actualObject.type !== 'Orthogonal';\n }\n if (connectors && edit) {\n this.inAction = true;\n this.undoElement = cloneObject(args.source);\n _super.prototype.mouseDown.call(this, args);\n // Sets the selected segment\n for (var i = 0; i < connectors.segments.length; i++) {\n var segment = connectors.segments[parseInt(i.toString(), 10)];\n if (this.endPoint === 'OrthoThumb') {\n for (var j = 0; j < segment.points.length - 1; j++) {\n var segPoint = { x: 0, y: 0 };\n segPoint.x = ((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2);\n segPoint.y = ((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2);\n if (contains(this.currentPosition, segPoint, 30)) {\n this.selectedSegment = segment;\n this.segmentIndex = j;\n }\n }\n }\n else {\n if (contains(this.currentPosition, segment.point, 10)) {\n this.selectedSegment = segment;\n }\n }\n }\n }\n };\n /**\n * mouseMove method\\\n *\n * @returns { void } mouseMove method .\\\n * @param {MouseEventArgs} args - provide the args value.\n * @private\n */\n ConnectorEditing.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n this.currentPosition = args.position;\n if (this.currentPosition && this.prevPosition) {\n var diffY = this.currentPosition.y - this.prevPosition.y;\n var diffX = this.currentPosition.x - this.prevPosition.x;\n this.currentPosition = this.commandHandler.snapConnectorEnd(this.currentPosition);\n var connector = void 0;\n var newValue = void 0;\n var isSame = false;\n if (args.source && args.source.connectors) {\n connector = args.source.connectors[0];\n }\n if (Point.equals(this.startPosition, this.prevPosition)) {\n isSame = true;\n }\n if (this.oldValue === null) {\n this.oldValue = cloneObject(this.selectedSegment);\n }\n var arg = {\n source: connector, state: 'Start', oldValue: this.oldValue, newValue: this.oldValue,\n segment: this.selectedSegment, cancel: false\n };\n //EJ2-66217 - Support to add event for segment points editing in connector.\n arg = {\n source: cloneBlazorObject(connector), state: 'Start', oldValue: cloneBlazorObject(this.oldValue),\n newValue: cloneBlazorObject(this.oldValue),\n segment: cloneBlazorObject(this.selectedSegment), cancel: false\n };\n if (isSame && !isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.segmentChange, arg);\n }\n // When cancel is set to true at state Start, the segment change will be prevented.\n if (arg.cancel) {\n this.commandHandler.diagram.resetTool();\n }\n if ((this.inAction && this.selectedSegment !== undefined && this.endPoint !== undefined) && (diffX !== 0 || diffY !== 0) && !arg.cancel) {\n if (this.endPoint === 'OrthoThumb') {\n this.blocked = !this.dragOrthogonalSegment(connector, this.selectedSegment, this.currentPosition, this.segmentIndex);\n if (this.oldValue.length === null && this.oldValue.direction === null) {\n this.oldValue = cloneObject(this.selectedSegment);\n }\n newValue = cloneObject(this.selectedSegment);\n }\n else {\n var tx = this.currentPosition.x - this.selectedSegment.point.x;\n var ty = this.currentPosition.y - this.selectedSegment.point.y;\n var index = connector.segments.indexOf(this.selectedSegment);\n this.blocked = !this.commandHandler.dragControlPoint(connector, tx, ty, false, index);\n newValue = cloneObject(this.selectedSegment);\n }\n this.commandHandler.updateSelector();\n this.currentPosition = args.position;\n var arg1 = {\n source: cloneBlazorObject(connector), state: 'Progress', oldValue: cloneBlazorObject(this.oldValue),\n newValue: cloneBlazorObject(newValue),\n segment: cloneBlazorObject(this.selectedSegment), cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.segmentChange, arg1);\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * mouseUp method\\\n *\n * @returns { void } mouseUp method .\\\n * @param {MouseEventArgs} args - provide the args value.\n * @private\n */\n ConnectorEditing.prototype.mouseUp = function (args) {\n var connector;\n var oldValues;\n if (args.source && args.source.connectors) {\n connector = args.source.connectors[0];\n oldValues = { segments: connector.segments };\n }\n if (args && args.source && args.info && args.info.ctrlKey && args.info.shiftKey && connector.type === 'Straight') {\n this.addOrRemoveSegment(connector, this.currentPosition);\n }\n else {\n if (this.endPoint === 'OrthoThumb' && this.selectedSegment) {\n var index = connector.segments.indexOf(this.selectedSegment);\n var prev = connector.segments[index - 1];\n var next = connector.segments[index + 1];\n if (index === connector.segments.length - 2\n && this.updateLastSegment(connector, this.selectedSegment)) {\n connector.segments.splice(connector.segments.length - 2, 1);\n }\n else {\n if (prev && Math.abs(prev.length) < 5) {\n if (index !== 1) {\n this.removePrevSegment(connector, index);\n }\n }\n else if (next) {\n var len = Point.distancePoints(next.points[0], next.points[1]);\n var length_1 = ((next.length || next.length === 0) ? next.length : len);\n if ((Math.abs(length_1) <= 5)) {\n this.removeNextSegment(connector, index);\n }\n }\n }\n this.commandHandler.updateEndPoint(connector, oldValues);\n // EJ2-65063 - While mouseUp set the selectedSegmentIndex as zero.\n connector.selectedSegmentIndex = 0;\n }\n }\n if (this.undoElement) {\n //let obj: SelectorModel;\n var obj = cloneObject(args.source);\n var entry = {\n type: 'SegmentChanged', redoObject: obj, undoObject: this.undoElement, category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n }\n if (connector.isBezierEditing) {\n connector.isBezierEditing = false;\n }\n if (this.prevPosition !== this.startPosition) {\n var arg = {\n source: cloneBlazorObject(connector), state: 'Completed', oldValue: cloneBlazorObject(this.oldValue),\n newValue: cloneObject(this.selectedSegment), cancel: false, segment: cloneBlazorObject(this.selectedSegment)\n };\n this.commandHandler.triggerEvent(DiagramEvent.segmentChange, arg);\n }\n _super.prototype.mouseUp.call(this, args);\n };\n ConnectorEditing.prototype.removePrevSegment = function (connector, index) {\n var first = connector.segments[index - 2];\n var next = connector.segments[index + 1];\n var length = (next.length || next.length === 0) ? next.length : Point.distancePoints(next.points[0], next.points[1]);\n if (!(length <= 5)) {\n var removeSegments = connector.segments.slice(index - 1, index + 1);\n var args = {\n element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false\n };\n if (isBlazor()) {\n args = {\n element: cloneBlazorObject(connector), removeSegments: cloneBlazorObject(removeSegments),\n type: 'Removal', cancel: args.cancel\n };\n }\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n var last = connector.segments[index + 1];\n connector.segments.splice(index - 1, 2);\n var segment = this.selectedSegment;\n if (segment.direction === 'Left' || segment.direction === 'Right') {\n first.points[first.points.length - 1].x = last.points[0].x;\n last.points[0].y = first.points[first.points.length - 1].y;\n }\n else {\n first.points[first.points.length - 1].y = last.points[0].y;\n last.points[0].x = first.points[first.points.length - 1].x;\n }\n if (segment.length || segment.length === 0) {\n this.findSegmentDirection(first);\n }\n this.findSegmentDirection(last);\n }\n }\n };\n ConnectorEditing.prototype.findSegmentDirection = function (segment) {\n if (segment.direction && (segment.length || segment.length === 0)) {\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n segment.direction = Point.direction(segment.points[0], segment.points[segment.points.length - 1]);\n }\n };\n ConnectorEditing.prototype.removeNextSegment = function (connector, index) {\n var segment = this.selectedSegment;\n var first = connector.segments[index - 1];\n var last = connector.segments[index + 2];\n var next = connector.segments[index + 1];\n // eslint-disable-next-line\n var removeSegments;\n var args;\n if (next.length || next.length === 0) {\n removeSegments = connector.segments.slice(index, 2);\n args = {\n element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false\n };\n args = {\n element: cloneBlazorObject(connector), removeSegments: cloneBlazorObject(removeSegments),\n type: 'Removal', cancel: false\n };\n if (isBlazor()) {\n args = {\n element: cloneBlazorObject(connector), removeSegments: cloneBlazorObject(removeSegments),\n type: 'Removal', cancel: false\n };\n }\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n connector.segments.splice(index, 2);\n if (segment.direction === 'Top' || segment.direction === 'Bottom') {\n last.points[0].y = segment.points[0].y;\n first.points[first.points.length - 1].x = last.points[0].x;\n }\n else {\n last.points[0].x = segment.points[0].x;\n first.points[first.points.length - 1].y = last.points[0].y;\n }\n }\n }\n else {\n removeSegments = connector.segments.slice(index + 1, 1);\n args = {\n element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false\n };\n if (isBlazor()) {\n args = {\n element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false\n };\n }\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n connector.segments.splice(index + 1, 1);\n if (segment.direction === 'Top' || segment.direction === 'Bottom') {\n first.points[first.points.length - 1].x = next.points[next.points.length - 1].x;\n }\n else {\n first.points[first.points.length - 1].y = next.points[next.points.length - 1].y;\n }\n this.findSegmentDirection(first);\n segment.length = segment.direction = null;\n }\n }\n if (first && last && !args.cancel) {\n first.length = Point.distancePoints(first.points[0], last.points[0]);\n first.direction = Point.direction(first.points[0], last.points[0]);\n if (last.length || last.length === 0) {\n last.length = Point.distancePoints(first.points[first.points.length - 1], last.points[last.points.length - 1]);\n var point1 = first.points;\n var point2 = last.points;\n last.direction = Point.direction(point1[point1.length - 1], point2[point2.length - 1]);\n }\n }\n };\n ConnectorEditing.prototype.addOrRemoveSegment = function (connector, point) {\n var updateSeg;\n var segmentIndex;\n var oldValues = { segments: connector.segments };\n for (var i = 0; i < connector.segments.length; i++) {\n var segment = (connector.segments)[parseInt(i.toString(), 10)];\n if (contains(point, segment.point, connector.hitPadding)) {\n segmentIndex = i;\n updateSeg = true;\n }\n }\n if (updateSeg && segmentIndex !== undefined) {\n if (connector.segments && connector.segments[parseInt(segmentIndex.toString(), 10)] && connector.segments[parseInt(segmentIndex.toString(), 10)].type === 'Straight') {\n var segment = connector.segments[parseInt(segmentIndex.toString(), 10)];\n var previous = connector.segments[segmentIndex + 1];\n if (previous) {\n connector.segments.splice(segmentIndex, 1);\n previous.points[0] = segment.points[0];\n }\n }\n }\n else {\n this.commandHandler.enableServerDataBinding(false);\n var index = this.findIndex(connector, point);\n if (connector.segments && connector.segments[parseInt(index.toString(), 10)] && connector.segments[parseInt(index.toString(), 10)].type === 'Straight') {\n var segment = connector.segments[parseInt(index.toString(), 10)];\n var newseg = new StraightSegment(connector, 'segments', { type: 'Straight', point: point }, true);\n newseg.points[0] = segment.points[0];\n newseg.points[1] = point;\n segment.points[0] = point;\n connector.segments.splice(index, 0, newseg);\n updateSeg = true;\n }\n this.commandHandler.enableServerDataBinding(true);\n }\n if (updateSeg) {\n this.commandHandler.updateEndPoint(connector, oldValues);\n }\n };\n ConnectorEditing.prototype.findIndex = function (connector, point) {\n var intersectingSegs = [];\n for (var i = 0; i < connector.segments.length; i++) {\n var segment = connector.segments[parseInt(i.toString(), 10)];\n var rect = Rect.toBounds([segment.points[0], segment.points[1]]);\n rect.Inflate(connector.hitPadding);\n if (rect.containsPoint(point)) {\n intersectingSegs.push(segment);\n }\n }\n if (intersectingSegs.length === 1) {\n return connector.segments.indexOf(intersectingSegs[0]);\n }\n else {\n var ratio = void 0;\n var min = void 0;\n var index = void 0;\n var seg = void 0;\n var v = void 0;\n var h = void 0;\n for (var i = 0; i < intersectingSegs.length; i++) {\n seg = intersectingSegs[parseInt(i.toString(), 10)];\n v = (point.y - seg.points[0].y) / (seg.points[1].y - point.y);\n h = (point.x - seg.points[0].x) / (seg.points[1].x - point.x);\n ratio = Math.abs(v - h);\n if (i === 0) {\n min = ratio;\n index = 0;\n }\n if (ratio < min) {\n min = ratio;\n index = i;\n }\n }\n return connector.segments.indexOf(intersectingSegs[parseInt(index.toString(), 10)]);\n }\n };\n ConnectorEditing.prototype.dragOrthogonalSegment = function (obj, segment, point, segmentIndex) {\n var segmentPoint = { x: 0, y: 0 };\n var oldValues = { segments: obj.segments };\n segmentPoint.x = ((segment.points[parseInt(segmentIndex.toString(), 10)].x + segment.points[segmentIndex + 1].x) / 2);\n segmentPoint.y = ((segment.points[parseInt(segmentIndex.toString(), 10)].y + segment.points[segmentIndex + 1].y) / 2);\n var ty = point.y - segmentPoint.y;\n var tx = point.x - segmentPoint.x;\n var index = obj.segments.indexOf(segment);\n var update = false;\n //const orientation: string = (segment.points[0].y.toFixed(2) === segment.points[1].y.toFixed(2)) ? 'horizontal' : 'vertical';\n //const prevSegment: OrthogonalSegmentModel; const nextSegment: OrthogonalSegmentModel;\n // EJ2-65063 - If the allowNodeOverlap is set as true means then we set the segment index which is going to drag in selectedSegmentIndex property\n if (obj.allowNodeOverlap) {\n obj.selectedSegmentIndex = index ? index : segmentIndex;\n }\n if (index !== -1) {\n if (index === 0 && obj.segments.length === 1 && segment.points.length === 2) {\n index = this.addSegments(obj, segment, tx, ty, index);\n update = true;\n }\n else if (index === obj.segments.length - 1 && (segment.direction === null || segment.length === null)) {\n index = this.addTerminalSegment(obj, segment, tx, ty, segmentIndex);\n update = true;\n }\n else if (index === 0) {\n index = this.insertFirstSegment(obj, segment, tx, ty, index);\n update = true;\n }\n if (index) {\n if (update) {\n this.selectedSegment = segment = obj.segments[parseInt(index.toString(), 10)];\n this.segmentIndex = 0;\n }\n this.updateAdjacentSegments(obj, index, tx, ty);\n this.commandHandler.updateEndPoint(obj, oldValues);\n }\n }\n return true;\n };\n ConnectorEditing.prototype.addSegments = function (obj, segment, tx, ty, coll) {\n var index;\n var segments = []; //let len: number;\n var length = Point.distancePoints(segment.points[0], segment.points[1]);\n var segmentDirection = Point.direction(segment.points[0], segment.points[1]);\n segments.push(new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: segmentDirection, length: length / 4 }, true));\n var direction = (segment.points[0].y === segment.points[1].y) ? ((ty > 0) ? 'Bottom' : 'Top') : ((tx > 0) ? 'Right' : 'Left');\n var len = (segment.points[0].x === segment.points[1].x) ? ty : tx;\n segments.push(new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: direction, length: len }, true));\n segments.push(new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: segmentDirection, length: length / 2 }, true));\n var args = {\n element: obj, addSegments: segments, type: 'Addition', cancel: false\n };\n if (isBlazor()) {\n args = {\n addSegments: cloneBlazorObject(segments), type: 'Addition',\n cancel: args.cancel, element: cloneBlazorObject(obj)\n };\n }\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n obj.segments = segments.concat(obj.segments);\n index = coll + 2;\n }\n return index;\n };\n // eslint-disable-next-line\n ConnectorEditing.prototype.insertFirstSegment = function (obj, segment, tx, ty, coll) {\n var direction;\n var length;\n var segments = [];\n var segValues;\n var index;\n var insertseg;\n if (obj.sourcePortID && segment.length && obj.segments[0].points.length > 2) {\n var prev = void 0;\n for (var i = 0; i < segment.points.length - 1; i++) {\n var len = Point.distancePoints(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n var dir = Point.direction(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n insertseg = new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: dir, length: len }, true);\n if (insertseg.length === 0) {\n if (prev && (prev.direction === 'Top' || prev.direction === 'Bottom')) {\n insertseg.direction = tx > 0 ? 'Right' : 'Left';\n }\n else {\n insertseg.direction = ty > 0 ? 'Bottom' : 'Top';\n }\n }\n prev = insertseg;\n segments.push(insertseg);\n }\n }\n else {\n segValues = { type: 'Orthogonal', direction: segment.direction, length: segment.length / 3 };\n segments.push(new OrthogonalSegment(obj, 'segments', segValues, true));\n if (segment.direction === 'Bottom' || segment.direction === 'Top') {\n length = Math.abs(tx);\n direction = tx > 0 ? 'Right' : 'Left';\n }\n else {\n length = Math.abs(ty);\n direction = ty > 0 ? 'Bottom' : 'Top';\n }\n insertseg = new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: direction, length: length }, true);\n segments.push(insertseg);\n }\n var args = {\n element: obj, addSegments: segments, type: 'Addition', cancel: false\n };\n if (isBlazor()) {\n args = {\n element: cloneBlazorObject(obj), addSegments: cloneBlazorObject(segments), type: 'Addition',\n cancel: args.cancel\n };\n }\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n if (obj.sourcePortID && segment.length && obj.segments[0].points.length > 2) {\n obj.segments.splice(0, 1);\n index = 1;\n }\n else {\n var nextseg = obj.segments[1];\n if (nextseg && nextseg.length) {\n nextseg.length = (direction !== nextseg.direction) ? nextseg.length + length : nextseg.length - length;\n }\n index = 2;\n segment.length = 2 * segment.length / 3;\n }\n obj.segments = segments.concat(obj.segments);\n }\n return index;\n };\n ConnectorEditing.prototype.updateAdjacentSegments = function (obj, index, tx, ty) {\n var current = obj.segments[parseInt(index.toString(), 10)];\n var endPoint = current.points[current.points.length - 1];\n var startPoint = current.points[0];\n var isNextUpdate = true;\n if (current.type === 'Orthogonal') {\n current.points[0] = startPoint;\n current.points[current.points.length - 1] = endPoint;\n var prev = obj.segments[index - 1];\n if (prev) {\n isNextUpdate = this.updatePreviousSegment(tx, ty, obj, index);\n }\n if (obj.segments.length - 1 > index && isNextUpdate) {\n var nextSegment = obj.segments[index + 1];\n this.updateNextSegment(obj, current, nextSegment, tx, ty);\n }\n }\n };\n ConnectorEditing.prototype.addTerminalSegment = function (connector, segment, tx, ty, segmentIndex) {\n //const oldValues: Connector = { segments: connector.segments } as Connector;\n var index = connector.segments.indexOf(segment);\n var first;\n var insertseg;\n var len;\n var dir;\n var segments = [];\n var removeSegment = connector.segments.pop();\n var last = connector.segments[connector.segments.length - 1];\n first = (last && last.type === 'Orthogonal') ? last : null;\n for (var i = 0; i < segment.points.length - 2; i++) {\n len = Point.distancePoints(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n dir = Point.direction(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n insertseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: len, direction: dir }, true);\n segments.push(insertseg);\n first = insertseg;\n }\n var sec = segmentIndex;\n if (segment.points.length === 2 || sec === segment.points.length - 2) {\n if (first) {\n first.length += 5;\n }\n if (sec !== undefined) {\n //let newseg: OrthogonalSegment;\n len = 2 * Point.distancePoints(segment.points[segment.points.length - 2], segment.points[segment.points.length - 1]) / 3;\n dir = Point.direction(segment.points[segment.points.length - 2], segment.points[segment.points.length - 1]);\n var newseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: len, direction: dir });\n segments.push(newseg);\n }\n }\n var lastseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segments.push(lastseg);\n var args = {\n element: connector, addSegments: segments, type: 'Addition', cancel: false\n };\n var args1;\n args1 = {\n element: cloneBlazorObject(connector), addSegments: cloneBlazorObject(segments),\n type: 'Addition', cancel: args.cancel\n };\n if (isBlazor()) {\n args1 = {\n element: cloneBlazorObject(connector), addSegments: cloneBlazorObject(segments),\n type: 'Addition', cancel: args.cancel\n };\n }\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args1);\n if (!args1.cancel) {\n connector.segments = connector.segments.concat(segments);\n index = index + segmentIndex;\n }\n else {\n connector.segments.push(removeSegment);\n }\n this.commandHandler.updateEndPoint(connector);\n return index;\n };\n // eslint-disable-next-line\n ConnectorEditing.prototype.updatePortSegment = function (prev, connector, index, tx, ty) {\n if (index === 1 && prev.points.length === 2 && prev.length < 0) {\n var source = connector.sourceWrapper.corners;\n var current = connector.segments[parseInt(index.toString(), 10)];\n var next = connector.segments[index + 1];\n var newseg = void 0;\n var segment = [];\n newseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: 13, direction: prev.direction });\n segment.push(newseg);\n var len = void 0;\n if (current.direction === 'Left') {\n len = (current.points[0].x - (source.middleLeft.x - 20));\n }\n else if (current.direction === 'Right') {\n len = ((source.middleRight.x + 20) - current.points[0].x);\n }\n else if (current.direction === 'Bottom') {\n len = ((source.bottomCenter.y + 20) - current.points[0].y);\n }\n else {\n len = (current.points[0].y - (source.topCenter.y - 20));\n }\n //const dir: Direction = current.direction;\n newseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: len, direction: current.direction });\n segment.push(newseg);\n current.length = current.length - len;\n if (next && next.length && next.direction) {\n if (next.direction === prev.direction) {\n next.length -= 13;\n }\n else if (next.direction === getOppositeDirection(prev.direction)) {\n next.length += 13;\n }\n }\n connector.segments = segment.concat(connector.segments);\n this.selectedSegment = connector.segments[3];\n }\n };\n ConnectorEditing.prototype.updatePreviousSegment = function (tx, ty, connector, index) {\n var current = connector.segments[parseInt(index.toString(), 10)];\n var prev = connector.segments[index - 1];\n //const firstSegment: boolean = (index === 1) ? true : false;\n prev.points[prev.points.length - 1] = current.points[0];\n var isSourceNode = (connector.sourceID && connector.sourcePortID === '') ? false : true;\n var isNextUpdate = true;\n if (prev.type === 'Orthogonal') {\n if (prev.direction === 'Bottom') {\n prev.length += ty;\n }\n else if (prev.direction === 'Top') {\n prev.length -= ty;\n }\n else if (prev.direction === 'Right') {\n prev.length += tx;\n }\n else {\n prev.length -= tx;\n }\n // EJ2-65063 - Added the below condition !allowNodeOverlap to prevent the segment to split into two segments while intersect with source node.\n if (connector.sourcePortID !== '' && prev.length < 0 && !connector.allowNodeOverlap) {\n this.updatePortSegment(prev, connector, index, tx, ty);\n }\n else if (connector.sourceID && connector.sourcePortID === '' && prev.length < 0 && index === 1) {\n isNextUpdate = false;\n this.updateFirstSegment(connector, current);\n }\n if (isSourceNode) {\n this.changeSegmentDirection(prev, connector);\n }\n }\n return isNextUpdate;\n };\n ConnectorEditing.prototype.changeSegmentDirection = function (segment, connector) {\n if (!connector.maxSegmentThumb) {\n if (segment.length < 0) {\n segment.direction = getOppositeDirection(segment.direction);\n segment.length *= -1;\n }\n }\n };\n ConnectorEditing.prototype.updateNextSegment = function (obj, current, next, tx, ty) {\n next.points[0] = current.points[current.points.length - 1];\n if (next && next.type === 'Orthogonal') {\n if (next.length || next.length === 0) {\n if (next.direction === 'Left' || next.direction === 'Right') {\n if (tx !== 0) {\n next.length = (next.direction === 'Right') ? next.length - tx : next.length + tx;\n if (next.length || next.length === 0) {\n this.changeSegmentDirection(next, obj);\n }\n }\n }\n else {\n if (ty !== 0) {\n next.length = (next.direction === 'Bottom') ? next.length - ty : next.length + ty;\n if (next.length || next.length === 0) {\n this.changeSegmentDirection(next, obj);\n }\n }\n }\n }\n }\n };\n ConnectorEditing.prototype.updateFirstSegment = function (connector, selectedSegment) {\n var index = connector.segments.indexOf(selectedSegment);\n var insertfirst = false;\n var current = connector.segments[parseInt(index.toString(), 10)];\n var prev = connector.segments[index - 1];\n var con = connector;\n var sourcePoint;\n var oldValues = { segments: connector.segments };\n if (prev.length < 0 && connector.sourceID) {\n var sourceNode = connector.sourceWrapper.corners;\n var segments = [];\n var segValues = void 0;\n var removeCurrentPrev = false;\n this.changeSegmentDirection(current, connector);\n var next = connector.segments[index + 1];\n var nextNext = connector.segments[index + 2];\n if (next) {\n this.changeSegmentDirection(next, connector);\n }\n if (nextNext) {\n this.changeSegmentDirection(nextNext, connector);\n }\n switch (prev.direction) {\n case 'Top':\n case 'Bottom':\n sourcePoint = (current.length > 0 && current.direction === 'Left') ? sourceNode.middleLeft : sourceNode.middleRight;\n if (current.length > sourceNode.width / 2) {\n if (Math.abs(prev.length) < sourceNode.height / 2) {\n prev.length = Point.distancePoints(sourceNode.center, prev.points[prev.points.length - 1]);\n current.points[0].x = sourcePoint.x;\n current.length = Point.distancePoints(current.points[0], current.points[current.points.length - 1]);\n current.length -= 20;\n insertfirst = true;\n }\n }\n else {\n if (next && next.direction && next.length) {\n next.points[0].y = sourcePoint.y;\n next.points[0].x = next.points[next.points.length - 1].x = (current.direction === 'Right') ?\n sourcePoint.x + 20 : sourcePoint.x - 20;\n }\n insertfirst = true;\n removeCurrentPrev = true;\n }\n break;\n case 'Left':\n case 'Right':\n sourcePoint = (current.length > 0 && current.direction === 'Top') ? sourceNode.topCenter : sourceNode.bottomCenter;\n if (current.length > sourceNode.height / 2) {\n if (Math.abs(prev.length) < sourceNode.width / 2) {\n prev.length = Point.distancePoints(sourceNode.center, prev.points[prev.points.length - 1]);\n current.points[0].y = sourcePoint.y;\n current.length = Point.distancePoints(current.points[0], current.points[current.points.length - 1]);\n current.length -= 20;\n insertfirst = true;\n }\n }\n else {\n if (next && next.direction && next.length) {\n next.points[0].x = sourcePoint.x;\n next.points[0].y = next.points[next.points.length - 1].y = (current.direction === 'Bottom') ?\n sourcePoint.y + 20 : sourcePoint.y - 20;\n }\n insertfirst = true;\n removeCurrentPrev = true;\n }\n break;\n }\n this.changeSegmentDirection(prev, connector);\n this.changeSegmentDirection(current, connector);\n if (insertfirst) {\n segValues = { type: 'Orthogonal', direction: current.direction, length: 20 };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n if (removeCurrentPrev) {\n if (next && next.direction && next.length) {\n next.length = Point.distancePoints(next.points[0], next.points[next.points.length - 1]);\n }\n if (nextNext && nextNext.direction && nextNext.length) {\n nextNext.length = Point.distancePoints(next.points[next.points.length - 1], nextNext.points[nextNext.points.length - 1]);\n }\n connector.segments.splice(index - 1, 2);\n }\n connector.segments = segments.concat(connector.segments);\n }\n this.selectedSegment = ((removeCurrentPrev) ? connector.segments[index - 1] :\n connector.segments[index + 1]);\n this.commandHandler.updateEndPoint(connector, oldValues);\n }\n };\n ConnectorEditing.prototype.updateLastSegment = function (connector, selectedSegment) {\n if (connector.targetID && connector.targetPortID === '') {\n var line1Start = void 0;\n var line1End = void 0;\n var line2Start = void 0;\n var line2End = void 0;\n var corners = connector.targetWrapper.corners;\n var firstSegPoint = selectedSegment.points[0];\n var lastSegPoint = selectedSegment.points[selectedSegment.points.length - 1];\n if (selectedSegment.direction === 'Right' || selectedSegment.direction === 'Left') {\n line1Start = { x: firstSegPoint.x, y: firstSegPoint.y };\n line1End = {\n x: (selectedSegment.direction === 'Left') ? lastSegPoint.x - corners.width / 2 : lastSegPoint.x + corners.width / 2,\n y: lastSegPoint.y\n };\n line2Start = { x: corners.center.x, y: corners.center.y - corners.height };\n line2End = { x: corners.center.x, y: corners.center.y + corners.height };\n }\n else {\n line1Start = { x: firstSegPoint.x, y: firstSegPoint.y };\n line1End = {\n x: lastSegPoint.x,\n y: (selectedSegment.direction === 'Bottom') ? lastSegPoint.y + corners.height / 2 : lastSegPoint.y - corners.height / 2\n };\n line2Start = { x: corners.center.x - corners.width, y: corners.center.y };\n line2End = { x: corners.center.x + corners.width, y: corners.center.y };\n }\n var line1 = { x1: line1Start.x, y1: line1Start.y, x2: line1End.x, y2: line1End.y };\n var line2 = { x1: line2Start.x, y1: line2Start.y, x2: line2End.x, y2: line2End.y };\n return (intersect3(line1, line2).enabled);\n }\n return false;\n };\n /**\n *To destroy the module\n *\n * @returns {void} To destroy the module\n */\n ConnectorEditing.prototype.destroy = function () {\n /**\n * Destroys the connector editing module\n */\n };\n /**\n * Get module name.\n */\n /**\n * Get module name.\\\n *\n * @returns { string } Get module name.\\\n */\n ConnectorEditing.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'ConnectorEditingTool';\n };\n return ConnectorEditing;\n}(ToolBase));\nexport { ConnectorEditing };\n","/* eslint-disable jsdoc/require-returns */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable no-case-declarations */\nimport { Browser } from '@syncfusion/ej2-base';\nimport { Point } from '../primitives/point';\nimport { Container } from '../core/containers/container';\nimport { Connector } from '../objects/connector';\nimport { NodeDrawingTool, ConnectorDrawingTool, TextDrawingTool, FreeHandTool } from './tool';\nimport { PolygonDrawingTool, PolyLineDrawingTool, FixedUserHandleTool } from './tool';\nimport { Native, Node } from '../objects/node';\nimport { SelectTool, MoveTool, ResizeTool, RotateTool, ConnectTool, ExpandTool, LabelTool, ZoomPanTool } from './tool';\nimport { LabelDragTool, LabelResizeTool, LabelRotateTool } from './tool';\nimport { ConnectorEditing } from './connector-editing';\nimport { Selector } from '../objects/node';\nimport { findToolToActivate, isSelected, getCursor, contains } from './actions';\nimport { DiagramAction, KeyModifiers, Keys, DiagramEvent, DiagramTools, RendererAction, DiagramConstraints, PortConstraints } from '../enum/enum';\nimport { BlazorAction, ScrollActions } from '../enum/enum';\nimport { isPointOverConnector, findObjectType, insertObject, getObjectFromCollection, getTooltipOffset, findParentInSwimlane } from '../utility/diagram-util';\nimport { getObjectType, getInOutConnectPorts, removeChildNodes, cloneBlazorObject, checkPort } from '../utility/diagram-util';\nimport { canZoomPan, canDraw, canDrag, canZoomTextEdit, canVitualize, canPreventClearSelection } from './../utility/constraints-util';\nimport { selectionHasConnector } from '../utility/diagram-util';\nimport { canMove, canEnablePointerEvents, canSelect, canEnableToolTip } from './../utility/constraints-util';\nimport { canOutConnect, canInConnect, canPortInConnect, canPortOutConnect, canAllowDrop, canUserInteract, defaultTool } from './../utility/constraints-util';\nimport { updateTooltip } from '../objects/tooltip';\nimport { PortVisibility, NodeConstraints, ConnectorConstraints, RealAction } from '../enum/enum';\nimport { addTouchPointer, measureHtmlText, getAdornerLayerSvg } from '../utility/dom-util';\nimport { TextElement } from '../core/elements/text-element';\nimport { Size } from '../primitives/size';\nimport { cloneObject as clone, cloneObject } from './../utility/base-util';\nimport { Rect } from '../primitives/rect';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix } from './../primitives/matrix';\nimport { removeRulerMarkers, drawRulerMarkers, getRulerSize, updateRuler } from '../ruler/ruler';\nimport { canContinuousDraw, canDrawOnce } from '../utility/constraints-util';\nimport { getFunction, cornersPointsBeforeRotation } from '../utility/base-util';\nimport { updateCanvasBounds, checkChildNodeInContainer, checkParentAsContainer, removeChildInContainer } from './container-interaction';\nimport { moveChildInStack, renderStackHighlighter } from './container-interaction';\nimport { updateSwimLaneObject } from '../utility/swim-lane-util';\nimport { getConnectors, updateHeaderMaxWidth, laneInterChanged, updateConnectorsProperties } from '../utility/swim-lane-util';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { PathElement, randomId } from '../index';\nimport { isBlazor } from '@syncfusion/ej2-base';\nimport { PointPort } from '../objects/port';\n/**\n * This module handles the mouse and touch events\n */\nvar DiagramEventHandler = /** @class */ (function () {\n /** @private */\n function DiagramEventHandler(diagram, commandHandler) {\n this.currentAction = 'None';\n this.previousAction = 'None';\n /** @private */\n this.focus = false;\n this.isBlocked = false;\n this.isMouseDown = false;\n this.inAction = false;\n this.doingAutoScroll = false;\n this.diagram = null;\n this.objectFinder = null;\n this.tool = null;\n this.eventArgs = null;\n this.isKeyUp = true;\n this.keyCount = 0;\n this.isNudgeKey = false;\n this.keyArgs = {};\n this.diagram = diagram;\n this.objectFinder = new ObjectFinder();\n this.commandHandler = commandHandler;\n }\n Object.defineProperty(DiagramEventHandler.prototype, \"action\", {\n get: function () {\n return this.currentAction;\n },\n set: function (action) {\n if (action !== this.currentAction) {\n if (this.currentAction === 'PortDraw') {\n this.diagram.tool &= ~DiagramTools.DrawOnce;\n //EJ2-70550 - Connector disconnected from source and target while dragging mutliple selected element\n if (this.diagram.currentDrawingObject) {\n this.diagram.currentDrawingObject = null;\n }\n if (this.tool) {\n this.tool.mouseUp({ position: this.currentPosition });\n }\n this.tool = null;\n }\n if (action === 'Rotate' || action === 'LabelRotate') {\n this.diagram.diagramCanvas.classList.add('e-diagram-rotate');\n }\n else if (this.currentAction === 'Rotate' || this.currentAction === 'LabelRotate') {\n this.diagram.diagramCanvas.classList.remove('e-diagram-rotate');\n }\n this.currentAction = action;\n if (this.currentAction !== 'None' && this.currentAction !== 'Select' &&\n !(this.diagram.diagramActions & DiagramAction.TextEdit) || this.commandHandler.isUserHandle(this.currentPosition)) {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.ToolAction;\n }\n else {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.ToolAction;\n }\n this.diagram.setCursor(this.diagram.getCursor(action, this.inAction));\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramEventHandler.prototype, \"blocked\", {\n get: function () {\n return this.isBlocked;\n },\n set: function (blocked) {\n this.isBlocked = blocked;\n if (this.blocked) {\n this.diagram.setCursor('not-allowed');\n }\n else {\n this.diagram.setCursor(this.diagram.getCursor(this.action, this.inAction));\n }\n },\n enumerable: true,\n configurable: true\n });\n /** @private */\n DiagramEventHandler.prototype.getMousePosition = function (e) {\n var touchArg;\n var offsetX;\n var offsetY;\n if (e.type.indexOf('touch') !== -1) {\n touchArg = e;\n offsetX = touchArg.changedTouches[0].clientX;\n offsetY = touchArg.changedTouches[0].clientY;\n }\n else {\n offsetX = e.clientX;\n offsetY = e.clientY;\n }\n var position = new Size();\n position = getRulerSize(this.diagram);\n var boundingRect = this.diagram.element.getBoundingClientRect();\n offsetX = offsetX + this.diagram.diagramCanvas.scrollLeft - boundingRect.left - position.width;\n offsetY = offsetY + this.diagram.diagramCanvas.scrollTop - boundingRect.top - position.height;\n offsetX /= this.diagram.scroller.transform.scale;\n offsetY /= this.diagram.scroller.transform.scale;\n offsetX -= this.diagram.scroller.transform.tx;\n offsetY -= this.diagram.scroller.transform.ty;\n return { x: offsetX, y: offsetY };\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.windowResize = function (evt) {\n var _this = this;\n if (this.resizeTo) {\n clearTimeout(this.resizeTo);\n }\n this.resizeTo = setTimeout(function () {\n _this.updateViewPortSize(_this.diagram.element);\n }, 300);\n return false;\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.updateViewPortSize = function (element) {\n var container = document.getElementById(element.id);\n if (container) {\n var bounds = container.getBoundingClientRect();\n this.diagram.scroller.setViewPortSize(bounds.width, bounds.height);\n var position = new Size();\n position = getRulerSize(this.diagram);\n var width = this.diagram.getSizeValue(this.diagram.width, position.width);\n var height = this.diagram.getSizeValue(this.diagram.height, position.height);\n this.diagram.diagramCanvas.style.width = width;\n this.diagram.diagramCanvas.style.height = height;\n this.diagram.scroller.setSize();\n this.diagram.transformLayers();\n if (this.diagram.rulerSettings.showRulers) {\n updateRuler(this.diagram);\n }\n }\n };\n /** @private */\n DiagramEventHandler.prototype.canHideResizers = function () {\n return ((this.tool instanceof MoveTool || this.tool instanceof RotateTool) && this.isMouseDown);\n };\n /** @private */\n DiagramEventHandler.prototype.updateCursor = function () {\n if ((this.diagram.selectedItems.nodes.length === 1 || this.diagram.selectedItems.connectors.length === 1)) {\n var list = [];\n list = list.concat(this.diagram.selectedItems.nodes, this.diagram.selectedItems.connectors);\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n this.blocked = (this.eventArgs && this.eventArgs.source && !canMove(this.eventArgs.source)) ? false :\n (this.isMouseDown && list.length === 1 && this.tool instanceof SelectTool && !canMove(list[0]));\n }\n };\n DiagramEventHandler.prototype.isForeignObject = function (target, isTextBox) {\n var foreignobject = target;\n if (foreignobject) {\n while (foreignobject.parentNode !== null) {\n if (typeof foreignobject.className === 'string' &&\n ((!isTextBox && foreignobject.className.indexOf('foreign-object') !== -1) ||\n (isTextBox && foreignobject.className.indexOf('e-diagram-text-edit') !== -1))) {\n return foreignobject;\n }\n else {\n foreignobject = foreignobject.parentNode;\n }\n }\n }\n return null;\n };\n DiagramEventHandler.prototype.isMetaKey = function (evt) {\n //EJ2-55887 - added the beow code to perform pinch zoom in mac os and windows while pinch zoom all browser return ctrl key as true.\n if (evt.type === 'mousewheel') {\n return evt.ctrlKey;\n }\n else {\n return navigator.platform.match('Mac') ? evt.metaKey : evt.ctrlKey;\n }\n };\n DiagramEventHandler.prototype.renderUmlHighLighter = function (args) {\n this.diagram.commandHandler.removeStackHighlighter();\n var node = this.diagram.selectedItems.nodes[0];\n if (node && node.container && node.container.type === 'Stack' && node.shape.type === 'UmlClassifier') {\n var bound = node.wrapper.bounds;\n if (!bound.containsPoint(this.currentPosition)) {\n // eslint-disable-next-line max-len\n var objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x - 20, y: this.currentPosition.y });\n var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n if (target && target.parentId && (target.parentId === node.id)) {\n // eslint-disable-next-line max-len\n var isVertical = this.diagram.nameTable[target.parentId].container.orientation === 'Vertical';\n renderStackHighlighter(target.wrapper, isVertical, args.position, this.diagram, true);\n }\n }\n }\n };\n DiagramEventHandler.prototype.isDeleteKey = function (key, value) {\n return (navigator.platform.match('Mac') && key === 'Backspace' && value === 'delete');\n };\n DiagramEventHandler.prototype.isMouseOnScrollBar = function (evt) {\n var x = evt.offsetX;\n var y = evt.offsetY;\n var diagramCanvas = this.diagram.diagramCanvas;\n var height = diagramCanvas.offsetHeight;\n var width = diagramCanvas.offsetWidth;\n var topLeft;\n var topRight;\n var bottomLeft;\n var bottomRight;\n var bounds;\n if (height < diagramCanvas.scrollHeight) {\n //default scrollbar width in browser is '17pixels'.\n topLeft = { x: (width - 17), y: 0 };\n topRight = { x: width, y: 0 };\n bottomLeft = { x: (width - 17), y: height };\n bottomRight = { x: width, y: height };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n // EJ2-64563-Added below code to calculate the bounds x and y value if vertical offset != 0\n if (this.diagram.scroller.verticalOffset !== 0) {\n bounds.x = bounds.x - this.diagram.scroller.horizontalOffset;\n bounds.y = bounds.y - this.diagram.scroller.verticalOffset;\n }\n if (bounds.containsPoint({ x: x, y: y })) {\n return true;\n }\n }\n if (width < diagramCanvas.scrollWidth) {\n topLeft = { x: 0, y: (height - 17) };\n topRight = { x: width, y: (height - 17) };\n bottomLeft = { x: 0, y: height };\n bottomRight = { x: width, y: height };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n // EJ2-64563-Added below code to calculate the bounds x and y value if horizontal offset != 0\n if (this.diagram.scroller.horizontalOffset !== 0) {\n bounds.x = bounds.x - this.diagram.scroller.horizontalOffset;\n bounds.y = bounds.y - this.diagram.scroller.verticalOffset;\n }\n if (bounds.containsPoint({ x: x, y: y })) {\n return true;\n }\n }\n return false;\n };\n /** @private */\n DiagramEventHandler.prototype.updateVirtualization = function () {\n var _this = this;\n var delay = 50;\n //let removeObjectInterval: Object;\n var removeObjectInterval = setInterval(function (args) {\n _this.diagram.removeVirtualObjects(removeObjectInterval);\n }, delay);\n setTimeout(function () {\n _this.diagram.deleteVirtualObject = true;\n }, delay);\n };\n DiagramEventHandler.prototype.checkPreviousAction = function () {\n if (this.action !== this.previousAction && this.diagram.selectedItems.userHandles.length) {\n for (var i = 0; i < this.diagram.selectedItems.userHandles.length; i++) {\n if (this.previousAction && this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)]) {\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseLeave);\n this.previousAction = 'None';\n }\n }\n }\n };\n DiagramEventHandler.prototype.checkUserHandleEvent = function (eventName) {\n if (this.diagram.selectedItems && this.diagram.selectedItems.userHandles.length > 0) {\n var currentAction = (eventName === DiagramEvent.onUserHandleMouseLeave) ? this.previousAction : this.action;\n var arg = { element: undefined };\n for (var i = 0; i < this.diagram.selectedItems.userHandles.length; i++) {\n if ((currentAction === this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name) ||\n (eventName === DiagramEvent.onUserHandleMouseUp && currentAction === 'Select')) {\n arg.element = this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)];\n if (eventName === DiagramEvent.onUserHandleMouseEnter) {\n this.previousAction = this.action;\n // EJ2-32213- Added the below code to check whether the userhandle has tooltip content.\n // If userhandle has tooltip content then we open the tooltip based on the userhandle shape\n if (arg.element.tooltip && arg.element.tooltip.openOn === 'Auto' && arg.element.tooltip.content !== '') {\n updateTooltip(this.diagram, arg.element);\n var targetEle = void 0;\n if (arg.element.pathData) {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_userhandle');\n }\n else if (arg.element.source) {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_image');\n }\n else if (arg.element.content) {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_shape_native_element');\n }\n else {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_shape_html_element');\n }\n if (arg.element.tooltip.openOn === 'Auto') {\n this.diagram.tooltipObject.open(targetEle);\n }\n }\n }\n if (eventName === DiagramEvent.onUserHandleMouseDown) {\n this.userHandleObject = this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name;\n }\n var element = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_userhandle');\n if (eventName === DiagramEvent.onUserHandleMouseUp) {\n if (this.commandHandler.isUserHandle(this.currentPosition)\n && element && element.id === this.userHandleObject + '_userhandle') {\n this.diagram.triggerEvent(eventName, arg);\n }\n }\n if (eventName === DiagramEvent.onUserHandleMouseLeave) {\n if (this.diagram.tooltipObject && this.diagram.tooltipObject.openOn !== 'Custom') {\n this.diagram.tooltipObject.close();\n }\n }\n else {\n this.diagram.triggerEvent(eventName, arg);\n }\n }\n }\n }\n };\n DiagramEventHandler.prototype.mouseDown = function (evt) {\n // EJ2-57541 - Added the below code to check whether diagram tool is instance of node drawing tool or connector drawing tool.\n // If node or connector drawing tool means then we have returned without perform any operation.\n if (this.inAction === true && ((this.tool) instanceof NodeDrawingTool || this.tool instanceof ConnectorDrawingTool)) {\n return;\n }\n this.focus = true;\n //let touches: TouchList;\n var touches = evt.touches;\n var isSymblDragging = document.getElementsByClassName('e-dragclone')[0] ? true : false;\n if (this.isMouseOnScrollBar(evt) && !isSymblDragging) {\n this.isScrolling = true;\n evt.preventDefault();\n return;\n }\n // commanded by gowtham- unwanted cloning of selectedItems\n // if (isBlazor()) {\n // this.commandHandler.oldSelectedObjects = cloneObject(this.diagram.selectedItems);\n // }\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseDown);\n if (!this.checkEditBoxAsTarget(evt) && (canUserInteract(this.diagram)) ||\n (canZoomPan(this.diagram) && !defaultTool(this.diagram))) {\n if (this.action === 'Select' || this.action === 'Drag') {\n this.diagram.updatePortVisibility(this.hoverElement, PortVisibility.Hover, true);\n }\n if (((this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)\n && (evt.button === 2 || evt.buttons === 2))) {\n // eslint-disable-next-line\n var arg = {\n element: cloneBlazorObject(this.diagram), position: cloneBlazorObject(this.currentPosition),\n count: evt.buttons, actualObject: cloneBlazorObject(this.eventArgs.actualObject),\n button: (evt.button === 0) ? 'Left' : (evt.button === 1) ? 'Middle' : 'Right'\n };\n this.inAction = false;\n this.tool.mouseUp(this.eventArgs);\n }\n else if (((this.inAction === true) && this.isMouseDown === true &&\n (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool))) {\n this.isMouseDown = true;\n this.eventArgs = {};\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n this.eventArgs.position = this.currentPosition;\n this.tool.mouseDown(this.eventArgs);\n }\n else {\n this.isMouseDown = true;\n this.currentPosition = this.prevPosition = this.getMousePosition(evt);\n this.eventArgs = {};\n if (this.diagram.textEditing && !this.isMouseOnScrollBar(evt)) {\n this.diagram.endEdit();\n this.diagram.textEditing = false;\n // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode.\n if (this.diagram.mode === 'Canvas' && this.diagram.scroller.currentZoom !== 1) {\n this.diagram.refreshDiagramLayer();\n }\n }\n var targetObject = this.getTargetElement();\n this.action = this.diagram.findActionToBeDone(targetObject.obj, targetObject.sourceElement, this.currentPosition, targetObject.target);\n //work around - correct it\n var ctrlKey = this.isMetaKey(evt);\n if (ctrlKey && evt.shiftKey && this.diagram.connectorEditingToolModule) {\n this.action = 'SegmentEnd';\n }\n else if ((ctrlKey || evt.shiftKey) && (!canZoomPan(this.diagram))) {\n this.action = 'Select';\n }\n this.tool = this.diagram.getTool(this.action);\n if (!this.tool) {\n this.action = 'Select';\n this.tool = this.diagram.getTool(this.action);\n }\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n if (ctrlKey || evt.shiftKey) {\n var info = (ctrlKey && evt.shiftKey) ? { ctrlKey: ctrlKey, shiftKey: evt.shiftKey } : { ctrlKey: true };\n this.eventArgs.info = info;\n }\n this.eventArgs.position = this.currentPosition;\n this.tool.mouseDown(this.eventArgs);\n this.initialEventArgs = { source: this.eventArgs.source, sourceWrapper: this.eventArgs.sourceWrapper };\n this.initialEventArgs.position = this.currentPosition;\n this.initialEventArgs.info = this.eventArgs.info;\n this.inAction = false;\n if (evt.type === 'touchstart') {\n if (touches && touches.length >= 2) {\n this.touchStartList = addTouchPointer(this.touchStartList, evt, touches);\n }\n if (!touches) {\n evt.preventDefault();\n }\n }\n }\n }\n if (!this.isForeignObject(evt.target) && !this.isForeignObject(evt.target, true) && (!touches)) {\n evt.preventDefault();\n }\n };\n /** @private */\n DiagramEventHandler.prototype.mouseMoveExtend = function (e, obj) {\n if (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool) {\n this.tool.mouseMove(this.eventArgs);\n }\n if (this.diagram.scrollSettings.canAutoScroll) {\n this.checkAutoScroll(e);\n }\n else {\n if (!this.blocked) {\n (this.tool.mouseMove(this.eventArgs));\n }\n }\n if (this.eventArgs.target) {\n this.hoverElement = this.eventArgs.target;\n }\n var isNode = (this.eventArgs.target instanceof Node) && (obj instanceof Node) ? false : true;\n if (this.tool instanceof ConnectTool) {\n this.diagram.updatePortVisibility((this.hoverElement instanceof Node) ? this.hoverElement : this.hoverNode, PortVisibility.Connect | PortVisibility.Hover, isNode);\n }\n if (this.hoverElement instanceof Node\n && this.hoverNode instanceof Node && this.hoverNode && this.hoverNode.id !== this.hoverElement.id) {\n this.diagram.updatePortVisibility(this.hoverNode, PortVisibility.Connect | PortVisibility.Hover, true);\n }\n this.hoverElement = isNode ? null : obj;\n this.hoverNode = isNode ? null : obj;\n };\n /** @private */\n DiagramEventHandler.prototype.checkAction = function (obj) {\n if (this.action === 'LabelSelect' && this.eventArgs.sourceWrapper &&\n (this.eventArgs.sourceWrapper instanceof TextElement || this.eventArgs.sourceWrapper instanceof DiagramHtmlElement)) {\n var annotation = this.commandHandler.findTarget(this.eventArgs.sourceWrapper, this.eventArgs.source);\n if (!isSelected(this.diagram, annotation, false, this.eventArgs.sourceWrapper) && canMove(annotation)) {\n this.action = 'LabelDrag';\n this.tool = this.getTool(this.action);\n this.tool.mouseDown(this.initialEventArgs);\n }\n }\n else if (canMove(obj) && canSelect(obj) && this.initialEventArgs &&\n this.initialEventArgs.source && this.action === 'Select') {\n if (!isSelected(this.diagram, this.eventArgs.source, false) &&\n this.eventArgs.source instanceof Selector) {\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n }\n if (!(obj instanceof Connector) || (obj instanceof Connector &&\n !(contains(this.currentPosition, obj.sourcePoint, obj.hitPadding) ||\n contains(this.currentPosition, obj.targetPoint, obj.hitPadding)))) {\n this.action = 'Drag';\n }\n this.tool = this.getTool(this.action);\n this.tool.mouseDown(this.initialEventArgs);\n }\n };\n DiagramEventHandler.prototype.isSwimlaneElements = function (obj) {\n if (obj && (obj.isLane || obj.isPhase || obj.isHeader)) {\n return false;\n }\n else {\n return true;\n }\n };\n /* tslint:disable */\n /** @private */\n DiagramEventHandler.prototype.mouseMove = function (e, touches) {\n this.focus = true;\n if (this.isScrolling) {\n e.preventDefault();\n return;\n }\n if (canUserInteract(this.diagram) || (canZoomPan(this.diagram) && !defaultTool(this.diagram))) {\n this.currentPosition = this.getMousePosition(e);\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n drawRulerMarkers(this.diagram, this.currentPosition);\n var force = false;\n var target = void 0;\n if (e.type === 'touchmove') {\n touches = e.touches;\n if (touches && touches.length > 1) {\n this.touchMoveList = addTouchPointer(this.touchMoveList, e, touches);\n if (this.action !== 'PinchZoom') {\n force = true;\n }\n }\n }\n if (Point.equals(this.currentPosition, this.prevPosition) === false || this.inAction) {\n if (this.isMouseDown === false || force) {\n this.eventArgs = {};\n var sourceElement = null;\n var tooltipTarget = void 0;\n if (obj !== null) {\n sourceElement = this.diagram.findElementUnderMouse(obj, this.currentPosition);\n if (sourceElement) {\n tooltipTarget = this.commandHandler.findTarget(sourceElement, obj);\n }\n if (tooltipTarget !== this.hoverElement) {\n var content_1 = this.getContent();\n if (this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content_1 !== '') {\n this.elementLeave();\n }\n this.diagram.updatePortVisibility(this.hoverElement, PortVisibility.Hover, true);\n if (obj instanceof Node) {\n this.hoverNode = obj;\n }\n var canResetElement = true;\n if (!this.isSwimlaneElements(obj)\n && (this.hoverElement && this.isSwimlaneElements(this.hoverElement))) {\n canResetElement = false;\n }\n this.hoverElement = canResetElement ? obj : this.hoverElement;\n //EJ2-62120 - Provide tooltip support for ports - to set hoverelement as PathElement if hovered on ports in Node\n var portElement = null;\n var portTarget = void 0;\n portElement = this.diagram.findElementUnderMouse(obj, this.currentPosition);\n if (portElement instanceof PathElement) {\n portTarget = this.commandHandler.findTarget(portElement, obj);\n if (portTarget instanceof PointPort && this.hoverElement.constraints & PortConstraints.ToolTip) {\n this.hoverElement = portTarget;\n }\n }\n if (canResetElement) {\n this.elementEnter(this.currentPosition, false);\n }\n else {\n this.hoverElement = obj;\n }\n }\n // EJ2-66418 - set tooltip relativeMode as mouse\n // Updating the tooltip position based on Mouse move\n else if (this.hoverElement) {\n if (this.hoverElement === tooltipTarget && this.hoverElement.tooltip.content && this.diagram.tooltipObject !== undefined && this.hoverElement.tooltip.relativeMode === 'Mouse') {\n this.setTooltipOffset(this.currentPosition);\n }\n }\n if (sourceElement) {\n target = this.commandHandler.findTarget(sourceElement, obj);\n }\n }\n this.action = this.diagram.findActionToBeDone(obj, sourceElement, this.currentPosition, target);\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseEnter);\n this.checkPreviousAction();\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n this.tool = this.getTool(this.action);\n this.mouseEvents();\n if (this.tool instanceof ConnectorDrawingTool ||\n this.tool instanceof PolyLineDrawingTool ||\n this.tool instanceof PolygonDrawingTool) {\n this.tool.mouseMove(this.eventArgs);\n }\n else if (touches && this.tool instanceof ZoomPanTool) {\n this.tool.mouseDown(this.eventArgs);\n }\n this.updateCursor();\n this.renderUmlHighLighter(this.eventArgs);\n var isNode = false;\n if (!(this.hoverElement && (!(this.tool instanceof ZoomPanTool))\n && (obj instanceof Node && this.isSwimlaneElements(obj)) &&\n (this.diagram.selectedItems.nodes.length === 0 || !isSelected(this.diagram, this.hoverElement)))) {\n isNode = true;\n }\n this.diagram.updatePortVisibility(this.hoverElement, PortVisibility.Hover, isNode);\n var content = this.getContent();\n if (obj === null && this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content) {\n this.hoverElement = null;\n this.elementLeave();\n }\n force = false;\n }\n else {\n this.eventArgs.position = this.currentPosition;\n if (this.action === 'Drag' && !isSelected(this.diagram, this.eventArgs.source, false) &&\n this.eventArgs.source instanceof Selector) {\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n }\n this.mouseEvents();\n if (e.ctrlKey || e.shiftKey) {\n var info = (e.ctrlKey && e.shiftKey) ? { ctrlKey: e.ctrlKey, shiftKey: e.shiftKey } : { ctrlKey: true };\n this.eventArgs.info = info;\n }\n this.checkAction(obj);\n var padding = this.getConnectorPadding(this.eventArgs);\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, this.eventArgs.source, padding);\n this.updateCursor();\n this.inAction = true;\n this.initialEventArgs = null;\n if (this.action === 'Drag' || this.action === 'Rotate') {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.Interactions;\n }\n this.mouseMoveExtend(e, obj);\n }\n this.prevPosition = this.currentPosition;\n if (!this.isForeignObject(e.target, true)) {\n e.preventDefault();\n }\n }\n }\n };\n /* tslint:enable */\n DiagramEventHandler.prototype.getContent = function () {\n var isPrivateTooltip = ((this.hoverElement instanceof Node) && this.hoverElement.constraints & NodeConstraints.Tooltip) ||\n ((this.hoverElement instanceof Connector) && this.hoverElement.constraints & ConnectorConstraints.Tooltip) ||\n ((this.hoverElement instanceof PointPort) && this.hoverElement.constraints & PortConstraints.ToolTip);\n var node = this.hoverElement;\n var childNode;\n if (node instanceof Node && node.children && node.children.length > 0) {\n childNode = this.findIntersectChild(node);\n }\n var content = isPrivateTooltip ? this.hoverElement.tooltip.content :\n this.diagram.tooltip.content;\n content = childNode ? childNode.tooltip.content : content;\n return content;\n };\n DiagramEventHandler.prototype.findIntersectChild = function (node) {\n var childNode;\n var rect = new Rect(this.currentPosition.x, this.currentPosition.y, 8, 8);\n for (var i = 0; i < node.children.length; i++) {\n childNode = this.diagram.getObject(node.children[parseInt(i.toString(), 10)]);\n if (childNode.wrapper.outerBounds.intersects(rect)) {\n return childNode;\n }\n }\n return null;\n };\n DiagramEventHandler.prototype.checkAutoScroll = function (e) {\n var autoScrollPosition = this.startAutoScroll(e);\n if (!autoScrollPosition && this.doingAutoScroll) {\n this.doingAutoScroll = false;\n clearInterval(this.timeOutValue);\n }\n else if (autoScrollPosition) {\n if ((this.tool instanceof NodeDrawingTool || this.tool instanceof ConnectorDrawingTool\n || this.tool instanceof MoveTool || this.tool instanceof ResizeTool\n || this.tool instanceof SelectTool || this.tool instanceof ConnectTool) && this.inAction) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var diagram_1 = this;\n var delay_1 = 100;\n if (this.diagram.scrollSettings.canAutoScroll && autoScrollPosition && !this.doingAutoScroll) {\n this.doingAutoScroll = true;\n this.timeOutValue = setInterval(function (args) {\n diagram_1.doAutoScroll(autoScrollPosition, e, delay_1);\n }, delay_1);\n }\n }\n }\n else {\n this.blocked = !(this.tool.mouseMove(this.eventArgs));\n }\n };\n /* tslint:disable */\n /** @private */\n DiagramEventHandler.prototype.mouseUp = function (evt) {\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseUp);\n if (this.diagram.mode === 'SVG' && canVitualize(this.diagram)) {\n this.updateVirtualization();\n }\n this.diagram.previousSelectedObject = null;\n this.diagram.diagramRenderer.rendererActions =\n this.diagram.removeConstraints(this.diagram.diagramRenderer.rendererActions, RendererAction.DrawSelectorBorder);\n var touches = evt.touches;\n if (this.isScrolling) {\n this.isScrolling = false;\n evt.preventDefault();\n return;\n }\n if (!this.checkEditBoxAsTarget(evt) && (canUserInteract(this.diagram))\n || (canZoomPan(this.diagram) && !defaultTool(this.diagram))) {\n if (this.tool && (!(this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool) ||\n ((this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)\n && evt.detail === 2))) {\n if (!this.isForeignObject(evt.target) && this.isMouseDown) {\n document.getElementById(this.diagram.element.id + 'content').focus();\n }\n if (!this.inAction && evt.which !== 3) {\n if (this.action === 'Drag') {\n this.action = 'Select';\n var oldSelectedValue = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors));\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n var isMultipleSelect = true;\n if ((!evt.ctrlKey && this.isMouseDown\n && (this.diagram.selectedItems.nodes.length + this.diagram.selectedItems.connectors.length) > 1)\n && evt.which === 1 && !canPreventClearSelection(this.diagram.diagramActions)) {\n isMultipleSelect = false;\n this.commandHandler.clearSelection();\n }\n if (!isSelected(this.diagram, obj) || (!isMultipleSelect)) {\n this.commandHandler.selectObjects([obj], undefined, oldSelectedValue);\n }\n }\n }\n var avoidDropChildren = false;\n var history_1 = this.updateContainerProperties();\n var isGroupAction = void 0;\n this.addUmlNode();\n this.inAction = false;\n this.isMouseDown = false;\n this.currentPosition = this.getMousePosition(evt);\n if (this.diagram.selectedObject.helperObject) {\n isGroupAction = this.updateContainerBounds();\n }\n if (this.tool && (this.tool.prevPosition || this.tool instanceof LabelTool)) {\n this.eventArgs.position = this.currentPosition;\n var padding = this.getConnectorPadding(this.eventArgs);\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, this.eventArgs.source, padding);\n var ctrlKey = this.isMetaKey(evt);\n if (ctrlKey || evt.shiftKey) {\n var info = (ctrlKey && evt.shiftKey) ? { ctrlKey: ctrlKey, shiftKey: evt.shiftKey } :\n { ctrlKey: true };\n this.eventArgs.info = info;\n }\n if (this.diagram.diagramActions & DiagramAction.Interactions) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.Interactions;\n }\n this.eventArgs.clickCount = evt.detail;\n if (this.diagram.selectedObject.helperObject && (this.tool instanceof MoveTool || this.tool instanceof ResizeTool)) {\n if (this.diagram.selectedObject.actualObject &&\n this.diagram.selectedObject.actualObject.parentId !== '') {\n var parentNode = this.diagram.getObject(this.diagram.selectedObject.actualObject.parentId);\n if (parentNode && parentNode.isLane) {\n this.commandHandler.isContainer = true;\n }\n }\n avoidDropChildren = this.diagram.lineRoutingModule\n && this.diagram.nameTable['helper'] && this.eventArgs.target && this.eventArgs.target.isLane\n && ((this.eventArgs.source instanceof Selector && this.eventArgs.source.nodes.length > 0\n && this.eventArgs.source.nodes[0].parentId === '') || (this.eventArgs.source.parentId === ''));\n if (avoidDropChildren) {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.PreventLaneContainerUpdate;\n }\n this.tool.mouseUp(this.eventArgs, history_1.isPreventHistory);\n }\n else {\n this.tool.mouseUp(this.eventArgs);\n if (this.diagram.checkMenu && (window.navigator.userAgent.indexOf('Linux') !== -1 || window.navigator.userAgent.indexOf('X11') !== -1)) {\n if (!evt.pageY && (evt instanceof TouchEvent) && evt.changedTouches) {\n window.getSelection().removeAllRanges();\n this.diagram.contextMenuModule.contextMenu.open(evt.changedTouches[0].pageY, evt.changedTouches[0].pageX, this.diagram.element);\n evt.preventDefault();\n }\n else {\n this.diagram.contextMenuModule.contextMenu.open(evt.pageY, evt.pageX, this.diagram.element);\n }\n this.diagram.checkMenu = false;\n }\n }\n if (history_1.hasStack) {\n this.diagram.endGroupAction();\n }\n }\n if (isGroupAction) {\n this.diagram.endGroupAction();\n }\n this.updateContainerBounds(true);\n if (this.eventArgs.clickCount !== 2) {\n this.commandHandler.updateSelectedNodeProperties(this.eventArgs.source);\n if (avoidDropChildren) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PreventLaneContainerUpdate;\n var nodes = this.eventArgs.source instanceof Selector\n ? this.eventArgs.source.nodes : [this.eventArgs.source];\n if (nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (!nodes[parseInt(i.toString(), 10)].container) {\n this.commandHandler.dropChildToContainer(this.eventArgs.target, nodes[parseInt(i.toString(), 10)]);\n this.commandHandler.renderContainerHelper(nodes[parseInt(i.toString(), 10)]);\n }\n }\n }\n }\n }\n if (this.diagram.selectedObject && this.diagram.selectedObject.helperObject) {\n this.diagram.remove(this.diagram.selectedObject.helperObject);\n this.diagram.selectedObject = { helperObject: undefined, actualObject: undefined };\n // EJ2-42605 - Annotation undo redo not working properly if the line routing is enabled committed by sivakumar sekar\n // committed to remove the diagram actions public method when line routing is enabled\n // eslint-disable-next-line\n if ((this.diagram.diagramActions & DiagramAction.PublicMethod) && (this.diagram.constraints & DiagramConstraints.LineRouting)) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PublicMethod;\n }\n }\n this.blocked = false;\n if (this.hoverElement) {\n var portVisibility = PortVisibility.Connect;\n if (isSelected(this.diagram, this.hoverElement)) {\n portVisibility |= PortVisibility.Hover;\n }\n this.diagram.updatePortVisibility(this.hoverElement, portVisibility, true);\n this.hoverElement = null;\n }\n this.touchStartList = null;\n this.touchMoveList = null;\n if (!(this.tool instanceof TextDrawingTool)) {\n this.tool = null;\n }\n }\n if (!touches) {\n evt.preventDefault();\n }\n this.diagram.currentDrawingObject = undefined;\n var selector = this.diagram.selectedItems;\n var disbleRenderSelector = false;\n if (this.commandHandler.isUserHandle(this.currentPosition)) {\n if (this.isForeignObject(evt.target)) {\n disbleRenderSelector = true;\n }\n }\n if (!this.inAction && selector.wrapper && selector.userHandles.length > 0 && !disbleRenderSelector) {\n this.diagram.renderSelector(true);\n }\n if (!this.inAction && !this.diagram.currentSymbol && this.eventArgs) {\n /**\n * EJ2-45543 Provide Event support to notify the port click\n */\n var targetObject = this.getTargetElement();\n var arg = {\n element: (targetObject.target instanceof PointPort) ? targetObject.target : cloneBlazorObject(this.eventArgs.source) || cloneBlazorObject(this.diagram),\n position: cloneBlazorObject(this.eventArgs.position), count: evt.detail,\n actualObject: cloneBlazorObject(this.eventArgs.actualObject),\n button: (evt.button === 0) ? 'Left' : (evt.button === 1) ? 'Middle' : 'Right'\n };\n if (isBlazor() && this.diagram.click) {\n arg = this.getBlazorClickEventArgs(arg);\n }\n if (this.diagram.tool !== DiagramTools.ZoomPan) {\n this.diagram.triggerEvent(DiagramEvent.click, arg);\n }\n }\n this.eventArgs = {};\n }\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PreventLaneContainerUpdate;\n this.eventArgs = {};\n this.diagram.commandHandler.removeStackHighlighter(); // end the corresponding tool\n };\n /**\n * return the clicked element such as node/connector/port/diagram\n */\n DiagramEventHandler.prototype.getTargetElement = function () {\n var target;\n var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action);\n var obj = this.objectFinder.findObjectUnderMouse(this.diagram, objects, this.action, this.inAction, this.eventArgs, this.currentPosition);\n var sourceElement = null;\n if (obj !== null) {\n sourceElement = this.diagram.findElementUnderMouse(obj, this.currentPosition);\n if (sourceElement) {\n target = this.commandHandler.findTarget(sourceElement, obj);\n }\n }\n var targetObject = {\n 'obj': obj,\n 'sourceElement': sourceElement,\n 'target': target\n };\n return targetObject;\n };\n /* tslint:enable */\n DiagramEventHandler.prototype.getConnectorPadding = function (eventArgs) {\n var padding;\n var targetObject = eventArgs.source;\n if (targetObject && (targetObject instanceof Selector) && targetObject.connectors.length) {\n var selectedConnector = targetObject.connectors[0];\n padding = (selectedConnector.constraints & ConnectorConstraints.ConnectToNearByPort) ? selectedConnector.connectionPadding : 0;\n }\n else if (targetObject && (targetObject instanceof Connector) && this.action === 'PortDraw' && (this.tool instanceof ConnectorDrawingTool)) {\n if (targetObject.constraints & ConnectorConstraints.ConnectToNearByPort) {\n padding = targetObject.connectionPadding;\n }\n }\n return padding || 0;\n };\n DiagramEventHandler.prototype.getBlazorClickEventArgs = function (arg) {\n arg = {\n element: this.eventArgs.source ? { selector: cloneBlazorObject(this.eventArgs.source) } :\n { diagram: cloneBlazorObject(this.diagram) },\n position: cloneBlazorObject(this.eventArgs.position), count: arg.count,\n actualObject: this.eventArgs.actualObject ? { selector: cloneBlazorObject(this.eventArgs.actualObject) } :\n { diagram: cloneBlazorObject(this.diagram) },\n button: arg.button\n };\n if (this.eventArgs.source instanceof Node) {\n arg.element.selector.nodes = [];\n arg.element.selector.nodes.push(cloneBlazorObject(this.eventArgs.source));\n }\n else if (this.eventArgs.source instanceof Connector) {\n arg.element.selector.connectors = [];\n arg.element.selector.connectors.push(cloneBlazorObject(this.eventArgs.source));\n }\n return arg;\n };\n DiagramEventHandler.prototype.addSwimLaneObject = function (selectedNode) {\n var swimlaneNode;\n var targetNode;\n var shape;\n var value;\n var canInsert;\n var index = 0;\n var offset;\n var actualShape = selectedNode.shape;\n var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action);\n if (!targetNode) {\n targetNode = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n this.diagram.clearSelectorLayer();\n if (targetNode && !(targetNode.isLane || targetNode.isPhase || targetNode.isHeader)) {\n for (var i = 0; i < objects.length; i++) {\n var laneNode = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id];\n if (laneNode.isLane || laneNode.isPhase || laneNode.isHeader) {\n targetNode = laneNode;\n }\n }\n }\n if (targetNode && (actualShape.isPhase || (actualShape.isLane && targetNode.isLane))) {\n var id = targetNode.parentId;\n swimlaneNode = this.diagram.nameTable[\"\" + id];\n }\n if (swimlaneNode) {\n shape = swimlaneNode.shape;\n canInsert = (actualShape.isLane) ? actualShape.orientation === shape.orientation :\n actualShape.orientation !== shape.orientation;\n }\n if (canInsert && targetNode) {\n if (shape && shape.header && shape.hasHeader && shape.orientation === 'Horizontal') {\n index = 1;\n }\n if (shape.phases.length > 0) {\n index += 1;\n }\n if (actualShape.isPhase) {\n if (shape.orientation === 'Horizontal') {\n offset = this.currentPosition.x - swimlaneNode.wrapper.bounds.x;\n }\n else {\n offset = this.currentPosition.y - (swimlaneNode.wrapper.bounds.y + shape.header.height);\n }\n var phases = { id: randomId(), offset: offset, header: { annotation: { content: 'Phase' } } };\n this.diagram.addPhases(swimlaneNode, [phases]);\n }\n else {\n //const laneHeight: number = actualShape.lanes[0].header.height;\n var lane = {\n id: randomId(), style: actualShape.lanes[0].style, header: {\n annotation: {\n content: actualShape.lanes[0].header.annotation.content,\n style: actualShape.lanes[0].header.annotation.style\n },\n style: actualShape.lanes[0].header.style\n }\n };\n var orientation_1 = (actualShape.orientation === 'Horizontal') ? true : false;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n orientation_1 ? lane.height = actualShape.lanes[0].height : lane.width = actualShape.lanes[0].width;\n if (shape.orientation === 'Horizontal') {\n value = targetNode.rowIndex ? targetNode.rowIndex :\n this.diagram.nameTable[targetNode.parentId].rowIndex;\n if (targetNode.wrapper.offsetY < this.currentPosition.y) {\n value += 1;\n }\n }\n else {\n value = targetNode.columnIndex ? targetNode.columnIndex :\n this.diagram.nameTable[targetNode.parentId].columnIndex;\n if (this.currentPosition.x < targetNode.wrapper.bounds.center.x) {\n value -= 1;\n }\n }\n if (shape.lanes.length > (value)) {\n lane.header.width = shape.lanes[parseInt(value.toString(), 10)].header.width;\n lane.header.height = shape.lanes[parseInt(value.toString(), 10)].header.height;\n }\n else {\n //EJ2-64457 - Not able to add lane in the existing vertical swimlane.\n var ind = void 0;\n if (shape.orientation === 'Horizontal') {\n ind = targetNode.rowIndex < 3 ? 0 : value - index - 1;\n }\n else {\n ind = value - 1;\n }\n lane.header.width = shape.lanes[parseInt(ind.toString(), 10)].header.width;\n lane.header.height = shape.lanes[parseInt(ind.toString(), 10)].header.height;\n }\n this.diagram.addLanes(swimlaneNode, [lane], shape.orientation === 'Horizontal' ? value - index : value);\n }\n this.commandHandler.select(swimlaneNode);\n }\n else if (actualShape.isLane) {\n var swimLaneobj = {\n id: randomId(), width: selectedNode.width, height: selectedNode.height, addInfo: selectedNode.addInfo,\n shape: {\n type: 'SwimLane', header: {\n annotation: { content: 'Header' }, height: 50, style: actualShape.lanes[0].header.style\n },\n phases: [{ id: randomId(), header: { annotation: { content: 'Phase' } } }],\n lanes: [{\n id: randomId(), height: selectedNode.height, width: selectedNode.width, style: actualShape.lanes[0].style,\n header: {\n annotation: {\n content: actualShape.lanes[0].header.annotation.content,\n style: actualShape.lanes[0].header.annotation.style\n },\n style: actualShape.lanes[0].header.style\n }\n }], orientation: actualShape.orientation\n }\n };\n if (actualShape.orientation === 'Vertical') {\n swimLaneobj.width += 20;\n }\n swimLaneobj.offsetX = this.currentPosition.x + (swimLaneobj.width / 2);\n swimLaneobj.offsetY = this.currentPosition.y + (swimLaneobj.height / 2);\n this.diagram.add(swimLaneobj);\n }\n };\n /** @private */\n DiagramEventHandler.prototype.mouseLeave = function (evt) {\n //Define what has to happen on mouse leave\n if (this.tool && this.inAction) {\n this.tool.mouseLeave(this.eventArgs);\n }\n if (this.diagram.selectedObject.helperObject) {\n this.updateContainerProperties();\n var isGroupAction = this.updateContainerBounds();\n if (isGroupAction) {\n this.diagram.endGroupAction();\n }\n }\n if (this.eventArgs && this.eventArgs.source) {\n this.diagram.updatePortVisibility(this.eventArgs.source, PortVisibility.Hover, true);\n this.hoverElement = null;\n }\n if (this.eventArgs && !this.eventArgs.source && this.hoverElement) {\n this.hoverElement = null;\n }\n if (this.tool instanceof ConnectTool && this.eventArgs && this.eventArgs.target && this.eventArgs.target instanceof Node) {\n this.diagram.updatePortVisibility(this.eventArgs.target, PortVisibility.Hover | PortVisibility.Connect, true);\n this.hoverElement = null;\n }\n var selector = this.diagram.selectedItems;\n if (selector && selector.wrapper) {\n if (!(selectionHasConnector(this.diagram, selector))) {\n this.diagram.renderSelector(true);\n }\n }\n if (this.diagram.diagramActions & DiagramAction.Interactions || this.diagram.diagramActions & DiagramAction.ToolAction) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.ToolAction;\n }\n this.isMouseDown = false;\n this.focus = false;\n this.touchStartList = null;\n this.touchMoveList = null;\n this.elementLeave();\n this.commandHandler.removeSnap();\n this.inAction = false;\n this.eventArgs = {};\n if (this.diagram.selectedObject && this.diagram.selectedObject.helperObject) {\n this.diagram.remove(this.diagram.selectedObject.helperObject);\n this.diagram.selectedObject = { helperObject: undefined, actualObject: undefined };\n }\n this.tool = null;\n removeRulerMarkers();\n if (this.action === 'Rotate') {\n this.diagram.diagramCanvas.classList.remove('e-diagram-rotate');\n }\n evt.preventDefault();\n };\n /** @private */\n DiagramEventHandler.prototype.mouseWheel = function (evt) {\n this.diagram.blazorActions |= BlazorAction.interaction;\n // EJ2-64831 - Need to provide support to override the mousewheel event\n var arg = {\n event: evt,\n cancel: false\n };\n this.diagram.triggerEvent(DiagramEvent.mouseWheel, arg);\n if (!arg.cancel) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var up = (evt.wheelDelta > 0 || -40 * evt.detail > 0) ? true : false;\n var mousePosition = this.getMousePosition(evt);\n this.diagram.tooltipObject.close();\n var ctrlKey = this.isMetaKey(evt);\n if (ctrlKey) {\n // SF-362356 - Command below line to implement smooth scroll in diagram.\n // this.diagram.zoom(up ? (1.2) : 1 / (1.2), mousePosition);\n // EJ2-59803 - Added the below code to get the zoom factor value from scroll settings and\n // set it to zoomFactor args in zoomTo method.\n var zoomFactor = this.diagram.scrollSettings.zoomFactor;\n if (up) {\n this.diagram.zoomTo({ type: 'ZoomIn', zoomFactor: zoomFactor, focusPoint: mousePosition });\n }\n else {\n this.diagram.zoomTo({ type: 'ZoomOut', zoomFactor: zoomFactor, focusPoint: mousePosition });\n }\n evt.preventDefault();\n }\n else {\n var horizontalOffset = this.diagram.scroller.horizontalOffset;\n var verticalOffset = this.diagram.scroller.verticalOffset;\n var change = up ? 10 : -10;\n if (this.tool && (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)) {\n this.eventArgs = {};\n this.getMouseEventArgs(mousePosition, this.eventArgs);\n this.eventArgs.position = mousePosition;\n this.tool.mouseWheel(this.eventArgs);\n }\n this.diagram.scrollActions |= ScrollActions.Interaction;\n var canMouseWheel = true;\n // Bug 829925: Scroll bar flickers on scrolling the diagram using touchpad.\n // Added the below condition to check whether the mouse wheel is from trackpad or not.\n var isTrackpadScroll = false;\n if ((Math.abs(evt.deltaY) < 100 && Math.abs(evt.deltaX) === -0) ||\n (Math.abs(evt.deltaX) < 100 && Math.abs(evt.deltaY) === -0)) {\n isTrackpadScroll = true;\n }\n //Bug 837940: In mac, scrollbar flickers on horizontal and vertical scroll using trackpad.\n if (evt.shiftKey || (evt.deltaX && evt.deltaX !== -0 && isTrackpadScroll)) {\n this.diagram.scroller.zoom(1, change, 0, mousePosition, canMouseWheel, undefined, isTrackpadScroll);\n }\n else if ((evt.deltaY && evt.deltaY !== -0 && isTrackpadScroll)) {\n this.diagram.scroller.zoom(1, 0, change, mousePosition, canMouseWheel, undefined, isTrackpadScroll);\n }\n this.diagram.scrollActions &= ~ScrollActions.Interaction;\n if (horizontalOffset !== this.diagram.scroller.horizontalOffset\n || verticalOffset !== this.diagram.scroller.verticalOffset) {\n evt.preventDefault();\n }\n }\n if (this.diagram.textEditing) {\n this.diagram.isTriggerEvent = true;\n if (this.diagram.activeLabel.parentId) {\n var node = this.diagram.getObject(this.diagram.activeLabel.parentId);\n this.diagram.startTextEdit(node, this.diagram.activeLabel.id);\n }\n this.diagram.isTriggerEvent = false;\n }\n this.diagram.blazorActions = this.diagram.blazorActions & ~BlazorAction.interaction;\n }\n };\n /** @private */\n DiagramEventHandler.prototype.keyDown = function (evt) {\n if (!(this.diagram.diagramActions & DiagramAction.TextEdit) &&\n !(this.checkEditBoxAsTarget(evt)) || (evt.key === 'Escape' || evt.keyCode === 27)) {\n var i = void 0;\n var inAction = 'inAction';\n var command = void 0;\n var keycode = evt.keyCode ? evt.keyCode : evt.which;\n var key = evt.key;\n if (key === 'ArrowDown' || key === 'ArrowUp' || key === 'ArrowLeft' || key === 'ArrowRight') {\n this.isNudgeKey = true;\n }\n var ctrlKey = this.isMetaKey(evt);\n if (this.diagram.commandManager && this.diagram.commands) {\n var commands = this.diagram.commands;\n for (var _i = 0, _a = Object.keys(commands); _i < _a.length; _i++) {\n var i_1 = _a[_i];\n command = this.diagram.commands[\"\" + i_1];\n if (command && (command.gesture.keyModifiers || command.gesture.key)) {\n if ((keycode === command.gesture.key || (key === Keys[command.gesture.key])\n || this.isDeleteKey(key, i_1))\n && (((!command.gesture.keyModifiers) && (!evt.altKey) && (!evt.shiftKey) && (!ctrlKey)) ||\n (command.gesture.keyModifiers && (ctrlKey || evt.altKey || evt.shiftKey) &&\n (this.altKeyPressed(command.gesture.keyModifiers) && evt.altKey) ||\n (this.shiftKeyPressed(command.gesture.keyModifiers) && evt.shiftKey) ||\n (this.ctrlKeyPressed(command.gesture.keyModifiers) && ctrlKey)))) {\n var canExecute = getFunction(command.canExecute);\n if (isBlazor() || (canExecute &&\n canExecute({\n 'keyDownEventArgs': KeyboardEvent,\n parameter: command.parameter\n }))) {\n evt.preventDefault();\n if (evt.key === 'Escape') {\n if (this.checkEditBoxAsTarget(evt)) {\n document.getElementById(this.diagram.diagramCanvas.id).focus();\n }\n else if (this.diagram.currentSymbol) {\n var selectedSymbols = 'selectedSymbols';\n var source = 'sourceElement';\n var intDestroy = 'intDestroy';\n this.diagram.removeFromAQuad(this.diagram.currentSymbol);\n this.diagram.removeObjectsFromLayer(this.diagram.nameTable[this.diagram.currentSymbol.id]);\n this.diagram.removeElements(this.diagram.currentSymbol);\n removeChildNodes(this.diagram.currentSymbol, this.diagram);\n delete this.diagram.nameTable[this.diagram.currentSymbol.id];\n var sourceElement = this.diagram.droppable[\"\" + source];\n sourceElement.draggable[\"\" + intDestroy]();\n var element = this.diagram.droppable[\"\" + selectedSymbols];\n element.parentNode.removeChild(element);\n var diagramActions = this.diagram.diagramActions;\n this.diagram.diagramActions =\n this.diagram.addConstraints(diagramActions, DiagramAction.PreventClearSelection);\n this.tool.mouseUp(this.eventArgs);\n this.diagram.diagramRenderer.rendererActions = this.diagram.removeConstraints(this.diagram.diagramRenderer.rendererActions, RendererAction.DrawSelectorBorder);\n if (this.diagram.previousSelectedObject) {\n this.diagram.select(this.diagram.previousSelectedObject);\n }\n this.action = 'Select';\n this.diagram.previousSelectedObject = null;\n this.diagram.currentSymbol = null;\n this.diagram.diagramActions =\n this.diagram.removeConstraints(diagramActions, DiagramAction.PreventClearSelection);\n this.isMouseDown = false;\n }\n else if (this.inAction && this.diagram.drawingObject && this.tool && this.tool[\"\" + inAction]) {\n this.tool.mouseUp(this.eventArgs);\n this.tool = null;\n this.isMouseDown = false;\n }\n }\n if (command.execute) {\n if (this.diagram.tool !== DiagramTools.ZoomPan) {\n // if (i === 'nudgeUp' || i === 'nudgeRight' || i === 'nudgeDown' || i === 'nudgeLeft') {\n // command.execute()\n // } else {\n var execute = getFunction(command.execute);\n // Bug 832880: Need to improve performance while nudging multiple nodes.\n if (this.isNudgeKey) {\n if (!this.isKeyUp) {\n this.keyCount++;\n if (this.keyCount > 4) {\n execute({ 'keyDownEventArgs': KeyboardEvent, parameter: command.parameter, type: 'KEYDOWN' });\n this.keyCount = 0;\n }\n }\n this.isKeyUp = false;\n }\n else {\n execute({ 'keyDownEventArgs': KeyboardEvent, parameter: command.parameter });\n }\n }\n // }\n }\n if (isBlazor()) {\n var arg = { gesture: command.gesture };\n this.diagram.triggerEvent(DiagramEvent.commandExecute, arg);\n }\n break;\n }\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var selectedObject = (this.diagram.selectedItems.nodes.length) ?\n this.diagram.selectedItems.nodes : this.diagram.selectedItems.connectors;\n this.keyArgs = {\n element: cloneBlazorObject(this.diagram.selectedItems),\n key: evt.key, keyCode: evt.keyCode ? evt.keyCode : evt.which\n };\n this.getKeyModifier(this.keyArgs, evt);\n if ((this.diagram.diagramActions & DiagramAction.TextEdit)) {\n this.getlabel(this.keyArgs, evt);\n }\n this.diagram.triggerEvent(DiagramEvent.keyDown, this.keyArgs);\n };\n DiagramEventHandler.prototype.getlabel = function (args, evt) {\n var label = this.diagram.activeLabel;\n args.target = this.diagram.element.id + '_editBox';\n var node = this.diagram.nameTable[label.parentId];\n if (document.getElementById(this.diagram.element.id + '_editBox')) {\n args.text = document.getElementById(this.diagram.element.id + '_editBox').value;\n for (var i = 0; i < node.annotations.length; i++) {\n if (node.annotations[parseInt(i.toString(), 10)].id === label.id) {\n args.label = node.annotations[parseInt(i.toString(), 10)];\n break;\n }\n }\n }\n };\n DiagramEventHandler.prototype.getKeyModifier = function (args, evt) {\n args.keyModifiers = KeyModifiers.None;\n if (evt.ctrlKey) {\n args.keyModifiers |= KeyModifiers.Control;\n }\n if (evt.shiftKey) {\n args.keyModifiers |= KeyModifiers.Shift;\n }\n if (evt.altKey) {\n args.keyModifiers |= KeyModifiers.Alt;\n }\n if (this.isMetaKey(evt)) {\n args.keyModifiers |= KeyModifiers.Meta;\n }\n };\n DiagramEventHandler.prototype.keyUp = function (evt) {\n this.keyArgs = {\n element: cloneBlazorObject(this.diagram.selectedItems), key: evt.key, keyCode: evt.keyCode ? evt.keyCode : evt.which\n };\n var selectedObject = (this.diagram.selectedItems.nodes.length) ?\n this.diagram.selectedItems.nodes : this.diagram.selectedItems.connectors;\n this.getKeyModifier(this.keyArgs, evt);\n if ((this.diagram.diagramActions & DiagramAction.TextEdit)) {\n this.getlabel(this.keyArgs, evt);\n }\n this.diagram.triggerEvent(DiagramEvent.keyUp, this.keyArgs);\n // this.isKeyUp = true;\n // Bug 832880: Need to improve performance while nudging multiple nodes.\n if (!this.isKeyUp && this.isNudgeKey) {\n var direction = evt.code === 'ArrowUp' ? 'Up' : evt.code === 'ArrowDown' ? 'Down' : evt.code === 'ArrowLeft' ? 'Left' : 'Right';\n this.diagram.nudge(direction);\n this.isNudgeKey = false;\n this.keyCount = 0;\n }\n };\n DiagramEventHandler.prototype.startAutoScroll = function (e) {\n var position = this.getMousePosition(e);\n position.x *= this.diagram.scroller.currentZoom;\n position.y *= this.diagram.scroller.currentZoom;\n var rulerSize = getRulerSize(this.diagram);\n var movingPosition;\n var autoScrollBorder = this.diagram.scrollSettings.autoScrollBorder;\n if (Browser.info.name === 'mozilla') {\n if (this.diagram.scroller.viewPortWidth === 0) {\n var bounds = document.getElementById(this.diagram.element.id).getBoundingClientRect();\n if (bounds.width !== this.diagram.scroller.viewPortWidth) {\n this.diagram.scroller.setViewPortSize(bounds.width, bounds.height);\n }\n }\n }\n if (this.diagram.scrollSettings.canAutoScroll) {\n if (position.x + this.diagram.scroller.horizontalOffset + autoScrollBorder.right + rulerSize.width >=\n this.diagram.scroller.viewPortWidth - 18) {\n movingPosition = 'right';\n }\n else if (position.x + this.diagram.scroller.horizontalOffset < autoScrollBorder.left) {\n movingPosition = 'left';\n }\n else if (position.y + this.diagram.scroller.verticalOffset + autoScrollBorder.bottom + rulerSize.height >\n this.diagram.scroller.viewPortHeight - 18) {\n movingPosition = 'bottom';\n }\n else if (position.y + this.diagram.scroller.verticalOffset < autoScrollBorder.top) {\n movingPosition = 'top';\n }\n }\n return movingPosition;\n };\n DiagramEventHandler.prototype.doAutoScroll = function (option, e, delay, autoScroll) {\n var position = option;\n var canAutoScroll = true;\n if ((this.tool instanceof NodeDrawingTool || this.tool instanceof ConnectorDrawingTool\n || this.tool instanceof MoveTool || this.tool instanceof ResizeTool\n || this.tool instanceof SelectTool || this.tool instanceof ConnectTool) && this.inAction) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var diagram = this;\n var pos = this.getMousePosition(e);\n var autoScrollBorder = this.diagram.scrollSettings.autoScrollBorder;\n var newDelay = delay ? delay : 100;\n var left = 0;\n var top_1 = 0;\n var canUpdate = false;\n var corner = '';\n var point = { x: pos.x, y: pos.y };\n // EJ2-61979 - Added below code to check whether we resize the node around four corners\n if (this.tool instanceof ResizeTool && (this.tool.corner === 'ResizeSouthEast' || this.tool.corner === 'ResizeSouthWest' ||\n this.tool.corner === 'ResizeNorthWest' || this.tool.corner === 'ResizeNorthEast')) {\n canUpdate = true;\n corner = this.tool.corner;\n }\n switch (position) {\n case 'right':\n point.x = pos.x + 10;\n left = 10;\n // EJ2-61979 - If node gets resized on southeast or northeast corner means then update the y position along with x position\n if (canUpdate) {\n if (corner === 'ResizeSouthEast') {\n point.y = pos.y + 10;\n top_1 = 10;\n }\n else {\n point.y = pos.y - 10;\n top_1 = -10;\n }\n }\n break;\n case 'left':\n point.x = pos.x - 10;\n left = -10;\n // EJ2-61979 - If node gets resized on northwest or southwest corner means then update the y position along with x position\n if (canUpdate) {\n if (corner === 'ResizeNorthWest') {\n point.y = pos.y - 10;\n top_1 = -10;\n }\n else {\n point.y = pos.y + 10;\n top_1 = 10;\n }\n }\n break;\n case 'bottom':\n point.y = pos.y + 10;\n top_1 = 10;\n // EJ2-61979 - If node gets resized on southeast or southwest corner means then update the x position along with y position\n if (canUpdate) {\n if (corner === 'ResizeSouthEast') {\n point.x = pos.x + 10;\n left = 10;\n }\n else {\n point.x = pos.x - 10;\n left = -10;\n }\n }\n break;\n case 'top':\n point.y = pos.y - 10;\n top_1 = -10;\n // EJ2-61979 - If node gets resized on northeast or northwest corner means then update the x position along with y position\n if (canUpdate) {\n if (corner === 'ResizeNorthEast') {\n point.x = pos.x + 10;\n left = 10;\n }\n else {\n point.x = pos.x - 10;\n left = -10;\n }\n }\n break;\n }\n this.eventArgs.position = { x: point.x, y: point.y };\n this.currentPosition = this.eventArgs.position;\n var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action);\n this.eventArgs.target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n this.tool.mouseMove(this.eventArgs);\n this.diagram.scrollActions |= ScrollActions.Interaction;\n this.diagram.scroller.zoom(1, -left, -top_1, pos, canAutoScroll);\n this.diagram.scrollActions &= ~ScrollActions.Interaction;\n }\n };\n DiagramEventHandler.prototype.mouseEvents = function () {\n var target = this.diagram.findObjectsUnderMouse(this.currentPosition);\n for (var i = 0; i < target.length; i++) {\n if (this.eventArgs.actualObject === target[parseInt(i.toString(), 10)]) {\n target.splice(i, 1);\n }\n }\n var arg = {\n targets: {}\n };\n if (!isBlazor()) {\n arg = {\n targets: cloneBlazorObject(target),\n element: cloneBlazorObject((this.eventArgs.source === this.eventArgs.actualObject) ? undefined : this.eventArgs.source),\n actualObject: cloneBlazorObject(this.eventArgs.actualObject)\n };\n }\n if (isBlazor() && (this.diagram.mouseEnter || this.diagram.mouseOver)) {\n arg.actualObject = getObjectType(this.eventArgs.actualObject) === Connector ? {\n connector: cloneBlazorObject(this.eventArgs.actualObject)\n }\n : {\n node: cloneBlazorObject(this.eventArgs.actualObject)\n };\n arg.targets.connector = [];\n arg.targets.node = [];\n this.getBlazorCollectionObject(target, arg);\n }\n if (this.lastObjectUnderMouse && this.diagram.mouseLeave\n && (!this.eventArgs.actualObject || (this.lastObjectUnderMouse !== this.eventArgs.actualObject))) {\n var arg_1 = {\n targets: undefined, element: cloneBlazorObject(this.lastObjectUnderMouse), actualObject: undefined\n };\n if (isBlazor()) {\n arg_1 = {\n targets: undefined,\n element: getObjectType(this.lastObjectUnderMouse) === Connector ? { connector: cloneBlazorObject(target) }\n : {\n node: cloneBlazorObject(this.lastObjectUnderMouse)\n },\n actualObject: undefined\n };\n }\n this.diagram.triggerEvent(DiagramEvent.mouseLeave, arg_1);\n this.lastObjectUnderMouse = null;\n }\n if (!this.lastObjectUnderMouse && this.eventArgs.source || (this.lastObjectUnderMouse !== this.eventArgs.actualObject)) {\n this.lastObjectUnderMouse = this.eventArgs.actualObject;\n if (this.eventArgs.actualObject !== undefined) {\n this.diagram.triggerEvent(DiagramEvent.mouseEnter, arg);\n }\n }\n if (this.eventArgs.actualObject) {\n this.diagram.triggerEvent(DiagramEvent.mouseOver, arg);\n }\n };\n DiagramEventHandler.prototype.getBlazorCollectionObject = function (obj, arg1) {\n if (obj) {\n for (var i = 0; i < obj.length; i++) {\n if (getObjectType(obj[parseInt(i.toString(), 10)]) === Connector) {\n arg1.targets.connector.push(cloneBlazorObject(obj[parseInt(i.toString(), 10)]));\n }\n else {\n arg1.targets.node.push(cloneBlazorObject(obj[parseInt(i.toString(), 10)]));\n }\n }\n }\n };\n DiagramEventHandler.prototype.elementEnter = function (mousePosition, elementOver) {\n if (!elementOver) {\n var isPrivateTooltip = ((this.hoverElement instanceof Node) && this.hoverElement.constraints & NodeConstraints.Tooltip) ||\n ((this.hoverElement instanceof Connector) && this.hoverElement.constraints & ConnectorConstraints.Tooltip) ||\n ((this.hoverElement instanceof PointPort) && this.hoverElement.constraints & PortConstraints.ToolTip);\n var content = this.getContent();\n var children = void 0;\n if (this.hoverElement && this.hoverElement.children && this.hoverElement.children.length > 0) {\n // EJ2-56981 - Below method is used to check if the mouse pointer position and group children node gets intersect or not\n children = this.findIntersectChild(this.hoverElement);\n }\n if (this.hoverElement.tooltip.openOn === 'Auto' && content !== '') {\n // EJ2-56981 - If children returned means then update tooltip for child node else update tooltip for group node.\n if (children) {\n updateTooltip(this.diagram, children);\n }\n else {\n updateTooltip(this.diagram, isPrivateTooltip ? this.hoverElement : undefined);\n }\n }\n // EJ2-66418 - set tooltip relativeMode as mouse\n // Calculating offset position for relativeMode Mouse\n if (this.hoverElement.tooltip.content) {\n if (this.hoverElement.tooltip.relativeMode === 'Mouse') {\n this.setTooltipOffset(mousePosition);\n }\n else {\n this.diagram.tooltipObject.offsetX = 0;\n this.diagram.tooltipObject.offsetY = 0;\n }\n }\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n var targetEle = void 0;\n if (obj instanceof Node && obj.children && obj.children.length > 0) {\n // EJ2-56981 - If children returned means then update tooltip for child node else update tooltip for group node.\n obj = children ? children : obj;\n }\n //EJ2-62120 - check if the Node has Ports and hoverElement is Port as mousepointer hovered over Port\n if (obj.ports && this.hoverElement instanceof PointPort) {\n //executed to set target as port\n targetEle = document.getElementById(obj.id + '_' + this.hoverElement.id);\n }\n else {\n //executed to set target as Node or Connector\n var idName = (obj.shape && ((obj.shape) instanceof Native)) ? '_content_native_element' : '_groupElement';\n targetEle = document.getElementById(obj.id + idName);\n }\n if (this.hoverElement.tooltip.openOn === 'Auto' && content !== '') {\n this.diagram.tooltipObject.close();\n this.diagram.tooltipObject.openOn = this.hoverElement.tooltip.openOn;\n if (isBlazor()) {\n this.diagram.tooltipObject.open(targetEle, {});\n }\n else {\n this.diagram.tooltipObject.dataBind();\n }\n }\n if (canEnableToolTip(this.hoverElement, this.diagram) && this.hoverElement.tooltip.openOn === 'Auto') {\n this.diagram.tooltipObject.target = this.hoverElement.id;\n if (this.hoverElement.tooltip.relativeMode === 'Mouse') {\n this.diagram.tooltipObject.open(this.diagram.element);\n }\n else {\n this.diagram.tooltipObject.open(targetEle);\n }\n }\n }\n };\n DiagramEventHandler.prototype.elementLeave = function () {\n if (this.diagram.tooltipObject && this.diagram.tooltipObject.openOn !== 'Custom') {\n this.diagram.tooltipObject.close();\n }\n };\n // EJ2-66418 - set tooltip relativeMode as mouse\n // Calculating offset position for relativeMode Mouse\n DiagramEventHandler.prototype.setTooltipOffset = function (mousePosition) {\n var offset = getTooltipOffset(this.diagram, mousePosition, this.hoverElement);\n this.diagram.tooltipObject.offsetX = offset.x;\n this.diagram.tooltipObject.offsetY = offset.y;\n };\n DiagramEventHandler.prototype.altKeyPressed = function (keyModifier) {\n if (keyModifier & KeyModifiers.Alt) {\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.ctrlKeyPressed = function (keyModifier) {\n if (keyModifier & KeyModifiers.Control) {\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.shiftKeyPressed = function (keyModifier) {\n if (keyModifier & KeyModifiers.Shift) {\n return true;\n }\n return false;\n };\n /** @private */\n DiagramEventHandler.prototype.scrolled = function (evt) {\n this.diagram.updateScrollOffset();\n if (isBlazor() && (this.diagram.realActions & RealAction.OverViewAction)) {\n this.diagram.setBlazorDiagramProps(false);\n }\n };\n /** @private */\n DiagramEventHandler.prototype.doubleClick = function (evt) {\n if (canUserInteract(this.diagram)) {\n var annotation = void 0;\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n if (obj !== null && canUserInteract(this.diagram)) {\n var node = obj;\n annotation = this.diagram.findElementUnderMouse(obj, this.currentPosition);\n if (this.tool && (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)) {\n var arg_2 = {\n source: cloneBlazorObject(obj) || cloneBlazorObject(this.diagram),\n position: this.currentPosition, count: evt.detail\n };\n this.tool.mouseUp(this.eventArgs);\n this.isMouseDown = false;\n this.eventArgs = {};\n this.tool = null;\n evt.preventDefault();\n }\n else {\n var layer = this.diagram.commandHandler.getObjectLayer(obj.id);\n if (layer && !layer.lock && layer.visible) {\n if (!(this.diagram.diagramActions & DiagramAction.TextEdit)) {\n var id = '';\n if (obj.shape.shape === 'TextAnnotation') {\n id = obj.wrapper.children[1].id.split('_')[1];\n }\n this.diagram.startTextEdit(obj, id || (annotation instanceof TextElement ?\n (annotation.id).split(obj.id + '_')[1] : undefined));\n }\n }\n }\n }\n var arg = {\n source: cloneBlazorObject(obj) || cloneBlazorObject(this.diagram),\n position: this.currentPosition, count: evt.detail\n };\n if (isBlazor()) {\n var selector = void 0;\n if (obj instanceof Node) {\n selector = { nodes: [cloneBlazorObject(obj)] };\n }\n else if (obj instanceof Connector) {\n selector = { connectors: [cloneBlazorObject(obj)] };\n }\n else {\n selector = cloneBlazorObject(obj);\n }\n arg = {\n source: obj ? { selector: selector } : { diagram: cloneBlazorObject(this.diagram) },\n position: this.currentPosition, count: evt.detail\n };\n }\n this.diagram.triggerEvent(DiagramEvent.doubleClick, arg);\n }\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.itemClick = function (actualTarget, diagram) {\n var obj = actualTarget;\n if (checkParentAsContainer(this.diagram, obj, true)) {\n return obj;\n }\n return null;\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.inputChange = function (evt) {\n var minWidth = 90;\n var maxWidth;\n var minHeight = 12;\n var fontsize;\n var textWrapper;\n var node;\n var height;\n var width;\n var textBounds;\n var textBoxWidth;\n var transforms;\n var scale;\n var editTextBox = document.getElementById(this.diagram.element.id + '_editBox');\n var editTextBoxDiv = document.getElementById(this.diagram.element.id + '_editTextBoxDiv');\n var text = (editTextBox.value);\n var line = text.split('\\n');\n node = (this.diagram.selectedItems.nodes[0]) ? this.diagram.selectedItems.nodes[0] : this.diagram.selectedItems.connectors[0];\n if ((!node && this.tool instanceof TextDrawingTool) || (node && node.shape.type === 'SwimLane')) {\n node = this.diagram.nameTable[this.diagram.activeLabel.parentId];\n }\n if (node && ((node.shape.type !== 'Text' && node.annotations.length > 0) || (node.shape.type === 'Text'))) {\n textWrapper = this.diagram.getWrapper(node.wrapper, this.diagram.activeLabel.id);\n maxWidth = node.wrapper.bounds.width < textWrapper.bounds.width ? node.wrapper.bounds.width : textWrapper.bounds.width;\n maxWidth = maxWidth > minWidth ? maxWidth : minWidth;\n textBounds = measureHtmlText(textWrapper.style, text, undefined, undefined, maxWidth);\n fontsize = Number((editTextBox.style.fontSize).split('px')[0]);\n if (line.length > 1 && line[line.length - 1] === '') {\n textBounds.height = textBounds.height + fontsize;\n }\n transforms = this.diagram.scroller.transform;\n scale = canZoomTextEdit(this.diagram) ? transforms.scale : 1;\n width = textBounds.width;\n width = ((minWidth > width) ? minWidth : width) * scale;\n height = ((minHeight > textBounds.height) ? minHeight : textBounds.height) * scale;\n if (!(node instanceof Connector && node.type === 'Bezier')) {\n editTextBoxDiv.style.left = ((((textWrapper.bounds.center.x + transforms.tx) * transforms.scale) - width / 2) - 2.5) + 'px';\n editTextBoxDiv.style.top = ((((textWrapper.bounds.center.y + transforms.ty) * transforms.scale) - height / 2) - 3) + 'px';\n }\n editTextBoxDiv.style.width = width + 'px';\n editTextBoxDiv.style.height = height + 'px';\n editTextBox.style.minHeight = minHeight + 'px';\n editTextBox.style.minWidth = minWidth + 'px';\n editTextBox.style.width = width + 'px';\n editTextBox.style.height = height + 'px';\n }\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.isAddTextNode = function (node, focusOut) {\n if (this.tool instanceof TextDrawingTool || focusOut) {\n this.tool = null;\n if (node && (!(canContinuousDraw(this.diagram)))) {\n this.diagram.drawingObject = undefined;\n this.diagram.currentDrawingObject = undefined;\n }\n if (getObjectFromCollection(this.diagram.nodes, node.id) ||\n getObjectFromCollection(this.diagram.connectors, node.id) ||\n (this.diagram.bpmnModule && this.diagram.bpmnModule.textAnnotationConnectors.indexOf(node) > -1)) {\n return false;\n }\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.checkEditBoxAsTarget = function (evt) {\n if ((evt.target && evt.target.id === this.diagram.element.id + '_editBox')) {\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.getMouseEventArgs = function (position, args, source, padding) {\n args.position = position;\n var obj;\n var objects;\n if (!source) {\n if (this.action === 'Drag' || this.action === 'ConnectorSourceEnd' || this.action === 'SegmentEnd' ||\n this.action === 'OrthoThumb' || this.action === 'BezierSourceThumb' || this.action === 'BezierTargetThumb' ||\n this.action === 'ConnectorTargetEnd' || this.action.indexOf('Rotate') !== -1 || this.action.indexOf('Resize') !== -1) {\n obj = this.diagram.selectedItems;\n if (!this.diagram.currentSymbol && this.action === 'Drag' && obj && this.diagram.selectedItems.nodes.length > 0 &&\n this.diagram.selectedItems.nodes[0].shape.type === 'SwimLane') {\n objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n }\n else {\n objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n }\n else {\n objects = this.diagram.findObjectsUnderMouse(this.currentPosition, source);\n obj = this.diagram.findTargetObjectUnderMouse(objects, this.action, this.inAction, args.position, source);\n }\n if (obj && obj.isHeader) {\n obj = this.diagram.nameTable[obj.parentId];\n this.eventArgs.actualObject = obj;\n }\n var wrapper;\n if (obj) {\n wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, padding);\n var currentConnector = void 0;\n var nearNode = void 0;\n var i = void 0;\n if ((wrapper && obj.ports && obj.ports.length && !checkPort(obj, wrapper) || !wrapper ||\n !obj) && objects && objects.length && (source instanceof Selector)) {\n currentConnector = source.connectors[0];\n for (i = objects.length - 1; i >= 0; i--) {\n nearNode = objects[parseInt(i.toString(), 10)];\n if ((nearNode instanceof Node) && currentConnector && currentConnector.connectionPadding) {\n obj = nearNode;\n wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, padding);\n if (((currentConnector.constraints & ConnectorConstraints.ConnectToNearByPort) && obj &&\n obj.ports && obj.ports.length && checkPort(obj, wrapper))) {\n break;\n }\n if ((nearNode instanceof Node) && currentConnector && currentConnector.connectionPadding\n && nearNode.wrapper.outerBounds.containsPoint(this.currentPosition) &&\n (currentConnector.constraints & ConnectorConstraints.ConnectToNearByNode) &&\n !(currentConnector.constraints & ConnectorConstraints.ConnectToNearByPort)) {\n obj = nearNode;\n wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, 0);\n break;\n }\n }\n }\n }\n }\n if (!source) {\n args.source = obj;\n args.sourceWrapper = wrapper;\n }\n else {\n args.target = obj;\n args.targetWrapper = wrapper;\n }\n args.actualObject = this.eventArgs.actualObject;\n if (args.source instanceof Selector && args.actualObject === undefined &&\n (args.source.nodes.length > 0 || args.source.connectors.length > 0)) {\n args.actualObject = args.source.nodes.length > 0 ? this.diagram.nameTable[args.source.nodes[0].id]\n : this.diagram.nameTable[args.source.connectors[0].id];\n }\n args.startTouches = this.touchStartList;\n args.moveTouches = this.touchMoveList;\n return args;\n };\n /** @private */\n DiagramEventHandler.prototype.resetTool = function () {\n this.action = 'Select';\n this.hoverElement = null;\n this.hoverNode = null;\n this.tool = this.diagram.getTool(this.action);\n this.updateCursor();\n };\n /** @private */\n DiagramEventHandler.prototype.getTool = function (action) {\n switch (action) {\n case 'Select':\n return new SelectTool(this.commandHandler, true);\n case 'Drag':\n return new MoveTool(this.commandHandler);\n case 'Rotate':\n return new RotateTool(this.commandHandler);\n case 'LayoutAnimation':\n return new ExpandTool(this.commandHandler);\n case 'FixedUserHandle':\n return new FixedUserHandleTool(this.commandHandler, true);\n case 'Hyperlink':\n return new LabelTool(this.commandHandler);\n case 'ResizeSouthEast':\n case 'ResizeSouthWest':\n case 'ResizeNorthEast':\n case 'ResizeNorthWest':\n case 'ResizeSouth':\n case 'ResizeNorth':\n case 'ResizeWest':\n case 'ResizeEast':\n return new ResizeTool(this.commandHandler, action);\n case 'ConnectorSourceEnd':\n case 'ConnectorTargetEnd':\n case 'BezierSourceThumb':\n case 'BezierTargetThumb':\n return new ConnectTool(this.commandHandler, action);\n case 'SegmentEnd':\n case 'OrthoThumb':\n return new ConnectorEditing(this.commandHandler, action);\n case 'Draw':\n var shape = 'shape';\n var basicShape = 'basicShape';\n var type = findObjectType(this.diagram.drawingObject);\n if (type === 'Node' && this.diagram.drawingObject.shape.type === 'Text') {\n return new TextDrawingTool(this.commandHandler);\n }\n else if (type === 'Connector' && this.diagram.drawingObject.type === 'Freehand') {\n return new FreeHandTool(this.commandHandler);\n }\n else if (type === 'Node' && (this.diagram.drawingObject.shape[\"\" + shape] === 'Polygon' ||\n (isBlazor() && this.diagram.drawingObject.shape[\"\" + basicShape] === 'Polygon')) &&\n !(this.diagram.drawingObject.shape.points)) {\n return new PolygonDrawingTool(this.commandHandler);\n }\n else if (type === 'Node' ||\n (type === 'Node' && this.diagram.drawingObject.shape[\"\" + shape] === 'Polygon' &&\n (this.diagram.drawingObject.shape.points))) {\n return new NodeDrawingTool(this.commandHandler, this.diagram.drawingObject);\n }\n else if (type === 'Connector' && this.diagram.drawingObject.type === 'Polyline') {\n return new PolyLineDrawingTool(this.commandHandler);\n }\n else if (type === 'Connector') {\n return new ConnectorDrawingTool(this.commandHandler, 'ConnectorSourceEnd', this.diagram.drawingObject);\n }\n break;\n case 'Pan':\n return new ZoomPanTool(this.commandHandler, false);\n case 'PinchZoom':\n return new ZoomPanTool(this.commandHandler, true);\n case 'PortDrag':\n return new MoveTool(this.commandHandler, 'Port');\n case 'PortDraw':\n return new ConnectorDrawingTool(this.commandHandler, 'ConnectorSourceEnd', this.diagram.drawingObject);\n case 'LabelSelect':\n return new SelectTool(this.commandHandler, true, 'LabelSelect');\n case 'LabelDrag':\n return new LabelDragTool(this.commandHandler);\n case 'LabelResizeSouthEast':\n case 'LabelResizeSouthWest':\n case 'LabelResizeNorthEast':\n case 'LabelResizeNorthWest':\n case 'LabelResizeSouth':\n case 'LabelResizeNorth':\n case 'LabelResizeWest':\n case 'LabelResizeEast':\n return new LabelResizeTool(this.commandHandler, action);\n case 'LabelRotate':\n return new LabelRotateTool(this.commandHandler);\n //for coverage\n // case 'Custom':\n // return this.diagram.getTool(action);\n }\n return null;\n };\n /** @private */\n DiagramEventHandler.prototype.getCursor = function (action) {\n var object = (this.diagram.selectedItems.annotation) ?\n this.diagram.selectedItems.wrapper.children[0] : this.diagram.selectedItems;\n var rotateAngle = (this.diagram.selectedItems.annotation) ?\n (object.rotateAngle + object.parentTransform) : object.rotateAngle;\n return getCursor(action, rotateAngle);\n };\n //start region - interface betweend diagram and interaction\n /** @private */\n DiagramEventHandler.prototype.findElementUnderMouse = function (obj, position, padding) {\n return this.objectFinder.findElementUnderSelectedItem(obj, position, padding);\n };\n /** @private */\n DiagramEventHandler.prototype.findObjectsUnderMouse = function (position, source) {\n return this.objectFinder.findObjectsUnderMouse(position, this.diagram, this.eventArgs, source);\n };\n /** @private */\n DiagramEventHandler.prototype.findObjectUnderMouse = function (objects, action, inAction) {\n return this.objectFinder.findObjectUnderMouse(this.diagram, objects, action, inAction, this.eventArgs, this.currentPosition);\n };\n /** @private */\n DiagramEventHandler.prototype.findTargetUnderMouse = function (objects, action, inAction, position, source) {\n return this.objectFinder.findObjectUnderMouse(this.diagram, objects, action, inAction, this.eventArgs, position, source);\n };\n /** @private */\n DiagramEventHandler.prototype.findActionToBeDone = function (obj, wrapper, position, target) {\n return findToolToActivate(obj, wrapper, this.currentPosition, this.diagram, this.touchStartList, this.touchMoveList, target);\n };\n DiagramEventHandler.prototype.updateContainerBounds = function (isAfterMouseUp) {\n var isGroupAction = false;\n if (this.diagram.selectedObject.helperObject && this.diagram.selectedObject.actualObject instanceof Node) {\n var boundsUpdate = (this.tool instanceof ResizeTool) ? true : false;\n var obj = this.diagram.selectedObject.actualObject;\n var parentNode = this.diagram.nameTable[obj.parentId];\n if (isAfterMouseUp) {\n removeChildInContainer(this.diagram, obj, this.currentPosition, boundsUpdate);\n }\n else {\n if (!parentNode || (parentNode && parentNode.shape.type !== 'SwimLane')) {\n this.diagram.updateDiagramObject(obj);\n }\n isGroupAction = updateCanvasBounds(this.diagram, obj, this.currentPosition, boundsUpdate);\n this.diagram.updateSelector();\n if (obj.isLane || obj.isPhase) {\n this.diagram.clearSelection();\n this.commandHandler.selectObjects([obj]);\n }\n }\n }\n return isGroupAction;\n };\n // tslint:disable-next-line:max-func-body-length\n DiagramEventHandler.prototype.updateContainerProperties = function () {\n var helperObject;\n var isChangeProperties = false;\n var hasStack;\n var connectors;\n var hasGroup = false;\n var obj;\n var history = { hasStack: false, isPreventHistory: false };\n if (this.diagram.selectedObject.helperObject) {\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n helperObject = this.diagram.selectedObject.helperObject;\n obj = this.diagram.selectedObject.actualObject;\n if (obj instanceof Node) {\n if (obj.shape.type === 'SwimLane') {\n connectors = getConnectors(this.diagram, obj.wrapper.children[0], 0, true);\n }\n if (obj.shape.type !== 'SwimLane' && obj.parentId &&\n this.diagram.getObject(obj.parentId).shape.type === 'SwimLane') {\n if (target instanceof Node && this.diagram.getObject(target.parentId) &&\n this.diagram.getObject(target.parentId).shape.type !== 'SwimLane') {\n target = this.diagram.getObject(target.parentId);\n }\n }\n if (this.currentAction === 'Drag' && obj.container && obj.container.type === 'Canvas' && obj.parentId &&\n this.diagram.getObject(obj.parentId).shape.type === 'SwimLane' && target && target !== obj &&\n target.container && target.container.type === 'Canvas' && target.isLane &&\n obj.isLane && target.parentId === obj.parentId) {\n laneInterChanged(this.diagram, obj, target, this.currentPosition);\n history.isPreventHistory = true;\n }\n else {\n var parentNode = this.diagram.nameTable[obj.parentId];\n if (!parentNode || (parentNode && parentNode.shape.type !== 'SwimLane')) {\n if (parentNode && parentNode.isLane && (obj.constraints & NodeConstraints.AllowMovingOutsideLane)) {\n var swimlane = this.diagram.getObject(parentNode.parentId);\n var laneId = swimlane.id + swimlane.shape.lanes[0].id + '0';\n var firstlane = this.diagram.getObject(laneId);\n var x = firstlane.wrapper.bounds.x;\n var y = firstlane.wrapper.bounds.y;\n var width = swimlane.wrapper.bounds.bottomRight.x - x;\n var height = swimlane.wrapper.bounds.bottomRight.y - y;\n var swimlaneBounds = new Rect(x, y, width, height);\n if (swimlaneBounds.containsPoint(this.currentPosition)) {\n obj.offsetX = helperObject.offsetX;\n obj.offsetY = helperObject.offsetY;\n obj.width = helperObject.width;\n obj.height = helperObject.height;\n obj.rotateAngle = helperObject.rotateAngle;\n }\n }\n else {\n obj.offsetX = helperObject.offsetX;\n obj.offsetY = helperObject.offsetY;\n if (obj && obj.shape && obj.shape.type !== 'UmlClassifier') {\n if (obj.shape.type !== 'Bpmn' ||\n (obj.shape.type === 'Bpmn' && obj.shape.shape !== 'TextAnnotation')) {\n obj.width = helperObject.width;\n obj.height = helperObject.height;\n }\n }\n obj.rotateAngle = helperObject.rotateAngle;\n }\n }\n var undoElement = void 0;\n if (parentNode && parentNode.container && parentNode.container.type === 'Stack') {\n this.diagram.startGroupAction();\n hasGroup = true;\n }\n if (!target && parentNode && parentNode.container && parentNode.container.type === 'Stack' && this.action === 'Drag') {\n var index = parentNode.wrapper.children.indexOf(obj.wrapper);\n undoElement = { targetIndex: undefined, target: undefined, sourceIndex: index, source: clone(obj) };\n if (index > -1) {\n var children = parentNode.children;\n children.splice(children.indexOf(obj.id), 1);\n this.diagram.nameTable[obj.id].parentId = '';\n hasStack = true;\n parentNode.wrapper.children.splice(index, 1);\n }\n }\n moveChildInStack(obj, target, this.diagram, this.action);\n parentNode = checkParentAsContainer(this.diagram, obj) ? this.diagram.nameTable[obj.parentId] :\n (this.diagram.nameTable[obj.parentId] || obj);\n if (parentNode && parentNode.container && parentNode.container.type === 'Canvas') {\n parentNode.wrapper.maxWidth = parentNode.maxWidth = parentNode.wrapper.actualSize.width;\n parentNode.wrapper.maxHeight = parentNode.maxHeight = parentNode.wrapper.actualSize.height;\n isChangeProperties = true;\n }\n if (checkParentAsContainer(this.diagram, obj, true) && parentNode && parentNode.container.type === 'Canvas') {\n checkChildNodeInContainer(this.diagram, obj);\n }\n else {\n history = this.updateContainerPropertiesExtend(parentNode, obj, connectors, helperObject, history);\n }\n if ((this.diagram.lineRoutingModule && (this.diagram.constraints & DiagramConstraints.LineRouting))\n && (!checkParentAsContainer(this.diagram, obj, true))) {\n if (obj.children) {\n this.diagram.realActions |= RealAction.EnableGroupAction;\n }\n this.diagram.nodePropertyChange(obj, {}, {\n width: obj.width, height: obj.height,\n offsetX: obj.offsetX, offsetY: obj.offsetY\n });\n if (obj.children) {\n this.diagram.realActions &= ~RealAction.EnableGroupAction;\n }\n }\n if (obj.shape.lanes) {\n this.updateLaneChildNode(obj);\n }\n if (isChangeProperties) {\n parentNode.maxWidth = parentNode.wrapper.maxWidth = undefined;\n parentNode.maxHeight = parentNode.wrapper.maxHeight = undefined;\n }\n if (hasStack) {\n this.diagram.nodePropertyChange(parentNode, {}, {\n offsetX: parentNode.offsetX, offsetY: parentNode.offsetY, width: parentNode.width, height: parentNode.height,\n rotateAngle: parentNode.rotateAngle\n });\n var entry = {\n redoObject: { sourceIndex: undefined, source: undoElement.source },\n type: 'StackChildPositionChanged', undoObject: undoElement, category: 'Internal'\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.diagram.addHistoryEntry(entry);\n }\n }\n if (obj && obj.container && (obj.container.type === 'Stack' ||\n (obj.container.type === 'Canvas' && obj.parentId === ''))) {\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = true;\n }\n this.diagram.nodePropertyChange(obj, {}, {\n offsetX: obj.offsetX, offsetY: obj.offsetY, width: obj.width, height: obj.height, rotateAngle: obj.rotateAngle\n });\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = false;\n }\n }\n }\n updateConnectorsProperties(connectors, this.diagram);\n history.hasStack = hasGroup;\n }\n }\n if (obj && (obj.isPhase || obj.isLane ||\n (obj.shape && obj.shape.type === 'SwimLane'))) {\n this.diagram.updateDiagramElementQuad();\n }\n return history;\n };\n DiagramEventHandler.prototype.updateLaneChildNode = function (obj) {\n for (var i = 0; i < (obj.shape.lanes.length); i++) {\n if (obj.shape.lanes[parseInt(i.toString(), 10)].children && obj.shape.lanes[parseInt(i.toString(), 10)].children.length > 0) {\n for (var j = 0; j < obj.shape.lanes[parseInt(i.toString(), 10)].children.length; j++) {\n var id = obj.shape.lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)].id;\n var childNode = this.diagram.nameTable[\"\" + id];\n //828489 - Exception occurs while dragging swimlane after adding shape & undo action is performed\n if (childNode) {\n childNode.offsetX = childNode.wrapper.offsetX;\n childNode.offsetY = childNode.wrapper.offsetY;\n }\n }\n }\n }\n };\n DiagramEventHandler.prototype.updateContainerPropertiesExtend = function (parentNode, obj, connectors, helperObject, history) {\n if (this.currentAction === 'ResizeEast' || this.currentAction === 'ResizeSouth' || obj.shape.type === 'SwimLane') {\n var undoObj = cloneObject(obj);\n var isUpdateRow = false;\n if (parentNode && parentNode.container && parentNode.container.type === 'Grid') {\n var shape = parentNode.shape.type === 'SwimLane' ? true : false;\n var container = (shape ? parentNode.wrapper.children[0] : parentNode.wrapper);\n var padding = shape ? parentNode.shape.padding : undefined;\n var x = parentNode.wrapper.bounds.x;\n var y = parentNode.wrapper.bounds.y;\n if (obj.columnIndex !== undefined && (parentNode.container.orientation === 'Horizontal' &&\n ((shape && obj.isPhase) || (!shape && obj.rowIndex === 1))) ||\n (parentNode.container.orientation === 'Vertical' &&\n ((!shape && obj.rowIndex > 0 && obj.columnIndex > 0) || (shape && obj.isLane)))) {\n if (parentNode.container.orientation === 'Horizontal' && obj.isPhase && obj.wrapper.width > obj.maxWidth) {\n obj.maxWidth = obj.wrapper.width;\n obj.wrapper.maxWidth = obj.wrapper.width;\n }\n updateSwimLaneObject(this.diagram, obj, parentNode, helperObject);\n container.updateColumnWidth(obj.columnIndex, helperObject.width, true, padding);\n if (obj.isPhase) {\n var id = parentNode.shape.phases[obj.columnIndex].header.id;\n var node = this.diagram.nameTable[\"\" + id];\n if (node.maxWidth < helperObject.width) {\n node.maxWidth = helperObject.width;\n node.wrapper.maxWidth = helperObject.width;\n }\n }\n if (parentNode.shape.type === 'SwimLane') {\n parentNode.width = (parentNode.width) ? container.width : parentNode.width;\n updateHeaderMaxWidth(this.diagram, parentNode);\n parentNode.wrapper.width = parentNode.width;\n connectors = getConnectors(this.diagram, container, obj.rowIndex, false);\n }\n }\n else if (obj.rowIndex !== undefined) {\n isUpdateRow = true;\n updateSwimLaneObject(this.diagram, obj, parentNode, helperObject);\n container.updateRowHeight(obj.rowIndex, helperObject.height, true, padding);\n if (parentNode.shape.type === 'SwimLane') {\n parentNode.height = (parentNode.height) ? container.height : parentNode.height;\n parentNode.wrapper.height = parentNode.height;\n connectors = getConnectors(this.diagram, container, obj.rowIndex, true);\n }\n }\n if (parentNode.shape.type === 'SwimLane') {\n history.isPreventHistory = true;\n }\n this.diagram.nodePropertyChange(parentNode, {}, {\n offsetX: parentNode.offsetX, offsetY: parentNode.offsetY,\n rotateAngle: parentNode.rotateAngle\n });\n this.diagram.drag(parentNode, x - parentNode.wrapper.bounds.x, y - parentNode.wrapper.bounds.y);\n }\n else {\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = true;\n }\n this.diagram.nodePropertyChange(obj, {}, {\n offsetX: obj.offsetX, offsetY: obj.offsetY, width: obj.width, height: obj.height, rotateAngle: obj.rotateAngle\n });\n obj.wrapper.measureChildren = false;\n }\n obj.wrapper.measure(new Size(obj.wrapper.width, obj.wrapper.height));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n if (this.currentAction === 'ResizeEast' || this.currentAction === 'ResizeSouth') {\n var redoObject = cloneObject(obj);\n var entry = {\n category: 'Internal',\n type: (isUpdateRow) ? 'RowHeightChanged' : 'ColumnWidthChanged',\n undoObject: undoObj, redoObject: redoObject\n };\n this.diagram.addHistoryEntry(entry);\n }\n }\n updateConnectorsProperties(connectors, this.diagram);\n return history;\n };\n DiagramEventHandler.prototype.addUmlNode = function () {\n var node = this.diagram.selectedItems.nodes[0];\n var objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x + 20, y: this.currentPosition.y });\n var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n if (!target) {\n objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x - 20, y: this.currentPosition.y });\n target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n if (node && node.container && node.container.type === 'Stack' && target && target.parentId\n && target.parentId === node.id) {\n var innerNode = target;\n var adornerSvg = getAdornerLayerSvg(this.diagram.element.id);\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_stack_highlighter');\n if (highlighter) {\n var index = node.wrapper.children.indexOf(target.wrapper) + 1;\n this.diagram.enableServerDataBinding(false);\n var temp = new Node(this.diagram, 'nodes', {\n style: {\n fill: node.style.fill,\n strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor\n },\n annotations: target.annotations, verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n temp.annotations[0].content = ' + Name : Type';\n var id = innerNode.id.split('_');\n temp.id = randomId() + temp.id;\n temp.parentId = node.id;\n temp.zIndex = -1;\n temp.umlIndex = index;\n this.diagram.startGroupAction();\n var redoElement = {\n sourceIndex: node.wrapper.children.indexOf(temp.wrapper), source: temp,\n target: undefined, targetIndex: undefined\n };\n this.diagram.enableServerDataBinding(true);\n this.diagram.add(temp);\n this.diagram.updateConnectorEdges(node);\n this.diagram.clearSelection();\n this.diagram.select([this.diagram.nameTable[temp.id]]);\n this.diagram.endGroupAction();\n this.diagram.startTextEdit();\n }\n }\n };\n return DiagramEventHandler;\n}());\nexport { DiagramEventHandler };\n/** @private */\nvar ObjectFinder = /** @class */ (function () {\n function ObjectFinder() {\n }\n /** @private */\n ObjectFinder.prototype.findObjectsUnderMouse = function (pt, diagram, eventArgs, source, actions) {\n // finds the collection of the object that is under the mouse;\n var actualTarget = [];\n if (source && source instanceof Selector) {\n if (source.nodes.length + source.connectors.length === 1) {\n source = (source.nodes[0] || source.connectors[0]);\n if (source.children && source.children.length === 0) {\n eventArgs.actualObject = source;\n }\n }\n }\n var container;\n var bounds;\n var child;\n var matrix;\n var endPadding = (source && (source instanceof Connector) &&\n ((source.constraints & ConnectorConstraints.ConnectToNearByNode) ||\n (source.constraints & ConnectorConstraints.ConnectToNearByPort)) && source.connectionPadding) || 0;\n var objArray = diagram.spatialSearch.findObjects(new Rect(pt.x - 50 - endPadding, pt.y - 50 - endPadding, 100 + endPadding, 100 + endPadding));\n var layerObjTable = {};\n var layerTarger;\n for (var _i = 0, objArray_1 = objArray; _i < objArray_1.length; _i++) {\n var obj = objArray_1[_i];\n var point = pt;\n bounds = obj.wrapper.outerBounds;\n var pointInBounds = (obj.rotateAngle) ? false : bounds.containsPoint(point, endPadding);\n if ((obj !== source || diagram.currentDrawingObject instanceof Connector) &&\n (obj instanceof Connector) ? obj !== diagram.currentDrawingObject : true && obj.wrapper.visible) {\n var layer = diagram.commandHandler.getObjectLayer(obj.id);\n if (layer && !layer.lock && layer.visible) {\n layerTarger = layerObjTable[layer.zIndex] = layerObjTable[layer.zIndex] || [];\n if (obj.rotateAngle) {\n container = obj.wrapper;\n bounds = cornersPointsBeforeRotation(container);\n for (var _a = 0, _b = container.children; _a < _b.length; _a++) {\n child = _b[_a];\n matrix = identityMatrix();\n rotateMatrix(matrix, -(child.rotateAngle + child.parentTransform), child.offsetX, child.offsetY);\n point = transformPointByMatrix(matrix, pt);\n if (cornersPointsBeforeRotation(child).containsPoint(point, endPadding)) {\n pointInBounds = true;\n }\n }\n }\n if (!source || (isSelected(diagram, obj) === false)) {\n if (canEnablePointerEvents(obj, diagram)) {\n if ((obj instanceof Connector) ? isPointOverConnector(obj, pt) : pointInBounds) {\n var padding = (obj instanceof Connector) ? obj.hitPadding || 0 : 0; //let element: DiagramElement;\n var element = this.findElementUnderMouse(obj, pt, endPadding || padding);\n if (element && obj.id !== 'helper') {\n insertObject(obj, 'zIndex', layerTarger);\n }\n }\n }\n }\n }\n }\n }\n for (var _c = 0, _d = diagram.layers; _c < _d.length; _c++) {\n var layer = _d[_c];\n actualTarget = actualTarget.concat(layerObjTable[layer.zIndex] || []);\n for (var _e = 0, actualTarget_1 = actualTarget; _e < actualTarget_1.length; _e++) {\n var obj = actualTarget_1[_e];\n var eventHandler = 'eventHandler';\n if (obj.shape.type === 'Bpmn' && obj.processId && (!(diagram[\"\" + eventHandler].tool instanceof MoveTool) ||\n (diagram[\"\" + eventHandler].tool instanceof MoveTool) && canAllowDrop(obj))) {\n var index = actualTarget.indexOf(diagram.nameTable[obj.processId]);\n if (index > -1) {\n actualTarget.splice(index, 1);\n }\n }\n if (obj.shape.type === 'UmlClassifier' && obj.container && obj.container.type === 'Stack') {\n var index = actualTarget.indexOf(diagram.nameTable[diagram.nameTable[obj.id].wrapper.children[0].id]);\n if (index > -1) {\n actualTarget.splice(index, 1);\n }\n }\n }\n }\n for (var i = 0; i < actualTarget.length; i++) {\n var parentObj = diagram.nameTable[actualTarget[parseInt(i.toString(), 10)].parentId];\n if (parentObj) {\n var portElement = this.findElementUnderMouse(parentObj, pt);\n for (var j = 0; j < parentObj.ports.length; j++) {\n if (portElement.id.match('_' + parentObj.ports[parseInt(j.toString(), 10)].id + '$')) {\n var port = parentObj.ports[parseInt(j.toString(), 10)];\n if (canDrag(port, diagram) || canDraw(port, diagram)) {\n return actualTarget;\n }\n }\n }\n }\n while (parentObj) {\n var index = actualTarget.indexOf(parentObj);\n if (index !== -1) {\n actualTarget.splice(index, 1);\n }\n else {\n break;\n }\n parentObj = diagram.nameTable[parentObj.parentId];\n }\n }\n this.checkSwimlane(actualTarget, diagram);\n if (eventArgs && !eventArgs.source) {\n for (var i = 0; i < actualTarget.length; i++) {\n var parentNode = diagram.nameTable[actualTarget[parseInt(i.toString(), 10)].parentId];\n if (parentNode && parentNode.shape.type === 'SwimLane') {\n for (var j = 0; j < actualTarget.length; j++) {\n var connector = actualTarget[parseInt(j.toString(), 10)];\n if (connector instanceof Connector) {\n actualTarget.splice(i, 1);\n }\n }\n }\n }\n }\n return actualTarget;\n };\n /** @private */\n ObjectFinder.prototype.checkSwimlane = function (actualTarget, diagram) {\n var isNode;\n for (var m = 0; m < actualTarget.length; m++) {\n var obj = actualTarget[parseInt(m.toString(), 10)];\n var parentNode = void 0;\n var node = void 0;\n if (obj instanceof Node) {\n parentNode = actualTarget[parseInt(m.toString(), 10)].parentId;\n node = obj;\n }\n if (parentNode === '') {\n if (node.shape.type !== 'SwimLane') {\n isNode = true;\n }\n else {\n isNode = false;\n }\n }\n var parent_1 = diagram.nameTable[\"\" + parentNode];\n if (parent_1 && parent_1.isLane && diagram.nameTable[parent_1.parentId].zIndex > obj.zIndex) {\n actualTarget[parseInt(m.toString(), 10)] = parent_1;\n }\n if (m > 0 && isNode && node && (node.isLane || node.isPhase || node.isHeader)) {\n if (actualTarget[parseInt(m.toString(), 10)].zIndex < actualTarget[m - 1].zIndex) {\n var swap = actualTarget[parseInt(m.toString(), 10)];\n actualTarget[parseInt(m.toString(), 10)] = actualTarget[m - 1];\n actualTarget[m - 1] = swap;\n }\n }\n }\n if (actualTarget.length >= 2) {\n var parent_2 = '';\n for (var i = actualTarget.length - 1; i >= 0; i--) {\n if (actualTarget[parseInt(i.toString(), 10)].parentId) {\n var parent1 = findParentInSwimlane(actualTarget[parseInt(i.toString(), 10)], diagram, parent_2);\n var parent2 = findParentInSwimlane(actualTarget[i - 1], diagram, parent_2);\n var parentNode1 = diagram.nameTable[\"\" + parent1];\n var parentNode2 = diagram.nameTable[\"\" + parent2];\n if (parentNode2 && parent1 !== parent2 && parentNode1.zIndex < parentNode2.zIndex) {\n actualTarget.splice(i, 1);\n }\n }\n }\n }\n };\n /** @private */\n ObjectFinder.prototype.isTarget = function (actualTarget, diagram, action) {\n var connector = diagram.selectedItems.connectors[0];\n var node;\n node = action === 'ConnectorSourceEnd' ? diagram.nameTable[connector.targetID] :\n node = diagram.nameTable[connector.sourceID];\n if (node && !(node.processId && !actualTarget.processId || node.processId !== actualTarget.processId)) {\n if (node.processId !== actualTarget.processId) {\n actualTarget = null;\n }\n if (actualTarget && actualTarget.parentId &&\n diagram.nameTable[actualTarget.parentId].shape.type === 'UmlClassifier') {\n actualTarget = diagram.nameTable[actualTarget.parentId];\n }\n }\n if (action === 'ConnectorSourceEnd' && connector.targetID) {\n var targetNode = diagram.nameTable[connector.targetID];\n if (targetNode && targetNode.shape && (targetNode.shape.shape === 'TextAnnotation')) {\n var id = connector.id.split('_');\n if (((targetNode.shape.type === 'Bpmn') && actualTarget.shape.type !== 'Bpmn') || (id[0] === actualTarget.id) ||\n actualTarget.shape.shape === 'TextAnnotation') {\n actualTarget = null;\n }\n if (actualTarget.parentId &&\n diagram.nameTable[actualTarget.parentId].shape.type === 'UmlClassifier') {\n actualTarget = diagram.nameTable[actualTarget.parentId];\n }\n }\n }\n return actualTarget;\n };\n /* tslint:disable */\n /** @private */\n ObjectFinder.prototype.findObjectUnderMouse = function (diagram, objects, action, inAction, eventArg, position, source) {\n //we will get the wrapper object here\n //we have to choose the object to be interacted with from the given wrapper\n //Find the object that is under mouse\n var eventHandler = 'eventHandler';\n var endPoint = 'endPoint';\n var inPort;\n var outPort;\n var actualTarget = null;\n if (objects.length !== 0) {\n if (source && source instanceof Selector) {\n if (source.nodes.length + source.connectors.length === 1) {\n source = (source.nodes[0] || source.connectors[0]);\n }\n }\n if ((action === 'ConnectorSourceEnd' && source || action === 'PortDraw') ||\n ((canDrawOnce(diagram) || canContinuousDraw(diagram)) && getObjectType(diagram.drawingObject) === Connector)) {\n var connector = diagram.selectedItems.connectors[0];\n for (var i = objects.length - 1; i >= 0; i--) {\n outPort = getInOutConnectPorts(objects[parseInt(i.toString(), 10)], false);\n inPort = getInOutConnectPorts(objects[parseInt(i.toString(), 10)], true);\n var tool = diagram[\"\" + eventHandler].tool;\n var portElement = this.findTargetElement(objects[parseInt(i.toString(), 10)].wrapper, position, undefined);\n if (action === 'Draw' && portElement && (objects[parseInt(i.toString(), 10)] instanceof Node) && !checkPort(objects[parseInt(i.toString(), 10)], portElement)) {\n if (((tool && tool[\"\" + endPoint] === 'ConnectorSourceEnd') && !canOutConnect(objects[parseInt(i.toString(), 10)])) ||\n ((tool && tool[\"\" + endPoint] === 'ConnectorTargetEnd') && !canInConnect(objects[parseInt(i.toString(), 10)]))) {\n return actualTarget;\n }\n }\n // eslint-disable-next-line max-len\n if ((objects[parseInt(i.toString(), 10)] instanceof Node) && ((canOutConnect(objects[parseInt(i.toString(), 10)]) || (canPortOutConnect(outPort)) || canInConnect(objects[parseInt(i.toString(), 10)]) || (canPortInConnect(inPort))) ||\n (action === 'PortDraw' && (tool instanceof ConnectTool) && tool[\"\" + endPoint] === 'ConnectorTargetEnd' &&\n (canInConnect(objects[parseInt(i.toString(), 10)]) || (canPortInConnect(inPort)))))) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n if (connector) {\n actualTarget = this.isTarget(actualTarget, diagram, action);\n }\n eventArg.actualObject = actualTarget;\n return actualTarget;\n }\n }\n }\n else if (action === 'ConnectorTargetEnd' && source) {\n for (var i = objects.length - 1; i >= 0; i--) {\n inPort = getInOutConnectPorts(objects[parseInt(i.toString(), 10)], true);\n if (objects[parseInt(i.toString(), 10)] instanceof Node && (canInConnect(objects[parseInt(i.toString(), 10)]) || (canPortInConnect(inPort)))) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n actualTarget = this.isTarget(actualTarget, diagram, action);\n eventArg.actualObject = actualTarget;\n return actualTarget;\n }\n }\n }\n else if (source && (action === 'Drag' || (diagram[\"\" + eventHandler].tool instanceof MoveTool))) {\n var index = 0;\n for (var i = 0; i < objects.length; i++) {\n var temp = objects[parseInt(i.toString(), 10)];\n if (source !== temp && (temp instanceof Connector ||\n !position || temp.wrapper.bounds.containsPoint(position))) {\n if (canAllowDrop(temp)) {\n if (!actualTarget) {\n actualTarget = temp;\n index = actualTarget.zIndex;\n }\n else {\n actualTarget = index >= temp.zIndex ? actualTarget : temp;\n index = Math.max(index, temp.zIndex);\n }\n }\n }\n }\n if (actualTarget && actualTarget.shape.type === 'Bpmn') {\n if (diagram.selectedItems.nodes.length > 0 && diagram.selectedItems.nodes[0].shape.type === 'Bpmn') {\n // eslint-disable-next-line no-self-assign\n actualTarget = actualTarget;\n }\n else {\n actualTarget = null;\n }\n }\n if (actualTarget) {\n eventArg.actualObject = actualTarget;\n }\n return actualTarget;\n }\n else if ((action === 'Select' || action === 'Pan') && diagram[\"\" + eventHandler].tool) {\n for (var i = objects.length - 1; i >= 0; i--) {\n if (objects[parseInt(i.toString(), 10)] instanceof Connector) {\n var objj1 = objects[i - 1];\n if (objects[i - 1] instanceof Node && objj1.ports) {\n var portElement = this.findTargetElement(objj1.wrapper, position, undefined);\n if ((portElement && (portElement.id.match('_icon_content_shape$') || portElement.id.match('_icon_content_rect$')))) {\n return objj1;\n }\n for (var j = 0; j < objj1.ports.length; j++) {\n if (portElement && portElement.id.match('_' + objj1.ports[parseInt(j.toString(), 10)].id + '$')) {\n if (canDraw(objj1.ports[parseInt(j.toString(), 10)], diagram)) {\n return objj1;\n }\n }\n }\n }\n }\n }\n actualTarget = objects[objects.length - 1];\n eventArg.actualObject = actualTarget;\n if (!diagram[\"\" + eventHandler].itemClick(actualTarget, true)) {\n if (actualTarget.parentId) {\n var obj = actualTarget;\n var selected = isSelected(diagram, obj);\n while (obj) {\n if (isSelected(diagram, obj) && !selected) {\n break;\n }\n actualTarget = obj;\n obj = diagram.nameTable[obj.parentId];\n }\n }\n }\n }\n else if (action === 'Pan' || action === 'LayoutAnimation') {\n for (var i = objects.length - 1; i >= 0; i--) {\n if (objects[parseInt(i.toString(), 10)] instanceof Node || objects[parseInt(i.toString(), 10)] instanceof Connector) {\n var portElement = this.findTargetElement(objects[parseInt(i.toString(), 10)].wrapper, position, undefined);\n if ((action === 'Pan') || ((portElement && (portElement.id.match('_icon_content_shape$') || portElement.id.match('_icon_content_rect$'))))) {\n return objects[parseInt(i.toString(), 10)];\n }\n }\n }\n }\n else {\n actualTarget = objects[objects.length - 1];\n if (eventArg && actualTarget) {\n eventArg.actualObject = actualTarget;\n }\n }\n }\n return actualTarget;\n };\n /* tslint:enable */\n /** @private */\n ObjectFinder.prototype.findElementUnderSelectedItem = function (obj, position, padding) {\n //rewrite this for multiple selection\n if (obj instanceof Selector) {\n if (obj.nodes.length === 1 && (!obj.connectors || !obj.connectors.length)) {\n return this.findElementUnderMouse(obj.nodes[0], position);\n }\n else if ((!obj.nodes || obj.nodes.length) && obj.connectors.length === 1) {\n return this.findElementUnderMouse(obj.connectors[0], position);\n }\n }\n else {\n return this.findElementUnderMouse(obj, position, padding);\n }\n return null;\n };\n ObjectFinder.prototype.findElementUnderMouse = function (obj, position, padding) {\n return this.findTargetElement(obj.wrapper, position, padding);\n };\n /** @private */\n ObjectFinder.prototype.findTargetElement = function (container, position, padding) {\n for (var i = container.children.length - 1; i >= 0; i--) {\n var element = container.children[parseInt(i.toString(), 10)];\n if (element && element.outerBounds.containsPoint(position, padding || 0)) {\n if (element instanceof Container) {\n var target = this.findTargetElement(element, position);\n if (target) {\n return target;\n }\n }\n //EJ2-69047 - Node selection is improper while adding annotation for multiple nodes\n //Checked textOverflow property to avoid the selection of text element with clip and ellipsis;\n if (element.bounds.containsPoint(position, padding || 0) && element.style.textOverflow !== 'Clip' && element.style.textOverflow !== 'Ellipsis') {\n return element;\n }\n }\n }\n if (container.bounds.containsPoint(position, padding) && container.style.fill !== 'none') {\n return container;\n }\n return null;\n };\n return ObjectFinder;\n}());\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar Layer = /** @class */ (function (_super) {\n __extends(Layer, _super);\n // tslint:disable-next-line:no-any\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Layer(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n /** @private */\n _this.objectZIndex = -1;\n /** @private */\n _this.zIndexTable = {};\n _this.objects = [];\n return _this;\n }\n __decorate([\n Property('')\n ], Layer.prototype, \"id\", void 0);\n __decorate([\n Property(true)\n ], Layer.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], Layer.prototype, \"lock\", void 0);\n __decorate([\n Property()\n ], Layer.prototype, \"objects\", void 0);\n __decorate([\n Property()\n ], Layer.prototype, \"addInfo\", void 0);\n __decorate([\n Property(-1)\n ], Layer.prototype, \"zIndex\", void 0);\n return Layer;\n}(ChildProperty));\nexport { Layer };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Connector, getBezierPoints, isEmptyVector } from '../objects/connector';\nimport { Node, BpmnSubEvent, BpmnAnnotation, Native } from '../objects/node';\nimport { PathElement } from '../core/elements/path-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { OrthogonalSegment } from '../objects/connector';\nimport { Rect } from '../primitives/rect';\nimport { Diagram } from '../../diagram/diagram';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix, scaleMatrix } from './../primitives/matrix';\nimport { cloneObject as clone, cloneObject, getBounds, getFunction, getIndex } from './../utility/base-util';\nimport { completeRegion, sort, findObjectIndex, intersect3, getAnnotationPosition, findParentInSwimlane } from './../utility/diagram-util';\nimport { updatePathElement, cloneBlazorObject, getUserHandlePosition, cloneSelectedObjects } from './../utility/diagram-util';\nimport { updateDefaultValues } from './../utility/diagram-util';\nimport { randomId, cornersPointsBeforeRotation } from './../utility/base-util';\nimport { Selector } from '../objects/node';\nimport { hasSelection, isSelected, hasSingleConnection, contains } from './actions';\nimport { DiagramEvent, ConnectorConstraints, BezierSmoothness } from '../enum/enum';\nimport { BlazorAction } from '../enum/enum';\nimport { canSelect, canMove, canRotate, canDragSourceEnd, canDragTargetEnd, canSingleSelect, canDrag } from './../utility/constraints-util';\nimport { canMultiSelect, canContinuousDraw, canInConnect, canOutConnect } from './../utility/constraints-util';\nimport { canPanX, canPanY, canPageEditable } from './../utility/constraints-util';\nimport { SnapConstraints, DiagramTools, DiagramAction, RealAction } from '../enum/enum';\nimport { getDiagramElement, getAdornerLayerSvg, getHTMLLayer, getAdornerLayer, getSelectorElement } from '../utility/dom-util';\nimport { Point } from '../primitives/point';\nimport { Size } from '../primitives/size';\nimport { getObjectType, getPoint, intersect2, getOffsetOfConnector, canShowCorner } from './../utility/diagram-util';\nimport { selectionHasConnector } from './../utility/diagram-util';\nimport { Layer } from '../diagram/layer';\nimport { SelectorConstraints, DiagramConstraints } from '../enum/enum';\nimport { remove, isBlazor, isNullOrUndefined, initializeCSPTemplate } from '@syncfusion/ej2-base';\nimport { getOppositeDirection, getPortDirection, findAngle } from './../utility/connector';\nimport { swapBounds, findPoint, orthoConnection2Segment, getIntersection } from './../utility/connector';\nimport { ShapeAnnotation, PathAnnotation } from '../objects/annotation';\nimport { renderContainerHelper } from './container-interaction';\nimport { checkChildNodeInContainer, checkParentAsContainer, addChildToContainer } from './container-interaction';\nimport { renderStackHighlighter } from './container-interaction';\nimport { getConnectors, updateConnectorsProperties, canLaneInterchange, findLane } from './../utility/swim-lane-util';\nimport { swimLaneSelection, pasteSwimLane, gridSelection } from '../utility/swim-lane-util';\nimport { DeepDiffMapper } from '../utility/diff-map';\n/**\n * Defines the behavior of commands\n */\nvar CommandHandler = /** @class */ (function () {\n function CommandHandler(diagram) {\n /** @private */\n this.clipboardData = {};\n // private newNodeObject: Object[] = [];\n // private newConnectorObject: Object[] = [];\n /** @private */\n this.diagramObject = {};\n /** @private */\n this.newSelectedObjects = {};\n /** @private */\n this.oldSelectedObjects = {};\n /** @private */\n this.connectorsTable = [];\n /** @private */\n this.PreventConnectorSplit = false;\n /** @private */\n this.processTable = {};\n /** @private */\n this.deepDiffer = new DeepDiffMapper();\n /** @private */\n this.isContainer = false;\n /** @private */\n this.canUpdateTemplate = false;\n this.childTable = {};\n this.parentTable = {};\n this.blazor = 'Blazor';\n this.blazorInterop = 'sfBlazor';\n this.cloneGroupChildCollection = [];\n this.diagram = diagram;\n }\n Object.defineProperty(CommandHandler.prototype, \"snappingModule\", {\n /** @private */\n get: function () {\n return this.diagram.snappingModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CommandHandler.prototype, \"layoutAnimateModule\", {\n /** @private */\n get: function () {\n return this.diagram.layoutAnimateModule;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * startTransaction method\\\n *\n * @returns { void } startTransaction method .\\\n * @param {boolean} protectChange - provide the options value.\n * @private\n */\n CommandHandler.prototype.startTransaction = function (protectChange) {\n this.state = { element: this.diagram.selectedItems, backup: null };\n if (protectChange) {\n this.diagram.protectPropertyChange(true);\n }\n getAdornerLayer(this.diagram.element.id).style.pointerEvents = 'none';\n };\n /**\n * endTransaction method\\\n *\n * @returns { void } endTransaction method .\\\n * @param {boolean} protectChange - provide the options value.\n * @private\n */\n CommandHandler.prototype.endTransaction = function (protectChange) {\n this.state = null;\n if (protectChange) {\n this.diagram.protectPropertyChange(false);\n }\n getAdornerLayer(this.diagram.element.id).style.pointerEvents = 'all';\n };\n /**\n * setFocus method\\\n *\n * @returns { void } setFocus method .\\\n * @private\n */\n CommandHandler.prototype.setFocus = function () {\n document.getElementById(this.diagram.element.id).focus();\n };\n /**\n * showTooltip method\\\n *\n * @returns { void } showTooltip method .\\\n * @param {IElement} node - provide the options value.\n * @param {PointModel} position - provide the position value.\n * @param {string | HTMLElement} content - provide the content value.\n * @param {string} toolName - provide the toolName value.\n * @param {boolean} isTooltipVisible - provide the isTooltipVisible value.\n * @private\n */\n CommandHandler.prototype.showTooltip = function (node, position, content, toolName, isTooltipVisible) {\n var _this = this;\n var targetId;\n var targetEle;\n var isNative = false;\n if (node instanceof Selector) {\n if ((node.nodes.length === 1) && node.connectors.length === 0) {\n targetId = node.nodes[0].id;\n if (node.nodes[0].shape && node.nodes[0].shape instanceof Native) {\n isNative = true;\n }\n }\n else if ((node.nodes.length === 0) && node.connectors.length === 1) {\n targetId = node.connectors[0].id;\n }\n else {\n targetEle = document.getElementById(this.diagram.element.id + '_SelectorElement');\n }\n }\n else if (node instanceof Node) {\n targetId = node.id;\n if (node.shape && (node.shape instanceof Native)) {\n isNative = true;\n }\n }\n else {\n targetId = node.id;\n }\n if (isNullOrUndefined(targetEle) && !isNullOrUndefined(targetId)) {\n var idName = isNative ? '_content_native_element' : '_groupElement';\n targetEle = document.getElementById(targetId + idName);\n }\n if (isTooltipVisible) {\n this.diagram.tooltipObject.position = 'BottomCenter';\n this.diagram.tooltipObject.animation = { open: { delay: 0, duration: 0 } };\n this.diagram.tooltipObject.openDelay = 0;\n this.diagram.tooltipObject.closeDelay = 0;\n }\n if (this.diagram.selectedItems.setTooltipTemplate) {\n var template = void 0;\n var setTooltipTemplate = getFunction(this.diagram.selectedItems.setTooltipTemplate);\n if (setTooltipTemplate) {\n template = setTooltipTemplate(node, this.diagram);\n }\n if (template instanceof HTMLElement) {\n content = template.cloneNode(true);\n }\n else {\n content = template ? template : content;\n }\n }\n if (isBlazor() && isTooltipVisible) {\n this.diagram.tooltipObject.close();\n }\n if (node.tooltip) {\n this.diagram.tooltipObject.openOn = node.tooltip.openOn;\n }\n // Task 834121: Content-Security-Policy support for diagram\n if (typeof content === 'string') {\n this.diagram.tooltipObject.content = initializeCSPTemplate(function () { return content; });\n }\n else {\n this.diagram.tooltipObject.content = content;\n }\n this.diagram.tooltipObject.offsetX = 0;\n this.diagram.tooltipObject.offsetY = 0;\n if (isBlazor()) {\n this.diagram.tooltipObject.updateTooltip(targetEle);\n }\n else {\n this.diagram.tooltipObject.refresh(targetEle);\n }\n if (isTooltipVisible) {\n setTimeout(function () {\n _this.diagram.tooltipObject.open(targetEle);\n }, 1);\n }\n };\n /**\n * Split the connector, when the node is dropped onto it and establish connection with that dropped node.\n *\n * @returns { void } connectorSplit method .\\\n * @param {NodeModel} droppedObject - Provide the dropped node id\n * @param {ConnectorModel} targetConnector - Provide the connector id\n * @private\n */\n CommandHandler.prototype.connectorSplit = function (droppedObject, targetConnector) {\n var droppedNodeId = droppedObject.id;\n var existingConnector = cloneObject(targetConnector);\n var connectorIndex = this.diagram.connectors.indexOf(targetConnector);\n var nodeIndex = this.diagram.nodes.indexOf(droppedObject);\n var droppedNode = cloneObject(droppedObject);\n var connectorOldChanges = {};\n var nodeOldChanges = {};\n var nodeOldProperty = {\n offsetX: droppedNode.offsetX,\n offsetY: droppedNode.offsetY\n };\n var connectorOldProperty = {\n sourceID: existingConnector.sourceID,\n sourcePoint: existingConnector.sourcePoint,\n sourcePortID: existingConnector.sourcePortID,\n targetID: existingConnector.targetID,\n targetPoint: existingConnector.targetPoint,\n targetPortID: existingConnector.targetPortID\n };\n connectorOldChanges[parseInt(connectorIndex.toString(), 10)] = connectorOldProperty;\n nodeOldChanges[parseInt(nodeIndex.toString(), 10)] = nodeOldProperty;\n var connectorNewChanges = {};\n var nodeNewChanges = {};\n var nodeNewProperty = {};\n var connectorNewProperty = {};\n //Split the connector based on the dropped node\n if (existingConnector.sourceID !== '' && existingConnector.targetID !== '') {\n connectorNewProperty.targetID = this.ConnectorTargetChange(targetConnector, droppedNodeId);\n }\n else if (existingConnector.sourceID !== '' && existingConnector.targetID === '') {\n this.nodeOffsetChange(nodeNewProperty, droppedNode, targetConnector.targetPoint);\n connectorNewProperty.targetID = this.ConnectorTargetChange(targetConnector, droppedNodeId);\n }\n else if ((existingConnector.sourceID === '' && existingConnector.targetID === '') || (existingConnector.sourceID === '' && existingConnector.targetID !== '')) {\n this.nodeOffsetChange(nodeNewProperty, droppedNode, targetConnector.sourcePoint);\n connectorNewProperty.sourceID = this.ConnectorSourceChange(targetConnector, droppedNodeId);\n }\n connectorNewChanges[parseInt(connectorIndex.toString(), 10)] = connectorNewProperty;\n nodeNewChanges[parseInt(nodeIndex.toString(), 10)] = nodeNewProperty;\n this.diagram.nodePropertyChange(droppedObject, nodeOldProperty, nodeNewProperty);\n this.diagram.updateSelector();\n this.diagram.connectorPropertyChange(targetConnector, connectorOldProperty, connectorNewProperty);\n //Check Whether the connector connects with the node\n if (existingConnector.sourceID !== '' && existingConnector.targetID !== '') {\n var newConnector = {\n id: 'connector ' + droppedNodeId,\n constraints: ConnectorConstraints.Default | ConnectorConstraints.AllowDrop,\n sourceID: droppedNodeId\n };\n //Check whether the connector connects with the ports\n if (existingConnector.sourcePortID !== '' && existingConnector.targetPortID !== '') {\n newConnector.targetID = existingConnector.targetID;\n newConnector.targetPortID = existingConnector.targetPortID;\n }\n else {\n newConnector.targetID = existingConnector.targetID;\n }\n this.diagram.add(newConnector);\n }\n var entry = {\n type: 'PropertyChanged', redoObject: { nodes: nodeNewChanges }, undoObject: { nodes: nodeOldChanges },\n category: 'Internal'\n };\n this.diagram.addHistoryEntry(entry);\n var entry1 = {\n type: 'PropertyChanged', redoObject: { connectors: connectorNewChanges }, undoObject: { connectors: connectorOldChanges },\n category: 'Internal'\n };\n this.diagram.addHistoryEntry(entry1);\n };\n CommandHandler.prototype.nodeOffsetChange = function (propertyChangeArg, node, nodeNewOffset) {\n propertyChangeArg.offsetX = node.offsetX = nodeNewOffset.x;\n propertyChangeArg.offsetY = node.offsetY = nodeNewOffset.y;\n };\n CommandHandler.prototype.ConnectorTargetChange = function (connector, newTarget) {\n connector.targetID = newTarget;\n return newTarget;\n };\n CommandHandler.prototype.ConnectorSourceChange = function (connector, newTarget) {\n connector.sourceID = newTarget;\n return newTarget;\n };\n /**\n * closeTooltip method\\\n *\n * @returns { void } closeTooltip method .\\\n * @private\n */\n CommandHandler.prototype.closeTooltip = function () {\n this.diagram.tooltipObject.close();\n };\n /**\n * canEnableDefaultTooltip method\\\n *\n * @returns { boolean } canEnableDefaultTooltip method .\\\n * @private\n */\n CommandHandler.prototype.canEnableDefaultTooltip = function () {\n if (this.diagram.selectedItems.constraints & SelectorConstraints.ToolTip) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * updateSelector method\\\n *\n * @returns { void } updateSelector method .\\\n * @private\n */\n CommandHandler.prototype.updateSelector = function () {\n this.diagram.updateSelector();\n };\n /**\n * updateConnectorValue method\\\n *\n * @returns { void } updateConnectorValue method .\\\n * @param {IBlazorConnectionChangeEventArgs} args - provide the options value.\n * @private\n */\n CommandHandler.prototype.updateConnectorValue = function (args) {\n if (args.cancel) {\n this.enableCloneObject(true);\n this.ismouseEvents(true);\n this.insertBlazorObject(args.connector);\n var newChanges = {};\n var oldChanges = {};\n var connector = this.diagram.nameTable[args.connector.id];\n var nodeEndId = args.connectorEnd === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEndId = args.connectorEnd === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n var connectionEnd = args.connectorEnd === 'ConnectorTargetEnd';\n var newValue = connectionEnd ? args.newValue.connectorTargetValue : args.newValue.connectorSourceValue;\n var oldValue = connectionEnd ? args.oldValue.connectorTargetValue : args.oldValue.connectorSourceValue;\n oldChanges[\"\" + nodeEndId] = newValue.nodeId;\n oldChanges[\"\" + portEndId] = newValue.portId;\n newChanges[\"\" + nodeEndId] = oldValue.nodeId;\n newChanges[\"\" + portEndId] = oldValue.portId;\n if (args.cancel && args.connectorEnd !== 'ConnectorTargetEnd') {\n connector.sourceID = oldValue.nodeId;\n if (args.connector.sourcePortID) {\n connector.sourcePortID = oldValue.portId;\n }\n this.diagram.connectorPropertyChange(connector, oldChanges, newChanges);\n }\n if (args.cancel && args.connectorEnd === 'ConnectorTargetEnd') {\n if (args.connector.targetPortID) {\n connector.targetPortID = oldValue.portId;\n }\n connector.targetID = oldValue.nodeId;\n this.diagram.connectorPropertyChange(connector, oldChanges, newChanges);\n }\n }\n };\n /**\n * triggerEvent method\\\n *\n * @returns { Promise } triggerEvent method .\\\n * @param {DiagramEvent} event - provide the options value.\n * @param {Object} args - provide the args value.\n * @private\n */\n CommandHandler.prototype.triggerEvent = function (event, args) {\n return __awaiter(this, void 0, void 0, function () {\n var temparg;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (event === DiagramEvent.drop || event === DiagramEvent.positionChange ||\n event === DiagramEvent.connectionChange) {\n if (this.diagram.currentSymbol) {\n return [2 /*return*/];\n }\n if (event === DiagramEvent.drop) {\n args.source = cloneBlazorObject(this.diagram);\n }\n if (this.diagram.currentDrawingObject && event !== DiagramEvent.positionChange) {\n return [2 /*return*/];\n }\n }\n return [4 /*yield*/, this.diagram.triggerEvent(event, args)];\n case 1:\n temparg = _a.sent();\n return [2 /*return*/, temparg];\n }\n });\n });\n };\n /**\n * dragOverElement method\\\n *\n * @returns { void } dragOverElement method .\\\n * @param {MouseEventArgs} args - provide the options value.\n * @param {PointModel} currentPosition - provide the args value.\n * @private\n */\n CommandHandler.prototype.dragOverElement = function (args, currentPosition) {\n if (this.diagram.currentSymbol) {\n var dragOverArg = {\n element: cloneBlazorObject(args.source), target: cloneBlazorObject(args.target),\n mousePosition: cloneBlazorObject(currentPosition), diagram: cloneBlazorObject(this.diagram)\n };\n this.triggerEvent(DiagramEvent.dragOver, dragOverArg);\n }\n };\n /**\n * disConnect method\\\n *\n * @returns { IConnectionChangeEventArgs | IBlazorConnectionChangeEventArgs } disConnect method .\\\n * @param {IElement} obj - provide the obj value.\n * @param {string} endPoint - provide the endPoint value.\n * @param {boolean} canCancel - provide the canCancel value.\n * @private\n */\n CommandHandler.prototype.disConnect = function (obj, endPoint, canCancel) {\n var checkBlazor = isBlazor();\n var oldChanges = {};\n var newChanges = {};\n var returnargs;\n var selectorModel;\n var connector;\n if (obj instanceof Selector) {\n selectorModel = obj;\n connector = selectorModel.connectors[0];\n }\n else if (obj instanceof Connector && this.diagram.currentDrawingObject) {\n connector = this.diagram.currentDrawingObject;\n }\n if (obj && connector && (hasSingleConnection(this.diagram) || this.diagram.currentDrawingObject)) {\n if (isBlazor()) {\n this.diagram.insertValue(cloneObject(connector), false);\n }\n if (endPoint && (endPoint === 'ConnectorSourceEnd' || endPoint === 'ConnectorTargetEnd')) {\n var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n if (connector[\"\" + nodeEndId]) { //connector.sourceID || connector.targetID\n oldChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n connector[\"\" + nodeEndId] = '';\n newChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n if (connector.sourcePortID || connector.targetPortID) {\n oldChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n connector[\"\" + portEndId] = '';\n newChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n }\n returnargs = this.connectionEventChange(connector, oldChanges, newChanges, endPoint, canCancel);\n }\n }\n else if ((endPoint !== 'OrthoThumb' && endPoint !== 'SegmentEnd') && (connector.sourceID || connector.targetID)) {\n oldChanges = {\n sourceID: connector.sourceID, sourcePortID: connector.sourcePortID,\n targetID: connector.targetID, targetPortID: connector.targetPortID\n };\n connector.sourceID = '';\n connector.sourcePortID = '';\n connector.targetID = '';\n connector.targetPortID = '';\n newChanges = {\n sourceID: connector.sourceID, sourcePortID: connector.sourcePortID,\n targetID: connector.targetID, targetPortID: connector.targetPortID\n };\n var arg = {\n connector: cloneBlazorObject(connector), oldValue: oldChanges,\n newValue: newChanges, cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n if (isBlazor()) {\n arg = {\n connector: cloneBlazorObject(connector),\n oldValue: { connector: cloneBlazorObject(oldChanges) },\n newValue: { connector: cloneBlazorObject(newChanges) },\n cancel: false, state: 'Changed', connectorEnd: endPoint\n };\n returnargs = arg;\n }\n if (!checkBlazor) {\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n }\n if (arg.cancel) {\n connector.sourceID = oldChanges.sourceID;\n connector.sourcePortID = oldChanges.sourcePortID;\n connector.targetID = oldChanges.targetID;\n connector.targetPortID = oldChanges.targetPortID;\n }\n else {\n this.diagram.connectorPropertyChange(connector, oldChanges, newChanges);\n this.diagram.updateDiagramObject(connector);\n arg = {\n connector: connector, oldValue: oldChanges,\n newValue: newChanges, cancel: false, state: 'Changed', connectorEnd: endPoint\n };\n if (isBlazor()) {\n arg = {\n connector: cloneBlazorObject(connector), oldValue: { connector: oldChanges },\n newValue: { connector: newChanges }, cancel: false, state: 'Changed', connectorEnd: endPoint\n };\n returnargs = arg;\n }\n if (!checkBlazor) {\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n }\n }\n }\n }\n return returnargs;\n };\n CommandHandler.prototype.connectionEventChange = function (connector, oldChanges, newChanges, endPoint, canCancel) {\n var checkBlazor = isBlazor();\n var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n var connectedNode;\n if (this.enableCloneObject) {\n connectedNode = this.diagram.nameTable[newChanges[\"\" + nodeEndId]];\n var nodeObject = cloneObject(connectedNode);\n this.diagram.insertValue(nodeObject, true);\n }\n var returnargs;\n var arg = {\n cancel: false, state: 'Changing', connectorEnd: endPoint,\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldChanges[\"\" + nodeEndId], portId: oldChanges[\"\" + portEndId] },\n newValue: { nodeId: newChanges[\"\" + nodeEndId], portId: newChanges[\"\" + portEndId] }\n };\n if (isBlazor()) {\n arg = {\n connector: cloneBlazorObject(connector),\n cancel: false, state: 'Changing', connectorEnd: endPoint,\n oldValue: undefined, newValue: undefined\n };\n if (endPoint === 'ConnectorSourceEnd') {\n arg.oldValue = {\n connectorSourceValue: {\n portId: oldChanges[\"\" + portEndId], nodeId: oldChanges[\"\" + nodeEndId]\n }\n };\n arg.newValue = {\n connectorSourceValue: { nodeId: newChanges[\"\" + nodeEndId], portId: newChanges[\"\" + portEndId] }\n };\n }\n else {\n arg.oldValue = {\n connectorTargetValue: { nodeId: oldChanges[\"\" + nodeEndId], portId: oldChanges[\"\" + portEndId] }\n };\n arg.newValue = {\n connectorTargetValue: { nodeId: newChanges[\"\" + nodeEndId], portId: newChanges[\"\" + portEndId] }\n };\n }\n returnargs = arg;\n }\n if (!checkBlazor) {\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n }\n if (arg.cancel || (isBlazor() && canCancel)) {\n connector[\"\" + nodeEndId] = oldChanges[\"\" + nodeEndId];\n connector[\"\" + portEndId] = oldChanges[\"\" + portEndId];\n newChanges = oldChanges;\n }\n else {\n this.diagram.connectorPropertyChange(connector, oldChanges, newChanges);\n this.diagram.updateDiagramObject(connector);\n arg = {\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldChanges[\"\" + nodeEndId], portId: oldChanges[\"\" + portEndId] },\n newValue: {\n nodeId: newChanges[\"\" + nodeEndId],\n portId: newChanges[\"\" + portEndId]\n },\n cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n if (isBlazor()) {\n arg = {\n connector: cloneBlazorObject(connector),\n oldValue: undefined,\n newValue: undefined,\n cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n if (endPoint === 'ConnectorSourceEnd') {\n arg.newValue = {\n connectorSourceValue: { portId: newChanges[\"\" + portEndId], nodeId: newChanges[\"\" + nodeEndId] }\n };\n arg.oldValue = {\n connectorSourceValue: { portId: oldChanges[\"\" + portEndId], nodeId: oldChanges[\"\" + nodeEndId] }\n };\n }\n else {\n arg.oldValue = {\n connectorTargetValue: { nodeId: oldChanges[\"\" + nodeEndId], portId: oldChanges[\"\" + portEndId] }\n };\n arg.newValue = {\n connectorTargetValue: { portId: newChanges[\"\" + portEndId], nodeId: newChanges[\"\" + nodeEndId] }\n };\n }\n returnargs = arg;\n }\n }\n if (this.enableCloneObject) {\n if (connectedNode === undefined) {\n connectedNode = this.diagram.nameTable[oldChanges[\"\" + nodeEndId]];\n var nodeObject = cloneObject(connectedNode);\n this.diagram.insertValue(nodeObject, true);\n }\n }\n return returnargs;\n };\n /**\n * insertBlazorObject method\\\n *\n * @returns { void } insertBlazorObject method .\\\n * @param {IElement} object - provide the object value.\n * @param {boolean} isNode - provide the isNode value.\n * @private\n */\n CommandHandler.prototype.insertBlazorObject = function (object, isNode) {\n var node;\n var connector;\n if (object instanceof Selector) {\n this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n for (var i = 0; i < object.nodes.length; i++) {\n node = this.diagram.getObject(object.nodes[parseInt(i.toString(), 10)].id);\n this.diagram.insertValue(cloneObject(node), true);\n }\n for (var i = 0; i < object.connectors.length; i++) {\n connector = this.diagram.getObject(object.connectors[parseInt(i.toString(), 10)].id);\n this.diagram.insertValue(cloneObject(connector), false);\n }\n }\n else {\n object = this.diagram.getObject(object.id);\n this.diagram.insertValue(cloneObject(object), (object instanceof Node) ? true : false);\n }\n };\n /**\n * updatePropertiesToBlazor method\\\n *\n * @returns { void } updatePropertiesToBlazor method .\\\n * @param {MouseEventArgs} args - provide the args value.\n * @param {PointModel} labelDrag - provide the labelDrag value.\n * @private\n */\n CommandHandler.prototype.updatePropertiesToBlazor = function (args, labelDrag) {\n this.enableCloneObject(false);\n this.ismouseEvents(false);\n this.getBlazorOldValues(args, labelDrag);\n this.updateBlazorSelector();\n };\n /**\n * insertSelectedObjects method\\\n *\n * @returns { void } insertSelectedObjects method .\\\n * @private\n */\n CommandHandler.prototype.insertSelectedObjects = function () {\n this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n };\n /**\n * findTarget method\\\n *\n * @returns { NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel } findTarget method .\\\n * @param {DiagramElement} element - provide the element value.\n * @param {IElement} argsTarget - provide the argsTarget value.\n * @param {boolean} source - provide the source value.\n * @param {boolean} connection - provide the connection value.\n * @private\n */\n CommandHandler.prototype.findTarget = function (element, argsTarget, source, connection) {\n var target;\n if (argsTarget instanceof Node) {\n if (element && element.id === argsTarget.id + '_content') {\n return argsTarget;\n }\n if (source && argsTarget.shape.type === 'Bpmn' && ((!isBlazor() && argsTarget.shape.shape === 'Activity') ||\n (isBlazor() && argsTarget.shape.bpmnShape === 'Activity'))) {\n if (argsTarget.shape.activity.subProcess.type === 'Transaction') {\n var transaction = argsTarget.shape.activity.subProcess.transaction;\n if (transaction.success.visible && element.id.indexOf(argsTarget.id + '_success') === 0) {\n return transaction.success;\n }\n if (transaction.cancel.visible && element.id.indexOf(argsTarget.id + '_cancel') === 0) {\n return transaction.cancel;\n }\n if (transaction.failure.visible && element.id.indexOf(argsTarget.id + '_failure') === 0) {\n return transaction.failure;\n }\n }\n }\n if (element instanceof PathElement) {\n for (var i = 0; i < argsTarget.ports.length; i++) {\n var port = argsTarget.ports[parseInt(i.toString(), 10)];\n if (element.id === argsTarget.id + '_' + port.id) {\n return port;\n }\n }\n }\n }\n if (!connection) {\n var annotation = void 0;\n for (var i = 0; i < argsTarget.annotations.length; i++) {\n annotation = argsTarget.annotations[parseInt(i.toString(), 10)];\n if (element.id === argsTarget.id + '_' + annotation.id) {\n return annotation;\n }\n }\n }\n return argsTarget;\n };\n /**\n * canDisconnect method\\\n *\n * @returns { boolean } canDisconnect method .\\\n * @param {string} endPoint - provide the endPoint value.\n * @param {MouseEventArgs} args - provide the args value.\n * @param {string} targetPortId - provide the targetPortId value.\n * @param {string} targetNodeId - provide the targetNodeId value.\n * @private\n */\n CommandHandler.prototype.canDisconnect = function (endPoint, args, targetPortId, targetNodeId) {\n var selector;\n var connect;\n if (args.source instanceof Selector) {\n selector = args.source;\n connect = selector.connectors[0];\n }\n else if (args.source instanceof Connector && this.diagram.currentDrawingObject) {\n connect = this.diagram.currentDrawingObject;\n }\n var targetObject = this.findTarget(args.targetWrapper, args.target, endPoint === 'ConnectorSourceEnd', true);\n var nodeEnd = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEnd = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n if (connect[\"\" + nodeEnd] !== targetNodeId || connect[\"\" + portEnd] !== targetPortId) {\n return true;\n }\n return false;\n };\n /**\n * changeAnnotationDrag method\\\n *\n * @returns { void } changeAnnotationDrag method .\\\n * @param {MouseEventArgs} args - provide the endPoint value.\n * @private\n */\n CommandHandler.prototype.changeAnnotationDrag = function (args) {\n var selectorModel;\n var connector;\n if (args.source && args.source.connectors &&\n args.source.connectors.length && this.diagram.bpmnModule &&\n this.diagram.bpmnModule.textAnnotationConnectors.indexOf(args.source.connectors[0]) > -1) {\n if (args.source instanceof Selector) {\n selectorModel = args.source;\n connector = selectorModel.connectors[0];\n }\n var id = connector.id.split('_');\n var annotationId = id[id.length - 1];\n var nodeId = id[id.length - 3] || id[0];\n if (args.target && args.target.id !== nodeId &&\n ((!isBlazor() && args.target.shape.shape !== 'TextAnnotation') ||\n (isBlazor() && args.target.shape.bpmnShape !== 'TextAnnotation'))) {\n this.diagram.startGroupAction();\n var parentNode = this.diagram.nameTable[id[0]];\n var clonedNode = this.getAnnotation(parentNode, id[1]);\n var annotationNode = {\n id: id[1] + randomId(),\n angle: Point.findAngle(connector.intermediatePoints[0], connector.intermediatePoints[1]),\n text: clonedNode.text,\n length: Point.distancePoints(connector.intermediatePoints[0], connector.intermediatePoints[1]),\n shape: { shape: 'TextAnnotation', type: 'Bpmn' },\n nodeId: clonedNode.nodeId\n };\n var annotationObj = new BpmnAnnotation(args.target.shape, 'annotations', annotationNode, true);\n this.diagram.bpmnModule.checkAndRemoveAnnotations(this.diagram.nameTable[connector.targetID], this.diagram);\n this.diagram.refreshCanvasLayers();\n annotationObj.id = id[1];\n this.diagram.addTextAnnotation(annotationObj, args.target);\n this.diagram.endGroupAction();\n }\n else if (connector) {\n connector.sourceID = nodeId;\n this.diagram.connectorPropertyChange(connector, {}, { sourceID: nodeId });\n this.diagram.updateDiagramObject(connector);\n }\n }\n };\n /* tslint:disable */\n /**\n * connect method\\\n *\n * @returns { IConnectionChangeEventArgs | IBlazorConnectionChangeEventArgs } connect method .\\\n * @param {string} endPoint - provide the endPoint value.\n * @param {MouseEventArgs} args - provide the args value.\n * @param {boolean} canCancel - provide the canCancel value.\n * @private\n */\n CommandHandler.prototype.connect = function (endPoint, args, canCancel) {\n var checkBlazor;\n var newChanges = {};\n var oldChanges = {};\n var oldNodeId;\n var oldPortId;\n var selectorModel;\n var connector;\n var returnargs;\n if (args.source instanceof Selector) {\n selectorModel = args.source;\n connector = selectorModel.connectors[0];\n }\n else if (args.source instanceof Connector && this.diagram.currentDrawingObject) {\n connector = this.diagram.currentDrawingObject;\n }\n var target = this.findTarget((args.targetWrapper || args.sourceWrapper), (args.target || args.actualObject), endPoint === 'ConnectorSourceEnd', true);\n var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n if (target instanceof Node) {\n oldChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n connector[\"\" + nodeEndId] = target.id;\n newChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n oldChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n returnargs = this.connectionEventChange(connector, oldChanges, newChanges, endPoint, canCancel);\n }\n else {\n oldNodeId = connector[\"\" + nodeEndId];\n oldPortId = connector[\"\" + portEndId];\n connector[\"\" + portEndId] = target.id;\n connector[\"\" + nodeEndId] = (args.target && args.target.id || args.actualObject.id);\n newChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n newChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n var arg = {\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldNodeId, portId: oldPortId },\n newValue: { nodeId: newChanges[\"\" + nodeEndId], portId: newChanges[\"\" + portEndId] },\n cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n if (isBlazor()) {\n arg = {\n connector: cloneBlazorObject(connector),\n oldValue: undefined,\n newValue: undefined,\n cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n if (endPoint === 'ConnectorSourceEnd') {\n arg.oldValue = {\n connectorSourceValue: { portId: oldChanges[\"\" + portEndId], nodeId: oldChanges[\"\" + nodeEndId] }\n };\n arg.newValue = {\n connectorSourceValue: { portId: newChanges[\"\" + portEndId], nodeId: newChanges[\"\" + nodeEndId] }\n };\n }\n else {\n arg.newValue = {\n connectorTargetValue: { portId: newChanges[\"\" + portEndId], nodeId: newChanges[\"\" + nodeEndId] }\n };\n arg.oldValue = {\n connectorTargetValue: { portId: oldChanges[\"\" + portEndId], nodeId: oldChanges[\"\" + nodeEndId] }\n };\n }\n returnargs = arg;\n }\n if (!checkBlazor) {\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n }\n if (arg.cancel || (isBlazor() && canCancel)) {\n connector[\"\" + nodeEndId] = oldNodeId;\n connector[\"\" + portEndId] = oldPortId;\n newChanges[\"\" + nodeEndId] = oldNodeId;\n newChanges[\"\" + portEndId] = oldPortId;\n }\n else {\n this.diagram.connectorPropertyChange(connector, oldChanges, newChanges);\n this.diagram.updateDiagramObject(connector);\n arg = {\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldNodeId, portId: oldPortId },\n newValue: { nodeId: newChanges[\"\" + nodeEndId], portId: newChanges[\"\" + portEndId] }, cancel: false,\n state: 'Changing', connectorEnd: endPoint\n };\n if (isBlazor()) {\n arg = {\n newValue: undefined,\n connector: cloneBlazorObject(connector),\n oldValue: undefined,\n cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n if (endPoint === 'ConnectorSourceEnd') {\n arg.oldValue = {\n connectorSourceValue: { portId: oldChanges[\"\" + portEndId], nodeId: oldChanges[\"\" + nodeEndId] }\n };\n arg.newValue = {\n connectorTargetValue: { portId: newChanges[\"\" + portEndId], nodeId: newChanges[\"\" + nodeEndId] }\n };\n }\n else {\n arg.oldValue = {\n connectorTargetValue: { portId: oldChanges[\"\" + portEndId], nodeId: oldChanges[\"\" + nodeEndId] }\n };\n arg.newValue = {\n connectorTargetValue: { portId: newChanges[\"\" + portEndId], nodeId: newChanges[\"\" + nodeEndId] }\n };\n }\n }\n }\n }\n this.renderHighlighter(args, undefined, endPoint === 'ConnectorSourceEnd');\n return returnargs;\n };\n /* tslint:enable */\n /** @private */\n /**\n * cut method\\\n *\n * @returns { void } cut method .\\\n * @private\n */\n CommandHandler.prototype.cut = function () {\n var index;\n this.clipboardData.pasteIndex = 0;\n if (this.diagram.undoRedoModule) {\n this.diagram.historyManager.startGroupAction();\n }\n this.clipboardData.clipObject = this.copyObjects();\n if (this.diagram.undoRedoModule) {\n this.diagram.historyManager.endGroupAction();\n }\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n };\n CommandHandler.prototype.UpdateBlazorDiagramModelLayers = function (layer, isRemove) {\n var blazorInterop = 'sfBlazor';\n var updatedModel = cloneBlazorObject(layer);\n var blazor = 'Blazor';\n if (window && window[\"\" + blazor]) {\n var obj = {\n 'methodName': 'UpdateBlazorDiagramModelLayers',\n 'diagramobj': JSON.stringify(updatedModel), 'isRemove': isRemove\n };\n if (!this.diagram.isLoading) {\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this.diagram);\n }\n }\n };\n /**\n * addLayer method\\\n *\n * @returns { void } addLayer method .\\\n * @param {LayerModel} layer - provide the endPoint value.\n * @param {Object[]} objects - provide the args value.\n * @param {boolean} isServerUpdate - provide the canCancel value.\n * @private\n */\n CommandHandler.prototype.addLayer = function (layer, objects, isServerUpdate) {\n if (isServerUpdate === void 0) { isServerUpdate = true; }\n layer.id = layer.id || randomId();\n layer.zIndex = this.diagram.layers.length;\n var isEnableServerDatabind = this.diagram.allowServerDataBinding;\n this.diagram.enableServerDataBinding(false);\n layer = new Layer(this.diagram, 'layers', layer, true);\n this.diagram.enableServerDataBinding(isEnableServerDatabind);\n layer.objectZIndex = -1;\n layer.zIndexTable = {};\n this.diagram.layers.push(layer);\n if (isServerUpdate) {\n this.UpdateBlazorDiagramModelLayers(layer, false);\n }\n this.diagram.layerZIndexTable[layer.zIndex] = layer.id;\n this.diagram.activeLayer = layer;\n var layers = layer.objects;\n if (objects) {\n for (var i = 0; i < objects.length; i++) {\n this.diagram.add(objects[parseInt(i.toString(), 10)]);\n }\n }\n };\n /**\n * getObjectLayer method\\\n *\n * @returns { LayerModel } getObjectLayer method .\\\n * @param {string} objectName - provide the endPoint value.\n * @private\n */\n CommandHandler.prototype.getObjectLayer = function (objectName) {\n var layers = this.diagram.layers;\n if (layers.length > 1) {\n for (var i = 0; i < layers.length; i++) {\n var objIndex = layers[parseInt(i.toString(), 10)].objects.indexOf(objectName);\n if (objIndex > -1) {\n return layers[parseInt(i.toString(), 10)];\n }\n }\n }\n return this.diagram.activeLayer;\n };\n /**\n * getLayer method\\\n *\n * @returns { LayerModel } getLayer method .\\\n * @param {string} layerName - provide the endPoint value.\n * @private\n */\n CommandHandler.prototype.getLayer = function (layerName) {\n var layers = this.diagram.layers;\n for (var i = 0; i < layers.length; i++) {\n if (layers[parseInt(i.toString(), 10)].id === layerName) {\n return layers[parseInt(i.toString(), 10)];\n }\n }\n return undefined;\n };\n /**\n * removeLayer method\\\n *\n * @returns { void } removeLayer method .\\\n * @param {string} layerId - provide the endPoint value.\n * @param {boolean} isServerUpdate - provide the endPoint value.\n * @private\n */\n CommandHandler.prototype.removeLayer = function (layerId, isServerUpdate) {\n if (isServerUpdate === void 0) { isServerUpdate = true; }\n var layers = this.getLayer(layerId);\n if (layers) {\n var index = this.diagram.layers.indexOf(layers);\n var layerObject = layers.objects;\n for (var i = layerObject.length - 1; i >= 0; i--) {\n this.diagram.unSelect(this.diagram.nameTable[layerObject[parseInt(i.toString(), 10)]]);\n this.diagram.remove(this.diagram.nameTable[layerObject[parseInt(i.toString(), 10)]]);\n if (layers.id !== 'default_layer') {\n if (this.diagram.activeLayer.id === layerId) {\n this.diagram.activeLayer = this.diagram.layers[this.diagram.layers.length - 1];\n }\n }\n }\n if (isServerUpdate) {\n this.UpdateBlazorDiagramModelLayers(this.diagram.layers[parseInt(index.toString(), 10)], true);\n }\n delete this.diagram.layerZIndexTable[layers.zIndex];\n this.diagram.layers.splice(index, 1);\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * moveObjects method\\\n *\n * @returns { void } moveObjects method .\\\n * @param {string[]]} objects - provide the objects value.\n * @param {string} targetLayer - provide the targetLayer value.\n * @private\n */\n CommandHandler.prototype.moveObjects = function (objects, targetLayer) {\n var layer = this.getLayer(targetLayer) || this.diagram.activeLayer;\n this.diagram.setActiveLayer(layer.id);\n var targerNodes;\n for (var _i = 0, objects_1 = objects; _i < objects_1.length; _i++) {\n var i = objects_1[_i];\n var layer_1 = this.getObjectLayer(i);\n var index = layer_1.objects.indexOf(i);\n if (index > -1) {\n targerNodes = this.diagram.nameTable[\"\" + i];\n this.diagram.unSelect(targerNodes);\n this.diagram.remove(this.diagram.nameTable[\"\" + i]);\n this.diagram.add(targerNodes);\n }\n }\n };\n /**\n * cloneLayer method\\\n *\n * @returns { void } cloneLayer method .\\\n * @param {string[]} layerName - provide the objects value.\n * @private\n */\n CommandHandler.prototype.cloneLayer = function (layerName) {\n var layers = this.diagram.layers;\n var layer = this.getLayer(layerName);\n if (layer) {\n var cloneObject_1 = [];\n var newlayer = {\n id: layerName + '_' + randomId(), objects: [], visible: true, lock: false\n };\n this.addLayer(newlayer, null, true);\n newlayer.zIndex = this.diagram.layers.length - 1;\n var multiSelect = cloneObject_1.length !== 1;\n for (var _i = 0, _a = layer.objects; _i < _a.length; _i++) {\n var obj = _a[_i];\n cloneObject_1.push(this.diagram.nameTable[\"\" + obj]);\n }\n this.paste(cloneObject_1);\n }\n };\n /**\n * copy method\\\n *\n * @returns { void } copy method .\\\n * @private\n */\n CommandHandler.prototype.copy = function () {\n this.clipboardData.pasteIndex = 1;\n this.clipboardData.clipObject = this.copyObjects();\n return this.clipboardData.clipObject;\n };\n /**\n * copyObjects method\\\n *\n * @returns { Object[] } copyObjects method .\\\n * @private\n */\n CommandHandler.prototype.copyObjects = function () {\n var selectedItems = [];\n var obj = [];\n this.clipboardData.childTable = {};\n if (this.diagram.selectedItems.connectors.length > 0) {\n selectedItems = this.diagram.selectedItems.connectors;\n for (var j = 0; j < selectedItems.length; j++) {\n var element = void 0;\n if (this.diagram.bpmnModule &&\n this.diagram.bpmnModule.textAnnotationConnectors.indexOf(selectedItems[parseInt(j.toString(), 10)]) > -1) {\n element = cloneObject((this.diagram.nameTable[selectedItems[parseInt(j.toString(), 10)].targetID]));\n }\n else {\n element = cloneObject((selectedItems[parseInt(j.toString(), 10)]));\n }\n obj.push(element);\n }\n }\n if (this.diagram.selectedItems.nodes.length > 0) {\n selectedItems = selectedItems.concat(this.diagram.selectedItems.nodes);\n for (var j = 0; j < this.diagram.selectedItems.nodes.length; j++) {\n if (!selectedItems[parseInt(j.toString(), 10)].isPhase) {\n var node = clone(this.diagram.selectedItems.nodes[parseInt(j.toString(), 10)]);\n if (node.wrapper && (node.offsetX !== node.wrapper.offsetX)) {\n node.offsetX = node.wrapper.offsetX;\n }\n if (node.wrapper && (node.offsetY !== node.wrapper.offsetY)) {\n node.offsetY = node.wrapper.offsetY;\n }\n var processTable = {};\n this.copyProcesses(node);\n obj.push(clone(node));\n var matrix = identityMatrix();\n rotateMatrix(matrix, -node.rotateAngle, node.offsetX, node.offsetY);\n if (node.children) {\n var childTable = this.clipboardData.childTable;\n var tempNode = void 0;\n var elements = [];\n var nodes = this.getAllDescendants(node, elements, true);\n for (var i = 0; i < nodes.length; i++) {\n tempNode = this.diagram.nameTable[nodes[parseInt(i.toString(), 10)].id];\n var clonedObject = childTable[tempNode.id] = clone(tempNode);\n var newOffset = transformPointByMatrix(matrix, { x: clonedObject.wrapper.offsetX, y: clonedObject.wrapper.offsetY });\n if (tempNode instanceof Node) {\n clonedObject.offsetX = newOffset.x;\n clonedObject.offsetY = newOffset.y;\n clonedObject.rotateAngle -= node.rotateAngle;\n }\n }\n this.clipboardData.childTable = childTable;\n }\n if (node.shape.type === 'SwimLane') {\n var swimlane = this.diagram.getObject(this.diagram.selectedItems.nodes[parseInt(j.toString(), 10)].id);\n var childTable = this.clipboardData.childTable;\n var connectorsList = getConnectors(this.diagram, swimlane.wrapper.children[0], 0, true);\n for (var i = 0; i < connectorsList.length; i++) {\n var connector = this.diagram.getObject(connectorsList[parseInt(i.toString(), 10)]);\n childTable[connector.id] = clone(connector);\n }\n }\n if (node && node.isLane) {\n var childTable = this.clipboardData.childTable;\n var swimlane = this.diagram.getObject(node.parentId);\n var lane = findLane(node, this.diagram);\n childTable[node.id] = cloneObject(lane);\n childTable[node.id].width = swimlane.wrapper.actualSize.width;\n }\n }\n }\n }\n if (this.clipboardData.pasteIndex === 0) {\n this.startGroupAction();\n for (var _i = 0, selectedItems_1 = selectedItems; _i < selectedItems_1.length; _i++) {\n var item = selectedItems_1[_i];\n if (this.diagram.nameTable[item.id]) {\n if (this.diagram.bpmnModule &&\n this.diagram.bpmnModule.textAnnotationConnectors.indexOf(item) > -1) {\n this.diagram.remove(this.diagram.nameTable[item.targetID]);\n }\n else {\n this.diagram.remove(item);\n }\n }\n }\n this.endGroupAction();\n }\n this.sortByZIndex(obj, 'zIndex');\n return obj;\n };\n CommandHandler.prototype.copyProcesses = function (node) {\n if (node.shape.type === 'Bpmn' && node.shape.activity &&\n node.shape.activity.subProcess.processes &&\n node.shape.activity.subProcess.processes.length > 0) {\n var processes = node.shape.activity.subProcess.processes;\n for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) {\n var i = processes_1[_i];\n this.processTable[\"\" + i] = (clone(this.diagram.nameTable[\"\" + i]));\n if (this.processTable[\"\" + i].shape.activity.subProcess.processes &&\n this.processTable[\"\" + i].shape.activity.subProcess.processes.length > 0) {\n this.copyProcesses(this.processTable[\"\" + i]);\n }\n }\n this.clipboardData.processTable = this.processTable;\n }\n };\n /**\n * group method\\\n *\n * @returns { void } group method .\\\n * @private\n */\n CommandHandler.prototype.group = function () {\n this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n var propName = 'isProtectedOnChange';\n var protectedChange = this.diagram[\"\" + propName];\n this.diagram.protectPropertyChange(true);\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.Group;\n var selectedItems = [];\n var obj = {};\n //let group: Node | Connector;\n obj.id = 'group' + randomId();\n obj = new Node(this.diagram, 'nodes', obj, true);\n obj.children = [];\n selectedItems = this.diagram.selectedItems.nodes;\n selectedItems = selectedItems.concat(this.diagram.selectedItems.connectors);\n var order = selectedItems.sort(function (a, b) {\n return a.zIndex - b.zIndex;\n });\n for (var i = 0; i < order.length; i++) {\n if (!order[parseInt(i.toString(), 10)].parentId) {\n obj.children.push(order[parseInt(i.toString(), 10)].id);\n }\n }\n var group = this.diagram.add(obj);\n if (group) {\n this.select(group);\n }\n var entry = { type: 'Group', undoObject: obj, redoObject: obj, category: 'Internal' };\n this.addHistoryEntry(entry);\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.Group;\n this.diagram.protectPropertyChange(protectedChange);\n this.updateBlazorSelector();\n };\n /**\n * unGroup method\\\n *\n * @returns { void } unGroup method .\\\n * @param {NodeModel} obj - provide the angle value.\n * @private\n */\n CommandHandler.prototype.unGroup = function (obj) {\n var propName = 'isProtectedOnChange';\n var protectedChange = this.diagram[\"\" + propName];\n this.diagram.protectPropertyChange(true);\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.Group;\n var selectedItems = [];\n if (obj) {\n selectedItems.push(obj);\n }\n else {\n selectedItems = this.diagram.selectedItems.nodes;\n }\n this.diagram.startGroupAction();\n for (var i = 0; i < selectedItems.length; i++) {\n var node = selectedItems[parseInt(i.toString(), 10)];\n var undoObject = cloneObject(node);\n var childCollection = [];\n for (var k = 0; k < node.children.length; k++) {\n childCollection.push(node.children[parseInt(k.toString(), 10)]);\n }\n if (node.children) {\n if (node.ports && node.ports.length > 0) {\n this.diagram.removePorts(node, node.ports);\n }\n if (node.annotations && node.annotations.length > 0\n && (!isBlazor() || isBlazor() && node.annotations[0].content !== '')) {\n this.diagram.removeLabels(node, node.annotations);\n }\n var parentNode = this.diagram.nameTable[node.parentId];\n for (var j = node.children.length - 1; j >= 0; j--) {\n (this.diagram.nameTable[node.children[parseInt(j.toString(), 10)]]).parentId = '';\n this.diagram.deleteChild(this.diagram.nameTable[node.children[parseInt(j.toString(), 10)]], node);\n if (node.parentId && node.children[parseInt(j.toString(), 10)]) {\n this.diagram.addChild(parentNode, node.children[parseInt(j.toString(), 10)]);\n }\n }\n this.resetDependentConnectors(node.inEdges, true);\n this.resetDependentConnectors(node.outEdges, false);\n var entry = {\n type: 'UnGroup', undoObject: undoObject,\n redoObject: undoObject, category: 'Internal'\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n if (node.parentId) {\n this.diagram.deleteChild(node, parentNode);\n }\n }\n this.diagram.removeNode(node, childCollection);\n this.clearSelection();\n }\n this.diagram.endGroupAction();\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.Group;\n this.diagram.protectPropertyChange(protectedChange);\n };\n CommandHandler.prototype.resetDependentConnectors = function (edges, isInEdges) {\n for (var i = 0; i < edges.length; i++) {\n var newConnector = this.diagram.nameTable[edges[parseInt(i.toString(), 10)]];\n var undoObject = cloneObject(newConnector);\n var newProp = void 0;\n if (isInEdges) {\n newConnector.targetID = '';\n newConnector.targetPortID = '';\n newProp = { targetID: newConnector.targetID, targetPortID: newConnector.targetPortID };\n }\n else {\n newConnector.sourceID = '';\n newConnector.sourcePortID = '';\n newProp = { sourceID: newConnector.sourceID, sourcePortID: newConnector.sourcePortID };\n }\n this.diagram.connectorPropertyChange(newConnector, {}, newProp);\n var entry = {\n type: 'ConnectionChanged', undoObject: { connectors: [undoObject], nodes: [] },\n redoObject: { connectors: [cloneObject(newConnector)], nodes: [] }, category: 'Internal'\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n }\n };\n /**\n * paste method\\\n *\n * @returns { void } paste method .\\\n * @param {(NodeModel | ConnectorModel)[]} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.paste = function (obj) {\n if (obj || this.clipboardData.clipObject) {\n this.diagram.protectPropertyChange(true);\n var copiedItems = obj ? this.getNewObject(obj) :\n this.clipboardData.clipObject;\n if (copiedItems) {\n var multiSelect = copiedItems.length !== 1;\n var groupAction = false;\n var objectTable = {};\n var keyTable = {};\n if (this.clipboardData.pasteIndex !== 0) {\n this.clearSelection();\n }\n if (this.diagram.undoRedoModule) {\n groupAction = true;\n this.diagram.historyManager.startGroupAction();\n }\n for (var _i = 0, copiedItems_1 = copiedItems; _i < copiedItems_1.length; _i++) {\n var copy = copiedItems_1[_i];\n objectTable[copy.id] = copy;\n }\n var copiedObject = [];\n if (multiSelect) {\n // This bool is also consider to prevent selection change event is triggered after every object clone\n this.diagram.isServerUpdate = true;\n }\n for (var j = 0; j < copiedItems.length; j++) {\n var copy = copiedItems[parseInt(j.toString(), 10)];\n if (getObjectType(copy) === Connector) {\n var clonedObj = clone(copy);\n var nodeId = clonedObj.sourceID;\n clonedObj.sourceID = '';\n if (objectTable[\"\" + nodeId] && keyTable[\"\" + nodeId]) {\n clonedObj.sourceID = keyTable[\"\" + nodeId];\n }\n nodeId = clonedObj.targetID;\n clonedObj.targetID = '';\n if (objectTable[\"\" + nodeId] && keyTable[\"\" + nodeId]) {\n clonedObj.targetID = keyTable[\"\" + nodeId];\n }\n var newObj = this.cloneConnector(clonedObj, multiSelect);\n copiedObject.push(newObj);\n keyTable[copy.id] = newObj.id;\n }\n else {\n var newNode = this.cloneNode(copy, multiSelect);\n if (isBlazor() && newNode && newNode.children && newNode.children.length > 0) {\n copiedObject = copiedObject.concat(this.cloneGroupChildCollection);\n this.cloneGroupChildCollection = [];\n }\n else {\n copiedObject.push(newNode);\n }\n //bpmn text annotations will not be pasted\n if (newNode) {\n keyTable[copy.id] = newNode.id;\n var edges = copy.inEdges;\n if (edges) {\n for (var _a = 0, edges_1 = edges; _a < edges_1.length; _a++) {\n var edge = edges_1[_a];\n if (objectTable[\"\" + edge] && keyTable[\"\" + edge]) {\n var newConnector = this.diagram.nameTable[keyTable[\"\" + edge]];\n newConnector.targetID = keyTable[copy.id];\n this.diagram.connectorPropertyChange(newConnector, { targetID: '', targetPortID: '' }, { targetID: newConnector.targetID, targetPortID: newConnector.targetPortID });\n }\n }\n }\n edges = copy.outEdges;\n if (edges) {\n for (var _b = 0, edges_2 = edges; _b < edges_2.length; _b++) {\n var edge = edges_2[_b];\n if (objectTable[\"\" + edge] && keyTable[\"\" + edge]) {\n var newConnector = this.diagram.nameTable[keyTable[\"\" + edge]];\n newConnector.sourceID = keyTable[copy.id];\n this.diagram.connectorPropertyChange(newConnector, { sourceID: '', sourcePortID: '' }, { sourceID: newConnector.sourceID, sourcePortID: newConnector.sourcePortID });\n }\n }\n }\n }\n }\n }\n if (multiSelect) {\n this.diagram.isServerUpdate = false;\n this.diagram.UpdateBlazorDiagramModelCollection(copiedItems[0], copiedObject);\n this.getBlazorOldValues();\n this.diagram.select(copiedObject, true);\n }\n if (groupAction === true) {\n this.diagram.historyManager.endGroupAction();\n groupAction = false;\n }\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n this.clipboardData.pasteIndex++;\n this.diagram.protectPropertyChange(false);\n }\n }\n };\n CommandHandler.prototype.getNewObject = function (obj) {\n var newObj;\n var newobjs = [];\n this.clipboardData.pasteIndex = 1;\n for (var i = 0; i < obj.length; i++) {\n newObj = cloneObject(obj[parseInt(i.toString(), 10)]);\n newobjs.push(newObj);\n }\n return newobjs;\n };\n CommandHandler.prototype.cloneConnector = function (connector, multiSelect) {\n //let newConnector: Node | Connector;\n var cloneObject = clone(connector);\n this.translateObject(cloneObject);\n cloneObject.zIndex = -1;\n var newConnector = this.diagram.add(cloneObject);\n if (!this.diagram.isServerUpdate) {\n this.selectObjects([newConnector], multiSelect);\n }\n return newConnector;\n };\n CommandHandler.prototype.cloneNode = function (node, multiSelect, children, groupnodeID) {\n var newNode;\n var connectorsTable = {};\n var cloneObject = clone(node);\n var process;\n var temp = this.diagram.nameTable[node.parentId];\n if (node.shape && node.shape.type === 'Bpmn' && node.shape.activity &&\n node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length) {\n process = cloneObject.shape.activity.subProcess.processes;\n cloneObject.zIndex = -1;\n cloneObject.shape.activity.subProcess.processes = undefined;\n }\n if (node.shape && node.shape.type === 'SwimLane') {\n pasteSwimLane(node, this.diagram, this.clipboardData);\n }\n else if (temp && temp.shape.type === 'SwimLane') {\n pasteSwimLane(clone(temp), this.diagram, this.clipboardData, node, true);\n }\n else if (node.children && node.children.length && (!children || !children.length)) {\n newNode = this.cloneGroup(node, multiSelect);\n }\n else if (node.shape && ((!isBlazor() && node.shape.shape === 'TextAnnotation') ||\n (isBlazor() && node.shape.bpmnShape === 'TextAnnotation')) && node.id.indexOf('_textannotation_') !== -1 &&\n this.diagram.nameTable[node.id]) {\n var checkAnnotation = node.id.split('_textannotation_');\n //const parentNode: Node;\n var annotation = this.diagram.nameTable[node.id];\n for (var j = 0; j < annotation.inEdges.length; j++) {\n var connector = this.diagram.nameTable[annotation.inEdges[parseInt(j.toString(), 10)]];\n if (connector) {\n var parentNode = this.diagram.nameTable[connector.sourceID];\n var clonedNode = this.getAnnotation(parentNode, checkAnnotation[1]);\n var annotationNode = {\n id: checkAnnotation[1] + randomId(),\n angle: clonedNode.angle,\n text: clonedNode.text,\n length: clonedNode.length,\n shape: { shape: 'TextAnnotation', type: 'Bpmn' },\n nodeId: clonedNode.nodeId\n };\n this.diagram.addTextAnnotation(annotationNode, parentNode);\n }\n }\n }\n else {\n this.translateObject(cloneObject, groupnodeID);\n cloneObject.zIndex = -1;\n if (children) {\n cloneObject.children = children;\n }\n newNode = this.diagram.add(cloneObject);\n }\n for (var _i = 0, _a = Object.keys(connectorsTable); _i < _a.length; _i++) {\n var i = _a[_i];\n this.diagram.add(connectorsTable[\"\" + i]);\n }\n if (process && process.length) {\n newNode.shape.activity.subProcess.processes = process;\n this.cloneSubProcesses(newNode);\n }\n if (newNode && !this.diagram.isServerUpdate) {\n this.selectObjects([newNode], multiSelect);\n }\n return newNode;\n };\n CommandHandler.prototype.getAnnotation = function (parent, annotationId) {\n var currentAnnotation = parent.shape.annotations;\n if (currentAnnotation && currentAnnotation.length) {\n for (var g = 0; g <= currentAnnotation.length; g++) {\n if (currentAnnotation[parseInt(g.toString(), 10)].id === annotationId) {\n return currentAnnotation[parseInt(g.toString(), 10)];\n }\n }\n }\n return undefined;\n };\n CommandHandler.prototype.cloneSubProcesses = function (node) {\n var connector = [];\n var temp = {};\n if (node.shape.type === 'Bpmn' && node.shape.activity &&\n node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length) {\n var process = node.shape.activity.subProcess.processes;\n for (var g = 0; g < process.length; g++) {\n var child = this.diagram.nameTable[process[parseInt(g.toString(), 10)]] || this.clipboardData.processTable[process[parseInt(g.toString(), 10)]];\n for (var _i = 0, _a = child.outEdges; _i < _a.length; _i++) {\n var j = _a[_i];\n if (connector.indexOf(j) < 0) {\n connector.push(j);\n }\n }\n for (var _b = 0, _c = child.inEdges; _b < _c.length; _b++) {\n var j = _c[_b];\n if (connector.indexOf(j) < 0) {\n connector.push(j);\n }\n }\n var innerChild = cloneObject(this.clipboardData.processTable[process[parseInt(g.toString(), 10)]]);\n innerChild.processId = node.id;\n var newNode = this.cloneNode(innerChild, false);\n temp[process[parseInt(g.toString(), 10)]] = newNode.id;\n process[parseInt(g.toString(), 10)] = newNode.id;\n this.diagram.addProcess(newNode, node.id);\n for (var _d = 0, connector_1 = connector; _d < connector_1.length; _d++) {\n var i = connector_1[_d];\n var node_1 = this.diagram.nameTable[\"\" + i] || this.diagram.connectorTable[\"\" + i];\n var clonedNode = cloneObject(node_1);\n if (temp[clonedNode.sourceID] && temp[clonedNode.targetID]) {\n clonedNode.zIndex = -1;\n clonedNode.id += randomId();\n clonedNode.sourceID = temp[clonedNode.sourceID];\n clonedNode.targetID = temp[clonedNode.targetID];\n connector.splice(connector.indexOf(i), 1);\n this.diagram.add(clonedNode);\n }\n }\n }\n }\n };\n CommandHandler.prototype.cloneGroup = function (obj, multiSelect) {\n var value;\n var newChildren = [];\n var sourceId;\n var targetId;\n var children = [];\n var connectorObj = [];\n var newObj;\n var oldID = [];\n children = children.concat(obj.children);\n var id = randomId();\n var objectCollection = [];\n this.diagram.blazorActions |= BlazorAction.GroupClipboardInProcess;\n if (this.clipboardData.childTable || obj.children.length > 0) {\n for (var i = 0; i < children.length; i++) {\n var childObj = void 0;\n if (this.clipboardData.childTable) {\n childObj = this.clipboardData.childTable[children[parseInt(i.toString(), 10)]];\n }\n else {\n childObj = this.diagram.nameTable[children[parseInt(i.toString(), 10)]];\n }\n childObj.parentId = '';\n if (childObj) {\n if (getObjectType(childObj) === Connector) {\n connectorObj.push(childObj);\n }\n else {\n newObj = this.cloneNode(childObj, multiSelect, undefined, id);\n oldID.push(childObj.id);\n newChildren.push(newObj.id);\n objectCollection.push(newObj);\n }\n }\n }\n }\n for (var k = 0; k < connectorObj.length; k++) {\n if (connectorObj[parseInt(k.toString(), 10)].sourceID || connectorObj[parseInt(k.toString(), 10)].targetID) {\n for (var j = 0; j < oldID.length; j++) {\n if (connectorObj[parseInt(k.toString(), 10)].sourceID === (oldID[parseInt(j.toString(), 10)])) {\n sourceId = connectorObj[parseInt(k.toString(), 10)].sourceID;\n connectorObj[parseInt(k.toString(), 10)].sourceID += id;\n }\n if (connectorObj[parseInt(k.toString(), 10)].targetID === (oldID[parseInt(j.toString(), 10)])) {\n targetId = connectorObj[parseInt(k.toString(), 10)].targetID;\n connectorObj[parseInt(k.toString(), 10)].targetID += id;\n }\n }\n }\n newObj = this.cloneConnector(connectorObj[parseInt(k.toString(), 10)], multiSelect);\n //EJ2-839982 - When we copy paste the group node multiple times, the connector is not rendered properly\n connectorObj[parseInt(k.toString(), 10)].sourceID = sourceId;\n connectorObj[parseInt(k.toString(), 10)].targetID = targetId;\n newChildren.push(newObj.id);\n objectCollection.push(newObj);\n }\n var parentObj = this.cloneNode(obj, multiSelect, newChildren);\n objectCollection.push(parentObj);\n if (parentObj && parentObj.container && parentObj.shape && parentObj.shape.type === 'UmlClassifier') {\n this.diagram.updateDiagramObject(parentObj);\n parentObj.wrapper.measure(new Size());\n }\n this.diagram.blazorActions &= ~BlazorAction.GroupClipboardInProcess;\n if (!this.diagram.isServerUpdate) {\n this.diagram.UpdateBlazorDiagramModelCollection(undefined, objectCollection, undefined, true);\n }\n else {\n this.cloneGroupChildCollection = objectCollection;\n }\n return parentObj;\n };\n /**\n * translateObject method\\\n *\n * @returns { Object[] } translateObject method .\\\n * @param {Node | Connector} obj - provide the objects value.\n * @param {string} groupnodeID - provide the objects value.\n * @private\n */\n CommandHandler.prototype.translateObject = function (obj, groupnodeID) {\n obj.id += groupnodeID || randomId();\n var diff = this.clipboardData.pasteIndex * 10;\n if (getObjectType(obj) === Connector) {\n obj.sourcePoint = {\n x: obj.sourcePoint.x + diff, y: obj.sourcePoint.y + diff\n };\n obj.targetPoint = {\n x: obj.targetPoint.x + diff, y: obj.targetPoint.y + diff\n };\n if (obj.type === 'Bezier') {\n var segments = obj.segments;\n for (var i = 0; i < segments.length; i++) {\n if (!Point.isEmptyPoint(segments[parseInt(i.toString(), 10)].point1)) {\n segments[parseInt(i.toString(), 10)].point1 = {\n x: segments[parseInt(i.toString(), 10)].point1.x + diff, y: segments[parseInt(i.toString(), 10)].point1.y + diff\n };\n }\n if (!Point.isEmptyPoint(segments[parseInt(i.toString(), 10)].point2)) {\n segments[parseInt(i.toString(), 10)].point2 = {\n x: segments[parseInt(i.toString(), 10)].point2.x + diff, y: segments[parseInt(i.toString(), 10)].point2.y + diff\n };\n }\n }\n }\n if (obj.type === 'Straight' || obj.type === 'Bezier') {\n if (obj.segments && obj.segments.length > 0) {\n var segments = obj.segments;\n for (var i = 0; i < segments.length - 1; i++) {\n segments[parseInt(i.toString(), 10)].point.x += diff;\n segments[parseInt(i.toString(), 10)].point.y += diff;\n }\n }\n }\n }\n else {\n obj.offsetX += diff;\n obj.offsetY += diff;\n }\n };\n /**\n * drawObject method\\\n *\n * @returns { Node | Connector } drawObject method .\\\n * @param {Node | Connector} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.drawObject = function (obj) {\n var oldProtectPropertyChangeValue;\n if (isBlazor()) {\n oldProtectPropertyChangeValue = this.diagram.getProtectPropertyChangeValue();\n this.diagram.protectPropertyChange(true);\n }\n var newObj;\n //let cloneObject: Node | Connector;\n if (obj && obj.shape) {\n if (obj.shape.type === 'Text') {\n obj.width = this.diagram.drawingObject.width ? this.diagram.drawingObject.width : 50;\n obj.height = this.diagram.drawingObject.height ? this.diagram.drawingObject.height : 20;\n }\n }\n var cloneObject = clone(this.diagram.drawingObject);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n cloneObject[\"\" + prop] = obj[\"\" + prop];\n }\n if (getObjectType(this.diagram.drawingObject) === Node || (getObjectType(this.diagram.drawingObject) === Connector && this.diagram.drawingObject.type === 'Freehand' && obj.type !== 'Bezier')) {\n newObj = new Node(this.diagram, 'nodes', cloneObject, true);\n newObj.id = (this.diagram.drawingObject.id || 'node') + randomId();\n }\n else {\n newObj = new Connector(this.diagram, 'connectors', cloneObject, true);\n if (isBlazor() && !this.diagram.drawingObject) {\n newObj.type === 'Orthogonal';\n }\n newObj.id = (this.diagram.drawingObject ? (this.diagram.drawingObject.id ? this.diagram.drawingObject.id : 'connector')\n : 'connector') + randomId();\n }\n if (isBlazor()) {\n updateDefaultValues(newObj, cloneObject, (getObjectType(this.diagram.drawingObject) === Node) ? this.diagram.nodeDefaults : this.diagram.connectorDefaults);\n }\n this.diagram.initObject(newObj);\n this.diagram.updateDiagramObject(newObj);\n this.diagram.currentDrawingObject = newObj;\n if (isBlazor()) {\n this.diagram.protectPropertyChange(oldProtectPropertyChangeValue);\n }\n return newObj;\n };\n /**\n * addObjectToDiagram method\\\n *\n * @returns { void } addObjectToDiagram method .\\\n * @param {Node | Connector} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.addObjectToDiagram = function (obj) {\n //let newObj: Node | Connector;\n this.diagram.removeFromAQuad(obj);\n this.diagram.removeObjectsFromLayer(this.diagram.nameTable[obj.id]);\n delete this.diagram.nameTable[obj.id];\n //EJ2-62652 - Added below code to empty the segment collection if connector type is bezier\n if (obj instanceof Connector && obj.type === 'Bezier' && obj.segments.length > 0\n && (this.diagram.drawingObject && this.diagram.drawingObject.type === 'Bezier')) {\n obj.segments = [];\n }\n var newObj = this.diagram.add(obj);\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n this.selectObjects([newObj]);\n if (obj && (!(canContinuousDraw(this.diagram)))) {\n this.diagram.tool &= ~DiagramTools.DrawOnce;\n this.diagram.currentDrawingObject = undefined;\n }\n };\n /**\n * addObjectToDiagram method\\\n *\n * @returns { void } addObjectToDiagram method .\\\n * @param {boolean} enable - provide the objects value.\n * @private\n */\n CommandHandler.prototype.enableServerDataBinding = function (enable) {\n this.diagram.enableServerDataBinding(enable);\n };\n /**\n * addText method\\\n *\n * @returns { void } addText method .\\\n * @param {boolean} obj - provide the objects value.\n * @param {PointModel} currentPosition - provide the objects value.\n * @private\n */\n CommandHandler.prototype.addText = function (obj, currentPosition) {\n var annotation = this.diagram.findElementUnderMouse(obj, currentPosition);\n this.diagram.startTextEdit(obj, annotation instanceof TextElement ? (annotation.id).split('_')[1] : undefined);\n };\n CommandHandler.prototype.updateArgsObject = function (obj, arg1, argValue) {\n if (obj) {\n var connector = void 0;\n for (var i = 0; i < obj.length; i++) {\n connector = (getObjectType(obj[parseInt(i.toString(), 10)]) === Connector);\n if (connector) {\n // In Blazor web assembly, deserialize the object. Itb takes time. - Suganthi\n //argValue.connectors.push(cloneBlazorObject(obj[i]));\n argValue.connectorCollection.push(obj[parseInt(i.toString(), 10)].id);\n }\n else {\n //argValue.nodes.push(cloneBlazorObject(obj[i]));\n argValue.nodeCollection.push(obj[parseInt(i.toString(), 10)].id);\n }\n //connector ? argValue.connectors.push(cloneBlazorObject(obj[i])) : argValue.nodes.push(cloneBlazorObject(obj[i]));\n }\n }\n };\n CommandHandler.prototype.updateSelectionChangeEventArgs = function (arg, obj, oldValue) {\n if (isBlazor()) {\n arg = {\n cause: this.diagram.diagramActions, newValue: {}, oldValue: {},\n state: arg.state, type: arg.type, cancel: false\n };\n var argOldValue = arg.oldValue;\n var argNewValue = arg.newValue;\n argOldValue.connectors = [];\n argOldValue.nodes = [];\n argNewValue.connectors = [];\n argNewValue.nodes = [];\n argOldValue.nodeCollection = [];\n argOldValue.connectorCollection = [];\n argNewValue.nodeCollection = [];\n argNewValue.connectorCollection = [];\n this.updateArgsObject(this.getSelectedObject(), arg, argNewValue);\n this.updateArgsObject(oldValue, arg, argOldValue);\n return arg;\n }\n return arg;\n };\n /**\n * isUserHandle method\\\n *\n * @returns { boolean } isUserHandle method .\\\n * @param {PointModel} position - provide the objects value.\n * @private\n */\n CommandHandler.prototype.isUserHandle = function (position) {\n var handle = this.diagram.selectedItems;\n if (handle.wrapper && canShowCorner(handle.constraints, 'UserHandle')) {\n for (var _i = 0, _a = handle.userHandles; _i < _a.length; _i++) {\n var obj = _a[_i];\n if (obj.visible) {\n var paddedBounds = getUserHandlePosition(handle, obj, this.diagram.scroller.transform);\n if (contains(position, paddedBounds, obj.size / (2 * this.diagram.scroller.transform.scale))) {\n return true;\n }\n }\n }\n }\n return false;\n };\n /**\n * selectObjects method\\\n *\n * @returns { Promise } selectObjects method .\\\n * @param {(NodeModel | ConnectorModel)[]} obj - provide the objects value.\n * @param {boolean} multipleSelection - provide the objects value.\n * @param {(NodeModel | ConnectorModel)[]} oldValue - provide the objects value.\n * @private\n */\n CommandHandler.prototype.selectObjects = function (obj, multipleSelection, oldValue) {\n return __awaiter(this, void 0, void 0, function () {\n var arg, swimlaneNode, laneId, j, i, parentId, select, oldSelectedItems, canDoMultipleSelection, canDoSingleSelection, i, newObj, i_1, parentNode, blazorArgs, eventObj, selectedObjects, i;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n arg = {\n oldValue: oldValue ? oldValue : this.getSelectedObject(),\n newValue: obj, cause: this.diagram.diagramActions,\n state: 'Changing', type: 'Addition', cancel: false\n };\n // EJ2-57157 - Added to consider the lane header at selection change when selecting a lane.\n if (obj.length > 0 && (obj[0] && obj[0].isLane)) {\n swimlaneNode = this.diagram.getObject(obj[0].parentId);\n obj[0].shape.header = [];\n laneId = '';\n for (j = 0; j < obj.length; j++) {\n for (i = 0; i < swimlaneNode.shape.lanes.length; i++) {\n parentId = obj[0].id.split(obj[0].parentId);\n laneId = parentId[1].slice(0, -1);\n if (laneId === swimlaneNode.shape.lanes[parseInt(i.toString(), 10)].id) {\n obj[0].shape.header.push(swimlaneNode.shape.lanes[parseInt(i.toString(), 10)].header);\n }\n }\n }\n }\n this.diagram.enableServerDataBinding(false);\n select = true;\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n else {\n this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n }\n oldSelectedItems = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors));\n canDoMultipleSelection = canMultiSelect(this.diagram);\n canDoSingleSelection = canSingleSelect(this.diagram);\n if (canDoSingleSelection || canDoMultipleSelection) {\n if (!canDoMultipleSelection && ((obj.length > 1) || (multipleSelection && obj.length === 1))) {\n if (obj.length === 1) {\n this.clearSelection();\n }\n else {\n return [2 /*return*/];\n }\n }\n if (!(canDoSingleSelection || canDoMultipleSelection) && obj.length === 1\n && (!multipleSelection || !hasSelection(this.diagram))) {\n this.clearSelection();\n return [2 /*return*/];\n }\n }\n if (!!arg.cancel) return [3 /*break*/, 5];\n for (i = 0; i < obj.length; i++) {\n newObj = obj[parseInt(i.toString(), 10)];\n if (newObj) {\n select = true;\n if (!hasSelection(this.diagram)) {\n this.select(newObj, i > 0 || multipleSelection, true);\n }\n else {\n if ((i > 0 || multipleSelection) && newObj.children && !newObj.parentId) {\n for (i_1 = 0; i_1 < this.diagram.selectedItems.nodes.length; i_1++) {\n parentNode = this.diagram.nameTable[this.diagram.selectedItems.nodes[parseInt(i_1.toString(), 10)].parentId];\n if (parentNode) {\n parentNode = this.findParent(parentNode);\n if (parentNode) {\n if (newObj.id === parentNode.id) {\n this.selectGroup(newObj);\n }\n }\n }\n }\n }\n this.selectProcesses(newObj);\n select = this.selectBpmnSubProcesses(newObj);\n if (select) {\n this.select(newObj, i > 0 || multipleSelection, true);\n }\n }\n }\n }\n if (oldValue === undefined) {\n oldValue = oldSelectedItems;\n }\n arg = {\n oldValue: oldValue ? oldValue : [],\n newValue: this.getSelectedObject(),\n cause: this.diagram.diagramActions, state: 'Changed', type: 'Addition', cancel: false\n };\n this.diagram.renderSelector(multipleSelection || (obj && obj.length > 1));\n this.updateBlazorSelectorModel(oldValue);\n if (isBlazor() && this.diagram.selectionChange) {\n arg = this.updateSelectionChangeEventArgs(arg, obj, oldValue ? oldValue : []);\n this.updateBlazorSelector();\n }\n if (!!isBlazor()) return [3 /*break*/, 1];\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n return [3 /*break*/, 4];\n case 1:\n blazorArgs = void 0;\n if (!(window && window[this.blazor] && this.diagram.selectionChange)) return [3 /*break*/, 3];\n eventObj = { 'EventName': 'selectionChange', args: JSON.stringify(arg) };\n return [4 /*yield*/, window[this.blazorInterop].updateBlazorDiagramEvents(eventObj, this.diagram)];\n case 2:\n blazorArgs = _a.sent();\n _a.label = 3;\n case 3:\n // let blazorArgs: void | object = await this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n if (blazorArgs && blazorArgs.cancel) {\n selectedObjects = [];\n if (blazorArgs.oldValue.nodes.length > 0) {\n selectedObjects = blazorArgs.oldValue.nodes;\n }\n if (blazorArgs.oldValue.connectors.length > 0) {\n selectedObjects = selectedObjects.concat(blazorArgs.oldValue.connectors);\n }\n if (selectedObjects) {\n if (selectedObjects.length > 0) {\n for (i = 0; i < selectedObjects.length; i++) {\n this.select(this.diagram.nameTable[selectedObjects[parseInt(i.toString(), 10)].id], (i !== 0 && selectedObjects.length > 1) ? true : false);\n }\n }\n else {\n this.clearSelection();\n }\n }\n }\n _a.label = 4;\n case 4:\n this.diagram.enableServerDataBinding(true);\n this.updateBlazorSelector();\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * updateBlazorSelector method\\\n *\n * @returns { void } updateBlazorSelector method .\\\n * @private\n */\n CommandHandler.prototype.updateBlazorSelector = function () {\n if (isBlazor() && this.oldSelectedObjects) {\n this.newSelectedObjects = cloneSelectedObjects(this.diagram);\n var result = this.deepDiffer.map(cloneObject(this.newSelectedObjects), this.oldSelectedObjects);\n var diffValue = this.deepDiffer.frameObject({}, result);\n var diff = this.deepDiffer.removeEmptyValues(diffValue);\n diff.nodes = [];\n for (var i = 0; i < this.diagram.selectedItems.nodes.length; i++) {\n diff.nodes.push(this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].id);\n }\n diff.connectors = [];\n for (var i = 0; i < this.diagram.selectedItems.connectors.length; i++) {\n diff.connectors.push(this.diagram.selectedItems.connectors[parseInt(i.toString(), 10)].id);\n }\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n if (window && window[\"\" + blazor]) {\n var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': { selectedItems: diff } };\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this.diagram);\n }\n this.oldSelectedObjects = undefined;\n this.newSelectedObjects = undefined;\n }\n };\n /**\n * findParent method\\\n *\n * @returns { Node } findParent method .\\\n * @param {Node} node - provide the objects value.\n * @private\n */\n CommandHandler.prototype.findParent = function (node) {\n if (node.parentId) {\n node = this.diagram.nameTable[node.parentId];\n this.findParent(node);\n }\n return node;\n };\n CommandHandler.prototype.selectProcesses = function (newObj) {\n if (this.hasProcesses(newObj)) {\n var processes = (newObj).shape.activity.subProcess.processes;\n for (var i = 0; i < processes.length; i++) {\n var innerChild = this.diagram.nameTable[processes[parseInt(i.toString(), 10)]];\n if (this.hasProcesses(innerChild)) {\n this.selectObjects([innerChild], true);\n }\n this.unSelect(innerChild);\n }\n }\n };\n CommandHandler.prototype.selectGroup = function (newObj) {\n for (var j = 0; j < newObj.children.length; j++) {\n var innerChild = this.diagram.nameTable[newObj.children[parseInt(j.toString(), 10)]];\n if (innerChild.children) {\n this.selectGroup(innerChild);\n }\n this.unSelect(this.diagram.nameTable[newObj.children[parseInt(j.toString(), 10)]]);\n }\n };\n CommandHandler.prototype.selectBpmnSubProcesses = function (node) {\n var select = true;\n var parent;\n if (node.processId) {\n if (isSelected(this.diagram, this.diagram.nameTable[node.processId])) {\n select = false;\n }\n else {\n select = this.selectBpmnSubProcesses(this.diagram.nameTable[node.processId]);\n }\n }\n else if (node instanceof Connector) {\n if (node.sourceID && this.diagram.nameTable[node.sourceID] &&\n this.diagram.nameTable[node.sourceID].processId) {\n parent = this.diagram.nameTable[node.sourceID].processId;\n }\n if (node.targetID && this.diagram.nameTable[node.targetID] &&\n this.diagram.nameTable[node.targetID].processId) {\n parent = this.diagram.nameTable[node.targetID].processId;\n }\n if (parent) {\n if (isSelected(this.diagram, this.diagram.nameTable[\"\" + parent])) {\n return false;\n }\n else {\n select = this.selectBpmnSubProcesses(this.diagram.nameTable[\"\" + parent]);\n }\n }\n }\n else if (node.parentId && this.diagram.nameTable[node.parentId] &&\n this.diagram.nameTable[node.parentId].shape.type === 'UmlClassifier') {\n if (isSelected(this.diagram, this.diagram.nameTable[node.parentId])) {\n select = false;\n }\n }\n return select;\n };\n CommandHandler.prototype.hasProcesses = function (node) {\n if (node) {\n if ((node.shape.type === 'Bpmn') && node.shape.activity &&\n node.shape.activity.subProcess.processes &&\n node.shape.activity.subProcess.processes.length > 0) {\n return true;\n }\n }\n return false;\n };\n /**\n * select method\\\n *\n * @returns { void } select method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the objects value.\n * @param {boolean} multipleSelection - provide the objects value.\n * @param {boolean} preventUpdate - provide the objects value.\n * @private\n */\n CommandHandler.prototype.select = function (obj, multipleSelection, preventUpdate) {\n var hasLayer = this.getObjectLayer(obj.id);\n if ((canSelect(obj) && !(obj instanceof Selector) && !isSelected(this.diagram, obj))\n && (hasLayer && !hasLayer.lock && hasLayer.visible) && obj.wrapper.visible) {\n multipleSelection = hasSelection(this.diagram) ? multipleSelection : false;\n if (!multipleSelection) {\n this.clearSelection();\n }\n this.diagram.enableServerDataBinding(false);\n var selectorModel = this.diagram.selectedItems;\n var convert = obj;\n if (convert instanceof Node) {\n if (obj.isHeader) {\n var node = this.diagram.nameTable[obj.parentId];\n selectorModel.nodes.push(node);\n }\n else {\n selectorModel.nodes.push(obj);\n }\n }\n else {\n selectorModel.connectors.push(obj);\n }\n // EJ2-56919 - Push the newly selected objects in selectedObjects collection\n selectorModel.selectedObjects.push(obj);\n if (!multipleSelection) {\n selectorModel.init(this.diagram);\n if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) {\n var wrapper = gridSelection(this.diagram, selectorModel);\n if (wrapper) {\n selectorModel.wrapper.children[0] = wrapper;\n }\n selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.pivot = selectorModel.nodes[0].pivot;\n }\n }\n else {\n selectorModel.wrapper.rotateAngle = selectorModel.rotateAngle = 0;\n selectorModel.wrapper.children.push(obj.wrapper);\n }\n if (!preventUpdate) {\n this.diagram.renderSelector(multipleSelection);\n }\n this.diagram.enableServerDataBinding(true);\n }\n };\n CommandHandler.prototype.getObjectCollectionId = function (isNode, clearSelection) {\n var id = [];\n var i = 0;\n var selectedObject = isNode ? this.diagram.selectedItems.nodes\n : this.diagram.selectedItems.connectors;\n while (!clearSelection && i < selectedObject.length) {\n id[parseInt(i.toString(), 10)] = selectedObject[parseInt(i.toString(), 10)].id;\n i++;\n }\n return id;\n };\n CommandHandler.prototype.updateBlazorSelectorModel = function (oldItemsCollection, clearSelection) {\n var blazorInterop = 'sfBlazor';\n if (window && window[\"\" + blazorInterop]) {\n var i = 0;\n var nodes = [];\n var connectors = [];\n var oldItems = [];\n while (oldItemsCollection && i < oldItemsCollection.length) {\n oldItems[parseInt(i.toString(), 10)] = oldItemsCollection[parseInt(i.toString(), 10)].id;\n i++;\n }\n i = 0;\n nodes = this.getObjectCollectionId(true, clearSelection);\n connectors = this.getObjectCollectionId(false, clearSelection);\n var items = { nodes: nodes, connectors: connectors };\n var newItems = cloneBlazorObject(items);\n if (window[\"\" + blazorInterop].updateDiagramCollection) {\n window[\"\" + blazorInterop].updateDiagramCollection.call(this.diagram, 'selectedItems', newItems, oldItems, false, true);\n }\n }\n };\n /**\n * labelSelect method\\\n *\n * @returns { void } labelSelect method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the objects value.\n * @param {DiagramElement} textWrapper - provide the objects value.\n * @private\n */\n CommandHandler.prototype.labelSelect = function (obj, textWrapper) {\n this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n var selectorModel = (this.diagram.selectedItems);\n var isEnableServerDatabind = this.diagram.allowServerDataBinding;\n this.diagram.allowServerDataBinding = false;\n selectorModel.nodes = selectorModel.connectors = [];\n this.diagram.allowServerDataBinding = isEnableServerDatabind;\n if (obj instanceof Node) {\n selectorModel.nodes[0] = obj;\n }\n else {\n selectorModel.connectors[0] = obj;\n }\n selectorModel.annotation = (this.findTarget(textWrapper, obj));\n selectorModel.init(this.diagram);\n this.diagram.renderSelector(false);\n this.updateBlazorSelector();\n };\n /**\n * unSelect method\\\n *\n * @returns { void } unSelect method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.unSelect = function (obj) {\n var objArray = [];\n objArray.push(obj);\n var items = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors));\n var selectedObjects = items.filter(function (items) {\n return items.id !== obj.id;\n });\n var arg = {\n oldValue: items, newValue: selectedObjects, cause: this.diagram.diagramActions,\n state: 'Changing', type: 'Removal', cancel: false\n };\n if (!this.diagram.currentSymbol) {\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n }\n if (isSelected(this.diagram, obj)) {\n var selectormodel = this.diagram.selectedItems;\n var index = void 0;\n if (obj instanceof Node) {\n index = selectormodel.nodes.indexOf(obj, 0);\n selectormodel.nodes.splice(index, 1);\n }\n else {\n index = selectormodel.connectors.indexOf(obj, 0);\n selectormodel.connectors.splice(index, 1);\n }\n index = selectormodel.selectedObjects.indexOf(obj, 0);\n selectormodel.selectedObjects.splice(index, 1);\n arg = {\n oldValue: items, newValue: selectedObjects, cause: this.diagram.diagramActions,\n state: 'Changed', type: 'Removal', cancel: false\n };\n this.updateBlazorSelectorModel(objArray);\n arg = {\n oldValue: cloneBlazorObject(items), newValue: selectedObjects, cause: this.diagram.diagramActions,\n state: 'Changed', type: 'Removal', cancel: arg.cancel\n };\n if (!arg.cancel) {\n index = selectormodel.wrapper.children.indexOf(obj.wrapper, 0);\n selectormodel.wrapper.children.splice(index, 1);\n this.diagram.updateSelector();\n if (!this.diagram.currentSymbol) {\n if (isBlazor()) {\n arg = this.updateSelectionChangeEventArgs(arg, [], objArray);\n this.updateBlazorSelector();\n if (window && window[this.blazor] && this.diagram.selectionChange) {\n var eventObj = { 'EventName': 'selectionChange', args: JSON.stringify(arg) };\n window[this.blazorInterop].updateBlazorDiagramEvents(eventObj, this.diagram);\n }\n }\n else {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n }\n }\n }\n };\n /**\n * getChildElements method\\\n *\n * @returns { string[] } getChildElements method .\\\n * @param {DiagramElement[]} child - provide the objects value.\n * @private\n */\n CommandHandler.prototype.getChildElements = function (child) {\n var children = [];\n for (var i = 0; i < child.length; i++) {\n var childNode = child[parseInt(i.toString(), 10)];\n if (childNode.children && childNode.children.length > 0) {\n children.concat(this.getChildElements(childNode.children));\n }\n else {\n children.push(childNode.id);\n if (childNode instanceof TextElement) {\n children.push(childNode.id + '_text');\n }\n }\n }\n return children;\n };\n /**\n * moveSvgNode method\\\n *\n * @returns { void } moveSvgNode method .\\\n * @param {string} nodeId - provide the objects value.\n * @param {string} targetID - provide the objects value.\n * @private\n */\n CommandHandler.prototype.moveSvgNode = function (nodeId, targetID) {\n var diagramDiv = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n var backNode = getDiagramElement(nodeId + '_groupElement', this.diagram.element.id);\n diagramDiv.parentNode.insertBefore(backNode, diagramDiv);\n };\n /**\n * sendLayerBackward method\\\n *\n * @returns { void } sendLayerBackward method .\\\n * @param {string} layerName - provide the objects value.\n * @private\n */\n CommandHandler.prototype.sendLayerBackward = function (layerName) {\n var layer = this.getLayer(layerName);\n if (layer && layer.zIndex !== 0) {\n var index = layer.zIndex;\n if (this.diagram.mode === 'SVG') {\n var currentLayerObject = layer.objects;\n var targetObject = this.getLayer(this.diagram.layerZIndexTable[index - 1]).objects[0];\n if (targetObject) {\n for (var _i = 0, currentLayerObject_1 = currentLayerObject; _i < currentLayerObject_1.length; _i++) {\n var obj = currentLayerObject_1[_i];\n this.moveSvgNode(obj, targetObject);\n }\n }\n }\n var targetLayer = this.getLayer(this.diagram.layerZIndexTable[index - 1]);\n targetLayer.zIndex = targetLayer.zIndex + 1;\n layer.zIndex = layer.zIndex - 1;\n var temp = this.diagram.layerZIndexTable[parseInt(index.toString(), 10)];\n this.diagram.layerZIndexTable[parseInt(index.toString(), 10)] = this.diagram.layerZIndexTable[index - 1];\n this.diagram.layerZIndexTable[index - 1] = temp;\n if (this.diagram.mode === 'Canvas') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * bringLayerForward method\\\n *\n * @returns { void } bringLayerForward method .\\\n * @param {string} layerName - provide the objects value.\n * @private\n */\n CommandHandler.prototype.bringLayerForward = function (layerName) {\n var layer = this.getLayer(layerName);\n if (layer && layer.zIndex < this.diagram.layers.length - 1) {\n var index = layer.zIndex;\n var targetLayer = this.getLayer(this.diagram.layerZIndexTable[index + 1]);\n if (this.diagram.mode === 'SVG') {\n var currentLayerObject = layer.objects[0];\n var targetLayerObjects = targetLayer.objects;\n for (var _i = 0, targetLayerObjects_1 = targetLayerObjects; _i < targetLayerObjects_1.length; _i++) {\n var obj = targetLayerObjects_1[_i];\n if (obj) {\n this.moveSvgNode(obj, currentLayerObject);\n }\n }\n }\n targetLayer.zIndex = targetLayer.zIndex - 1;\n layer.zIndex = layer.zIndex + 1;\n var temp = this.diagram.layerZIndexTable[parseInt(index.toString(), 10)];\n this.diagram.layerZIndexTable[parseInt(index.toString(), 10)] = this.diagram.layerZIndexTable[index + 1];\n this.diagram.layerZIndexTable[index + 1] = temp;\n if (this.diagram.mode === 'Canvas') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * sendToBack method\\\n *\n * @returns { void } sendToBack method .\\\n * @param {NodeModel | ConnectorModel} object - provide the objects value.\n * @private\n */\n CommandHandler.prototype.sendToBack = function (object) {\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || object) {\n // EJ2-57772 - Added the below code to iterate all the selected nodes / connectors in the diagram and\n // perform send to back operation\n var selectedItems = this.diagram.selectedItems;\n var objects = [];\n if (object && object.id) {\n objects.push(object);\n }\n else {\n objects = objects.concat(selectedItems.nodes);\n objects = objects.concat(selectedItems.connectors);\n }\n var objectId = (object && object.id);\n for (var i = 0; i < objects.length; i++) {\n var clonedObject = cloneObject(objects[parseInt(i.toString(), 10)]);\n objectId = objects[parseInt(i.toString(), 10)].id;\n var index = this.diagram.nameTable[\"\" + objectId].zIndex;\n var layerNum = this.diagram.layers.indexOf(this.getObjectLayer(objectId));\n var zIndexTable = this.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable;\n var tempTable = JSON.parse(JSON.stringify(zIndexTable));\n var undoObject = cloneObject(this.diagram.selectedItems);\n var tempIndex = 0;\n //Checks whether the selected node is the only node in the node array.\n //Checks whether it is not a group and the nodes behind it are not it’s children.\n if (this.diagram.nodes.length !== 1 && (this.diagram.nameTable[\"\" + objectId].children === undefined ||\n this.checkObjectBehind(objectId, zIndexTable, index))) {\n var obj = this.diagram.nameTable[\"\" + objectId];\n for (var i_2 = index; i_2 > 0; i_2--) {\n if (zIndexTable[parseInt(i_2.toString(), 10)]) {\n //When there are empty records in the zindex table\n if (!zIndexTable[i_2 - 1]) {\n zIndexTable[i_2 - 1] = zIndexTable[parseInt(i_2.toString(), 10)];\n this.diagram.nameTable[zIndexTable[i_2 - 1]].zIndex = i_2;\n delete zIndexTable[parseInt(i_2.toString(), 10)];\n }\n else {\n //bringing the objects forward\n zIndexTable[parseInt(i_2.toString(), 10)] = zIndexTable[i_2 - 1];\n this.diagram.nameTable[zIndexTable[parseInt(i_2.toString(), 10)]].zIndex = i_2;\n }\n }\n }\n for (var i_3 = index; i_3 > 0; i_3--) {\n if (zIndexTable[parseInt(i_3.toString(), 10)]) {\n this.diagram.nameTable[zIndexTable[parseInt(i_3.toString(), 10)]].zIndex = i_3;\n }\n }\n if (obj.shape.type !== 'SwimLane') {\n zIndexTable[0] = this.diagram.nameTable[\"\" + objectId].id;\n this.diagram.nameTable[\"\" + objectId].zIndex = 0;\n }\n else {\n tempIndex = this.swapZIndexObjects(index, zIndexTable, objectId, tempTable);\n }\n if (this.diagram.mode === 'SVG') {\n var obj_1 = this.diagram.nameTable[\"\" + objectId];\n var i_4 = obj_1.shape.type !== 'SwimLane' ? 1 : tempIndex;\n if (i_4 !== tempIndex) {\n i_4 = (obj_1.children && obj_1.children.length > 0) ? index : 1;\n }\n var target = zIndexTable[parseInt(i_4.toString(), 10)];\n // EJ2-49326 - (CR issue fix) An exception raised when send the swimlane back to the normal node.\n while (!target && i_4 < index) {\n target = zIndexTable[++i_4];\n }\n // EJ2-46656 - CR issue fix\n target = this.resetTargetNode(objectId, target, i_4, zIndexTable);\n //EJ2-69654 - Send to back command not working when there is single node in layer\n if (target) {\n target = this.diagram.nameTable[\"\" + target].parentId ? this.checkParentExist(target) : target;\n this.moveSvgNode(objectId, target);\n }\n this.updateNativeNodeIndex(objectId);\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n var redoObject = cloneObject(this.diagram.selectedItems);\n var entry = { type: 'SendToBack', category: 'Internal', undoObject: undoObject, redoObject: redoObject };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n }\n this.triggerOrderCommand(clonedObject, objects[parseInt(i.toString(), 10)], objects[parseInt(i.toString(), 10)]);\n }\n }\n this.diagram.protectPropertyChange(false);\n if (isBlazor()) {\n this.getZIndexObjects();\n }\n };\n CommandHandler.prototype.swapZIndexObjects = function (index, zIndexTable, objectId, tempTable) {\n var tempIndex = 0;\n var childCount = 0;\n var childIndex = -1;\n var j = 1;\n // Get the swimlane's Children count\n for (var i = 0; i <= index; i++) {\n if (zIndexTable[parseInt(i.toString(), 10)] && this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].parentId === objectId) {\n // Get the swimlane's first children position from z index table\n if (childIndex === -1) {\n childIndex = i;\n }\n childCount++;\n }\n }\n // Swap the swimlane children to the top of the z index table\n for (var i = 0; i <= index; i++) {\n if (zIndexTable[parseInt(i.toString(), 10)] && j <= childCount) {\n while (!zIndexTable[parseInt(childIndex.toString(), 10)]) {\n childIndex++;\n }\n zIndexTable[parseInt(i.toString(), 10)] = zIndexTable[parseInt(childIndex.toString(), 10)];\n this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n childIndex++;\n j++;\n }\n }\n var k = 0;\n // Get the Z index from ZindexTable in the child's count position. In that position we want to put the swimlane\n for (var i = 0; i < childCount; i++) {\n while (!zIndexTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n tempIndex = this.diagram.nameTable[zIndexTable[parseInt(k.toString(), 10)]].zIndex;\n k++;\n }\n tempIndex = tempIndex + 1;\n // Check if there is a object in the z index table or not\n while (!zIndexTable[parseInt(tempIndex.toString(), 10)]) {\n ++tempIndex;\n }\n k = 0;\n // Place the swimlane at the next position of the swimlane's last children.\n zIndexTable[parseInt(tempIndex.toString(), 10)] = this.diagram.nameTable[\"\" + objectId].id;\n this.diagram.nameTable[\"\" + objectId].zIndex = tempIndex;\n tempIndex = tempIndex + 1;\n // Now swap the intersect nodes at next position of the swimlane.\n for (var i = tempIndex; i <= index; i++) {\n if (zIndexTable[parseInt(i.toString(), 10)]) {\n while (!tempTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n zIndexTable[parseInt(i.toString(), 10)] = tempTable[parseInt(k.toString(), 10)];\n this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n k++;\n }\n }\n return tempIndex;\n };\n CommandHandler.prototype.resetTargetNode = function (objectId, target, i, zIndexTable) {\n if (this.diagram.nameTable[\"\" + objectId].shape.type === 'SwimLane'\n && this.diagram.nameTable[\"\" + target].parentId !== undefined && this.diagram.nameTable[\"\" + target].parentId !== '' && this.diagram.nameTable[this.diagram.nameTable[\"\" + target].parentId].isLane) {\n i = i + 1;\n if (zIndexTable[parseInt(i.toString(), 10)]) {\n target = zIndexTable[parseInt(i.toString(), 10)];\n return target = this.resetTargetNode(objectId, target, i, zIndexTable);\n }\n else {\n return target;\n }\n }\n else {\n return target;\n }\n };\n CommandHandler.prototype.getZIndexObjects = function () {\n var element = [];\n var i;\n var j;\n for (i = 0; i < this.diagram.nodes.length; i++) {\n element.push(this.diagram.nodes[parseInt(i.toString(), 10)]);\n }\n for (j = 0; j < this.diagram.connectors.length; j++) {\n element.push(this.diagram.connectors[parseInt(j.toString(), 10)]);\n }\n this.updateBlazorZIndex(element);\n };\n CommandHandler.prototype.updateBlazorZIndex = function (element) {\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n var diagramobject = {};\n var nodeObject = [];\n var connectorObject = [];\n var k;\n if (element && element.length > 0) {\n for (k = 0; k < element.length; k++) {\n var elementObject = element[parseInt(k.toString(), 10)];\n if (elementObject instanceof Node) {\n nodeObject.push(this.getBlazorObject(elementObject));\n }\n else if (elementObject instanceof Connector) {\n connectorObject.push(this.getBlazorObject(elementObject));\n }\n }\n }\n diagramobject = {\n nodes: nodeObject,\n connectors: connectorObject\n };\n if (window && window[\"\" + blazor]) {\n var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramobject };\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this.diagram);\n }\n };\n CommandHandler.prototype.getBlazorObject = function (objectName) {\n var object = {\n sfIndex: getIndex(this.diagram, objectName.id),\n zIndex: objectName.zIndex\n };\n return object;\n };\n //Checks whether the target is a child node.\n CommandHandler.prototype.checkParentExist = function (target) {\n var objBehind = target;\n while (this.diagram.nameTable[\"\" + objBehind].parentId) {\n objBehind = this.diagram.nameTable[\"\" + objBehind].parentId;\n }\n return objBehind;\n };\n //Checks whether the selected node is not a parent of another node.\n CommandHandler.prototype.checkObjectBehind = function (objectId, zIndexTable, index) {\n for (var i = 0; i < index; i++) {\n var z = zIndexTable[parseInt(i.toString(), 10)];\n if (this.diagram.nameTable[\"\" + z] && objectId !== this.diagram.nameTable[\"\" + z].parentId) {\n return true;\n }\n }\n return false;\n };\n /**\n * bringToFront method\\\n *\n * @returns { void } bringToFront method .\\\n * @param {NodeModel | ConnectorModel } obj - Provide the nodeArray element .\n * @private\n */\n CommandHandler.prototype.bringToFront = function (obj) {\n var _this = this;\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || obj) {\n // EJ2-57772 - Added the below code to iterate all the selected nodes / connectors in the diagram and\n // perform bring to front operation\n var objectName_1 = (obj && obj.id);\n var selectedItems = this.diagram.selectedItems;\n var objects = [];\n if (obj && obj.id) {\n objects.push(obj);\n }\n else {\n objects = objects.concat(selectedItems.nodes);\n objects = objects.concat(selectedItems.connectors);\n }\n var _loop_1 = function (i) {\n var clonedObject = cloneObject(objects[parseInt(i.toString(), 10)]);\n objectName_1 = objects[parseInt(i.toString(), 10)].id;\n var layerNum = this_1.diagram.layers.indexOf(this_1.getObjectLayer(objectName_1));\n var zIndexTable = this_1.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable;\n var undoObject = cloneObject(this_1.diagram.selectedItems);\n var tempTable = JSON.parse(JSON.stringify(zIndexTable));\n var tempIndex = 0;\n //find the maximum zIndex of the tabel\n var tabelLength = Number(Object.keys(zIndexTable).sort(function (a, b) { return Number(a) - Number(b); }).reverse()[0]);\n var index = this_1.diagram.nameTable[\"\" + objectName_1].zIndex;\n var oldzIndexTable = [];\n var length_1 = 0;\n for (var i_5 = 0; i_5 <= tabelLength; i_5++) {\n oldzIndexTable.push(zIndexTable[parseInt(i_5.toString(), 10)]);\n }\n var object = this_1.diagram.nameTable[\"\" + objectName_1];\n if (object.shape.type === 'SwimLane') {\n for (var i_6 = tabelLength; i_6 >= index; i_6--) {\n if (zIndexTable[parseInt(i_6.toString(), 10)] && !(this_1.diagram.nameTable[zIndexTable[parseInt(i_6.toString(), 10)]].parentId === objectName_1)) {\n length_1 = i_6;\n tabelLength = length_1;\n break;\n }\n }\n }\n for (var i_7 = index; i_7 < tabelLength; i_7++) {\n //When there are empty records in the zindex table\n if (zIndexTable[parseInt(i_7.toString(), 10)]) {\n if (!zIndexTable[i_7 + 1]) {\n zIndexTable[i_7 + 1] = zIndexTable[parseInt(i_7.toString(), 10)];\n this_1.diagram.nameTable[zIndexTable[i_7 + 1]].zIndex = i_7;\n delete zIndexTable[parseInt(i_7.toString(), 10)];\n }\n else {\n //bringing the objects backward\n zIndexTable[parseInt(i_7.toString(), 10)] = zIndexTable[i_7 + 1];\n this_1.diagram.nameTable[zIndexTable[parseInt(i_7.toString(), 10)]].zIndex = i_7;\n }\n }\n }\n for (var i_8 = index; i_8 < tabelLength; i_8++) {\n if (zIndexTable[parseInt(i_8.toString(), 10)]) {\n this_1.diagram.nameTable[zIndexTable[parseInt(i_8.toString(), 10)]].zIndex = i_8;\n }\n }\n if (object.shape.type !== 'SwimLane') {\n zIndexTable[parseInt(tabelLength.toString(), 10)] = this_1.diagram.nameTable[\"\" + objectName_1].id;\n this_1.diagram.nameTable[\"\" + objectName_1].zIndex = tabelLength;\n }\n else {\n var childCount = 0;\n var childIndex = -1;\n var tempIndex_1 = 0;\n var laneIndex = 0;\n var cloneTable = JSON.parse(JSON.stringify(zIndexTable));\n for (var i_9 = 0; i_9 <= index; i_9++) {\n if (zIndexTable[parseInt(i_9.toString(), 10)] && this_1.diagram.nameTable[zIndexTable[parseInt(i_9.toString(), 10)]].parentId === objectName_1) {\n if (childIndex === -1) {\n childIndex = i_9;\n tempIndex_1 = i_9;\n break;\n }\n }\n }\n for (var i_10 = 0; i_10 <= tabelLength; i_10++) {\n if (tempTable[parseInt(i_10.toString(), 10)] && tempTable[parseInt(i_10.toString(), 10)] !== objectName_1 && this_1.diagram.nameTable[tempTable[parseInt(i_10.toString(), 10)]].parentId !== objectName_1) {\n var node = this_1.diagram.nameTable[tempTable[parseInt(i_10.toString(), 10)]];\n var swimlaneObject = this_1.diagram.nameTable[\"\" + objectName_1];\n if (node.zIndex >= swimlaneObject.zIndex) {\n childCount++;\n }\n }\n }\n var k = childIndex;\n for (var i_11 = 0; i_11 <= childCount; i_11++) {\n while (!zIndexTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n laneIndex = this_1.diagram.nameTable[zIndexTable[parseInt(k.toString(), 10)]].zIndex;\n k++;\n }\n for (var i_12 = laneIndex; i_12 <= tabelLength; i_12++) {\n while (!cloneTable[parseInt(childIndex.toString(), 10)]) {\n childIndex++;\n }\n while (!zIndexTable[parseInt(i_12.toString(), 10)]) {\n i_12++;\n }\n zIndexTable[parseInt(i_12.toString(), 10)] = cloneTable[parseInt(childIndex.toString(), 10)];\n this_1.diagram.nameTable[zIndexTable[parseInt(i_12.toString(), 10)]].zIndex = i_12;\n childIndex++;\n }\n zIndexTable[parseInt(tabelLength.toString(), 10)] = this_1.diagram.nameTable[\"\" + objectName_1].id;\n this_1.diagram.nameTable[\"\" + objectName_1].zIndex = tabelLength;\n k = index + 1;\n var j = tempIndex_1;\n for (var i_13 = 0; i_13 < childCount; i_13++) {\n while (!tempTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n while (this_1.diagram.nameTable[tempTable[parseInt(k.toString(), 10)]].parentId === objectName_1) {\n k++;\n }\n while (!zIndexTable[parseInt(j.toString(), 10)]) {\n j++;\n }\n zIndexTable[parseInt(j.toString(), 10)] = tempTable[parseInt(k.toString(), 10)];\n this_1.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j;\n k++;\n j++;\n }\n }\n if (this_1.diagram.mode === 'SVG') {\n var diagramLayer = this_1.diagram.diagramLayer;\n //const child: string[] = this.getChildElements(this.diagram.nameTable[objectName].wrapper.children);\n //const targerNodes: Object = [];\n var element = getDiagramElement(objectName_1 + '_groupElement', this_1.diagram.element.id);\n var nodes = this_1.diagram.selectedItems.nodes;\n if (nodes.length > 0 && (nodes[0].shape.type === 'Native' || nodes[0].shape.type === 'HTML')) {\n element.parentNode.removeChild(element);\n for (var j = 0; j < this_1.diagram.views.length; j++) {\n element = getDiagramElement(objectName_1 + (nodes[0].shape.type === 'HTML' ? '_html_element' : '_content_groupElement'), this_1.diagram.views[parseInt(j.toString(), 10)]);\n var lastChildNode = element.parentNode.lastChild;\n lastChildNode.parentNode.insertBefore(element, lastChildNode.nextSibling);\n }\n var htmlLayer = getHTMLLayer(this_1.diagram.element.id);\n this_1.diagram.diagramRenderer.renderElement(this_1.diagram.nameTable[\"\" + objectName_1].wrapper, diagramLayer, htmlLayer);\n }\n else {\n Object.keys(zIndexTable).forEach(function (key) {\n var zIndexValue = zIndexTable[\"\" + key];\n if ((zIndexValue !== objectName_1) && (_this.diagram.nameTable[\"\" + zIndexValue].parentId) !== objectName_1) {\n //EJ2-42101 - SendToBack and BringToFront not working for connector with group node\n //Added @Dheepshiva to restrict the objects with lower zIndex\n if (zIndexValue !== undefined &&\n (oldzIndexTable.indexOf(objectName_1) < oldzIndexTable.indexOf(zIndexValue))) {\n var objectNode = _this.diagram.nameTable[\"\" + objectName_1];\n var zIndexNode = _this.diagram.nameTable[\"\" + zIndexValue];\n if (objectNode.parentId === '' && zIndexNode.parentId === '' && zIndexNode.parentId === undefined\n && objectNode.parentId !== zIndexNode.id) {\n _this.moveSvgNode(zIndexValue, objectName_1);\n _this.updateNativeNodeIndex(objectName_1);\n }\n else {\n if (_this.checkGroupNode(objectName_1, zIndexValue, _this.diagram.nameTable)) {\n _this.moveSvgNode(zIndexValue, objectName_1);\n _this.updateNativeNodeIndex(objectName_1);\n }\n }\n }\n }\n });\n }\n }\n else {\n this_1.diagram.refreshCanvasLayers();\n }\n var redoObject = cloneObject(this_1.diagram.selectedItems);\n var entry = { type: 'BringToFront', category: 'Internal', undoObject: undoObject, redoObject: redoObject };\n if (!(this_1.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this_1.addHistoryEntry(entry);\n }\n this_1.triggerOrderCommand(clonedObject, objects[parseInt(i.toString(), 10)], objects[parseInt(i.toString(), 10)]);\n };\n var this_1 = this;\n for (var i = 0; i < objects.length; i++) {\n _loop_1(i);\n }\n }\n this.diagram.protectPropertyChange(false);\n if (isBlazor()) {\n this.getZIndexObjects();\n }\n };\n CommandHandler.prototype.triggerOrderCommand = function (oldObj, newObj, obj) {\n var clonedObject = cloneObject(oldObj);\n // EJ2-61653 - Added below code to get only changed values (zIndex) and passed as an argument to property change event\n var oldValue = {\n zIndex: clonedObject.zIndex\n };\n var newValue = {\n zIndex: newObj.zIndex\n };\n var arg = {\n element: obj, cause: this.diagram.diagramActions, diagramAction: this.diagram.getDiagramAction(this.diagram.diagramActions),\n oldValue: oldValue, newValue: newValue\n };\n this.diagram.triggerEvent(DiagramEvent.propertyChange, arg);\n };\n CommandHandler.prototype.checkGroupNode = function (selectedNodeName, layerObject, nameTable) {\n return nameTable[\"\" + layerObject].parentId === nameTable[\"\" + selectedNodeName].parentId;\n };\n /**\n * sortByZIndex method\\\n *\n * @returns { Object[] } sortByZIndex method .\\\n * @param { Object[] } nodeArray - Provide the nodeArray element .\n * @param { string } sortID - Provide the sortID element .\n * @private\n */\n CommandHandler.prototype.sortByZIndex = function (nodeArray, sortID) {\n var id = sortID ? sortID : 'zIndex';\n nodeArray = nodeArray.sort(function (a, b) {\n return a[\"\" + id] - b[\"\" + id];\n });\n return nodeArray;\n };\n /**\n * orderCommands method\\\n *\n * @returns { void } orderCommands method .\\\n * @param { boolean } isRedo - Provide the previousObject element .\n * @param { Selector } selector - Provide the previousObject element .\n * @param { EntryType } action - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.orderCommands = function (isRedo, selector, action) {\n var selectedObject = selector.nodes;\n selectedObject = selectedObject.concat(selector.connectors);\n if (isRedo) {\n if (action === 'SendBackward') {\n this.sendBackward(selectedObject[0]);\n }\n else if (action === 'SendForward') {\n this.sendForward(selectedObject[0]);\n }\n else if (action === 'BringToFront') {\n this.bringToFront(selectedObject[0]);\n }\n else if (action === 'SendToBack') {\n this.sendToBack(selectedObject[0]);\n }\n }\n else {\n var startZIndex = selectedObject[0].zIndex;\n var endZIndex = this.diagram.nameTable[selectedObject[0].id].zIndex;\n var undoObject = selectedObject[0];\n var layer = this.getObjectLayer(undoObject.id);\n var layerIndex = layer.zIndex;\n var zIndexTable = layer.zIndexTable;\n if (action === 'SendBackward' || action === 'SendForward') {\n for (var i = 0; i < selectedObject.length; i++) {\n var undoObject_1 = selectedObject[parseInt(i.toString(), 10)];\n var layer_2 = this.diagram.layers.indexOf(this.getObjectLayer(undoObject_1.id));\n var node = this.diagram.nameTable[selectedObject[parseInt(i.toString(), 10)].id];\n node.zIndex = undoObject_1.zIndex;\n this.diagram.layers[parseInt(layer_2.toString(), 10)].zIndexTable[undoObject_1.zIndex] = undoObject_1.id;\n }\n }\n else if (action === 'BringToFront') {\n if (selectedObject[0].shape.type === 'SwimLane') {\n this.sendToBack(selectedObject[0]);\n }\n else {\n var k = 1;\n for (var j = endZIndex; j > startZIndex; j--) {\n if (zIndexTable[parseInt(j.toString(), 10)]) {\n if (!zIndexTable[j - k]) {\n zIndexTable[j - k] = zIndexTable[parseInt(j.toString(), 10)];\n this.diagram.nameTable[zIndexTable[j - k]].zIndex = j;\n delete zIndexTable[parseInt(j.toString(), 10)];\n }\n else {\n zIndexTable[parseInt(j.toString(), 10)] = zIndexTable[j - k];\n this.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j;\n }\n }\n }\n }\n }\n else if (action === 'SendToBack') {\n if (selectedObject[0].shape.type === 'SwimLane') {\n this.bringToFront(selectedObject[0]);\n }\n else {\n for (var j = endZIndex; j < startZIndex; j++) {\n if (zIndexTable[parseInt(j.toString(), 10)]) {\n if (!zIndexTable[j + 1]) {\n zIndexTable[j + 1] = zIndexTable[parseInt(j.toString(), 10)];\n this.diagram.nameTable[zIndexTable[j + 1]].zIndex = j;\n delete zIndexTable[parseInt(j.toString(), 10)];\n }\n else {\n zIndexTable[parseInt(j.toString(), 10)] = zIndexTable[j + 1];\n this.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j;\n }\n }\n }\n }\n }\n if (action === 'BringToFront' || action === 'SendToBack') {\n var node = this.diagram.nameTable[selectedObject[0].id];\n node.zIndex = undoObject.zIndex;\n this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable[undoObject.zIndex] = undoObject.id;\n }\n if (this.diagram.mode === 'SVG') {\n if (action === 'SendBackward') {\n this.moveObject(selectedObject[1].id, selectedObject[0].id);\n }\n else if (action === 'SendForward') {\n this.moveObject(selectedObject[0].id, selectedObject[1].id);\n }\n else if (action === 'BringToFront') {\n if (selectedObject[0].shape.type !== 'SwimLane') {\n this.moveObject(selectedObject[0].id, zIndexTable[selectedObject[0].zIndex + 1]);\n }\n }\n else if (action === 'SendToBack') {\n if (selectedObject[0].shape.type !== 'SwimLane') {\n var layer_3 = this.getObjectLayer(selectedObject[0].id);\n for (var i = 0; i <= selectedObject[0].zIndex; i++) {\n if (layer_3.objects[parseInt(i.toString(), 10)] !== selectedObject[0].id) {\n this.moveSvgNode(layer_3.objects[parseInt(i.toString(), 10)], selectedObject[0].id);\n this.updateNativeNodeIndex(selectedObject[0].id);\n }\n }\n }\n }\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n }\n };\n CommandHandler.prototype.moveObject = function (sourceId, targetId) {\n if (targetId) {\n this.moveSvgNode(sourceId, targetId);\n this.updateNativeNodeIndex(sourceId, targetId);\n }\n };\n /**\n * sendForward method\\\n *\n * @returns { void } sendForward method .\\\n * @param { NodeModel | ConnectorModel } obj - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.sendForward = function (obj) {\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || obj) {\n var elements = obj || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0]\n : this.diagram.selectedItems.connectors[0]);\n var clonedObjects = cloneObject(elements);\n var nodeId = (obj && obj.id);\n nodeId = nodeId || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0].id\n : this.diagram.selectedItems.connectors[0].id);\n var layerIndex = this.diagram.layers.indexOf(this.getObjectLayer(nodeId));\n var zIndexTable = this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable;\n //const tabelLength: number = Object.keys(zIndexTable).length;\n var index = this.diagram.nameTable[\"\" + nodeId];\n var intersectArray = [];\n var temp = this.diagram.spatialSearch.findObjects(index.wrapper.bounds);\n if (temp.length > 2) {\n temp = this.sortByZIndex(temp);\n }\n for (var _i = 0, temp_1 = temp; _i < temp_1.length; _i++) {\n var i = temp_1[_i];\n if (index.id !== i.id) {\n var currentLayer = this.getObjectLayer(i.id).zIndex;\n if (layerIndex === currentLayer && (Number(this.diagram.nameTable[\"\" + nodeId].zIndex) < Number(i.zIndex)) &&\n index.wrapper.bounds.intersects(i.wrapper.bounds)) {\n intersectArray.push(i);\n break;\n }\n }\n }\n if (intersectArray.length > 0) {\n var node = this.diagram.nameTable[zIndexTable[Number(intersectArray[0].zIndex)]];\n if (node.parentId) {\n var parentId = '';\n var parent_1 = findParentInSwimlane(node, this.diagram, parentId);\n var obj_2 = this.diagram.nameTable[\"\" + parent_1];\n if (obj_2.id !== nodeId) {\n intersectArray[0] = obj_2;\n }\n }\n var overlapObject = intersectArray[0].zIndex;\n var currentObject = index.zIndex;\n var temp_2 = zIndexTable[parseInt(overlapObject.toString(), 10)];\n //swap the nodes\n var undoObject = cloneObject(this.diagram.selectedItems);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (this.diagram.nameTable[\"\" + temp_2] instanceof Node) ? undoObject.nodes.push(cloneObject(this.diagram.nameTable[\"\" + temp_2])) :\n undoObject.connectors.push(cloneObject(this.diagram.nameTable[\"\" + temp_2]));\n this.diagram.layers[0].zIndexTable[parseInt(overlapObject.toString(), 10)] = index.id;\n this.diagram.nameTable[zIndexTable[parseInt(overlapObject.toString(), 10)]].zIndex = overlapObject;\n this.diagram.layers[0].zIndexTable[parseInt(currentObject.toString(), 10)] = intersectArray[0].id;\n this.diagram.nameTable[zIndexTable[parseInt(currentObject.toString(), 10)]].zIndex = currentObject;\n if (this.diagram.mode === 'SVG') {\n this.moveSvgNode(zIndexTable[Number(intersectArray[0].zIndex)], nodeId);\n this.updateNativeNodeIndex(zIndexTable[Number(intersectArray[0].zIndex)], nodeId);\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n var redo = cloneObject(this.diagram.selectedItems);\n // eslint-disable-next-line\n (this.diagram.nameTable[temp_2] instanceof Node) ? redo.nodes.push(cloneObject(this.diagram.nameTable[temp_2])) :\n redo.connectors.push(cloneObject(this.diagram.nameTable[\"\" + temp_2]));\n var historyEntry = {\n type: 'SendForward', category: 'Internal',\n undoObject: undoObject, redoObject: redo\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(historyEntry);\n }\n }\n if (isBlazor()) {\n var elements_1 = [];\n elements_1.push(index);\n elements_1.push(intersectArray[intersectArray.length - 1]);\n this.updateBlazorZIndex(elements_1);\n }\n this.triggerOrderCommand(clonedObjects, elements, elements);\n }\n this.diagram.protectPropertyChange(false);\n };\n /**\n * sendBackward method\\\n *\n * @returns { void } sendBackward method .\\\n * @param { NodeModel | ConnectorModel } obj - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.sendBackward = function (obj) {\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || obj) {\n var element = obj || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0]\n : this.diagram.selectedItems.connectors[0]);\n var clonedObject = cloneObject(element);\n var objectId = (obj && obj.id);\n objectId = objectId || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0].id\n : this.diagram.selectedItems.connectors[0].id);\n var layerNum = this.diagram.layers.indexOf(this.getObjectLayer(objectId));\n var zIndexTable = this.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable;\n //const tabelLength: number = Object.keys(zIndexTable).length;\n var node = this.diagram.nameTable[\"\" + objectId];\n var intersectArray = [];\n var temp = this.diagram.spatialSearch.findObjects(node.wrapper.bounds);\n if (temp.length > 2) {\n temp = this.sortByZIndex(temp);\n }\n for (var _i = 0, temp_3 = temp; _i < temp_3.length; _i++) {\n var i = temp_3[_i];\n if (node.id !== i.id) {\n var currentLayer = this.getObjectLayer(i.id).zIndex;\n if (layerNum === currentLayer && (Number(this.diagram.nameTable[\"\" + objectId].zIndex) > Number(i.zIndex)) &&\n node.wrapper.bounds.intersects(i.wrapper.bounds)) {\n intersectArray.push(i);\n }\n }\n }\n for (var i = intersectArray.length - 1; i >= 0; i--) {\n var child = this.diagram.nameTable[intersectArray[parseInt(i.toString(), 10)].id];\n if (child.parentId === objectId) {\n intersectArray.splice(i, 1);\n }\n }\n if (intersectArray.length > 0) {\n var child = this.diagram.nameTable[intersectArray[intersectArray.length - 1].id];\n if (child.parentId) {\n var parentId = '';\n var parent_2 = findParentInSwimlane(child, this.diagram, parentId);\n var obj_3 = this.diagram.nameTable[\"\" + parent_2];\n if (objectId !== obj_3.id) {\n intersectArray[intersectArray.length - 1] = obj_3;\n }\n }\n var overlapObject = intersectArray[intersectArray.length - 1].zIndex;\n var currentObject = node.zIndex;\n var temp_4 = zIndexTable[parseInt(overlapObject.toString(), 10)];\n var undoObject = cloneObject(this.diagram.selectedItems);\n // eslint-disable-next-line\n (this.diagram.nameTable[\"\" + temp_4] instanceof Node) ? undoObject.nodes.push(cloneObject(this.diagram.nameTable[\"\" + temp_4])) :\n undoObject.connectors.push(cloneObject(this.diagram.nameTable[\"\" + temp_4]));\n //swap the nodes\n zIndexTable[parseInt(overlapObject.toString(), 10)] = node.id;\n this.diagram.nameTable[zIndexTable[parseInt(overlapObject.toString(), 10)]].zIndex = overlapObject;\n zIndexTable[parseInt(currentObject.toString(), 10)] = intersectArray[intersectArray.length - 1].id;\n this.diagram.nameTable[zIndexTable[parseInt(currentObject.toString(), 10)]].zIndex = currentObject;\n if (this.diagram.mode === 'SVG') {\n this.moveSvgNode(objectId, zIndexTable[intersectArray[intersectArray.length - 1].zIndex]);\n var node_2 = this.diagram.nameTable[zIndexTable[intersectArray[intersectArray.length - 1].zIndex]];\n if (node_2.children && node_2.children.length > 0) {\n this.updateNativeNodeIndex(objectId);\n }\n else {\n this.updateNativeNodeIndex(objectId, zIndexTable[intersectArray[intersectArray.length - 1].zIndex]);\n }\n if (isBlazor()) {\n var elements = [];\n elements.push(node_2);\n elements.push(intersectArray[intersectArray.length - 1]);\n this.updateBlazorZIndex(elements);\n }\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n var redoObject = cloneObject(this.diagram.selectedItems);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (this.diagram.nameTable[\"\" + temp_4] instanceof Node) ? redoObject.nodes.push(cloneObject(this.diagram.nameTable[\"\" + temp_4])) :\n redoObject.connectors.push(cloneObject(this.diagram.nameTable[\"\" + temp_4]));\n var entry = { type: 'SendBackward', category: 'Internal', undoObject: undoObject, redoObject: redoObject };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n //swap the nodes\n }\n this.triggerOrderCommand(clonedObject, element, element);\n }\n this.diagram.protectPropertyChange(false);\n };\n /**\n * updateNativeNodeIndex method\\\n *\n * @returns { void } updateNativeNodeIndex method .\\\n * @param { string } nodeId - Provide the previousObject element .\n * @param { string } targetID - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.updateNativeNodeIndex = function (nodeId, targetID) {\n var node = this.diagram.selectedItems.nodes[0] || this.diagram.getObject(targetID);\n for (var i = 0; i < this.diagram.views.length; i++) {\n if (node && (node.shape.type === 'HTML'\n || node.shape.type === 'Native')) {\n var id = node.shape.type === 'HTML' ? '_html_element' : '_content_groupElement';\n var backNode = getDiagramElement(nodeId + id, this.diagram.views[parseInt(i.toString(), 10)]);\n var diagramDiv = targetID ? getDiagramElement(targetID + id, this.diagram.views[parseInt(i.toString(), 10)])\n : backNode.parentElement.firstChild;\n if (backNode && diagramDiv) {\n if (backNode.parentNode.id === diagramDiv.parentNode.id) {\n diagramDiv.parentNode.insertBefore(backNode, diagramDiv);\n }\n }\n }\n }\n };\n /**\n * initSelectorWrapper method\\\n *\n * @returns { void } initSelectorWrapper method .\\\n * @private\n */\n CommandHandler.prototype.initSelectorWrapper = function () {\n var selectorModel = this.diagram.selectedItems;\n selectorModel.init(this.diagram);\n if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) {\n selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.pivot = selectorModel.nodes[0].pivot;\n }\n };\n /**\n * doRubberBandSelection method\\\n *\n * @returns { void } doRubberBandSelection method .\\\n * @param { Rect } region - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.doRubberBandSelection = function (region) {\n this.clearSelectionRectangle();\n var selArray = [];\n var rubberArray = [];\n selArray = this.diagram.getNodesConnectors(selArray);\n if (this.diagram.selectedItems.rubberBandSelectionMode === 'CompleteIntersect') {\n rubberArray = completeRegion(region, selArray);\n }\n else {\n rubberArray = this.diagram.spatialSearch.findObjects(region);\n }\n if (rubberArray.length) {\n this.selectObjects(rubberArray, true);\n }\n };\n CommandHandler.prototype.clearSelectionRectangle = function () {\n var adornerSvg = getAdornerLayerSvg(this.diagram.element.id);\n var element = adornerSvg.getElementById(this.diagram.element.id + '_diagramAdorner_selected_region');\n if (element) {\n remove(element);\n }\n };\n /**\n * dragConnectorEnds method\\\n *\n * @returns { void } dragConnectorEnds method .\\\n * @param { string } endPoint - Provide the previousObject element .\n * @param { IElement } obj - Provide the previousObject element .\n * @param { PointModel } point - Provide the point element .\n * @param { BezierSegmentModel } segment - Provide the segment element .\n * @param { IElement } target - Provide the target element .\n * @param { string } targetPortId - Provide the targetPortId element .\n * @private\n */\n CommandHandler.prototype.dragConnectorEnds = function (endPoint, obj, point, segment, target, targetPortId) {\n var selectorModel;\n var connector; //let node: Node;\n var tx; //let segmentPoint: PointModel;\n var ty; //let index: number;\n var checkBezierThumb = false;\n if (obj instanceof Selector) {\n selectorModel = obj;\n connector = selectorModel.connectors[0];\n }\n else if (obj instanceof Connector && this.diagram.currentDrawingObject) {\n this.clearSelection();\n connector = this.diagram.currentDrawingObject;\n }\n if (endPoint === 'BezierSourceThumb' || endPoint === 'BezierTargetThumb') {\n checkBezierThumb = true;\n connector.isBezierEditing = true;\n }\n if (endPoint === 'ConnectorSourceEnd' || endPoint === 'BezierSourceThumb') {\n tx = point.x - (checkBezierThumb ? segment.bezierPoint1.x : connector.sourcePoint.x);\n ty = point.y - (checkBezierThumb ? segment.bezierPoint1.y : connector.sourcePoint.y);\n return this.dragSourceEnd(connector, tx, ty, null, point, endPoint, undefined, target, targetPortId, undefined, segment);\n }\n else {\n tx = point.x - (checkBezierThumb ? segment.bezierPoint2.x : connector.targetPoint.x);\n ty = point.y - (checkBezierThumb ? segment.bezierPoint2.y : connector.targetPoint.y);\n return this.dragTargetEnd(connector, tx, ty, null, point, endPoint, undefined, segment);\n }\n };\n /**\n * getSelectedObject method\\\n *\n * @returns { void } getSelectedObject method .\\\n * @private\n */\n CommandHandler.prototype.getSelectedObject = function () {\n var selectormodel = this.diagram.selectedItems;\n return (selectormodel.nodes).concat(selectormodel.connectors);\n };\n /**\n * updateBlazorProperties method\\\n *\n * @returns { void } updateBlazorProperties method .\\\n * @param { boolean } isObjectInteraction - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.updateBlazorProperties = function (isObjectInteraction) {\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n if (!isObjectInteraction) {\n if (window && window[\"\" + blazor]) {\n var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': this.diagramObject };\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this.diagram);\n }\n }\n else {\n if (window && window[\"\" + blazor] && JSON.stringify(this.deepDiffer.diagramObject) !== '{}') {\n var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': this.deepDiffer.diagramObject };\n if (!this.diagram.isLoading) {\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this.diagram);\n }\n }\n }\n //this.diagram.enableServerDataBinding(true);\n this.deepDiffer.newNodeObject = [];\n this.deepDiffer.newConnectorObject = [];\n this.diagramObject = [];\n this.diagram.oldNodeObjects = [];\n this.diagram.oldConnectorObjects = [];\n };\n /**\n * enableCloneObject method\\\n *\n * @returns { void } enableCloneObject method .\\\n * @param { boolean } value - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.enableCloneObject = function (value) {\n if ((!this.diagram.lineRoutingModule || !(this.diagram.constraints & DiagramConstraints.LineRouting))) {\n this.diagram.canEnableBlazorObject = value;\n }\n };\n /**\n * ismouseEvents method\\\n *\n * @returns { void } ismouseEvents method .\\\n * @param { boolean } value - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.ismouseEvents = function (value) {\n if (value) {\n this.diagram.blazorActions = this.diagram.addConstraints(this.diagram.blazorActions, BlazorAction.interaction);\n }\n else {\n this.diagram.blazorActions = this.diagram.removeConstraints(this.diagram.blazorActions, BlazorAction.interaction);\n }\n };\n /**\n * updateLayerObject method\\\n *\n * @returns { void } updateLayerObject method .\\\n * @param { object } oldDiagram - Provide the previousObject element .\n * @param { boolean } temp - Provide the temp element .\n * @private\n */\n CommandHandler.prototype.updateLayerObject = function (oldDiagram, temp) {\n if (isBlazor()) {\n var diffLayers = {};\n diffLayers = this.deepDiffer.getLayerObject(oldDiagram, temp, this.diagram);\n this.diagramObject = diffLayers;\n this.updateBlazorProperties();\n }\n };\n /* tslint:enable:no-string-literal */\n /**\n * getDiagramOldValues method\\\n *\n * @returns { void } getDiagramOldValues method .\\\n * @param { object } oldDiagram - Provide the previousObject element .\n * @param { string[] } attribute - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.getDiagramOldValues = function (oldDiagram, attribute) {\n var newDiagram = {};\n for (var i = 0; i < attribute.length; i++) {\n newDiagram[attribute[parseInt(i.toString(), 10)]] = cloneObject(this.diagram[attribute[parseInt(i.toString(), 10)]]);\n }\n var newObject = cloneObject(newDiagram);\n var result = this.deepDiffer.map(newObject, oldDiagram);\n var diffValue = this.deepDiffer.frameObject({}, result);\n var diff = this.deepDiffer.removeEmptyValues(diffValue);\n diff = this.deepDiffer.changeSegments(diff, newObject);\n this.diagramObject = diff;\n if (!(this.diagram.blazorActions & BlazorAction.ClearObject)) {\n this.updateBlazorProperties();\n }\n };\n /* tslint:disable */\n /**\n * getBlazorOldValues method\\\n *\n * @returns { void } getBlazorOldValues method .\\\n * @param { MouseEventArgs } args - Provide the previousObject element .\n * @param { boolean } labelDrag - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.getBlazorOldValues = function (args, labelDrag) {\n if (isBlazor()) {\n var oldNodeObject = this.diagram.oldNodeObjects;\n for (var i = 0; i < oldNodeObject.length; i++) {\n if (oldNodeObject[parseInt(i.toString(), 10)].id) {\n if (this.diagram.oldNodeObjects[parseInt(i.toString(), 10)] instanceof Node) {\n this.diagram.oldNodeObjects[parseInt(i.toString(), 10)] = cloneBlazorObject(this.diagram.oldNodeObjects[parseInt(i.toString(), 10)]);\n }\n this.deepDiffer.getDifferenceValues(this.diagram.nameTable[oldNodeObject[parseInt(i.toString(), 10)].id], args, labelDrag, this.diagram);\n }\n }\n var oldConnectorObject = this.diagram.oldConnectorObjects;\n for (var i = 0; i < oldConnectorObject.length; i++) {\n if (oldConnectorObject[parseInt(i.toString(), 10)].id) {\n if (this.diagram.oldConnectorObjects[parseInt(i.toString(), 10)] instanceof Connector) {\n this.diagram.oldConnectorObjects[parseInt(i.toString(), 10)] = cloneBlazorObject(this.diagram.oldConnectorObjects[parseInt(i.toString(), 10)]);\n }\n this.deepDiffer.getDifferenceValues(this.diagram.nameTable[oldConnectorObject[parseInt(i.toString(), 10)].id], args, labelDrag, this.diagram);\n }\n }\n if (oldNodeObject.length > 0 || oldConnectorObject.length > 0) {\n this.updateBlazorProperties(true);\n }\n }\n };\n /**\n * getObjectChanges method\\\n *\n * @returns { void } getObjectChanges method .\\\n * @param { Object[] } previousObject - Provide the previousObject element .\n * @param { Object[] } currentObject - Provide the previousObject element .\n * @param { Object[] } previousObject - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.getObjectChanges = function (previousObject, currentObject, changedNodes) {\n for (var i = 0; i < previousObject.length; i++) {\n var value = this.deepDiffer.map(currentObject[parseInt(i.toString(), 10)], previousObject[parseInt(i.toString(), 10)]);\n var result = this.deepDiffer.frameObject({}, value);\n var change = this.deepDiffer.removeEmptyValues(result);\n if (change.children) {\n change.children = cloneObject(currentObject[parseInt(i.toString(), 10)]).children;\n }\n change = this.deepDiffer.changeSegments(change, currentObject[parseInt(i.toString(), 10)]);\n change.sfIndex = getIndex(this.diagram, currentObject[parseInt(i.toString(), 10)].id);\n changedNodes.push(change);\n }\n };\n /**\n * clearObjectSelection method\\\n *\n * @returns { void } clearObjectSelection method .\\\n * @param { (NodeModel | ConnectorModel) } mouseDownElement - Provide the triggerAction element .\n * @private\n */\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n CommandHandler.prototype.clearObjectSelection = function (mouseDownElement) {\n var selectedItems = this.diagram.selectedItems;\n var list = [];\n list = list.concat(selectedItems.nodes, selectedItems.connectors);\n if (list.indexOf(mouseDownElement) === -1) {\n this.clearSelection((list.length > 0) ? true : false);\n this.selectObjects([mouseDownElement], true);\n }\n };\n /**\n * clearSelection method\\\n *\n * @returns { void } clearSelection method .\\\n * @param { boolean } triggerAction - Provide the triggerAction element .\n * @param { boolean } isTriggered - Provide the isTriggered element .\n * @private\n */\n CommandHandler.prototype.clearSelection = function (triggerAction, isTriggered) {\n return __awaiter(this, void 0, void 0, function () {\n var enableServerDataBinding, selectormodel, arrayNodes, arg, blazarArgs, eventObj, selectNodes, i;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n enableServerDataBinding = this.diagram.allowServerDataBinding;\n this.diagram.enableServerDataBinding(false);\n if (!hasSelection(this.diagram)) return [3 /*break*/, 5];\n selectormodel = this.diagram.selectedItems;\n arrayNodes = this.getSelectedObject();\n if (this.diagram.currentSymbol) {\n this.diagram.previousSelectedObject = arrayNodes;\n }\n arg = {\n oldValue: arrayNodes, newValue: [], cause: this.diagram.diagramActions,\n state: 'Changing', type: 'Removal', cancel: false\n };\n this.updateBlazorSelectorModel(arrayNodes, true);\n if (triggerAction) {\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n else {\n this.oldSelectedObjects = cloneObject(selectormodel);\n }\n }\n if (!!arg.cancel) return [3 /*break*/, 4];\n selectormodel.offsetX = 0;\n selectormodel.offsetY = 0;\n selectormodel.width = 0;\n selectormodel.height = 0;\n selectormodel.rotateAngle = 0;\n selectormodel.nodes = [];\n selectormodel.connectors = [];\n selectormodel.wrapper = null;\n selectormodel.annotation = undefined;\n // EJ2-56919 - While clear selection empty the selectedObjects collection\n selectormodel.selectedObjects = [];\n this.diagram.clearSelectorLayer();\n if (!triggerAction) return [3 /*break*/, 4];\n arg = {\n oldValue: cloneBlazorObject(arrayNodes), newValue: [], cause: this.diagram.diagramActions,\n state: 'Changed', type: 'Removal', cancel: false\n };\n if (isBlazor()) {\n arg = this.updateSelectionChangeEventArgs(arg, [], arrayNodes);\n this.updateBlazorSelector();\n }\n if (!!isBlazor()) return [3 /*break*/, 1];\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n return [3 /*break*/, 4];\n case 1:\n blazarArgs = void 0;\n if (!(window && window[this.blazor] && this.diagram.selectionChange)) return [3 /*break*/, 3];\n eventObj = { 'EventName': 'selectionChange', args: JSON.stringify(arg) };\n return [4 /*yield*/, window[this.blazorInterop].updateBlazorDiagramEvents(eventObj, this.diagram)];\n case 2:\n blazarArgs = _a.sent();\n _a.label = 3;\n case 3:\n // let blazarArgs: void | object = await this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n if (blazarArgs && blazarArgs.cancel && !isTriggered) {\n selectNodes = [];\n if (blazarArgs.oldValue.nodes.length > 0) {\n selectNodes = blazarArgs.oldValue.nodes;\n }\n if (blazarArgs.oldValue.connectors.length > 0) {\n selectNodes = selectNodes.concat(blazarArgs.oldValue.connectors);\n }\n if (selectNodes) {\n for (i = 0; i < selectNodes.length; i++) {\n this.select(this.diagram.nameTable[selectNodes[parseInt(i.toString(), 10)].id], (i !== 0 && selectNodes.length > 1) ? true : false);\n }\n }\n }\n _a.label = 4;\n case 4:\n this.updateBlazorSelector();\n this.diagram.enableServerDataBinding(enableServerDataBinding);\n _a.label = 5;\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * clearSelectedItems method\\\n *\n * @returns { void } clearSelectedItems method .\\\n * @private\n */\n CommandHandler.prototype.clearSelectedItems = function () {\n var selectedNodes = this.diagram.selectedItems.nodes ? this.diagram.selectedItems.nodes.length : 0;\n var selectedConnectors = this.diagram.selectedItems.connectors ? this.diagram.selectedItems.connectors.length : 0;\n this.clearSelection((selectedNodes + selectedConnectors) > 0 ? true : false);\n };\n /**\n * removeStackHighlighter method\\\n *\n * @returns { void } removeStackHighlighter method .\\\n * @private\n */\n CommandHandler.prototype.removeStackHighlighter = function () {\n var adornerSvg = getAdornerLayerSvg(this.diagram.element.id);\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_stack_highlighter');\n if (highlighter) {\n highlighter.parentNode.removeChild(highlighter);\n }\n };\n /**\n * @param {End} args - provide the args value.\n * @param {IElement} target - provide the target value.\n * @private\n */\n CommandHandler.prototype.renderStackHighlighter = function (args, target) {\n var source = this.diagram.selectedItems.nodes[0];\n var symbolDrag;\n var node;\n var selectorModel;\n if (!target) {\n var objects = this.diagram.findObjectsUnderMouse(args.position);\n target = this.diagram.findObjectUnderMouse(objects, 'Drag', true);\n if (target && !(target.isLane || target.isPhase || target.isHeader)) {\n for (var i = 0; i < objects.length; i++) {\n var laneNode = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id];\n if (!laneNode.isLane || laneNode.isPhase || laneNode.isHeader) {\n target = laneNode;\n this.diagram.parentObject = target;\n }\n }\n }\n }\n if (source && target && target.isLane && source.shape && !source.shape.isPhase) {\n node = this.diagram.nameTable[target.parentId];\n if (this.diagram.currentSymbol && node.shape.type === 'SwimLane') {\n symbolDrag = true;\n }\n if ((source && !source.parentId && source.shape.type !== 'SwimLane') ||\n (source && source.parentId && this.diagram.nameTable[source.parentId] && this.diagram.nameTable[source.parentId].isLane &&\n (source.parentId !== target.parentId && source.parentId !== target.id))) {\n selectorModel = this.diagram.selectedItems;\n var canvas = gridSelection(this.diagram, selectorModel, target.id, true);\n if (canvas) {\n selectorModel.wrapper.children[0] = canvas;\n }\n this.diagram.renderSelector(false, true);\n selectorModel.wrapper.children[0] = selectorModel.nodes[0].wrapper;\n }\n }\n if (source && target && target.parentId && source.shape && source.shape.isPhase) {\n var node_3 = this.diagram.nameTable[target.parentId];\n if (node_3.shape.type === 'SwimLane') {\n this.diagram.selectedItems.wrapper.children[0] = this.diagram.nameTable[target.parentId].wrapper;\n this.diagram.renderSelector(false, true);\n }\n }\n if ((symbolDrag && this.diagram.currentSymbol.shape.isLane) || (source && target &&\n source.parentId && target.parentId && !source.isPhase && (source.parentId === target.parentId)\n && (source.id !== target.id) && node &&\n (node.container && (node.container.type === 'Stack' || node.container.type === 'Grid')))) {\n var canvas = void 0;\n var value = node.container.orientation === 'Vertical';\n var isVertical = node.container === 'Stack' ? value : !value;\n if (node.container.type === 'Grid' && target.isLane &&\n ((!this.diagram.currentSymbol &&\n (node.shape.orientation === 'Horizontal' && target.rowIndex !== source.rowIndex) ||\n (node.shape.orientation === 'Vertical' && target.columnIndex !== source.columnIndex))\n || (this.diagram.currentSymbol &&\n this.diagram.currentSymbol.shape.orientation === node.container.orientation))) {\n selectorModel = this.diagram.selectedItems;\n if ((source.isLane && canLaneInterchange(source, this.diagram)) || !source.isLane) {\n canvas = gridSelection(this.diagram, selectorModel, target.id, symbolDrag);\n }\n }\n var wrapper = node.container.type === 'Stack' ? target.wrapper : canvas;\n if (wrapper) {\n renderStackHighlighter(wrapper, isVertical, args.position, this.diagram, false, true);\n }\n }\n };\n /** @private */\n CommandHandler.prototype.insertBlazorConnector = function (obj) {\n if (obj instanceof Selector) {\n for (var i = 0; i < obj.connectors.length; i++) {\n this.diagram.insertBlazorConnector(obj.connectors[parseInt(i.toString(), 10)]);\n }\n }\n else {\n this.diagram.insertBlazorConnector(obj);\n }\n };\n /** @private */\n CommandHandler.prototype.drag = function (obj, tx, ty) {\n var tempNode;\n var elements = [];\n if (canMove(obj) && this.checkBoundaryConstraints(tx, ty, obj.wrapper.bounds) && canPageEditable(this.diagram)) {\n if (obj instanceof Node) {\n var oldValues = { offsetX: obj.offsetX, offsetY: obj.offsetY };\n obj.offsetX += tx;\n obj.offsetY += ty;\n if (obj.children && !(obj.container)) {\n if (!(checkParentAsContainer(this.diagram, obj, true))) {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.isGroupDragging;\n }\n var nodes = this.getAllDescendants(obj, elements);\n for (var i = 0; i < nodes.length; i++) {\n tempNode = (this.diagram.nameTable[nodes[parseInt(i.toString(), 10)].id]);\n this.drag(tempNode, tx, ty);\n }\n this.updateInnerParentProperties(obj);\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.isGroupDragging;\n }\n if (checkParentAsContainer(this.diagram, obj, true)) {\n checkChildNodeInContainer(this.diagram, obj);\n }\n else {\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = true;\n }\n this.diagram.nodePropertyChange(obj, oldValues, { offsetX: obj.offsetX, offsetY: obj.offsetY }, undefined, undefined, false);\n obj.wrapper.measureChildren = false;\n }\n if (obj.shape.type === 'SwimLane' && !this.diagram.currentSymbol) {\n var grid = obj.wrapper.children[0];\n var connectors = getConnectors(this.diagram, grid, 0, true);\n updateConnectorsProperties(connectors, this.diagram);\n }\n }\n else {\n var connector = obj;\n var oldValues = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n var update = connector.type === 'Bezier' ? true : false;\n var hasEnds = false;\n if (!connector.sourceWrapper) {\n this.dragSourceEnd(connector, tx, ty, true, null, '', update);\n }\n else {\n hasEnds = true;\n }\n if (!connector.targetWrapper) {\n this.dragTargetEnd(connector, tx, ty, true, null, '', update);\n }\n else {\n hasEnds = true;\n }\n var canDragPoints = false;\n if (obj instanceof Connector) {\n canDragPoints = true;\n }\n if (!hasEnds || canDragPoints) {\n this.dragControlPoint(connector, tx, ty, true);\n var conn = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n this.diagram.connectorPropertyChange(connector, oldValues, conn);\n }\n }\n }\n };\n /** @private */\n CommandHandler.prototype.connectorSegmentChange = function (actualObject, existingInnerBounds, isRotate) {\n var tx;\n var ty;\n var segmentChange = true;\n if (existingInnerBounds.equals(existingInnerBounds, actualObject.wrapper.bounds) === false) {\n if (actualObject.outEdges.length > 0) {\n for (var k = 0; k < actualObject.outEdges.length; k++) {\n var connector = this.diagram.nameTable[actualObject.outEdges[parseInt(k.toString(), 10)]];\n if (connector.targetID !== '') {\n segmentChange = this.isSelected(this.diagram.nameTable[connector.targetID]) ? false : true;\n }\n else {\n segmentChange = this.isSelected(this.diagram.nameTable[connector.id]) ? false : true;\n }\n if (connector.type === 'Orthogonal' && connector.segments && connector.segments.length > 1) {\n if (!isRotate) {\n if (segmentChange) {\n switch (connector.segments[0].direction) {\n case 'Bottom':\n tx = actualObject.wrapper.bounds.bottomCenter.x - existingInnerBounds.bottomCenter.x;\n ty = actualObject.wrapper.bounds.bottomCenter.y - existingInnerBounds.bottomCenter.y;\n break;\n case 'Top':\n tx = actualObject.wrapper.bounds.topCenter.x - existingInnerBounds.topCenter.x;\n ty = actualObject.wrapper.bounds.topCenter.y - existingInnerBounds.topCenter.y;\n break;\n case 'Left':\n tx = actualObject.wrapper.bounds.middleLeft.x - existingInnerBounds.middleLeft.x;\n ty = actualObject.wrapper.bounds.middleLeft.y - existingInnerBounds.middleLeft.y;\n break;\n case 'Right':\n tx = actualObject.wrapper.bounds.middleRight.x - existingInnerBounds.middleRight.x;\n ty = actualObject.wrapper.bounds.middleRight.y - existingInnerBounds.middleRight.y;\n break;\n }\n this.dragSourceEnd(connector, tx, ty, true, null, 'ConnectorSourceEnd', undefined, undefined, undefined, (actualObject.parentId &&\n (this.diagram.diagramActions & DiagramAction.isGroupDragging)) ? false : true);\n }\n }\n else {\n var firstSegment = connector.segments[0];\n var secondSegment = connector.segments[1];\n var cornerPoints = swapBounds(actualObject.wrapper, actualObject.wrapper.corners, actualObject.wrapper.bounds);\n var sourcePoint = findPoint(cornerPoints, firstSegment.direction);\n sourcePoint = getIntersection(connector, connector.sourceWrapper, sourcePoint, { x: connector.sourceWrapper.offsetX, y: connector.sourceWrapper.offsetY }, false);\n var source = {\n corners: undefined, point: sourcePoint, margin: undefined, direction: firstSegment.direction\n };\n var target = {\n corners: undefined, point: secondSegment.points[1], margin: undefined, direction: undefined\n };\n var intermediatePoints = orthoConnection2Segment(source, target);\n firstSegment.length = Point.distancePoints(intermediatePoints[0], intermediatePoints[1]);\n if (secondSegment.direction && secondSegment.length) {\n secondSegment.length = Point.distancePoints(intermediatePoints[1], intermediatePoints[2]);\n }\n }\n }\n }\n }\n }\n };\n /** @private */\n CommandHandler.prototype.updateEndPoint = function (connector, oldChanges) {\n var conn = {\n sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint,\n sourceID: connector.sourceID ? connector.sourceID : undefined,\n targetID: connector.targetID ? connector.targetID : undefined,\n sourcePortID: connector.sourcePortID ? connector.sourcePortID : undefined,\n targetPortID: connector.targetPortID ? connector.targetPortID : undefined,\n segments: connector.segments ? connector.segments : undefined\n };\n var newValue = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n if (connector.sourceID) {\n newValue.sourceID = connector.sourceID;\n }\n if (connector.targetID) {\n newValue.targetID = connector.targetID;\n }\n if (connector.sourcePortID) {\n newValue.sourcePortID = connector.sourcePortID;\n }\n if (connector.targetPortID) {\n newValue.targetPortID = connector.targetPortID;\n }\n if (connector.segments) {\n newValue.segments = connector.segments;\n }\n this.diagram.connectorPropertyChange(connector, oldChanges ? oldChanges : {}, newValue);\n // this.diagram.refreshDiagramLayer();\n this.diagram.updateSelector();\n };\n /**\n * @param obj\n * @param tx\n * @param ty\n * @param preventUpdate\n * @param point\n * @param endPoint\n * @param update\n * @param target\n * @param targetPortId\n * @param isDragSource\n * @param segment\n * @private\n */\n CommandHandler.prototype.dragSourceEnd = function (obj, tx, ty, preventUpdate, point, endPoint, update, target, targetPortId, isDragSource, segment) {\n var connector = this.diagram.nameTable[obj.id];\n var oldChanges = {};\n var checkBoundaryConstraints = this.checkBoundaryConstraints(tx, ty, connector.wrapper.bounds);\n if (canDragSourceEnd(connector) && checkBoundaryConstraints\n && (endPoint !== 'BezierSourceThumb') && canPageEditable(this.diagram)) {\n oldChanges = { sourcePoint: connector.sourcePoint };\n oldChanges = cloneObject(oldChanges);\n connector.sourcePoint.x += tx;\n connector.sourcePoint.y += ty;\n if (endPoint === 'ConnectorSourceEnd' && connector.type === 'Orthogonal') {\n this.changeSegmentLength(connector, target, targetPortId, isDragSource);\n }\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.updatePathElementOffset(connector);\n }\n }\n if (connector.type === 'Bezier') {\n oldChanges = { sourcePoint: connector.sourcePoint };\n if (segment) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorSourceEnd' : endPoint, tx, ty, segment, point, !update);\n }\n else {\n for (var i = 0; i < obj.segments.length; i++) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorSourceEnd' : endPoint, tx, ty, obj.segments[parseInt(i.toString(), 10)], point, !update);\n }\n }\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector, oldChanges);\n }\n if (!(this.diagram.realActions & RealAction.AnimationClick)) {\n this.diagram.refreshCanvasLayers();\n }\n return checkBoundaryConstraints;\n };\n /**\n * Update Path Element offset\n */\n CommandHandler.prototype.updatePathElementOffset = function (connector) {\n connector.wrapper.children.splice(3, 1);\n var pathElement = new PathElement();\n var anglePoints = connector.intermediatePoints;\n pathElement = updatePathElement(anglePoints, connector);\n connector.wrapper.children.splice(3, 0, pathElement);\n };\n /**\n * Upadte the connector segments when change the source node\n */\n CommandHandler.prototype.changeSegmentLength = function (connector, target, targetPortId, isDragSource) {\n // EJ2-65063 - Added below code to check condition if connector segment length can be changed or not.\n // If inconnect and outconnect removed from node constraints\n var canChangeSegment = target ? this.canConnect(connector, target) : true;\n if (connector.segments && connector.segments[0].direction !== null\n && ((!target && connector.sourceID === '') || isDragSource) && canChangeSegment) {\n var first = connector.segments[0];\n var second = connector.segments[1];\n var node = this.diagram.nameTable[connector.sourceID];\n var secPoint = void 0;\n first.points[0] = connector.sourcePoint;\n if (first.direction === 'Top' || first.direction === 'Bottom') {\n first.points[first.points.length - 1].x = connector.sourcePoint.x;\n second.points[0].y = first.points[first.points.length - 1].y;\n }\n else {\n first.points[first.points.length - 1].y = connector.sourcePoint.y;\n second.points[0].x = first.points[first.points.length - 1].x;\n }\n if (first.direction && (first.length || first.length === 0)) {\n first.length = Point.distancePoints(first.points[0], first.points[first.points.length - 1]);\n }\n if (second.direction && (second.length || second.length === 0)) {\n second.length = Point.distancePoints(first.points[first.points.length - 1], second.points[second.points.length - 1]);\n second.direction = Point.direction(first.points[first.points.length - 1], second.points[second.points.length - 1]);\n }\n if (connector.sourcePortID !== '' && first.length < 10) {\n if (connector.segments.length > 2) {\n var next = connector.segments[2];\n var nextDirection = Point.direction(next.points[0], next.points[1]);\n if (first.direction === getOppositeDirection(nextDirection)) {\n if (first.direction === 'Right') {\n next.points[0].x = first.points[first.points.length - 1].x = node.wrapper.corners.middleRight.x + 20;\n }\n else if (first.direction === 'Left') {\n next.points[0].x = first.points[first.points.length - 1].x = node.wrapper.corners.middleLeft.x - 20;\n }\n else if (first.direction === 'Top') {\n next.points[0].y = first.points[first.points.length - 1].y = node.wrapper.corners.topCenter.y - 20;\n }\n else {\n next.points[0].y = first.points[first.points.length - 1].y = node.wrapper.corners.bottomCenter.y + 20;\n }\n if (next.direction && next.length) {\n next.length = Point.distancePoints(next.points[0], next.points[next.points.length - 1]);\n }\n first.length = Point.distancePoints(first.points[0], first.points[first.points.length - 1]);\n }\n else if (first.direction === nextDirection && next.direction && next.length) {\n if (first.direction === 'Top' || first.direction === 'Bottom') {\n next.points[0] = first.points[0];\n next.points[next.points.length - 1].x = next.points[0].x;\n }\n else {\n next.points[0] = first.points[0];\n next.points[next.points.length - 1].y = next.points[0].y;\n }\n next.length = Point.distancePoints(next.points[0], next.points[next.points.length - 1]);\n connector.segments.splice(0, 2);\n }\n else {\n first.length = 20;\n }\n }\n else {\n first.length = 20;\n }\n }\n else if (first.length < 1) {\n if (connector.sourceID !== '') {\n if (second.direction === 'Right') {\n secPoint = node.wrapper.corners.middleRight;\n second.points[second.points.length - 1].y = secPoint.y;\n }\n else if (second.direction === 'Left') {\n secPoint = node.wrapper.corners.middleLeft;\n second.points[second.points.length - 1].y = secPoint.y;\n }\n else if (second.direction === 'Top') {\n secPoint = node.wrapper.corners.topCenter;\n second.points[second.points.length - 1].x = secPoint.x;\n }\n else {\n secPoint = node.wrapper.corners.bottomCenter;\n second.points[second.points.length - 1].x = secPoint.x;\n }\n second.length = Point.distancePoints(secPoint, second.points[second.points.length - 1]);\n if (connector.segments.length > 2) {\n var next = connector.segments[2];\n if (next.direction && next.length) {\n next.length = Point.distancePoints(second.points[second.points.length - 1], next.points[next.points.length - 1]);\n }\n }\n connector.segments.splice(0, 1);\n }\n else {\n connector.segments.splice(0, 1);\n }\n }\n }\n else {\n if (target && !targetPortId && connector.sourceID !== target.id &&\n connector.segments && connector.segments[0].direction !== null && target && target instanceof Node && canChangeSegment) {\n this.changeSourceEndToNode(connector, target);\n }\n if (target && targetPortId && connector.sourcePortID !== targetPortId &&\n connector.segments && connector.segments[0].direction !== null && target && target instanceof Node && canChangeSegment) {\n this.changeSourceEndToPort(connector, target, targetPortId);\n }\n }\n };\n // EJ2-65063 - Added below method to check if target has inConnect or outConnect. If it does not have inconnect and outconnect means then return false\n CommandHandler.prototype.canConnect = function (connector, target) {\n if (canInConnect(target) && canOutConnect(target)) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Change the connector endPoint to port\n */\n CommandHandler.prototype.changeSourceEndToPort = function (connector, target, targetPortId) {\n var port = this.diagram.getWrapper(target.wrapper, targetPortId);\n var point = { x: port.offsetX, y: port.offsetY };\n var direction = getPortDirection(point, cornersPointsBeforeRotation(target.wrapper), target.wrapper.bounds, false);\n var firstSegment = connector.segments[0];\n var secondSegment = connector.segments[1];\n if (firstSegment.direction !== direction) {\n var segments = [];\n var segValues = {};\n if (firstSegment.direction === getOppositeDirection(direction)) {\n segValues = {};\n var segValues1 = void 0;\n if (direction === 'Top' || direction === 'Bottom') {\n segValues1 = (direction === 'Top') ? {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(firstSegment.points[0].y - point.y)\n } :\n {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(point.y - firstSegment.points[0].y)\n };\n segValues = (firstSegment.points[0].x > point.x) ?\n { type: 'Orthogonal', isTerminal: true, direction: 'Right', length: (firstSegment.points[0].x - point.x) } :\n { type: 'Orthogonal', isTerminal: true, direction: 'Left', length: (point.x - firstSegment.points[0].x) };\n }\n else {\n segValues1 = (direction === 'Right') ? {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(firstSegment.points[0].x - point.x)\n } :\n {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(point.x - firstSegment.points[0].x)\n };\n segValues = (firstSegment.points[0].y > point.y) ?\n { type: 'Orthogonal', direction: 'Top', isTerminal: true, length: (firstSegment.points[0].y - point.y) } :\n { type: 'Orthogonal', direction: 'Bottom', isTerminal: true, length: (point.y - firstSegment.points[0].y) };\n }\n segments.push(new OrthogonalSegment(connector, 'segments', segValues1, true));\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n }\n else {\n segValues = { type: 'Orthogonal', direction: direction, length: 20, isTerminal: true };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n }\n if (firstSegment.direction !== getOppositeDirection(direction)) {\n if (direction === 'Top' || direction === 'Bottom') {\n firstSegment.points[0].x = point.x;\n firstSegment.points[0].y = firstSegment.points[firstSegment.points.length - 1].y = (direction === 'Top') ?\n point.y - 20 : point.y + 20;\n }\n else {\n firstSegment.points[0].y = point.y;\n firstSegment.points[0].x = firstSegment.points[firstSegment.points.length - 1].x = (direction === 'Right') ?\n point.x + 20 : point.x - 20;\n }\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n secondSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], secondSegment.points[secondSegment.points.length - 1]);\n }\n connector.segments = segments.concat(connector.segments);\n }\n else {\n firstSegment.points[0] = point;\n if (direction === 'Top' || direction === 'Bottom') {\n firstSegment.points[firstSegment.points.length - 1].x = point.x;\n }\n else {\n firstSegment.points[firstSegment.points.length - 1].y = point.y;\n }\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n secondSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], secondSegment.points[secondSegment.points.length - 1]);\n }\n };\n /**\n * @param connector\n * @param changeTerminal\n * @private\nRemove terinal segment in initial\n */\n CommandHandler.prototype.removeTerminalSegment = function (connector, changeTerminal) {\n for (var i = 0; i < connector.segments.length - 2; i++) {\n var segment = connector.segments[0];\n if (segment.isTerminal) {\n if (changeTerminal) {\n segment.isTerminal = false;\n }\n else {\n connector.segments.splice(i, 1);\n i--;\n }\n }\n }\n };\n /**\n * Change the connector endPoint from point to node\n */\n CommandHandler.prototype.changeSourceEndToNode = function (connector, target) {\n this.removeTerminalSegment(connector);\n var sourceWrapper = target.wrapper.children[0].corners;\n var sourcePoint;\n var sourcePoint2;\n var firstSegment = connector.segments[0];\n var nextSegment = connector.segments[1];\n var segments = [];\n if (firstSegment.direction === 'Right' || firstSegment.direction === 'Left') {\n sourcePoint = (firstSegment.direction === 'Left') ? sourceWrapper.middleLeft : sourceWrapper.middleRight;\n if (firstSegment.length > sourceWrapper.width || ((firstSegment.direction === 'Left' &&\n sourcePoint.x >= firstSegment.points[0].x) || (firstSegment.direction === 'Right' &&\n sourcePoint.x <= firstSegment.points[0].x))) {\n firstSegment.points[0].y = firstSegment.points[firstSegment.points.length - 1].y = sourcePoint.y;\n firstSegment.points[0].x = sourcePoint.x;\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n nextSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], nextSegment.points[nextSegment.points.length - 1]);\n }\n else {\n var direction = void 0;\n if (nextSegment.direction) {\n direction = nextSegment.direction;\n }\n else {\n direction = Point.direction(nextSegment.points[0], nextSegment.points[nextSegment.points.length - 1]);\n }\n sourcePoint2 = (direction === 'Bottom') ? sourceWrapper.bottomCenter : sourceWrapper.topCenter;\n if (nextSegment.length && nextSegment.direction) {\n nextSegment.length =\n (direction === 'Top') ? firstSegment.points[firstSegment.points.length - 1].y - (sourcePoint2.y + 20) :\n (sourcePoint2.y + 20) - firstSegment.points[firstSegment.points.length - 1].y;\n }\n firstSegment.length = firstSegment.points[firstSegment.points.length - 1].x - sourcePoint2.x;\n firstSegment.direction = (firstSegment.length > 0) ? 'Right' : 'Left';\n var segValues = { type: 'Orthogonal', direction: direction, length: 20 };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n connector.segments = segments.concat(connector.segments);\n }\n }\n else {\n sourcePoint = (firstSegment.direction === 'Bottom') ? sourceWrapper.bottomCenter : sourceWrapper.topCenter;\n if (firstSegment.length > sourceWrapper.height || ((firstSegment.direction === 'Top' &&\n sourcePoint.y >= firstSegment.points[0].y) ||\n (firstSegment.direction === 'Bottom' && sourcePoint.y <= firstSegment.points[0].y))) {\n firstSegment.points[0].x = firstSegment.points[firstSegment.points.length - 1].x = sourcePoint.x;\n firstSegment.points[0].y = sourcePoint.y;\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n nextSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], nextSegment.points[nextSegment.points.length - 1]);\n }\n else {\n sourcePoint2 = (nextSegment.direction === 'Left') ? sourceWrapper.middleLeft : sourceWrapper.middleRight;\n var direction = void 0;\n if (nextSegment.direction) {\n direction = nextSegment.direction;\n }\n else {\n direction = Point.direction(nextSegment.points[0], nextSegment.points[nextSegment.points.length - 1]);\n }\n if (nextSegment.length && nextSegment.direction) {\n nextSegment.length =\n (direction === 'Left') ? firstSegment.points[firstSegment.points.length - 1].x - (sourcePoint2.x + 20) :\n (sourcePoint2.x + 20) - firstSegment.points[firstSegment.points.length - 1].x;\n }\n firstSegment.length = firstSegment.points[firstSegment.points.length - 1].y - sourcePoint2.y;\n firstSegment.direction = (firstSegment.length > 0) ? 'Bottom' : 'Top';\n var segValues = { type: 'Orthogonal', direction: direction, length: 20 };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n connector.segments = segments.concat(connector.segments);\n }\n }\n };\n //Translate the bezier points during the interaction\n CommandHandler.prototype.translateBezierPoints = function (connector, value, tx, ty, seg, point, update) {\n var index = (connector.segments.indexOf(seg));\n var segment = connector.segments[parseInt(index.toString(), 10)];\n var prevSegment = index > 0 ? connector.segments[index - 1] : null;\n var startPoint = prevSegment !== null ? prevSegment.point : connector.sourcePoint;\n var endPoint = index === connector.segments.length - 1 ? connector.targetPoint : segment.point;\n if (segment) {\n if (value === 'BezierSourceThumb' && (segment.vector1.angle || segment.vector1.distance)) {\n var oldDistance = segment.vector1.distance;\n var oldAngle = segment.vector1.angle;\n segment.vector1 = {\n distance: connector.distance(startPoint, point),\n angle: Point.findAngle(startPoint, point)\n };\n var deltaLength = segment.vector1.distance - oldDistance;\n var deltaAngle = segment.vector1.angle - oldAngle;\n this.translateSubsequentSegment(connector, seg, true, deltaLength, deltaAngle);\n }\n else if (value === 'BezierTargetThumb' && (segment.vector2.angle || segment.vector2.distance)) {\n var oldDistance = segment.vector2.distance;\n var oldAngle = segment.vector2.angle;\n segment.vector2 = {\n distance: connector.distance(endPoint, point),\n angle: Point.findAngle(endPoint, point)\n };\n var deltaLength = segment.vector2.distance - oldDistance;\n var deltaAngle = segment.vector2.angle - oldAngle;\n this.translateSubsequentSegment(connector, seg, false, deltaLength, deltaAngle);\n }\n else if ((value === 'ConnectorSourceEnd' && !connector.sourceID || value === 'ConnectorTargetEnd' && !connector.targetID)\n && update && isEmptyVector(segment.vector1) && isEmptyVector(segment.vector2)) {\n if (Point.isEmptyPoint(segment.point1)) {\n segment.bezierPoint1 = getBezierPoints(connector.sourcePoint, connector.targetPoint);\n }\n if (Point.isEmptyPoint(segment.point2)) {\n segment.bezierPoint2 = getBezierPoints(connector.targetPoint, connector.sourcePoint);\n }\n }\n else if (value === 'BezierSourceThumb' || (value === 'ConnectorSourceEnd' && !update && isEmptyVector(segment.vector1))) {\n segment.bezierPoint1.x += tx;\n segment.bezierPoint1.y += ty;\n if ((!Point.isEmptyPoint(segment.point1)) || (update)) {\n segment.point1 = { x: segment.bezierPoint1.x, y: segment.bezierPoint1.y };\n }\n }\n else if (value === 'BezierTargetThumb' || (value === 'ConnectorTargetEnd' && !update && isEmptyVector(segment.vector2))) {\n segment.bezierPoint2.x += tx;\n segment.bezierPoint2.y += ty;\n if ((!Point.isEmptyPoint(segment.point2)) || (update)) {\n segment.point2 = { x: segment.bezierPoint2.x, y: segment.bezierPoint2.y };\n }\n }\n }\n };\n CommandHandler.prototype.translateSubsequentSegment = function (connector, seg, isSourceEnd, deltaLength, deltaAngle) {\n var index = (connector.segments.indexOf(seg));\n var segment = connector.segments[parseInt(index.toString(), 10)];\n if (!(connector.bezierSettings.smoothness & BezierSmoothness.SymmetricAngle)) {\n deltaAngle = null;\n }\n if (!(connector.bezierSettings.smoothness & BezierSmoothness.SymmetricDistance)) {\n deltaLength = null;\n }\n if (deltaLength == null && deltaAngle == null) {\n return;\n }\n if (isSourceEnd) {\n if (index !== 0) {\n this.updatePreviousBezierSegment(connector, index, deltaLength, deltaAngle);\n }\n }\n else {\n if (index !== connector.segments.length - 1) {\n this.updateNextBezierSegment(connector, index, deltaLength, deltaAngle);\n }\n }\n };\n CommandHandler.prototype.updatePreviousBezierSegment = function (connector, index, deltaLength, deltaAngle) {\n var segment = connector.segments[index - 1];\n var newDistance = segment.vector2.distance + deltaLength;\n var newAngle = (segment.vector2.angle + deltaAngle) % 360;\n if (newAngle < 0) {\n newAngle += 360;\n }\n segment.vector2 = { distance: newDistance, angle: newAngle };\n };\n CommandHandler.prototype.updateNextBezierSegment = function (connector, index, deltaLength, deltaAngle) {\n var segment = connector.segments[index + 1];\n var newDistance = segment.vector1.distance + deltaLength;\n var newAngle = (segment.vector1.angle + deltaAngle) % 360;\n if (newAngle < 0) {\n newAngle += 360;\n }\n segment.vector1 = { distance: newDistance, angle: newAngle };\n };\n /**\n * dragTargetEnd method \\\n *\n * @returns { void } dragTargetEnd method .\\\n * @param {ConnectorModel} obj - provide the obj value.\n * @param {number} tx - provide the tx value.\n * @param {number} ty - provide the ty value.\n * @param {boolean} preventUpdate - provide the preventUpdate value.\n * @param {PointModel} point - provide the point value.\n * @param {string} endPoint - provide the endPoint value.\n * @param {boolean} update - provide the update value.\n * @param {OrthogonalSegmentModel | BezierSegmentModel | StraightSegmentModel} segment - provide the segment value.\n *\n * @private\n */\n CommandHandler.prototype.dragTargetEnd = function (obj, tx, ty, preventUpdate, point, endPoint, update, segment) {\n var connector = this.diagram.nameTable[obj.id];\n var oldChanges;\n var boundaryConstraints = this.checkBoundaryConstraints(tx, ty, connector.wrapper.bounds);\n if (canDragTargetEnd(connector) && endPoint !== 'BezierTargetThumb'\n && boundaryConstraints && canPageEditable(this.diagram)) {\n oldChanges = { targetPoint: connector.targetPoint };\n oldChanges = cloneObject(oldChanges);\n connector.targetPoint.x += tx;\n connector.targetPoint.y += ty;\n if (endPoint === 'ConnectorTargetEnd' && connector.type === 'Orthogonal' &&\n connector.segments && connector.segments.length > 0) {\n var prev = connector.segments[connector.segments.length - 2];\n if (prev && connector.segments[connector.segments.length - 1].points.length === 2) {\n if (prev.direction === 'Left' || prev.direction === 'Right') {\n prev.points[prev.points.length - 1].x = connector.targetPoint.x;\n }\n else {\n prev.points[prev.points.length - 1].y = connector.targetPoint.y;\n }\n prev.length = Point.distancePoints(prev.points[0], prev.points[prev.points.length - 1]);\n prev.direction = Point.direction(prev.points[0], prev.points[prev.points.length - 1]);\n }\n }\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.updatePathElementOffset(connector);\n }\n }\n if (connector.type === 'Bezier') {\n oldChanges = { targetPoint: connector.targetPoint };\n if (segment) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorTargetEnd' : endPoint, tx, ty, segment, point, !update);\n }\n else {\n for (var i = 0; i < obj.segments.length; i++) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorTargetEnd' : endPoint, tx, ty, obj.segments[parseInt(i.toString(), 10)], point, !update);\n }\n }\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector, oldChanges);\n }\n if (!(this.diagram.realActions & RealAction.AnimationClick)) {\n this.diagram.refreshCanvasLayers();\n }\n return boundaryConstraints;\n };\n /**\n * dragControlPoint method \\\n *\n * @returns { void } dragControlPoint method .\\\n * @param {ConnectorModel} obj - provide the obj value.\n * @param {number} tx - provide the tx value.\n * @param {number} ty - provide the ty value.\n * @param {boolean} preventUpdate - provide the preventUpdate value.\n * @param {number} segmentNumber - provide the segmentNumber value.\n *\n * @private\n */\n CommandHandler.prototype.dragControlPoint = function (obj, tx, ty, preventUpdate, segmentNumber) {\n var connector = this.diagram.nameTable[obj.id];\n if ((connector.type === 'Straight' || connector.type === 'Bezier') && connector.segments.length > 0) {\n if (segmentNumber !== undefined && connector.segments[parseInt(segmentNumber.toString(), 10)]) {\n if (connector.type === 'Bezier') {\n var seg = connector.segments[parseInt(segmentNumber.toString(), 10)];\n var isInternalSegment = seg.isInternalSegment;\n if (!isInternalSegment || connector.bezierSettings === null || connector.bezierSettings.segmentEditOrientation === 'FreeForm') {\n seg.point.x += tx;\n seg.point.y += ty;\n }\n else {\n if (seg.orientation === 'Horizontal') {\n seg.point.x += tx;\n }\n else {\n seg.point.y += ty;\n }\n this.updateDirectionalBezierCurve(connector);\n }\n if (isInternalSegment) {\n connector.isBezierEditing = true;\n }\n }\n else {\n connector.segments[parseInt(segmentNumber.toString(), 10)].point.x += tx;\n connector.segments[parseInt(segmentNumber.toString(), 10)].point.y += ty;\n }\n }\n else {\n for (var i = 0; i < connector.segments.length - 1; i++) {\n connector.segments[parseInt(i.toString(), 10)].point.x += tx;\n connector.segments[parseInt(i.toString(), 10)].point.y += ty;\n }\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector);\n }\n }\n return true;\n };\n CommandHandler.prototype.updateDirectionalBezierCurve = function (connector) {\n if (connector.segments.length < 2) {\n return;\n }\n var pts = [];\n pts.push(connector.sourcePoint);\n for (var i = 0; i < connector.segments.length - 1; i++) {\n var seg = connector.segments[parseInt(i.toString(), 10)];\n if (seg.orientation === 'Horizontal') {\n pts.push({ x: seg.point.x, y: pts[pts.length - 1].y });\n }\n else {\n pts.push({ x: pts[pts.length - 1].x, y: seg.point.y });\n }\n if (i === connector.segments.length - 2) {\n if (seg.orientation === 'Horizontal') {\n pts.push({ x: seg.point.x, y: connector.targetPoint.y });\n }\n else {\n pts.push({ x: connector.targetPoint.x, y: seg.point.y });\n }\n }\n }\n pts.push(connector.targetPoint);\n var start = pts[0];\n var end = pts[pts.length - 1];\n if (connector.segments.length > 1) {\n var mid1 = pts[1];\n var mid2 = pts[2];\n var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var segment1 = connector.segments[0];\n segment1.vector1.angle = findAngle(start, mid1);\n segment1.vector1.distance = Point.findLength(start, mid1) * 0.5;\n segment1.vector2.angle = findAngle(center1, mid1);\n segment1.vector2.distance = Point.findLength(center1, mid1) * 0.5;\n segment1.point = center1;\n var segment2 = connector.segments[1];\n segment2.vector1.angle = findAngle(center1, mid2);\n segment2.vector1.distance = Point.findLength(center1, mid2) * 0.5;\n if (connector.segments.length > 2) {\n var mid3 = pts[3];\n var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 };\n segment2.vector2.angle = findAngle(center2, mid2);\n segment2.vector2.distance = Point.findLength(center2, mid2) * 0.5;\n segment2.point = center2;\n var segment3 = connector.segments[2];\n segment3.vector1.angle = findAngle(center2, mid3);\n segment3.vector1.distance = Point.findLength(center2, mid3) * 0.5;\n if (connector.segments.length > 3) {\n var mid4 = pts[4];\n var center3 = { x: (mid3.x + mid4.x) * 0.5, y: (mid3.y + mid4.y) * 0.5 };\n segment3.vector2.angle = findAngle(center3, mid3);\n segment3.vector2.distance = Point.findLength(center3, mid3) * 0.5;\n segment3.point = center3;\n var segment4 = connector.segments[3];\n segment4.vector1.angle = findAngle(center3, mid4);\n segment4.vector1.distance = Point.findLength(center3, mid4) * 0.5;\n segment4.vector2.angle = findAngle(end, mid4);\n segment4.vector2.distance = Point.findLength(end, mid4) * 0.5;\n }\n else {\n segment3.vector2.angle = findAngle(end, mid3);\n segment3.vector2.distance = Point.findLength(end, mid3) * 0.5;\n }\n }\n else {\n segment2.vector2.angle = findAngle(end, mid2);\n segment2.vector2.distance = Point.findLength(end, mid2) * 0.5;\n }\n }\n };\n /**\n * rotatePropertyChnage method \\\n *\n * @returns { void } rotatePropertyChnage method .\\\n * @param {number} angle - provide the obj value.\n *\n * @private\n */\n CommandHandler.prototype.rotatePropertyChnage = function (angle) {\n var selectedItems = this.diagram.selectedItems;\n var objects = [];\n objects = objects.concat(selectedItems.nodes);\n objects = objects.concat(selectedItems.connectors);\n var pivotValue = { x: selectedItems.offsetX, y: selectedItems.offsetY };\n this.rotateObjects(selectedItems, objects, angle - selectedItems.rotateAngle, pivotValue);\n selectedItems.wrapper.rotateAngle = selectedItems.rotateAngle = angle;\n this.diagram.updateSelector();\n };\n /**\n * rotateObjects method \\\n *\n * @returns { void } rotateObjects method .\\\n * @param {NodeModel | SelectorModel} parent - provide the parent value.\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the objects value.\n * @param {number} angle - provide the angle value.\n * @param {PointModel} pivot - provide the pivot value.\n * @param {boolean} includeParent - provide the includeParent value.\n *\n * @private\n */\n CommandHandler.prototype.rotateObjects = function (parent, objects, angle, pivot, includeParent) {\n pivot = pivot || {};\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivot.x, pivot.y);\n var oldValues;\n for (var _i = 0, objects_2 = objects; _i < objects_2.length; _i++) {\n var obj = objects_2[_i];\n if (obj instanceof Node) {\n if (canRotate(obj) && canPageEditable(this.diagram)) {\n if (includeParent !== false || parent !== obj) {\n oldValues = { rotateAngle: obj.rotateAngle };\n obj.rotateAngle += angle;\n obj.rotateAngle = (obj.rotateAngle + 360) % 360;\n var newOffset = transformPointByMatrix(matrix, { x: obj.offsetX, y: obj.offsetY });\n obj.offsetX = newOffset.x;\n obj.offsetY = newOffset.y;\n this.diagram.nodePropertyChange(obj, {}, { offsetX: obj.offsetX, offsetY: obj.offsetY, rotateAngle: obj.rotateAngle });\n }\n if (obj.processId) {\n var parent_3 = this.diagram.nameTable[obj.processId];\n var bound = this.diagram.bpmnModule.getChildrenBound(parent_3, obj.id, this.diagram);\n this.diagram.bpmnModule.updateSubProcessess(bound, obj, this.diagram);\n }\n if (obj.children && obj.children.length && !obj.container) {\n this.getChildren(obj, objects);\n }\n }\n }\n else {\n this.rotatePoints(obj, angle, pivot || { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY });\n }\n this.diagram.updateDiagramObject(obj);\n }\n this.diagram.refreshCanvasLayers();\n this.diagram.updateSelector();\n };\n /**\n * snapConnectorEnd method \\\n *\n * @returns { PointModel } snapConnectorEnd method .\\\n * @param {PointModel} currentPosition - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.snapConnectorEnd = function (currentPosition) {\n if ((this.diagram.snapSettings.constraints & SnapConstraints.SnapToLines)\n && this.snappingModule) {\n this.diagram.snappingModule.snapConnectorEnd(currentPosition);\n }\n return currentPosition;\n };\n /**\n * snapAngle method \\\n *\n * @returns { number } snapAngle method .\\\n * @param {number} angle - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.snapAngle = function (angle) {\n if ((this.diagram.snapSettings.constraints & SnapConstraints.SnapToLines)\n && this.snappingModule) {\n return this.snappingModule.snapAngle(this.diagram, angle);\n }\n else {\n return 0;\n }\n };\n /**\n * rotatePoints method \\\n *\n * @returns { number } rotatePoints method .\\\n * @param {Connector} conn - provide the parent value.\n * @param {number} angle - provide the parent value.\n * @param {PointModel} pivot - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.rotatePoints = function (conn, angle, pivot) {\n if (!conn.sourceWrapper || !conn.targetWrapper) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivot.x, pivot.y);\n conn.sourcePoint = transformPointByMatrix(matrix, conn.sourcePoint);\n conn.targetPoint = transformPointByMatrix(matrix, conn.targetPoint);\n if (conn.shape.type === 'Bpmn' && conn.shape.sequence === 'Default' && conn.shape.flow === 'Sequence') {\n this.updatePathElementOffset(conn);\n }\n var newProp = { sourcePoint: conn.sourcePoint, targetPoint: conn.targetPoint };\n this.diagram.connectorPropertyChange(conn, {}, newProp);\n if (conn.segments && conn.segments.length > 0) {\n this.diagram.protectPropertyChange(true);\n var connector = conn;\n connector.segments = [];\n this.diagram.connectorPropertyChange(connector, {}, { segments: connector.segments });\n this.diagram.protectPropertyChange(false);\n }\n }\n };\n CommandHandler.prototype.updateInnerParentProperties = function (tempNode) {\n var elements = [];\n var protect = 'isProtectedOnChange';\n var protectChange = this.diagram[\"\" + protect];\n this.diagram.protectPropertyChange(true);\n var innerParents = this.getAllDescendants(tempNode, elements, false, true);\n for (var i = 0; i < innerParents.length; i++) {\n var obj = this.diagram.nameTable[innerParents[parseInt(i.toString(), 10)].id];\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n obj.width = obj.wrapper.width;\n obj.height = obj.wrapper.height;\n }\n this.diagram.protectPropertyChange(protectChange);\n };\n /**\n * scale method \\\n *\n * @returns { boolean } scale method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the parent value.\n * @param {number} sw - provide the parent value.\n * @param {number} sh - provide the parent value.\n * @param {number} pivot - provide the parent value.\n * @param {number} refObject - provide the parent value.\n * @param {boolean} isOutsideBoundary - provide the parent value.\n *\n * @private\n */\n // eslint-disable-next-line max-len\n CommandHandler.prototype.scale = function (obj, sw, sh, pivot, refObject, isOutsideBoundary) {\n var node = this.diagram.nameTable[obj.id];\n var tempNode = node;\n var elements = [];\n var element = node.wrapper;\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n var x = refWrapper.offsetX - refWrapper.actualSize.width * refWrapper.pivot.x;\n var y = refWrapper.offsetY - refWrapper.actualSize.height * refWrapper.pivot.y;\n var refPoint = getPoint(x, y, refWrapper.actualSize.width, refWrapper.actualSize.height, refWrapper.rotateAngle, refWrapper.offsetX, refWrapper.offsetY, pivot);\n if (element.actualSize.width !== undefined && element.actualSize.height !== undefined && canPageEditable(this.diagram)) {\n if (tempNode.children && !(tempNode.container)) {\n var nodes = this.getAllDescendants(tempNode, elements);\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var temp = nodes_1[_i];\n this.scaleObject(sw, sh, refPoint, temp, element, refObject);\n }\n obj.wrapper.measure(new Size());\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n this.diagram.updateGroupOffset(node);\n this.updateInnerParentProperties(tempNode);\n }\n else {\n this.scaleObject(sw, sh, refPoint, node, element, refObject);\n }\n var bounds = getBounds(obj.wrapper);\n var checkBoundaryConstraints = this.checkBoundaryConstraints(undefined, undefined, bounds);\n if (!checkBoundaryConstraints && isOutsideBoundary) {\n this.scale(obj, 1 / sw, 1 / sh, pivot, undefined, true);\n return false;\n }\n this.diagram.updateDiagramObject(obj);\n }\n return true;\n };\n /** @private */\n CommandHandler.prototype.getAllDescendants = function (node, nodes, includeParent, innerParent) {\n var temp = node;\n var parentNodes = [];\n for (var i = 0; i < temp.children.length; i++) {\n node = (this.diagram.nameTable[temp.children[parseInt(i.toString(), 10)]]);\n if (node) {\n if (!node.children) {\n nodes.push(node);\n }\n else {\n if (includeParent) {\n nodes.push(node);\n }\n if (innerParent) {\n parentNodes.push(node);\n }\n nodes = this.getAllDescendants(node, nodes);\n }\n }\n }\n return (innerParent) ? parentNodes : nodes;\n };\n /**\n * getChildren method \\\n *\n * @returns { (NodeModel | ConnectorModel)[]): (NodeModel | ConnectorModel)[] } getChildren method .\\\n * @param {NodeModel} node - provide the sw value.\n * @param {(NodeModel | ConnectorModel)[]} nodes - provide the sw value.\n *\n * @private\n */\n CommandHandler.prototype.getChildren = function (node, nodes) {\n var temp = node;\n if (node.children) {\n for (var i = 0; i < temp.children.length; i++) {\n node = (this.diagram.nameTable[temp.children[parseInt(i.toString(), 10)]]);\n nodes.push(node);\n }\n }\n return nodes;\n };\n /**\n * scaleObject method \\\n *\n * @returns { NodeModel } scaleObject method .\\\n * @param {string} id - provide the sw value.\n *\n * @private\n */\n CommandHandler.prototype.cloneChild = function (id) {\n var node = this.diagram.nameTable[\"\" + id];\n return node;\n };\n /**\n * scaleObject method \\\n *\n * @returns { void } scaleObject method .\\\n * @param {End} sw - provide the sw value.\n * @param {End} sh - provide the sh value.\n * @param {PointModel} pivot - provide the pivot value.\n * @param {IElement} obj - provide the pivot value.\n * @param {DiagramElement} element - provide the element value.\n * @param {IElement} refObject - provide the refObject value.\n *\n * @private\n */\n CommandHandler.prototype.scaleObject = function (sw, sh, pivot, obj, element, refObject, canUpdate) {\n sw = sw < 0 ? 1 : sw;\n sh = sh < 0 ? 1 : sh;\n var oldValues = {};\n if (sw !== 1 || sh !== 1) {\n var width = void 0;\n var height = void 0;\n if (obj instanceof Node) {\n var node = obj;\n var isResize = void 0;\n var bound = void 0;\n oldValues = {\n width: obj.wrapper.actualSize.width, height: obj.wrapper.actualSize.height,\n offsetX: obj.wrapper.offsetX, offsetY: obj.wrapper.offsetY,\n margin: { top: node.margin.top, left: node.margin.left }\n };\n if (node.shape.type === 'Bpmn' && node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length > 0) {\n bound = this.diagram.bpmnModule.getChildrenBound(node, node.id, this.diagram);\n isResize = node.wrapper.bounds.containsRect(bound);\n }\n width = node.wrapper.actualSize.width * sw;\n height = node.wrapper.actualSize.height * sh;\n if (node.maxWidth !== undefined && node.maxWidth !== 0) {\n width = Math.min(node.maxWidth, width);\n }\n if (node.minWidth !== undefined && node.minWidth !== 0) {\n width = Math.max(node.minWidth, width);\n }\n if (node.maxHeight !== undefined && node.maxHeight !== 0) {\n height = Math.min(node.maxHeight, height);\n }\n if (node.minHeight !== undefined && node.minHeight !== 0) {\n height = Math.max(node.minHeight, height);\n }\n if (isResize) {\n width = Math.max(width, (bound.right - node.wrapper.bounds.x));\n height = Math.max(height, (bound.bottom - node.wrapper.bounds.y));\n }\n sw = width / node.actualSize.width;\n sh = height / node.actualSize.height;\n }\n var matrix = identityMatrix(); // let refWrapper: DiagramElement;\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n rotateMatrix(matrix, -refWrapper.rotateAngle, pivot.x, pivot.y);\n scaleMatrix(matrix, sw, sh, pivot.x, pivot.y);\n rotateMatrix(matrix, refWrapper.rotateAngle, pivot.x, pivot.y);\n if (obj instanceof Node) {\n var node = obj; //let left: number; let top: number;\n var newPosition = transformPointByMatrix(matrix, { x: node.wrapper.offsetX, y: node.wrapper.offsetY });\n var oldleft = node.wrapper.offsetX - node.wrapper.actualSize.width * node.pivot.x;\n var oldtop = node.wrapper.offsetY - node.wrapper.actualSize.height * node.pivot.y;\n if (width > 0) {\n if (node.processId) {\n var parent_4 = this.diagram.nameTable[node.processId];\n if (!parent_4.maxWidth || ((node.margin.left + width) < parent_4.maxWidth)) {\n node.width = width;\n node.offsetX = newPosition.x;\n }\n }\n else {\n node.width = width;\n node.offsetX = newPosition.x;\n }\n }\n if (height > 0) {\n if (node.processId) {\n var parent_5 = this.diagram.nameTable[node.processId];\n if (!parent_5.maxHeight || ((node.margin.top + height) < parent_5.maxHeight)) {\n node.height = height;\n node.offsetY = newPosition.y;\n }\n }\n else {\n node.height = height;\n node.offsetY = newPosition.y;\n }\n }\n var left = node.wrapper.offsetX - node.wrapper.actualSize.width * node.pivot.x;\n var top_1 = node.wrapper.offsetY - node.wrapper.actualSize.height * node.pivot.y;\n var parent_6 = this.diagram.nameTable[node.processId];\n if (parent_6 && ((node.margin.top + (top_1 - oldtop)) <= 0 ||\n (node.margin.left + (left - oldleft) <= 0))) {\n this.diagram.nodePropertyChange(obj, {}, {\n margin: { top: node.margin.top, left: node.margin.left }\n });\n }\n else {\n if (checkParentAsContainer(this.diagram, obj, true)) {\n checkChildNodeInContainer(this.diagram, obj);\n }\n else {\n if (!canUpdate) {\n this.diagram.nodePropertyChange(obj, oldValues, {\n width: node.width, height: node.height, offsetX: node.offsetX, offsetY: node.offsetY,\n margin: { top: node.margin.top + (top_1 - oldtop), left: node.margin.left + (left - oldleft) }\n });\n }\n }\n }\n }\n else {\n var connector = obj;\n var oldValues_1 = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n if (!connector.sourceWrapper || !connector.targetWrapper) {\n this.scaleConnector(connector, matrix, oldValues_1, sw, sh, pivot);\n }\n }\n var parentNode = this.diagram.nameTable[obj.processId];\n if (parentNode) {\n var parent_7 = parentNode.wrapper.bounds;\n var child = obj.wrapper.bounds;\n var bound = this.diagram.bpmnModule.getChildrenBound(parentNode, obj.id, this.diagram);\n this.diagram.bpmnModule.updateSubProcessess(bound, obj, this.diagram);\n }\n }\n };\n CommandHandler.prototype.scaleConnector = function (connector, matrix, oldValues, sw, sh, pivot) {\n connector.sourcePoint = transformPointByMatrix(matrix, connector.sourcePoint);\n connector.targetPoint = transformPointByMatrix(matrix, connector.targetPoint);\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.updatePathElementOffset(connector);\n }\n var newProp = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n this.diagram.connectorPropertyChange(connector, oldValues, newProp);\n var selector = this.diagram.selectedItems;\n if (selectionHasConnector(this.diagram, selector)) {\n var clonedSelectedItems = cloneObject(this.diagram.selectedItems);\n var nodeModel = {\n offsetX: clonedSelectedItems.offsetX, offsetY: clonedSelectedItems.offsetY,\n height: clonedSelectedItems.height, width: clonedSelectedItems.width, rotateAngle: clonedSelectedItems.rotateAngle\n };\n var obj = new Node(this.diagram, 'nodes', nodeModel, true);\n obj.wrapper = clonedSelectedItems.wrapper;\n obj.wrapper.rotateAngle = selector.rotateAngle;\n this.scaleObject(sw, sh, pivot, obj, obj.wrapper, obj, true);\n selector.wrapper.actualSize.width = obj.width;\n selector.wrapper.actualSize.height = obj.height;\n selector.wrapper.offsetX = obj.offsetX;\n selector.wrapper.offsetY = obj.offsetY;\n var child = this.diagram.selectedItems.connectors[0];\n if (child.id !== connector.id) {\n this.measureSelector(selector);\n }\n }\n };\n CommandHandler.prototype.measureSelector = function (selector) {\n var desiredBounds = undefined;\n //Measuring the children\n var clonedSelectedItems = cloneObject(this.diagram.selectedItems);\n var objects = [];\n var bounds;\n objects = clonedSelectedItems.connectors;\n var pivot = { x: this.diagram.selectedItems.offsetX, y: this.diagram.selectedItems.offsetY };\n for (var i = 0; i < objects.length; i++) {\n var matrix_1 = identityMatrix();\n rotateMatrix(matrix_1, -selector.rotateAngle, pivot.x, pivot.y);\n objects[parseInt(i.toString(), 10)].sourcePoint = transformPointByMatrix(matrix_1, objects[parseInt(i.toString(), 10)].sourcePoint);\n objects[parseInt(i.toString(), 10)].targetPoint = transformPointByMatrix(matrix_1, objects[parseInt(i.toString(), 10)].targetPoint);\n var p1 = { x: objects[parseInt(i.toString(), 10)].sourcePoint.x, y: objects[parseInt(i.toString(), 10)].sourcePoint.y };\n var p2 = { x: objects[parseInt(i.toString(), 10)].targetPoint.x, y: objects[parseInt(i.toString(), 10)].targetPoint.y };\n bounds = (this.calculateBounds(p1, p2));\n if (desiredBounds === undefined) {\n desiredBounds = bounds;\n }\n else {\n desiredBounds.uniteRect(bounds);\n }\n }\n var offsetPt = {};\n if (desiredBounds !== undefined) {\n offsetPt = {\n x: desiredBounds.x + desiredBounds.width * selector.wrapper.pivot.x,\n y: desiredBounds.y + desiredBounds.height * selector.wrapper.pivot.y\n };\n }\n var nodeModel = {\n offsetX: offsetPt.x, offsetY: offsetPt.y,\n height: desiredBounds.height, width: desiredBounds.width, rotateAngle: 0\n };\n var obj = new Node(this.diagram, 'nodes', nodeModel, true);\n var matrix = identityMatrix();\n rotateMatrix(matrix, selector.rotateAngle, pivot.x, pivot.y);\n obj.rotateAngle += selector.rotateAngle;\n obj.rotateAngle = (obj.rotateAngle + 360) % 360;\n var newOffset = transformPointByMatrix(matrix, { x: obj.offsetX, y: obj.offsetY });\n obj.offsetX = newOffset.x;\n obj.offsetY = newOffset.y;\n selector.wrapper.actualSize.width = desiredBounds.width;\n selector.wrapper.actualSize.height = desiredBounds.height;\n selector.wrapper.offsetX = obj.offsetX;\n selector.wrapper.offsetY = obj.offsetY;\n var selectorEle = getSelectorElement(this.diagram.element.id);\n // EJ2-69511 - Added handleSize parameter to avoid exception when we perform multiselect of connectors, rotate and resize it.\n this.diagram.diagramRenderer.renderResizeHandle(selector.wrapper, selectorEle, selector.thumbsConstraints, this.diagram.scroller.currentZoom, selector.constraints, this.diagram.scroller.transform, false, canMove(selector), null, null, selector.handleSize);\n };\n CommandHandler.prototype.calculateBounds = function (p1, p2) {\n var left = Math.min(p1.x, p2.x);\n var right = Math.max(p1.x, p2.x);\n var top = Math.min(p1.y, p2.y);\n var bottom = Math.max(p1.y, p2.y);\n var width = right - left;\n var height = bottom - top;\n var rect = new Rect(left, top, width, height);\n return rect;\n };\n /**\n * portDrag method \\\n *\n * @returns { void } portDrag method .\\\n * @param { NodeModel | ConnectorModel} obj - provide the obj value.\n * @param {DiagramElement} portElement - provide the portElement value.\n * @param {number} tx - provide the tx value.\n * @param {number} ty - provide the tx value.\n *\n * @private\n */\n CommandHandler.prototype.portDrag = function (obj, portElement, tx, ty) {\n var oldValues;\n var changedvalues;\n var port = this.findTarget(portElement, obj);\n var bounds = getBounds(obj.wrapper);\n if (port && canDrag(port, this.diagram)) {\n oldValues = this.getPortChanges(obj, port);\n port.offset.x += (tx / bounds.width);\n port.offset.y += (ty / bounds.height);\n changedvalues = this.getPortChanges(obj, port);\n this.diagram.nodePropertyChange(obj, oldValues, changedvalues);\n this.diagram.updateDiagramObject(obj);\n }\n };\n /** @private */\n CommandHandler.prototype.labelDrag = function (obj, textElement, tx, ty) {\n //let changedvalues: Object;\n //let label: ShapeAnnotationModel | PathAnnotationModel;\n // eslint-disable-next-line max-len\n var label = this.findTarget(textElement, obj);\n var bounds = cornersPointsBeforeRotation(obj.wrapper);\n var oldValues = this.getAnnotationChanges(obj, label);\n if (label instanceof ShapeAnnotation) {\n label.offset.x += (tx / bounds.width);\n label.offset.y += (ty / bounds.height);\n }\n else {\n this.updatePathAnnotationOffset(obj, label, tx, ty);\n if (label instanceof PathAnnotation) {\n label.alignment = 'Center';\n }\n }\n var changedvalues = this.getAnnotationChanges(obj, label);\n if (obj instanceof Node) {\n this.diagram.nodePropertyChange(obj, oldValues, changedvalues);\n }\n else {\n this.diagram.connectorPropertyChange(obj, oldValues, changedvalues);\n }\n this.diagram.updateDiagramObject(obj);\n if (!isSelected(this.diagram, label, false, textElement)) {\n this.labelSelect(obj, textElement);\n }\n };\n CommandHandler.prototype.updatePathAnnotationOffset = function (object, label, tx, ty, newPosition, size) {\n var textWrapper = this.diagram.getWrapper(object.wrapper, label.id);\n var offsetX = textWrapper.offsetX;\n var offsetY = textWrapper.offsetY;\n var offset;\n var intermediatePoints = object.intermediatePoints;\n var prev;\n var pointLength = 0;\n var totalLength = 0;\n var intersectingOffset;\n var currentPosition;\n switch (label.verticalAlignment) {\n case 'Center':\n if (label.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + ty };\n }\n else if (label.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty };\n }\n else if (label.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty };\n }\n break;\n case 'Top':\n if (label.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n break;\n case 'Bottom':\n if (label.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n break;\n }\n var intersetingPts = this.getInterceptWithSegment(currentPosition, intermediatePoints);\n var newOffset = intermediatePoints[intermediatePoints.length - 1];\n totalLength = Point.getLengthFromListOfPoints(intermediatePoints);\n if (intersetingPts.length > 0) {\n if (label.dragLimit.top || label.dragLimit.bottom || label.dragLimit.left || label.dragLimit.right) {\n var minDistance = { minDistance: null };\n newOffset = this.getRelativeOffset(currentPosition, intermediatePoints, minDistance);\n var distance = { minDistance: null };\n intersectingOffset = this.getRelativeOffset(currentPosition, intersetingPts, distance);\n if (minDistance != null && distance.minDistance < minDistance.minDistance) {\n newOffset = intersectingOffset;\n }\n else {\n var connectorOffset = getOffsetOfConnector(object.intermediatePoints, label);\n newOffset = connectorOffset.point;\n }\n }\n else {\n intersectingOffset = intersetingPts[intersetingPts.length - 1];\n newOffset = intersectingOffset;\n }\n if (newOffset) {\n var p = void 0;\n var bounds = void 0;\n for (p = 0; p < intermediatePoints.length; p++) {\n if (prev != null) {\n bounds = Rect.toBounds([prev, intermediatePoints[parseInt(p.toString(), 10)]]);\n if (bounds.containsPoint(newOffset)) {\n pointLength += Point.findLength(prev, newOffset);\n break;\n }\n else {\n pointLength += Point.findLength(prev, intermediatePoints[parseInt(p.toString(), 10)]);\n }\n }\n prev = intermediatePoints[parseInt(p.toString(), 10)];\n }\n offset = { x: pointLength / totalLength, y: 0 };\n }\n this.updateLabelMargin(object, label, offset, currentPosition, size, tx, ty);\n }\n else {\n this.updateLabelMargin(object, label, null, currentPosition, size, tx, ty);\n }\n };\n CommandHandler.prototype.getRelativeOffset = function (currentPosition, points, minDistance) {\n var newOffset;\n var distance;\n var pt;\n var i;\n for (i = 0; i < points.length; i++) {\n pt = points[parseInt(i.toString(), 10)];\n distance = Math.round(Math.sqrt(Math.pow((currentPosition.x - pt.x), 2) +\n Math.pow((currentPosition.y - pt.y), 2)));\n if (minDistance.minDistance === null ||\n Math.min(Math.abs(minDistance.minDistance), Math.abs(distance)) === Math.abs(distance)) {\n newOffset = pt;\n minDistance.minDistance = distance;\n }\n }\n return newOffset;\n };\n CommandHandler.prototype.dragLimitValue = function (label, point, tempPt, contentDimension) {\n var x = false;\n var y = false;\n if ((tempPt.x >= (point.x - label.dragLimit.left - (contentDimension.width / 2))) &&\n (tempPt.x <= point.x + label.dragLimit.right + (contentDimension.width / 2))) {\n x = true;\n }\n if ((tempPt.y >= (point.y - label.dragLimit.top - (contentDimension.height / 2))) &&\n (tempPt.y <= point.y + label.dragLimit.bottom + (contentDimension.height / 2))) {\n y = true;\n }\n return { x: x, y: y };\n };\n /* eslint-disable */\n CommandHandler.prototype.updateLabelMargin = function (node, label, offset, tempPt, size, tx, ty) {\n offset = offset ? offset : { x: label.offset, y: 0 };\n if (label && offset && offset.x > 0 && offset.x < 1) {\n //let point: PointModel;\n var length_2 = Point.getLengthFromListOfPoints(node.intermediatePoints);\n var point = this.getPointAtLength(length_2 * offset.x, node.intermediatePoints, 0);\n var curZoomfactor = this.diagram.scrollSettings.currentZoom;\n var dragLimit = label.dragLimit;\n if (dragLimit.top || dragLimit.bottom || dragLimit.left || dragLimit.right) {\n var labelBounds = this.diagram.getWrapper(node.wrapper, label.id);\n var contentDimension = new Rect(0, 0, 0, 0);\n var annotationWrtapper = this.diagram.getWrapper(node.wrapper, label.id);\n contentDimension.x = ((annotationWrtapper).offsetX / curZoomfactor) + tx;\n contentDimension.y = (annotationWrtapper.offsetY / curZoomfactor) + ty;\n contentDimension.width = annotationWrtapper.bounds.width / curZoomfactor;\n contentDimension.height = annotationWrtapper.bounds.height / curZoomfactor;\n var draggableBounds = new Rect(point.x - (dragLimit.left || 0) - contentDimension.width / 2, point.y - (dragLimit.top || 0) - contentDimension.height / 2, (dragLimit.left || 0) + (dragLimit.right || 0) + contentDimension.width, (dragLimit.top || 0) + (dragLimit.bottom || 0) + contentDimension.height);\n if (draggableBounds.containsPoint(tempPt)) {\n tempPt = tempPt;\n }\n else {\n var lineIntersects = void 0;\n var line1 = [point, tempPt];\n lineIntersects = this.boundsInterSects(line1, draggableBounds, false);\n for (var _i = 0, lineIntersects_1 = lineIntersects; _i < lineIntersects_1.length; _i++) {\n var i = lineIntersects_1[_i];\n var ptt = i;\n tempPt = ptt;\n }\n }\n var cursorLimit = this.dragLimitValue(label, point, tempPt, contentDimension);\n label.margin = {\n left: cursorLimit.x ? tempPt.x - point.x : label.margin.left,\n top: cursorLimit.y ? tempPt.y - point.y : label.margin.top, right: 0, bottom: 0\n };\n }\n else {\n label.margin = { left: tempPt.x - point.x, top: tempPt.y - point.y, right: 0, bottom: 0 };\n }\n label.offset = offset.x;\n if (size) {\n label.width = size.width;\n label.height = size.height;\n }\n }\n };\n CommandHandler.prototype.boundsInterSects = function (polyLine, bounds, self) {\n var intersects;\n if (bounds) {\n var polyLine2 = [\n { x: bounds.x, y: bounds.y },\n { x: bounds.x + bounds.width, y: bounds.y },\n { x: bounds.x + bounds.width, y: bounds.y + bounds.height },\n { x: bounds.x, y: bounds.y + bounds.height },\n { x: bounds.x, y: bounds.y }\n ];\n intersects = this.intersect(polyLine, polyLine2, self);\n }\n return intersects;\n };\n CommandHandler.prototype.intersect = function (polyLine1, polyLine2, self) {\n var intersect = [];\n for (var i = 0; i < polyLine1.length - 1; i++) {\n for (var j = 0; j < polyLine2.length - 1; j++) {\n var p = intersect2(polyLine1[i], polyLine1[i + 1], polyLine2[j], polyLine2[j + 1]);\n if (p.x !== 0 && p.y !== 0) {\n intersect.push(p);\n }\n }\n }\n return intersect;\n };\n /**\n * @private\n */\n CommandHandler.prototype.getPointAtLength = function (length, points, angle) {\n angle = 0;\n var run = 0;\n var pre;\n var found = { x: 0, y: 0 };\n var pt;\n for (var i = 0; i < points.length; i++) {\n pt = points[i];\n if (!pre) {\n pre = pt;\n continue;\n }\n else {\n var l = Point.findLength(pre, pt);\n var r = void 0;\n var deg = void 0;\n var x = void 0;\n var y = void 0;\n if (run + l >= length) {\n r = length - run;\n deg = Point.findAngle(pre, pt);\n x = r * Math.cos(deg * Math.PI / 180);\n y = r * Math.sin(deg * Math.PI / 180);\n found = { x: pre.x + x, y: pre.y + y };\n angle = deg;\n break;\n }\n else {\n run += l;\n }\n }\n pre = pt;\n }\n return found;\n };\n CommandHandler.prototype.getInterceptWithSegment = function (currentPosition, conPoints) {\n var intercepts = [];\n var imgLine = [];\n var segemnt = [];\n var tarAngle;\n var srcAngle; //let maxLength: number;\n var maxLength = Point.findLength({ x: 0, y: 0 }, { x: this.diagram.scroller.viewPortWidth, y: this.diagram.scroller.viewPortHeight });\n for (var i = 1; i < conPoints.length; i++) {\n segemnt = [conPoints[i - 1], conPoints[i]];\n imgLine = [];\n srcAngle = Math.round(Point.findAngle(segemnt[0], segemnt[1]) % 360);\n tarAngle = Math.round(Point.findAngle(segemnt[1], segemnt[0]) % 360);\n var angleAdd = (srcAngle > 0 && srcAngle <= 90) || (srcAngle > 180 && srcAngle <= 270) ? 90 : -90;\n imgLine.push(Point.transform(currentPosition, srcAngle + angleAdd, maxLength));\n imgLine.push(Point.transform(currentPosition, tarAngle + angleAdd, maxLength));\n var lineUtil1 = { x1: segemnt[0].x, y1: segemnt[0].y, x2: segemnt[1].x, y2: segemnt[1].y };\n var lineUtil2 = { x1: imgLine[0].x, y1: imgLine[0].y, x2: imgLine[1].x, y2: imgLine[1].y };\n var line3 = intersect3(lineUtil1, lineUtil2);\n if (line3.enabled) {\n intercepts.push(line3.intersectPt);\n }\n }\n return intercepts;\n };\n /** @private */\n CommandHandler.prototype.getAnnotationChanges = function (object, label) {\n var index = findObjectIndex(object, label.id, true);\n var annotations = {};\n annotations[index] = {\n width: label.width, height: label.height, offset: (object instanceof Node) ? ({\n x: label.offset.x,\n y: label.offset.y\n }) : label.offset,\n rotateAngle: label.rotateAngle,\n margin: { left: label.margin.left, right: label.margin.right, top: label.margin.top, bottom: label.margin.bottom },\n horizontalAlignment: label.horizontalAlignment, verticalAlignment: label.verticalAlignment,\n alignment: ((object instanceof Connector) ? label.alignment : undefined)\n };\n return { annotations: annotations };\n };\n /** @private */\n CommandHandler.prototype.getPortChanges = function (object, port) {\n var index = findObjectIndex(object, port.id, false);\n var ports = {};\n ports[index] = { offset: port.offset };\n return { ports: ports };\n };\n /** @private */\n CommandHandler.prototype.labelRotate = function (object, label, currentPosition, selector) {\n var oldValues;\n var changedvalues;\n oldValues = this.getAnnotationChanges(object, label);\n var matrix = identityMatrix();\n var rotateAngle = label.rotateAngle;\n var labelWrapper = this.diagram.getWrapper(object.wrapper, label.id);\n var angle = findAngle({ x: labelWrapper.offsetX, y: labelWrapper.offsetY }, currentPosition) + 90;\n var snapAngle = this.snapAngle(angle);\n angle = snapAngle !== 0 ? snapAngle : angle;\n if (label instanceof PathAnnotation && label.segmentAngle) {\n var getPointloop = getAnnotationPosition(object.intermediatePoints, label, object.wrapper.bounds);\n angle -= getPointloop.angle;\n }\n angle = (angle + 360) % 360;\n label.rotateAngle += angle - (label.rotateAngle + labelWrapper.parentTransform);\n if (label instanceof PathAnnotation) {\n label.alignment = 'Center';\n }\n selector.wrapper.rotateAngle = selector.rotateAngle = label.rotateAngle;\n changedvalues = this.getAnnotationChanges(object, label);\n if (object instanceof Node) {\n this.diagram.nodePropertyChange(object, oldValues, changedvalues);\n }\n else {\n this.diagram.connectorPropertyChange(object, oldValues, changedvalues);\n }\n this.diagram.updateDiagramObject(object);\n };\n /** @private */\n CommandHandler.prototype.labelResize = function (node, label, deltaWidth, deltaHeight, pivot, selector) {\n var oldValues;\n var changedvalues;\n var rotateAngle;\n oldValues = this.getAnnotationChanges(node, label);\n var textElement = selector.wrapper.children[0];\n if ((deltaWidth && deltaWidth !== 1) || (deltaHeight && deltaHeight !== 1)) {\n var newMat = identityMatrix();\n var matrix = identityMatrix();\n rotateMatrix(newMat, -node.rotateAngle, node.offsetX, node.offsetY);\n rotateAngle = ((textElement.rotateAngle + ((node instanceof Node) ? node.rotateAngle : 0)) + 360) % 360;\n rotateMatrix(matrix, -rotateAngle, pivot.x, pivot.y);\n scaleMatrix(matrix, deltaWidth, deltaHeight, pivot.x, pivot.y);\n rotateMatrix(matrix, rotateAngle, pivot.x, pivot.y);\n var newPosition = transformPointByMatrix(matrix, { x: textElement.offsetX, y: textElement.offsetY });\n var height = textElement.actualSize.height * deltaHeight;\n var width = textElement.actualSize.width * deltaWidth;\n var shape = this.findTarget(textElement, node);\n if (shape instanceof PathAnnotation) {\n newPosition.y += (shape.verticalAlignment === 'Top') ? (-height / 2) : ((shape.verticalAlignment === 'Bottom') ? (height / 2) : 0);\n newPosition.x += (shape.horizontalAlignment === 'Left') ? (-width / 2) : ((shape.horizontalAlignment === 'Right') ? (width / 2) : 0);\n }\n if (shape instanceof PathAnnotation) {\n this.updatePathAnnotationOffset(node, label, 0, 0, newPosition, new Size(width, height));\n }\n else {\n var bounds = cornersPointsBeforeRotation(node.wrapper);\n newPosition = transformPointByMatrix(newMat, newPosition);\n newPosition.x = newPosition.x - textElement.margin.left + textElement.margin.right;\n newPosition.y = newPosition.y - textElement.margin.top + textElement.margin.bottom;\n newPosition.y += (shape.verticalAlignment === 'Top') ? (-height / 2) : ((shape.verticalAlignment === 'Bottom') ? (height / 2) : 0);\n newPosition.x += (shape.horizontalAlignment === 'Left') ? (-width / 2) : ((shape.horizontalAlignment === 'Right') ? (width / 2) : 0);\n var offsetx = bounds.width / (newPosition.x - bounds.x);\n var offsety = bounds.height / (newPosition.y - bounds.y);\n if (width > 1) {\n shape.width = width;\n shape.offset.x = 1 / offsetx;\n }\n if (height > 1) {\n shape.height = height;\n shape.offset.y = 1 / offsety;\n }\n }\n }\n if (label instanceof PathAnnotation) {\n label.alignment = 'Center';\n }\n changedvalues = this.getAnnotationChanges(node, label);\n if (node instanceof Node) {\n this.diagram.nodePropertyChange(node, oldValues, changedvalues);\n }\n else {\n this.diagram.connectorPropertyChange(node, oldValues, changedvalues);\n }\n this.diagram.updateDiagramObject(node);\n };\n /** @private */\n CommandHandler.prototype.getSubProcess = function (source) {\n var selector = { nodes: [], connectors: [] };\n var process;\n if (source instanceof Node) {\n process = source.processId;\n }\n else if (source && source.nodes && (source.nodes.length)\n && source.nodes[0].processId) {\n process = source.nodes[0].processId;\n }\n if (process) {\n selector.nodes.push(clone(this.diagram.nameTable[process]));\n return selector;\n }\n return selector;\n };\n /** @private */\n CommandHandler.prototype.checkBoundaryConstraints = function (tx, ty, nodeBounds) {\n var pageSettings = this.diagram.pageSettings;\n var boundaryConstraints = this.diagram.pageSettings.boundaryConstraints;\n var scroller = this.diagram.scroller;\n if (boundaryConstraints === 'Page' || boundaryConstraints === 'Diagram') {\n var selectorBounds = !nodeBounds ? this.diagram.selectedItems.wrapper.bounds : undefined;\n var width = boundaryConstraints === 'Page' ? pageSettings.width : scroller.viewPortWidth;\n var height = boundaryConstraints === 'Page' ? pageSettings.height : scroller.viewPortHeight;\n var bounds = nodeBounds;\n var right = (nodeBounds ? bounds.right : selectorBounds.right) + (tx || 0);\n var left = (nodeBounds ? bounds.left : selectorBounds.left) + (tx || 0);\n var top_2 = (nodeBounds ? bounds.top : selectorBounds.top) + (ty || 0);\n var bottom = (nodeBounds ? bounds.bottom : selectorBounds.bottom) + (ty || 0);\n if (right <= width && left >= 0\n && bottom <= height && top_2 >= 0) {\n return true;\n }\n return false;\n }\n return true;\n };\n //interfaces\n /** @private */\n CommandHandler.prototype.dragSelectedObjects = function (tx, ty) {\n var obj = this.diagram.selectedItems;\n if (this.state && !this.state.backup) {\n this.state.backup = {};\n this.state.backup.offsetX = obj.offsetX;\n this.state.backup.offsetY = obj.offsetY;\n }\n obj = renderContainerHelper(this.diagram, obj) || obj;\n if (this.checkBoundaryConstraints(tx, ty)) {\n this.diagram.diagramActions = this.diagram.diagramActions | (DiagramAction.PreventZIndexOnDragging | DiagramAction.DragUsingMouse);\n var actualObject = this.diagram.selectedObject.actualObject;\n if ((actualObject && actualObject instanceof Node && actualObject.isLane &&\n canLaneInterchange(actualObject, this.diagram)) || (!actualObject || !actualObject.isLane)) {\n this.diagram.drag(obj, tx, ty);\n }\n this.diagram.diagramActions = this.diagram.diagramActions & ~(DiagramAction.PreventZIndexOnDragging | DiagramAction.DragUsingMouse);\n this.diagram.refreshCanvasLayers();\n return true;\n }\n return false;\n };\n /** @private */\n CommandHandler.prototype.scaleSelectedItems = function (sx, sy, pivot) {\n var obj = this.diagram.selectedItems;\n if (this.state && !this.state.backup) {\n this.state.backup = {};\n this.state.backup.offsetX = obj.offsetX;\n this.state.backup.offsetY = obj.offsetY;\n this.state.backup.width = obj.width;\n this.state.backup.height = obj.height;\n this.state.backup.pivot = pivot;\n }\n obj = renderContainerHelper(this.diagram, obj) || obj;\n return this.diagram.scale(obj, sx, sy, pivot);\n };\n /** @private */\n CommandHandler.prototype.rotateSelectedItems = function (angle) {\n var obj = this.diagram.selectedItems;\n if (this.state && !this.state.backup) {\n this.state.backup = {};\n this.state.backup.angle = obj.rotateAngle;\n }\n obj = renderContainerHelper(this.diagram, obj) || obj;\n return this.diagram.rotate(obj, angle);\n };\n /** @private */\n CommandHandler.prototype.hasSelection = function () {\n return hasSelection(this.diagram);\n };\n /** @private */\n CommandHandler.prototype.isSelected = function (element) {\n return isSelected(this.diagram, element);\n };\n /**\n * initExpand is used for layout expand and collapse interaction\n */\n CommandHandler.prototype.initExpand = function (args) {\n var propName = 'isProtectedOnChange';\n var protectedChange = this.diagram[propName];\n this.diagram.protectPropertyChange(true);\n var node = (args.target || args.source);\n var oldValues = { isExpanded: node.isExpanded };\n node.isExpanded = !node.isExpanded;\n this.diagram.preventNodesUpdate = true;\n this.diagram.diagramActions |= DiagramAction.PreventIconsUpdate;\n this.diagram.nodePropertyChange(node, oldValues, { isExpanded: node.isExpanded });\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PreventIconsUpdate;\n this.diagram.preventNodesUpdate = false;\n for (var _i = 0, _a = this.diagram.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.diagram.views[temp];\n if (!(view instanceof Diagram)) {\n this.diagram.refreshCanvasDiagramLayer(view);\n }\n }\n this.diagram.protectPropertyChange(protectedChange);\n };\n /** @private */\n CommandHandler.prototype.expandNode = function (node, diagram, canLayout) {\n var animation;\n //let objects: ILayout;\n var preventNodesUpdate = this.diagram.preventNodesUpdate;\n var expand = node.isExpanded;\n this.diagram.preventNodesUpdate = true;\n this.diagram.preventConnectorsUpdate = true;\n this.expandCollapse(node, expand, this.diagram);\n node.isExpanded = expand;\n var fixedNode = this.diagram.layout.fixedNode;\n this.diagram.layout.fixedNode = node.id;\n if ((this.diagram.diagramActions != DiagramAction.Render) && this.diagram.layoutAnimateModule && this.diagram.layout.enableAnimation && this.diagram.organizationalChartModule) {\n this.diagram.organizationalChartModule.isAnimation = true;\n }\n this.diagram.blazorActions |= BlazorAction.expandNode;\n var objects = {};\n if (!canLayout) {\n // BLAZ-22230 - Added below code to check if its blazor means then we set canUpdateTemplate as true\n if (isBlazor()) {\n this.canUpdateTemplate = true;\n }\n objects = this.diagram.doLayout();\n }\n this.canUpdateTemplate = false;\n this.diagram.blazorActions &= ~BlazorAction.expandNode;\n this.diagram.preventNodesUpdate = preventNodesUpdate;\n this.diagram.preventConnectorsUpdate = false;\n if (this.diagram.layoutAnimateModule && this.diagram.organizationalChartModule && !canLayout) {\n this.diagram.allowServerDataBinding = false;\n this.layoutAnimateModule.expand(this.diagram.layout.enableAnimation, objects, node, this.diagram);\n }\n else {\n var arg = {\n element: cloneBlazorObject(clone(node)), state: (node.isExpanded) ? true : false\n };\n this.triggerEvent(DiagramEvent.expandStateChange, arg);\n if (this.diagram.lineRoutingModule && this.diagram.constraints & DiagramConstraints.LineRouting) {\n this.diagram.resetSegments();\n }\n }\n this.diagram.layout.fixedNode = fixedNode === '' ? '' : this.diagram.layout.fixedNode;\n return objects;\n };\n CommandHandler.prototype.getparentexpand = function (target, diagram, visibility, connector) {\n var boolean;\n for (var i = 0; i < target.inEdges.length; i++) {\n var newConnector = diagram.nameTable[target.inEdges[i]];\n var previousNode = diagram.nameTable[newConnector.sourceID];\n if (previousNode.isExpanded && !visibility && previousNode.id !== connector.sourceID && newConnector.visible) {\n return false;\n }\n else {\n boolean = true;\n }\n }\n return boolean;\n };\n /**\n * Setinterval and Clear interval for layout animation\n */\n /** @private */\n CommandHandler.prototype.expandCollapse = function (source, visibility, diagram) {\n for (var i = 0; i < source.outEdges.length; i++) {\n var connector = diagram.nameTable[source.outEdges[i]];\n var target = diagram.nameTable[connector.targetID];\n var value = this.getparentexpand(target, diagram, visibility, connector);\n connector.visible = visibility;\n var oldValues = {\n visible: target.visible,\n style: { opacity: target.wrapper.style.opacity }\n };\n var newValues = {\n visible: target.visible,\n style: { opacity: target.wrapper.style.opacity }\n };\n if (value) {\n if (target.isExpanded) {\n this.expandCollapse(target, visibility, diagram);\n }\n target.visible = visibility;\n target.style.opacity = (this.diagram.layoutAnimateModule &&\n this.diagram.layout.enableAnimation && visibility) ? 0.1 : target.style.opacity;\n diagram.nodePropertyChange(target, oldValues, newValues);\n }\n diagram.connectorPropertyChange(connector, oldValues, newValues);\n }\n };\n /**\n * @private\n */\n CommandHandler.prototype.updateNodeDimension = function (obj, rect) {\n if (obj instanceof Node) {\n obj.offsetX = rect.x + rect.width / 2;\n obj.offsetY = rect.y + rect.height / 2;\n obj.width = rect.width;\n obj.height = rect.height;\n obj.wrapper.children[0].canMeasurePath = true;\n this.diagram.nodePropertyChange(obj, {}, {\n width: rect.width, height: rect.height, offsetX: obj.offsetX,\n offsetY: obj.offsetY\n });\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * @private\n */\n CommandHandler.prototype.updateConnectorPoints = function (obj, rect) {\n if (obj instanceof Connector && obj.type !== 'Bezier') {\n this.diagram.connectorPropertyChange(obj, {}, {\n targetPoint: obj.targetPoint\n });\n this.diagram.updateDiagramObject(obj);\n }\n else {\n this.diagram.connectorPropertyChange(obj, {}, { segments: obj.segments });\n this.diagram.updateDiagramObject(obj);\n }\n };\n /**\n * @private\n */\n CommandHandler.prototype.updateSelectedNodeProperties = function (object) {\n if (this.diagram.lineRoutingModule && (this.diagram.constraints & DiagramConstraints.LineRouting)) {\n var previousNodeObject = [];\n var previousConnectorObject = [];\n var updateNodeObject = [];\n var updateConnectorObject = [];\n var changeNodes = [];\n var changeConnectors = [];\n this.diagram.protectPropertyChange(true);\n var objects = [];\n var connectors = [];\n var actualObject = this.diagram.selectedObject.actualObject;\n var helperObject = this.diagram.selectedObject.helperObject;\n if (helperObject && actualObject) {\n var offsetX = (helperObject.offsetX - actualObject.offsetX);\n var offsetY = (helperObject.offsetY - actualObject.offsetY);\n var width = (helperObject.width - actualObject.width);\n var height = (helperObject.height - actualObject.height);\n var rotateAngle = (helperObject.rotateAngle - actualObject.rotateAngle);\n if (this.diagram.selectedItems.nodes.length + this.diagram.selectedItems.connectors.length > 0) {\n this.diagram.selectedItems.wrapper.rotateAngle = this.diagram.selectedItems.rotateAngle = helperObject.rotateAngle;\n }\n if (actualObject instanceof Node &&\n actualObject.shape.type !== 'SwimLane' && !actualObject.isLane && !actualObject.isPhase && !actualObject.isHeader) {\n if (actualObject.offsetX !== actualObject.wrapper.offsetX || actualObject.offsetY !== actualObject.wrapper.offsetY ||\n actualObject.width !== actualObject.wrapper.width || actualObject.height !== actualObject.wrapper.height ||\n actualObject.rotateAngle !== actualObject.wrapper.rotateAngle) {\n if (isBlazor()) {\n previousNodeObject.push(cloneObject(actualObject, undefined, undefined, true));\n }\n actualObject.offsetX += offsetX;\n actualObject.offsetY += offsetY;\n actualObject.width += width;\n actualObject.height += height;\n actualObject.rotateAngle += rotateAngle;\n this.diagram.nodePropertyChange(actualObject, {}, {\n offsetX: actualObject.offsetX, offsetY: actualObject.offsetY,\n width: actualObject.width, height: actualObject.height, rotateAngle: actualObject.rotateAngle\n });\n if (isBlazor()) {\n updateNodeObject.push(cloneObject(actualObject, undefined, undefined, true));\n }\n }\n objects = this.diagram.spatialSearch.findObjects(actualObject.wrapper.outerBounds);\n }\n else if (actualObject instanceof Selector) {\n for (var i = 0; i < actualObject.nodes.length; i++) {\n var node = actualObject.nodes[i];\n if (node instanceof Node && node.shape.type !== 'SwimLane' && !node.isLane\n && !node.isPhase && !node.isHeader) {\n node.offsetX += offsetX;\n node.offsetY += offsetY;\n node.width += width;\n node.height += height;\n node.rotateAngle += rotateAngle;\n this.diagram.nodePropertyChange(node, {}, {\n offsetX: node.offsetX, offsetY: node.offsetY,\n width: node.width, height: node.height, rotateAngle: node.rotateAngle\n });\n objects = objects.concat(this.diagram.spatialSearch.findObjects(actualObject.wrapper.outerBounds));\n }\n }\n }\n }\n else {\n if (object instanceof Connector) {\n objects.push(object);\n }\n else if (object instanceof Selector && object.connectors.length) {\n objects = objects.concat(object.connectors);\n }\n }\n for (var i = 0; i < objects.length; i++) {\n if (objects[i] instanceof Connector && connectors.indexOf(objects[i].id) === -1) {\n connectors.push(objects[i].id);\n }\n }\n this.diagram.lineRoutingModule.renderVirtualRegion(this.diagram, true);\n for (var i = 0; i < connectors.length; i++) {\n var connector = this.diagram.nameTable[connectors[i]];\n if (connector instanceof Connector && connector.type === 'Orthogonal') {\n if (isBlazor()) {\n previousConnectorObject.push(cloneObject(connector, undefined, undefined, true));\n }\n // EJ2-65876 - Exception occurs on line routing injection module\n if (connector.sourceID != connector.targetID) {\n //EJ2-69573 - Excecption occurs when calling doLayout method with the lineRouting module \n var sourceNode = this.diagram.getObject(connector.sourceID);\n var targetNode = this.diagram.getObject(connector.targetID);\n var Connectorlength1 = targetNode.wrapper.outerBounds.middleLeft.x - sourceNode.wrapper.outerBounds.middleRight.x;\n var Connectorlength2 = targetNode.wrapper.outerBounds.topCenter.y - sourceNode.wrapper.outerBounds.bottomCenter.y;\n if (Connectorlength1 > 30 || Connectorlength2 > 30) {\n this.diagram.lineRoutingModule.refreshConnectorSegments(this.diagram, connector, true);\n }\n }\n if (isBlazor()) {\n updateConnectorObject.push(cloneObject(connector, undefined, undefined, true));\n }\n }\n }\n this.updateSelector();\n if (isBlazor()) {\n this.getObjectChanges(previousNodeObject, updateNodeObject, changeNodes);\n this.getObjectChanges(previousConnectorObject, updateConnectorObject, changeConnectors);\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n var diagramObject = { nodes: changeNodes, connectors: changeConnectors };\n if (window && window[blazor] && (changeConnectors.length + changeNodes.length)) {\n var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramObject };\n window[blazorInterop].updateBlazorProperties(obj, this.diagram);\n }\n }\n this.diagram.protectPropertyChange(false);\n }\n };\n /** @private */\n CommandHandler.prototype.drawSelectionRectangle = function (x, y, width, height) {\n this.diagram.drawSelectionRectangle(x, y, width, height);\n };\n /** @private */\n CommandHandler.prototype.startGroupAction = function () {\n this.diagram.startGroupAction();\n };\n /** @private */\n CommandHandler.prototype.endGroupAction = function () {\n this.diagram.endGroupAction();\n };\n /** @private */\n CommandHandler.prototype.removeChildFromBPmn = function (child, newTarget, oldTarget) {\n var obj = this.diagram.nameTable[child.id] || child.nodes[0];\n if (oldTarget) {\n if ((obj) && obj.processId && obj.processId === oldTarget.wrapper.id) {\n var node = clone(obj);\n node.processId = obj.processId;\n this.diagram.startGroupAction();\n var edges = [];\n edges = edges.concat(obj.outEdges, obj.inEdges);\n for (var i = edges.length - 1; i >= 0; i--) {\n var connector = this.diagram.nameTable[edges[i]];\n if (connector) {\n this.diagram.remove(connector);\n }\n }\n //let nodeCollection: string[];\n var nodeCollection = (this.diagram.nameTable[obj.processId].shape.activity.subProcess.processes) || [];\n nodeCollection.splice(nodeCollection.indexOf((obj).id), 1);\n this.diagram.bpmnModule.removeChildFromBPMN(this.diagram.nameTable[obj.processId].wrapper, (obj).id);\n this.diagram.nameTable[(obj).id].processId = '';\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n var undoElement = clone(obj);\n var entry = {\n type: 'PositionChanged', redoObject: { nodes: [undoElement] }, undoObject: { nodes: [node] }, category: 'Internal'\n };\n this.addHistoryEntry(entry);\n this.diagram.endGroupAction();\n }\n }\n };\n /** @private */\n CommandHandler.prototype.isDroppable = function (source, targetNodes) {\n var node = this.diagram.nameTable[source.id] || source.nodes[0];\n if (node instanceof Node) {\n if ((!isBlazor() && node.shape.shape === 'TextAnnotation') ||\n (isBlazor() && node.shape.bpmnShape === 'TextAnnotation')) {\n return true;\n }\n if (node && node.shape.type === 'Bpmn') {\n if ((node.processId === targetNodes.id) || (node.id === targetNodes.processId) ||\n targetNodes.shape.type === 'Bpmn'\n && targetNodes.shape.activity.subProcess.collapsed) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n /**\n * @private\n */\n CommandHandler.prototype.renderHighlighter = function (args, connectHighlighter, source) {\n var bounds = new Rect();\n if ((args.target instanceof Node) || (connectHighlighter && (args.source instanceof Node))) {\n var tgt = connectHighlighter ? args.source : args.target;\n var tgtWrap = connectHighlighter ? args.sourceWrapper : args.targetWrapper;\n var target = this.findTarget(tgtWrap, tgt, source, true);\n var element = void 0;\n if (target instanceof BpmnSubEvent) {\n var portId = target.id;\n var node = args.target;\n var parent_8 = node.wrapper.children[0].children[0].children[2];\n for (var _i = 0, _a = parent_8.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.id === node.id + '_' + portId) {\n element = child.children[0];\n break;\n }\n }\n }\n else {\n element = (target instanceof Node) ?\n target.wrapper : connectHighlighter ? args.sourceWrapper : args.targetWrapper;\n }\n this.diagram.renderHighlighter(element);\n }\n };\n //additional events\n /** @private */\n CommandHandler.prototype.mouseOver = function (source, target, position) {\n //mouse over\n //returns whether the source can move over the target or not\n return true;\n };\n /**\n * @private\n */\n CommandHandler.prototype.snapPoint = function (startPoint, endPoint, tx, ty) {\n var obj = this.diagram.selectedItems;\n var point;\n var towardsLeft = endPoint.x < startPoint.x;\n var towardsTop = endPoint.y < startPoint.y;\n point = { x: tx, y: ty };\n var snappedPoint = point;\n if (this.snappingModule) {\n snappedPoint = this.diagram.snappingModule.snapPoint(this.diagram, obj, towardsLeft, towardsTop, point, startPoint, endPoint);\n }\n return snappedPoint;\n };\n /**\n * @private\n */\n CommandHandler.prototype.removeSnap = function () {\n if ((this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject) && this.snappingModule) {\n this.snappingModule.removeGuidelines(this.diagram);\n }\n };\n /** @private */\n /**Bug(EJ2-62725): Exception occurs when drag and drop the connector inside the swimlane */\n CommandHandler.prototype.dropAnnotation = function (source, target) {\n if (source instanceof Node || source instanceof Selector) {\n var node = (source instanceof Node) ? source : source.nodes[0];\n if (this.diagram.bpmnModule && target.shape.type === 'Bpmn'\n && ((!isBlazor() && node.shape.shape === 'TextAnnotation') ||\n (isBlazor() && node.shape.bpmnShape === 'TextAnnotation'))) {\n var hasTarget = 'hasTarget';\n node[hasTarget] = target.id;\n node.shape.annotation.nodeId = target.id;\n if (!this.diagram.currentSymbol) {\n this.diagram.addTextAnnotation(node.shape.annotation, target);\n node.shape.annotation.nodeId = '';\n this.diagram.remove(node);\n }\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /** @private */\n CommandHandler.prototype.drop = function (source, target, position) {\n //drop\n if (this.diagram.bpmnModule) {\n var sourcenode = (source instanceof Node) ? source : source.nodes[0];\n if (sourcenode && sourcenode.shape.type === 'Bpmn' && target.shape.type === 'Bpmn') {\n this.diagram.bpmnModule.dropBPMNchild(target, (source instanceof Node) ? source : source.nodes[0], this.diagram);\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /** @private */\n CommandHandler.prototype.addHistoryEntry = function (entry) {\n this.diagram.addHistoryEntry(entry);\n };\n /** @private */\n CommandHandler.prototype.align = function (objects, option, type) {\n if (objects.length > 0) {\n var i = 0;\n objects[0] = this.diagram.nameTable[objects[0].id] || objects[0];\n var bounds = (type === 'Object') ? getBounds(objects[0].wrapper) : this.diagram.selectedItems.wrapper.bounds;\n var undoObj = { nodes: [], connectors: [] };\n var redoObj = { nodes: [], connectors: [] };\n for (i = ((type === 'Object') ? (i + 1) : i); i < objects.length; i++) {\n var tx = 0;\n var ty = 0;\n objects[i] = this.diagram.nameTable[objects[i].id] || objects[i];\n var objectBounds = getBounds(objects[i].wrapper);\n if (option === 'Left') {\n tx = bounds.left + objectBounds.width / 2 - objectBounds.center.x;\n }\n else if (option === 'Right') {\n tx = bounds.right - objectBounds.width / 2 - objectBounds.center.x;\n }\n else if (option === 'Top') {\n ty = bounds.top + objectBounds.height / 2 - objectBounds.center.y;\n }\n else if (option === 'Bottom') {\n ty = bounds.bottom - objectBounds.height / 2 - objectBounds.center.y;\n }\n else if (option === 'Center') {\n tx = bounds.center.x - objectBounds.center.x;\n }\n else if (option === 'Middle') {\n ty = bounds.center.y - objectBounds.center.y;\n }\n undoObj = this.storeObject(undoObj, objects[i]);\n this.drag(objects[i], tx, ty);\n this.diagram.updateSelector();\n redoObj = this.storeObject(redoObj, objects[i]);\n }\n undoObj = clone(undoObj);\n redoObj = clone(redoObj);\n var entry = {\n type: 'Align', category: 'Internal',\n undoObject: cloneObject(undoObj), redoObject: cloneObject(redoObj)\n };\n this.addHistoryEntry(entry);\n }\n };\n /**\n * distribute method \\\n *\n * @returns { void } distribute method .\\\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the source value.\n * @param {SizingOptions} option - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.distribute = function (objects, option) {\n if (objects.length > 0) {\n var i = 0;\n //const j: number = 0;\n //const rect: Rect = new Rect();\n //const b: Rect[] = [];\n //let temp: NodeModel | ConnectorModel;\n var right = 0;\n var left = 0;\n var top_3 = 0;\n var bottom = 0;\n var center = 0;\n var middle = 0;\n var btt = 0;\n //const sum: number = 0;\n var undoSelectorObj = { nodes: [], connectors: [] };\n var redoSelectorObj = { nodes: [], connectors: [] };\n for (i = 0; i < objects.length; i++) {\n objects[i] = this.diagram.nameTable[objects[i].id] || objects[i];\n }\n objects = sort(objects, option);\n for (i = 1; i < objects.length; i++) {\n right = right + objects[i].wrapper.bounds.topRight.x - objects[i - 1].wrapper.bounds.topRight.x;\n left = left + objects[i].wrapper.bounds.topLeft.x - objects[i - 1].wrapper.bounds.topLeft.x;\n top_3 = top_3 + objects[i].wrapper.bounds.topRight.y - objects[i - 1].wrapper.bounds.topRight.y;\n bottom = bottom + objects[i].wrapper.bounds.bottomRight.y - objects[i - 1].wrapper.bounds.bottomRight.y;\n center = center + objects[i].wrapper.bounds.center.x - objects[i - 1].wrapper.bounds.center.x;\n middle = middle + objects[i].wrapper.bounds.center.y - objects[i - 1].wrapper.bounds.center.y;\n btt = btt + objects[i].wrapper.bounds.topRight.y - objects[i - 1].wrapper.bounds.bottomRight.y;\n }\n for (i = 1; i < objects.length - 1; i++) {\n var tx = 0;\n var ty = 0;\n var prev = getBounds(objects[i - 1].wrapper);\n var current = getBounds(objects[i].wrapper);\n if (option === 'RightToLeft' || option === 'Center') {\n tx = prev.center.x - current.center.x + (center / (objects.length - 1));\n }\n else if (option === 'Right') {\n tx = prev.topRight.x - current.topRight.x + (right / (objects.length - 1));\n }\n else if (option === 'Left') {\n tx = prev.topLeft.x - current.topLeft.x + (left / (objects.length - 1));\n }\n else if (option === 'Middle') {\n ty = prev.center.y - current.center.y + (middle / (objects.length - 1));\n }\n else if (option === 'Top') {\n ty = prev.topRight.y - current.topRight.y + (top_3 / (objects.length - 1));\n }\n else if (option === 'Bottom') {\n ty = prev.bottomRight.y - current.bottomRight.y + (bottom / (objects.length - 1));\n }\n else if (option === 'BottomToTop') {\n ty = prev.bottomRight.y - current.topRight.y + (btt / (objects.length - 1));\n }\n undoSelectorObj = this.storeObject(undoSelectorObj, objects[i]);\n this.drag(objects[i], tx, ty);\n this.diagram.updateSelector();\n redoSelectorObj = this.storeObject(redoSelectorObj, objects[i]);\n }\n undoSelectorObj = clone(undoSelectorObj);\n redoSelectorObj = clone(redoSelectorObj);\n var entry = {\n type: 'Distribute', category: 'Internal',\n undoObject: cloneObject(undoSelectorObj), redoObject: cloneObject(redoSelectorObj)\n };\n this.addHistoryEntry(entry);\n }\n };\n /* eslint-enable */\n /**\n * sameSize method \\\n *\n * @returns { void } sameSize method .\\\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the source value.\n * @param {SizingOptions} option - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.sameSize = function (objects, option) {\n if (objects.length > 0) {\n var i = 0;\n //let pivot: PointModel;\n var pivot = { x: 0.5, y: 0.5 };\n objects[0] = this.diagram.nameTable[objects[0].id] || objects[0];\n var bounds = getBounds(objects[0].wrapper);\n var undoObject = { nodes: [], connectors: [] };\n var redoObject = { nodes: [], connectors: [] };\n for (i = 1; i < objects.length; i++) {\n objects[parseInt(i.toString(), 10)] = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id] || objects[0];\n var rect = getBounds(objects[parseInt(i.toString(), 10)].wrapper);\n var sw = 1;\n var sh = 1;\n if (option === 'Width') {\n sw = bounds.width / rect.width;\n }\n else if (option === 'Height') {\n sh = bounds.height / rect.height;\n }\n else if (option === 'Size') {\n sw = bounds.width / rect.width;\n sh = bounds.height / rect.height;\n }\n undoObject = this.storeObject(undoObject, objects[parseInt(i.toString(), 10)]);\n this.scale(objects[parseInt(i.toString(), 10)], sw, sh, pivot);\n redoObject = this.storeObject(redoObject, objects[parseInt(i.toString(), 10)]);\n }\n this.diagram.updateSelector();\n undoObject = clone(undoObject);\n redoObject = clone(redoObject);\n var entry = {\n type: 'Sizing', category: 'Internal',\n undoObject: cloneObject(undoObject), redoObject: cloneObject(redoObject)\n };\n this.addHistoryEntry(entry);\n }\n };\n CommandHandler.prototype.storeObject = function (selectorObject, obj) {\n if (obj instanceof Node) {\n selectorObject.nodes.push(clone(obj));\n }\n else {\n selectorObject.connectors.push(clone(obj));\n }\n return selectorObject;\n };\n /**\n * updatePanState method \\\n *\n * @returns { any } updatePanState method .\\\n * @param {number} eventCheck - provide the eventCheck value.\n *\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n CommandHandler.prototype.updatePanState = function (eventCheck) {\n if (eventCheck) {\n this.diagram.realActions = this.diagram.realActions | RealAction.PanInProgress;\n }\n else {\n this.diagram.dataBind();\n var diagramScrollSettings = this.diagram.scrollSettings;\n this.diagram.realActions = this.diagram.realActions & ~RealAction.PanInProgress;\n var Values = {\n VerticalOffset: diagramScrollSettings.verticalOffset, HorizontalOffset: diagramScrollSettings.horizontalOffset,\n ViewportHeight: diagramScrollSettings.viewPortHeight, ViewportWidth: diagramScrollSettings.viewPortWidth,\n CurrentZoom: diagramScrollSettings.currentZoom\n };\n var arg = {\n oldValue: Values,\n newValue: Values, source: this.diagram, panState: 'Completed'\n };\n this.triggerEvent(DiagramEvent.scrollChange, arg);\n }\n };\n /**\n * dataBinding method \\\n *\n * @returns { void } dataBinding method .\\\n *\n * @private\n */\n CommandHandler.prototype.dataBinding = function () {\n this.diagram.dataBind();\n };\n CommandHandler.prototype.setBlazorDiagramProps = function (arg) {\n this.diagram.setBlazorDiagramProps(arg);\n };\n /**\n * scroll method \\\n *\n * @returns { void } scroll method .\\\n * @param {number} scrollX - provide the source value.\n * @param {number} scrollY - provide the target value.\n * @param {PointModel} focusPoint - provide the layoutOrientation value.\n *\n * @private\n */\n CommandHandler.prototype.scroll = function (scrollX, scrollY, focusPoint) {\n var panx = canPanX(this.diagram);\n var pany = canPanY(this.diagram);\n var canPan = true;\n if (isBlazor()) {\n this.diagram.setCursor('grabbing');\n this.diagram.scroller.zoom(1, (scrollX = panx ? scrollX : 0) * this.diagram.scroller.currentZoom, (scrollY = pany ? scrollY : 0) * this.diagram.scroller.currentZoom, focusPoint);\n }\n else {\n this.diagram.pan((scrollX = panx ? scrollX : 0) * this.diagram.scroller.currentZoom, (scrollY = pany ? scrollY : 0) * this.diagram.scroller.currentZoom, focusPoint, canPan);\n }\n };\n /**\n * drawHighlighter method \\\n *\n * @returns { NodeModel | ConnectorModel } drawHighlighter method .\\\n * @param {IElement} element - provide the element value.\n *\n * @private\n */\n CommandHandler.prototype.drawHighlighter = function (element) {\n this.diagram.renderHighlighter(element.wrapper);\n };\n /**\n * removeHighlighter method \\\n *\n * @returns { void } removeHighlighter method .\\\n *\n * @private\n */\n CommandHandler.prototype.removeHighlighter = function () {\n this.diagram.clearHighlighter();\n };\n /**\n * renderContainerHelper method \\\n *\n * @returns { NodeModel | ConnectorModel } renderContainerHelper method .\\\n * @param {NodeModel | SelectorModel | ConnectorModel} node - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.renderContainerHelper = function (node) {\n return renderContainerHelper(this.diagram, node);\n };\n /**\n * isParentAsContainer method \\\n *\n * @returns { boolean } isParentAsContainer method .\\\n * @param {NodeModel} node - provide the parent value.\n * @param {boolean} isChild - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.isParentAsContainer = function (node, isChild) {\n return checkParentAsContainer(this.diagram, node, isChild);\n };\n /**\n * dropChildToContainer method \\\n *\n * @returns { void } dropChildToContainer method .\\\n * @param {NodeModel} parent - provide the parent value.\n * @param {NodeModel} node - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.dropChildToContainer = function (parent, node) {\n if (!(this.diagram.diagramActions & DiagramAction.PreventLaneContainerUpdate)) {\n //EJ2-66591 - Droping BPMN text annotation node inside the swimlane is not working properly.\n if (!(node.shape.type === 'Bpmn' && node.shape.shape === 'TextAnnotation')) {\n addChildToContainer(this.diagram, parent, node);\n }\n }\n };\n /**\n * @returns { void } updateLaneChildrenZindex method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {IElement} target - provide the target value.\n * @private\n */\n CommandHandler.prototype.updateLaneChildrenZindex = function (node, target) {\n var lowerIndexobject = this.findLeastIndexObject(node, target);\n var swimlane = this.diagram.nameTable[target.parentId];\n if (swimlane && swimlane.zIndex > lowerIndexobject.zIndex) {\n var layerIndex = this.diagram.layers.indexOf(this.diagram.getActiveLayer());\n var layerZIndexTable = this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable;\n var tempTable = JSON.parse(JSON.stringify(layerZIndexTable));\n var startIndex = lowerIndexobject.zIndex;\n var endIndex = swimlane.zIndex;\n for (var i = endIndex; i >= startIndex; i--) {\n if (startIndex !== i) {\n if (!layerZIndexTable[i - 1]) {\n layerZIndexTable[i - 1] = layerZIndexTable[parseInt(i.toString(), 10)];\n this.diagram.nameTable[layerZIndexTable[i - 1]].zIndex = i;\n delete layerZIndexTable[parseInt(i.toString(), 10)];\n }\n else {\n //bringing the objects forward\n layerZIndexTable[parseInt(i.toString(), 10)] = layerZIndexTable[i - 1];\n this.diagram.nameTable[layerZIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n }\n }\n else {\n var tempIndex = this.swapZIndexObjects(endIndex, layerZIndexTable, swimlane.id, tempTable);\n }\n }\n if (this.diagram.mode === 'SVG') {\n this.moveSvgNode(target.parentId, lowerIndexobject.id);\n this.updateNativeNodeIndex(target.parentId, lowerIndexobject.id);\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n }\n };\n CommandHandler.prototype.findLeastIndexConnector = function (edges, target, index) {\n for (var i = 0; i < edges.length; i++) {\n var connector = this.diagram.nameTable[edges[parseInt(i.toString(), 10)]];\n if (index.zIndex > connector.zIndex) {\n index = connector;\n }\n }\n return index;\n };\n CommandHandler.prototype.findLeastIndexObject = function (node, target) {\n var lowerIndexobject = node;\n if (node instanceof Node) {\n lowerIndexobject = this.findLeastIndexConnector(node.inEdges, target, lowerIndexobject);\n lowerIndexobject = this.findLeastIndexConnector(node.outEdges, target, lowerIndexobject);\n }\n return lowerIndexobject;\n };\n /**\n * checkSelection method \\\n *\n * @returns { void } checkSelection method .\\\n * @param {SelectorModel} selector - provide the source value.\n * @param {string} corner - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.checkSelection = function (selector, corner) {\n var node; // let wrapper: GridPanel; let child: Container; let index: number; let shape: SwimLaneModel;\n if (selector.nodes.length === 1 && selector.connectors.length === 0) {\n if (checkParentAsContainer(this.diagram, selector.nodes[0], true)) {\n node = (selector.nodes[0].shape === 'SwimLane') ? selector.nodes[0] :\n this.diagram.nameTable[selector.nodes[0].parentId];\n var child = selector.nodes[0];\n if (node.shape.type === 'SwimLane') {\n var orientation_1 = (node.shape.orientation === 'Horizontal') ? true : false;\n if ((child.isPhase && ((orientation_1 && corner === 'ResizeSouth') || (!orientation_1 && corner === 'ResizeEast'))) ||\n (child.isLane && ((orientation_1 && corner === 'ResizeEast') || (!orientation_1 && corner === 'ResizeSouth')))) {\n swimLaneSelection(this.diagram, node, corner);\n }\n }\n else if (node.container.type === 'Grid') {\n if (((node.container.orientation === 'Horizontal' && child.rowIndex === 1) ||\n (node.container.orientation === 'Vertical' && child.rowIndex > 0 && child.columnIndex > 0))) {\n if (corner === 'ResizeSouth') {\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var obj = this.diagram.nodes[parseInt(i.toString(), 10)];\n if (obj.rowIndex === node.rows.length - 1 && obj.columnIndex === 0) {\n this.select(obj);\n break;\n }\n }\n }\n }\n else {\n if (corner === 'ResizeEast') {\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var obj = this.diagram.nodes[parseInt(i.toString(), 10)];\n if (obj.rowIndex === 1 && obj.columnIndex === node.columns.length - 1) {\n this.select(obj);\n break;\n }\n }\n }\n }\n }\n }\n else {\n swimLaneSelection(this.diagram, selector.nodes[0], corner);\n }\n }\n };\n /**\n * zoom method \\\n *\n * @returns { void } zoom method .\\\n * @param {number} scale - provide the source value.\n * @param {number} scrollX - provide the target value.\n * @param {number} scrollY - provide the layoutOrientation value.\n * @param {PointModel} focusPoint - provide the layoutOrientation value.\n *\n * @private\n */\n CommandHandler.prototype.zoom = function (scale, scrollX, scrollY, focusPoint) {\n this.diagram.scroller.zoom(scale, scrollX * this.diagram.scroller.currentZoom, scrollY * this.diagram.scroller.currentZoom, focusPoint);\n };\n return CommandHandler;\n}());\nexport { CommandHandler };\n","import { Rect } from '../primitives/rect';\nimport { RealAction, ScrollActions } from '../enum/enum';\nimport { identityMatrix, scaleMatrix, translateMatrix, transformPointByMatrix, multiplyMatrix } from '../primitives/matrix';\nimport { updateRuler } from '../ruler/ruler';\nimport { canZoom, canPan, canVitualize } from './../utility/constraints-util';\n/**\n */\nvar DiagramScroller = /** @class */ (function () {\n function DiagramScroller(diagram) {\n /** @private */\n this.transform = { tx: 0, ty: 0, scale: 1 };\n /** @private */\n this.oldCollectionObjects = [];\n /** @private */\n this.removeCollection = [];\n this.vPortWidth = 0;\n this.vPortHeight = 0;\n this.currentZoomFActor = 1;\n this.hOffset = 0;\n this.vOffset = 0;\n this.scrolled = false;\n this.hScrollSize = 0;\n this.vScrollSize = 0;\n this.diagram = diagram;\n this.objects = [];\n this.transform = diagram.scroller ? diagram.scroller.transform : { tx: 0, ty: 0, scale: 1 };\n this.vPortWidth = diagram.scrollSettings.viewPortWidth;\n this.vPortHeight = diagram.scrollSettings.viewPortHeight;\n this.currentZoomFActor = diagram.scrollSettings.currentZoom;\n this.hOffset = diagram.scrollSettings.horizontalOffset;\n this.vOffset = diagram.scrollSettings.verticalOffset;\n }\n Object.defineProperty(DiagramScroller.prototype, \"viewPortHeight\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.vPortHeight;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.vPortHeight = offset;\n this.diagram.scrollSettings.viewPortHeight = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"currentZoom\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.currentZoomFActor;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.currentZoomFActor = offset;\n this.diagram.scrollSettings.currentZoom = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"viewPortWidth\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.vPortWidth;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.vPortWidth = offset;\n this.diagram.scrollSettings.viewPortWidth = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"horizontalOffset\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.hOffset;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.hOffset = offset;\n if (Math.abs(this.hOffset - this.diagram.scrollSettings.horizontalOffset) > 1) {\n this.diagram.realActions = this.diagram.realActions | RealAction.hScrollbarMoved;\n this.scrolled = true;\n }\n this.diagram.scrollSettings.horizontalOffset = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"verticalOffset\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.vOffset;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.vOffset = offset;\n if (Math.abs(this.vOffset - this.diagram.scrollSettings.verticalOffset) > 1) {\n this.diagram.realActions = this.diagram.realActions | RealAction.vScrollbarMoved;\n this.scrolled = true;\n }\n this.diagram.scrollSettings.verticalOffset = offset;\n },\n enumerable: true,\n configurable: true\n });\n // Method added to get bounds value if diagram is loaded from negative axis.\n // SF-359118 implemented for this ticket requirement.\n DiagramScroller.prototype.getBounds = function () {\n var pageBounds;\n var postion = this.diagram.spatialSearch.getPageBounds(0, 0);\n if ((postion.x < 0 || postion.y < 0) && !this.diagram.pageSettings.multiplePage) {\n pageBounds = this.getPageBounds(undefined, undefined, true, true);\n }\n else {\n pageBounds = this.getPageBounds(undefined, undefined, true);\n }\n return pageBounds;\n };\n /**\n * updateScrollOffsets method \\\n *\n * @returns { void } updateScrollOffsets method .\\\n * @param {number} hOffset - provide the hOffset value.\n * @param {number} vOffset - provide the vOffset value.\n *\n * @private\n */\n DiagramScroller.prototype.updateScrollOffsets = function (hOffset, vOffset) {\n var offsetX = 0;\n var offsetY = 0;\n var pageBounds = this.getBounds();\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n pageBounds.width *= this.currentZoom;\n pageBounds.height *= this.currentZoom;\n offsetX = Math.max(0, hOffset - pageBounds.left);\n offsetY = Math.max(0, vOffset - pageBounds.top);\n if (hOffset !== undefined && vOffset !== undefined) {\n this.horizontalOffset = offsetX;\n this.verticalOffset = offsetY;\n this.diagram.setOffset(offsetX, offsetY);\n }\n else {\n this.diagram.setOffset(-this.horizontalOffset - pageBounds.x, -this.verticalOffset - pageBounds.y);\n }\n this.transform = {\n tx: Math.max(this.horizontalOffset, -pageBounds.left) / this.currentZoom, ty: Math.max(this.verticalOffset, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n };\n /**\n * setScrollOffset method \\\n *\n * @returns { void } setScrollOffset method .\\\n * @param {number} hOffset - provide the hOffset value.\n * @param {number} vOffset - provide the vOffset value.\n *\n * @private\n */\n DiagramScroller.prototype.setScrollOffset = function (hOffset, vOffset) {\n this.scrolled = false;\n var pageBounds = this.getBounds();\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n pageBounds.width *= this.currentZoom;\n pageBounds.height *= this.currentZoom;\n var x = -pageBounds.left;\n var y = -pageBounds.top;\n var set = false;\n var viewWidth = this.viewPortWidth * this.currentZoom;\n var viewHeight = this.viewPortHeight * this.currentZoom;\n var newX = x - hOffset;\n if (newX !== this.horizontalOffset) {\n if (x < this.horizontalOffset) {\n if (this.horizontalOffset > newX) {\n this.horizontalOffset -= hOffset;\n }\n else {\n this.horizontalOffset = newX;\n }\n set = true;\n }\n var right = Math.max(pageBounds.right + this.vScrollSize, viewWidth);\n if (!set && right < -newX + this.viewPortWidth) {\n var actualRight = -newX + viewWidth - this.vScrollSize;\n var currentRight = -this.horizontalOffset + viewWidth - this.vScrollSize;\n if (actualRight < currentRight) {\n //define\n this.horizontalOffset = newX;\n }\n else {\n if (actualRight - pageBounds.right > actualRight - currentRight) {\n this.horizontalOffset = newX;\n }\n else {\n this.horizontalOffset = -(pageBounds.right + this.vScrollSize - viewWidth);\n }\n }\n set = true;\n }\n if (!set) {\n this.horizontalOffset = x - hOffset;\n }\n }\n set = false;\n //vertical offset\n var newY = y - vOffset;\n if (newY !== this.verticalOffset) {\n if (y < this.verticalOffset) {\n if (this.verticalOffset > newY) {\n this.verticalOffset -= vOffset;\n }\n else {\n this.verticalOffset = newY;\n }\n set = true;\n }\n var bottom = Math.max(pageBounds.bottom + this.hScrollSize, viewHeight);\n if (!set && bottom < -newY + viewHeight) {\n var actualBottom = -newY + viewHeight - this.hScrollSize;\n var currentBottom = -this.verticalOffset + viewHeight - this.hScrollSize;\n if (actualBottom < currentBottom) {\n //define\n this.verticalOffset = newY;\n }\n else {\n if (actualBottom - pageBounds.bottom > actualBottom - currentBottom) {\n this.verticalOffset = newY;\n }\n else {\n this.verticalOffset = -(pageBounds.bottom + this.hScrollSize - viewHeight);\n }\n }\n set = true;\n }\n if (!set) {\n this.verticalOffset = y - vOffset;\n }\n }\n this.transform = {\n tx: Math.max(this.horizontalOffset, -pageBounds.left) / this.currentZoom, ty: Math.max(this.verticalOffset, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n this.setSize();\n };\n /**\n * getObjects \\\n *\n * @returns { string[] } To get page pageBounds.\\\n * @param {string[]} coll1 - provide the source value.\n * @param {string[]} coll2 - provide the source value.\n * @private\n */\n DiagramScroller.prototype.getObjects = function (coll1, coll2) {\n var objects = [];\n for (var i = 0; i < coll1.length; i++) {\n var isExist = false;\n for (var j = 0; j < coll2.length; j++) {\n if (coll1[parseInt(i.toString(), 10)] === coll2[parseInt(j.toString(), 10)]) {\n isExist = true;\n break;\n }\n }\n if (!isExist) {\n objects.push(coll1[parseInt(i.toString(), 10)]);\n }\n }\n return objects;\n };\n /**\n * virtualizeElements \\\n *\n * @returns { void } To get page pageBounds.\\\n *\n * @private\n */\n DiagramScroller.prototype.virtualizeElements = function () {\n var viewWidth = this.viewPortWidth / this.currentZoom;\n var viewHeight = this.viewPortHeight / this.currentZoom;\n var oObjects = this.diagram.spatialSearch.findObjects(new Rect(-this.horizontalOffset / this.currentZoom, -this.verticalOffset / this.currentZoom, viewWidth, viewHeight));\n var oObjectsID = [];\n var renderOrder = [];\n for (var j = 0; j < oObjects.length; j++) {\n var bpmnShape = oObjects[parseInt(j.toString(), 10)].shape;\n if (bpmnShape.type === 'Bpmn' && bpmnShape && bpmnShape.activity && bpmnShape.activity.subProcess && bpmnShape.activity.subProcess.processes && bpmnShape.activity.subProcess.processes.length > 0) {\n for (var k = 0; k < bpmnShape.activity.subProcess.processes.length; k++) {\n renderOrder.push(bpmnShape.activity.subProcess.processes[parseInt(k.toString(), 10)]);\n }\n renderOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n }\n else if (oObjects[parseInt(j.toString(), 10)].processId === '' || oObjects[parseInt(j.toString(), 10)].processId === undefined) {\n renderOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n }\n }\n oObjectsID = renderOrder;\n var zindexOrder = [];\n for (var j = 0; j < oObjects.length; j++) {\n var items = oObjects[parseInt(j.toString(), 10)].shape;\n if (items.type === 'Bpmn' && items && items.activity && items.activity.subProcess && items.activity.subProcess.processes && items.activity.subProcess.processes.length > 0) {\n zindexOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n for (var t = 0; t < items.activity.subProcess.processes.length; t++) {\n zindexOrder.push(items.activity.subProcess.processes[parseInt(t.toString(), 10)]);\n }\n }\n else if (oObjects[parseInt(j.toString(), 10)].processId === '' || oObjects[parseInt(j.toString(), 10)].processId === undefined) {\n zindexOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n }\n }\n for (var j = 0; j < oObjects.length; j++) {\n for (var k_1 = 0; k_1 < zindexOrder.length; k_1++) {\n if (oObjects[parseInt(j.toString(), 10)].id === zindexOrder[parseInt(k_1.toString(), 10)]) {\n oObjects[parseInt(j.toString(), 10)].zIndex = k_1;\n break;\n }\n }\n }\n var newObjects = this.getObjects(oObjectsID, this.oldCollectionObjects);\n if (this.oldCollectionObjects.length === 0) {\n this.oldCollectionObjects = oObjectsID;\n }\n var removeObjects = this.getObjects(this.oldCollectionObjects, oObjectsID);\n this.diagram.updateVirtualObjects(newObjects, false, removeObjects);\n this.oldCollectionObjects = oObjectsID;\n };\n /**\n * setSize \\\n *\n * @returns { void } To get page pageBounds.\\\n * @param {PointModel} newOffset - provide the newOffset value.\n *\n * @private\n */\n DiagramScroller.prototype.setSize = function (newOffset) {\n var pageBounds = this.getPageBounds(undefined, undefined, true);\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n pageBounds.width *= this.currentZoom;\n pageBounds.height *= this.currentZoom;\n var x = Math.min(pageBounds.x, -this.horizontalOffset);\n var y = Math.min(pageBounds.y, -this.verticalOffset);\n var difX = -this.horizontalOffset + this.viewPortWidth - pageBounds.right;\n var difY = -this.verticalOffset + this.viewPortHeight - pageBounds.bottom;\n var hScrollSize = this.scrollerWidth;\n var vScrollSize = this.scrollerWidth;\n if (-this.verticalOffset <= pageBounds.y && -this.verticalOffset + this.viewPortHeight >= pageBounds.bottom) {\n vScrollSize = 0;\n }\n if (-this.horizontalOffset <= pageBounds.x && -this.horizontalOffset + this.viewPortWidth >= pageBounds.right) {\n hScrollSize = 0;\n }\n this.hScrollSize = hScrollSize;\n this.vScrollSize = vScrollSize;\n var oldWidth = this.diagramWidth;\n var oldHeight = this.diagramHeight;\n this.diagramWidth = Math.max(pageBounds.right, -this.horizontalOffset + this.viewPortWidth - vScrollSize) - x;\n this.diagramHeight = Math.max(pageBounds.bottom, -this.verticalOffset + this.viewPortHeight - hScrollSize) - y;\n if ((oldWidth !== this.diagramWidth || oldHeight !== this.diagramHeight) && this.diagram.scrollSettings.scrollLimit !== 'Diagram') {\n this.diagram.setSize(this.diagramWidth, this.diagramHeight);\n }\n if (this.diagram.scrollSettings.scrollLimit === 'Diagram') {\n if ((oldWidth !== this.diagramWidth || oldHeight !== this.diagramHeight || this.currentZoom !== 1)\n && ((!this.diagram.diagramActions || !newOffset) || (this.diagram.diagramActions && newOffset &&\n ((this.verticalOffset !== 0 || this.verticalOffset === newOffset.y) &&\n (this.horizontalOffset !== 0 || this.horizontalOffset === newOffset.x))))) {\n if ((this.diagram.scrollActions & ScrollActions.Interaction) && newOffset) {\n this.transform = {\n tx: Math.max(newOffset.x, -(pageBounds.left / this.currentZoom)) / this.currentZoom,\n ty: Math.max(newOffset.y, -(pageBounds.top / this.currentZoom)) / this.currentZoom,\n scale: this.currentZoom\n };\n this.horizontalOffset = newOffset.x;\n this.verticalOffset = newOffset.y;\n }\n this.diagram.setSize(this.diagramWidth, this.diagramHeight);\n if ((!(this.diagram.scrollActions & ScrollActions.PropertyChange)) && newOffset) {\n this.horizontalOffset = newOffset.x;\n this.verticalOffset = newOffset.y;\n this.transform = {\n tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom,\n ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n }\n }\n else if (newOffset && oldWidth === this.diagramWidth && oldHeight === this.diagramHeight &&\n ((this.diagram.diagramCanvas.scrollHeight > this.viewPortHeight &&\n newOffset.y < 0 && this.horizontalOffset === newOffset.x && this.verticalOffset === 0) ||\n (this.diagram.diagramCanvas.scrollWidth > this.viewPortWidth &&\n newOffset.x < 0 && this.verticalOffset === newOffset.y && this.horizontalOffset === 0))) {\n this.verticalOffset = newOffset.y;\n this.horizontalOffset = newOffset.x;\n this.transform = {\n tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom,\n ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n }\n }\n this.diagram.transformLayers();\n this.diagram.element.style.overflow = 'hidden';\n };\n /**\n * setViewPortSize \\\n *\n * @returns { void } To get page pageBounds.\\\n * @param {number} width - provide the factor value.\n * @param {number} height - provide the factor value.\n *\n * @private\n */\n DiagramScroller.prototype.setViewPortSize = function (width, height) {\n this.viewPortWidth = width;\n this.viewPortHeight = height;\n };\n /**\n * To get page pageBounds \\\n *\n * @returns { Rect } To get page pageBounds.\\\n * @param {boolean} boundingRect - provide the factor value.\n * @param {DiagramRegions} region - provide the factor value.\n * @param {boolean} hasPadding - provide the factor value.\n * @param {boolean} isnegativeRegion - provide the isnegativeRegion value.\n *\n * @private\n */\n DiagramScroller.prototype.getPageBounds = function (boundingRect, region, hasPadding, isnegativeRegion) {\n var rect = new Rect();\n var temp = 0;\n var pageBounds;\n if (region !== 'Content' && !isnegativeRegion && this.diagram.pageSettings.width !== null && this.diagram.pageSettings.height !== null) {\n var width = this.diagram.pageSettings.width;\n var height = this.diagram.pageSettings.height;\n var negwidth = 0;\n var negheight = 0;\n if (this.diagram.pageSettings.multiplePage) {\n rect = this.diagram.spatialSearch.getPageBounds(0, 0);\n if (rect.right > width) {\n var x = Math.ceil(rect.right / width);\n width = width * x;\n }\n if (rect.bottom > height) {\n var x = Math.ceil(rect.bottom / height);\n height = height * x;\n }\n if (rect.left < 0 && Math.abs(rect.left) > negwidth) {\n var x = Math.ceil(Math.abs(rect.left) / this.diagram.pageSettings.width);\n negwidth = this.diagram.pageSettings.width * x;\n }\n if (rect.top < 0 && Math.abs(rect.top) > negheight) {\n var x = Math.ceil(Math.abs(rect.top) / this.diagram.pageSettings.height);\n negheight = this.diagram.pageSettings.height * x;\n }\n }\n pageBounds = new Rect((-negwidth), (-negheight), width + negwidth, height + negheight);\n }\n else {\n var origin_1 = boundingRect ? undefined : 0;\n pageBounds = this.diagram.spatialSearch.getPageBounds(origin_1, origin_1);\n }\n if (hasPadding) {\n var scrollpadding = this.diagram.scrollSettings.padding;\n pageBounds.x -= scrollpadding.left;\n pageBounds.y -= scrollpadding.top;\n pageBounds.width += (scrollpadding.left + scrollpadding.right);\n pageBounds.height += (scrollpadding.top + scrollpadding.bottom);\n }\n return pageBounds;\n };\n /**\n * To get page break when PageBreak is set as true \\\n *\n * @returns { Segment[] } To get page break when PageBreak is set as true.\\\n * @param {Rect} pageBounds - provide the factor value.\n *\n * @private\n */\n DiagramScroller.prototype.getPageBreak = function (pageBounds) {\n var i = 0;\n var j = 0;\n var v = -1;\n var collection = [];\n var x1 = 0;\n var x2 = 0;\n var y1 = 0;\n var y2 = 0;\n var left = this.diagram.pageSettings.margin.left;\n var right = this.diagram.pageSettings.margin.right;\n var top = this.diagram.pageSettings.margin.top;\n var bottom = this.diagram.pageSettings.margin.bottom;\n var widthCount = 1;\n var heightCount = 1;\n var segment = { x1: x1, y1: y1, x2: x2, y2: y2 };\n while (pageBounds.width > i) {\n i = i + (this.diagram.pageSettings.width ? this.diagram.pageSettings.width : pageBounds.width);\n if (i === this.diagram.pageSettings.width) {\n segment = {\n x1: pageBounds.left + left, y1: pageBounds.top + top,\n x2: pageBounds.left + left, y2: pageBounds.bottom - bottom\n };\n collection[++v] = segment;\n }\n if (i < pageBounds.width) {\n x1 = pageBounds.topLeft.x + this.diagram.pageSettings.width * widthCount;\n y1 = pageBounds.topLeft.y + top;\n x2 = pageBounds.bottomLeft.x + this.diagram.pageSettings.width * widthCount;\n y2 = pageBounds.bottomLeft.y - bottom;\n segment = { x1: x1, y1: y1, x2: x2, y2: y2 };\n collection[++v] = segment;\n widthCount++;\n }\n if (pageBounds.width === i) {\n segment = {\n x1: pageBounds.right - right, y1: pageBounds.top + top,\n x2: pageBounds.right - right, y2: pageBounds.bottom - bottom\n };\n collection[++v] = segment;\n }\n }\n while (pageBounds.height > j) {\n j = j + (this.diagram.pageSettings.height ? this.diagram.pageSettings.height : pageBounds.height);\n if (j === this.diagram.pageSettings.height) {\n segment = {\n x1: pageBounds.left + left, y1: pageBounds.top + top,\n x2: pageBounds.right - right, y2: pageBounds.top + top\n };\n collection[++v] = segment;\n }\n if (j < pageBounds.height) {\n x1 = pageBounds.topLeft.x + left;\n y1 = pageBounds.topLeft.y + this.diagram.pageSettings.height * heightCount;\n x2 = pageBounds.topRight.x - right;\n y2 = pageBounds.topRight.y + this.diagram.pageSettings.height * heightCount;\n segment = { x1: x1, y1: y1, x2: x2, y2: y2 };\n collection[++v] = segment;\n heightCount++;\n }\n if (pageBounds.height === j) {\n segment = {\n x1: pageBounds.left + left, y1: pageBounds.bottom - bottom,\n x2: pageBounds.right - right, y2: pageBounds.bottom - bottom\n };\n collection[++v] = segment;\n }\n }\n return collection;\n };\n /**\n * zoom method \\\n *\n * @returns { void } zoom method .\\\n * @param {number} factor - provide the factor value.\n * @param {number} deltaX - provide the bounds value.\n * @param {number} deltaY - provide the bounds value.\n * @param {PointModel} focusPoint - provide the bounds value.\n * @param {boolean} isInteractiveZoomPan - provide the isInteractiveZoomPan value.\n * @param {boolean} isBringIntoView - provide the isBringIntoView value.\n *\n * @private\n */\n DiagramScroller.prototype.zoom = function (factor, deltaX, deltaY, focusPoint, isInteractiveZoomPan, isBringIntoView, isTrackpadScroll) {\n if (canZoom(this.diagram) && factor !== 1 || (canPan(this.diagram) && factor === 1)) {\n var matrix = identityMatrix();\n scaleMatrix(matrix, this.currentZoom, this.currentZoom);\n translateMatrix(matrix, this.horizontalOffset, this.verticalOffset);\n focusPoint = focusPoint || {\n x: (this.viewPortWidth / 2 - this.horizontalOffset) / this.currentZoom,\n y: (this.viewPortHeight / 2 - this.verticalOffset) / this.currentZoom\n };\n focusPoint = transformPointByMatrix(matrix, focusPoint);\n if ((this.currentZoom * factor) >= this.diagram.scrollSettings.minZoom &&\n (this.currentZoom * factor) <= this.diagram.scrollSettings.maxZoom) {\n this.currentZoom *= factor;\n var pageBounds = this.getPageBounds(undefined, undefined, true);\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n //target Matrix\n var targetMatrix = identityMatrix();\n scaleMatrix(targetMatrix, factor, factor, focusPoint.x, focusPoint.y);\n translateMatrix(targetMatrix, deltaX || 0, deltaY || 0);\n multiplyMatrix(matrix, targetMatrix);\n var newOffset = transformPointByMatrix(matrix, { x: 0, y: 0 });\n if (factor === 1) {\n // EJ2-69238 - add true as an extra parameter to calcuate the horizontal and vertical offset\n newOffset = this.applyScrollLimit(newOffset.x, newOffset.y, isInteractiveZoomPan, isBringIntoView, isTrackpadScroll);\n }\n // Bug 829925: Scroll bar flickers on scrolling the diagram using touchpad.\n // The below condition is used to avoid the flickering of the scroll bar on scrolling the diagram using trackpad.\n (-(pageBounds.y) >= newOffset.y && -(pageBounds.x) >= newOffset.x && isTrackpadScroll) ? isTrackpadScroll = true : isTrackpadScroll = false;\n if ((this.diagram.scrollActions & ScrollActions.PropertyChange ||\n !(this.diagram.scrollActions & ScrollActions.Interaction)) ||\n this.diagram.scrollSettings.scrollLimit !== 'Diagram' || isTrackpadScroll) {\n this.transform = {\n tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom,\n ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n this.horizontalOffset = newOffset.x;\n this.verticalOffset = newOffset.y;\n }\n this.setSize(newOffset);\n if (this.diagram.mode !== 'SVG' && canVitualize(this.diagram)) {\n this.diagram.scroller.virtualizeElements();\n }\n if (this.diagram.mode !== 'SVG' && !canVitualize(this.diagram)) {\n this.diagram.refreshDiagramLayer();\n }\n this.diagram.setOffset(-this.horizontalOffset - pageBounds.x, -this.verticalOffset - pageBounds.y);\n updateRuler(this.diagram);\n }\n }\n };\n /**\n * fitToPage method \\\n *\n * @returns { void } fitToPage method .\\\n * @param {IFitOptions} options - provide the bounds value.\n *\n * @private\n */\n DiagramScroller.prototype.fitToPage = function (options) {\n options = options || {};\n var mode = options.mode;\n var region = options.region;\n var margin = options.margin || {};\n var canZoomIn = options.canZoomIn;\n var customBounds = options.customBounds;\n margin.bottom = margin.bottom || 25;\n margin.top = margin.top || 25;\n margin.left = margin.left || 25;\n margin.right = margin.right || 25;\n var bounds = customBounds;\n var factor;\n var deltaX = -this.horizontalOffset;\n var deltaY = -this.verticalOffset;\n region = region ? region : 'PageSettings';\n //fit mode\n if ((region === 'PageSettings' && this.diagram.pageSettings.width && this.diagram.pageSettings.height)\n || (this.diagram.nodes.length > 0 || this.diagram.connectors.length > 0)) {\n mode = mode ? mode : 'Page';\n if (region !== 'CustomBounds') {\n bounds = this.getPageBounds(true, region, true);\n }\n var scale = { x: 0, y: 0 };\n scale.x = (this.viewPortWidth - (margin.left + margin.right)) / (bounds.width);\n scale.y = (this.viewPortHeight - (margin.top + margin.bottom)) / (bounds.height);\n if (!canZoomIn && (((bounds.width - this.horizontalOffset) < this.viewPortWidth) &&\n (bounds.height - this.verticalOffset) < this.viewPortHeight)) {\n scale.x = Math.min(this.currentZoom, scale.x);\n scale.y = Math.min(this.currentZoom, scale.y);\n }\n var zoomFactor = void 0;\n var centerX = void 0;\n var centerY = void 0;\n switch (mode) {\n case 'Width':\n zoomFactor = scale.x;\n factor = zoomFactor / this.currentZoom;\n centerX = (this.viewPortWidth - (bounds.width) * zoomFactor) / 2 - bounds.x * zoomFactor;\n deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor;\n deltaY -= -this.verticalOffset * factor;\n deltaY = region !== 'CustomBounds' ? deltaY : deltaY - this.verticalOffset * factor;\n break;\n case 'Height':\n zoomFactor = scale.y;\n factor = (zoomFactor / this.currentZoom);\n centerX = ((this.viewPortWidth - (bounds.width) * zoomFactor) / 2) - bounds.x * zoomFactor;\n centerY = ((this.viewPortHeight - (bounds.height) * zoomFactor) / 2) - bounds.y * zoomFactor;\n deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor;\n deltaY += centerY + (margin.top - margin.bottom) / 2 * zoomFactor;\n break;\n case 'Page':\n zoomFactor = Math.min(scale.x, scale.y);\n factor = (zoomFactor / this.currentZoom);\n centerX = (this.viewPortWidth - (bounds.width) * zoomFactor) / 2 - bounds.x * zoomFactor;\n centerY = (this.viewPortHeight - (bounds.height) * zoomFactor) / 2 - bounds.y * zoomFactor;\n deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor;\n deltaY += centerY + (margin.top - margin.bottom) / 2 * zoomFactor;\n break;\n }\n /**\n * EJ2-62912 - fit to page is not working properly when call it multiple times.\n */\n this.zoom(factor, deltaX, deltaY, { x: 0, y: 0 }, true);\n }\n else {\n factor = 1 / this.currentZoom;\n this.zoom(factor, deltaX, deltaY, { x: 0, y: 0 }, true);\n }\n };\n /**\n * bringIntoView method \\\n *\n * @returns { void } bringIntoView method .\\\n * @param {Rect} rect - provide the bounds value.\n * @param {boolean} isBringIntoView - provide the isBringIntoView value.\n *\n * @private\n */\n DiagramScroller.prototype.bringIntoView = function (rect, isBringIntoView) {\n // EJ2-68130-Bringintoview shows the object outside the viewport\n var x = 0;\n var y = 0;\n var scale = this.currentZoom;\n var bounds = rect;\n var hoffset = -this.horizontalOffset;\n var voffset = -this.verticalOffset;\n bounds = new Rect(bounds.x * scale, bounds.y * scale, bounds.width * scale, bounds.height * scale);\n var view = new Rect(hoffset, voffset, this.viewPortWidth, this.viewPortHeight);\n if (!(view.containsRect(bounds))) {\n if (bounds.right > (-hoffset + this.viewPortWidth)) {\n x = bounds.right - this.viewPortWidth;\n }\n if (bounds.x < -hoffset) {\n x = bounds.x;\n }\n if (bounds.bottom > (-voffset + this.viewPortHeight)) {\n y = bounds.bottom - this.viewPortHeight;\n }\n if (bounds.y < -voffset) {\n y = bounds.y;\n }\n this.zoom(1, -this.horizontalOffset - x, -this.verticalOffset - y, null, undefined, isBringIntoView);\n }\n };\n /**\n * bringToCenter method \\\n *\n * @returns { void } bringToCenter method .\\\n * @param {Rect} bounds - provide the bounds value.\n *\n * @private\n */\n DiagramScroller.prototype.bringToCenter = function (bounds) {\n var scale = this.currentZoom;\n var actualbounds = new Rect(bounds.x * scale, bounds.y * scale, bounds.width * scale, bounds.height * scale);\n var hoffset = actualbounds.x + actualbounds.width / 2 - this.viewPortWidth / 2;\n var voffset = actualbounds.y + actualbounds.height / 2 - this.viewPortHeight / 2;\n /**\n * In applyScrollLimit method the sign of deltaX and deltaY\n * will be changed ,so here we change the sign.\n * similarly for bringIntoView.\n */\n hoffset *= -1;\n voffset *= -1;\n this.zoom(1, -this.horizontalOffset - hoffset, -this.verticalOffset - voffset, null);\n };\n DiagramScroller.prototype.applyScrollLimit = function (hOffset, vOffset, isInteractiveZoomPan, isBringIntoView, isTrackpadScroll) {\n /**\n * EJ2-60980- ScrollOffset is not updated properly in runtime.\n * EJ2-62524 - panning is not working properly in diagram.\n * isInteractiveZoomPan is undefined while setting scrollOffset at runtime.\n */\n if (this.diagram.scrollSettings.scrollLimit === 'Infinity') {\n if (isInteractiveZoomPan === undefined) {\n hOffset = -hOffset;\n vOffset = -vOffset;\n }\n }\n if (this.diagram.scrollSettings.scrollLimit !== 'Infinity') {\n var bounds = void 0;\n if (this.diagram.scrollSettings.scrollLimit === 'Limited') {\n var scrollableBounds = this.diagram.scrollSettings.scrollableArea;\n bounds = new Rect(scrollableBounds.x, scrollableBounds.y, scrollableBounds.width, scrollableBounds.height);\n }\n // Bug 829925: Scroll bar flickers on scrolling the diagram using touchpad.\n bounds = bounds || isTrackpadScroll ? this.getPageBounds() : this.getPageBounds(true);\n bounds.x *= this.currentZoom;\n bounds.y *= this.currentZoom;\n bounds.width *= this.currentZoom;\n bounds.height *= this.currentZoom;\n if (isInteractiveZoomPan !== undefined) {\n hOffset *= -1;\n vOffset *= -1;\n }\n // EJ2-69238 - Added below code to multiple the horizontal and vertical offset to bring the node in viewport\n if (isBringIntoView) {\n hOffset *= -1;\n vOffset *= -1;\n }\n var allowedRight = Math.max(bounds.right, this.viewPortWidth);\n if (!isBringIntoView && !(hOffset <= bounds.x && (hOffset + this.viewPortWidth >= bounds.right ||\n hOffset >= bounds.right - this.viewPortWidth)\n || hOffset >= bounds.x && (hOffset + this.viewPortWidth <= allowedRight))) {\n //not allowed case\n if (hOffset >= bounds.x) {\n hOffset = Math.max(bounds.x, Math.min(hOffset, hOffset - (hOffset + this.viewPortWidth - this.vScrollSize - allowedRight)));\n }\n else {\n var allowed = bounds.right - this.viewPortWidth;\n hOffset = Math.min(allowed, bounds.x);\n }\n }\n var allowedBottom = Math.max(bounds.bottom, this.viewPortHeight);\n // EJ2-69238 - Added below code to restrict the min value calculation for vertical offset in bringIntoview scenarion.\n if (!isBringIntoView && !(vOffset <= bounds.y && vOffset + this.viewPortHeight >= bounds.bottom\n || vOffset >= bounds.y && vOffset + this.viewPortHeight <= allowedBottom)) {\n //not allowed case\n if (vOffset >= bounds.y) {\n vOffset = Math.max(bounds.y, Math.min(vOffset, vOffset - (vOffset + this.viewPortHeight - this.hScrollSize - allowedBottom)));\n }\n else {\n var allowed = bounds.bottom - this.viewPortHeight;\n vOffset = Math.min(bounds.y, allowed);\n }\n }\n hOffset *= -1;\n vOffset *= -1;\n }\n return { x: hOffset, y: vOffset };\n };\n return DiagramScroller;\n}());\nexport { DiagramScroller };\n","/**\n * Quad helps to maintain a set of objects that are contained within the particular region\n */\n/** @private */\nvar Quad = /** @class */ (function () {\n /**\n * Constructor for creating the Quad class\n *\n * @param {number} left The symbol palette model.\n * @param {number} top The symbol palette element.\n * @param {number} width The symbol palette element.\n * @param {number} height The symbol palette element.\n * @param {SpatialSearch} spatialSearching The symbol palette element.\n * @private\n */\n function Quad(left, top, width, height, spatialSearching) {\n this.objects = [];\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n this.spatialSearch = spatialSearching;\n }\n /**\n * findQuads method\\\n *\n * @returns { void} findQuads method .\\\n * @param {Rect} currentViewPort - provide the options value.\n * @param {Quad[]} quads - provide the options value.\n * @private\n */\n Quad.prototype.findQuads = function (currentViewPort, quads) {\n if (this.first != null && this.first.isIntersect(currentViewPort)) {\n this.first.findQuads(currentViewPort, quads);\n }\n if (this.second != null && this.second.isIntersect(currentViewPort)) {\n this.second.findQuads(currentViewPort, quads);\n }\n if (this.third != null && this.third.isIntersect(currentViewPort)) {\n this.third.findQuads(currentViewPort, quads);\n }\n if (this.fourth != null && this.fourth.isIntersect(currentViewPort)) {\n this.fourth.findQuads(currentViewPort, quads);\n }\n if (this.objects.length > 0) {\n quads.push(this);\n }\n };\n Quad.prototype.isIntersect = function (t) {\n if (this.left + this.width < t.left || this.top + this.height < t.top || this.left > t.right || this.top > t.bottom) {\n return false;\n }\n return true;\n };\n /**\n * selectQuad method\\\n *\n * @returns { Quad } selectQuad method .\\\n * @private\n */\n Quad.prototype.selectQuad = function () {\n var target = null;\n // eslint-disable-next-line\n var current = this;\n var quadSet;\n while (current != null) {\n quadSet = current.getQuad(target);\n current = quadSet.source;\n target = quadSet.target || target;\n }\n return target;\n };\n Quad.prototype.getQuad = function (target) {\n target = null;\n var halfWidth = this.width / 2;\n var halfHeight = this.height / 2;\n if (halfWidth >= 1000 && halfHeight >= 1000) {\n var xCenter = this.left + halfWidth;\n var yCenter = this.top + halfHeight;\n if (this.spatialSearch.childRight <= xCenter) {\n if (this.spatialSearch.childBottom <= yCenter) {\n if (!this.first) {\n var newQuad = new Quad(this.left, this.top, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.first = newQuad;\n }\n return { source: this.first };\n }\n if (this.spatialSearch.childTop >= yCenter) {\n if (!this.third) {\n var newQuad = new Quad(this.left, yCenter, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.third = newQuad;\n }\n return { source: this.third };\n }\n }\n else if (this.spatialSearch.childLeft >= xCenter) {\n if (this.spatialSearch.childBottom <= yCenter) {\n if (!this.second) {\n var newQuad = new Quad(xCenter, this.top, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.second = newQuad;\n }\n return { source: this.second };\n }\n if (this.spatialSearch.childTop >= yCenter) {\n if (!this.fourth) {\n var newQuad = new Quad(xCenter, yCenter, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.fourth = newQuad;\n }\n return { source: this.fourth };\n }\n }\n }\n target = this;\n this.objects.push(this.spatialSearch.childNode);\n return { target: this };\n };\n /**\n * isContained method\\\n *\n * @returns { boolean } isContained method .\\\n * @private\n */\n Quad.prototype.isContained = function () {\n if (this.spatialSearch.childLeft >= this.left && this.spatialSearch.childRight <= this.left + this.width &&\n this.spatialSearch.childTop >= this.top && this.spatialSearch.childBottom <= this.top + this.height) {\n return true;\n }\n return false;\n };\n /**\n * addIntoAQuad method\\\n *\n * @returns { Quad } addIntoAQuad method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n Quad.prototype.addIntoAQuad = function (node) {\n var quadAddition = {};\n this.spatialSearch.setCurrentNode(node);\n var quad = null;\n while (!quadAddition.isAdded) {\n quadAddition = this.spatialSearch.parentQuad.add(quad);\n quad = quadAddition.quad;\n }\n return quad;\n };\n Quad.prototype.add = function (quad) {\n quad = null;\n if (this.isContained()) {\n quad = this.selectQuad();\n return { isAdded: true, quad: quad };\n }\n else {\n var newParent = void 0;\n var isempty = this.objects.length === 0 && !this.first && !this.second && !this.third &&\n !this.fourth;\n var newWidth = this.width * 2;\n var newHeight = this.height * 2;\n if (this.spatialSearch.childLeft < this.left) {\n if (this.spatialSearch.childTop < this.top) {\n newParent = new Quad(this.left - this.width, this.top - this.height, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.fourth = this;\n }\n }\n else {\n newParent = new Quad(this.left - this.width, this.top, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.second = this;\n }\n }\n }\n else if (this.spatialSearch.childTop < this.top) {\n newParent = new Quad(this.left, this.top - this.height, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.third = this;\n }\n }\n else {\n newParent = new Quad(this.left, this.top, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.first = this;\n }\n }\n this.parent = newParent;\n this.spatialSearch.parentQuad = newParent;\n return { isAdded: false, quad: quad };\n //newParent.AddIntoaQuad(node);\n }\n };\n return Quad;\n}());\nexport { Quad };\n","import { Rect } from '../../primitives/rect';\nimport { Quad } from './quad';\n/**\n * Spatial search module helps to effectively find the objects over diagram\n */\nvar SpatialSearch = /** @class */ (function () {\n /**\n * Constructor for creating the spatial search\n *\n * @param {number} objectTable The objectTable.\n * @private\n */\n function SpatialSearch(objectTable) {\n this.quadSize = 500;\n this.objectTable = objectTable;\n this.parentQuad = new Quad(0, 0, this.quadSize * 2, this.quadSize * 2, this);\n this.pageLeft = Number.MAX_VALUE;\n this.pageRight = -Number.MAX_VALUE;\n this.pageTop = Number.MAX_VALUE;\n this.pageBottom = -Number.MAX_VALUE;\n this.quadTable = {};\n }\n /**\n * removeFromAQuad method\\\n *\n * @returns {void} removeFromAQuad method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n SpatialSearch.prototype.removeFromAQuad = function (node) {\n if (this.quadTable[node.id]) {\n var quad = this.quadTable[node.id];\n var index = this.objectIndex(quad.objects, node);\n if (index !== -1) {\n quad.objects.splice(index, 1);\n this.update(quad);\n delete this.quadTable[node.id];\n }\n }\n };\n SpatialSearch.prototype.update = function (quad) {\n if (quad.parent && quad.objects.length === 0 && quad.first && quad.second && quad.third && quad.fourth) {\n var parent_1 = quad.parent;\n if (parent_1.first === quad) {\n parent_1.first = null;\n }\n else if (parent_1.second === quad) {\n parent_1.second = null;\n }\n else if (parent_1.third === quad) {\n parent_1.third = null;\n }\n else if (parent_1.fourth === quad) {\n parent_1.fourth = null;\n }\n this.update(quad.parent);\n }\n else {\n if (quad === this.parentQuad && !quad.first && !quad.second && !quad.third && !quad.fourth) {\n quad.left = 0;\n quad.width = 1000;\n quad.top = 0;\n quad.height = 1000;\n }\n return;\n }\n };\n SpatialSearch.prototype.addIntoAQuad = function (node) {\n var quad = this.parentQuad.addIntoAQuad(node);\n this.quadTable[node.id] = quad;\n };\n SpatialSearch.prototype.objectIndex = function (objects, node) {\n for (var i = 0; i < objects.length; i++) {\n if ((objects[parseInt(i.toString(), 10)]).id === node.id) {\n return i;\n }\n }\n return -1;\n };\n SpatialSearch.prototype.updateQuad = function (node) {\n this.setCurrentNode(node);\n var nodBounds = node.outerBounds;\n if (!(!isNaN(nodBounds.x) && !isNaN(nodBounds.y) &&\n !isNaN(nodBounds.width) && !isNaN(nodBounds.height))) {\n return false;\n }\n //nodBounds = new Rect(nodBounds.X.Valid(), nodBounds.Y.Valid(), nodBounds.Width.Valid(), nodBounds.Height.Valid());\n if (this.quadTable[node.id]) {\n var quad = this.quadTable[node.id];\n if (!quad.isContained()) {\n this.removeFromAQuad(node);\n this.addIntoAQuad(node);\n }\n }\n else {\n this.addIntoAQuad(node);\n }\n if (this.isWithinPageBounds(nodBounds) &&\n this.leftElement !== node &&\n this.topElement !== node &&\n this.rightElement !== node &&\n this.bottomElement !== node) {\n //contained - no change\n }\n else {\n var modified = false;\n if (this.pageLeft !== this.childLeft || node !== this.leftElement) {\n if (this.pageLeft >= this.childLeft) {\n this.pageLeft = this.childLeft;\n this.leftElement = node;\n modified = true;\n }\n else if (node === this.leftElement) {\n this.pageLeft = Number.MAX_VALUE;\n this.findLeft(this.parentQuad);\n modified = true;\n }\n }\n if (this.pageTop !== this.childTop || node !== this.topElement) {\n if (this.pageTop >= this.childTop) {\n this.pageTop = this.childTop;\n this.topElement = node;\n modified = true;\n }\n else if (node === this.topElement) {\n this.pageTop = Number.MAX_VALUE;\n this.findTop(this.parentQuad);\n modified = true;\n }\n }\n if (this.pageBottom !== this.childBottom || node !== this.bottomElement) {\n if (this.pageBottom <= this.childBottom) {\n modified = true;\n this.pageBottom = this.childBottom;\n this.bottomElement = node;\n }\n else if (node === this.bottomElement) {\n this.pageBottom = -Number.MAX_VALUE;\n this.findBottom(this.parentQuad);\n modified = true;\n }\n }\n if (this.pageRight !== this.childRight || node !== this.rightElement) {\n if (this.pageRight <= this.childRight) {\n this.pageRight = this.childRight;\n this.rightElement = node;\n modified = true;\n }\n else if (node === this.rightElement) {\n this.pageRight = -Number.MAX_VALUE;\n this.findRight(this.parentQuad);\n modified = true;\n }\n }\n return modified;\n }\n this.setCurrentNode(null);\n return false;\n };\n SpatialSearch.prototype.isWithinPageBounds = function (node) {\n if (node.left >= this.pageLeft && node.right <= this.pageRight && node.top >= this.pageTop\n && node.bottom <= this.pageBottom) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * findQuads method\\\n *\n * @returns { Quad[] } findQuads method .\\\n * @param {Rect} region - provide the options value.\n * @private\n */\n SpatialSearch.prototype.findQuads = function (region) {\n var quads = [];\n this.parentQuad.findQuads(region, quads);\n return quads;\n };\n /**\n * findObjects method\\\n *\n * @returns { IGroupable[] } findObjects method .\\\n * @param {Rect} region - provide the options value.\n * @private\n */\n SpatialSearch.prototype.findObjects = function (region) {\n var quads = this.findQuads(region);\n var objects = [];\n for (var _i = 0, quads_1 = quads; _i < quads_1.length; _i++) {\n var quad = quads_1[_i];\n for (var _a = 0, _b = quad.objects; _a < _b.length; _a++) {\n var obj = _b[_a];\n if (obj.outerBounds.intersects(region)) {\n objects.push(this.objectTable[obj.id]);\n }\n }\n }\n return objects;\n };\n /**\n * updateBounds method\\\n *\n * @returns { boolean } updateBounds method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n SpatialSearch.prototype.updateBounds = function (node) {\n var modified = false;\n if (node === this.topElement) {\n this.pageTop = Number.MAX_VALUE;\n this.topElement = null;\n this.findTop(this.parentQuad);\n modified = true;\n }\n if (node === this.leftElement) {\n this.pageLeft = Number.MAX_VALUE;\n this.leftElement = null;\n this.findLeft(this.parentQuad);\n modified = true;\n }\n if (node === this.rightElement) {\n this.pageRight = -Number.MAX_VALUE;\n this.rightElement = null;\n this.findRight(this.parentQuad);\n modified = true;\n }\n if (node === this.bottomElement) {\n this.pageBottom = -Number.MAX_VALUE;\n this.bottomElement = null;\n this.findBottom(this.parentQuad);\n modified = true;\n }\n return modified;\n };\n SpatialSearch.prototype.findBottom = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.third || quad.fourth) {\n if (quad.third) {\n this.findBottom(quad.third);\n }\n if (quad.fourth) {\n this.findBottom(quad.fourth);\n }\n }\n else {\n if (quad.second) {\n this.findBottom(quad.second);\n }\n if (quad.first) {\n this.findBottom(quad.first);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageBottom <= node.outerBounds.bottom) {\n this.pageBottom = node.outerBounds.bottom;\n this.bottomElement = node;\n }\n }\n };\n SpatialSearch.prototype.findRight = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.second || quad.fourth) {\n if (quad.second) {\n this.findRight(quad.second);\n }\n if (quad.fourth) {\n this.findRight(quad.fourth);\n }\n }\n // EJ2-65880 - Exception occurs on dragging outside the canvas\n {\n if (quad.first) {\n this.findRight(quad.first);\n }\n if (quad.third) {\n this.findRight(quad.third);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageRight <= node.outerBounds.right) {\n this.pageRight = node.outerBounds.right;\n this.rightElement = node;\n }\n }\n };\n SpatialSearch.prototype.findLeft = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.first || quad.third) {\n if (quad.first) {\n this.findLeft(quad.first);\n }\n if (quad.third) {\n this.findLeft(quad.third);\n }\n }\n else {\n if (quad.second) {\n this.findLeft(quad.second);\n }\n if (quad.fourth) {\n this.findLeft(quad.fourth);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageLeft >= node.outerBounds.left) {\n this.pageLeft = node.outerBounds.left;\n this.leftElement = node;\n }\n }\n };\n SpatialSearch.prototype.findTop = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.first || quad.second) {\n if (quad.first) {\n this.findTop(quad.first);\n }\n if (quad.second) {\n this.findTop(quad.second);\n }\n }\n else {\n if (quad.third) {\n this.findTop(quad.third);\n }\n if (quad.fourth) {\n this.findTop(quad.fourth);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageTop >= node.outerBounds.top) {\n this.pageTop = node.outerBounds.top;\n this.topElement = node;\n }\n }\n };\n /**\n * setCurrentNode method\\\n *\n * @returns { void } setCurrentNode method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n SpatialSearch.prototype.setCurrentNode = function (node) {\n this.childNode = node;\n if (node) {\n var r = node.outerBounds;\n this.childLeft = Number(r.left);\n this.childTop = Number(r.top);\n this.childRight = Number(r.right);\n this.childBottom = Number(r.bottom);\n }\n else {\n this.childLeft = Number.MAX_VALUE;\n this.childTop = Number.MAX_VALUE;\n this.childRight = -Number.MAX_VALUE;\n this.childBottom = -Number.MAX_VALUE;\n }\n };\n /**\n * getPageBounds method\\\n *\n * @returns { Rect } getPageBounds method .\\\n * @param {number} originX - provide the options value.\n * @param {number} originY - provide the options value.\n * @private\n */\n SpatialSearch.prototype.getPageBounds = function (originX, originY) {\n if (this.pageLeft === Number.MAX_VALUE) {\n return new Rect(0, 0, 0, 0);\n }\n var left = originX !== undefined ? Math.min(this.pageLeft, 0) : this.pageLeft;\n var top = originY !== undefined ? Math.min(this.pageTop, 0) : this.pageTop;\n return new Rect(Math.round(left), Math.round(top), Math.round(this.pageRight - left), Math.round(this.pageBottom - top));\n };\n /**\n * getQuad method\\\n *\n * @returns { Quad } getQuad method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n SpatialSearch.prototype.getQuad = function (node) {\n return this.quadTable[node.id];\n };\n return SpatialSearch;\n}());\nexport { SpatialSearch };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * Defines the serialization settings of diagram\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * serializationSettings: { preventDefaults: true },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar SerializationSettings = /** @class */ (function (_super) {\n __extends(SerializationSettings, _super);\n function SerializationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], SerializationSettings.prototype, \"preventDefaults\", void 0);\n return SerializationSettings;\n}(ChildProperty));\nexport { SerializationSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar CustomCursorAction = /** @class */ (function (_super) {\n __extends(CustomCursorAction, _super);\n function CustomCursorAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], CustomCursorAction.prototype, \"action\", void 0);\n __decorate([\n Property('')\n ], CustomCursorAction.prototype, \"cursor\", void 0);\n return CustomCursorAction;\n}(ChildProperty));\nexport { CustomCursorAction };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * Represents the diagram settings\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * diagramSettings: { inversedAlignment: true },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar DiagramSettings = /** @class */ (function (_super) {\n __extends(DiagramSettings, _super);\n function DiagramSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], DiagramSettings.prototype, \"inversedAlignment\", void 0);\n return DiagramSettings;\n}(ChildProperty));\nexport { DiagramSettings };\n","import { ConnectorConstraints } from \"../enum/enum\";\nvar ConnectorProperties = /** @class */ (function () {\n function ConnectorProperties(labelProperties) {\n this.labelProperties = labelProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the connector collection from EJ1 to EJ2\n ConnectorProperties.prototype.renderConnectorsCollection = function (convertedData, data) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n convertedData.connectors = [];\n var connectors = [];\n for (var i = 0; i < data.connectors.length; i++) {\n var connector = data.connectors[parseInt(i.toString(), 10)];\n var newConnector = this.convertToConnector(connector);\n connectors.push(newConnector);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n convertedData.connectors = connectors;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the connector properties from EJ1 to EJ2\n ConnectorProperties.prototype.convertToConnector = function (connector) {\n var newConnector = {};\n newConnector.style = {};\n if (connector.name) {\n newConnector.id = connector.name;\n }\n if (connector.addInfo) {\n newConnector.addInfo = connector.addInfo;\n }\n if (connector.bridgeSpace) {\n newConnector.bridgeSpace = connector.bridgeSpace;\n }\n if (connector.constraints) {\n newConnector.constraints = this.setConnectorConstraints(connector.constraints);\n }\n if (connector.cornerRadius) {\n newConnector.cornerRadius = connector.cornerRadius;\n }\n if (connector.labels) {\n newConnector.annotations = this.labelProperties.setLabelProperties(connector.labels, connector);\n }\n if (connector.lineColor) {\n newConnector.style.fill = connector.lineColor;\n }\n if (connector.lineWidth) {\n newConnector.style.strokeWidth = connector.lineWidth;\n }\n if (connector.lineDashArray) {\n newConnector.style.strokeDashArray = connector.lineDashArray;\n }\n if (connector.opacity) {\n newConnector.style.opacity = connector.opacity;\n }\n if (connector.lineHitPadding) {\n newConnector.hitPadding = connector.lineHitPadding;\n }\n if (connector.margin) {\n // eslint-disable-next-line max-len\n newConnector.margin = { left: connector.margin.left, right: connector.margin.right, top: connector.margin.top, bottom: connector.margin.bottom };\n }\n if (connector.segments) {\n newConnector.type = connector.segments[0].type;\n newConnector.segments = this.setConnectorSegments(connector.segments);\n }\n if (connector.shape) {\n newConnector.shape = this.getConnectorShape(connector.shape);\n }\n if (connector.sourceDecorator) {\n newConnector.sourceDecorator = {\n height: connector.sourceDecorator.height,\n width: connector.sourceDecorator.width,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n shape: (this.getDecoratorShape(connector.sourceDecorator.shape)),\n pathData: connector.sourceDecorator.pathData,\n style: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill: connector.sourceDecorator.fillColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeColor: connector.sourceDecorator.lineColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeWidth: connector.sourceDecorator.lineWidth\n },\n };\n }\n if (connector.targetDecorator) {\n newConnector.targetDecorator = {\n height: connector.targetDecorator.height,\n width: connector.targetDecorator.width,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n shape: this.getDecoratorShape(connector.targetDecorator.shape),\n pathData: connector.targetDecorator.pathData,\n style: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill: connector.targetDecorator.fillColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeColor: connector.targetDecorator.lineColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeWidth: connector.targetDecorator.lineWidth\n },\n };\n }\n if (connector.sourceID) {\n newConnector.sourceID = connector.sourceID;\n }\n if (connector.targetID) {\n newConnector.targetID = connector.targetID;\n }\n if (connector.sourcePoint) {\n newConnector.sourcePoint = { x: connector.sourcePoint.x, y: connector.sourcePoint.y };\n }\n if (connector.targetPoint) {\n newConnector.targetPoint = { x: connector.targetPoint.x, y: connector.targetPoint.y };\n }\n if (connector.sourcePortID) {\n newConnector.sourcePortID = connector.sourcePortID;\n }\n if (connector.targetPortID) {\n newConnector.targetPortID = connector.targetPortID;\n }\n if (connector.tooltip) {\n newConnector.tooltip = {\n content: connector.tooltip.content,\n relativeMode: connector.tooltip.relativeMode\n };\n }\n if (connector.visible) {\n newConnector.visible = connector.visible;\n }\n if (connector.zIndex) {\n newConnector.zIndex = connector.zIndex;\n }\n return newConnector;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and assign the connector shapes from EJ1 to EJ2\n ConnectorProperties.prototype.getConnectorShape = function (shape) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var connectorShape = null;\n if (shape) {\n if (shape.type === 'bpmn') {\n connectorShape = {\n type: 'Bpmn',\n flow: (shape.flow).charAt(0).toUpperCase() + (shape.flow).slice(1),\n };\n if (shape.flow === 'sequence') {\n connectorShape.sequence = (shape.sequence).charAt(0).toUpperCase() + (shape.sequence).slice(1);\n }\n else if (shape.flow === 'association') {\n connectorShape.association = (shape.association).charAt(0).toUpperCase() + (shape.association).slice(1);\n }\n else {\n connectorShape.message = (shape.message).charAt(0).toUpperCase() + (shape.message).slice(1);\n }\n }\n if (shape.type === 'umlclassifier') {\n connectorShape = {\n type: 'UmlClassifier',\n relationship: (shape.relationship).charAt(0).toUpperCase() + (shape.relationship).slice(1),\n multiplicity: {\n type: (shape.multiplicity.type).charAt(0).toUpperCase() + (shape.multiplicity.type).slice(1),\n source: {\n upperBounds: shape.multiplicity.source.upperBounds,\n optional: shape.multiplicity.source.optional,\n lowerBounds: shape.multiplicity.source.lowerBounds\n },\n target: {\n upperBounds: shape.multiplicity.target.upperBounds,\n optional: shape.multiplicity.target.optional,\n lowerBounds: shape.multiplicity.target.lowerBounds\n }\n }\n };\n }\n if (shape.type === 'umlactivity') {\n connectorShape = {\n type: 'UmlActivity',\n flow: (shape.flow).charAt(0).toUpperCase() + (shape.flow).slice(1)\n };\n }\n }\n return connectorShape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the connector decorator shapes from EJ1 to EJ2\n ConnectorProperties.prototype.getDecoratorShape = function (shape) {\n var decoratorShape = 'None';\n if (shape === 'path') {\n decoratorShape = 'Custom';\n }\n else {\n decoratorShape = (shape).charAt(0).toUpperCase() + (shape).slice(1);\n }\n return decoratorShape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the connector collection from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ConnectorProperties.prototype.setConnectorSegments = function (segments) {\n var connectorSegments = [];\n if (segments.length > 0) {\n for (var i = 0; i < segments.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segment = {};\n var segmentProp = segments[parseInt(i.toString(), 10)];\n // eslint-disable-next-line max-len\n segment.direction = segmentProp.direction ? segmentProp.direction.charAt(0).toUpperCase() + segmentProp.direction.slice(1) : segmentProp._direction ? segmentProp._direction.charAt(0).toUpperCase() + segmentProp._direction.slice(1) : null;\n segment.length = segmentProp.length;\n segment.point = segmentProp.point ? { x: segmentProp.point.x, y: segmentProp.point.y } : null;\n segment.point1 = segmentProp.point1 ? { x: segmentProp.point1.x, y: segmentProp.point1.y } : null;\n segment.point2 = segmentProp.point2 ? { x: segmentProp.point2.x, y: segmentProp.point2.y } : null;\n // eslint-disable-next-line max-len\n segment.vector1 = segmentProp.vector1 ? { angle: segmentProp.vector1.angle, distance: segmentProp.vector1.distance } : null;\n // eslint-disable-next-line max-len\n segment.vector2 = segmentProp.vector2 ? { angle: segmentProp.vector2.angle, distance: segmentProp.vector2.distance } : null;\n if (segmentProp.points)\n segment.points = this.getSegmentPoints(segmentProp.points);\n if (segmentProp.type)\n segment.type = (segmentProp.type).charAt(0).toUpperCase() + (segmentProp.type).slice(1);\n connectorSegments.push(segment);\n }\n }\n return connectorSegments;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Render the connector Segment points from EJ1 to EJ2\n ConnectorProperties.prototype.getSegmentPoints = function (points) {\n var pointsCollection = [];\n if (points.length > 0) {\n for (var i = 0; i < points.length; i++) {\n var newPoint = {};\n var point = points[parseInt(i.toString(), 10)];\n newPoint.x = point.x;\n newPoint.y = point.y;\n pointsCollection.push(newPoint);\n }\n }\n return pointsCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the connector constraints\n ConnectorProperties.prototype.setConnectorConstraints = function (constraints) {\n var connectorConstraints = ConnectorConstraints.None;\n if (constraints & ConnectorConstraints.Select) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Select;\n }\n if (constraints & ConnectorConstraints.Delete) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Delete;\n }\n if (constraints & ConnectorConstraints.Drag) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Drag;\n }\n if (constraints & ConnectorConstraints.DragSourceEnd) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.DragSourceEnd;\n }\n if (constraints & ConnectorConstraints.DragTargetEnd) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.DragTargetEnd;\n }\n if (constraints & ConnectorConstraints.DragSegmentThumb) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.DragSegmentThumb;\n }\n if (constraints & ConnectorConstraints.Bridging) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Bridging;\n }\n if (constraints & ConnectorConstraints.InheritBridging) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.InheritBridging;\n }\n if (constraints & ConnectorConstraints.AllowDrop) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.AllowDrop;\n }\n if (constraints & ConnectorConstraints.InheritTooltip) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.InheritTooltip;\n }\n if (constraints & ConnectorConstraints.PointerEvents) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.PointerEvents;\n }\n if (constraints & ConnectorConstraints.BridgeObstacle) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.BridgeObstacle;\n }\n if (constraints & ConnectorConstraints.Interaction) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Interaction;\n }\n if (constraints & ConnectorConstraints.Default) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Default;\n }\n return connectorConstraints;\n };\n /**\n*To destroy the ruler\n*\n* @returns {void} To destroy the ruler\n*/\n ConnectorProperties.prototype.destroy = function () {\n /**\n * Destroys the Node properties module\n */\n };\n /**\n * Get module name.\n */\n ConnectorProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'ConnectorProperties';\n };\n return ConnectorProperties;\n}());\nexport { ConnectorProperties };\n","import { AnnotationConstraints } from \"../enum/enum\";\nvar LabelProperties = /** @class */ (function () {\n function LabelProperties(modelProperties) {\n this.modelProperties = modelProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update and assign the annotation properties from EJ1 to EJ2\n LabelProperties.prototype.setLabelProperties = function (oldLabels, item) {\n var labelCollection = [];\n if (oldLabels.length > 0) {\n for (var i = 0; i < oldLabels.length; i++) {\n var label = oldLabels[parseInt(i.toString(), 10)];\n var newLabel = {};\n (newLabel).style = {};\n if (label.name) {\n newLabel.id = label.name;\n }\n if (label.addInfo) {\n newLabel.addInfo = label.addInfo;\n }\n if (label.content) {\n newLabel.content = label.content;\n }\n if (label.constraints) {\n newLabel.constraints = this.setLabelConstraints(label.constraints);\n }\n // if (label.readOnly)\n // newLabel.constraints = newLabel.constraints | AnnotationConstraints.ReadOnly;\n if (label.dragLimit) {\n newLabel.dragLimit = { left: label.dragLimit.left, right: label.dragLimit.right, top: label.dragLimit.top, bottom: label.dragLimit.bottom };\n }\n if (label.height) {\n newLabel.height = label.height;\n }\n if (label.horizontalAlignment) {\n newLabel.horizontalAlignment = label.horizontalAlignment;\n }\n if (label.verticalAlignment) {\n newLabel.verticalAlignment = label.verticalAlignment;\n }\n if (label.hyperlink) {\n newLabel.hyperlink = label.hyperlink;\n }\n if (label.margin) {\n newLabel.margin = { left: label.margin.left, right: label.margin.right, top: label.margin.top, bottom: label.margin.bottom };\n }\n if (label.rotateAngle) {\n newLabel.rotateAngle = label.rotateAngle;\n }\n if (label.fillColor) {\n newLabel.style.color = label.fillColor;\n }\n if (label.fontFamily) {\n newLabel.style.fontFamily = label.fontFamily;\n }\n if (label.fontSize) {\n newLabel.style.fontSize = label.fontSize;\n }\n if (label.italic) {\n newLabel.style.italic = label.italic;\n }\n if (label.bold) {\n newLabel.style.bold = label.bold;\n }\n if (label.borderColor) {\n newLabel.style.strokeColor = label.borderColor;\n }\n if (label.borderWidth) {\n newLabel.style.strokeWidth = label.borderWidth;\n }\n if (label.textWrapping) {\n newLabel.style.textWrapping = label.textWrapping;\n }\n if (label.textAlign) {\n newLabel.style.textAlign = label.textAlign;\n }\n if (label.textDecoration) {\n newLabel.style.textDecoration = label.textDecoration;\n }\n if (label.fillColor) {\n newLabel.style.fill = label.fillColor === 'white' ? 'transparent' : label.fillColor;\n }\n if (label.opacity) {\n newLabel.style.opacity = label.opacity;\n }\n // if (label.templateId)\n // newLabel.template = getTemplateContent(label.templateId);\n if (label.visible) {\n newLabel.visibility = label.visible;\n }\n if (label.width) {\n newLabel.width = label.width;\n }\n labelCollection.push(newLabel);\n }\n }\n return labelCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the annotation constraints from EJ1 to EJ2\n LabelProperties.prototype.setLabelConstraints = function (constraints) {\n var annotationConstraints = AnnotationConstraints.None;\n if (constraints & AnnotationConstraints.Select) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Select;\n }\n if (constraints & AnnotationConstraints.Drag) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Drag;\n }\n if (constraints & AnnotationConstraints.Resize) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Resize;\n }\n if (constraints & AnnotationConstraints.Rotate) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Rotate;\n }\n return annotationConstraints;\n };\n /**\n*To destroy the ruler\n*\n* @returns {void} To destroy the ruler\n*/\n LabelProperties.prototype.destroy = function () {\n /**\n * Destroys the Node properties module\n */\n };\n /**\n * Get module name.\n */\n LabelProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'LabelProperties';\n };\n return LabelProperties;\n}());\nexport { LabelProperties };\n","import { NodeConstraints } from \"../enum/enum\";\nvar NodeProperties = /** @class */ (function () {\n function NodeProperties(labelProperties, portProperties) {\n this.labelProperties = labelProperties;\n this.portProperties = portProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the node collection from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n NodeProperties.prototype.renderNodesCollection = function (convertedData, data) {\n convertedData.nodes = [];\n var nodes = [];\n for (var i = 0; i < data.nodes.length; i++) {\n var node = data.nodes[parseInt(i.toString(), 10)];\n var processCollection = [];\n var newNode = this.convertToNode(node);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line max-len\n if (newNode.shape && newNode.shape.activity && newNode.shape.activity.subProcess && newNode.shape.activity.subProcess.processes.length > 0) {\n var processName = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var k = 0; k < newNode.shape.activity.subProcess.processes.length; k++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var processes = newNode.shape.activity.subProcess.processes[parseInt(k.toString(), 10)];\n processes.margin.right = 0;\n processes.margin.bottom = 0;\n processes.processId = newNode.id;\n processName.push(processes.id);\n processCollection.push(processes);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.subProcess.processes = processName;\n }\n if (node.type === 'group' && !node.isSwimlane) {\n var childCollection = [];\n if (newNode.children && newNode.children.length > 0) {\n for (var j = 0; j < newNode.children.length; j++) {\n var child = newNode.children[parseInt(i.toString(), 10)];\n nodes.push(child);\n childCollection.push(child);\n }\n newNode.children = childCollection;\n }\n }\n nodes.push(newNode);\n if (processCollection && processCollection.length > 0) {\n nodes = nodes.concat(processCollection);\n }\n }\n convertedData.nodes = nodes;\n return convertedData.nodes;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert the node from EJ1 to EJ2 and assign all the properties\n NodeProperties.prototype.convertToNode = function (node) {\n var newNode = {};\n newNode.style = {};\n newNode.margin = {};\n if (node.name) {\n newNode.id = node.name;\n }\n if (node.fillColor) {\n newNode.style.fill = node.fillColor;\n }\n if (node.borderColor) {\n newNode.style.strokeColor = node.borderColor;\n }\n if (node.borderWidth) {\n newNode.style.strokeWidth = node.borderWidth;\n }\n if (node.borderDashArray) {\n newNode.style.strokeDashArray = node.borderDashArray;\n }\n if (node.opacity) {\n newNode.style.opacity = node.opacity;\n }\n if (node.gradient) {\n newNode.style.gradient = this.setGradient(node.gradient);\n }\n if (node.isExpanded) {\n newNode.isExpanded = node.isExpanded;\n }\n if (node.width) {\n newNode.width = node.width;\n }\n if (node.height) {\n newNode.height = node.height;\n }\n if (node.offsetX) {\n newNode.offsetX = node.offsetX;\n }\n if (node.offsetY) {\n newNode.offsetY = node.offsetY;\n }\n if (node.visible) {\n newNode.visible = node.visible;\n }\n newNode.zIndex = node.zOrder === -1 ? -1 : node.zOrder;\n if (node.excludeFromLayout) {\n newNode.excludeFromLayout = node.excludeFromLayout;\n }\n if (node.rotateAngle) {\n newNode.rotateAngle = node.rotateAngle;\n }\n if (node.pivot) {\n newNode.pivot = node.pivot;\n }\n if (node.addInfo) {\n newNode.addInfo = node.addInfo;\n }\n if (node.marginLeft) {\n newNode.margin.left = node.marginLeft;\n }\n if (node.marginRight) {\n newNode.margin.right = node.marginRight;\n }\n if (node.marginTop) {\n newNode.margin.top = node.marginTop;\n }\n if (node.marginBottom) {\n newNode.margin.bottom = node.marginBottom;\n }\n if (node.horizontalAlign) {\n newNode.horizontalAlignment = node.horizontalAlign;\n }\n if (node.verticalAlign) {\n newNode.verticalAlignment = node.verticalAlign;\n }\n if (node.constraints) {\n newNode.constraints = this.setNodeConstraints(node.constraints);\n }\n if (node.labels) {\n newNode.annotations = this.labelProperties.setLabelProperties(node.labels, undefined);\n }\n if (node.shadow) {\n newNode.shadow = {\n angle: node.shadow.angle, opacity: node.shadow.opacity, distance: node.shadow.distance\n };\n }\n if (node.tooltip) {\n newNode.tooltip = {\n // content: this.getTemplateContent(node.tooltip.templateId),\n relativeMode: node.tooltip.relativeMode\n };\n }\n if (node.expandIcon) {\n newNode.expandIcon = {\n shape: (node.expandIcon.shape),\n width: node.expandIcon.width, height: node.expandIcon.height,\n margin: {\n left: node.expandIcon.margin ? node.expandIcon.margin.left : 0,\n right: node.expandIcon.margin ? node.expandIcon.margin.right : 0,\n top: node.expandIcon.margin ? node.expandIcon.margin.top : 0,\n bottom: node.expandIcon.margin ? node.expandIcon.margin.bottom : 0\n },\n offset: {\n x: node.expandIcon.offset ? node.expandIcon.offset.x : 0.5,\n y: node.expandIcon.offset ? node.expandIcon.offset.y : 1\n },\n borderColor: node.expandIcon.borderColor, borderWidth: node.expandIcon.borderWidth,\n cornerRadius: node.expandIcon.cornerRadius,\n //fill: (node.expandIcon as any).fillColor,\n pathData: node.expandIcon.pathData,\n };\n }\n if (node.collapseIcon) {\n newNode.collapseIcon = {\n shape: (node.collapseIcon.shape),\n width: node.collapseIcon.width, height: node.collapseIcon.height,\n margin: {\n left: node.collapseIcon.margin ? node.collapseIcon.margin.left : 0,\n right: node.collapseIcon.margin ? node.collapseIcon.margin.right : 0,\n top: node.collapseIcon.margin ? node.collapseIcon.margin.top : 0,\n bottom: node.collapseIcon.margin ? node.collapseIcon.margin.bottom : 0\n },\n offset: {\n x: node.collapseIcon.offset ? node.collapseIcon.offset.x : 0.5,\n y: node.collapseIcon.offset ? node.collapseIcon.offset.y : 1\n },\n borderColor: node.collapseIcon.borderColor, borderWidth: node.collapseIcon.borderWidth,\n cornerRadius: node.collapseIcon.cornerRadius,\n // fill: (node.collapseIcon as any).fillColor,\n pathData: node.collapseIcon.pathData,\n };\n }\n if (node.ports) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.ports = this.portProperties.setPortProperties(node.ports);\n }\n if (node.children) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (node.type !== 'bpmn' && !node.isSwimlane) {\n newNode.children = this.getChildren(newNode, node);\n }\n }\n newNode.minWidth = node.minWidth;\n newNode.maxWidth = node.maxWidth;\n newNode.minHeight = node.minHeight;\n newNode.maxHeight = node.maxHeight;\n if (node.shape || node.type) {\n newNode = this.setShape(newNode, node);\n }\n return newNode;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Iterate the swimlane child nodes and assign all the node properties from the EJ1 to EJ2\n NodeProperties.prototype.getChildren = function (newNode, node) {\n if (node.children && node.children.length > 0) {\n var newChild = [];\n for (var i = 0; i < node.children.length; i++) {\n var child = this.convertToNode(node.children[parseInt(i.toString(), 10)]);\n if (child.children) {\n this.getChildren(newNode, child);\n }\n newChild.push(child);\n }\n newNode.children = newChild;\n }\n return newNode.children;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the shapes for all the node from conversion\n NodeProperties.prototype.setShape = function (newNode, node) {\n switch (node.type) {\n case 'basic':\n var basicShape = (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1);\n if (node.shape === 'path') {\n newNode.shape = { type: 'Path', data: node.pathData };\n }\n else {\n newNode.shape = {\n type: 'Basic', shape: basicShape, cornerRadius: node.cornerRadius, points: node.points\n };\n }\n break;\n case 'flow':\n var flowShape = (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1);\n newNode.shape = {\n type: 'Flow', shape: flowShape\n };\n break;\n case 'umlactivity':\n newNode.shape = {\n type: 'UmlActivity', shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1)\n };\n break;\n case 'image':\n newNode.shape = {\n type: 'Image', source: node.source, align: this.getImageContentAlignment(node.contentAlignment),\n scale: (node.scale).charAt(0).toUpperCase() + (node.scale).slice(1)\n };\n break;\n case 'html':\n newNode.shape = { type: 'HTML' };\n break;\n case 'native':\n newNode.shape = { type: 'Native' };\n break;\n case 'text':\n newNode.shape = { type: 'Text', content: node.textBlock.text };\n break;\n case 'bpmn':\n newNode.shape = this.renderBpmnShape(newNode, node);\n break;\n case 'group':\n if (node.isSwimlane) {\n newNode.shape = this.renderSwimlaneShape(newNode, node);\n }\n }\n return newNode;\n };\n NodeProperties.prototype.getImageContentAlignment = function (option) {\n if (option) {\n switch (option) {\n case 'xminymin':\n return 'XMinYMin';\n case 'xminymid':\n return 'XMinYMid';\n case 'xminymax':\n return 'XMinYMax';\n case 'xmidymin':\n return 'XMidYMin';\n case 'xmidymid':\n return 'XMidYMid';\n case 'xmidymax':\n return 'XMidYMax';\n case 'xmaxymin':\n return 'XMaxYMin';\n case 'xmaxymid':\n return 'XMaxYMid';\n case 'xmaxymax':\n return 'XMaxYMax';\n case 'none':\n return 'None';\n }\n }\n return 'None';\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n // Sets the node constraints from EJ1 to EJ2\n NodeProperties.prototype.setNodeConstraints = function (constraints) {\n var nodeConstraints = NodeConstraints.None;\n if (constraints & NodeConstraints.Select) {\n nodeConstraints = nodeConstraints | NodeConstraints.Select;\n }\n if (constraints & NodeConstraints.Delete) {\n nodeConstraints = nodeConstraints | NodeConstraints.Delete;\n }\n if (constraints & NodeConstraints.Drag) {\n nodeConstraints = nodeConstraints | NodeConstraints.Drag;\n }\n if (constraints & NodeConstraints.Rotate) {\n nodeConstraints = nodeConstraints | NodeConstraints.Rotate;\n }\n if (constraints & NodeConstraints.ResizeNorthEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeNorthEast;\n }\n if (constraints & NodeConstraints.ResizeEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeEast;\n }\n if (constraints & NodeConstraints.OutConnect) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeSouthEast;\n }\n if (constraints & NodeConstraints.Expandable) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeSouth;\n }\n if (constraints & NodeConstraints.AllowDrop) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeSouthWest;\n }\n if (constraints & NodeConstraints.ResizeNorthEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeWest;\n }\n if (constraints & NodeConstraints.ResizeEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeNorthWest;\n }\n if (constraints & NodeConstraints.ResizeNorth) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeNorth;\n }\n if (constraints & NodeConstraints.Resize) {\n nodeConstraints = nodeConstraints | NodeConstraints.Resize;\n }\n if (constraints & NodeConstraints.ResizeSouthEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.Shadow;\n }\n if (constraints & NodeConstraints.AspectRatio) {\n nodeConstraints = nodeConstraints | NodeConstraints.AspectRatio;\n }\n if (constraints & NodeConstraints.ResizeNorthWest) {\n nodeConstraints = nodeConstraints | NodeConstraints.AllowDrop;\n }\n if (constraints & NodeConstraints.ResizeNorth) {\n nodeConstraints = nodeConstraints | NodeConstraints.InheritTooltip;\n }\n if (constraints & NodeConstraints.PointerEvents) {\n nodeConstraints = nodeConstraints | NodeConstraints.PointerEvents;\n }\n if (constraints & NodeConstraints.Inherit) {\n nodeConstraints = nodeConstraints | NodeConstraints.Inherit;\n }\n return nodeConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the gradient for the nodes\n NodeProperties.prototype.setGradient = function (gradient) {\n var newGradient = {};\n if (gradient) {\n if (gradient.type === 'linear') {\n newGradient = {\n type: 'Linear',\n x1: gradient.x1, x2: gradient.x2, y1: gradient.y1, y2: gradient.y2,\n stops: this.getGradientStops(gradient.stops)\n };\n }\n else if (gradient.type === 'radial') {\n newGradient = {\n type: 'Radial',\n cx: gradient.cx, cy: gradient.cy, fx: gradient.fx, fy: gradient.fy,\n stops: this.getGradientStops(gradient.stops)\n };\n }\n }\n return newGradient;\n };\n NodeProperties.prototype.getGradientStops = function (gradientStops) {\n var stopsCollection = [];\n for (var i = 0; i < gradientStops.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var newStop = {};\n var stop_1 = gradientStops[parseInt(i.toString(), 10)];\n newStop.color = stop_1.color;\n newStop.offset = stop_1.offset;\n stopsCollection.push(newStop);\n }\n return stopsCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Assign the BPMN shape values from the EJ1\n NodeProperties.prototype.renderBpmnShape = function (newNode, node) {\n if (node.shape === 'event') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1),\n event: {\n event: (node.event).charAt(0).toUpperCase() + (node.event).slice(1),\n trigger: (node.trigger).charAt(0).toUpperCase() + (node.trigger).slice(1)\n }\n };\n }\n else if (node.shape === 'gateway') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1),\n gateway: {\n type: (node.gateway).charAt(0).toUpperCase() + (node.gateway).slice(1)\n }\n };\n }\n else if (node.shape === 'activity') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1),\n activity: {\n activity: (node.activity).charAt(0).toUpperCase() + (node.activity).slice(1)\n }\n };\n if (node.activity === 'task') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.task = {\n type: (node.task.type).charAt(0).toUpperCase() + (node.task.type).slice(1),\n loop: (node.task.loop).charAt(0).toUpperCase() + (node.task.loop).slice(1),\n compensation: node.task.compensation,\n call: node.task.call\n };\n }\n if (node.activity === 'subprocess') {\n if (node.subProcess.type === 'event') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.subProcess = {\n collapsed: node.subProcess.collapsed,\n compensation: node.subProcess.compensation,\n adhoc: node.subProcess.adhoc,\n loop: (node.subProcess.loop).charAt(0).toUpperCase() + (node.subprocess.loop).slice(1),\n boundary: (node.subProcess.boundary).charAt(0).toUpperCase() + (node.subprocess.boundary).slice(1),\n type: (node.subProcess.type).charAt(0).toUpperCase() + (node.subprocess.type).slice(1),\n event: {\n event: (node.event).charAt(0).toUpperCase() + (node.event).slice(1),\n trigger: (node.trigger).charAt(0).toUpperCase() + (node.trigger).slice(1)\n }\n };\n }\n else if (node.subProcess.type === 'transaction') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.subProcess = {\n collapsed: node.subProcess.collapsed,\n compensation: node.subProcess.compensation,\n adhoc: node.subProcess.adhoc,\n loop: (node.subProcess.loop).charAt(0).toUpperCase() + (node.subprocess.loop).slice(1),\n boundary: (node.subProcess.boundary).charAt(0).toUpperCase() + (node.subprocess.boundary).slice(1),\n type: (node.subProcess.type).charAt(0).toUpperCase() + (node.subprocess.type).slice(1),\n events: this.renderEventsCollection(node.subProcess.events),\n processes: this.renderProcessesCollection(node)\n };\n }\n }\n }\n else if (node.shape === 'dataobject') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1),\n };\n if (node.annotation) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.annotation = {\n text: node.annotation.text,\n angle: node.annotation.angle,\n width: node.annotation.width,\n height: node.annotation.height,\n length: node.annotation.length\n };\n }\n }\n else {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1),\n };\n }\n return newNode.shape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Renders the swimlane from the conversion\n NodeProperties.prototype.renderSwimlaneShape = function (newNode, node) {\n newNode.shape = {\n type: 'SwimLane', orientation: (node.orientation).charAt(0).toUpperCase() + (node.orientation).slice(1),\n header: {\n annotation: { content: node.header.text },\n height: 50, style: { fontSize: node.header.fontSize, color: node.header.fontColor, fill: node.header.fillColor },\n },\n };\n var lanes = [];\n var phases = [];\n for (var i = 0; i < node.lanes.length; i++) {\n lanes[parseInt(i.toString(), 10)] = {\n header: {\n annotation: {\n content: node.lanes[parseInt(i.toString(), 10)].header.text, width: node.lanes[parseInt(i.toString(), 10)].header.width,\n style: { fontSize: node.lanes[parseInt(i.toString(), 10)].header.fontSize, color: node.lanes[parseInt(i.toString(), 10)].header.fontColor }\n },\n },\n style: { fill: node.lanes[parseInt(i.toString(), 10)].fillColor },\n children: []\n };\n for (var j = 0; j < node.lanes[parseInt(i.toString(), 10)].children.length; j++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var childNode = this.convertToNode(node.lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)]);\n if (childNode.wrapper == null) {\n childNode.wrapper = {\n actualSize: { width: childNode.width, height: childNode.height },\n offsetX: childNode.offsetX, offsetY: childNode.offsetY\n };\n }\n lanes[parseInt(i.toString(), 10)].children.push(childNode);\n }\n }\n for (var i = 0; i < node.phases.length; i++) {\n phases[parseInt(i.toString(), 10)] = {\n header: {\n annotation: {\n content: node.phases[parseInt(i.toString(), 10)].label.text,\n // eslint-disable-next-line max-len\n style: { fill: node.phases[parseInt(i.toString(), 10)].label.fillColor, fontSize: node.phases[parseInt(i.toString(), 10)].label.fontSize, color: node.phases[parseInt(i.toString(), 10)].label.fontColor }\n },\n },\n offset: node.phases[parseInt(i.toString(), 10)].offset,\n // eslint-disable-next-line max-len\n style: { fill: node.phases[parseInt(i.toString(), 10)].fillColor, strokeColor: node.phases[parseInt(i.toString(), 10)].lineColor, strokeDashArray: node.phases[parseInt(i.toString(), 10)].lineDashArray }\n };\n }\n newNode.shape.lanes = lanes;\n newNode.shape.phases = phases;\n return newNode.shape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Rendered the event collections for the node properties\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n NodeProperties.prototype.renderEventsCollection = function (subProcessEvents) {\n var eventsCollection = [];\n if (subProcessEvents.length > 0) {\n for (var i = 0; i < subProcessEvents.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var newEvent = void 0;\n var eventObject = subProcessEvents[parseInt(i.toString(), 10)];\n newEvent.event = (eventObject.event).charAt(0).toUpperCase() + (eventObject.event).slice(1);\n newEvent.trigger = (eventObject.trigger).charAt(0).toUpperCase() + (eventObject.trigger).slice(1);\n newEvent.offset = { x: eventObject.offset.x, y: eventObject.offset.y };\n eventsCollection.push(newEvent);\n }\n }\n return eventsCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Rendered the process collections for the node properties\n NodeProperties.prototype.renderProcessesCollection = function (node) {\n var processesCollection = [];\n if (node.subProcess && node.subProcess.processes.length > 0) {\n for (var i = 0; i < node.subProcess.processes.length; i++) {\n var processObject = node.subProcess.processes[parseInt(i.toString(), 10)];\n var data = this.convertToNode(processObject);\n processesCollection.push(data);\n }\n }\n return processesCollection;\n };\n /**\n*To destroy the ruler\n*\n* @returns {void} To destroy the ruler\n*/\n NodeProperties.prototype.destroy = function () {\n /**\n * Destroys the Node properties module\n */\n };\n /**\n * Get module name.\n */\n NodeProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'NodeProperties';\n };\n return NodeProperties;\n}());\nexport { NodeProperties };\n","import { PortConstraints, PortVisibility } from \"../enum/enum\";\nvar PortProperties = /** @class */ (function () {\n function PortProperties(modelProperties) {\n this.modelProperties = modelProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and assign EJ1 to EJ2 port properties\n PortProperties.prototype.setPortProperties = function (oldPorts) {\n var portCollection = [];\n if (oldPorts.length > 0) {\n for (var i = 0; i < oldPorts.length; i++) {\n var port = oldPorts[parseInt(i.toString(), 10)];\n var newPort = {};\n newPort.style = {};\n if (port.name) {\n newPort.id = port.name;\n }\n if (port.addInfo) {\n newPort.addInfo = port.addInfo;\n }\n if (port.height) {\n newPort.height = port.height;\n }\n if (port.width) {\n newPort.width = port.width;\n }\n if (port.horizontalAlignment) {\n newPort.horizontalAlignment = (port.horizontalAlignment);\n }\n if (port.verticalAlignment) {\n newPort.verticalAlignment = port.verticalAlignment;\n }\n if (port.margin) {\n // eslint-disable-next-line max-len\n newPort.margin = { left: port.margin.left, right: port.margin.right, top: port.margin.top, bottom: port.margin.bottom };\n }\n if (port.offset) {\n newPort.offset = { x: port.offset.x, y: port.offset.y };\n }\n if (port.borderColor) {\n newPort.style.strokeColor = port.borderColor;\n }\n if (port.borderWidth) {\n newPort.style.strokeWidth = port.borderWidth;\n }\n if (port.fillColor) {\n newPort.style.fill = port.fillColor;\n }\n if (port.constraints) {\n newPort.constraints = this.setPortConstraints(port.constraints);\n }\n if (port.pathData) {\n newPort.pathData = port.pathData;\n }\n if (port.shape === 'Custom') {\n newPort.shape = 'Custom';\n }\n else {\n newPort.shape = port.shape;\n }\n if (port.visibility) {\n newPort.visibility = this.setPortVisibility(port.visibility);\n }\n portCollection.push(newPort);\n }\n }\n return portCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the port constraints from EJ1 to EJ2\n PortProperties.prototype.setPortConstraints = function (constraints) {\n var portConstraints = PortConstraints.None;\n if (constraints & PortConstraints.Drag) {\n portConstraints = portConstraints | PortConstraints.Drag;\n }\n if (constraints & PortConstraints.Draw) {\n portConstraints = portConstraints | PortConstraints.Draw;\n }\n if (constraints & PortConstraints.None) {\n portConstraints = PortConstraints.None;\n }\n portConstraints = PortConstraints.Default;\n return portConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the portVisibility from EJ1 to EJ2\n PortProperties.prototype.setPortVisibility = function (visibility) {\n var portVisibility;\n if (visibility & PortVisibility.Visible) {\n portVisibility = portVisibility | PortVisibility.Visible;\n }\n if (visibility & PortVisibility.Hidden) {\n portVisibility = portVisibility | PortVisibility.Hidden;\n }\n if (visibility & PortVisibility.Hover) {\n portVisibility = portVisibility | PortVisibility.Hover;\n }\n if (visibility & PortVisibility.Connect) {\n portVisibility = portVisibility | PortVisibility.Connect;\n }\n return portVisibility;\n };\n /**\n*To destroy the ruler\n*\n* @returns {void} To destroy the ruler\n*/\n PortProperties.prototype.destroy = function () {\n /**\n * Destroys the Port properties module\n */\n };\n /**\n * Get module name.\n */\n PortProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'PortProperties';\n };\n return PortProperties;\n}());\nexport { PortProperties };\n","import { DiagramConstraints, DiagramTools, SelectorConstraints, SnapConstraints } from \"../enum/enum\";\nimport { ConnectorProperties } from \"./connectorProperties\";\nimport { LabelProperties } from \"./labelProperties\";\nimport { NodeProperties } from \"./nodeProperties\";\nimport { PortProperties } from \"./portProperties\";\nvar EJ1SerializationModule = /** @class */ (function () {\n function EJ1SerializationModule(diagram) {\n this.labelProperties = new LabelProperties(this);\n this.connectorProperties = new ConnectorProperties(this.labelProperties);\n this.portProperties = new PortProperties(this);\n this.nodeProperties = new NodeProperties(this.labelProperties, this.portProperties);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.items = [];\n this.diagram = diagram;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Getting the object data from the load diagram and serialize it into from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.getSerializedData = function (data) {\n this.convertedData.mode = 'SVG';\n this.convertedData.basicElements = [];\n this.convertedData.width = data.width;\n this.convertedData.height = data.height;\n if (data.nodes && data.nodes.length > 0) {\n this.nodeProperties.renderNodesCollection(this.convertedData, data);\n }\n else {\n this.convertedData.nodes = data.nodes;\n }\n if (data.connectors && data.connectors.length > 0) {\n this.connectorProperties.renderConnectorsCollection(this.convertedData, data);\n }\n else {\n this.convertedData.connectors = data.connectors;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (data.defaultSettings !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData.getNodeDefaults = this.getNodeDefaults(data.defaultSettings.node);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData.getConnectorDefaults = this.getConnectorDefaults(data.defaultSettings.connector);\n }\n //this.convertedData.setNodeTemplate = this.getNodeTemplate((data as Diagram).nodeTemplate);\n this.setLayers(this.convertedData, data);\n this.setDataSourceSettings(this.convertedData, data);\n this.setRulerSettings(this.convertedData, data);\n this.setSnapSettings(this.convertedData, data);\n if (data.snapSettings.enableSnapToObject) {\n this.convertedData.snapSettings.constraints = this.convertedData.snapSettings.constraints | SnapConstraints.SnapToObject;\n }\n else {\n this.convertedData.snapSettings.constraints = this.convertedData.snapSettings.constraints & ~SnapConstraints.SnapToObject;\n }\n if (data.pageSettings.backgroundImage === undefined) {\n data.pageSettings.pageBackgroundColor = 'transparent';\n data.pageSettings.backgroundImage = {\n source: '',\n scale: 'meet',\n alignment: 'xmidymid'\n };\n data.pageSettings.showPageBreak = false;\n }\n this.setScrollSettings(this.convertedData, data);\n this.setPageSettings(this.convertedData, data);\n this.setContextMenu(this.convertedData, data);\n this.setTooltip(this.convertedData, data);\n this.setModelLayout(this.convertedData, data);\n this.setSelectedItems(this.convertedData, data);\n this.convertedData.constraints = this.setDiagramConstraints(data.constraints);\n this.convertedData.tool = this.setDiagramTool(data.tool);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData.drawType = data.drawType;\n this.convertedData.commandManager = data.commandManager;\n return this.convertedData;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //declare the node default properties\n EJ1SerializationModule.prototype.getNodeDefaults = function (node) {\n if (node) {\n return this.nodeProperties.convertToNode(node);\n }\n else {\n return null;\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //declare the node default properties\n EJ1SerializationModule.prototype.getConnectorDefaults = function (connector) {\n if (connector) {\n return this.connectorProperties.convertToConnector(connector);\n }\n else {\n return null;\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the layers from the EJ1 JSON\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.setLayers = function (convertedData, data) {\n var layers = [];\n if (data.layers.length > 0) {\n for (var i = 0; i < data.layers.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var newLayer = {};\n var layer = data.layers[parseInt(i.toString(), 10)];\n newLayer.id = layer.id;\n newLayer.visible = layer.visible;\n newLayer.lock = layer.lock;\n newLayer.objects = layer.objects;\n convertedData.layers[parseInt(i.toString(), 10)] = newLayer;\n }\n }\n convertedData.layers = layers;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the dataSourceSettings from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.setDataSourceSettings = function (convertedData, data) {\n convertedData.dataSourceSettings = {};\n convertedData.dataSourceSettings.id = data.dataSourceSettings.id;\n convertedData.dataSourceSettings.dataManager = data.dataSourceSettings.dataSource;\n convertedData.dataSourceSettings.root = data.dataSourceSettings.root;\n convertedData.dataSourceSettings.parentId = data.dataSourceSettings.parent;\n convertedData.dataSourceSettings.crudAction = {\n read: data.dataSourceSettings.crudAction.read,\n create: data.dataSourceSettings.crudAction.create,\n update: data.dataSourceSettings.crudAction.update,\n destroy: data.dataSourceSettings.crudAction.destroy,\n customFields: data.dataSourceSettings.customFields\n };\n if (data.dataSourceSettings.connectionDataSource) {\n convertedData.dataSourceSettings.connectionDataSource = {};\n convertedData.dataSourceSettings.connectionDataSource.id = data.dataSourceSettings.connectionDataSource.id;\n convertedData.dataSourceSettings.connectionDataSource.dataManager = data.dataSourceSettings.connectionDataSource.dataSource;\n convertedData.dataSourceSettings.connectionDataSource.sourceID = data.dataSourceSettings.connectionDataSource.sourceNode;\n convertedData.dataSourceSettings.connectionDataSource.targetID = data.dataSourceSettings.connectionDataSource.targetNode;\n convertedData.dataSourceSettings.connectionDataSource.sourcePointX = data.dataSourceSettings.connectionDataSource.sourcePointX;\n convertedData.dataSourceSettings.connectionDataSource.sourcePointY = data.dataSourceSettings.connectionDataSource.sourcePointY;\n convertedData.dataSourceSettings.connectionDataSource.targetPointX = data.dataSourceSettings.connectionDataSource.targetPointX;\n convertedData.dataSourceSettings.connectionDataSource.targetPointY = data.dataSourceSettings.connectionDataSource.targetPointY;\n convertedData.dataSourceSettings.connectionDataSource.crudAction = {\n read: data.dataSourceSettings.connectionDataSource.crudAction.read,\n create: data.dataSourceSettings.connectionDataSource.crudAction.create,\n update: data.dataSourceSettings.connectionDataSource.crudAction.update,\n destroy: data.dataSourceSettings.connectionDataSource.crudAction.destroy,\n customFields: data.dataSourceSettings.connectionDataSource.customFields\n };\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the ruler settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.setRulerSettings = function (convertedData, data) {\n convertedData.rulerSettings = {};\n convertedData.rulerSettings.showRulers = data.rulerSettings.showRulers;\n convertedData.rulerSettings.horizontalRuler = this.setRulerProperties(data.rulerSettings.horizontalRuler);\n convertedData.rulerSettings.verticalRuler = this.setRulerProperties(data.rulerSettings.verticalRuler);\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the orientation of the ruler\n EJ1SerializationModule.prototype.setRulerProperties = function (ruler) {\n var rulerProperties = {};\n rulerProperties.interval = ruler.interval;\n rulerProperties.segmentWidth = ruler.segmentWidth;\n // rulerProperties.tickAlignment = ruler.tickAlignment === 'rightorbottom' ? 'RightOrBottom' : 'LeftOrTop';\n rulerProperties.markerColor = ruler.markerColor;\n rulerProperties.thickness = ruler.thickness;\n rulerProperties.arrangeTick = ruler.arrangeTick;\n return rulerProperties;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the snap settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.setSnapSettings = function (convertedData, data) {\n convertedData.snapSettings = {};\n if (data.snapSettings) {\n convertedData.snapSettings.horizontalGridLines = this.setGridLines(data.snapSettings.horizontalGridLines);\n convertedData.snapSettings.verticalGridLines = this.setGridLines(data.snapSettings.verticalGridLines);\n convertedData.snapSettings.snapAngle = data.snapSettings.snapAngle;\n convertedData.snapSettings.snapObjectDistance = data.snapSettings.snapObjectDistance;\n convertedData.snapSettings.constraints = this.setSnapConstraints(data.snapSettings.snapConstraints);\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the snap constraints from EJ1 to EJ2\n EJ1SerializationModule.prototype.setSnapConstraints = function (constraints) {\n var snapConstraints = SnapConstraints.None;\n if (constraints & SnapConstraints.ShowHorizontalLines) {\n snapConstraints = snapConstraints | SnapConstraints.ShowHorizontalLines;\n }\n if (constraints & SnapConstraints.ShowVerticalLines) {\n snapConstraints = snapConstraints | SnapConstraints.ShowVerticalLines;\n }\n if (constraints & SnapConstraints.ShowLines) {\n snapConstraints = snapConstraints | SnapConstraints.ShowLines;\n }\n if (constraints & SnapConstraints.SnapToHorizontalLines) {\n snapConstraints = snapConstraints | SnapConstraints.SnapToHorizontalLines;\n }\n if (constraints & SnapConstraints.SnapToVerticalLines) {\n snapConstraints = snapConstraints | SnapConstraints.SnapToVerticalLines;\n }\n if (constraints & SnapConstraints.SnapToLines) {\n snapConstraints = snapConstraints | SnapConstraints.SnapToLines;\n }\n return snapConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the gridlines\n EJ1SerializationModule.prototype.setGridLines = function (gridlines) {\n var gridLinesProperties = {};\n gridLinesProperties.lineColor = gridlines.lineColor;\n gridLinesProperties.lineDashArray = gridlines.lineDashArray;\n gridLinesProperties.lineIntervals = gridlines.lineInterval;\n gridLinesProperties.snapIntervals = gridlines.snapInterval;\n return gridLinesProperties;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the scroll-settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.setScrollSettings = function (convertedData, data) {\n convertedData.scrollSettings = {\n horizontalOffset: data.scrollSettings.horizontalOffset,\n verticalOffset: data.scrollSettings.verticalOffset,\n currentZoom: data.scrollSettings.currentZoom,\n viewPortWidth: data.scrollSettings.viewPortWidth,\n viewPortHeight: data.scrollSettings.viewPortHeight,\n minZoom: data.scrollSettings.minZoom,\n maxZoom: data.scrollSettings.maxZoom,\n scrollLimit: (data.pageSettings.scrollLimit).charAt(0).toUpperCase() + (data.pageSettings.scrollLimit).slice(1),\n scrollableArea: data.pageSettings.scrollableArea,\n canAutoScroll: data.enableAutoScroll,\n autoScrollBorder: data.pageSettings.autoScrollBorder\n };\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the page settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.setPageSettings = function (convertedData, data) {\n convertedData.pageSettings = {\n width: data.pageSettings.pageWidth,\n height: data.pageSettings.pageHeight,\n // eslint-disable-next-line max-len\n margin: { left: data.pageSettings.pageMargin, right: data.pageSettings.pageMargin, top: data.pageSettings.pageMargin, bottom: data.pageSettings.pageMargin },\n orientation: (data.pageSettings.pageOrientation).charAt(0).toUpperCase() + (data.pageSettings.pageOrientation).slice(1),\n // eslint-disable-next-line max-len\n boundaryConstraints: (data.pageSettings.boundaryConstraints).charAt(0).toUpperCase() + (data.pageSettings.boundaryConstraints).slice(1),\n // eslint-disable-next-line max-len\n background: { color: data.pageSettings.pageBackgroundColor, source: data.backgroundImage.source, scale: data.backgroundImage.scale, align: data.backgroundImage.align },\n multiplePage: data.pageSettings.multiplePage,\n showPageBreaks: data.pageSettings.showPageBreak\n };\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the contextmenu settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.setContextMenu = function (convertedData, data) {\n convertedData.contextMenuSettings = {};\n convertedData.contextMenuSettings.show = data.enableContextMenu;\n if (data.contextMenu !== undefined) {\n convertedData.contextMenuSettings.showCustomMenuOnly = data.contextMenu.showCustomMenuItemsOnly;\n convertedData.contextMenuSettings.items = this.getContextMenuItems(data.contextMenu.items);\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the contextmenu items\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.getContextMenuItems = function (contextMenuItems) {\n var menuItem = {};\n for (var i = 0; i < contextMenuItems.length; i++) {\n var oldMenuItem = contextMenuItems[parseInt(i.toString(), 10)];\n menuItem.id = oldMenuItem.name;\n menuItem.text = oldMenuItem.text;\n this.items.push(menuItem);\n if (contextMenuItems.subItems && contextMenuItems.subItems.length > 0) {\n this.getContextMenuItems(contextMenuItems.subItems);\n }\n }\n return this.items;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the tooltip items\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.setTooltip = function (convertedData, data) {\n convertedData.tooltip = {\n content: data.tooltip.templateId,\n relativeMode: data.tooltip.relativeMode\n };\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the model layout for the converted data\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.setModelLayout = function (convertedData, data) {\n convertedData.layout = {\n fixedNode: data.layout.fixedNode,\n horizontalSpacing: data.layout.horizontalSpacing,\n verticalSpacing: data.layout.verticalSpacing,\n maxIteration: data.layout.maxIteration,\n springFactor: data.layout.springFactor,\n springLength: data.layout.springLength,\n // eslint-disable-next-line max-len\n margin: { left: data.layout.margin.left, right: data.layout.margin.right, top: data.layout.margin.top, bottom: data.layout.margin.bottom },\n horizontalAlignment: (data.layout.horizontalAlignment).charAt(0).toUpperCase() + (data.layout.horizontalAlignment).slice(1),\n verticalAlignment: (data.layout.verticalAlignment).charAt(0).toUpperCase() + (data.layout.verticalAlignment).slice(1),\n orientation: data.layout.orientation === 'rightorbottom' ? 'RightOrBottom' : 'LeftOrTop',\n connectorSegments: data.layout.getConnectorSegments,\n type: (data.layout.type).charAt(0).toUpperCase() + (data.layout.type).slice(1),\n getLayoutInfo: data.layout.getLayoutInfo,\n bounds: data.layout.bounds,\n root: data.layout.root,\n };\n if (data.layout && data.layout.type === \"hierarchicaltree\") {\n convertedData.layout.type = \"None\";\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the selected items to convert the data\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EJ1SerializationModule.prototype.setSelectedItems = function (convertedData, data) {\n convertedData.selectedItems = {};\n var nodes = [];\n var connectors = [];\n if (data.children && data.children.length > 0) {\n for (var i = 0; i < data.children.length; i++) {\n var selectedElement = data.children[parseInt(i.toString(), 10)];\n if (selectedElement.segments) {\n connectors.push(selectedElement);\n }\n else {\n nodes.push(selectedElement);\n }\n }\n }\n convertedData.selectedItems.nodes = nodes;\n convertedData.selectedItems.connectors = connectors;\n convertedData.selectedItems.offsetX = data.selectedItems.offsetX;\n convertedData.selectedItems.offsetY = data.selectedItems.offsetY;\n convertedData.selectedItems.width = data.selectedItems.width;\n convertedData.selectedItems.height = data.selectedItems.height;\n convertedData.selectedItems.rotateAngle = data.selectedItems.rotateAngle;\n convertedData.selectedItems.constraints = this.setSelectorConstraints(data.selectedItems.constraints);\n convertedData.selectedItems.userHandles = data.selectedItems.userHandles;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the selector constraints from EJ1 to EJ2\n EJ1SerializationModule.prototype.setSelectorConstraints = function (constraints) {\n var selectorConstraints = SelectorConstraints.None;\n if (constraints & SelectorConstraints.ConnectorSourceThumb) {\n selectorConstraints = selectorConstraints | SelectorConstraints.Rotate;\n }\n if (constraints & SelectorConstraints.ResizeAll) {\n selectorConstraints = selectorConstraints | SelectorConstraints.ResizeAll;\n }\n if (constraints & SelectorConstraints.ResizeSouthEast) {\n selectorConstraints = selectorConstraints | SelectorConstraints.UserHandle;\n }\n if (constraints & SelectorConstraints.ToolTip) {\n selectorConstraints = selectorConstraints | SelectorConstraints.ToolTip;\n }\n if (constraints & SelectorConstraints.All) {\n selectorConstraints = selectorConstraints | SelectorConstraints.All;\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the diagram constraints from EJ1 to EJ2\n EJ1SerializationModule.prototype.setDiagramConstraints = function (constraints) {\n var diagramConstraints = DiagramConstraints.None;\n if (constraints & DiagramConstraints.UserInteraction) {\n diagramConstraints = diagramConstraints | DiagramConstraints.UserInteraction;\n }\n if (constraints & DiagramConstraints.ApiUpdate) {\n diagramConstraints = diagramConstraints | DiagramConstraints.ApiUpdate;\n }\n if (constraints & DiagramConstraints.PageEditable) {\n diagramConstraints = diagramConstraints | DiagramConstraints.PageEditable;\n }\n if (constraints & DiagramConstraints.LineRouting) {\n diagramConstraints = diagramConstraints | DiagramConstraints.Bridging;\n }\n if (constraints & DiagramConstraints.Zoom) {\n diagramConstraints = diagramConstraints | DiagramConstraints.Zoom;\n }\n if (constraints & DiagramConstraints.PanX) {\n diagramConstraints = diagramConstraints | DiagramConstraints.PanX;\n }\n if (constraints & DiagramConstraints.PanY) {\n diagramConstraints = diagramConstraints | DiagramConstraints.PanY;\n }\n if (constraints & DiagramConstraints.Pan) {\n diagramConstraints = diagramConstraints | DiagramConstraints.Pan;\n }\n if (constraints & DiagramConstraints.UndoRedo) {\n diagramConstraints = diagramConstraints | DiagramConstraints.UndoRedo;\n }\n if (constraints & DiagramConstraints.ZoomTextEdit) {\n diagramConstraints = diagramConstraints | DiagramConstraints.ZoomTextEdit;\n }\n return diagramConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the diagram tool from EJ1 to EJ2\n EJ1SerializationModule.prototype.setDiagramTool = function (tool) {\n var diagramTool = DiagramTools.None;\n if (tool & DiagramTools.MultipleSelect) {\n diagramTool = diagramTool | DiagramTools.SingleSelect;\n }\n if (tool & DiagramTools.ZoomPan) {\n diagramTool = diagramTool | DiagramTools.MultipleSelect;\n }\n if (tool & DiagramTools.DrawOnce) {\n diagramTool = diagramTool | DiagramTools.ZoomPan;\n }\n if (tool & DiagramTools.ContinuousDraw) {\n diagramTool = diagramTool | DiagramTools.DrawOnce;\n }\n if (tool & DiagramTools.ContinuousDraw) {\n diagramTool = diagramTool | DiagramTools.ContinuousDraw;\n }\n return diagramTool;\n };\n // /* tslint:disable */\n // /**\n // * To provide the array of modules needed for control rendering\n // *\n // * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering .\\\n // * @private\n // */\n // public requiredModules(): ModuleDeclaration[] {\n // const modules: ModuleDeclaration[] = [];\n // modules.push({\n // member: 'NodeProperties',\n // args: []\n // });\n // return modules;\n // }\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n EJ1SerializationModule.prototype.destroy = function () {\n /**\n * Destroys the Print and Export module\n */\n };\n /**\n * Get module name.\n */\n EJ1SerializationModule.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'EJ1SerializationModule';\n };\n return EJ1SerializationModule;\n}());\nexport { EJ1SerializationModule };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable prefer-spread */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-returns */\nimport { Component, Property, Complex, Collection, EventHandler, L10n, Droppable, remove, isBlazor, blazorTemplates, Fetch } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Browser, Event } from '@syncfusion/ej2-base';\nimport { updateBlazorTemplate, resetBlazorTemplate } from '@syncfusion/ej2-base';\nimport { CanvasRenderer } from './rendering/canvas-renderer';\nimport { SvgRenderer } from './rendering/svg-renderer';\nimport { DiagramRenderer } from './rendering/renderer';\nimport { PageSettings, ScrollSettings } from './diagram/page-settings';\nimport { ServiceLocator } from './objects/service';\nimport { Container } from './core/containers/container';\nimport { Node, BpmnShape, SwimLane } from './objects/node';\nimport { cloneBlazorObject, cloneSelectedObjects, findObjectIndex, selectionHasConnector } from './utility/diagram-util';\nimport { checkBrowserInfo } from './utility/diagram-util';\nimport { updateDefaultValues, getCollectionChangeEventArguements } from './utility/diagram-util';\nimport { flipConnector, updatePortEdges, alignElement, setConnectorDefaults, getPreviewSize } from './utility/diagram-util';\nimport { Connector } from './objects/connector';\nimport { SnapSettings } from './diagram/grid-lines';\nimport { RulerSettings } from './diagram/ruler-settings';\nimport { removeRulerElements, updateRuler, getRulerSize } from './ruler/ruler';\nimport { renderRuler, renderOverlapElement } from './ruler/ruler';\nimport { Size } from './primitives/size';\nimport { Keys, KeyModifiers, DiagramTools, AnnotationConstraints, NodeConstraints, ScrollActions } from './enum/enum';\nimport { RendererAction } from './enum/enum';\nimport { BlazorAction } from './enum/enum';\nimport { DiagramConstraints, SelectorConstraints, PortVisibility, DiagramEvent } from './enum/enum';\nimport { DiagramAction, ThumbsConstraints } from './enum/enum';\nimport { RealAction, ElementAction, PortConstraints } from './enum/enum';\nimport { PathElement } from './core/elements/path-element';\nimport { TextElement } from './core/elements/text-element';\nimport { updateStyle, removeItem, updateConnector, updateShape, setUMLActivityDefaults, findNodeByName } from './utility/diagram-util';\nimport { setSwimLaneDefaults } from './utility/diagram-util';\nimport { checkPortRestriction, serialize, deserialize, updateHyperlink, getObjectType, removeGradient, getChild } from './utility/diagram-util';\nimport { Rect } from './primitives/rect';\nimport { getPortShape } from './objects/dictionary/common';\nimport { ShapeAnnotation, PathAnnotation } from './objects/annotation';\nimport { Canvas } from './core/containers/canvas';\nimport { GridPanel, ColumnDefinition } from './core/containers/grid';\nimport { DataSource } from './diagram/data-source';\nimport { Layout } from './layout/layout-base';\nimport { Selector, Text } from './objects/node';\nimport { DiagramEventHandler } from './interaction/event-handlers';\nimport { CommandHandler } from './interaction/command-manager';\nimport { DiagramScroller } from './interaction/scroller';\nimport { isSelected } from './interaction/actions';\nimport { SpatialSearch } from './interaction/spatial-search/spatial-search';\nimport { setAttributeSvg, setAttributeHtml, measureHtmlText, removeElement, createMeasureElements, getDomIndex } from './utility/dom-util';\nimport { getDiagramElement, getScrollerWidth, getHTMLLayer, createUserHandleTemplates } from './utility/dom-util';\nimport { getBackgroundLayer, createHtmlElement, createSvgElement, getNativeLayerSvg, getUserHandleLayer } from './utility/dom-util';\nimport { getPortLayerSvg, getDiagramLayerSvg, applyStyleAgainstCsp } from './utility/dom-util';\nimport { getAdornerLayerSvg, getSelectorElement, getGridLayerSvg, getBackgroundLayerSvg } from './utility/dom-util';\nimport { CommandManager, ContextMenuSettings } from './diagram/keyboard-commands';\nimport { canDelete, canInConnect, canOutConnect, canRotate, canVitualize, canDrawThumbs } from './utility/constraints-util';\nimport { canPortInConnect, canPortOutConnect } from './utility/constraints-util';\nimport { canResize, canSingleSelect, canZoomPan, canZoomTextEdit, canMultiSelect } from './utility/constraints-util';\nimport { canDragSourceEnd, canDragTargetEnd, canDragSegmentThumb, enableReadOnly, canMove } from './utility/constraints-util';\nimport { findAnnotation, arrangeChild, getInOutConnectPorts, removeChildNodes, canMeasureDecoratorPath } from './utility/diagram-util';\nimport { randomId, cloneObject, extendObject, getFunction, getBounds } from './utility/base-util';\nimport { DiagramTooltip, initTooltip } from './objects/tooltip';\nimport { PointPort } from './objects/port';\nimport { canShadow } from './utility/constraints-util';\nimport { Layer } from './diagram/layer';\nimport { DiagramNativeElement } from './core/elements/native-element';\nimport { DiagramHtmlElement } from './core/elements/html-element';\nimport { canAllowDrop } from './utility/constraints-util';\nimport { checkParentAsContainer, addChildToContainer, updateLaneBoundsAfterAddChild } from './interaction/container-interaction';\nimport { getConnectors, updateConnectorsProperties, phaseDefine } from './utility/swim-lane-util';\nimport { swimLaneMeasureAndArrange } from './utility/swim-lane-util';\nimport { arrangeChildNodesInSwimLane, updateHeaderMaxWidth, updatePhaseMaxWidth } from './utility/swim-lane-util';\nimport { addLane, addPhase } from './utility/swim-lane-util';\nimport { SerializationSettings } from './diagram/serialization-settings';\nimport { removeSwimLane, removeLane, removePhase, removeLaneChildNode } from './utility/swim-lane-util';\nimport { RowDefinition } from './core/containers/grid';\nimport { CustomCursorAction } from './diagram/custom-cursor';\nimport { DiagramSettings } from '../diagram/diagram-settings';\nimport { StackPanel } from './core/containers/stack-panel';\nimport { ConnectorFixedUserHandle, NodeFixedUserHandle } from './objects/fixed-user-handle';\nimport { Point } from './primitives/point';\nimport { EJ1SerializationModule } from './load-utility/modelProperties';\n/**\n * Represents the Diagram control\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * width:'1000px', height:'500px' });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar Diagram = /** @class */ (function (_super) {\n __extends(Diagram, _super);\n /**\n * Constructor for creating the widget\n */\n function Diagram(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.version = 17.1;\n /** @private */\n _this.checkMenu = false;\n /** @private */\n _this.isServerUpdate = false;\n /** @private */\n _this.oldNodeObjects = [];\n /** @private */\n _this.oldDiagramObject = {};\n /** @private */\n _this.oldConnectorObjects = [];\n /** @private */\n _this.canEnableBlazorObject = false;\n /** @private */\n _this.connectorTable = {};\n /** @private */\n _this.groupTable = {};\n /** @private */\n _this.scrollActions = ScrollActions.None;\n /** @private */\n _this.blazorActions = BlazorAction.Default;\n /** @private */\n _this.activeLabel = { id: '', parentId: '', isGroup: false, text: undefined };\n /** @private */\n _this.textEditing = false;\n /** @private */\n _this.isTriggerEvent = false;\n /** @private */\n _this.preventNodesUpdate = false;\n /** @private */\n _this.preventConnectorsUpdate = false;\n /** @private */\n _this.callBlazorModel = true;\n /** @private */\n _this.selectionConnectorsList = [];\n /** @private */\n _this.deleteVirtualObject = false;\n _this.canLayout = true;\n _this.isRefreshed = false;\n /** @private */\n _this.swimlaneChildTable = {};\n /** @private */\n _this.swimlaneZIndexTable = {};\n /** @private */\n _this.canExpand = false;\n _this.changedConnectorCollection = [];\n _this.changedNodesCollection = [];\n _this.previousNodeCollection = [];\n _this.previousConnectorCollection = [];\n _this.crudDeleteNodes = [];\n _this.previousSelectedObjects = [];\n // Group update to server when BlazorAction is isGroupAction;\n _this.blazorAddorRemoveCollection = [];\n _this.blazorRemoveIndexCollection = [];\n _this.diagramid = 88123;\n /** @private */\n _this.selectedObject = { helperObject: undefined, actualObject: undefined };\n _this.renderTimer = null;\n var child;\n var node;\n var blazor = 'Blazor';\n var canCloneObject = isBlazor() && window && window[\"\" + blazor] && !_this.dataSourceSettings.dataSource;\n _this.ignoreCollectionWatch = true;\n for (var i = 0; options && options.nodes && i < options.nodes.length; i++) {\n child = options.nodes[parseInt(i.toString(), 10)];\n node = _this.nodes[parseInt(i.toString(), 10)];\n if (child.children && child.children.length > 0) {\n if (!child.style || !child.style.fill) {\n node.style.fill = 'transparent';\n }\n if (!child.style || !child.style.strokeColor) {\n node.style.strokeColor = 'transparent';\n }\n }\n if (child.shape && child.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(child, node);\n }\n if (child.shape && child.shape.type === 'SwimLane') {\n setSwimLaneDefaults(child, node);\n }\n if (canCloneObject) {\n _this.previousNodeCollection.push(cloneObject(node, undefined, undefined, true));\n }\n if (_this.nodeDefaults) {\n updateDefaultValues(node, child, _this.nodeDefaults);\n }\n _this.updateAnnotationText(node.annotations);\n }\n if (options && options.connectors) {\n for (var i = 0; options && options.connectors && i < options.connectors.length; i++) {\n child = options.connectors[parseInt(i.toString(), 10)];\n node = _this.connectors[parseInt(i.toString(), 10)];\n if (canCloneObject) {\n _this.previousConnectorCollection.push(cloneObject(node, undefined, undefined, true));\n }\n if (_this.connectorDefaults) {\n updateDefaultValues(node, child, _this.connectorDefaults);\n }\n _this.updateAnnotationText(node.annotations);\n }\n }\n for (var i = 0; options && options.connectors && i < options.connectors.length; i++) {\n var defaultConnector = options.connectors[parseInt(i.toString(), 10)];\n var connector = _this.connectors[parseInt(i.toString(), 10)];\n if (defaultConnector.shape && defaultConnector.shape.type !== 'None') {\n setConnectorDefaults(defaultConnector, connector);\n }\n if (isBlazor()) {\n var defaultPropChanges = cloneObject(_this.bulkChanges);\n _this.enableServerDataBinding(true);\n _this.protectPropertyChange(true);\n var keys = Object.keys(defaultPropChanges);\n for (var i_1 = 0; i_1 < keys.length; i_1++) {\n var key = keys[parseInt(i_1.toString(), 10)];\n var split = key.split('-');\n if (split && split[0]) {\n if (split[0] === 'nodes') {\n defaultPropChanges[\"\" + key].sfIndex = Number(split[1]);\n _this.changedNodesCollection.push(defaultPropChanges[\"\" + key]);\n }\n if (split[0] === 'connectors') {\n defaultPropChanges[\"\" + key].sfIndex = Number(split[1]);\n _this.changedConnectorCollection.push(defaultPropChanges[\"\" + key]);\n }\n }\n }\n }\n }\n return _this;\n }\n Diagram.prototype.updateAnnotationText = function (annotations) {\n if (isBlazor() && annotations.length > 0) {\n for (var i = 0; annotations && i < annotations.length; i++) {\n var label = annotations[parseInt(i.toString(), 10)];\n label.content = label.content.split('\\\\n').join('\\n');\n }\n }\n };\n Diagram.prototype.callFromServer = function (arg) {\n var methodName = 'methodName';\n var mId = 'id';\n if (arg[\"\" + methodName] === 'getParentID') {\n var id = arg[\"\" + mId];\n return this.nameTable[\"\" + id].parentId;\n }\n else if (arg[\"\" + methodName] === 'getEdges') {\n var outEdge = 'outEdge';\n var isOutEdge = arg[\"\" + outEdge];\n var id = arg[\"\" + mId];\n if (isOutEdge) {\n return this.nameTable[\"\" + id].outEdges;\n }\n else {\n return this.nameTable[\"\" + id].inEdges;\n }\n }\n else if (arg[\"\" + methodName] === 'updateDiagramObjects') {\n var obj = 'obj';\n var isAdding = 'IsAdding';\n var args = arg[\"\" + obj];\n this.isServerUpdate = true;\n if (arg[\"\" + isAdding]) {\n var add = 'add';\n this[\"\" + add].apply(this, args);\n }\n else {\n var remove_1 = 'remove';\n this[\"\" + remove_1].apply(this, args);\n }\n this.isServerUpdate = false;\n }\n else if (arg[\"\" + methodName] === 'invokeLoadDiagramMethod') {\n var data = 'data';\n this.loadDiagram(arg[\"\" + data]);\n }\n };\n Diagram.prototype.clearCollection = function (isConnector) {\n var collection = [];\n var obj;\n for (var _i = 0, _a = Object.keys(this.nameTable); _i < _a.length; _i++) {\n var key = _a[_i];\n obj = this.nameTable[\"\" + key];\n if (obj && ((isConnector && obj instanceof Connector) || (!isConnector && obj instanceof Node))) {\n collection.push(obj);\n }\n }\n this.clearObjects(collection);\n };\n /**\n * Updates the diagram control when the objects are changed\n *\n * @param {DiagramModel} newProp - Lists the new values of the changed properties\n * @param {DiagramModel} oldProp - Lists the old values of the changed properties\n */\n /* tslint:disable */\n Diagram.prototype.onPropertyChanged = function (newProp, oldProp) {\n // Model Changed\n var newValue;\n var oldValue;\n var isPropertyChanged = true;\n var refreshLayout = false;\n var refereshColelction = false;\n if (this.diagramActions & DiagramAction.Render) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n case 'height':\n this.element.style.width = this.getSizeValue(this.width);\n this.element.style.height = this.getSizeValue(this.height);\n this.eventHandler.updateViewPortSize(this.element);\n for (var _b = 0, _c = this.views; _b < _c.length; _b++) {\n var view = _c[_b];\n var temp = this.views[\"\" + view];\n if (!(temp instanceof Diagram)) {\n temp.updateView(temp);\n }\n }\n break;\n case 'nodes':\n if (newProp.nodes.length > 0 && oldProp.nodes.length === 0) {\n this.clearCollection();\n refereshColelction = true;\n }\n else {\n for (var _d = 0, _e = Object.keys(newProp.nodes); _d < _e.length; _d++) {\n var key = _e[_d];\n var index = Number(key);\n var actualObject = this.nodes[parseInt(index.toString(), 10)];\n var changedProp = newProp.nodes[parseInt(index.toString(), 10)];\n if (newProp.nodes[parseInt(index.toString(), 10)].style && newProp.nodes[parseInt(index.toString(), 10)].style.gradient) {\n this.updateGradient(newProp.nodes[parseInt(index.toString(), 10)], oldProp.nodes[parseInt(index.toString(), 10)], this.nodes[parseInt(index.toString(), 10)]);\n this.nodes[parseInt(index.toString(), 10)].oldGradientValue = cloneObject(newProp.nodes[parseInt(index.toString(), 10)].style.gradient);\n }\n refreshLayout = refreshLayout || changedProp.excludeFromLayout !== undefined;\n this.nodePropertyChange(actualObject, oldProp.nodes[parseInt(index.toString(), 10)], changedProp, undefined, true, true);\n var args = {\n element: cloneBlazorObject(actualObject), cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp.nodes[parseInt(index.toString(), 10)]),\n newValue: cloneBlazorObject(newProp.nodes[parseInt(index.toString(), 10)])\n };\n if (isBlazor()) {\n args.element = { node: cloneBlazorObject(actualObject) };\n args.oldValue = { node: cloneBlazorObject(oldValue) };\n args.newValue = { node: cloneBlazorObject(newValue) };\n }\n this.triggerEvent(DiagramEvent.propertyChange, args);\n if (isPropertyChanged) {\n isPropertyChanged = false;\n }\n }\n if (this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n }\n }\n break;\n case 'connectors':\n // eslint-disable-next-line no-case-declarations\n var oldObject = void 0;\n if (newProp.connectors.length > 0 && oldProp.connectors.length === 0) {\n this.clearCollection(true);\n refereshColelction = true;\n }\n else {\n for (var _f = 0, _g = Object.keys(newProp.connectors); _f < _g.length; _f++) {\n var key = _g[_f];\n var index = Number(key);\n var actualObject = this.connectors[parseInt(index.toString(), 10)];\n var changedProp = newProp.connectors[parseInt(index.toString(), 10)];\n if (changedProp && (changedProp.sourceDecorator || changedProp.targetDecorator)) {\n this.diagramActions |= DiagramAction.DecoratorPropertyChange;\n }\n this.connectorPropertyChange(actualObject, oldProp.connectors[parseInt(index.toString(), 10)], changedProp, true, true);\n if (changedProp && (changedProp.sourceDecorator || changedProp.targetDecorator)) {\n this.diagramActions = this.diagramActions & ~DiagramAction.DecoratorPropertyChange;\n }\n var args = {\n element: cloneBlazorObject(actualObject), cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp.connectors[parseInt(index.toString(), 10)]),\n newValue: cloneBlazorObject(newProp.connectors[parseInt(index.toString(), 10)])\n };\n if (isBlazor()) {\n args.element = { connector: cloneBlazorObject(actualObject) };\n args.oldValue = { connector: cloneBlazorObject(oldValue) };\n args.newValue = { connector: cloneBlazorObject(newValue) };\n }\n this.triggerEvent(DiagramEvent.propertyChange, args);\n if (actualObject && actualObject.parentId && this.nameTable[actualObject.parentId].shape.type === 'UmlClassifier') {\n this.updateConnectorEdges(this.nameTable[actualObject.parentId] || actualObject);\n }\n if (isPropertyChanged) {\n isPropertyChanged = false;\n }\n }\n this.updateBridging();\n if (this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n }\n }\n break;\n case 'bridgeDirection':\n this.updateBridging();\n if (this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n }\n break;\n case 'backgroundColor':\n this.intOffPageBackground();\n break;\n case 'pageSettings':\n this.validatePageSize();\n this.updatePage();\n break;\n case 'selectedItems':\n if (newProp.selectedItems.userHandles && this.selectedItems.wrapper && this.selectedItems.userHandles) {\n if (this.selectedItems.userHandles.length > 0) {\n this.renderSelector(true);\n break;\n }\n }\n if (newProp.selectedItems.constraints) {\n this.renderSelector(true);\n break;\n }\n break;\n case 'snapSettings':\n this.updateSnapSettings(newProp);\n break;\n case 'commandManager':\n this.initCommands();\n break;\n case 'layout':\n refreshLayout = true;\n break;\n case 'segmentThumbShape':\n this.updateSelector();\n break;\n case 'dataSourceSettings':\n this.clear();\n if (this.layout.type === 'None') {\n refereshColelction = true;\n }\n else {\n //EJ2-837322 - Duplicate nodes and connectors are created after reset for layout type 'None'\n this.initObjects();\n refreshLayout = true;\n }\n break;\n case 'tooltip':\n initTooltip(this);\n break;\n case 'rulerSettings':\n this.updateRulerSettings(newProp);\n break;\n case 'layers':\n this.updateLayer(newProp);\n break;\n case 'scrollSettings':\n this.scrollActions |= ScrollActions.PropertyChange;\n this.updateScrollSettings(newProp);\n this.scrollActions &= ~ScrollActions.PropertyChange;\n this.scrollSettings.horizontalOffset = -this.scroller.horizontalOffset || 0;\n this.scrollSettings.verticalOffset = -this.scroller.verticalOffset || 0;\n break;\n case 'locale':\n if (newProp.locale !== oldProp.locale) {\n this.realActions |= RealAction.PreventDataInit;\n _super.prototype.refresh.call(this);\n this.realActions &= ~RealAction.PreventDataInit;\n }\n break;\n case 'contextMenuSettings':\n if (newProp.contextMenuSettings.showCustomMenuOnly !== undefined) {\n this.contextMenuSettings.showCustomMenuOnly = newProp.contextMenuSettings.showCustomMenuOnly;\n }\n if (newProp.contextMenuSettings.show !== undefined) {\n this.contextMenuSettings.show = newProp.contextMenuSettings.show;\n }\n if (newProp.contextMenuSettings.items) {\n var items = newProp.contextMenuSettings.items;\n for (var _h = 0, _j = Object.keys(items); _h < _j.length; _h++) {\n var key = _j[_h];\n var index = Number(key);\n this.contextMenuSettings.items[parseInt(index.toString(), 10)] = items[parseInt(index.toString(), 10)];\n }\n if (this.contextMenuModule) {\n this.contextMenuModule.refreshItems();\n }\n }\n break;\n case 'serializationSettings':\n if (newProp.serializationSettings.preventDefaults !== undefined) {\n this.serializationSettings.preventDefaults = newProp.serializationSettings.preventDefaults;\n }\n break;\n }\n }\n if (refreshLayout && !refereshColelction) {\n if (oldProp.layout && oldProp.layout.connectionPointOrigin === 'DifferentPoint' && newProp.layout.connectionPointOrigin === 'SamePoint'\n || (oldProp.layout && newProp.layout && !newProp.layout.enableRouting && oldProp.layout.enableRouting)) {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = this.nodes[parseInt(i.toString(), 10)];\n if ((node.ports && node.ports.length > 0)) {\n var ports = [];\n for (var j = node.ports.length - 1; j >= 0; j--) {\n if (node.ports[parseInt(j.toString(), 10)].id.split('_')[1] === 'LineDistribution') {\n ports.push(node.ports[parseInt(j.toString(), 10)]);\n }\n }\n this.removePorts(node, ports);\n }\n }\n for (var j = 0; j < this.connectors.length; j++) {\n var connector = this.connectors[parseInt(j.toString(), 10)];\n var sourcePortid = connector.sourcePortID;\n var targetPortId = connector.targetPortID;\n //const oldSegment: OrthogonalSegmentModel = (connector.segments as OrthogonalSegmentModel);\n connector.sourcePortID = '';\n connector.targetPortID = '';\n connector.sourcePortWrapper = undefined;\n connector.targetPortWrapper = undefined;\n connector.segments = [];\n this.connectorPropertyChange(connector, {\n sourcePortID: sourcePortid, targetPortID: targetPortId\n }, { sourcePortID: '', targetPortID: '' });\n }\n }\n this.doLayout();\n this.renderReactTemplates();\n }\n if (isPropertyChanged && this.propertyChange) {\n var args = {\n element: cloneBlazorObject(this), cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp), newValue: cloneBlazorObject(newProp)\n };\n if (isBlazor()) {\n args.element = { diagram: cloneBlazorObject(this) };\n args.oldValue = { diagram: cloneBlazorObject(oldValue) };\n args.newValue = { diagram: cloneBlazorObject(newValue) };\n }\n this.triggerEvent(DiagramEvent.propertyChange, args);\n }\n /**Feature(EJ2-60228): Need to add Object ID in the history change event argument*/\n if (!refereshColelction && (this.canLogChange()) && (this.modelChanged(newProp, oldProp))) {\n var propertyObjects = [];\n var nodeObjects = [];\n var connObjects = [];\n if (newProp.nodes && Object.keys(newProp.nodes).length > 0) {\n for (var _k = 0, _l = Object.keys(newProp.nodes); _k < _l.length; _k++) {\n var key = _l[_k];\n var nodeIndex = parseInt(key);\n nodeObjects.push(this.nodes[parseInt(nodeIndex.toString(), 10)].id);\n }\n }\n if (newProp.connectors && Object.keys(newProp.connectors).length > 0) {\n for (var _m = 0, _o = Object.keys(newProp.connectors); _m < _o.length; _m++) {\n var key = _o[_m];\n var connIndex = parseInt(key);\n connObjects.push(this.connectors[parseInt(connIndex.toString(), 10)].id);\n }\n }\n propertyObjects = nodeObjects.concat(connObjects);\n var entry = { type: 'PropertyChanged', undoObject: oldProp, redoObject: newProp, category: 'Internal' };\n if (this.historyManager) {\n this.addHistoryEntry(entry, propertyObjects);\n }\n }\n this.resetDiagramActions();\n if (refereshColelction) {\n this.initObjects(true);\n this.refreshDiagramLayer();\n if (refreshLayout) {\n this.doLayout();\n }\n }\n var scrollAlone = ((Object.keys(newProp).length === 1) && newProp.scrollSettings !== undefined);\n if (!refereshColelction) {\n for (var _p = 0, _q = this.views; _p < _q.length; _p++) {\n var temp = _q[_p];\n var view = this.views[\"\" + temp];\n if (!(view instanceof Diagram)) {\n if (newProp.scrollSettings && newProp.scrollSettings.currentZoom !== oldProp.scrollSettings.currentZoom) {\n //view.updateHtmlLayer(view);\n }\n if (!scrollAlone) {\n this.refreshCanvasDiagramLayer(view);\n }\n }\n }\n }\n }\n };\n /* tslint:enable */\n Diagram.prototype.updateSnapSettings = function (newProp) {\n if (newProp.snapSettings.constraints !== undefined || newProp.snapSettings.horizontalGridlines ||\n newProp.snapSettings.verticalGridlines || newProp.snapSettings.gridType) {\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n }\n };\n // This private method has been specially provided to update only the node old gradient value in oldProperty.\n // This issue belong to core team but we fixed in our end.\n // https://syncfusion.atlassian.net/browse/EJ2-49232\n Diagram.prototype.updateGradient = function (newProp, oldProp, nodeObj) {\n if (nodeObj.oldGradientValue) {\n var linearNode = nodeObj;\n var radialNode = nodeObj;\n var linearProp = oldProp.style.gradient;\n var radialProp = oldProp.style.gradient;\n for (var _i = 0, _a = Object.keys(newProp.style.gradient); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'type':\n if (linearNode.type) {\n linearProp.type = linearNode.type;\n }\n break;\n case 'x1':\n if (linearNode.x1) {\n linearProp.x1 = linearNode.x1;\n }\n break;\n case 'x2':\n if (linearNode.x2) {\n linearProp.x2 = linearNode.x2;\n }\n break;\n case 'y1':\n if (linearNode.y1) {\n linearProp.y1 = linearNode.y1;\n }\n break;\n case 'y2':\n if (linearNode.y2) {\n linearProp.y2 = linearNode.y2;\n }\n break;\n case 'cx':\n if (radialNode.cx) {\n radialProp.cx = radialNode.cx;\n }\n break;\n case 'cy':\n if (radialNode.cy) {\n radialProp.cy = radialNode.cy;\n }\n break;\n case 'fx':\n if (radialNode.fx) {\n radialProp.fx = radialNode.fx;\n }\n break;\n case 'fy':\n if (radialNode.fy) {\n radialProp.fy = radialNode.fy;\n }\n break;\n case 'r':\n if (radialNode.r) {\n radialProp.r = radialNode.r;\n }\n break;\n case 'stops':\n if (nodeObj.oldGradientValue.stops) {\n var stops = (Object.values(cloneObject(nodeObj.oldGradientValue.stops)));\n stops.pop();\n oldProp.style.gradient.stops = stops;\n }\n break;\n }\n }\n }\n };\n Diagram.prototype.updateRulerSettings = function (newProp) {\n if (newProp.rulerSettings.dynamicGrid !== undefined) {\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n }\n if (newProp.rulerSettings.showRulers !== undefined) {\n this.intOffPageBackground();\n this.scroller.setSize();\n this.renderRulers();\n }\n else if (newProp.rulerSettings.horizontalRuler !== undefined ||\n newProp.rulerSettings.verticalRuler !== undefined) {\n if (newProp.rulerSettings.horizontalRuler.thickness !== undefined ||\n newProp.rulerSettings.verticalRuler.thickness !== undefined) {\n removeRulerElements(this);\n this.intOffPageBackground();\n this.scroller.setSize();\n this.renderRulers();\n }\n else {\n updateRuler(this);\n }\n }\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string}\n */\n Diagram.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Initialize nodes, connectors and renderer\n */\n Diagram.prototype.preRender = function () {\n this.initializePrivateVariables();\n this.isProtectedOnChange = true;\n this.serviceLocator = new ServiceLocator;\n this.initializeServices();\n this.setCulture();\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement] = null;\n }\n this.initDiagram();\n this.initViews();\n this.unWireEvents();\n this.wireEvents();\n this.element.classList.add('e-diagram');\n };\n Diagram.prototype.initializePrivateVariables = function () {\n if (this.element.id === '') {\n var collection = document.getElementsByClassName('e-diagram').length;\n this.element.id = 'diagram_' + this.diagramid + '_' + collection;\n }\n this.defaultLocale = {\n Copy: 'Copy',\n Cut: 'Cut',\n Paste: 'Paste',\n Undo: 'Undo',\n Redo: 'Redo',\n SelectAll: 'Select All',\n Grouping: 'Grouping',\n Group: 'Group',\n UnGroup: 'Un Group',\n Order: 'Order',\n BringToFront: 'Bring To Front',\n MoveForward: 'Move Forward',\n SendToBack: 'Send To Back',\n SendBackward: 'Send Backward'\n };\n this.layerZIndex = -1;\n this.layerZIndexTable = {};\n this.nameTable = {};\n this.pathTable = {};\n this.groupTable = {};\n this.commands = {};\n if (!this.isLoading) {\n this.views = [];\n }\n this.commandHandler = new CommandHandler(this);\n this.eventHandler = new DiagramEventHandler(this, this.commandHandler);\n this.spatialSearch = new SpatialSearch(this.nameTable);\n this.scroller = new DiagramScroller(this);\n this.modelProperties = new EJ1SerializationModule(this);\n };\n Diagram.prototype.initializeServices = function () {\n this.serviceLocator.register('localization', this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale));\n };\n /**\n * Method to set culture for chart\n */\n Diagram.prototype.setCulture = function () {\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\n };\n /* tslint:disable */\n /**\n * Renders the diagram control with nodes and connectors\n */\n Diagram.prototype.render = function () {\n if (this.refreshing && this.dataSourceSettings.dataSource && !this.isLoading) {\n this.nodes = [];\n this.connectors = [];\n }\n //830544-Support to add load event to notify before rendering of diagram \n if (!this.refreshing) {\n var loadEventData = {\n diagram: this, name: 'load',\n };\n this.trigger('load', loadEventData);\n }\n // Bug 832897: Need to improve performance while rendering layout with large number of nodes.\n this.isRefreshed = false;\n this.ignoreCollectionWatch = true;\n var domTable = 'domTable';\n window[\"\" + domTable] = {};\n var collapsedNode = [];\n if (isBlazor()) {\n var changedNodes = [];\n var changedConnectors = [];\n for (var i = 0; i < this.changedNodesCollection.length; i++) {\n changedNodes.push(this.commandHandler.deepDiffer.removeEmptyValues(this.changedNodesCollection[parseInt(i.toString(), 10)]));\n }\n for (var i = 0; i < this.changedConnectorCollection.length; i++) {\n changedConnectors.push(this.commandHandler.deepDiffer.removeEmptyValues(this.changedConnectorCollection[parseInt(i.toString(), 10)]));\n }\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n var diagramObject = { nodes: changedNodes, connectors: changedConnectors };\n if (window && window[\"\" + blazor] && !this.dataSourceSettings.dataSource\n && (changedNodes.length > 0 || changedConnectors.length > 0)) {\n var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramObject };\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this);\n }\n }\n if (this.dataSourceSettings.crudAction.read) {\n this.renderInitialCrud();\n }\n this.initHistory();\n this.diagramRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), this.mode === 'SVG');\n this.initLayers();\n this.initializeDiagramLayers();\n this.diagramRenderer.setLayers();\n this.initObjects(true);\n var isLayout = false;\n if (isBlazor() && !this.dataSourceSettings.dataSource && this.layout.type !== 'None') {\n for (var _i = 0, _a = this.nodes; _i < _a.length; _i++) {\n var obj = _a[_i];\n this.insertValue(cloneObject(obj), true);\n }\n for (var _b = 0, _c = this.connectors; _b < _c.length; _b++) {\n var obj = _c[_b];\n this.insertValue(cloneObject(obj), false);\n }\n isLayout = true;\n }\n var nodes = this.nodes;\n for (var i = 0; i < nodes.length; i++) {\n if (!nodes[parseInt(i.toString(), 10)].isExpanded) {\n collapsedNode.push(nodes[parseInt(i.toString(), 10)]);\n }\n }\n if (collapsedNode.length) {\n for (var i = collapsedNode.length - 1; i >= 0; i--) {\n if (i === 0) {\n this.commandHandler.expandNode(collapsedNode[parseInt(i.toString(), 10)], this, false);\n }\n else {\n this.commandHandler.expandNode(collapsedNode[parseInt(i.toString(), 10)], this, true);\n }\n }\n }\n if (this.canLayout) {\n this.doLayout();\n }\n if (isLayout) {\n this.commandHandler.getBlazorOldValues();\n }\n if (this.lineRoutingModule) {\n var previousConnectorObject = [];\n var updateConnectorObject = [];\n var changeConnectors = [];\n if (isBlazor()) {\n for (var _d = 0, _e = this.connectors; _d < _e.length; _d++) {\n var obj = _e[_d];\n previousConnectorObject.push(cloneObject(obj, undefined, undefined, true));\n }\n }\n // EJ2-65876 - Exception occurs on line routing injection module\n if (this.connectors.sourceID !== this.connectors.targetID) {\n this.lineRoutingModule.lineRouting(this);\n }\n if (isBlazor()) {\n for (var _f = 0, _g = this.connectors; _f < _g.length; _f++) {\n var obj = _g[_f];\n updateConnectorObject.push(cloneObject(obj, undefined, undefined, true));\n }\n this.commandHandler.getObjectChanges(previousConnectorObject, updateConnectorObject, changeConnectors);\n if (!(this.blazorActions & BlazorAction.ClearObject)) {\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n var diagramObject = { nodes: [], connectors: changeConnectors };\n if (window && window[\"\" + blazor]) {\n var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramObject };\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this);\n }\n }\n }\n }\n this.validatePageSize();\n this.renderPageBreaks();\n this.diagramRenderer.renderSvgGridlines(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n this.commandHandler.initSelectorWrapper();\n /**\n * Used to render context menu\n */\n this.notify('initial-load', {});\n /**\n * Used to load context menu\n */\n this.trigger('load');\n this.scroller.setSize();\n this.scroller.updateScrollOffsets();\n // Bug 832897: Need to improve performance while rendering layout with large number of nodes.\n // If diagram not refreshed, then we will refresh the diagram.\n if (!this.isRefreshed) {\n this.refreshDiagramLayer();\n }\n if (this.scrollSettings.verticalOffset > 0 || this.scrollSettings.horizontalOffset > 0) {\n this.updateScrollOffset();\n }\n /**\n * Used to end the context menu rendering\n */\n if (Browser.isDevice) {\n this.tool = DiagramTools.ZoomPan | DiagramTools.SingleSelect;\n }\n this.notify('initial-end', {});\n this.isProtectedOnChange = false;\n this.tooltipObject = initTooltip(this);\n this.diagramActions = DiagramAction.Render;\n this.initCommands();\n var hiddenUserHandleTemplate = document.getElementsByClassName(this.element.id + '_hiddenUserHandleTemplate');\n createUserHandleTemplates(this.userHandleTemplate, hiddenUserHandleTemplate, this.selectedItems, this.element.id);\n if (isBlazor() && this.layout && this.layout.type === 'None') {\n this.updateTemplate();\n }\n this.isLoading = false;\n this.renderComplete();\n this.updateFitToPage();\n if (this.refreshing) {\n this.renderReactTemplates();\n }\n };\n /* tslint:enable */\n Diagram.prototype.updateFitToPage = function () {\n if (this.pageSettings && this.pageSettings.fitOptions && this.pageSettings.fitOptions.canFit) {\n this.fitToPage(this.pageSettings.fitOptions);\n }\n };\n Diagram.prototype.updateTemplate = function () {\n var node;\n var annotation;\n var pathAnnotation;\n for (var i = 0; i < this.nodes.length; i++) {\n node = this.nodes[parseInt(i.toString(), 10)];\n if (node.shape.type === 'HTML' || node.shape.type === 'Native') {\n // CR-F170298 Template is not updated properly while render multiple diagram in same page\n updateBlazorTemplate('diagramsf_node_template', 'NodeTemplate', this, true);\n break;\n }\n }\n for (var i = 0; i < this.nodes.length; i++) {\n node = this.nodes[parseInt(i.toString(), 10)];\n annotation = node.annotations[0];\n if (annotation && annotation.annotationType === 'Template') {\n // CR-F170298 Template is not updated properly while render multiple diagram in same page\n updateBlazorTemplate('diagramsf_annotation_template', 'AnnotationTemplate', this, false);\n break;\n }\n }\n for (var i = 0; i < this.connectors.length; i++) {\n pathAnnotation = this.connectors[parseInt(i.toString(), 10)].annotations[0];\n if (pathAnnotation && pathAnnotation.annotationType === 'Template') {\n // CR-F170298 Template is not updated properly while render multiple diagram in same page\n updateBlazorTemplate('diagramsf_annotation_template', 'AnnotationTemplate', this, false);\n break;\n }\n }\n for (var i = 0; i < this.selectedItems.userHandles.length; i++) {\n if (this.selectedItems.userHandles[parseInt(i.toString(), 10)].template) {\n // CR-F170298 Template is not updated properly while render multiple diagram in same page\n updateBlazorTemplate('diagramsf_userHandle_template', 'UserHandleTemplate', this, false);\n break;\n }\n }\n };\n Diagram.prototype.resetTemplate = function () {\n var htmlNode;\n var templateAnnotation;\n var path;\n for (var i = 0; i < this.nodes.length; i++) {\n htmlNode = this.nodes[parseInt(i.toString(), 10)];\n if (htmlNode.shape.type === 'HTML' && htmlNode.shape.content === '') {\n resetBlazorTemplate('diagramsf_node_template', 'NodeTemplate');\n break;\n }\n }\n for (var i = 0; i < this.nodes.length; i++) {\n htmlNode = this.nodes[parseInt(i.toString(), 10)];\n templateAnnotation = htmlNode.annotations[0];\n if (templateAnnotation && templateAnnotation.annotationType === 'Template'\n && templateAnnotation.content instanceof HTMLElement) {\n resetBlazorTemplate('diagramsf_annotation_template', 'AnnotationTemplate');\n break;\n }\n }\n for (var i = 0; i < this.connectors.length; i++) {\n path = this.connectors[parseInt(i.toString(), 10)].annotations[0];\n if (path && path.annotationType === 'Template' && path.content instanceof HTMLElement) {\n resetBlazorTemplate('diagramsf_annotation_template', 'AnnotationTemplate');\n break;\n }\n }\n for (var i = 0; i < this.selectedItems.userHandles.length; i++) {\n if (this.selectedItems.userHandles[parseInt(i.toString(), 10)].template) {\n updateBlazorTemplate('diagramsf_userHandle_template', 'UserHandleTemplate', this, false);\n break;\n }\n }\n };\n //Call back function to the node template\n // private measureNode(node: NodeModel): void {\n // if (node.shape.type === 'Native' && isBlazor()) {\n // node.wrapper.measure(new Size(node.width, node.height));\n // node.wrapper.arrange(node.wrapper.desiredSize);\n // }\n // }\n Diagram.prototype.renderInitialCrud = function () {\n /* eslint-disable */\n var tempObj = this;\n /* eslint-enable */\n if (tempObj.dataSourceSettings.crudAction.read) {\n var callback = new Fetch(tempObj.dataSourceSettings.crudAction.read, 'GET');\n callback.onSuccess = function (data) {\n if (tempObj.dataSourceSettings.dataManager) {\n tempObj.dataSourceSettings.dataManager = JSON.parse(data);\n }\n else {\n tempObj.dataSourceSettings.dataSource = JSON.parse(data);\n }\n tempObj.dataBind();\n };\n callback.send().then();\n }\n if (tempObj.dataSourceSettings.connectionDataSource.crudAction.read) {\n var callback = new Fetch(tempObj.dataSourceSettings.connectionDataSource.crudAction.read, 'GET');\n callback.onSuccess = function (data) {\n tempObj.dataSourceSettings.connectionDataSource.dataManager = JSON.parse(data);\n tempObj.dataBind();\n };\n callback.send().then();\n }\n };\n /**\n * Returns the module name of the diagram\n *\n * @returns {string} Returns the module name of the diagram\n */\n Diagram.prototype.getModuleName = function () {\n return 'diagram';\n };\n /**\n *\n * Returns the name of class Diagram\n * @returns {string} Returns the module name of the diagram\n * @private\n */\n Diagram.prototype.getClassName = function () {\n return 'Diagram';\n };\n /* tslint:disable */\n /**\n * To provide the array of modules needed for control rendering\n *\n * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering .\\\n * @private\n */\n Diagram.prototype.requiredModules = function () {\n var modules = [];\n modules.push({\n member: 'Bpmn',\n args: []\n });\n modules.push({\n member: 'Bridging',\n args: []\n });\n modules.push({\n member: 'ConnectorEditingTool',\n args: []\n });\n if (isBlazor()) {\n modules.push({\n member: 'BlazorTooltip',\n args: []\n });\n }\n if (this.constraints & DiagramConstraints.UndoRedo) {\n modules.push({\n member: 'UndoRedo',\n args: []\n });\n }\n if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree' ||\n this.layout.enableAnimation) {\n modules.push({\n member: 'LayoutAnimate',\n args: []\n });\n }\n if (this.snapSettings.constraints) {\n modules.push({\n member: 'Snapping',\n args: [this]\n });\n }\n modules.push({\n member: 'EJ1SerializationModule',\n args: [this]\n });\n modules.push({\n member: 'PrintandExport',\n args: [this]\n });\n if (this.contextMenuSettings.show) {\n modules.push({\n member: 'contextMenu',\n args: [this, this.serviceLocator]\n });\n }\n if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree') {\n modules.push({\n member: 'OrganizationalChart',\n args: [this]\n });\n }\n if (this.layout.type === 'ComplexHierarchicalTree') {\n modules.push({\n member: 'ComplexHierarchicalTree',\n args: []\n });\n }\n if (this.layout.type === 'MindMap') {\n modules.push({\n member: 'MindMapChart',\n args: []\n });\n }\n if (this.layout.type === 'RadialTree') {\n modules.push({\n member: 'RadialTree',\n args: []\n });\n }\n if (this.layout.type === 'SymmetricalLayout') {\n modules.push({\n member: 'SymmetricalLayout',\n args: []\n });\n }\n if (this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource ||\n this.dataSourceSettings.crudAction.read || this.dataSourceSettings.connectionDataSource.crudAction.read) {\n modules.push({\n member: 'DataBinding',\n args: []\n });\n }\n if (this.constraints & DiagramConstraints.LineRouting) {\n modules.push({\n member: 'LineRouting',\n args: []\n });\n }\n if ((this.layout && this.layout.connectionPointOrigin === 'DifferentPoint') || (this.layout.arrangement === 'Linear' || (this.layout.enableRouting))) {\n modules.push({\n member: 'LineDistribution',\n args: []\n });\n }\n return modules;\n };\n /* tslint:enable */\n Diagram.prototype.removeUserHandlesTemplate = function () {\n if (this.selectedItems.userHandles.length) {\n for (var i = 0; i < this.selectedItems.userHandles.length; i++) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(this.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_template_hiddenUserHandle', elementId);\n }\n }\n }\n };\n /**\n *To destroy the diagram\n *\n * @returns {void} To destroy the diagram\n */\n Diagram.prototype.destroy = function () {\n clearInterval(this.renderTimer);\n this.renderTimer = null;\n if (this.hRuler && this.vRuler) {\n this.hRuler.destroy();\n this.vRuler.destroy();\n }\n this.tooltipObject.destroy();\n this.droppable.destroy();\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n this.removeUserHandlesTemplate();\n this.clearTemplate();\n if (document.getElementById(this.element.id)) {\n this.element.classList.remove('e-diagram');\n var tooltipelement = document.getElementsByClassName('e-diagram-tooltip');\n while (tooltipelement.length > 0) {\n tooltipelement[0].parentNode.removeChild(tooltipelement[0]);\n }\n var content = document.getElementById(this.element.id + 'content');\n if (content) {\n this.element.removeChild(content);\n }\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement].usageCount -= 1;\n var measureElementCount = 'measureElementCount';\n window[\"\" + measureElementCount]--;\n if (window[\"\" + measureElementCount] === 0) {\n window[\"\" + measureWindowElement].parentNode.removeChild(window[\"\" + measureWindowElement]);\n window[\"\" + measureWindowElement] = null;\n }\n }\n }\n var domTable = 'domTable';\n window[\"\" + domTable] = {};\n for (var i = 0; i < this.layers.length; i++) {\n var currentLayer = this.layers[parseInt(i.toString(), 10)];\n currentLayer.zIndexTable = {};\n }\n this.diagramActions = undefined;\n };\n //Wires the mouse events with diagram control\n Diagram.prototype.wireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var stopEvent = Browser.touchEndEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n var isIE11Pointer = Browser.isPointer;\n var wheelEvent = Browser.info.name === 'mozilla' ?\n (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n EventHandler.add(this.diagramCanvas, startEvent, this.eventHandler.mouseDown, this.eventHandler);\n EventHandler.add(this.diagramCanvas, moveEvent, this.eventHandler.mouseMove, this.eventHandler);\n EventHandler.add(this.diagramCanvas, stopEvent, this.eventHandler.mouseUp, this.eventHandler);\n EventHandler.add(this.diagramCanvas, cancelEvent, this.eventHandler.mouseLeave, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'keydown', this.eventHandler.keyDown, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'keyup', this.eventHandler.keyUp, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'dblclick', this.eventHandler.doubleClick, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'scroll', this.eventHandler.scrolled, this.eventHandler);\n EventHandler.add(this.diagramCanvas, wheelEvent, this.eventHandler.mouseWheel, this.eventHandler);\n EventHandler.add(window, 'resize', this.eventHandler.windowResize, this.eventHandler);\n this.initDroppables();\n };\n //Unwires the mouse events from diagram control\n Diagram.prototype.unWireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n var isIE11Pointer = Browser.isPointer;\n var wheelEvent = Browser.info.name === 'mozilla' ?\n (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n var stopEvent = Browser.touchEndEvent;\n EventHandler.remove(this.diagramCanvas, startEvent, this.eventHandler.mouseDown);\n EventHandler.remove(this.diagramCanvas, moveEvent, this.eventHandler.mouseMove);\n EventHandler.remove(this.diagramCanvas, stopEvent, this.eventHandler.mouseUp);\n EventHandler.remove(this.diagramCanvas, cancelEvent, this.eventHandler.mouseLeave);\n EventHandler.remove(this.diagramCanvas, 'keydown', this.eventHandler.keyDown);\n EventHandler.remove(this.diagramCanvas, 'keyup', this.eventHandler.keyUp);\n EventHandler.remove(this.diagramCanvas, 'dblclick', this.eventHandler.doubleClick);\n EventHandler.remove(this.diagramCanvas, 'scroll', this.eventHandler.scrolled);\n EventHandler.remove(this.diagramCanvas, wheelEvent, this.eventHandler.mouseWheel);\n EventHandler.remove(window, 'resize', this.eventHandler.windowResize);\n };\n //public methods - start region\n /**\n * Selects the given collection of objects \\\n *\n * @returns { void } Selects the given collection of objects .\\\n * @param {NodeModel | ConnectorModel} objects - Defines the collection of nodes and connectors to be selected\n * @param {boolean} multipleSelection -Defines whether the existing selection has to be cleared or not\n * @param {NodeModel | ConnectorModel} oldValue - Defines the old value\n *\n */\n Diagram.prototype.select = function (objects, multipleSelection, oldValue) {\n if (isBlazor()) {\n for (var i = 0; i < objects.length; i++) {\n objects[parseInt(i.toString(), 10)] = this.nameTable[objects[parseInt(i.toString(), 10)].id];\n }\n objects = this.nameTable[objects.id] || objects;\n }\n if (objects != null) {\n this.commandHandler.selectObjects(objects, multipleSelection, oldValue);\n }\n };\n /**\n * this method returns diagramAction as a string\n * @returns { string }\n */\n //Feature (EJ2-18451) : For all client side events, cause argument data type should be string instead of flag enum and value should be easier to understand.\n Diagram.prototype.getDiagramAction = function (diagramAction) {\n var action;\n if (diagramAction === 2 && DiagramAction.Render) {\n action = 'Render';\n }\n else if (diagramAction & DiagramAction.UndoRedo) {\n action = 'UndoRedo';\n }\n else if (diagramAction & DiagramAction.PublicMethod) {\n action = 'PublicMethod';\n }\n else if (diagramAction & DiagramAction.ToolAction) {\n action = 'ToolAction';\n }\n else if (diagramAction & DiagramAction.TextEdit) {\n action = 'TextEdit';\n }\n else if (diagramAction & DiagramAction.Group) {\n action = 'Group';\n }\n else if (diagramAction & DiagramAction.Interactions) {\n action = 'Interactions';\n }\n else if (diagramAction & DiagramAction.PreventHistory) {\n action = 'PreventHistory';\n }\n else if (diagramAction & DiagramAction.DecoratorPropertyChange) {\n action = 'DecoratorPropertyChange';\n }\n else if (diagramAction & DiagramAction.PreventZIndexOnDragging) {\n action = 'PreventZIndexOnDragging';\n }\n else if (diagramAction & DiagramAction.isGroupDragging) {\n action = 'isGroupDragging';\n }\n else if (diagramAction & DiagramAction.DragUsingMouse) {\n action = 'DragUsingMouse';\n }\n return action;\n };\n /**\n * Selects the all the objects. \\\n *\n * @returns { void } Selects the all the objects. .\\\n *\n */\n Diagram.prototype.selectAll = function () {\n var selectedItems = [];\n selectedItems = this.getObjectsOfLayer(this.activeLayer.objects);\n this.select(selectedItems);\n };\n /**\n * Removes the given object from selection list \\\n *\n * @returns { void } Selects the given collection of objects .\\\n * @param {NodeModel | ConnectorModel} obj - Removes the given object from selection list\n *\n */\n Diagram.prototype.unSelect = function (obj) {\n if (isBlazor()) {\n this.commandHandler.oldSelectedObjects = cloneObject(this.selectedItems);\n obj = this.nameTable[obj.id] || obj;\n }\n if (obj && isSelected(this, obj)) {\n this.commandHandler.unSelect(obj);\n this.commandHandler.updateBlazorSelector();\n }\n };\n /**\n * Removes all elements from the selection list\\\n *\n * @returns { void } Removes all elements from the selection list .\\\n *\n */\n Diagram.prototype.clearSelection = function () {\n this.commandHandler.clearSelection(true);\n };\n /**\n * Update the diagram clipboard dimension \\\n *\n * @returns { void } Update the diagram clipboard dimension .\\\n *\n */\n Diagram.prototype.updateViewPort = function () {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.eventHandler.updateViewPortSize(this.element);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n Diagram.prototype.cutCommand = function () {\n this.cut();\n };\n /**\n * Removes the selected nodes and connectors from diagram and moves them to diagram clipboard \\\n *\n * @returns { void } Removes the selected nodes and connectors from diagram and moves them to diagram clipboard .\\\n *\n */\n Diagram.prototype.cut = function () {\n this.commandHandler.cut();\n };\n /**\n * Add a process into the sub-process \\\n *\n * @returns { void } Add a process into the sub-process.\\\n * @param {NodeModel | ConnectorModel} process - provide the process value.\n * @param {boolean} parentId - provide the parentId value.\n *\n */\n Diagram.prototype.addProcess = function (process, parentId) {\n if (this.bpmnModule) {\n this.bpmnModule.addProcess(process, parentId, this);\n }\n };\n /**\n * Remove a process from the sub-processs \\\n *\n * @returns { void } Remove a process from the sub-process.\\\n * @param {string} id - provide the id value.\n *\n */\n Diagram.prototype.removeProcess = function (id) {\n if (this.bpmnModule) {\n this.bpmnModule.removeProcess(id, this);\n }\n };\n Diagram.prototype.pasteCommand = function () {\n this.paste();\n };\n /**\n * Adds the given objects/ the objects in the diagram clipboard to diagram control \\\n *\n * @returns { void } Remove a process from the sub-process.\\\n * @param {NodeModel[] | ConnectorModel[]} obj - Defines the objects to be added to diagram\n\n *\n */\n Diagram.prototype.paste = function (obj) {\n this.commandHandler.paste(obj);\n };\n /**\n * fit the diagram to the page with respect to mode and region \\\n *\n * @returns { void } fit the diagram to the page with respect to mode and region.\\\n * @param {IFitOptions} options - provide the options value.\n *\n */\n Diagram.prototype.fitToPage = function (options) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.fitToPage(options);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * bring the specified bounds into the viewport \\\n *\n * @returns { void } bring the specified bounds into the viewport.\\\n * @param {Rect} bound - provide the bound value.\n *\n */\n Diagram.prototype.bringIntoView = function (bound) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n // EJ2-69238 - add true as an extra parameter to calcuate the horizontal and vertical offset\n this.scroller.bringIntoView(bound, true);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * bring the specified bounds to the center of the viewport \\\n *\n * @returns { void } bring the specified bounds to the center of the viewport.\\\n * @param {Rect} bound - provide the bound value.\n *\n */\n Diagram.prototype.bringToCenter = function (bound) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.bringToCenter(bound);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n Diagram.prototype.copyCommand = function () {\n this.copy();\n };\n /**\n * Copies the selected nodes and connectors to diagram clipboard \\\n *\n * @returns { Object } Copies the selected nodes and connectors to diagram clipboard.\\\n *\n */\n Diagram.prototype.copy = function () {\n var obj = this.commandHandler.copy();\n return obj;\n };\n /**\n * Group the selected nodes and connectors in diagram \\\n *\n * @returns { void } Group the selected nodes and connectors in diagram.\\\n *\n */\n Diagram.prototype.group = function () {\n var selectedItems = [];\n selectedItems = this.selectedItems.nodes;\n selectedItems = selectedItems.concat(this.selectedItems.connectors);\n if (selectedItems.length > 1) {\n this.callBlazorModel = false;\n this.insertBlazorDiagramObjects(this.selectedItems);\n this.commandHandler.group();\n this.callBlazorModel = true;\n this.commandHandler.getBlazorOldValues();\n }\n };\n /**\n * UnGroup the selected nodes and connectors in diagram \\\n *\n * @returns { void } UnGroup the selected nodes and connectors in diagram.\\\n *\n */\n Diagram.prototype.unGroup = function () {\n this.callBlazorModel = false;\n this.insertBlazorDiagramObjects(this.selectedItems);\n this.commandHandler.unGroup();\n this.callBlazorModel = true;\n this.commandHandler.getBlazorOldValues();\n };\n /**\n * send the selected nodes or connectors back \\\n *\n * @returns { void } send the selected nodes or connectors back.\\\n *\n */\n Diagram.prototype.sendToBack = function () {\n this.commandHandler.sendToBack();\n };\n /**\n * set the active layer\\\n *\n * @returns { void } set the active layer.\\\n * @param {string} layerName - defines the name of the layer which is to be active layer.\n *\n */\n Diagram.prototype.setActiveLayer = function (layerName) {\n var layer = this.commandHandler.getLayer(layerName);\n this.activeLayer = layer;\n };\n /**\n * add the layer into diagram\\\n *\n * @returns { void } add the layer into diagram.\\\n * @param {LayerModel} layer - defines the layer model which is to be added\n * @param {Object[]} layerObject - defines the object of the layer\n * @blazorArgsType layer|DiagramLayer\n\n *\n */\n Diagram.prototype.addLayer = function (layer, layerObject) {\n this.commandHandler.addLayer(layer, layerObject);\n };\n /* eslint-disable */\n /**\n * @private\n */\n Diagram.prototype.addDiagramLayer = function (layer, layerObject) {\n this.commandHandler.addLayer(layer, layerObject, false);\n };\n /**\n * remove the layer from diagram \\\n *\n * @returns { void } remove the layer from diagram.\\\n * @param {string} layerId - provide the bound value.\n\n *\n */\n Diagram.prototype.removeLayer = function (layerId) {\n this.commandHandler.removeLayer(layerId, isBlazor());\n };\n /**\n * @private\n */\n Diagram.prototype.removeDiagramLayer = function (layerId) {\n this.commandHandler.removeLayer(layerId, false);\n };\n /* eslint-enable */\n /**\n * move objects from the layer to another layer from diagram\\\n *\n * @returns { void } move objects from the layer to another layer from diagram.\\\n * @param {string[]} objects - define the objects id of string array\n * @param {string} targetLayer - define the objects id of string array\n *\n */\n Diagram.prototype.moveObjects = function (objects, targetLayer) {\n var oldValues = cloneObject(this.layers);\n this.enableServerDataBinding(false);\n this.commandHandler.moveObjects(objects, targetLayer);\n var result = this.commandHandler.deepDiffer.map(oldValues, cloneObject(this.layers));\n var diffValue = this.commandHandler.deepDiffer.frameObject({}, result);\n this.oldDiagramObject = { layers: diffValue };\n this.commandHandler.updateBlazorProperties();\n };\n /* tslint:disable */\n Diagram.prototype.layerObjectUpdate = function () {\n if (isBlazor()) {\n this.enableServerDataBinding(false);\n this.oldDiagramObject['layers'] = [];\n for (var i = 0; i < this.layers.length; i++) {\n // tslint:disable-next-line:no-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var leyerObject = cloneObject(this.layers[parseInt(i.toString(), 10)]);\n leyerObject.sfIndex = this.layers[parseInt(i.toString(), 10)].zIndex;\n this.oldDiagramObject['layers'].push(leyerObject);\n }\n }\n };\n /* tslint:enable */\n /**\n * move the layer backward \\\n *\n * @returns { void } move the layer backward .\\\n * @param {string} layerName - define the name of the layer\n * @param {string} targetLayer - define the objects id of string array\n *\n */\n Diagram.prototype.sendLayerBackward = function (layerName) {\n this.layerObjectUpdate();\n this.commandHandler.sendLayerBackward(layerName);\n this.commandHandler.updateLayerObject(this.oldDiagramObject, true);\n };\n /**\n * move the layer forward \\\n *\n * @returns { void } move the layer forward.\\\n * @param {string} layerName - define the name of the layer\n *\n */\n Diagram.prototype.bringLayerForward = function (layerName) {\n this.layerObjectUpdate();\n this.commandHandler.bringLayerForward(layerName);\n this.commandHandler.updateLayerObject(this.oldDiagramObject);\n };\n /**\n *clone a layer with its object \\\n *\n * @returns { void } move the layer forward.\\\n * @param {string} layerName - define the name of the layer\n *\n */\n Diagram.prototype.cloneLayer = function (layerName) {\n this.commandHandler.cloneLayer(layerName);\n };\n /**\n *bring the selected nodes or connectors to front \\\n *\n * @returns { void } move the layer forward.\\\n *\n */\n Diagram.prototype.bringToFront = function () {\n this.commandHandler.bringToFront();\n };\n /**\n *send the selected nodes or connectors forward \\\n *\n * @returns { void } send the selected nodes or connectors forward.\\\n *\n */\n Diagram.prototype.moveForward = function () {\n this.commandHandler.sendForward();\n };\n /**\n *send the selected nodes or connectors back\\\n *\n * @returns { void } send the selected nodes or connectors back.\\\n *\n */\n Diagram.prototype.sendBackward = function () {\n this.commandHandler.sendBackward();\n };\n /**\n *gets the node or connector having the given name \\\n *\n * @returns { void } gets the node or connector having the given name.\\\n * @param {string} name - define the name of the layer\n *\n */\n Diagram.prototype.getObject = function (name) {\n return this.nameTable[\"\" + name];\n };\n /**\n * gets the node object for the given node ID \\\n *\n * @returns { void } gets the node object for the given node ID.\\\n * @param {string} id - define the name of the layer\n *\n */\n Diagram.prototype.getNodeObject = function (id) {\n return cloneObject(this.nameTable[\"\" + id]);\n };\n /**\n *gets the connector object for the given node ID \\\n *\n * @returns { void } gets the connector object for the given node ID.\\\n * @param {string} id - define the name of the layer\n *\n */\n Diagram.prototype.getConnectorObject = function (id) {\n return cloneObject(this.nameTable[\"\" + id]);\n };\n /**\n * gets the active layer back \\\n *\n * @returns { void } gets the active layer back.\\\n *\n */\n Diagram.prototype.getActiveLayer = function () {\n return this.activeLayer;\n };\n Diagram.prototype.nudgeCommand = function (direction, x, y) {\n if (typeof direction !== 'object' && (this.selectedItems.nodes.length || this.selectedItems.connectors.length) > 0) {\n var type = void 0;\n if (x.type && x.type === 'KEYDOWN') {\n type = x.type;\n }\n this.nudge(direction, undefined, undefined, type);\n }\n };\n /**\n * Moves the selected objects towards the given direction\n *\n * @returns { void } Moves the selected objects towards the given direction .\\\n * @param {NudgeDirection} direction - Defines the direction by which the objects have to be moved\n * @param {number} x - Defines the distance by which the selected objects have to be horizontally moved\n * @param {number} y - Defines the distance by which the selected objects have to be vertically moved\n */\n Diagram.prototype.nudge = function (direction, x, y, type) {\n var tx = 0;\n var ty = 0;\n var negativeDirection;\n if (direction === 'Left' || direction === 'Right') {\n negativeDirection = (direction === 'Left');\n tx = (negativeDirection ? -1 : 1) * (x ? x : 1);\n }\n else {\n negativeDirection = (direction === 'Up');\n ty = (negativeDirection ? -1 : 1) * (y ? y : 1);\n }\n if (type === 'KEYDOWN') {\n tx *= 5;\n ty *= 5;\n }\n var obj = this.selectedItems;\n var annotation = this.selectedItems.wrapper.children[0];\n if (annotation instanceof TextElement) {\n this.commandHandler.labelDrag(obj.nodes[0], annotation, tx, ty);\n }\n else {\n var undoObject = cloneObject(this.selectedItems);\n this.protectPropertyChange(true);\n this.drag(obj, tx, ty);\n this.protectPropertyChange(false);\n var entry = {\n type: 'PositionChanged',\n redoObject: cloneObject(this.selectedItems), undoObject: undoObject, category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n this.refreshCanvasLayers();\n };\n Diagram.prototype.insertBlazorDiagramObjects = function (actualObject) {\n if (isBlazor() && !(this.blazorActions & BlazorAction.interaction)) {\n this.enableServerDataBinding(false);\n if (actualObject instanceof Selector) {\n for (var i = 0; i < actualObject.nodes.length; i++) {\n this.insertBlazorDiagramObjects(actualObject.nodes[parseInt(i.toString(), 10)]);\n }\n for (var i = 0; i < actualObject.connectors.length; i++) {\n this.insertBlazorDiagramObjects(actualObject.connectors[parseInt(i.toString(), 10)]);\n }\n }\n if (!(actualObject instanceof Selector)) {\n //let object: object;\n if (actualObject && actualObject.children && actualObject.children.length > 0) {\n for (var i = 0; i < actualObject.children.length; i++) {\n this.insertBlazorDiagramObjects(this.nameTable[actualObject.children[parseInt(i.toString(), 10)]]);\n }\n }\n var object = cloneObject(this.nameTable[actualObject.id]);\n this.insertValue(object, !(getObjectType(actualObject) === Connector));\n }\n }\n };\n /**\n * Drags the given object by the specified pixels\n *\n * @returns { void } Drags the given object by the specified pixels .\\\n * @param {NodeModel | ConnectorModel | SelectorModel} obj - Defines the nodes/connectors to be dragged\n * @param {number} tx - Defines the distance by which the given objects have to be horizontally moved\n * @param {number} ty - Defines the distance by which the given objects have to be vertically moved\n */\n Diagram.prototype.drag = function (obj, tx, ty) {\n this.insertBlazorDiagramObjects(obj);\n if (isBlazor() && obj.id) {\n obj = this.nameTable[obj.id] || obj;\n }\n if (this.bpmnModule && (obj instanceof Node)) {\n var updated = this.bpmnModule.updateAnnotationDrag(obj, this, tx, ty);\n if (updated) {\n return;\n }\n }\n if (obj instanceof Selector) {\n this.preventConnectorsUpdate = true;\n if (obj.nodes && obj.nodes.length) {\n for (var _i = 0, _a = obj.nodes; _i < _a.length; _i++) {\n var node = _a[_i];\n this.callBlazorModel = false;\n this.drag(node, tx, ty);\n if (node.parentId) {\n var parent_1 = this.nameTable[node.parentId];\n if (parent_1.isLane) {\n var swimlane = this.nameTable[parent_1.parentId];\n updateLaneBoundsAfterAddChild(parent_1, swimlane, node, this);\n }\n }\n }\n this.callBlazorModel = true;\n }\n if (obj.connectors && obj.connectors.length) {\n this.callBlazorModel = false;\n for (var _b = 0, _c = obj.connectors; _b < _c.length; _b++) {\n var conn = _c[_b];\n this.drag(conn, tx, ty);\n if (this.selectionConnectorsList.indexOf(conn) === -1) {\n this.selectionConnectorsList.push(conn);\n }\n }\n this.callBlazorModel = true;\n }\n this.updateSelector();\n if ((this.diagramActions & DiagramAction.DragUsingMouse)) {\n this.updatePage();\n }\n }\n else {\n if (obj instanceof Node) {\n if (this.bpmnModule) {\n this.bpmnModule.updateAnnotationDrag(obj, this, tx, ty);\n }\n }\n this.commandHandler.drag(obj, tx, ty);\n }\n if (obj instanceof Selector) {\n this.preventConnectorsUpdate = false;\n for (var _d = 0, _e = this.selectionConnectorsList; _d < _e.length; _d++) {\n var connectors = _e[_d];\n this.updateConnectorProperties(this.nameTable[connectors.id]);\n if (connectors.shape.type === 'Bpmn' && connectors.shape.sequence === 'Default' && connectors.shape.flow === 'Sequence') {\n this.commandHandler.updatePathElementOffset(connectors);\n }\n }\n this.selectionConnectorsList = [];\n }\n // Bug 832880: Need to improve performance while nudging multiple nodes.\n // Removed one if condition here to improve performance.\n if (this.callBlazorModel && (!(this.blazorActions & BlazorAction.interaction)) &&\n (!(this.blazorActions & BlazorAction.GroupClipboardInProcess))) {\n this.commandHandler.getBlazorOldValues();\n }\n };\n Diagram.prototype.disableStackContainerPadding = function (wrapper, disable) {\n if (wrapper instanceof StackPanel) {\n wrapper.considerPadding = disable;\n }\n if (wrapper.children) {\n for (var _i = 0, _a = wrapper.children; _i < _a.length; _i++) {\n var child = _a[_i];\n this.disableStackContainerPadding(child, false);\n }\n }\n };\n /**\n * Scales the given objects by the given ratio\n *\n * @returns { void } Scales the given objects by the given ratio .\\\n * @param {NodeModel | ConnectorModel | SelectorModel} obj - Defines the objects to be resized\n * @param {number} sx - Defines the ratio by which the objects have to be horizontally scaled\n * @param {number} sy - Defines the ratio by which the objects have to be vertically scaled\n * @param {PointModel} pivot - Defines the reference point with respect to which the objects will be resized\n */\n Diagram.prototype.scale = function (obj, sx, sy, pivot) {\n this.disableStackContainerPadding(obj.wrapper, false);\n this.insertBlazorDiagramObjects(obj);\n var checkBoundaryConstraints = true;\n if (obj.id) {\n obj = this.nameTable[obj.id] || obj;\n }\n if (obj instanceof Selector) {\n if (obj.nodes && obj.nodes.length) {\n this.callBlazorModel = false;\n for (var _i = 0, _a = obj.nodes; _i < _a.length; _i++) {\n var node = _a[_i];\n checkBoundaryConstraints = this.commandHandler.scale(node, sx, sy, pivot, obj);\n if (!this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds)) {\n this.commandHandler.scale(node, 1 / sx, 1 / sy, pivot, obj);\n }\n }\n this.callBlazorModel = true;\n }\n if (obj.connectors && obj.connectors.length) {\n this.callBlazorModel = false;\n for (var _b = 0, _c = obj.connectors; _b < _c.length; _b++) {\n var conn = _c[_b];\n this.commandHandler.scale(conn, sx, sy, pivot, obj);\n if (!this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds)) {\n this.commandHandler.scale(conn, 1 / sx, 1 / sy, pivot, obj);\n }\n }\n this.callBlazorModel = true;\n }\n var selector = this.selectedItems;\n if (!(selectionHasConnector(this, selector))) {\n this.updateSelector();\n }\n this.refreshCanvasLayers();\n }\n else {\n this.commandHandler.scale(obj, sx, sy, pivot, (obj.children ? obj : undefined));\n }\n if (this.callBlazorModel && (!(this.blazorActions & BlazorAction.interaction)) &&\n (!(this.blazorActions & BlazorAction.GroupClipboardInProcess))) {\n this.commandHandler.getBlazorOldValues();\n }\n this.disableStackContainerPadding(obj.wrapper, true);\n return checkBoundaryConstraints;\n };\n /**\n * Rotates the given nodes/connectors by the given angle\n *\n * @returns { void } Rotates the given nodes/connectors by the given angle .\\\n * @param {NodeModel | ConnectorModel | SelectorModel} obj - Defines the objects to be rotated\n * @param {number} angle - Defines the angle by which the objects have to be rotated\n * @param {PointModel} pivot - Defines the reference point with reference to which the objects have to be rotated\n */\n Diagram.prototype.rotate = function (obj, angle, pivot) {\n this.insertBlazorDiagramObjects(obj);\n var checkBoundaryConstraints;\n if (obj.id) {\n obj = this.nameTable[obj.id] || obj;\n }\n if (obj) {\n pivot = pivot || { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY };\n if (obj instanceof Selector) {\n this.callBlazorModel = false;\n obj.rotateAngle += angle;\n obj.wrapper.rotateAngle += angle;\n var bounds = getBounds(obj.wrapper);\n checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, bounds);\n if (!checkBoundaryConstraints) {\n obj.rotateAngle -= angle;\n obj.wrapper.rotateAngle -= angle;\n return checkBoundaryConstraints;\n }\n var objects = [];\n objects = objects.concat(obj.nodes);\n objects = objects.concat(obj.connectors);\n this.commandHandler.rotateObjects(obj, objects, angle, pivot);\n this.callBlazorModel = true;\n }\n else {\n this.commandHandler.rotateObjects(obj, [obj], angle, pivot);\n }\n }\n if (this.callBlazorModel && (!(this.blazorActions & BlazorAction.interaction))) {\n this.commandHandler.getBlazorOldValues();\n }\n return checkBoundaryConstraints;\n };\n /**\n * Moves the source point of the given connector\n *\n * @returns { void } Moves the source point of the given connector .\\\n * @param {ConnectorModel} obj - Defines the connector, the end points of which has to be moved\n * @param {number} tx - Defines the distance by which the end point has to be horizontally moved\n * @param {number} ty - Defines the distance by which the end point has to be vertically moved\n */\n Diagram.prototype.dragSourceEnd = function (obj, tx, ty) {\n this.insertBlazorDiagramObjects(obj);\n this.commandHandler.dragSourceEnd(obj, tx, ty);\n if (this.callBlazorModel) {\n this.commandHandler.getBlazorOldValues();\n }\n };\n /**\n * Moves the target point of the given connector\n *\n * @returns { void } Moves the target point of the given connector.\\\n * @param {ConnectorModel} obj - Defines the connector, the end points of which has to be moved\n * @param {number} tx - Defines the distance by which the end point has to be horizontally moved\n * @param {number} ty - Defines the distance by which the end point has to be vertically moved\n */\n Diagram.prototype.dragTargetEnd = function (obj, tx, ty) {\n this.insertBlazorDiagramObjects(obj);\n this.commandHandler.dragTargetEnd(obj, tx, ty);\n if (this.callBlazorModel) {\n this.commandHandler.getBlazorOldValues();\n }\n };\n /**\n * Finds all the objects that is under the given mouse position\n *\n * @returns { void } Finds all the objects that is under the given mouse position.\\\n * @param {PointModel} position - Defines the position, the objects under which has to be found\n * @param {IElement} source - Defines the object, the objects under which has to be found\n */\n Diagram.prototype.findObjectsUnderMouse = function (position, source) {\n return this.eventHandler.findObjectsUnderMouse(position, source);\n };\n /**\n * Finds the object that is under the given mouse position\n *\n * @returns { void } Finds the object that is under the given mouse position.\\\n * @param {NodeModel[] | ConnectorModel[]}objects - Defines the collection of objects, from which the object has to be found.\n * @param {Actions} action - Defines the action, using which the relevant object has to be found.\n * @param {boolean} inAction - Defines the active state of the action.\n */\n Diagram.prototype.findObjectUnderMouse = function (objects, action, inAction) {\n return this.eventHandler.findObjectUnderMouse(objects, action, inAction);\n };\n /**\n * Finds the object that is under the given active object (Source)\n *\n * @returns { void } Finds the object that is under the given active object (Source) .\\\n * @param {NodeModel[] | ConnectorModel[]} objects - Defines the collection of objects, from which the object has to be found.\n * @param {Actions} action - Defines the action, using which the relevant object has to be found.\n * @param {boolean} inAction - Defines the active state of the action.\n * @param {PointModel} position - Defines the position.\n * @param {IElement} source - Defines the source.\n */\n Diagram.prototype.findTargetObjectUnderMouse = function (objects, action, inAction, position, source) {\n return this.eventHandler.findTargetUnderMouse(objects, action, inAction, position, source);\n };\n /**\n * Finds the child element of the given object at the given position\n *\n * @returns { void } Finds the child element of the given object at the given position .\\\n * @param {IElement} obj - Defines the object, the child element of which has to be found\n * @param {PointModel} position - Defines the position, the child element under which has to be found\n * @param {number} padding - Defines the padding, the child element under which has to be found\n */\n Diagram.prototype.findElementUnderMouse = function (obj, position, padding) {\n return this.eventHandler.findElementUnderMouse(obj, position, padding);\n };\n /**\n * Defines the action to be done, when the mouse hovers the given element of the given object\n *\n * @returns { void } Defines the action to be done, when the mouse hovers the given element of the given object .\\\n * @param {NodeModel | ConnectorModel} obj - Defines the object under mouse\n * @param {DiagramElement} wrapper - Defines the target element of the object under mouse\n * @param {PointModel} position - Defines the current mouse position\n * @param { NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel} target - Defines the target\n * @private\n */\n Diagram.prototype.findActionToBeDone = function (obj, wrapper, position, target) {\n return this.eventHandler.findActionToBeDone(obj, wrapper, position, target);\n };\n /**\n * Returns the tool that handles the given action\n *\n * @returns { ToolBase } Returns the tool that handles the given action \\\n * @param {string} action - Defines the action that is going to be performed\n */\n Diagram.prototype.getTool = function (action) {\n var tool;\n var getCustomTool = getFunction(this.getCustomTool);\n if (getCustomTool) {\n tool = getCustomTool(action);\n if (tool) {\n return tool;\n }\n }\n return this.eventHandler.getTool(action);\n };\n /**\n * Defines the cursor that corresponds to the given action\n *\n * @returns { string } Defines the cursor that corresponds to the given action \\\n * @param {string} action - Defines the action that is going to be performed\n * @param {boolean} active - Defines the active\n */\n Diagram.prototype.getCursor = function (action, active) {\n var cursor;\n var getCustomCursor = getFunction(this.getCustomCursor);\n if (getCustomCursor) {\n cursor = getCustomCursor(action, active);\n if (cursor) {\n return cursor;\n }\n }\n if (this.customCursor.length) {\n for (var i = 0; i < this.customCursor.length; i++) {\n if (this.customCursor[parseInt(i.toString(), 10)].action === action) {\n return this.customCursor[parseInt(i.toString(), 10)].cursor;\n }\n }\n }\n return this.eventHandler.getCursor(action);\n };\n /**\n * Initializes the undo redo actions\n *\n * @returns { void } Initializes the undo redo actions \\\n * @private\n */\n Diagram.prototype.initHistory = function () {\n if (this.undoRedoModule) {\n this.undoRedoModule.initHistory(this);\n }\n };\n /**\n * Adds the given change in the diagram control to the track\n *\n * @returns { void } Adds the given change in the diagram control to the track \\\n * @param {HistoryEntry} entry - Defines the entry/information about a change in diagram\n * @param {string[]} sourceId - Defines the source id\n */\n Diagram.prototype.addHistoryEntry = function (entry, sourceId) {\n if (this.undoRedoModule && (this.constraints & DiagramConstraints.UndoRedo)\n && (!this.currentSymbol || this.checkCurrentSymbol(this.currentSymbol, entry))) {\n if (entry.undoObject && entry.undoObject.id === 'helper') {\n return;\n }\n this.undoRedoModule.addHistoryEntry(entry, this);\n if (entry.type !== 'StartGroup' && entry.type !== 'EndGroup') {\n this.historyChangeTrigger(entry, 'CustomAction', sourceId);\n }\n }\n };\n Diagram.prototype.checkCurrentSymbol = function (currentSymbol, entry) {\n var check = false;\n if (entry.undoObject && entry.redoObject) {\n var undoObjects = entry.undoObject;\n var redoObject = entry.undoObject;\n if (redoObject.id && undoObjects.id && redoObject.id !== currentSymbol.id && undoObjects.id !== currentSymbol.id) {\n return check = true;\n }\n else {\n return check;\n }\n }\n return check;\n };\n /**\n * Adds the given custom change in the diagram control to the track\n *\n * @returns { void } Adds the given custom change in the diagram control to the track \\\n * @param {HistoryEntry} entry - Defines the entry/information about a change in diagram\n */\n Diagram.prototype.addCustomHistoryEntry = function (entry) {\n if (isBlazor() && this.undoRedoModule && (this.constraints & DiagramConstraints.UndoRedo)) {\n entry.type = undefined;\n entry.category = 'External';\n this.undoRedoModule.addHistoryEntry(entry, this);\n }\n };\n /* eslint-disable */\n /** @private */\n Diagram.prototype.historyChangeTrigger = function (entry, action, sourceId) {\n var change = {};\n /* eslint-enable */\n var oldValue = 'oldValue';\n var newValue = 'newValue';\n var type = 'type';\n var entryType = 'entryType';\n var source = [];\n if (entry.category === 'Internal') {\n if (entry && entry.redoObject && ((entry.redoObject.nodes) instanceof Array) &&\n ((entry.redoObject.connectors) instanceof Array)) {\n source = entry.redoObject.nodes.concat(entry.redoObject.connectors);\n }\n else {\n if (entry.redoObject) {\n source.push(entry.redoObject);\n }\n }\n change[\"\" + type] = entry.type;\n if (isBlazor()) {\n change[\"\" + entryType] = entry.type;\n }\n switch (entry.type) {\n case 'PositionChanged':\n change[\"\" + oldValue] = {\n offsetX: entry.undoObject.offsetX,\n offsetY: entry.undoObject.offsetY\n };\n change[\"\" + newValue] = {\n offsetX: entry.redoObject.offsetX,\n offsetY: entry.redoObject.offsetY\n };\n break;\n case 'RotationChanged':\n change[\"\" + oldValue] = { rotateAngle: entry.undoObject.rotateAngle };\n change[\"\" + newValue] = { rotateAngle: entry.redoObject.rotateAngle };\n break;\n case 'SizeChanged':\n change[\"\" + oldValue] = {\n offsetX: entry.undoObject.offsetX, offsetY: entry.undoObject.offsetY,\n width: entry.undoObject.width, height: entry.undoObject.height\n };\n change[\"\" + newValue] = {\n offsetX: entry.redoObject.offsetX, offsetY: entry.redoObject.offsetY,\n width: entry.redoObject.width, height: entry.redoObject.height\n };\n break;\n case 'CollectionChanged':\n change[entry.changeType] = source;\n break;\n case 'ConnectionChanged':\n change[\"\" + oldValue] = {\n offsetX: entry.undoObject.offsetX,\n offsetY: entry.undoObject.offsetY\n };\n change[\"\" + newValue] = {\n offsetX: entry.redoObject.offsetX,\n offsetY: entry.redoObject.offsetY\n };\n break;\n }\n /**Feature(EJ2-60228): Need to add Object ID in the history change event argument*/\n var arg = void 0;\n var nodeSourceId = [];\n var connectorSourceId = [];\n if (sourceId === undefined && entry.type === 'PropertyChanged') {\n for (var i = 0; i < Object.keys(entry.undoObject).length; i++) {\n if (Object.keys(entry.undoObject)[parseInt(i.toString(), 10)] === 'nodes') {\n for (var _i = 0, _a = Object.keys(entry.undoObject.nodes); _i < _a.length; _i++) {\n var key = _a[_i];\n var undoIndex = parseInt(key);\n nodeSourceId.push(this.nodes[parseInt(undoIndex.toString(), 10)].id);\n }\n }\n }\n for (var i = 0; i < Object.keys(entry.undoObject).length; i++) {\n if (Object.keys(entry.undoObject)[parseInt(i.toString(), 10)] === 'connectors') {\n for (var _b = 0, _c = Object.keys(entry.undoObject.connectors); _b < _c.length; _b++) {\n var key = _c[_b];\n var undoIndex = parseInt(key);\n connectorSourceId.push(this.connectors[parseInt(undoIndex.toString(), 10)].id);\n }\n }\n }\n sourceId = nodeSourceId.concat(connectorSourceId);\n }\n arg = {\n cause: entry.category, source: cloneBlazorObject(source), change: cloneBlazorObject(change),\n action: action, sourceId: sourceId\n };\n if (isBlazor()) {\n arg = {\n cause: entry.category, change: cloneBlazorObject(change),\n source: { connectors: undefined, nodes: undefined }, action: action\n };\n var sourceValue = arg.source;\n sourceValue.connectors = [];\n sourceValue.nodes = [];\n var object = void 0;\n for (var i = 0; i < source.length; i++) {\n object = cloneBlazorObject(source[parseInt(i.toString(), 10)]);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (getObjectType(source[parseInt(i.toString(), 10)]) === Connector) ?\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (sourceValue.connectors.push(object)) : (sourceValue.nodes.push(object));\n }\n arg.source = sourceValue;\n }\n if (source.length) {\n this.triggerEvent(DiagramEvent.historyChange, arg);\n }\n }\n };\n /**\n * Starts grouping the actions that will be undone/restored as a whole\n *\n * @returns { void } Starts grouping the actions that will be undone/restored as a whole\\\n */\n Diagram.prototype.startGroupAction = function () {\n var entry = { type: 'StartGroup', category: 'Internal' };\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n };\n /**\n * Closes grouping the actions that will be undone/restored as a whole\n *\n * @returns { void } Closes grouping the actions that will be undone/restored as a whole .\\\n */\n Diagram.prototype.endGroupAction = function () {\n var entry = { type: 'EndGroup', category: 'Internal' };\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n };\n /**\n * Restores the last action that is performed\n *\n * @returns { void } Restores the last action that is performed .\\\n */\n Diagram.prototype.undo = function () {\n this.canEnableBlazorObject = true;\n this.callBlazorModel = false;\n if (this.undoRedoModule && (this.constraints & DiagramConstraints.UndoRedo)) {\n this.undoRedoModule.undo(this);\n }\n this.commandHandler.getBlazorOldValues();\n this.callBlazorModel = true;\n this.canEnableBlazorObject = false;\n };\n /**\n * Restores the last undone action\n *\n * @returns { void } Restores the last undone action .\\\n */\n Diagram.prototype.redo = function () {\n this.canEnableBlazorObject = true;\n this.callBlazorModel = false;\n if (this.undoRedoModule && (this.constraints & DiagramConstraints.UndoRedo)) {\n this.undoRedoModule.redo(this);\n }\n this.commandHandler.getBlazorOldValues();\n this.callBlazorModel = true;\n this.canEnableBlazorObject = false;\n };\n Diagram.prototype.getBlazorDiagramObjects = function (objects) {\n if (objects) {\n for (var j = 0; j < objects.length; j++) {\n this.insertBlazorDiagramObjects(objects[parseInt(j.toString(), 10)]);\n }\n }\n else {\n this.insertBlazorDiagramObjects(this.selectedItems);\n }\n this.callBlazorModel = false;\n this.canEnableBlazorObject = true;\n };\n /**\n * Aligns the group of objects to with reference to the first object in the group\n *\n * @returns { void } Aligns the group of objects to with reference to the first object in the group .\\\n * @param {AlignmentOptions}option - Defines the factor, by which the objects have to be aligned\n * @param {NodeModel[] | ConnectorModel[]} objects - Defines the objects that have to be aligned\n * @param {AlignmentMode} type - Defines the type to be aligned\n */\n Diagram.prototype.align = function (option, objects, type) {\n this.getBlazorDiagramObjects(objects);\n if (!objects) {\n objects = [];\n objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n this.commandHandler.align(objects, option, (type ? type : 'Object'));\n this.commandHandler.getBlazorOldValues();\n this.callBlazorModel = true;\n this.canEnableBlazorObject = false;\n };\n /**\n * Arranges the group of objects with equal intervals, but within the group of objects\n *\n * @returns { void } Arranges the group of objects with equal intervals, but within the group of objects .\\\n * @param {NodeModel[] | ConnectorModel[]} option - Defines the factor to distribute the shapes\n * @param {DistributeOptions} objects - Defines the objects that have to be equally spaced\n */\n Diagram.prototype.distribute = function (option, objects) {\n this.getBlazorDiagramObjects(objects);\n if (!objects) {\n objects = [];\n objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n this.commandHandler.distribute(objects, option);\n this.commandHandler.getBlazorOldValues();\n this.canEnableBlazorObject = false;\n this.callBlazorModel = true;\n };\n /**\n * Scales the given objects to the size of the first object in the group\n *\n * @returns { void } Scales the given objects to the size of the first object in the group .\\\n * @param {SizingOptions} option - Defines whether the node has to be horizontally scaled, vertically scaled or both\n * @param {NodeModel[] | ConnectorModel[]}objects - Defines the collection of objects that have to be scaled\n */\n Diagram.prototype.sameSize = function (option, objects) {\n this.getBlazorDiagramObjects(objects);\n if (!objects) {\n objects = [];\n objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n this.commandHandler.sameSize(objects, option);\n this.commandHandler.getBlazorOldValues();\n this.canEnableBlazorObject = false;\n this.callBlazorModel = true;\n };\n Diagram.prototype.updateBlazorDiagramProperties = function (attribute, canCall) {\n if (isBlazor() && !canCall) {\n //Need to send the client changes into server side for public APIs changes.\n var isServerDataBindEnabled = this.allowServerDataBinding;\n this.enableServerDataBinding(true);\n for (var i = 0; i < attribute.length; i++) {\n this.oldDiagramObject[attribute[parseInt(i.toString(), 10)]] = cloneObject(this[attribute[parseInt(i.toString(), 10)]]);\n }\n this.enableServerDataBinding(isServerDataBindEnabled);\n }\n if (canCall) {\n this.commandHandler.getDiagramOldValues(this.oldDiagramObject, attribute);\n }\n };\n Diagram.prototype.getZoomingAttribute = function () {\n var attribute = [];\n attribute.push('scrollSettings');\n attribute.push('snapSettings');\n return attribute;\n };\n /**\n * Scales the diagram control by the given factor\n *\n * @returns { void } Scales the diagram control by the given factor .\\\n * @param {number} factor - Defines the factor by which the diagram is zoomed\n * @param {PointModel} focusedPoint - Defines the point with respect to which the diagram has to be zoomed\n */\n Diagram.prototype.zoom = function (factor, focusedPoint) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.zoom(factor, 0, 0, focusedPoint);\n if (!(this.blazorActions & BlazorAction.interaction)) {\n this.updateBlazorDiagramProperties(attribute, true);\n }\n };\n /**\n * Scales the diagram control by the given factor\n *\n * @returns { void } Scales the diagram control by the given factor .\\\n * @param {ZoomOptions} options - used to define the zoom factor, focus point and zoom type.\n *\n */\n Diagram.prototype.zoomTo = function (options) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n var factor = options.zoomFactor ? options.zoomFactor : 0.2;\n factor = options.type === 'ZoomOut' ? 1 / (1 + factor) : (1 + factor);\n this.scroller.zoom(factor, 0, 0, options.focusPoint);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Pans the diagram control to the given horizontal and vertical offsets\n *\n * @returns { void } Pans the diagram control to the given horizontal and vertical offsets .\\\n * @param {number} horizontalOffset - Defines the horizontal distance to which the diagram has to be scrolled\n * @param {number} verticalOffset - Defines the vertical distance to which the diagram has to be scrolled\n * @param {PointModel} focusedPoint - Provide the focusedPoint value\n * @param {boolean} isInteractiveZoomPan - Provide the isInteractiveZoomPan value\n */\n Diagram.prototype.pan = function (horizontalOffset, verticalOffset, focusedPoint, isInteractiveZoomPan) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.setCursor('grabbing');\n this.scroller.zoom(1, horizontalOffset, verticalOffset, focusedPoint, isInteractiveZoomPan);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Resets the zoom and scroller offsets to default values\n *\n * @returns { void } Resets the zoom and scroller offsets to default values .\\\n */\n Diagram.prototype.reset = function () {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.zoom(1 / this.scroller.currentZoom, -this.scroller.horizontalOffset, -this.scroller.verticalOffset, { x: 0, y: 0 });\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Resets the segments of the connectors\n *\n * @returns { void } Resets the segments of the connectors .\\\n */\n Diagram.prototype.resetSegments = function () {\n var previousConnectorObject = [];\n var updateConnectorObject = [];\n var changeConnectors = [];\n if (isBlazor()) {\n for (var _i = 0, _a = this.connectors; _i < _a.length; _i++) {\n var obj = _a[_i];\n previousConnectorObject.push(cloneObject(obj, undefined, undefined, true));\n }\n }\n if (this.constraints & DiagramConstraints.LineRouting && this.lineRoutingModule) {\n this.lineRoutingModule.lineRouting(this);\n }\n else {\n this.protectPropertyChange(true);\n var connector = void 0;\n for (var i = 0; i < this.connectors.length; i++) {\n connector = this.connectors[parseInt(i.toString(), 10)];\n connector.segments = [];\n this.connectorPropertyChange(connector, {}, { segments: connector.segments });\n }\n this.protectPropertyChange(false);\n }\n if (isBlazor()) {\n for (var _b = 0, _c = this.connectors; _b < _c.length; _b++) {\n var obj = _c[_b];\n updateConnectorObject.push(cloneObject(obj, undefined, undefined, true));\n }\n this.commandHandler.getObjectChanges(previousConnectorObject, updateConnectorObject, changeConnectors);\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n var diagramObject = { nodes: [], connectors: changeConnectors };\n if (window && window[\"\" + blazor]) {\n var obj = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramObject };\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this);\n }\n }\n };\n /**\n * setBlazorDiagramProps method\n *\n * @returns {void} setBlazorDiagramProps method .\\\n * @param {boolean} arg - provide the eventName value.\n * @private\n */\n Diagram.prototype.setBlazorDiagramProps = function (arg) {\n var attribute = this.getZoomingAttribute();\n if (arg) {\n this.updateBlazorDiagramProperties(attribute);\n }\n else {\n this.updateBlazorDiagramProperties(attribute, true);\n }\n };\n /**\n * getDirection method\n *\n * @returns { Promise } getDirection method .\\\n * @param {DiagramEvent} eventName - provide the eventName value.\n * @param {Object} args - provide the args value.\n * @private\n */\n Diagram.prototype.triggerEvent = function (eventName, args) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (args) {\n this.updateEventValue(args);\n }\n return [4 /*yield*/, this.trigger(DiagramEvent[\"\" + eventName], args)];\n case 1:\n eventArgs = _a.sent();\n if (isBlazor() && typeof eventArgs === 'string') {\n eventArgs = JSON.parse(eventArgs);\n }\n return [2 /*return*/, eventArgs];\n }\n });\n });\n };\n Diagram.prototype.updateEventValue = function (args) {\n var element = args.element;\n if (args.element && element instanceof Selector && (element.nodes.length + element.connectors.length === 1)) {\n args.element = (element.nodes.length === 1) ? element.nodes[0] : element.connectors[0];\n }\n };\n /**\n * Adds the given node to the lane\n *\n * @returns { void } Adds the given node to the lane .\\\n * @param {NodeModel} node - provide the node value.\n * @param {string} swimLane - provide the swimLane value.\n * @param {string} lane - provide the lane value.\n\n */\n Diagram.prototype.addNodeToLane = function (node, swimLane, lane) {\n if (this.nameTable[\"\" + swimLane]) {\n var swimlaneNode = this.nameTable[\"\" + swimLane];\n this.protectPropertyChange(true);\n if (this.undoRedoModule) {\n this.historyManager.startGroupAction();\n }\n if (!this.nameTable[node.id]) {\n node.offsetX = swimlaneNode.wrapper.bounds.width + swimlaneNode.wrapper.bounds.x;\n node.offsetY = swimlaneNode.wrapper.bounds.height + swimlaneNode.wrapper.bounds.y;\n node = this.add(node);\n }\n node.parentId = '';\n if (!swimlaneNode.shape.phases.length) {\n var laneId = swimLane + lane + '0';\n if (this.nameTable[\"\" + laneId]) {\n addChildToContainer(this, this.nameTable[\"\" + laneId], node, undefined, true);\n updateLaneBoundsAfterAddChild(this.nameTable[\"\" + laneId], swimlaneNode, node, this);\n }\n }\n else {\n for (var i = 0; i < swimlaneNode.shape.phases.length; i++) {\n var laneId = swimLane + lane + i;\n if (this.nameTable[\"\" + laneId] && this.nameTable[\"\" + laneId].isLane) {\n var laneNode = this.nameTable[\"\" + laneId].wrapper.bounds;\n var focusPoint = {\n x: laneNode.x +\n (laneNode.x - swimlaneNode.wrapper.bounds.x + node.margin.left + (node.wrapper.bounds.width / 2)),\n y: laneNode.y + swimlaneNode.wrapper.bounds.y - node.margin.top\n };\n if (swimlaneNode.shape.orientation === 'Horizontal') {\n focusPoint.y = laneNode.y;\n }\n else {\n focusPoint.x = laneNode.x;\n var laneHeaderId = this.nameTable[\"\" + laneId].parentId +\n swimlaneNode.shape.lanes[0].id + '_0_header';\n focusPoint.y = laneNode.y +\n (swimlaneNode.wrapper.bounds.y - this.nameTable[\"\" + laneHeaderId].wrapper.bounds.height +\n node.margin.top + (node.wrapper.bounds.height / 2));\n }\n if (laneNode.containsPoint(focusPoint) ||\n (laneId === swimLane + lane + (swimlaneNode.shape.phases.length - 1))) {\n addChildToContainer(this, this.nameTable[\"\" + laneId], node, undefined, true);\n updateLaneBoundsAfterAddChild(this.nameTable[\"\" + laneId], swimlaneNode, node, this);\n break;\n }\n }\n }\n }\n if (this.undoRedoModule) {\n this.historyManager.endGroupAction();\n }\n this.protectPropertyChange(false);\n }\n this.updateDiagramElementQuad();\n };\n /**\n * Shows tooltip for corresponding diagram object\n *\n * @param {NodeModel | ConnectorModel} obj - Defines the object for that tooltip has to be shown\n */\n Diagram.prototype.showTooltip = function (obj) {\n if (obj && obj.id && !obj.wrapper) {\n obj = this.nameTable[obj.id];\n }\n var bounds = getBounds(obj.wrapper);\n var position = { x: 0, y: 0 };\n var content = obj.tooltip.content ?\n obj.tooltip.content : 'X:' + Math.round(bounds.x) + ' ' + 'Y:' + Math.round(bounds.y);\n if (obj && obj.tooltip.openOn === 'Custom') {\n if (obj instanceof Node) {\n position = { x: obj.offsetX + (obj.width / 2), y: obj.offsetY + (obj.height / 2) };\n }\n else {\n position = { x: obj.targetPoint.x, y: obj.targetPoint.x };\n }\n this.commandHandler.showTooltip(obj, position, content, 'SelectTool', true);\n }\n };\n /**\n * hides tooltip for corresponding diagram object\n *\n * @param {NodeModel | ConnectorModel} obj - Defines the object for that tooltip has to be hide\n */\n Diagram.prototype.hideTooltip = function (obj) {\n if (obj && obj.tooltip.openOn === 'Custom') {\n this.tooltipObject.close();\n }\n };\n /**\n * Adds the given node to diagram control\n *\n * @returns { Node } getDirection method .\\\n * @param {NodeModel} obj - Defines the node that has to be added to diagram\n * @param {boolean} group - Defines the node that has to be added to diagram\n * @blazorArgsType obj|DiagramNode\n */\n Diagram.prototype.addNode = function (obj, group) {\n return this.add(obj, group);\n };\n /**\n * Adds the given diagram object to the group.\n *\n * @returns { void } Adds the given diagram object to the group.\\\n * @param {NodeModel} group - defines where the diagram object to be added.\n * @param {string | NodeModel | ConnectorModel} child - defines the diagram object to be added to the group\n * @blazorArgsType obj|DiagramNode\n */\n Diagram.prototype.addChildToGroup = function (group, child) {\n var severDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n var propChange = this.isProtectedOnChange;\n this.protectPropertyChange(true);\n group = this.getObject(group.id);\n if (isBlazor()) {\n this.insertValue(group, true);\n }\n var isHistoryAdded = (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group) &&\n !(this.diagramActions & DiagramAction.PreventHistory));\n if (isHistoryAdded) {\n this.startGroupAction();\n }\n var id = this.addChild(group, child);\n if (isHistoryAdded) {\n var childTable = {};\n childTable[\"\" + id] = cloneObject(this.getObject(id));\n var entry = {\n type: 'AddChildToGroupNode', changeType: 'Insert', undoObject: cloneObject(group),\n redoObject: cloneObject(group), category: 'Internal', objectId: id, childTable: childTable\n };\n this.addHistoryEntry(entry);\n this.endGroupAction();\n }\n this.protectPropertyChange(propChange);\n this.enableServerDataBinding(severDataBind);\n this.updateSelector();\n if (isBlazor() && isHistoryAdded) {\n this.commandHandler.getBlazorOldValues();\n }\n };\n /**\n * Will return the history stack values\n *\n * @returns { void } Will return the history stack values .\\\n * @param {boolean} isUndoStack - returns the history stack values\n */\n Diagram.prototype.getHistoryStack = function (isUndoStack) {\n //let temp: HistoryEntry[];\n var historyEntry = [];\n var temp = isUndoStack ? this.historyManager.undoStack : this.historyManager.redoStack;\n if (this.historyManager.stackLimit !== undefined) {\n for (var i = temp.length - 1; i >= 0; i--) {\n historyEntry.push(temp[parseInt(i.toString(), 10)]);\n if (historyEntry.length > this.historyManager.stackLimit) {\n return historyEntry;\n }\n }\n }\n else {\n historyEntry = temp;\n }\n return historyEntry;\n };\n /* tslint:disable */\n /**\n * Return the edges for the given node\n *\n * @returns { string[] } Return the edges for the given node .\\\n\n * @param {Object} args - return the edge of the given node\n */\n Diagram.prototype.getEdges = function (args) {\n return args['outEdge'] ? this.nameTable[args['id']].outEdges : this.nameTable[args['id']].inEdges;\n };\n /* tslint:enable */\n /**\n * Returns the parent id for the node\n *\n * @returns { string }Returns the parent id for the node .\\\n\n * @param {string} id - returns the parent id\n */\n Diagram.prototype.getParentId = function (id) {\n return this.nameTable[\"\" + id].parentId;\n };\n /**\n * Adds the given connector to diagram control\n * @returns { Connector } Adds the given connector to diagram control .\\\n *\n * @param {ConnectorModel} obj - Defines the connector that has to be added to diagram\n * @blazorArgsType obj|DiagramConnector\n */\n Diagram.prototype.addConnector = function (obj) {\n return this.add(obj);\n };\n /* eslint-disable */\n /** @private */\n Diagram.prototype.UpdateBlazorDiagramModelCollection = function (obj, copiedObject, multiSelectDelete, isBlazorGroupUpdate) {\n /* eslint-enable */\n if (!(this.blazorActions & BlazorAction.ClearObject)) {\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n if (window && window[\"\" + blazor]) {\n var updatedModel = void 0;\n var connectorModelCollection = [];\n var updatedModelCollection = [];\n var objectTypeCollection = [];\n var removalIndexCollection = [];\n if (isBlazorGroupUpdate && !copiedObject) {\n for (var i = 0; i < this.blazorAddorRemoveCollection.length; i++) {\n objectTypeCollection.push(getObjectType(this.blazorAddorRemoveCollection[parseInt(i.toString(), 10)]) === Connector ? 'Connector' : 'Node');\n updatedModel = cloneBlazorObject(this.blazorAddorRemoveCollection[parseInt(i.toString(), 10)]);\n updatedModelCollection.push(updatedModel);\n removalIndexCollection = this.blazorRemoveIndexCollection;\n }\n }\n else if ((!this.isServerUpdate || multiSelectDelete)) {\n this.isServerUpdate = true;\n var updatedModel_1 = cloneBlazorObject(obj);\n var elements = [];\n var removalIndex = void 0;\n var tempNode = [];\n if (!copiedObject) {\n if (!multiSelectDelete) {\n tempNode = this.commandHandler.getChildren(obj, elements);\n }\n else {\n tempNode = multiSelectDelete;\n }\n for (var i = 0; i < tempNode.length; i++) {\n updatedModel_1 = cloneBlazorObject(tempNode[parseInt(i.toString(), 10)]);\n updatedModelCollection.push(updatedModel_1);\n if (getObjectType(tempNode[parseInt(i.toString(), 10)]) === Connector) {\n removalIndex = this.connectors.indexOf(tempNode[parseInt(i.toString(), 10)]);\n }\n else {\n removalIndex = this.nodes.indexOf(tempNode[parseInt(i.toString(), 10)]);\n }\n removalIndexCollection.push(removalIndex);\n objectTypeCollection.push(getObjectType(tempNode[parseInt(i.toString(), 10)]) === Connector ? 'Connector' : 'Node');\n }\n if (!multiSelectDelete) {\n updatedModelCollection.push(cloneBlazorObject(obj));\n removalIndexCollection.push(this.nodes.indexOf(obj));\n objectTypeCollection.push(getObjectType(obj) === Connector ? 'Connector' : 'Node');\n }\n }\n if (copiedObject && copiedObject.length > 0) {\n for (var i = 0; i < copiedObject.length; i++) {\n updatedModel_1 = cloneBlazorObject(copiedObject[parseInt(i.toString(), 10)]);\n var isNode = (copiedObject[parseInt(i.toString(), 10)] instanceof Node) ? true : false;\n /* eslint-disable */\n isNode ? updatedModelCollection.push(updatedModel_1) : connectorModelCollection.push(updatedModel_1);\n /* eslint-enable */\n objectTypeCollection.push(getObjectType(copiedObject[parseInt(i.toString(), 10)]) === Connector ? 'Connector' : 'Node');\n }\n }\n this.isServerUpdate = false;\n }\n var dgmObj = {\n 'methodName': 'UpdateBlazorDiagramObjects',\n 'diagramobj': {\n 'nodeObj': JSON.stringify(updatedModelCollection),\n 'ObjectType': objectTypeCollection,\n 'removalIndex': copiedObject ? undefined : removalIndexCollection,\n 'isMultipleObjects': true, 'annotationIndex': undefined,\n 'connectorObj': JSON.stringify(connectorModelCollection)\n }\n };\n window[\"\" + blazorInterop].updateBlazorProperties(dgmObj, this);\n if (isBlazorGroupUpdate && !copiedObject) {\n this.blazorAddorRemoveCollection = [];\n this.blazorRemoveIndexCollection = [];\n }\n }\n }\n };\n /**\n * UpdateBlazorDiagramModel method\n *\n * @returns { void } UpdateBlazorDiagramModel method .\\\n * @param {Node | Connector | ShapeAnnotation | PathAnnotation} obj - provide the obj value.\n * @param {string} objectType - provide the objectType value.\n * @param {number} removalIndex - provide the removalIndex value.\n * @param {number} annotationNodeIndex - provide the annotationNodeIndex value.\n *\n * @private\n */\n Diagram.prototype.UpdateBlazorDiagramModel = function (obj, objectType, removalIndex, annotationNodeIndex) {\n if (!(this.blazorActions & BlazorAction.GroupClipboardInProcess)) {\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n if (window && window[\"\" + blazor] && !this.isServerUpdate && !(this.diagramActions & DiagramAction.Clear)) {\n var updatedModel = cloneBlazorObject(obj);\n var dgmObj = {\n 'methodName': 'UpdateBlazorDiagramObjects',\n 'diagramobj': {\n 'nodeObj': JSON.stringify(updatedModel),\n 'ObjectType': objectType, 'removalIndex': removalIndex,\n 'isMultipleObjects': false,\n 'annotationIndex': annotationNodeIndex, 'connectorObj': undefined\n }\n };\n window[\"\" + blazorInterop].updateBlazorProperties(dgmObj, this);\n }\n }\n };\n // eslint-disable-next-line max-len\n Diagram.prototype.UpdateBlazorLabelOrPortObjects = function (obj, objectType, removalIndex, nodeIndex) {\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n if (window && window[\"\" + blazor] && obj.length > 0 && !this.isServerUpdate && !(this.diagramActions & DiagramAction.Clear)) {\n // eslint-disable-next-line max-len\n var updatedModelCollection = [];\n var objectTypeCollection = [];\n var nodeIndexCollection = [];\n for (var i = 0; i < obj.length; i++) {\n updatedModelCollection.push(cloneBlazorObject(obj[parseInt(i.toString(), 10)]));\n objectTypeCollection.push(objectType);\n nodeIndexCollection.push(nodeIndex);\n }\n var dgmObj = {\n 'methodName': 'UpdateBlazorDiagramObjects',\n 'diagramobj': {\n 'nodeObj': JSON.stringify(updatedModelCollection),\n 'ObjectType': objectTypeCollection, 'removalIndex': removalIndex,\n 'isMultipleObjects': true,\n 'annotationIndex': nodeIndexCollection,\n 'connectorObj': null,\n 'portIndex': (objectType === 'Port') ? nodeIndexCollection : []\n }\n };\n window[\"\" + blazorInterop].updateBlazorProperties(dgmObj, this);\n }\n };\n /**\n * addBlazorDiagramObjects method\n *\n * @returns { void } addBlazorDiagramObjects method .\\\n *\n * @private\n */\n Diagram.prototype.addBlazorDiagramObjects = function () {\n var nodesCollection = [];\n var connectorCollection = [];\n if (this.dataBindingModule && !(this.realActions & RealAction.PreventDataInit)) {\n for (var i = 0; i < this.nodes.length; i++) {\n nodesCollection.push(cloneObject(this.nodes[parseInt(i.toString(), 10)], undefined, undefined, true));\n }\n for (var i = 0; i < this.connectors.length; i++) {\n connectorCollection.push(cloneObject(this.connectors[parseInt(i.toString(), 10)], undefined, undefined, true));\n }\n }\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n if (window && window[\"\" + blazor]) {\n var obj = {\n 'methodName': 'AddBlazorObjects',\n 'diagramobj': { 'nodeObj': JSON.stringify(nodesCollection), 'isConnector': false }\n };\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this);\n obj = {\n 'methodName': 'AddBlazorObjects',\n 'diagramobj': { 'nodeObj': JSON.stringify(connectorCollection), 'isConnector': true }\n };\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this);\n }\n };\n Diagram.prototype.removeNodeEdges = function (elementId, id, isOutEdges) {\n var node = this.nameTable[\"\" + elementId];\n var edges = isOutEdges ? node.outEdges : node.inEdges;\n if (edges.length > 0) {\n for (var i = 0; i < edges.length; i++) {\n if (edges[parseInt(i.toString(), 10)] === id) {\n edges.splice(i, 1);\n }\n }\n }\n };\n /**\n * insertBlazorConnector method\n *\n * @returns { void } insertBlazorConnector method .\\\n * @param {Connector} obj - provide the nodeId value.\n *\n * @private\n */\n Diagram.prototype.insertBlazorConnector = function (obj) {\n if (isBlazor() && (obj instanceof Connector)) {\n if (obj.sourceID && this.nameTable[obj.sourceID]) {\n this.insertValue(cloneObject(this.nameTable[obj.sourceID]), true);\n }\n if (obj.targetID && this.nameTable[obj.targetID]) {\n this.insertValue(cloneObject(this.nameTable[obj.targetID]), true);\n }\n }\n };\n /* tslint:disable */\n /**\n * Adds the given object to diagram control\n *\n * @returns { Node | Connector } getDirection method .\\\n * @param {NodeModel | ConnectorModel} obj - Defines the object that has to be added to diagram\n * @param {boolean} group - provide the group value.\n */\n Diagram.prototype.add = function (obj, group) {\n var newObj;\n var propertyChangeValue = this.isProtectedOnChange;\n this.protectPropertyChange(true);\n if (obj) {\n obj = cloneObject(obj);\n var args = void 0;\n args = {\n element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), state: 'Changing', type: 'Addition', cancel: false\n };\n if (this.parentObject) {\n args.parentId = this.parentObject.id;\n }\n if (isBlazor()) {\n args = getCollectionChangeEventArguements(args, obj, 'Changing', 'Addition');\n }\n if (obj.id !== 'helper' && !(this.diagramActions & DiagramAction.PreventCollectionChangeOnDragOver)) {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n if (args.cancel && this.drawingObject) {\n this.removeElements(args.element);\n this.tooltipObject.close();\n var sourceNodee = this.getObject(args.element.sourceID);\n var isOutEdgee = void 0;\n if (getObjectType(args.element) === Connector) {\n if (args.element.sourceID) {\n this.removeNodeEdges(args.element.sourceID, args.element.id, true);\n if (sourceNodee.ports.length > 0) {\n for (var i = 0; i < sourceNodee.ports.length; i++) {\n var port = sourceNodee.ports[parseInt(i.toString(), 10)];\n if (port.id === args.element.sourcePortID) {\n if (port.outEdges.length > 0) {\n isOutEdgee = false;\n }\n else {\n isOutEdgee = true;\n }\n }\n }\n this.removePortEdges(sourceNodee, args.element.sourcePortID, args.element.id, isOutEdgee);\n }\n }\n if (args.element.targetID) {\n this.removeNodeEdges(args.element.targetID, args.element.id, false);\n }\n }\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n obj.id = obj.id || randomId();\n var layers = this.activeLayer;\n if (!args.cancel && !layers.lock) {\n if (layers.objects.indexOf(obj.id) < 0 && !layers.lock) {\n if (!layers.visible) {\n layers.visible = true;\n this.dataBind();\n }\n layers.objects.push(obj.id);\n }\n if (getObjectType(obj) === Connector) {\n newObj = new Connector(this, 'connectors', obj, true);\n newObj.status = 'New';\n updateDefaultValues(newObj, obj, this.connectorDefaults);\n this.connectors.push(newObj);\n this.initObject(newObj);\n if (isBlazor()) {\n if ((this.blazorActions & BlazorAction.GroupingInProgress)) {\n this.blazorAddorRemoveCollection.push(newObj);\n }\n else if (this.blazorAddorRemoveCollection.length > 0) {\n this.isServerUpdate = false;\n this.blazorAddorRemoveCollection.push(newObj);\n this.UpdateBlazorDiagramModelCollection(undefined, this.blazorAddorRemoveCollection, undefined, true);\n this.blazorAddorRemoveCollection = [];\n this.commandHandler.getBlazorOldValues();\n }\n else if ((!this.isServerUpdate) && !(this.blazorActions & BlazorAction.GroupClipboardInProcess)) {\n this.UpdateBlazorDiagramModel(newObj, 'Connector');\n this.commandHandler.getBlazorOldValues();\n }\n }\n if (obj.visible === false) {\n this.updateElementVisibility(newObj.wrapper, newObj, obj.visible);\n }\n this.updateEdges(newObj);\n this.insertBlazorConnector(newObj);\n }\n else {\n newObj = new Node(this, 'nodes', obj, true);\n updateDefaultValues(newObj, obj, this.nodeDefaults);\n newObj.parentId = (obj.parentId) ? obj.parentId : newObj.parentId;\n newObj.umlIndex = obj.umlIndex;\n newObj.status = 'New';\n this.nodes.push(newObj);\n this.initObject(newObj, layers, undefined, group);\n if (isBlazor()) {\n if ((this.blazorActions & BlazorAction.GroupingInProgress)) {\n this.blazorAddorRemoveCollection.push(newObj);\n }\n else if (this.blazorAddorRemoveCollection.length > 0) {\n this.blazorAddorRemoveCollection.push(newObj);\n this.isServerUpdate = false;\n this.UpdateBlazorDiagramModelCollection(undefined, this.blazorAddorRemoveCollection, undefined, true);\n this.commandHandler.getBlazorOldValues();\n this.blazorAddorRemoveCollection = [];\n }\n else if ((!this.isServerUpdate) && !(this.blazorActions & BlazorAction.GroupClipboardInProcess)) {\n this.UpdateBlazorDiagramModel(newObj, 'Node');\n this.commandHandler.getBlazorOldValues();\n }\n }\n this.updateTemplate();\n if (this.bpmnModule) {\n if (newObj.shape.annotations && newObj.shape.annotations.length !== 0) {\n for (var _i = 0, _a = this.bpmnModule.getTextAnnotationConn(newObj); _i < _a.length; _i++) {\n var obj_1 = _a[_i];\n this.initConnectors(obj_1, layers, false);\n }\n }\n if (newObj.shape.activity && newObj.shape.activity.subProcess.processes &&\n newObj.shape.activity.subProcess.processes.length) {\n this.bpmnModule.updateDocks(newObj, this);\n }\n }\n if (this.lineRoutingModule && (this.constraints & DiagramConstraints.LineRouting)) {\n var objects = this.spatialSearch.findObjects(newObj.wrapper.outerBounds);\n for (var i = 0; i < objects.length; i++) {\n var object = objects[parseInt(i.toString(), 10)];\n if (object instanceof Connector) {\n this.connectorPropertyChange(object, {}, {\n sourceID: object.sourceID, targetID: object.targetID, sourcePortID: object.sourcePortID,\n targetPortID: object.targetPortID, sourcePoint: object.sourcePoint, targetPoint: object.targetPoint\n });\n }\n }\n }\n if (newObj.umlIndex > -1 && obj.parentId && this.nameTable[obj.parentId] &&\n this.nameTable[obj.parentId].shape.type === 'UmlClassifier') {\n var parent_2 = this.nameTable[obj.parentId];\n parent_2.children.splice(newObj.umlIndex, 0, newObj.id);\n parent_2.wrapper.children.splice(newObj.umlIndex, 0, newObj.wrapper);\n parent_2.wrapper.measure(new Size());\n parent_2.wrapper.arrange(parent_2.wrapper.desiredSize);\n this.updateDiagramObject(parent_2);\n }\n }\n args = {\n element: newObj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), state: 'Changed', type: 'Addition', cancel: false\n };\n if (this.parentObject) {\n args.parentId = this.parentObject.id;\n }\n if (isBlazor()) {\n args = getCollectionChangeEventArguements(args, obj, 'Changed', 'Addition');\n }\n if (obj.id !== 'helper' && !(this.diagramActions & DiagramAction.PreventCollectionChangeOnDragOver)) {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n if (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group) &&\n !(this.diagramActions & DiagramAction.PreventHistory)) {\n var entry = {\n type: 'CollectionChanged', changeType: 'Insert', undoObject: cloneObject(obj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n this.parentObject = undefined;\n if (this.mode === 'SVG') {\n this.updateSvgNodes(newObj);\n this.updateTextElementValue(newObj);\n this.updateDiagramObject(newObj);\n if (newObj.shape.activity && newObj.shape.activity.subProcess.processes &&\n newObj.shape.activity.subProcess.processes.length) {\n this.updateProcesses(newObj);\n }\n this.updateBridging();\n }\n }\n }\n this.protectPropertyChange(propertyChangeValue);\n this.resetDiagramActions(DiagramAction.PublicMethod);\n if (newObj && this.layers.length > 1) {\n this.moveNode(newObj);\n }\n for (var _b = 0, _c = this.views; _b < _c.length; _b++) {\n var temp = _c[_b];\n var view = this.views[\"\" + temp];\n if (!(view instanceof Diagram)) {\n this.refreshCanvasDiagramLayer(view);\n }\n }\n this.renderReactTemplates();\n return newObj;\n };\n /* tslint:enable */\n Diagram.prototype.updateSvgNodes = function (node) {\n if (node.children) {\n for (var _i = 0, _a = node.children; _i < _a.length; _i++) {\n var j = _a[_i];\n if (this.nameTable[\"\" + j] && this.nameTable[\"\" + j].parentId) {\n var child = getDiagramElement(j + '_groupElement', this.element.id);\n if (child) {\n child.parentNode.removeChild(child);\n }\n }\n }\n }\n };\n /**\n * updateProcesses method\n *\n * @returns { void } updateProcesses method .\\\n * @param {(Node | Connector)} node - provide the nodeId value.\n *\n * @private\n */\n Diagram.prototype.updateProcesses = function (node) {\n if (this.bpmnModule && node && node.shape && node.shape.activity &&\n node.shape.activity.subProcess.processes &&\n node.shape.activity.subProcess.processes.length) {\n var processes = node.shape.activity.subProcess.processes;\n this.moveSvgNode(node.id);\n for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) {\n var j = processes_1[_i];\n this.moveSvgNode(j);\n var edges = [];\n edges = edges.concat(this.nameTable[\"\" + j].outEdges, this.nameTable[\"\" + j].inEdges);\n for (var i = edges.length - 1; i >= 0; i--) {\n this.moveSvgNode(edges[parseInt(i.toString(), 10)]);\n }\n }\n for (var _a = 0, processes_2 = processes; _a < processes_2.length; _a++) {\n var j = processes_2[_a];\n if (this.nameTable[\"\" + j].shape.activity.subProcess.processes &&\n this.nameTable[\"\" + j].shape.activity.subProcess.processes.length) {\n this.updateProcesses(this.nameTable[\"\" + j]);\n }\n }\n }\n else {\n this.moveSvgNode(node.id);\n }\n };\n /**\n * moveSvgNode method\n *\n * @returns { void } moveSvgNode method .\\\n * @param {string} nodeId - provide the nodeId value.\n *\n * @private\n */\n Diagram.prototype.moveSvgNode = function (nodeId) {\n var child = getDiagramElement(nodeId + '_groupElement', this.element.id);\n var parent = child.parentElement;\n child.parentNode.removeChild(child);\n parent.appendChild(child);\n };\n /**\n * Adds the given annotation to the given node\n *\n * @returns { void } Adds the given annotation to the given node .\\\n * @param {BpmnAnnotationModel} annotation - Defines the annotation to be added\n * @param {NodeModel} node - Defines the node to which the annotation has to be added\n */\n Diagram.prototype.addTextAnnotation = function (annotation, node) {\n if (this.bpmnModule) {\n var connector = this.bpmnModule.addAnnotation(node, annotation, this);\n this.initConnectors(connector, this.commandHandler.getObjectLayer(node.id), false);\n this.updateDiagramObject(node);\n if (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group)) {\n var entry = {\n type: 'CollectionChanged', changeType: 'Insert', undoObject: cloneObject(annotation),\n redoObject: cloneObject(annotation), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n // EJ2-65546 - Adding BPMN Text annotation node inside swimlane at runtime is not working properly.\n // Checking whether the node is children of Lane.\n if (node.parentId) {\n var nodeParent = this.nameTable[node.parentId];\n if (nodeParent && nodeParent.isLane) {\n // Getting swimlane node using lane parent Id and setting isTextNode property to true to provide\n // drag support for bpmn text annotation while dragging swimlane.\n var swimlane = this.nameTable[nodeParent.parentId];\n swimlane.isTextNode = true;\n }\n }\n }\n };\n //Splice the InEdge and OutEdge of the for the node with respect to corresponding connectors that is deleting\n Diagram.prototype.spliceConnectorEdges = function (connector, isSource) {\n //let node: Node;\n var edges = [];\n //let isInEdge: boolean;\n var node = isSource ? this.nameTable[connector.sourceID] : this.nameTable[connector.targetID];\n if (node) {\n edges = isSource ? node.outEdges : node.inEdges;\n for (var i = edges.length - 1; i >= 0; i--) {\n if (edges[parseInt(i.toString(), 10)] === connector.id) {\n edges.splice(i, 1);\n }\n }\n for (var j = 0; node.ports && j < node.ports.length; j++) {\n var isInEdge = isSource ? false : true;\n this.removePortEdges(node, node.ports[parseInt(j.toString(), 10)].id, connector.id, isInEdge);\n }\n }\n };\n /**\n * Remove the dependent connectors if the node is deleted\n * @returns { void } Remove the dependent connectors if the node is deleted .\\\n * @param {Node} node - provide the node value.\n *\n * @private\n */\n Diagram.prototype.removeDependentConnector = function (node) {\n if (node) {\n var connector = void 0;\n var edges = [];\n edges = edges.concat(node.outEdges, node.inEdges);\n for (var i = edges.length - 1; i >= 0; i--) {\n connector = this.nameTable[edges[parseInt(i.toString(), 10)]];\n if (connector) {\n this.connectorTable[connector.id] = cloneObject(connector);\n this.remove(connector);\n }\n }\n }\n };\n /**\n * Remove the dependent connectors if the node is deleted\n * @returns { void } Remove the dependent connectors if the node is deleted .\\\n * @param {(NodeModel | ConnectorModel)} obj - provide the node value.\n *\n * @private\n */\n Diagram.prototype.removeObjectsFromLayer = function (obj) {\n if (obj.children) {\n for (var i = 0; i < obj.children.length; i++) {\n var object = this.nameTable[obj.children[parseInt(i.toString(), 10)]];\n if (object) {\n this.removeObjectsFromLayer(object);\n }\n }\n }\n var layer = this.layers.indexOf(this.commandHandler.getObjectLayer(obj.id));\n var objects = this.layers[parseInt(layer.toString(), 10)].objects;\n var objIndex = objects.indexOf(obj.id);\n if (objIndex > -1) {\n if (isSelected(this, obj)) {\n this.unSelect(obj);\n }\n this.layers[parseInt(layer.toString(), 10)].objects.splice(objIndex, 1);\n delete this.layers[parseInt(layer.toString(), 10)].zIndexTable[this.nameTable[obj.id].zIndex];\n }\n };\n /**\n * removeElements method \\\n *\n * @returns { string } removeElements method .\\\n * @param {NodeModel | ConnectorModel} currentObj - provide the currentObj value.\n *\n * @private\n */\n Diagram.prototype.removeElements = function (currentObj) {\n if (this.mode === 'SVG' || (this.mode === 'Canvas' && currentObj.shape.type === 'Native')) {\n var removeElement_1 = getDiagramElement(currentObj.id + '_groupElement', this.element.id);\n var object = currentObj;\n if ((object).ports && (object).ports.length > 0) {\n for (var i = 0; i < (object).ports.length; i++) {\n var port = (object).ports[parseInt(i.toString(), 10)];\n var removePort = getDiagramElement(object.id + '_' + port.id + '_groupElement', this.element.id);\n if (removePort) {\n removePort.parentNode.removeChild(removePort);\n }\n }\n }\n if (removeElement_1) {\n removeElement_1.parentNode.removeChild(removeElement_1);\n }\n }\n this.refreshCanvasLayers();\n if (currentObj.wrapper) {\n var children = currentObj.wrapper.children;\n var element = void 0;\n var view = void 0;\n if (children) {\n for (var i = 0; i < children.length; i++) {\n if (children[parseInt(i.toString(), 10)] instanceof DiagramNativeElement || ((children[parseInt(i.toString(), 10)].id) && (children[parseInt(i.toString(), 10)].id).indexOf('icon_content') > 0)) {\n if ((children[parseInt(i.toString(), 10)].id).indexOf('icon_content') > 0 && this.mode === 'SVG') {\n element = getDiagramElement(children[parseInt(i.toString(), 10)].id + '_shape_groupElement', this.element.id);\n if (element) {\n element.parentNode.removeChild(element);\n }\n element = getDiagramElement(children[parseInt(i.toString(), 10)].id + '_rect_groupElement', this.element.id);\n if (element) {\n element.parentNode.removeChild(element);\n }\n }\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(children[parseInt(i.toString(), 10)].id + '_groupElement', elementId);\n var nodeIndex = this.scroller.removeCollection.indexOf(currentObj.id);\n this.scroller.removeCollection.splice(nodeIndex, 1);\n }\n }\n else if (children[parseInt(i.toString(), 10)] instanceof DiagramHtmlElement) {\n for (var _b = 0, _c = this.views; _b < _c.length; _b++) {\n var elementId = _c[_b];\n removeElement(currentObj.id + '_html_element', elementId);\n removeElement(children[parseInt(i.toString(), 10)].id + '_html_element', elementId);\n //EJ2-63598 - Added below code to check whether platform is Angular or not.\n // If angular then we do not remove the node html element wrapper to retain the HTML element in it.\n var canUpdate = true;\n var parent_3 = this.nameTable[currentObj.parentId];\n if (((this.isAngular || this.isReact) || this.isVue) && parent_3 && parent_3.isLane) {\n canUpdate = false;\n }\n if (canUpdate) {\n this.clearTemplate(['nodeTemplate' + '_' + currentObj.id]);\n }\n if (children[parseInt(i.toString(), 10)].annotationId) {\n this.clearTemplate(['annotationTemplate' + '_' + currentObj.id + (children[parseInt(i.toString(), 10)].annotationId)]);\n }\n }\n }\n removeGradient(children[parseInt(i.toString(), 10)].id);\n }\n }\n }\n };\n Diagram.prototype.removeCommand = function () {\n this.remove();\n };\n /**\n * Removes the given object from diagram\n *\n * @param {NodeModel | ConnectorModel} obj - Defines the object that has to be removed from diagram\n */\n /* tslint:disable */\n Diagram.prototype.remove = function (obj) {\n var selectedItems = [];\n selectedItems = selectedItems.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n var args;\n var groupAction = false;\n if (obj) {\n obj = this.nameTable[obj.id];\n this.insertBlazorConnector(obj);\n if (obj && (canDelete(obj) || (this.diagramActions & DiagramAction.Clear))) {\n args = {\n element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n state: 'Changing', type: 'Removal', cancel: false\n };\n if (isBlazor()) {\n args = getCollectionChangeEventArguements(args, obj, 'Changing', 'Removal');\n }\n if (!(this.diagramActions & DiagramAction.Clear) && (obj.id !== 'helper')) {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n if (!args.cancel) {\n if (canDelete(obj)) {\n if (obj && obj.shape && obj.shape.type === 'SwimLane') {\n removeSwimLane(this, obj);\n }\n }\n if (this.bpmnModule) {\n if (this.bpmnModule.checkAndRemoveAnnotations(obj, this)) {\n this.refreshCanvasLayers();\n return;\n }\n }\n if ((!(this.diagramActions & DiagramAction.UndoRedo)) && !(this.diagramActions & DiagramAction.PreventHistory) &&\n (obj instanceof Node || obj instanceof Connector)) {\n var entry = {\n type: 'CollectionChanged', changeType: 'Remove', undoObject: cloneObject(obj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n if (!(this.diagramActions & DiagramAction.Clear)) {\n if (obj.children && !obj.isLane && !obj.isPhase && obj.children.length > 0 && this.undoRedoModule && this.layout.type === 'None') {\n this.historyManager.startGroupAction();\n groupAction = true;\n }\n }\n if (obj instanceof Node) {\n this.removeDependentConnector(obj);\n }\n if (!obj.isLane && !obj.isPhase) {\n if (!(this.diagramActions & DiagramAction.Clear) && !this.isStackChild(obj)) {\n this.addHistoryEntry(entry);\n }\n }\n }\n if (obj.children && !obj.isLane && !obj.isPhase &&\n (!isBlazor() || !(this.diagramActions & DiagramAction.UndoRedo))) {\n this.deleteGroup(obj);\n }\n if (obj.parentId) {\n this.deleteChild(obj);\n if (this.nameTable[obj.parentId] && this.nameTable[obj.parentId].shape.type === 'UmlClassifier') {\n this.updateDiagramObject(this.nameTable[obj.parentId]);\n this.updateConnectorEdges(this.nameTable[obj.parentId]);\n }\n }\n var index = void 0;\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n var currentObj = this.nameTable[obj.id];\n if (currentObj instanceof Node) {\n if (currentObj.shape.type === 'Bpmn' && this.bpmnModule) {\n this.bpmnModule.removeBpmnProcesses(currentObj, this);\n }\n if (currentObj.isLane || currentObj.isPhase || currentObj.shape.type === 'SwimLane') {\n var swimLaneNode = (currentObj.isLane || currentObj.isPhase) ?\n this.nameTable[currentObj.parentId] : this.nameTable[currentObj.id];\n var grid = swimLaneNode.wrapper.children[0];\n if (currentObj.isLane) {\n removeLane(this, currentObj, swimLaneNode);\n }\n else if (currentObj.isPhase) {\n removePhase(this, currentObj, swimLaneNode);\n }\n }\n index = this.nodes.indexOf(currentObj);\n if (isBlazor() && (obj.id !== 'helper')) {\n if (this.blazorActions & BlazorAction.GroupingInProgress) {\n this.blazorRemoveIndexCollection.splice(0, 0, index);\n this.blazorAddorRemoveCollection.splice(0, 0, obj);\n }\n else if (this.blazorAddorRemoveCollection.length > 0) {\n this.commandHandler.getBlazorOldValues();\n this.blazorRemoveIndexCollection.splice(0, 0, index);\n this.blazorAddorRemoveCollection.splice(0, 0, obj);\n this.UpdateBlazorDiagramModelCollection(undefined, undefined, undefined, true);\n }\n else if ((!this.isServerUpdate) && !(this.blazorActions & BlazorAction.GroupClipboardInProcess)) {\n this.UpdateBlazorDiagramModel(obj, 'Node', index);\n }\n }\n if (index !== -1) {\n this.crudDeleteNodes.push(this.nameTable[currentObj.id]);\n this.nodes.splice(index, 1);\n this.updateNodeEdges(currentObj);\n }\n }\n else {\n index = this.connectors.indexOf(currentObj);\n if (isBlazor()) {\n if (this.blazorActions & BlazorAction.GroupingInProgress) {\n this.blazorAddorRemoveCollection.splice(0, 0, obj);\n this.blazorRemoveIndexCollection.splice(0, 0, index);\n }\n else if (this.blazorAddorRemoveCollection.length > 0) {\n this.commandHandler.getBlazorOldValues();\n this.blazorAddorRemoveCollection.splice(0, 0, obj);\n this.blazorRemoveIndexCollection.splice(0, 0, index);\n this.UpdateBlazorDiagramModelCollection(undefined, undefined, undefined, true);\n }\n else if ((!this.isServerUpdate) && !(this.blazorActions & BlazorAction.GroupClipboardInProcess)) {\n this.UpdateBlazorDiagramModel(obj, 'Connector', index);\n }\n }\n if (index !== -1) {\n this.crudDeleteNodes.push(this.nameTable[currentObj.id]);\n this.connectors.splice(index, 1);\n }\n this.updateEdges(currentObj);\n this.spliceConnectorEdges(obj, true);\n this.spliceConnectorEdges(obj, false);\n }\n if ((!this.isServerUpdate) && !(this.blazorActions & BlazorAction.GroupClipboardInProcess)) {\n this.commandHandler.getBlazorOldValues();\n }\n if (groupAction) {\n this.historyManager.endGroupAction();\n }\n if (isSelected(this, currentObj)) {\n this.unSelect(currentObj);\n }\n if (!currentObj.isPhase) {\n this.removeObjectsFromLayer(obj);\n if (this.currentDrawingObject) {\n this.currentDrawingObject.wrapper = undefined;\n }\n delete this.nameTable[obj.id];\n if (selectedItems.length > 0 && selectedItems[0].id === currentObj.id && currentObj.parentId) {\n var parentnode = this.nameTable[currentObj.parentId];\n if (parentnode && parentnode.isLane && this.nameTable[parentnode.parentId].shape.type === 'SwimLane') {\n var swimLaneNode = this.nameTable[parentnode.parentId];\n removeLaneChildNode(this, swimLaneNode, parentnode, currentObj);\n }\n }\n this.removeElements(currentObj);\n this.updateBridging();\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n if (!(this.diagramActions & DiagramAction.Clear)) {\n this.removeFromAQuad(currentObj);\n args = {\n element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n state: 'Changed', type: 'Removal', cancel: false\n };\n if (isBlazor()) {\n args = getCollectionChangeEventArguements(args, obj, 'Changed', 'Removal');\n }\n if (obj.id !== 'helper') {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n this.resetTool();\n }\n }\n }\n }\n }\n else if (selectedItems.length > 0) {\n if (this.undoRedoModule) {\n this.historyManager.startGroupAction();\n this.blazorActions |= BlazorAction.GroupingInProgress;\n groupAction = true;\n }\n if (isBlazor() && selectedItems.length > 1) {\n this.clearSelection();\n }\n for (var i = 0; i < selectedItems.length; i++) {\n var node = selectedItems[parseInt(i.toString(), 10)];\n if (this.nameTable[selectedItems[parseInt(i.toString(), 10)].id]) {\n if ((selectedItems[parseInt(i.toString(), 10)] instanceof Connector) && this.bpmnModule &&\n this.bpmnModule.textAnnotationConnectors.indexOf(selectedItems[parseInt(i.toString(), 10)]) > -1) {\n this.remove(this.nameTable[selectedItems[parseInt(i.toString(), 10)].targetID]);\n return;\n }\n if (isBlazor()) {\n if (!this.isServerUpdate && selectedItems && selectedItems.length > 1) {\n this.isServerUpdate = true;\n }\n if (selectedItems[parseInt(i.toString(), 10)].parentId) {\n this.insertBlazorDiagramObjects(this.nameTable[selectedItems[parseInt(i.toString(), 10)].parentId]);\n }\n }\n this.remove(selectedItems[parseInt(i.toString(), 10)]);\n if (isBlazor() && selectedItems[parseInt(i.toString(), 10)].parentId) {\n this.commandHandler.getBlazorOldValues();\n this.isServerUpdate = false;\n }\n }\n }\n if (groupAction) {\n this.blazorActions &= ~BlazorAction.GroupingInProgress;\n this.isServerUpdate = true;\n this.commandHandler.getBlazorOldValues();\n this.UpdateBlazorDiagramModelCollection(undefined, undefined, undefined, true);\n this.historyManager.endGroupAction();\n this.isServerUpdate = false;\n }\n this.clearSelection();\n }\n if (!(obj && (canDelete(obj) || (this.diagramActions & DiagramAction.Clear)))) {\n if ((!(this.diagramActions & DiagramAction.UndoRedo)) && !(this.diagramActions & DiagramAction.PreventHistory) &&\n (obj instanceof Node || obj instanceof Connector)) {\n var entry = {\n type: 'ConnectionChanged', undoObject: cloneObject(obj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n if (!obj.isLane && !obj.isPhase) {\n if (!(this.diagramActions & DiagramAction.Clear) && !this.isStackChild(obj)) {\n this.addHistoryEntry(entry);\n }\n }\n }\n }\n this.tooltipObject.close();\n if (isBlazor() && selectedItems && selectedItems.length > 0) {\n var check = true;\n for (var k = 0; k < selectedItems.length; k++) {\n if (this.nameTable[selectedItems[parseInt(k.toString(), 10)].id]) {\n check = false;\n }\n }\n if (check) {\n this.isServerUpdate = false;\n }\n }\n };\n /* tslint:enable */\n Diagram.prototype.isStackChild = function (obj) {\n var isstack;\n var parent = this.nameTable[obj.parentId];\n if (obj && obj.parentId && parent.container &&\n (parent.container.type === 'Stack' &&\n this.nameTable[obj.parentId].shape.type !== 'UmlClassifier')) {\n isstack = true;\n var redoElement = {\n sourceIndex: parent.wrapper.children.indexOf(obj.wrapper), source: obj,\n target: undefined, targetIndex: undefined\n };\n var entry = {\n type: 'StackChildPositionChanged', redoObject: {\n sourceIndex: undefined, source: obj,\n target: undefined, targetIndex: undefined\n },\n undoObject: redoElement,\n category: 'Internal'\n };\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n }\n return isstack;\n };\n /** @private */\n Diagram.prototype.deleteChild = function (node, parentNode) {\n var id;\n parentNode = parentNode ? this.nameTable[parentNode.id] : this.nameTable[node.parentId];\n if (typeof node === 'string') {\n id = node;\n }\n else {\n id = node.id;\n }\n if (parentNode && parentNode.children) {\n for (var i = 0; i < parentNode.children.length; i++) {\n if (parentNode.children[parseInt(i.toString(), 10)] === id) {\n parentNode.children.splice(i, 1);\n for (var j = 0; j < parentNode.wrapper.children.length; j++) {\n if (parentNode.wrapper.children[parseInt(j.toString(), 10)].id === id) {\n parentNode.wrapper.children.splice(j, 1);\n }\n }\n // EJ2-57179 - Below lines added to remove the childs to swimlane after Redo.\n var swimlaneNode = this.getObject(parentNode.parentId);\n if (swimlaneNode && swimlaneNode.shape instanceof SwimLane) {\n for (var h = 0; h < swimlaneNode.shape.lanes.length; h++) {\n var laneId = node.parentId.split(swimlaneNode.id);\n if (swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].id === laneId[1].slice(0, -1)) {\n for (var y = 0; y < swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children.length; y++) {\n if (node.id === swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children[parseInt(y.toString(), 10)].id) {\n swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children.splice(y, 1);\n break;\n }\n }\n }\n }\n }\n }\n }\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n }\n };\n /**\n * addChild method \\\n *\n * @returns { string } addChild method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {string | NodeModel | ConnectorModel} child - provide the child value.\n * @param {number} index - provide the layoutOrientation value.\n *\n * @private\n */\n Diagram.prototype.addChild = function (node, child, index) {\n var id;\n var parentNode = this.nameTable[node.id];\n if (!parentNode.children) {\n parentNode.children = [];\n }\n if (parentNode.children) {\n if (typeof child === 'string') {\n if (this.nameTable[\"\" + child]) {\n id = child;\n }\n }\n else {\n id = child.id = child.id || randomId();\n this.add(child);\n }\n if (id && (!child.umlIndex || child.umlIndex === -1)) {\n var childNode = this.nameTable[\"\" + id];\n childNode.parentId = parentNode.id;\n if (parentNode.container && parentNode.container.type === 'Stack') {\n this.updateStackProperty(parentNode, childNode);\n }\n if (index) {\n parentNode.children.splice(index, 0, id);\n parentNode.wrapper.children.splice(index, 0, childNode.wrapper);\n }\n else {\n parentNode.children.push(id);\n parentNode.wrapper.children.push(childNode.wrapper);\n // SF-362880 - Below lines added for adding the childs to swimlane after Undo.\n var swimlane = this.getObject(node.parentId);\n if (swimlane && swimlane.shape instanceof SwimLane) {\n for (var h = 0; h < swimlane.shape.lanes.length; h++) {\n var laneId = childNode.parentId.split(node.parentId);\n if (swimlane.shape.lanes[parseInt(h.toString(), 10)].id === laneId[1].slice(0, -1)) {\n swimlane.shape.lanes[parseInt(h.toString(), 10)].children.push(childNode);\n break;\n }\n }\n }\n }\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n if (!parentNode.isLane) {\n this.nameTable[node.id].width = parentNode.wrapper.actualSize.width;\n this.nameTable[node.id].height = parentNode.wrapper.actualSize.height;\n this.nameTable[node.id].offsetX = parentNode.wrapper.offsetX;\n this.nameTable[node.id].offsetY = parentNode.wrapper.offsetY;\n }\n if (parentNode.container !== undefined) {\n childNode.offsetX = childNode.wrapper.offsetX;\n childNode.offsetY = childNode.wrapper.offsetY;\n }\n if (!parentNode.parentId ||\n (this.nameTable[parentNode.parentId] &&\n this.nameTable[parentNode.parentId].shape.type !== 'SwimLane')) {\n this.updateDiagramObject(parentNode);\n }\n }\n }\n return id;\n };\n /**\n * Clears all nodes and objects in the diagram\n *\n * @returns { void } getDirection method .\\\n\n */\n Diagram.prototype.clear = function () {\n this.clearObjects();\n };\n Diagram.prototype.clearObjects = function (collection) {\n var objects = [];\n if (!collection) {\n objects = objects.concat(this.nodes);\n objects = objects.concat(this.connectors);\n }\n else {\n objects = collection;\n }\n this.diagramActions = this.diagramActions | DiagramAction.Clear;\n if (isBlazor() && blazorTemplates['diagramsf_node_template']) {\n this.resetTemplate();\n var length_1 = blazorTemplates['diagramsf_node_template'].length;\n if (length_1 > 0) {\n blazorTemplates['diagramsf_node_template'].splice(0, length_1 - 1);\n }\n }\n for (var _i = 0, objects_1 = objects; _i < objects_1.length; _i++) {\n var obj = objects_1[_i];\n if (this.nameTable[obj.id]) {\n this.remove(obj);\n }\n }\n this.diagramActions = this.diagramActions & ~DiagramAction.Clear;\n this.spatialSearch = new SpatialSearch(this.nameTable);\n this.initHistory();\n };\n Diagram.prototype.startEditCommad = function () {\n var laneHeader;\n var node = (this.selectedItems.nodes[0]) ? this.selectedItems.nodes[0] : undefined;\n if (node && node instanceof Node) {\n if (node.isLane && node.parentId) {\n var swimlane = this.nameTable[node.parentId];\n var lanes = swimlane.shape.lanes;\n var canvasId = (node.id.slice(swimlane.id.length));\n var currentParentId = canvasId.substring(0, canvasId.length - 1);\n for (var i = 0; i < lanes.length; i++) {\n if (node.isLane && currentParentId === lanes[parseInt(i.toString(), 10)].id) {\n laneHeader = this.nameTable[lanes[parseInt(i.toString(), 10)].header.id];\n }\n }\n }\n else if (node.shape.type === 'SwimLane' && node.shape.header && node.shape.hasHeader) {\n var id = node.wrapper.children[0].rows[0].cells[0].children[0].id;\n laneHeader = this.nameTable[\"\" + id];\n }\n }\n this.startTextEdit(laneHeader);\n };\n /* tslint:disable */\n /**\n * Specified annotation to edit mode\n *\n * @returns { void } Specified annotation to edit mode .\\\n * @param {NodeModel | ConnectorModel} node - Defines node/connector that contains the annotation to be edited\n * @param {string} id - Defines annotation id to be edited in the node\n */\n Diagram.prototype.startTextEdit = function (node, id) {\n if ((!canZoomPan(this) && !canMultiSelect(this)) || canSingleSelect(this)) {\n this.textEditing = true;\n var transform = this.scroller.transform;\n var scale = canZoomTextEdit(this) ? transform.scale : 1;\n var minWidth = 90;\n var text = void 0;\n var bounds = void 0;\n var attributes = void 0;\n var x = void 0;\n var y = void 0;\n var textWrapper = void 0;\n if (!node) {\n node = (this.selectedItems.nodes[0]) ? this.selectedItems.nodes[0] : this.selectedItems.connectors[0];\n }\n if (node) {\n if (isBlazor()) {\n var selectedNode = cloneObject(node);\n if (selectedNode.annotations.length > 0) {\n this.insertValue(selectedNode, (node instanceof Node) ? true : false);\n }\n node = this.nameTable[node.id] || node;\n }\n if (node.shape && node.shape.type === 'UmlClassifier') {\n node = this.nameTable[node.children[0]];\n }\n var bpmnAnnotation = false;\n if (this.bpmnModule) {\n textWrapper = this.bpmnModule.getTextAnnotationWrapper(node, id);\n if (textWrapper) {\n node = this.nameTable[node.id.split('_textannotation_')[0]];\n }\n }\n if (!textWrapper) {\n if (node.shape.type !== 'Text' && node.annotations.length === 0) {\n if (!(node.constraints & NodeConstraints.ReadOnly)) {\n this.activeLabel.isGroup = true;\n this.startGroupAction();\n this.addLabels(node, [{ id: randomId(), content: '' }]);\n }\n }\n if (!id && ((node.shape.type !== 'Text' && node.annotations.length > 0) || (node.shape.type === 'Text'))) {\n id = (node.shape.type === 'Text') ? (node.wrapper.children[0].id).split('_')[1] : node.annotations[0].id;\n }\n if (id) {\n textWrapper = this.getWrapper(node.wrapper, id);\n }\n }\n else {\n bpmnAnnotation = true;\n }\n if (node && textWrapper && !(textWrapper instanceof DiagramHtmlElement) &&\n (!enableReadOnly(textWrapper, node) || bpmnAnnotation)) {\n var style = (textWrapper.style);\n var maxWidth = void 0;\n maxWidth = textWrapper.bounds.width < node.wrapper.bounds.width ? textWrapper.bounds.width : node.wrapper.bounds.width;\n maxWidth = minWidth > maxWidth ? minWidth : maxWidth;\n var textEditing = document.getElementById(this.element.id + '_editTextBoxDiv');\n var textArea = document.getElementById(this.element.id + '_editBox');\n text = textArea ? textArea.value : textWrapper.content;\n this.activeLabel.text = text;\n if (!textEditing && !textArea) {\n textEditing = createHtmlElement('div', {});\n textArea = createHtmlElement('textarea', {});\n this.diagramCanvas.appendChild(textEditing);\n textEditing.appendChild(textArea);\n textArea.appendChild(document.createTextNode(text));\n }\n bounds = measureHtmlText(textWrapper.style, text, undefined, undefined, maxWidth);\n if (bounds.isEmpty()) {\n if (node.shape.type !== 'Text') {\n bounds = new Size(findAnnotation(node, (textWrapper.id).split(node.id + '_')[1]).width || 50, textWrapper.style.fontSize);\n }\n else {\n bounds = new Size((node.width > 50) ? 50 : node.width, textWrapper.style.fontSize);\n }\n }\n if (node.parentId && this.nameTable[node.parentId].shape.type === 'UmlClassifier') {\n bounds.width = node.wrapper.bounds.width - 20;\n x = ((((node.wrapper.bounds.center.x + transform.tx) * transform.scale) - (bounds.width / 2) * scale) - 2.5);\n y = ((((node.wrapper.bounds.center.y + transform.ty) * transform.scale) - (bounds.height / 2) * scale) - 3);\n textWrapper.style.textAlign = 'Left';\n }\n else {\n bounds.width = Math.max(bounds.width, 50);\n x = ((((textWrapper.bounds.center.x + transform.tx) * transform.scale) - (bounds.width / 2) * scale) - 2.5);\n y = ((((textWrapper.bounds.center.y + transform.ty) * transform.scale) - (bounds.height / 2) * scale) - 3);\n }\n if (node instanceof Connector && node.type === 'Bezier') {\n var getCenterPoint = this.getMidPoint(node);\n x = ((((getCenterPoint.cx + transform.tx) * transform.scale) - (bounds.width / 2) * scale) - 2.5);\n y = ((((getCenterPoint.cy + transform.ty) * transform.scale) - (bounds.height / 2) * scale) - 3);\n }\n attributes = {\n 'id': this.element.id + '_editTextBoxDiv', 'style': 'position: absolute' + ';left:' + x + 'px;top:' +\n y + 'px;width:' + ((bounds.width + 1) * scale) + 'px;height:' + (bounds.height * scale) +\n 'px; containerName:' + node.id + ';'\n };\n setAttributeHtml(textEditing, attributes);\n attributes = {\n 'id': this.element.id + '_editBox', 'style': 'width:' + ((bounds.width + 1) * scale) +\n 'px;height:' + (bounds.height * scale) + 'px;resize: none;outline: none;overflow: hidden;' +\n ';font-family:' + style.fontFamily +\n ';font-size:' + (style.fontSize * scale) + 'px;text-align:' +\n (textWrapper.style.textAlign.toLocaleLowerCase()) + ';', 'class': 'e-diagram-text-edit'\n };\n setAttributeHtml(textArea, attributes);\n textArea.style.fontWeight = (style.bold) ? 'bold' : '';\n textArea.style.fontStyle = (style.italic) ? 'italic' : '';\n textArea.style.lineHeight = (style.fontSize * 1.2 + 'px;').toString();\n textArea.style.textDecoration = (style.textDecoration) ? style.textDecoration : '';\n this.activeLabel.parentId = node.id;\n this.activeLabel.id = id;\n textWrapper.visible = false;\n this.updateDiagramObject(node);\n this.diagramActions = this.diagramActions | DiagramAction.TextEdit;\n if (!this.isTriggerEvent) {\n EventHandler.add(textArea, 'input', this.eventHandler.inputChange, this.eventHandler);\n EventHandler.add(textArea, 'focusout', this.focusOutEdit, this);\n textArea.select();\n }\n }\n }\n }\n };\n Diagram.prototype.updateConnectorfixedUserHandles = function (connector) {\n if (connector.fixedUserHandles.length) {\n var fixedUserHandleWrapper = void 0;\n for (var _i = 0, _a = connector.fixedUserHandles; _i < _a.length; _i++) {\n var fixedUserHandle = _a[_i];\n fixedUserHandleWrapper = this.getWrapper(connector.wrapper, fixedUserHandle.id);\n connector.updateAnnotation(fixedUserHandle, connector.intermediatePoints, connector.wrapper.bounds, fixedUserHandleWrapper);\n }\n }\n connector.wrapper.measure(new Size(connector.wrapper.width, connector.wrapper.height));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n };\n /* tslint:enable */\n Diagram.prototype.updateNodeExpand = function (node, visibility) {\n for (var i = 0; i < node.outEdges.length; i++) {\n var connector = this.nameTable[node.outEdges[parseInt(i.toString(), 10)]];\n var target = this.nameTable[connector.targetID];\n connector.visible = visibility;\n if (target) {\n if (!visibility) {\n this.updateElementVisibility(connector.wrapper, connector, false);\n target.isExpanded = visibility;\n }\n this.updateNodeExpand(target, target.isExpanded);\n target.visible = visibility;\n if (!visibility) {\n this.updateElementVisibility(target.wrapper, target, false);\n }\n }\n }\n };\n Diagram.prototype.updateConnectorAnnotation = function (connector) {\n if (connector.annotations.length) {\n var annotationWrapper = void 0;\n for (var _i = 0, _a = connector.annotations; _i < _a.length; _i++) {\n var annotation = _a[_i];\n annotationWrapper = this.getWrapper(connector.wrapper, annotation.id);\n connector.updateAnnotation(annotation, connector.intermediatePoints, connector.wrapper.bounds, annotationWrapper, (this.diagramActions & DiagramAction.Interactions));\n }\n }\n connector.wrapper.measure(new Size(connector.wrapper.width, connector.wrapper.height));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n };\n Diagram.prototype.removeChildrenFromLayout = function (nodes) {\n var nodesCollection = [];\n var node;\n var parentId = 'parentId';\n var processId = 'processId';\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (!node[\"\" + parentId] && !node[\"\" + processId]) {\n nodesCollection.push(node);\n }\n }\n return nodesCollection;\n };\n /* tslint:disable */\n /**\n * Automatically updates the diagram objects based on the type of the layout\n * @returns { ILayout | boolean } Automatically updates the diagram objects based on the type of the layout .\\\n */\n Diagram.prototype.doLayout = function () {\n var update = false;\n var layout;\n var canDoOverlap = (this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree');\n var propChange = this.isProtectedOnChange;\n this.protectPropertyChange(true);\n var nodes = this.removeChildrenFromLayout(this.nodes);\n var canEnableRouting = this.layout.enableRouting && this.layout.type === 'ComplexHierarchicalTree';\n var viewPort = { x: this.scroller.viewPortWidth, y: this.scroller.viewPortHeight };\n if (this.layout.type !== 'None') {\n if (canEnableRouting || (this.layout.connectionPointOrigin === 'DifferentPoint' && this.lineDistributionModule && canDoOverlap) || this.layout.arrangement === 'Linear') {\n this.lineDistributionModule.initLineDistribution(this.layout, this);\n }\n if (this.organizationalChartModule) {\n layout = this.organizationalChartModule.updateLayout(nodes, this.nameTable, this.layout, viewPort, this.dataSourceSettings.id, this.diagramActions);\n update = true;\n if (this.layoutAnimateModule && layout.rootNode && !this.diagramActions) {\n this.updateNodeExpand(layout.rootNode, layout.rootNode.isExpanded);\n }\n // EJ2-58221 - added to render the layout properly based on parent node isExpanded property.\n else if (!this.layoutAnimateModule && layout.rootNode && !layout.rootNode.isExpanded && !this.canExpand) {\n this.updateNodeExpand(layout.rootNode, layout.rootNode.isExpanded);\n }\n }\n else if (this.mindMapChartModule) {\n if (nodes && nodes.length > 0) {\n this.mindMapChartModule.updateLayout(nodes, this.nameTable, this.layout, viewPort, this.dataSourceSettings.id, this.dataSourceSettings.root);\n }\n update = true;\n }\n else if (this.radialTreeModule) {\n this.radialTreeModule.updateLayout(nodes, this.nameTable, this.layout, viewPort);\n update = true;\n }\n else if (this.symmetricalLayoutModule) {\n this.symmetricalLayoutModule.maxIteration = this.layout.maxIteration;\n this.symmetricalLayoutModule.springLength = this.layout.springLength;\n this.symmetricalLayoutModule.springFactor = this.layout.springFactor;\n this.symmetricalLayoutModule.updateLayout(nodes, this.connectors, this.symmetricalLayoutModule, this.nameTable, this.layout, viewPort);\n update = true;\n }\n else if (this.complexHierarchicalTreeModule) {\n var nodes_1 = this.complexHierarchicalTreeModule.getLayoutNodesCollection(this.nodes);\n if (nodes_1.length > 0) {\n // eslint-disable-next-line max-len\n this.complexHierarchicalTreeModule.doLayout(nodes_1, this.nameTable, this.layout, viewPort, this.lineDistributionModule);\n }\n update = true;\n }\n if (update) {\n this.preventDiagramUpdate = true;\n var connectors = {};\n var updatedNodes = nodes;\n // BLAZ-22230 - Added condition to check if canUpdateTemplate is false means then we can update the template for blazor\n if (isBlazor() && !this.commandHandler.canUpdateTemplate) {\n this.updateTemplate();\n }\n for (var _i = 0, updatedNodes_1 = updatedNodes; _i < updatedNodes_1.length; _i++) {\n var obj = updatedNodes_1[_i];\n var node = obj;\n if (!this.preventNodesUpdate && (!this.diagramActions || !(this.diagramActions & DiagramAction.PreventIconsUpdate))) {\n this.updateIcon(node);\n this.updateDefaultLayoutIcons(node);\n }\n this.preventNodesUpdate = true;\n this.nodePropertyChange(node, {}, { offsetX: node.offsetX, offsetY: node.offsetY }, true);\n this.preventNodesUpdate = false;\n node.wrapper.measure(new Size(node.wrapper.width, node.wrapper.height));\n node.wrapper.arrange(node.wrapper.desiredSize);\n this.updateDiagramObject(node, true);\n if (node.inEdges.length > 0) {\n for (var j = 0; j < node.inEdges.length; j++) {\n var connector = this.nameTable[node.inEdges[parseInt(j.toString(), 10)]];\n connectors[connector.id] = connector;\n }\n }\n if (node.outEdges.length > 0) {\n for (var k = 0; k < node.outEdges.length; k++) {\n var connection = this.nameTable[node.outEdges[parseInt(k.toString(), 10)]];\n connectors[connection.id] = connection;\n }\n }\n }\n for (var _a = 0, _b = Object.keys(connectors); _a < _b.length; _a++) {\n var conn = _b[_a];\n if (canEnableRouting) {\n this.lineDistributionModule.resetConnectorSegments(this.nameTable[\"\" + conn]);\n }\n var connector = connectors[\"\" + conn];\n var points = this.getPoints(connector);\n if (canEnableRouting) {\n this.lineDistributionModule.resetRoutingSegments(connector, this, points);\n }\n updateConnector(connector, points);\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.commandHandler.updatePathElementOffset(connector);\n }\n connector.wrapper.measure(new Size(undefined, undefined));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n this.updateConnectorAnnotation(connector);\n this.updateConnectorfixedUserHandles(connector);\n this.updateQuad(connector);\n this.updateDiagramObject(connector, true);\n }\n if (canEnableRouting || this.layout.connectionPointOrigin === 'DifferentPoint' && this.lineDistributionModule && canDoOverlap) {\n this.lineDistributionModule.distributeLines(this.layout, this);\n }\n this.preventDiagramUpdate = false;\n this.updatePage();\n if ((!(this.diagramActions & DiagramAction.Render)) || this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n this.isRefreshed = true;\n }\n }\n if (!propChange) {\n this.protectPropertyChange(propChange);\n }\n }\n if (update) {\n this.updateDiagramElementQuad();\n }\n return ((this.blazorActions & BlazorAction.expandNode) ? layout : isBlazor() ? null : true);\n };\n /* tslint:enable */\n /**\n * Serializes the diagram control as a string\n * @returns { string } Serializes the diagram control as a string .\\\n */\n Diagram.prototype.saveDiagram = function () {\n var children = [];\n var node;\n var grid;\n var childTable;\n var child;\n var gridChild = 'childTable';\n for (var i = 0; i < this.nodes.length; i++) {\n node = this.nodes[parseInt(i.toString(), 10)];\n if (node.shape.type === 'SwimLane') {\n grid = node.wrapper.children[0];\n childTable = grid[\"\" + gridChild];\n for (var _i = 0, _a = Object.keys(childTable); _i < _a.length; _i++) {\n var key = _a[_i];\n child = childTable[\"\" + key];\n children = getChild(child, children);\n }\n for (var i_2 = 0; i_2 < children.length; i_2++) {\n if (this.nameTable[children[parseInt(i_2.toString(), 10)]]) {\n this.swimlaneChildTable[children[parseInt(i_2.toString(), 10)]] = this.nameTable[children[parseInt(i_2.toString(), 10)]].zIndex;\n }\n }\n this.swimlaneZIndexTable[node.id] = node.zIndex;\n }\n }\n return serialize(this);\n };\n /**\n * Converts the given string as a Diagram Control\n *\n * @returns { Object } Converts the given string as a Diagram Control .\\\n * @param {string} data - Defines the behavior of the diagram to be loaded\n\n */\n Diagram.prototype.loadDiagram = function (data, isEJ1Data) {\n if (isEJ1Data && this.modelProperties) {\n var ejDiagram = JSON.parse(data);\n data = this.modelProperties.getSerializedData(ejDiagram);\n }\n return deserialize(data, this);\n };\n /**\n * To get the html diagram content\n *\n * @returns { string } getDirection method .\\\n * @param {StyleSheetList} styleSheets - defines the collection of style files to be considered while exporting.\n */\n Diagram.prototype.getDiagramContent = function (styleSheets) {\n if (this.printandExportModule) {\n var data = this.printandExportModule.getDiagramContent(styleSheets);\n return data;\n }\n return '';\n };\n /**\n * To export diagram native/html image\n *\n * @returns { void } To export diagram native/html image .\\\n * @param {string} image - defines image content to be exported.\n * @param {IExportOptions} options - defines the image properties.\n */\n Diagram.prototype.exportImage = function (image, options) {\n if (this.printandExportModule) {\n this.printandExportModule.exportImages(image, options);\n }\n };\n /**\n * To print native/html nodes of diagram\n *\n * @returns { void } To print native/html nodes of diagram .\\\n * @param {string} image - defines image content.\n * @param {IExportOptions} options - defines the properties of the image\n */\n Diagram.prototype.printImage = function (image, options) {\n if (this.printandExportModule) {\n options.printOptions = true;\n this.printandExportModule.exportImages(image, options);\n }\n };\n /**\n * To limit the history entry of the diagram\n *\n * @returns { void } To limit the history entry of the diagram.\\\n * @param {number} stackLimit - defines stackLimit of the history manager.\n */\n Diagram.prototype.setStackLimit = function (stackLimit) {\n if (this.undoRedoModule && stackLimit) {\n this.historyManager.stackLimit = stackLimit;\n this.undoRedoModule.applyLimit(this.historyManager.currentEntry, stackLimit, this, true);\n }\n };\n /**\n * To clear history of the diagram\n * @returns { void } To clear history of the diagram .\\\n */\n Diagram.prototype.clearHistory = function () {\n if (this.undoRedoModule) {\n this.undoRedoModule.clearHistory(this);\n }\n };\n /**\n * To get the bound of the diagram\n * @returns { void } To get the bound of the diagram .\\\n */\n Diagram.prototype.getDiagramBounds = function () {\n if (this.printandExportModule) {\n var bounds = this.printandExportModule.getDiagramBounds('', {});\n bounds.width = bounds.width > this.scrollSettings.viewPortWidth ?\n bounds.width + (bounds.x > 0 ? bounds.x : 0) : this.scrollSettings.viewPortWidth;\n bounds.height = bounds.height > this.scrollSettings.viewPortHeight ?\n bounds.height + (bounds.y > 0 ? bounds.y : 0) : this.scrollSettings.viewPortHeight;\n bounds.x = bounds.x > 0 ? 0 : bounds.x;\n bounds.y = bounds.y > 0 ? 0 : bounds.y;\n return bounds;\n }\n return new Rect();\n };\n /**\n * To export Diagram\n *\n * @returns { void } To export Diagram .\\\n * @param {IExportOptions} options - defines the how the image to be exported.\n */\n Diagram.prototype.exportDiagram = function (options) {\n if (this.printandExportModule) {\n var data = this.printandExportModule.exportDiagram(options);\n return data;\n }\n return '';\n };\n /**\n * To print Diagram\n *\n * @returns { void } To print Diagram .\\\n * @param {IPrintOptions} optons - defines how the image to be printed.\n */\n Diagram.prototype.print = function (options) {\n if (this.printandExportModule) {\n this.printandExportModule.print(options);\n }\n };\n /**\n * Add ports at the run time \\\n *\n * @returns { void } Remove Labels at the run time .\\\n * @param { Node | ConnectorModel} obj - provide the obj value.\n * @param {ShapeAnnotationModel[] | PathAnnotationModel[]} ports - provide the ports value.\n * @blazorArgsType obj|DiagramNode\n */\n Diagram.prototype.addPorts = function (obj, ports) {\n this.protectPropertyChange(true);\n var portCollection = [];\n var isAddPortInServer = true;\n if (isBlazor() && obj !== null && (obj.ports.length > 0 && !(this.diagramActions & DiagramAction.UndoRedo))) {\n var index = Number(findObjectIndex(obj, ports[0].id, false));\n if (index !== -1) {\n isAddPortInServer = false;\n }\n }\n obj = this.nameTable[obj.id] || obj;\n var newObj;\n if (ports.length > 1) {\n this.startGroupAction();\n }\n for (var i = 0; i < ports.length; i++) {\n newObj = new PointPort(obj, 'ports', ports[parseInt(i.toString(), 10)], true);\n obj.ports.push(newObj);\n if (isBlazor() && isAddPortInServer) {\n portCollection.push(newObj);\n }\n if (obj.children) {\n var container = obj.wrapper;\n obj.initPort(this.getDescription, obj.wrapper.children[container.children.length - 1], newObj);\n }\n else {\n var canvas = obj.wrapper;\n canvas.children.push(obj.initPortWrapper(obj.ports[obj.ports.length - 1]));\n }\n if (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group)) {\n var entry = {\n type: 'PortCollectionChanged', changeType: 'Insert', undoObject: cloneObject(newObj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n }\n if (ports.length > 1) {\n this.endGroupAction();\n }\n if (isBlazor() && isAddPortInServer) {\n this.UpdateBlazorLabelOrPortObjects(portCollection, 'Port', undefined, this.nodes.indexOf(obj));\n }\n obj.wrapper.measure(new Size(obj.width, obj.height));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n this.updateDiagramObject(obj);\n this.protectPropertyChange(false);\n };\n /**\n * Add constraints at run time \\\n *\n * @returns { void }Add constraints at run time .\\\n * @param {number} constraintsType - provide the source value.\n * @param {number} constraintsValue - provide the target value.\n *\n */\n Diagram.prototype.addConstraints = function (constraintsType, constraintsValue) {\n return constraintsType | constraintsValue;\n };\n /**\n * Remove constraints at run time \\\n *\n * @returns { void }Remove constraints at run time .\\\n * @param {number} constraintsType - provide the source value.\n * @param {number} constraintsValue - provide the target value.\n *\n */\n Diagram.prototype.removeConstraints = function (constraintsType, constraintsValue) {\n return constraintsType & ~constraintsValue;\n };\n /**\n * Add labels in node at the run time in the blazor platform \\\n *\n * @returns { void } Add labels in node at the run time in the blazor platform .\\\n * @param {NodeModel} obj - provide the obj value.\n * @param {ShapeAnnotationModel[]} labels - provide the labels value.\n *\n */\n Diagram.prototype.addNodeLabels = function (obj, labels) {\n this.addLabels(obj, labels);\n };\n /**\n * Add labels in connector at the run time in the blazor platform\\\n *\n * @returns { void } Add labels in connector at the run time in the blazor platform .\\\n * @param {ConnectorModel} obj - provide the obj value.\n * @param {PathAnnotationModel[]} labels - provide the labels value.\n *\n */\n Diagram.prototype.addConnectorLabels = function (obj, labels) {\n this.addLabels(obj, labels);\n };\n /**\n * Add Labels at the run time \\\n *\n * @returns { void } Add Labels at the run time .\\\n * @param {NodeModel | ConnectorModel} obj - provide the obj value.\n * @param {ShapeAnnotationModel[] | PathAnnotation[] | PathAnnotationModel[]} labels - provide the labels value.\n *\n */\n Diagram.prototype.addLabels = function (obj, labels) {\n this.protectPropertyChange(true);\n var isAddLabelInServer = true;\n var annotationCollection = [];\n if (isBlazor() && obj != null && obj.annotations.length > 0 && !(this.diagramActions & DiagramAction.UndoRedo)) {\n var index = Number(findObjectIndex(obj, labels[0].id, true));\n if (index !== -1) {\n isAddLabelInServer = false;\n }\n }\n obj = this.nameTable[obj.id] || obj;\n var canvas = obj.wrapper;\n var newObj;\n if (labels.length > 1) {\n this.startGroupAction();\n }\n for (var i = 0; i < labels.length; i++) {\n if (obj instanceof Node) {\n newObj = new ShapeAnnotation(obj, 'annotations', labels[parseInt(i.toString(), 10)], true);\n obj.annotations.push(newObj);\n if (isBlazor() && isAddLabelInServer) {\n annotationCollection.push(newObj);\n }\n if (obj.children) {\n var node = obj;\n for (var i_3 = 0; i_3 < node.wrapper.children.length; i_3++) {\n if (node.wrapper.children[parseInt(i_3.toString(), 10)].id === node.id + 'group_container') {\n var container = node.wrapper.children[parseInt(i_3.toString(), 10)];\n container.children.push(obj.initAnnotationWrapper(obj.annotations[obj.annotations.length - 1], this.element.id));\n }\n }\n }\n else {\n canvas.children.push(obj.initAnnotationWrapper(obj.annotations[obj.annotations.length - 1], this.element.id));\n }\n }\n else if (obj instanceof Connector) {\n newObj = new PathAnnotation(obj, 'annotations', labels[parseInt(i.toString(), 10)], true);\n obj.annotations.push(newObj);\n if (isBlazor() && isAddLabelInServer) {\n annotationCollection.push(newObj);\n }\n var segment = canvas.children[0];\n var bounds = new Rect(segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height);\n canvas.children.push(obj.getAnnotationElement(obj.annotations[obj.annotations.length - 1], obj.intermediatePoints, bounds, this.getDescription, this.element.id));\n }\n if (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group)) {\n var entry = {\n type: 'LabelCollectionChanged', changeType: 'Insert', undoObject: cloneObject(newObj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n }\n if (labels.length > 1) {\n this.endGroupAction();\n }\n if (isBlazor() && isAddLabelInServer) {\n this.UpdateBlazorLabelOrPortObjects(annotationCollection, (obj instanceof Node) ? 'NodeAnnotation' : 'ConnectorAnnotation', undefined, (obj instanceof Node) ? this.nodes.indexOf(obj) : this.connectors.indexOf(obj));\n }\n obj.wrapper.measure(new Size(canvas.width, canvas.height));\n obj.wrapper.arrange(canvas.desiredSize);\n this.updateDiagramObject(obj);\n this.protectPropertyChange(false);\n };\n /**\n * Add dynamic Lanes to swimLane at runtime \\\n *\n * @returns { void } Add dynamic Lanes to swimLane at runtime .\\\n * @param {NodeModel} node - provide the obj value.\n * @param {LaneModel[]} lane - provide the labels value.\n * @param {number} index - provide the labels value.\n *\n */\n Diagram.prototype.addLanes = function (node, lane, index) {\n node = this.nameTable[node.id] || node;\n for (var i = 0; i < lane.length; i++) {\n addLane(this, node, lane[parseInt(i.toString(), 10)], index);\n if (index !== undefined) {\n index += 1;\n }\n }\n this.updateDiagramElementQuad();\n };\n /**\n * Add a phase to a swimLane at runtime \\\n *\n * @returns { void } Add a phase to a swimLane at runtime .\\\n * @param {NodeModel} node - provide the obj value.\n * @param {PhaseModel[]} phases - provide the labels value.\n *\n */\n Diagram.prototype.addPhases = function (node, phases) {\n node = this.nameTable[node.id] || node;\n for (var i = 0; i < phases.length; i++) {\n addPhase(this, node, phases[parseInt(i.toString(), 10)]);\n }\n this.updateDiagramElementQuad();\n };\n /**\n *Remove dynamic Lanes to swimLane at runtime \\\n *\n * @returns { void } Remove dynamic Lanes to swimLane at runtime .\\\n * @param {NodeModel} node - provide the node value.\n * @param {LaneModel} lane - provide the lane value.\n *\n */\n Diagram.prototype.removeLane = function (node, lane) {\n removeLane(this, undefined, node, lane);\n this.updateDiagramElementQuad();\n };\n /**\n *Remove a phase to a swimLane at runtime \\\n *\n * @returns { void } Remove a phase to a swimLane at runtime .\\\n * @param {NodeModel} node - provide the node value.\n * @param {PhaseModel} phase - provide the phase value.\n *\n */\n Diagram.prototype.removePhase = function (node, phase) {\n removePhase(this, undefined, node, phase);\n this.updateDiagramElementQuad();\n };\n Diagram.prototype.removelabelExtension = function (obj, labels, j, wrapper) {\n for (var i = 0; i < wrapper.children.length; i++) {\n var canvas = wrapper.children[parseInt(i.toString(), 10)];\n if ((canvas instanceof TextElement) || (canvas instanceof DiagramHtmlElement)) {\n if (canvas.id.match('_' + labels[parseInt(j.toString(), 10)].id + '$')) {\n for (var k = 0; k < obj.annotations.length; k++) {\n if (canvas.id.match('_' + obj.annotations[parseInt(k.toString(), 10)].id + '$')) {\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'LabelCollectionChanged', changeType: 'Remove', undoObject: cloneObject(obj.annotations[parseInt(k.toString(), 10)]),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n obj.annotations.splice(k, 1);\n }\n }\n wrapper.children.splice(i, 1);\n if (this.mode === 'SVG') {\n var element = getDiagramElement(canvas.id, this.element.id);\n if (element) {\n var element_1 = getDiagramElement(canvas.id, this.element.id);\n element_1.parentNode.removeChild(element_1);\n }\n var textElement = getDiagramElement(canvas.id + '_text', this.element.id);\n if (textElement) {\n element = getDiagramElement(canvas.id + '_text', this.element.id);\n element.parentNode.removeChild(element);\n }\n var htmlElement = getDiagramElement(canvas.id + '_html_element', this.element.id);\n if (htmlElement) {\n htmlElement.parentNode.removeChild(htmlElement);\n }\n }\n else {\n this.refreshCanvasLayers();\n }\n }\n }\n }\n };\n /**\n * Remove Labels at the run time \\\n *\n * @returns { string } Remove Labels at the run time .\\\n * @param { Node | ConnectorModel} obj - provide the obj value.\n * @param {ShapeAnnotationModel[] | PathAnnotationModel[]} labels - provide the labels value.\n *\n */\n Diagram.prototype.removeLabels = function (obj, labels) {\n var isAddLabelInServer = true;\n if (isBlazor() && obj !== null && !(this.diagramActions & DiagramAction.UndoRedo)) {\n var index = (obj.annotations.length > 0) ? Number(findObjectIndex(obj, (labels[0]).id, true)) : -1;\n if (index === -1) {\n isAddLabelInServer = false;\n }\n }\n obj = this.nameTable[obj.id] || obj;\n if (isBlazor() && isAddLabelInServer) {\n var annotationCollection = [];\n var removalIndexCollection = [];\n for (var j = 0; j < labels.length; j++) {\n var index = Number(findObjectIndex(obj, labels[parseInt(j.toString(), 10)].id, true));\n removalIndexCollection.push(index);\n annotationCollection.push(labels[parseInt(j.toString(), 10)]);\n }\n this.UpdateBlazorLabelOrPortObjects(annotationCollection, (obj instanceof Node) ? 'NodeAnnotation' : 'ConnectorAnnotation', removalIndexCollection, (obj instanceof Node) ? this.nodes.indexOf(obj) : this.connectors.indexOf(obj));\n }\n if (labels.length > 1) {\n this.startGroupAction();\n }\n for (var j = labels.length - 1; j >= 0; j--) {\n if (obj.children && obj.children.length > 0) {\n for (var k = 0; k < obj.wrapper.children.length; k++) {\n this.removelabelExtension(obj, labels, j, obj.wrapper.children[parseInt(k.toString(), 10)]);\n }\n }\n else {\n this.removelabelExtension(obj, labels, j, obj.wrapper);\n }\n }\n if (labels.length > 1) {\n this.endGroupAction();\n }\n };\n Diagram.prototype.removePortsExtenion = function (obj, ports, j, wrapper) {\n for (var i = 0; i < wrapper.children.length; i++) {\n var canvas = wrapper.children[parseInt(i.toString(), 10)];\n if (canvas instanceof PathElement) {\n if (canvas.id.match('_' + ports[parseInt(j.toString(), 10)].id + '$')) {\n for (var k = 0; k < obj.ports.length; k++) {\n if (canvas.id.match('_' + obj.ports[parseInt(k.toString(), 10)].id + '$')) {\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'PortCollectionChanged', changeType: 'Remove', undoObject: cloneObject(obj.ports[parseInt(k.toString(), 10)]),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n obj.ports.splice(k, 1);\n }\n }\n wrapper.children.splice(i, 1);\n if (this.mode === 'SVG') {\n var element = getDiagramElement(canvas.id, this.element.id);\n element.parentNode.removeChild(element);\n }\n else {\n this.refreshCanvasLayers();\n }\n }\n }\n }\n };\n /**\n * Remove Ports at the run time \\\n *\n * @returns { void } checkSourcePointInTarget method .\\\n * @param {Node} obj - provide the Connector value.\n * @param {PointPortModel[]} ports - provide the Connector value.\n *\n */\n Diagram.prototype.removePorts = function (obj, ports) {\n var isAddPortInServer = true;\n if (isBlazor() && obj !== null && !(this.diagramActions & DiagramAction.UndoRedo)) {\n var index = (obj.ports.length > 0) ? Number(findObjectIndex(obj, ports[0].id, false)) : -1;\n if (index === -1) {\n isAddPortInServer = false;\n }\n }\n obj = this.nameTable[obj.id] || obj;\n if (isBlazor() && isAddPortInServer) {\n var removalIndexCollection = [];\n var portCollection = [];\n for (var j = ports.length - 1; j >= 0; j--) {\n var index = Number(findObjectIndex(obj, ports[parseInt(j.toString(), 10)].id, false));\n removalIndexCollection.push(index);\n portCollection.push(ports[parseInt(j.toString(), 10)]);\n }\n this.UpdateBlazorLabelOrPortObjects(portCollection, 'Port', removalIndexCollection, this.nodes.indexOf(obj));\n }\n if (ports.length > 1) {\n this.startGroupAction();\n }\n for (var j = ports.length - 1; j >= 0; j--) {\n if (obj.children && obj.children.length > 0) {\n for (var k = 0; k < obj.wrapper.children.length; k++) {\n //EJ2-66928 Bug- added for ungroup Issue to only remove the grouping ports and not to remove ports of the children nodes\n var wrapper = obj.wrapper.children[parseInt(k.toString(), 10)];\n if ((wrapper.id).match(obj.wrapper.id)) {\n this.removePortsExtenion(obj, ports, j, obj.wrapper.children[parseInt(k.toString(), 10)]);\n }\n }\n }\n else {\n this.removePortsExtenion(obj, ports, j, obj.wrapper);\n }\n }\n if (ports.length > 1) {\n this.endGroupAction();\n }\n };\n //public methods - end region\n /**\n * getSizeValue method \\\n *\n * @returns { string } getSizeValue method .\\\n * @param {string | number} real - provide the real value.\n * @param {string | number} rulerSize - provide the rulerSize value.\n *\n * @private\n */\n Diagram.prototype.getSizeValue = function (real, rulerSize) {\n var value;\n if (real.toString().indexOf('px') > 0) {\n value = real.toString();\n }\n else if (real.toString().indexOf('%') > 0) {\n value = rulerSize !== undefined ? '100%' : real.toString();\n }\n else {\n value = real.toString() + 'px';\n }\n if (rulerSize) {\n var position = getRulerSize(this);\n value = 'calc(' + value + ' - ' + rulerSize + 'px)';\n }\n return value;\n };\n Diagram.prototype.renderRulers = function () {\n if (this.rulerSettings.showRulers) {\n renderOverlapElement(this);\n renderRuler(this, true);\n renderRuler(this, false);\n }\n else {\n removeRulerElements(this);\n }\n };\n Diagram.prototype.intOffPageBackground = function () {\n var position = new Size();\n position = getRulerSize(this);\n var element = document.getElementById(this.element.id + 'content');\n var width = this.getSizeValue(this.width, position.width);\n var height = this.getSizeValue(this.height, position.height);\n var style = this.rulerSettings.showRulers ?\n 'width:' + width + '; height:' + height + ';' +\n 'top:' + position.height + 'px;left:' + position.width + 'px;' +\n 'overflow: scroll;position:absolute;overflow:auto;' :\n 'width:' + width + '; height:' + height + ';position:absolute;' +\n ' left:0px; top:0px;overflow: auto;';\n var attr = {\n 'id': this.element.id + 'content',\n 'tabindex': '0',\n 'style': style\n };\n if (!element) {\n this.diagramCanvas = createHtmlElement('div', attr);\n this.element.appendChild(this.diagramCanvas);\n }\n else {\n this.diagramCanvas = element;\n applyStyleAgainstCsp(this.diagramCanvas, style);\n }\n this.diagramCanvas.style.background = this.backgroundColor;\n };\n Diagram.prototype.initDiagram = function () {\n this.intOffPageBackground();\n setAttributeHtml(this.element, {\n style: 'width:' + this.getSizeValue(this.width) + '; height:'\n + this.getSizeValue(this.height) + ';position:relative;overflow:hidden;'\n });\n };\n Diagram.prototype.renderHiddenUserHandleTemplateLayer = function (bounds) {\n //let element: HTMLElement;\n var attributes = {\n 'class': this.element.id + '_hiddenUserHandleTemplate',\n 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;' + 'visibility:hidden ; overflow: hidden;'\n };\n var element = createHtmlElement('div', attributes);\n this.element.appendChild(element);\n };\n Diagram.prototype.renderBackgroundLayer = function (bounds, commonStyle) {\n var bgLayer = this.createSvg(this.element.id + '_backgroundLayer_svg', bounds.width, bounds.height);\n applyStyleAgainstCsp(bgLayer, commonStyle);\n var backgroundImage = createSvgElement('g', {\n 'id': this.element.id + '_backgroundImageLayer',\n 'class': 'e-background-image-layer'\n });\n bgLayer.appendChild(backgroundImage);\n var attr = { 'id': this.element.id + '_backgroundLayer', 'class': 'e-background-layer' };\n var background = createSvgElement('g', attr);\n bgLayer.appendChild(background);\n this.diagramCanvas.appendChild(bgLayer);\n };\n Diagram.prototype.renderGridLayer = function (bounds, commonStyle) {\n var svgGridSvg = this.createSvg(this.element.id + '_gridline_svg', bounds.width, bounds.height);\n svgGridSvg.setAttribute('class', 'e-grid-layer');\n var svgGrid = createSvgElement('g', { 'id': this.element.id + '_gridline' });\n var rect = createSvgElement('rect', {\n 'id': this.element.id + '_grid_rect', 'x': '0', 'y': '0', 'width': '100%', 'height': '100%'\n });\n if (checkBrowserInfo()) {\n //EJ2-832888-To remove the black grid lines appearing in the safari browser.\n var url = new URL(window.location.href);\n // Check if the URL contains a query string \n if (url.search !== '') {\n rect.setAttribute('fill', 'url(#' + this.element.id + '_pattern)');\n }\n else {\n rect.setAttribute('fill', 'url(' + location.protocol + '//' + location.host + location.pathname +\n '#' + this.element.id + '_pattern)');\n }\n }\n else {\n rect.setAttribute('fill', 'url(#' + this.element.id + '_pattern)');\n }\n svgGrid.appendChild(rect);\n svgGridSvg.appendChild(svgGrid);\n this.diagramCanvas.appendChild(svgGridSvg);\n setAttributeSvg(svgGridSvg, { 'style': commonStyle });\n };\n Diagram.prototype.renderDiagramLayer = function (bounds, commonStyle) {\n var attributes = {\n 'id': this.element.id + '_diagramLayer_div',\n 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;' + commonStyle\n };\n this.diagramLayerDiv = createHtmlElement('div', attributes);\n if (this.mode === 'SVG') {\n var diagramSvg = this.createSvg(this.element.id + '_diagramLayer_svg', bounds.width, bounds.height);\n diagramSvg.style['pointer-events'] = 'none';\n diagramSvg.setAttribute('class', 'e-diagram-layer');\n var diagramLayer = createSvgElement('g', { 'id': this.element.id + '_diagramLayer' });\n var transformationLayer = createSvgElement('g', {});\n this.diagramLayer = diagramLayer;\n diagramSvg.style['pointer-events'] = 'all';\n transformationLayer.appendChild(diagramLayer);\n diagramSvg.appendChild(transformationLayer);\n this.diagramLayerDiv.appendChild(diagramSvg);\n }\n else {\n this.diagramLayer = CanvasRenderer.createCanvas(this.element.id + '_diagram', bounds.width, bounds.height);\n applyStyleAgainstCsp(this.diagramLayer, 'position:absolute;left:0px;top:0px;');\n this.diagramLayerDiv.appendChild(this.diagramLayer);\n }\n this.diagramCanvas.appendChild(this.diagramLayerDiv);\n };\n Diagram.prototype.initLayers = function () {\n var commonStyle = 'position:absolute;top:0px;left:0px;overflow:hidden;pointer-events:none;';\n var container = document.getElementById(this.element.id);\n var bounds = container.getBoundingClientRect();\n var scrollerSize = getScrollerWidth();\n this.scroller.scrollerWidth = scrollerSize;\n this.scroller.setViewPortSize(bounds.width, bounds.height);\n this.renderRulers();\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement] = null;\n var measureElements = document.getElementById('measureElement');\n measureElements.remove();\n }\n createMeasureElements();\n // this.renderBackgroundImageLayer(bounds, commonStyle);\n this.renderBackgroundLayer(bounds, commonStyle);\n this.renderGridLayer(bounds, commonStyle);\n this.renderDiagramLayer(bounds, commonStyle);\n this.renderHTMLLayer(bounds, commonStyle);\n this.renderPortsExpandLayer(bounds, commonStyle);\n this.renderNativeLayer(bounds, commonStyle);\n this.renderAdornerLayer(bounds, commonStyle);\n this.renderHiddenUserHandleTemplateLayer(bounds);\n };\n Diagram.prototype.renderAdornerLayer = function (bounds, commonStyle) {\n var divElement = createHtmlElement('div', {\n 'id': this.element.id + '_diagramAdornerLayer',\n 'style': 'width:' + bounds.width + 'px;height:' + bounds.height + 'px;' + commonStyle\n });\n var element = createHtmlElement('div', {\n 'id': this.element.id + '_diagramUserHandleLayer',\n 'style': 'width:' + bounds.width + 'px;height:' + bounds.height + 'px;' + commonStyle\n });\n element.setAttribute('class', 'e-userHandle-layer');\n divElement.appendChild(element);\n var svgAdornerSvg = this.createSvg(this.element.id + '_diagramAdorner_svg', bounds.width, bounds.height);\n svgAdornerSvg.setAttribute('class', 'e-adorner-layer');\n svgAdornerSvg.style['pointer-events'] = 'none';\n this.adornerLayer = createSvgElement('g', { 'id': this.element.id + '_diagramAdorner' });\n this.adornerLayer.style[' pointer-events'] = 'all';\n svgAdornerSvg.appendChild(this.adornerLayer);\n divElement.appendChild(svgAdornerSvg);\n this.diagramCanvas.appendChild(divElement);\n var svgSelector = createSvgElement('g', { 'id': this.element.id + '_SelectorElement' });\n this.adornerLayer.appendChild(svgSelector);\n setAttributeSvg(svgAdornerSvg, { style: 'pointer-events:none;' });\n };\n Diagram.prototype.renderPortsExpandLayer = function (bounds, commonStyle) {\n var svgPortsSvg = this.createSvg(this.element.id + '_diagramPorts_svg', bounds.width, bounds.height);\n svgPortsSvg.setAttribute('class', 'e-ports-expand-layer');\n var svgPortsLayer = createSvgElement('g', {\n 'id': this.element.id + '_diagramPorts',\n 'class': 'e-ports-layer',\n 'style': 'pointer-events: all;'\n });\n svgPortsSvg.appendChild(svgPortsLayer);\n var svgExpandLayer = createSvgElement('g', {\n 'id': this.element.id + '_diagramExpander',\n 'class': 'e-expand-layer',\n 'style': 'pointer-events: all;'\n });\n svgPortsSvg.appendChild(svgExpandLayer);\n this.diagramCanvas.appendChild(svgPortsSvg);\n setAttributeSvg(svgPortsSvg, { 'style': commonStyle });\n };\n Diagram.prototype.renderHTMLLayer = function (bounds, commonStyle) {\n this.htmlLayer = createHtmlElement('div', {\n 'id': this.element.id + '_htmlLayer',\n 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;position:absolute;top:0px;' +\n 'left:0px;overflow:hidden;pointer-events:none;',\n 'class': 'e-html-layer'\n });\n var htmlLayerDiv = createHtmlElement('div', {\n 'id': this.element.id + '_htmlLayer_div',\n 'style': 'position:absolute;top:0px;left:0px;pointer-events:all;'\n });\n this.htmlLayer.appendChild(htmlLayerDiv);\n this.diagramCanvas.appendChild(this.htmlLayer);\n };\n Diagram.prototype.renderNativeLayer = function (bounds, commonStyle) {\n var nativeLayerSvg = this.createSvg(this.element.id + '_nativeLayer_svg', bounds.width, bounds.height);\n var nativeLayer = createSvgElement('g', { 'id': this.element.id + '_nativeLayer', 'style': 'pointer-events:all;' });\n nativeLayerSvg.appendChild(nativeLayer);\n this.diagramLayerDiv.appendChild(nativeLayerSvg);\n setAttributeSvg(nativeLayerSvg, { 'class': 'e-native-layer', 'style': commonStyle });\n };\n /**\n * createSvg method \\\n *\n * @returns { void } createSvg method .\\\n * @param {string} id - provide the source value.\n * @param {string | number} width - provide the source value.\n * @param {string | number} height - provide the source value.\n *\n * @private\n */\n Diagram.prototype.createSvg = function (id, width, height) {\n var svgObj = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n setAttributeSvg(svgObj, { 'id': id, 'width': width, 'height': height });\n return svgObj;\n };\n Diagram.prototype.updateBazorShape = function () {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = this.nodes[parseInt(i.toString(), 10)];\n switch (node.shape.type) {\n case 'Bpmn':\n node.shape.bpmnShape =\n node.shape.shape ? node.shape.shape\n : node.shape.bpmnShape;\n break;\n case 'UmlActivity':\n node.shape.umlActivityShape =\n node.shape.shape ? node.shape.shape\n : node.shape.umlActivityShape;\n break;\n case 'Flow':\n node.shape.flowShape =\n node.shape.shape ? node.shape.shape\n : node.shape.flowShape;\n break;\n case 'Basic':\n node.shape.basicShape =\n node.shape.shape ? node.shape.shape\n : node.shape.basicShape;\n break;\n case 'Text':\n node.shape.textContent =\n node.shape.content ? node.shape.content\n : node.shape.textContent;\n break;\n }\n }\n };\n Diagram.prototype.initObjects = function (isLoad) {\n this.updateBazorShape();\n if (!this.isLoading) {\n this.initData();\n }\n this.initLayerObjects();\n this.updateBridging(isLoad);\n };\n /**\n * initLayerObjects method \\\n *\n * @returns { void } initLayerObjects method .\\\n *\n * @private\n */\n Diagram.prototype.initLayerObjects = function () {\n var hasLayers = this.layers.length > 1; //const set: boolean = false;\n var connectors = [];\n var blazor = 'Blazor';\n var canCloneObject = window && window[\"\" + blazor] && !this.dataSourceSettings.dataSource;\n var tempTabel = {};\n var bpmnTable = {};\n var tempNode = [];\n var groups = [];\n var i = 0;\n var previousNodeObject = [];\n var previousConnectorObject = [];\n var updateNodeObject = [];\n var updateConnectorObject = [];\n var changeNodes = [];\n var changeConnectors = [];\n if (isBlazor() && canCloneObject) {\n previousNodeObject = this.previousNodeCollection;\n previousConnectorObject = this.previousConnectorCollection;\n }\n for (var _i = 0, _a = this.nodes; _i < _a.length; _i++) {\n var obj = _a[_i];\n obj.id = obj.id || randomId();\n this.addToLayer(obj, hasLayers);\n tempTabel[obj.id] = obj;\n }\n for (var _b = 0, _c = this.connectors; _b < _c.length; _b++) {\n var obj = _c[_b];\n obj.id = obj.id || randomId();\n this.addToLayer(obj, hasLayers);\n tempTabel[obj.id] = obj;\n }\n for (var _d = 0, _e = this.layers; _d < _e.length; _d++) {\n var layer = _e[_d];\n for (var _f = 0, _g = layer.objects; _f < _g.length; _f++) {\n var obj = _g[_f];\n if (tempTabel[\"\" + obj]) {\n if (!(tempTabel[\"\" + obj] instanceof Connector)) {\n if (tempTabel[\"\" + obj].children) {\n groups.push(obj);\n }\n else if ((tempTabel[\"\" + obj].shape instanceof BpmnShape) &&\n tempTabel[\"\" + obj].shape.activity.subProcess.processes &&\n tempTabel[\"\" + obj].shape.activity.subProcess.processes.length > 0) {\n bpmnTable[tempTabel[\"\" + obj].id] = obj;\n }\n else {\n this.initNodes(tempTabel[\"\" + obj], layer);\n }\n }\n else {\n var connector = tempTabel[\"\" + obj];\n if (connector.sourceID && connector.targetID) {\n var sourceNode = tempTabel[connector.sourceID];\n var targetNode = tempTabel[connector.targetID];\n var flag = true;\n if (this.isLoading && ((sourceNode && sourceNode.children && sourceNode.children.length > 0) ||\n (targetNode && targetNode.children && targetNode.children.length > 0))) {\n flag = false;\n }\n if ((sourceNode && sourceNode.wrapper && targetNode && targetNode.wrapper) && flag) {\n this.initConnectors(tempTabel[\"\" + obj], layer);\n }\n else {\n connectors.push(tempTabel[\"\" + obj]);\n }\n }\n else {\n this.initConnectors(tempTabel[\"\" + obj], layer);\n }\n }\n }\n }\n if (this.bpmnModule) {\n for (var _h = 0, _j = this.bpmnModule.textAnnotationConnectors; _h < _j.length; _h++) {\n var obj = _j[_h];\n this.initConnectors(obj, layer, false);\n }\n }\n }\n for (var _k = 0, _l = Object.keys(bpmnTable); _k < _l.length; _k++) {\n var obj = _l[_k];\n this.initObject(tempTabel[\"\" + obj]);\n this.bpmnModule.updateDocks(tempTabel[\"\" + obj], this);\n }\n var alignedGroups = this.alignGroup(groups, tempTabel);\n for (var _m = 0, alignedGroups_1 = alignedGroups; _m < alignedGroups_1.length; _m++) {\n var obj = alignedGroups_1[_m];\n var layer = this.commandHandler.getObjectLayer(obj);\n this.initNodes(tempTabel[\"\" + obj], layer);\n }\n for (var _o = 0, connectors_1 = connectors; _o < connectors_1.length; _o++) {\n var connector = connectors_1[_o];\n var layer = this.commandHandler.getObjectLayer(connector.id);\n this.initConnectors(connector, layer);\n }\n if (isBlazor() && canCloneObject) {\n for (var _p = 0, _q = this.nodes; _p < _q.length; _p++) {\n var obj = _q[_p];\n updateNodeObject.push(cloneObject(obj, undefined, undefined, true));\n }\n for (var _r = 0, _s = this.connectors; _r < _s.length; _r++) {\n var obj = _s[_r];\n updateConnectorObject.push(cloneObject(obj, undefined, undefined, true));\n }\n this.commandHandler.getObjectChanges(previousNodeObject, updateNodeObject, changeNodes);\n this.commandHandler.getObjectChanges(previousConnectorObject, updateConnectorObject, changeConnectors);\n if (!(this.blazorActions & BlazorAction.ClearObject)) {\n var blazorInterop = 'sfBlazor';\n var diagramObject = { nodes: changeNodes, connectors: changeConnectors };\n var obj = {\n 'methodName': 'UpdateBlazorProperties',\n 'diagramobj': diagramObject\n };\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this);\n }\n }\n };\n Diagram.prototype.alignGroup = function (parents, tempTabel) {\n var newList = [];\n var parentist = [];\n var child;\n var childNode;\n var i;\n var j;\n for (i = 0; i < parents.length; i++) {\n child = parents[parseInt(i.toString(), 10)];\n childNode = tempTabel[\"\" + child];\n var node = void 0;\n if (childNode && childNode.children.length) {\n for (j = 0; j < childNode.children.length; j++) {\n node = childNode.children[parseInt(j.toString(), 10)];\n if (parents.indexOf(node) > -1 && (newList.indexOf(node) === -1) &&\n (parentist.indexOf(node) === -1)) {\n newList.splice(0, 0, node);\n }\n }\n }\n if (newList.indexOf(child) === -1) {\n parentist.push(child);\n }\n }\n newList = newList.concat(parentist);\n return newList;\n };\n Diagram.prototype.addToLayer = function (obj, hasLayers) {\n var layer;\n var isSourceId = false;\n var isTargetId = false;\n if (hasLayers) {\n layer = this.commandHandler.getObjectLayer(obj.id);\n }\n if (!hasLayers || !layer) {\n if (this.activeLayer.objects.indexOf(obj.id) === -1) {\n this.activeLayer.objects.push(obj.id);\n }\n }\n if ((obj instanceof Node || obj instanceof Connector) &&\n (obj.shape.type !== 'SwimLane' || (obj.children && obj.children.length > 0))) {\n if (obj.parentId) {\n var zIndex = this.swimlaneZIndexTable[obj.parentId];\n //EJ2-69247 - Unable to select node in swimlane after save and load\n var childzIndex = this.swimlaneChildTable[obj.id];\n if ((zIndex && zIndex !== -1) || ((childzIndex && childzIndex !== -1))) {\n obj.zIndex = this.swimlaneChildTable[obj.id];\n }\n }\n if (obj instanceof Connector && (obj.sourceID && obj.targetID)) {\n //EJ2-69577 - We have removed findNodeInLane method to improve the performance.\n if (this.activeLayer.objects.indexOf(obj.sourceID) !== -1 &&\n this.activeLayer.objects.indexOf(obj.targetID) !== -1) {\n this.setZIndex(layer || this.activeLayer, obj);\n }\n }\n else {\n this.setZIndex(layer || this.activeLayer, obj);\n }\n }\n };\n Diagram.prototype.updateLayer = function (newProp) {\n for (var _i = 0, _a = Object.keys(newProp.layers); _i < _a.length; _i++) {\n var key = _a[_i];\n var layerObject = this.layers[\"\" + key].objects;\n for (var _b = 0, layerObject_1 = layerObject; _b < layerObject_1.length; _b++) {\n var obj = layerObject_1[_b];\n var node = this.nameTable[\"\" + obj];\n if (newProp.layers[\"\" + key].visible !== undefined) {\n this.updateElementVisibility(node.wrapper, node, newProp.layers[\"\" + key].visible);\n }\n else if (newProp.layers[\"\" + key].lock === true) {\n this.unSelect(node);\n }\n }\n if (newProp.layers[\"\" + key].lock !== undefined) {\n this.layers[\"\" + key].lock = newProp.layers[\"\" + key].lock;\n }\n }\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.updateScrollSettings = function (newProp) {\n var hPan = (-this.scroller.horizontalOffset + newProp.scrollSettings.horizontalOffset || 0);\n var vPan = (-this.scroller.verticalOffset + newProp.scrollSettings.verticalOffset || 0);\n var oldValue = {\n VerticalOffset: this.scrollSettings.verticalOffset, HorizontalOffset: this.scrollSettings.horizontalOffset,\n ViewportHeight: this.scrollSettings.viewPortHeight, ViewportWidth: this.scrollSettings.viewPortWidth,\n CurrentZoom: this.scroller.currentZoom\n };\n if (hPan !== 0 || vPan !== 0) {\n this.pan(hPan, vPan);\n }\n var newValue = {\n VerticalOffset: this.scrollSettings.verticalOffset, HorizontalOffset: this.scrollSettings.horizontalOffset,\n ViewportHeight: this.scrollSettings.viewPortHeight, ViewportWidth: this.scrollSettings.viewPortWidth,\n CurrentZoom: this.scroller.currentZoom\n };\n var panStatus = 'Start';\n if (this.realActions & RealAction.PanInProgress) {\n panStatus = 'Progress';\n }\n var arg = {\n oldValue: oldValue,\n newValue: newValue, source: this,\n panState: panStatus\n };\n if (isBlazor() && this.scrollChange) {\n arg = {\n oldValue: oldValue,\n newValue: newValue,\n sourceId: this.element.id,\n panState: panStatus\n };\n }\n this.triggerEvent(DiagramEvent.scrollChange, arg);\n this.commandHandler.updatePanState(true);\n if (this.mode === 'Canvas' && (this.constraints & DiagramConstraints.Virtualization)) {\n this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.initData = function () {\n var dataSourceSettings = this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource;\n var adapter = 'adaptorName';\n if (this.dataBindingModule && !(this.realActions & RealAction.PreventDataInit)) {\n if (dataSourceSettings && this.dataSourceSettings.connectionDataSource.dataManager) {\n var dataManager = this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource;\n this.nodes = this.generateData(dataManager, true);\n this.connectors = this.generateData(this.dataSourceSettings.connectionDataSource.dataManager, false);\n }\n else if (dataSourceSettings && dataSourceSettings.dataSource &&\n (dataSourceSettings.dataSource.url || (dataSourceSettings[\"\" + adapter] === 'BlazorAdaptor' &&\n !dataSourceSettings.dataSource.url))) {\n this.dataBindingModule.initSource(this.dataSourceSettings, this);\n }\n else {\n this.dataBindingModule.initData(this.dataSourceSettings, this);\n }\n }\n };\n Diagram.prototype.generateData = function (dataSource, isNode) {\n var nodes = [];\n var i;\n for (i = 0; i < dataSource.length; i++) {\n var row = dataSource[parseInt(i.toString(), 10)];\n var node = isNode ? this.makeData(row, true) : this.makeData(row, false);\n if (node && node.id && (!findNodeByName(nodes, node.id) || !findNodeByName(nodes, node.id))) {\n nodes.push(node);\n }\n }\n return (nodes);\n };\n Diagram.prototype.makeData = function (row, isNode) {\n var i;\n var fields = isNode ? this.dataSourceSettings : this.dataSourceSettings.connectionDataSource;\n var data = {};\n data.id = row[fields.id] ? row[fields.id] : randomId();\n if (fields.sourceID) {\n data.sourceID = row[fields.sourceID];\n }\n if (fields.targetID) {\n data.targetID = row[fields.targetID];\n }\n if (row[fields.sourcePointX] && row[fields.sourcePointY]) {\n data.sourcePoint = { 'x': Number(row[fields.sourcePointX]), 'y': Number(row[fields.sourcePointY]) };\n }\n if (row[fields.targetPointX] && row[fields.targetPointY]) {\n data.targetPoint = { 'x': Number(row[fields.targetPointX]), 'y': Number(row[fields.targetPointY]) };\n }\n if (fields.crudAction.customFields && fields.crudAction.customFields.length > 0) {\n for (i = 0; i < fields.crudAction.customFields.length; i++) {\n data[fields.crudAction.customFields[parseInt(i.toString(), 10)]] = row[fields.crudAction.customFields[parseInt(i.toString(), 10)]];\n }\n }\n return data;\n };\n Diagram.prototype.initNodes = function (obj, layer) {\n this.preventDiagramUpdate = true;\n this.initObject(obj, layer);\n this.preventDiagramUpdate = false;\n };\n Diagram.prototype.initConnectors = function (obj, layer, independentObj) {\n this.preventDiagramUpdate = true;\n this.initObject(obj, layer, independentObj);\n this.updateEdges(obj);\n this.preventDiagramUpdate = false;\n };\n Diagram.prototype.setZIndex = function (layer, obj) {\n //should be changed\n var currentLayer = layer;\n if ((obj).zIndex === -1) {\n while (currentLayer.zIndexTable[currentLayer.objectZIndex + 1]) {\n layer.objectZIndex++;\n }\n obj.zIndex = ++currentLayer.objectZIndex;\n }\n else {\n var index = obj.zIndex;\n if (currentLayer.zIndexTable[parseInt(index.toString(), 10)]) {\n var tabelLength = Object.keys(currentLayer.zIndexTable).length;\n var j = 0;\n for (var i = 0; i < tabelLength; i++) {\n if (i === index) {\n for (var j_1 = tabelLength; j_1 > index; j_1--) {\n currentLayer.zIndexTable[parseInt(j_1.toString(), 10)] = currentLayer.zIndexTable[j_1 - 1];\n if (this.nameTable[currentLayer.zIndexTable[parseInt(j_1.toString(), 10)]]) {\n this.nameTable[currentLayer.zIndexTable[parseInt(j_1.toString(), 10)]].zIndex = j_1;\n }\n }\n currentLayer.zIndexTable[parseInt(i.toString(), 10)] = obj.id;\n }\n j++;\n }\n }\n }\n };\n Diagram.prototype.initializeDiagramLayers = function () {\n //const tempLayers: LayerModel[] = this.layers;\n for (var i = 0; i < this.layers.length; i++) {\n if (this.layers[parseInt(i.toString(), 10)].zIndex !== -1) {\n var temp = this.layers[parseInt(i.toString(), 10)];\n this.layers[parseInt(i.toString(), 10)] = this.layers[this.layers[parseInt(i.toString(), 10)].zIndex];\n this.layers[temp.zIndex] = temp;\n }\n }\n for (var _i = 0, _a = this.layers; _i < _a.length; _i++) {\n var layer = _a[_i];\n layer.zIndex = layer.zIndex !== -1 ? layer.zIndex : this.layers.indexOf(layer);\n this.layerZIndexTable[layer.zIndex] = layer.id;\n }\n for (var i = 0; i < this.layers.length; i++) {\n for (var j = i + 1; j < this.layers.length; j++) {\n if (this.layers[parseInt(i.toString(), 10)].zIndex > this.layers[parseInt(j.toString(), 10)].zIndex) {\n var temp = this.layers[parseInt(i.toString(), 10)];\n this.layers[parseInt(i.toString(), 10)] = this.layers[parseInt(j.toString(), 10)];\n this.layers[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n if (this.layers.length === 0) {\n var defaultLayer = {\n id: 'default_layer', visible: true, lock: false, objects: [], zIndex: 0,\n objectZIndex: -1, zIndexTable: {}\n };\n this.commandHandler.addLayer(defaultLayer, null, true);\n }\n this.setActiveLayer(this.layers[this.layers.length - 1].id);\n };\n /**\n * resetTool method \\\n *\n * @returns { void } resetTool method .\\\n *\n * @private\n */\n Diagram.prototype.resetTool = function () {\n this.eventHandler.resetTool();\n };\n Diagram.prototype.initObjectExtend = function (obj, layer, independentObj) {\n if (independentObj) {\n var checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds);\n //EJ2-71853 - Need to improve performance of diagram while rendering large number of nodes and connectors.\n // Removed the for loop which is iterating through the zindex table and removing the object from the table as it is not covered in any scenario.\n layer.zIndexTable[obj.zIndex] = obj.id;\n if (!checkBoundaryConstraints) {\n var node = obj instanceof Node ? this.nodes : this.connectors;\n for (var i = 0; i <= node.length; i++) {\n if (node[parseInt(i.toString(), 10)] && obj.id === node[parseInt(i.toString(), 10)].id) {\n node.splice(i, 1);\n }\n }\n delete layer.zIndexTable[obj.zIndex];\n }\n }\n };\n /* tslint:disable */\n /**\n * initObject method \\\n *\n * @returns { void } initObject method .\\\n * @param {End} obj - provide the obj value.\n * @param {End} layer - provide the layer value.\n * @param {LayoutOrientation} independentObj - provide the independentObj value.\n * @param {boolean} group - provide the independentObj value.\n *\n * @private\n */\n Diagram.prototype.initObject = function (obj, layer, independentObj, group) {\n if (independentObj === void 0) { independentObj = true; }\n if (obj !== undefined) {\n if (independentObj) {\n if (!layer) {\n this.addToLayer(obj, false);\n layer = this.activeLayer;\n }\n //Move the common properties like zindex and id to an abstract class\n if ((obj instanceof Node || obj instanceof Connector) &&\n (obj.shape.type !== 'SwimLane' || (obj.children && obj.children.length > 0))) {\n this.setZIndex(layer, obj);\n }\n }\n if (obj instanceof Node) {\n if (independentObj) {\n if (obj.id !== 'helper') {\n var getDefaults = getFunction(this.getNodeDefaults);\n if (getDefaults) {\n var defaults = getDefaults(obj, this);\n if (defaults && defaults.ports) {\n for (var i = 0; i < defaults.ports.length; i++) {\n defaults.ports[parseInt(i.toString(), 10)].inEdges = [];\n defaults.ports[parseInt(i.toString(), 10)].outEdges = [];\n }\n }\n if (defaults && defaults !== obj) {\n extendObject(defaults, obj);\n }\n }\n }\n this.initNode(obj, this.element.id);\n }\n }\n else if (obj instanceof Connector) {\n var getDefaults = getFunction(this.getConnectorDefaults);\n if (getDefaults) {\n var defaults = getDefaults(obj, this);\n if (defaults && defaults !== obj) {\n extendObject(defaults, obj);\n }\n if (obj.segments.length) {\n if (obj.type !== obj.segments[0].type) {\n obj.segments = [];\n }\n }\n }\n var sourceNode = this.nameTable[obj.sourceID];\n var targetNode = this.nameTable[obj.targetID];\n var port = this.getConnectedPort(sourceNode, obj, true);\n var targetPort = this.getConnectedPort(targetNode, obj);\n var outPort = this.findInOutConnectPorts(sourceNode, false);\n var inPort = this.findInOutConnectPorts(targetNode, true);\n if ((sourceNode !== undefined && canOutConnect(sourceNode)) || (obj.sourcePortID !== ''\n && canPortOutConnect(outPort))) {\n obj.sourceWrapper = this.getEndNodeWrapper(sourceNode, obj, true);\n if (obj.sourcePortID) {\n // eslint-disable-next-line max-len\n if (port && port.constraints && !(port.constraints & PortConstraints.None) && (port.constraints & PortConstraints.OutConnect)) {\n obj.sourcePortWrapper = this.getWrapper(sourceNode.wrapper, obj.sourcePortID);\n }\n }\n }\n if ((targetNode !== undefined && canInConnect(targetNode)) || (obj.targetPortID !== ''\n && canPortInConnect(inPort))) {\n obj.targetWrapper = this.getEndNodeWrapper(targetNode, obj, false);\n if (obj.targetPortID) {\n // eslint-disable-next-line max-len\n if (targetPort && targetPort.constraints && !(targetPort.constraints & PortConstraints.None) && (targetPort.constraints & PortConstraints.InConnect)) {\n obj.targetPortWrapper = this.getWrapper(targetNode.wrapper, obj.targetPortID);\n }\n }\n }\n if (!independentObj) {\n var points = obj.getConnectorPoints(obj.type);\n updateConnector(obj, points);\n }\n if (independentObj) {\n obj.init(this);\n }\n for (var k = 0; k < obj.wrapper.children.length; k++) {\n if (this.pathTable[obj.wrapper.children[parseInt(k.toString(), 10)].data]) {\n obj.wrapper.children[parseInt(k.toString(), 10)].absoluteBounds =\n this.pathTable[obj.wrapper.children[parseInt(k.toString(), 10)].data].absoluteBounds;\n }\n }\n obj.wrapper.measure(new Size(undefined, undefined));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n if (obj instanceof Connector && obj.type === 'Bezier') {\n this.updateConnectorAnnotation(obj);\n this.updateConnectorfixedUserHandles(obj);\n }\n for (var j = 0; j < obj.wrapper.children.length; j++) {\n this.pathTable[obj.wrapper.children[parseInt(j.toString(), 10)].data] = {};\n this.pathTable[obj.wrapper.children[parseInt(j.toString(), 10)].data].absoluteBounds =\n obj.wrapper.children[parseInt(j.toString(), 10)].absoluteBounds;\n }\n }\n if (obj instanceof Node && obj.children && obj.container) {\n for (var i = 0; i < obj.children.length; i++) {\n this.nameTable[obj.children[parseInt(i.toString(), 10)]].offsetX = this.nameTable[obj.children[parseInt(i.toString(), 10)]].wrapper.offsetX;\n this.nameTable[obj.children[parseInt(i.toString(), 10)]].offsetY = this.nameTable[obj.children[parseInt(i.toString(), 10)]].wrapper.offsetY;\n }\n }\n if (this.bpmnModule && obj instanceof Node\n && obj.shape.type === 'Bpmn' && obj.shape.annotations.length > 0) {\n this.bpmnModule.updateQuad(obj, this);\n }\n this.initObjectExtend(obj, layer, independentObj);\n this.nameTable[obj.id] = obj;\n if (obj instanceof Node && obj.children) {\n this.preventNodesUpdate = true;\n this.preventConnectorsUpdate = true;\n if (!group && !obj.container) {\n this.updateGroupOffset(obj, true);\n }\n this.groupTable[obj.id] = obj.children;\n for (var i = 0; i < obj.children.length; i++) {\n var node = (this.nameTable[obj.children[parseInt(i.toString(), 10)]]);\n if (node) {\n node.parentId = obj.id;\n }\n }\n if (!this.isLoading && obj.rotateAngle && !obj.container) {\n this.commandHandler.rotateObjects(obj, [obj], obj.rotateAngle, { x: obj.offsetX, y: obj.offsetY }, false);\n }\n this.preventNodesUpdate = false;\n this.preventConnectorsUpdate = false;\n }\n if (this['enterObject'] === undefined) {\n this.updateQuad(obj);\n }\n }\n if (obj.visible === false) {\n this.updateElementVisibility(obj.wrapper, obj, false);\n }\n };\n /* tslint:enable */\n Diagram.prototype.getConnectedPort = function (node, connector, isSource) {\n if (node && node.ports) {\n for (var _i = 0, _a = node.ports; _i < _a.length; _i++) {\n var port = _a[_i];\n if (port.id === connector.sourcePortID && isSource) {\n return port;\n }\n else if (port.id === connector.targetPortID && !isSource) {\n return port;\n }\n }\n }\n return null;\n };\n Diagram.prototype.scaleObject = function (obj, size, isWidth) {\n var actualSize = isWidth ? obj.wrapper.actualSize.width : obj.wrapper.actualSize.height;\n var sw = (isWidth) ? 1 + ((size - actualSize) / actualSize) : 1;\n var sh = (isWidth) ? 1 : 1 + ((size - actualSize) / actualSize);\n //const groupOffsetX: number = obj.offsetX; const groupOffsetY: number = obj.offsetY;\n this.realActions |= RealAction.PreventDrag;\n this.scale(obj, sw, sh, { x: 0.5, y: 0.5 });\n this.realActions &= ~RealAction.PreventDrag;\n };\n Diagram.prototype.updateDefaultLayoutIcons = function (node) {\n if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree' ||\n this.layout.type === 'ComplexHierarchicalTree') {\n {\n this.updateDefaultLayoutIcon(node, node.expandIcon);\n this.updateDefaultLayoutIcon(node, node.collapseIcon);\n }\n }\n };\n Diagram.prototype.updateDefaultLayoutIcon = function (node, icon) {\n if (icon.shape !== 'None') {\n if (icon.horizontalAlignment === 'Auto' && icon.verticalAlignment === 'Auto' &&\n icon.offset.x === .5 && icon.offset.y === 1) {\n var iconWrapper = this.getWrapper(node.wrapper, 'icon_content');\n var offsetX = void 0;\n var offsetY = void 0;\n if (this.layout.orientation === 'TopToBottom' || this.layout.orientation === 'BottomToTop') {\n offsetX = .5;\n offsetY = this.layout.orientation === 'TopToBottom' ? 1 : 0;\n }\n else if (this.layout.orientation === 'RightToLeft' || this.layout.orientation === 'LeftToRight') {\n offsetX = this.layout.orientation === 'LeftToRight' ? 1 : 0;\n offsetY = .5;\n }\n iconWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n iconWrapper.horizontalAlignment = 'Center';\n iconWrapper.verticalAlignment = 'Center';\n node.wrapper.measure(new Size(node.wrapper.width, node.wrapper.height));\n node.wrapper.arrange(node.wrapper.desiredSize);\n }\n }\n };\n /**\n * updateGroupOffset method \\\n *\n * @returns { void } updateGroupOffset method .\\\n * @param {NodeModel | ConnectorModel} node - provide the source value.\n * @param {boolean} isUpdateSize - provide the target value.\n *\n * @private\n */\n Diagram.prototype.updateGroupOffset = function (node, isUpdateSize) {\n var isUpdateGroupToBlazor = false;\n if ((node.children && node.children.length > 0 && (!node.container)) || (node.processId)) {\n var node1 = this.nameTable[node.id];\n if (!(this.realActions & RealAction.PreventScale) && !(this.realActions & RealAction.PreventDrag)) {\n if (node1.offsetX && ((this.realActions & RealAction.EnableGroupAction) ||\n ((!(this.diagramActions & DiagramAction.UndoRedo)) && (!(this.diagramActions & DiagramAction.ToolAction)\n && !(this.diagramActions & DiagramAction.PublicMethod))))) {\n this.realActions |= RealAction.PreventScale;\n var diffX = (node1.offsetX - node.wrapper.offsetX);\n node1.offsetX = node.wrapper.offsetX;\n var diffY = (node1.offsetY - node.wrapper.offsetY);\n node1.offsetY = node.wrapper.offsetY;\n if (node.flip === 'None' && (diffX + diffY) !== 0) {\n this.drag(node1, diffX, diffY);\n }\n this.realActions &= ~RealAction.PreventScale;\n }\n else {\n if (isBlazor()) {\n this.insertValue(cloneObject(node1), true);\n isUpdateGroupToBlazor = true;\n }\n node1.offsetX = node.wrapper.offsetX;\n }\n if (node1.offsetY && ((this.realActions & RealAction.EnableGroupAction) ||\n ((!(this.diagramActions & DiagramAction.UndoRedo)) && (!(this.diagramActions & DiagramAction.ToolAction)\n && !(this.diagramActions & DiagramAction.PublicMethod))))) {\n this.realActions |= RealAction.PreventScale;\n var diffY = (node1.offsetY - node.wrapper.offsetY);\n node1.offsetY = node.wrapper.offsetY;\n if (node.flip === 'None') {\n this.drag(node1, 0, diffY);\n }\n this.realActions &= ~RealAction.PreventScale;\n }\n else {\n if (isBlazor()) {\n this.insertValue(cloneObject(node1), true);\n isUpdateGroupToBlazor = true;\n }\n node1.offsetY = node.wrapper.offsetY;\n }\n if (this.diagramActions) {\n if (isBlazor()) {\n this.insertValue(cloneObject(node1), true);\n isUpdateGroupToBlazor = true;\n }\n node1.width = node.wrapper.actualSize.width;\n node1.height = node.wrapper.actualSize.height;\n }\n }\n }\n if (isUpdateSize) {\n if ((node.children && node.children.length > 0)) {\n if (this.nameTable[node.id].width !== undefined) {\n this.scaleObject(node, this.nameTable[node.id].width, true);\n }\n else {\n if (isBlazor()) {\n this.insertValue(cloneObject(this.nameTable[node.id]), true);\n isUpdateGroupToBlazor = true;\n }\n this.nameTable[node.id].width = node.wrapper.actualSize.width;\n }\n if (this.nameTable[node.id].height !== undefined) {\n this.scaleObject(node, this.nameTable[node.id].height, false);\n }\n else {\n if (isBlazor()) {\n this.insertValue(cloneObject(this.nameTable[node.id]), true);\n isUpdateGroupToBlazor = true;\n }\n this.nameTable[node.id].height = node.wrapper.actualSize.height;\n }\n }\n }\n if (isUpdateGroupToBlazor && !(this.diagramActions & DiagramAction.UndoRedo) &&\n !(this.diagramActions & DiagramAction.ToolAction) &&\n !(this.diagramActions & DiagramAction.PublicMethod)) {\n this.commandHandler.getBlazorOldValues();\n }\n };\n /* eslint-disable */\n Diagram.prototype.initNode = function (obj, diagramId, group) {\n var canvas = obj.initContainer();\n var portContainer = new Canvas();\n var content;\n if (!this.diagramSettings.inversedAlignment) {\n canvas.inversedAlignment = false;\n }\n if (!canvas.children) {\n canvas.children = [];\n }\n if (obj.children) {\n canvas.measureChildren = false;\n portContainer.id = obj.id + 'group_container';\n portContainer.style.fill = 'none';\n portContainer.style.strokeColor = 'none';\n portContainer.horizontalAlignment = 'Stretch';\n portContainer.verticalAlignment = 'Stretch';\n canvas.style = obj.style;\n canvas.padding.left = obj.padding.left;\n canvas.padding.right = obj.padding.right;\n canvas.padding.top = obj.padding.top;\n canvas.padding.bottom = obj.padding.bottom;\n portContainer.children = [];\n portContainer.preventContainer = true;\n if (obj.container) {\n portContainer.relativeMode = 'Object';\n }\n var checkPorts = (obj.ports && obj.ports.length > 0) ? true : false;\n if (isNullOrUndefined(obj.container) && !checkPorts) {\n canvas.children.push(portContainer);\n }\n if (obj.container && (obj.container.type === 'Grid')) {\n for (var i = 0; i < obj.children.length; i++) {\n var childCollection = new Canvas();\n var child = this.nameTable[obj.children[i]];\n childCollection.children = [];\n childCollection.children.push(child.wrapper);\n if (child) {\n canvas.addObject(child.wrapper, child.rowIndex, child.columnIndex, child.rowSpan, child.columnSpan);\n }\n }\n }\n else {\n for (var i = 0; i < obj.children.length; i++) {\n if (this.nameTable[obj.children[i]]) {\n var child = this.nameTable[obj.children[i]];\n this.updateStackProperty(obj, child, i);\n canvas.children.push(child.wrapper);\n canvas.elementActions = canvas.elementActions | ElementAction.ElementIsGroup;\n child.wrapper.flip = child.wrapper.flip === 'None' ?\n obj.wrapper.flip : child.wrapper.flip;\n }\n }\n }\n if (checkPorts || (obj.container && (obj.container.type !== 'Grid'))) {\n canvas.children.push(portContainer);\n }\n }\n else {\n var setNodeTemplate = getFunction(this.setNodeTemplate);\n if (setNodeTemplate && obj.id !== 'helper') {\n content = setNodeTemplate(obj, this);\n }\n if (!content) {\n content = obj.init(this);\n }\n canvas.children.push(content);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var wrapperContent;\n wrapperContent = getFunction(this.getDescription);\n if (wrapperContent) {\n (obj.children ? canvas : content).description = wrapperContent;\n }\n else {\n (obj.children ? canvas : content).description = obj.annotations.length ? obj.annotations[0].content : obj.id;\n }\n var container = obj.children ? portContainer : canvas;\n obj.initAnnotations(this.getDescription, container, this.element.id, canVitualize(this) ? true : false, this.annotationTemplate);\n obj.initPorts(this.getDescription, container);\n obj.initIcons(this.getDescription, this.layout, container, diagramId);\n for (var i = 0; obj.fixedUserHandles !== undefined, i < obj.fixedUserHandles.length; i++) {\n var fixedUserHandles = obj.initfixedUserHandles(obj.fixedUserHandles[i]);\n container.children.push(fixedUserHandles);\n }\n if (obj.shape.type === 'SwimLane' && obj.wrapper && obj.wrapper.children.length > 0 &&\n obj.wrapper.children[0] instanceof GridPanel) {\n this.setZIndex(this.activeLayer, obj);\n if (this.connectors.length > 0) {\n for (var i = 0; i < this.connectors.length; i++) {\n var obj_2 = this.connectors[i];\n if ((obj_2.sourceID && obj_2.targetID) && (this.activeLayer.objects.indexOf(obj_2.sourceID) === -1 &&\n this.activeLayer.objects.indexOf(obj_2.targetID) === -1)) {\n this.setZIndex(this.activeLayer, obj_2);\n }\n }\n }\n swimLaneMeasureAndArrange(obj);\n arrangeChildNodesInSwimLane(this, obj);\n this.updateDiagramElementQuad();\n }\n else {\n canvas.measure(new Size(obj.width, obj.height), obj.id, this.onLoadImageSize.bind(this));\n if (canvas instanceof GridPanel) {\n canvas.arrange(canvas.desiredSize, true);\n }\n else {\n canvas.arrange(canvas.desiredSize);\n }\n }\n if (obj.wrapper.flip !== 'None' && obj.wrapper.elementActions & ElementAction.ElementIsGroup) {\n alignElement(obj.wrapper, obj.wrapper.offsetX, obj.wrapper.offsetY, this, obj.wrapper.flip);\n }\n if (obj instanceof Node && obj.container && (obj.width < canvas.outerBounds.width || obj.height < canvas.outerBounds.height) &&\n canvas.bounds.x <= canvas.outerBounds.x && canvas.bounds.y <= canvas.outerBounds.y) {\n obj.width = canvas.width = canvas.outerBounds.width;\n obj.height = canvas.height = canvas.outerBounds.height;\n canvas.measure(new Size(obj.width, obj.height));\n canvas.arrange(canvas.desiredSize);\n }\n if (obj.container && obj.container.type === 'Grid' && obj.children && obj.children.length > 0) {\n this.updateChildPosition(obj);\n }\n };\n /* eslint-enable */\n /**\n * updateDiagramElementQuad method \\\n *\n * @returns { void } updateDiagramElementQuad method .\\\n *\n * @private\n */\n Diagram.prototype.updateDiagramElementQuad = function () {\n for (var i = 0; i < this.nodes.length; i++) {\n if (this.nodes[parseInt(i.toString(), 10)].wrapper && (this.nodes[parseInt(i.toString(), 10)].wrapper instanceof Container)) {\n this.updateQuad(this.nodes[parseInt(i.toString(), 10)]);\n }\n }\n };\n Diagram.prototype.onLoadImageSize = function (id, size) {\n var obj = this.getObject(id);\n var image = document.getElementById(id + 'sf-imageNode');\n if (image) {\n image.parentNode.removeChild(image);\n }\n this.nodePropertyChange(obj, {}, { width: size.width, height: size.height });\n var args = { element: cloneObject(obj), size: size };\n this.triggerEvent(DiagramEvent.onImageLoad, args);\n };\n Diagram.prototype.updateChildPosition = function (obj) {\n for (var i = 0; i < obj.children.length; i++) {\n var child = this.getObject(obj.children[parseInt(i.toString(), 10)]);\n child.offsetX = child.wrapper.offsetX;\n child.offsetY = child.wrapper.offsetY;\n if (child.children && child.children.length > 0) {\n this.updateChildPosition(child);\n }\n }\n };\n Diagram.prototype.canExecute = function () {\n return true;\n };\n Diagram.prototype.updateStackProperty = function (obj, child, index) {\n if (obj.container && obj.container.type === 'Stack') {\n if (!child.width) {\n child.wrapper.horizontalAlignment = 'Stretch';\n child.horizontalAlignment = 'Stretch';\n }\n if (!child.height) {\n child.verticalAlignment = 'Stretch';\n child.wrapper.verticalAlignment = 'Stretch';\n }\n if (index && obj.shape.type === 'UmlClassifier') {\n child.umlIndex = index;\n }\n }\n };\n Diagram.prototype.initViews = function () {\n if (!this.isLoading) {\n this.views.push(this.element.id);\n this.views[this.element.id] = this;\n }\n };\n Diagram.prototype.initCommands = function () {\n var i;\n var newCommands = this.commandManager.commands;\n var commands = {\n 'copy': {\n execute: this.copyCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.C, keyModifiers: KeyModifiers.Control }\n },\n 'paste': {\n execute: this.pasteCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.V, keyModifiers: KeyModifiers.Control }\n },\n 'cut': {\n execute: this.cutCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.X, keyModifiers: KeyModifiers.Control }\n },\n 'delete': {\n execute: this.removeCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Delete }\n },\n 'selectAll': {\n execute: this.selectAll.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.A, keyModifiers: KeyModifiers.Control }\n },\n 'undo': {\n execute: this.undo.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Z, keyModifiers: KeyModifiers.Control }\n },\n 'redo': {\n execute: this.redo.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Y, keyModifiers: KeyModifiers.Control }\n },\n 'nudgeUp': {\n execute: this.nudgeCommand.bind(this, 'Up'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Up },\n parameter: 'up'\n },\n 'nudgeRight': {\n execute: this.nudgeCommand.bind(this, 'Right'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Right },\n parameter: 'right'\n },\n 'nudgeDown': {\n execute: this.nudgeCommand.bind(this, 'Down'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Down },\n parameter: 'down'\n },\n 'nudgeLeft': {\n execute: this.nudgeCommand.bind(this, 'Left'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Left },\n parameter: 'left'\n },\n 'startEdit': {\n execute: this.startEditCommad.bind(this),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.F2 }\n },\n 'endEdit': {\n execute: this.endEditCommand.bind(this),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Escape }\n },\n 'focusToNextItem': {\n // execute: this.focusToItem.bind(this),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Tab }\n },\n 'focusToPreviousItem': {\n // execute: this.focusToItem.bind(this),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Tab, keyModifiers: KeyModifiers.Control }\n },\n 'selectFocusedItem': {\n execute: this.startEditCommad.bind(this),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Enter }\n }\n };\n this.initCommandManager(newCommands, commands);\n };\n Diagram.prototype.overrideCommands = function (newCommand, commands) {\n var command;\n for (var _i = 0, _a = Object.keys(commands); _i < _a.length; _i++) {\n var key = _a[_i];\n command = commands[\"\" + key];\n if (newCommand.gesture.key === command.gesture.key && newCommand.gesture.keyModifiers === command.gesture.keyModifiers) {\n delete commands[\"\" + key];\n break;\n }\n }\n };\n Diagram.prototype.initCommandManager = function (newCommands, commands) {\n var i = 0;\n if (newCommands) {\n for (i = 0; i < newCommands.length; i++) {\n if (commands[newCommands[parseInt(i.toString(), 10)].name] && newCommands[parseInt(i.toString(), 10)]) {\n if (newCommands[parseInt(i.toString(), 10)].canExecute) {\n commands[newCommands[parseInt(i.toString(), 10)].name].canExecute = newCommands[parseInt(i.toString(), 10)].canExecute;\n }\n if (newCommands[parseInt(i.toString(), 10)].execute) {\n commands[newCommands[parseInt(i.toString(), 10)].name].execute = newCommands[parseInt(i.toString(), 10)].execute;\n }\n if (newCommands[parseInt(i.toString(), 10)].gesture.key || newCommands[parseInt(i.toString(), 10)].gesture.keyModifiers) {\n commands[newCommands[parseInt(i.toString(), 10)].name].gesture = newCommands[parseInt(i.toString(), 10)].gesture;\n }\n if (newCommands[parseInt(i.toString(), 10)].parameter !== '') {\n commands[newCommands[parseInt(i.toString(), 10)].name].parameter = newCommands[parseInt(i.toString(), 10)].parameter;\n }\n }\n else {\n this.overrideCommands(newCommands[parseInt(i.toString(), 10)], commands);\n commands[newCommands[parseInt(i.toString(), 10)].name] = {\n execute: newCommands[parseInt(i.toString(), 10)].execute, canExecute: newCommands[parseInt(i.toString(), 10)].canExecute, gesture: newCommands[parseInt(i.toString(), 10)].gesture,\n parameter: newCommands[parseInt(i.toString(), 10)].parameter\n };\n }\n }\n }\n this.commands = commands;\n };\n /**\n * updateNodeEdges method \\\n *\n * @returns { void } updateNodeEdges method .\\\n * @param {Node} node - provide the source value.\n *\n * @private\n */\n Diagram.prototype.updateNodeEdges = function (node) {\n for (var _i = 0, _a = node.inEdges; _i < _a.length; _i++) {\n var edge = _a[_i];\n if (this.nameTable[\"\" + edge]) {\n this.nameTable[\"\" + edge].targetID = '';\n }\n }\n for (var _b = 0, _c = node.outEdges; _b < _c.length; _b++) {\n var edge = _c[_b];\n if (this.nameTable[\"\" + edge]) {\n this.nameTable[\"\" + edge].sourceID = '';\n }\n }\n node.inEdges = [];\n node.outEdges = [];\n };\n /**\n * updateIconVisibility method \\\n *\n * @returns { void } updateIconVisibility method .\\\n * @param {Node} node - provide the source value.\n * @param {boolean} visibility - provide the source value.\n *\n * @private\n */\n Diagram.prototype.updateIconVisibility = function (node, visibility) {\n for (var i = 0; i < node.wrapper.children.length; i++) {\n var child = node.wrapper.children[parseInt(i.toString(), 10)];\n if (child.id) {\n var id = child.id.split(node.id)[1];\n if (id && id.match('^_icon')) {\n child.visible = visibility;\n this.updateDiagramContainerVisibility(child, visibility);\n }\n }\n }\n };\n /**\n * updateEdges method \\\n *\n * @returns { void } updateEdges method .\\\n * @param {Connector} obj - provide the source value.\n *\n * @private\n */\n Diagram.prototype.updateEdges = function (obj) {\n if (obj.sourceID !== undefined && obj.sourceID !== '') {\n var node = this.nameTable[obj.sourceID];\n if (node && node.outEdges && node.outEdges.length === 0) {\n node.outEdges = [];\n }\n if (node && node.outEdges && node.outEdges.indexOf(obj.id) === -1) {\n node.outEdges.push(obj.id);\n }\n this.updatePortEdges(node, obj, false);\n }\n if (obj.targetID !== undefined && obj.targetID !== '') {\n var node = this.nameTable[obj.targetID];\n if (node && node.inEdges && node.inEdges.length === 0) {\n node.inEdges = [];\n }\n if (node && node.inEdges && node.inEdges.indexOf(obj.id) === -1) {\n node.inEdges.push(obj.id);\n }\n this.updatePortEdges(node, obj, true);\n if (node && node.visible && node.outEdges) {\n var value = node.outEdges.length === 0 ? false : true;\n this.updateIconVisibility(node, value);\n }\n }\n };\n /**\n * updatePortEdges method \\\n *\n * @returns { void } updatePortEdges method .\\\n * @param {NodeModel} node - provide the source value.\n * @param {ConnectorModel} obj - provide the target value.\n * @param {boolean} isInEdges - provide the layoutOrientation value.\n *\n * @private\n */\n Diagram.prototype.updatePortEdges = function (node, obj, isInEdges) {\n if (node) {\n for (var i = 0; i < node.ports.length; i++) {\n var port = node.ports[parseInt(i.toString(), 10)];\n var portId = (isInEdges) ? obj.targetPortID : obj.sourcePortID;\n if (port.id === portId) {\n var portEdges = (isInEdges) ? port.inEdges : port.outEdges;\n if (portEdges.indexOf(obj.id) === -1) {\n portEdges.push(obj.id);\n }\n }\n }\n }\n };\n /**\n * refreshDiagram method \\\n *\n * @returns { void } refreshDiagram method .\\\n *\n * @private\n */\n Diagram.prototype.refreshDiagram = function () {\n this.initLayerObjects();\n this.doLayout();\n this.updateBridging();\n this.scroller.setSize();\n this.addBlazorDiagramObjects();\n if (isBlazor() && this.layout && this.layout.layoutInfo && this.layout.layoutInfo.isRootInverse && this.nodes.length > 2) {\n var rootNode = this.nodes[0];\n if (rootNode.outEdges.length > 1) {\n var isProtectedChange = this.isProtectedOnChange;\n for (var i = 1; i < rootNode.outEdges.length; i++) {\n var connector = this.nameTable[rootNode.outEdges[parseInt(i.toString(), 10)]];\n var isAllowServerUpdate = this.allowServerDataBinding;\n this.protectPropertyChange(false);\n this.enableServerDataBinding(false);\n this.preventDiagramUpdate = true;\n var target = this.getObject(connector.targetID);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (target.data.Branch === 'Left') {\n connector.sourcePortID = rootNode.ports[1].id;\n }\n this.dataBind();\n this.preventDiagramUpdate = false;\n this.enableServerDataBinding(isAllowServerUpdate);\n this.protectPropertyChange(isProtectedChange);\n }\n }\n }\n if (isBlazor()) {\n var view = void 0;\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n view = this.views[\"\" + temp];\n if (view.renderDocument) {\n view.renderDocument(view);\n view.diagramRenderer.setLayers();\n view.updateView(view);\n this.renderNodes(view);\n }\n }\n }\n this.updateFitToPage();\n };\n Diagram.prototype.updateCanupdateStyle = function (element, value) {\n for (var j = 0; j < element.length; j++) {\n if (element[parseInt(j.toString(), 10)].children) {\n this.updateCanupdateStyle(element[parseInt(j.toString(), 10)].children, value);\n }\n element[parseInt(j.toString(), 10)].canApplyStyle = value;\n }\n };\n Diagram.prototype.getZindexPosition = function (obj, viewId) {\n var objects = [];\n var index = undefined;\n objects = objects.concat(this.nodes);\n objects = objects.concat(this.connectors);\n var type;\n if (obj.zIndex !== -1) {\n for (var i = 0; i < objects.length; i++) {\n if (objects[parseInt(i.toString(), 10)].zIndex > obj.zIndex) {\n if (obj.shape.type === 'HTML' || obj.shape.type === 'Native') {\n type = obj.shape.type === 'HTML' ? 'html' : 'native';\n }\n index = getDomIndex(viewId, objects[parseInt(i.toString(), 10)].id, type);\n break;\n }\n }\n }\n return index;\n };\n /**\n *updateDiagramObject method \\\n *\n * @returns { void } updateDiagramObject method .\\\n * @param { (NodeModel | ConnectorModel) } obj - provide the obj value.\n * @param { boolean } canIgnoreIndex - provide the canIgnoreIndex value.\n * @param { boolean } isUpdateObject - provide the isUpdateObject value.\n *\n * @private\n */\n Diagram.prototype.updateDiagramObject = function (obj, canIgnoreIndex, isUpdateObject) {\n var view;\n var domTable = 'domTable';\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n view = this.views[\"\" + temp];\n if (this.diagramActions) {\n if (view.mode === 'SVG') {\n var hasLayers = this.layers.length > 1;\n var layer = void 0;\n if (hasLayers) {\n layer = this.commandHandler.getObjectLayer(obj.id);\n }\n if ((layer === undefined || (layer && layer.visible)) || isUpdateObject) {\n var htmlLayer = getHTMLLayer(this.element.id);\n if (!window[\"\" + domTable][view.element.id + '_diagramLayer']) {\n window[\"\" + domTable][view.element.id + '_diagramLayer'] =\n document.getElementById(view.element.id + '_diagramLayer');\n }\n var diagramElementsLayer = window[\"\" + domTable][view.element.id + '_diagramLayer'];\n if (this.diagramActions & DiagramAction.Interactions) {\n this.updateCanupdateStyle(obj.wrapper.children, true);\n }\n var centerPoint = this.getMidPoint(obj);\n this.diagramRenderer.updateNode(obj.wrapper, diagramElementsLayer, htmlLayer, undefined, canIgnoreIndex ? undefined : this.getZindexPosition(obj, view.element.id), centerPoint);\n this.updateCanupdateStyle(obj.wrapper.children, true);\n }\n }\n }\n }\n };\n //Method used to apply margin for Bezier Curve points.\n Diagram.prototype.applyMarginBezier = function (obj, centerPoint) {\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n if (obj.wrapper && obj.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n centerPoint.cx = centerPoint.cx + obj.wrapper.children[parseInt(i.toString(), 10)].margin.left;\n centerPoint.cx = centerPoint.cx - obj.wrapper.children[parseInt(i.toString(), 10)].margin.right;\n centerPoint.cy = centerPoint.cy + obj.wrapper.children[parseInt(i.toString(), 10)].margin.top;\n centerPoint.cy = centerPoint.cy - obj.wrapper.children[parseInt(i.toString(), 10)].margin.bottom;\n }\n }\n };\n //Method used to get mid point of Bezier Curve\n Diagram.prototype.getMidPoint = function (obj) {\n var centerPoint = obj.annotations[0] ? obj.annotations[0].offset : 0.5;\n var finalPoint;\n if (obj instanceof Connector && obj.type === 'Bezier') {\n var totalPoints = this.getBezierPoints(obj);\n var totalLength = Point.getLengthFromListOfPoints(totalPoints);\n var absoluteLength = centerPoint * totalLength;\n var position = this.commandHandler.getPointAtLength(absoluteLength, totalPoints, 0);\n finalPoint = { cx: position.x, cy: position.y };\n this.applyMarginBezier(obj, finalPoint);\n // EJ2-64114 -Horizontal and Vertical alignment not applied properly for the bezier connector annotation\n this.applyAlignment(obj, finalPoint);\n }\n return finalPoint;\n };\n /**\n * Apply alignment to bezier annotation\n * @param {ConnectorModel | NodeModel} obj - provide the obj value.\n * @param finalPoint\n */\n Diagram.prototype.applyAlignment = function (obj, finalPoint) {\n for (var i = 0; i < obj.wrapper.children.length; i++) {\n if (obj.wrapper && obj.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n var child = obj.wrapper.children[parseInt(i.toString(), 10)];\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n finalPoint.cx = child.inversedAlignment ? finalPoint.cx : (finalPoint.cx - child.desiredSize.width);\n break;\n case 'Stretch':\n case 'Center':\n finalPoint.cx -= child.desiredSize.width * child.pivot.x;\n break;\n case 'Right':\n finalPoint.cx = child.inversedAlignment ? (finalPoint.cx - child.desiredSize.width) : finalPoint.cx;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n finalPoint.cy = child.inversedAlignment ? finalPoint.cy : (finalPoint.cy - child.desiredSize.height);\n break;\n case 'Stretch':\n case 'Center':\n finalPoint.cy -= child.desiredSize.height * child.pivot.y;\n break;\n case 'Bottom':\n finalPoint.cy = child.inversedAlignment ? (finalPoint.cy - child.desiredSize.height) : finalPoint.cy;\n break;\n }\n }\n }\n };\n //(EJ2-62683) Method used to get total points in bezier connector\n Diagram.prototype.getBezierPoints = function (obj) {\n var points = [];\n var i;\n var source = { x: obj.sourcePoint.x, y: obj.sourcePoint.y };\n points.push(source);\n for (i = 0; i < obj.segments.length; i++) {\n var total = obj.segments[parseInt(i.toString(), 10)].getPoints(obj.segments[parseInt(i.toString(), 10)], source);\n points.push.apply(points, total);\n source = points[points.length - 1];\n }\n return points;\n };\n /**\n *updateGridContainer method \\\n *\n * @returns { void } updateGridContainer method .\\\n * @param { GridPanel } grid - provide the objectArray value.\n *\n * @private\n */\n Diagram.prototype.updateGridContainer = function (grid) {\n var view;\n var htmlLayer = getHTMLLayer(this.element.id);\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n view = this.views[\"\" + temp];\n if (view.mode === 'SVG' && this.diagramActions) {\n var diagramElementsLayer = document.getElementById(view.element.id + '_diagramLayer');\n this.diagramRenderer.updateNode(grid, diagramElementsLayer, htmlLayer, undefined);\n }\n else {\n this.refreshCanvasDiagramLayer(view);\n }\n }\n };\n /**\n *getObjectsOfLayer method \\\n *\n * @returns { (NodeModel | ConnectorModel)[] } getObjectsOfLayer method .\\\n * @param { string[] } objectArray - provide the objectArray value.\n *\n * @private\n */\n Diagram.prototype.getObjectsOfLayer = function (objectArray) {\n var nodeArray = [];\n for (var _i = 0, objectArray_1 = objectArray; _i < objectArray_1.length; _i++) {\n var obj = objectArray_1[_i];\n if (this.nameTable[\"\" + obj]) {\n nodeArray.push(this.nameTable[\"\" + obj]);\n }\n }\n return nodeArray;\n };\n /**\n *refreshDiagramLayer method \\\n *\n * @returns { void } refreshDiagramLayer method .\\\n *\n * @private\n */\n Diagram.prototype.refreshDiagramLayer = function () {\n var view;\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n view = this.views[\"\" + temp];\n switch (view.mode) {\n case 'SVG':\n this.refreshSvgDiagramLayer(view);\n break;\n case 'Canvas':\n this.refreshCanvasLayers(view);\n break;\n }\n }\n };\n /**\n *refreshCanvasLayers method \\\n *\n * @returns { void } refreshCanvasLayers method .\\\n * @param { View } view - provide the view value.\n *\n * @private\n */\n Diagram.prototype.refreshCanvasLayers = function (view) {\n if (!view) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view_1 = this.views[\"\" + temp];\n this.refreshCanvasDiagramLayer(view_1);\n }\n }\n else {\n this.refreshCanvasDiagramLayer(view);\n }\n };\n Diagram.prototype.renderBasicElement = function (view) {\n var htmlLayer = getHTMLLayer(view.element.id);\n for (var i = 0; i < this.basicElements.length; i++) {\n var element = this.basicElements[parseInt(i.toString(), 10)];\n if (element instanceof Container) {\n element.prevRotateAngle = 0;\n }\n element.measure(new Size(element.width, element.height));\n element.arrange(element.desiredSize);\n view.diagramRenderer.renderElement(element, view.diagramLayer, htmlLayer);\n }\n };\n Diagram.prototype.refreshElements = function (view) {\n if (!this.isDestroyed) {\n this.clearCanvas(view);\n if (view instanceof Diagram) {\n view.diagramLayer.getContext('2d').setTransform(view.scroller.currentZoom, 0, 0, view.scroller.currentZoom, 0, 0);\n view.diagramLayer.getContext('2d').scale(1.5, 1.5);\n }\n else {\n var element = document.getElementById(view.element.id + '_nativeLayer');\n if (element.children.length > 0) {\n view.updateView(view);\n }\n }\n var htmlLayer = getHTMLLayer(view.element.id);\n //const bounds: Rect = this.spatialSearch.getPageBounds();\n this.renderDiagramElements(view.diagramLayer, view.diagramRenderer, htmlLayer);\n for (var i = 0; i < this.basicElements.length; i++) {\n var element = this.basicElements[parseInt(i.toString(), 10)];\n element.measure(new Size(element.width, element.height));\n element.arrange(element.desiredSize);\n view.diagramRenderer.renderElement(element, view.diagramLayer, htmlLayer);\n }\n if (view instanceof Diagram) {\n view.diagramLayer.style.transform = 'scale(' + (2 / 3) + ')';\n view.diagramLayer.style.transformOrigin = '0 0';\n }\n this.renderTimer = null;\n }\n };\n /**\n *refreshCanvasDiagramLayer method \\\n *\n * @returns { void } refreshCanvasDiagramLayer method .\\\n * @param { View } view - provide the view value.\n *\n * @private\n */\n Diagram.prototype.refreshCanvasDiagramLayer = function (view) {\n var _this = this;\n if (view.mode !== 'SVG' && !this.isDestroyed) {\n if (this.basicElements.length > 0) {\n this.renderBasicElement(view);\n }\n if ((!this.diagramActions || (this.diagramActions & DiagramAction.Render) === 0)\n || (DiagramAction.ToolAction & this.diagramActions) || canVitualize(this) || (this.scroller.currentZoom !== 1)) {\n this.refreshElements(view);\n }\n else if (!this.renderTimer) {\n this.renderTimer = setTimeout(function () {\n _this.refreshElements(view);\n }, 40);\n }\n }\n };\n /**\n *updatePortVisibility method \\\n *\n * @returns { void } updatePortVisibility method .\\\n * @param { Node } node - provide the node value.\n * @param { PortVisibility } portVisibility - provide the portVisibility value.\n * @param { Boolean } inverse - provide the inverse value.\n *\n * @private\n */\n Diagram.prototype.updatePortVisibility = function (node, portVisibility, inverse) {\n var portElement;\n var drawingObject = !(this.drawingObject && this.drawingObject.shape) ? true : false;\n if (node instanceof Node && drawingObject && canMove(node)) {\n var ports = node.ports;\n var changed = false;\n for (var i = 0; i < ports.length; i++) {\n portElement = this.getWrapper(node.wrapper, ports[parseInt(i.toString(), 10)].id);\n if ((portVisibility & PortVisibility.Hover || portVisibility & PortVisibility.Connect)) {\n if (checkPortRestriction(ports[parseInt(i.toString(), 10)], portVisibility)) {\n portElement.visible = !inverse;\n changed = true;\n }\n }\n }\n if (changed) {\n this.updateDiagramObject(node);\n }\n //EJ2-59672 - Added the below code to render the ports while hovering over the node\n if (this.mode === 'Canvas') {\n this.refreshCanvasLayers();\n }\n }\n };\n /**\n *refreshSvgDiagramLayer method \\\n *\n * @returns { void } refreshSvgDiagramLayer method .\\\n * @param { View } view - provide the object value.\n *\n * @private\n */\n Diagram.prototype.refreshSvgDiagramLayer = function (view) {\n var element;\n var diagramElementsLayer = document.getElementById(view.element.id + '_diagramLayer');\n var htmlLayer = getHTMLLayer(view.element.id);\n if (!canVitualize(this)) {\n for (var i = 0; i < this.basicElements.length; i++) {\n element = this.basicElements[parseInt(i.toString(), 10)];\n element.measure(new Size(element.width, element.height));\n element.arrange(element.desiredSize, (!(this.diagramActions & DiagramAction.Render) ? true : false));\n this.diagramRenderer.renderElement(element, diagramElementsLayer, htmlLayer);\n }\n this.renderDiagramElements(diagramElementsLayer, this.diagramRenderer, htmlLayer);\n }\n else {\n this.scroller.virtualizeElements();\n }\n };\n /**\n *removeVirtualObjects method \\\n *\n * @returns { void } removeVirtualObjects method .\\\n * @param { Object } clearIntervalVal - provide the object value.\n *\n * @private\n */\n Diagram.prototype.removeVirtualObjects = function (clearIntervalVal) {\n if (this.deleteVirtualObject) {\n for (var i = 0; i < this.scroller.removeCollection.length; i++) {\n var obj = this.nameTable[this.scroller.removeCollection[parseInt(i.toString(), 10)]];\n this.removeElements(obj);\n }\n this.deleteVirtualObject = false;\n }\n clearInterval(clearIntervalVal);\n };\n /**\n *updateTextElementValue method \\\n *\n * @returns { void } updateTextElementValue method .\\\n * @param { NodeModel | ConnectorModel } object - provide the object value.\n *\n * @private\n */\n Diagram.prototype.updateTextElementValue = function (object) {\n for (var j = 0; j < object.wrapper.children.length; j++) {\n var element = object.wrapper.children[parseInt(j.toString(), 10)];\n if (element instanceof TextElement) {\n element.canMeasure = true;\n element.measure(new Size(object.width, object.height));\n element.arrange(element.desiredSize);\n }\n }\n };\n /**\n *updateVirtualObjects method \\\n *\n * @returns { void } updateVirtualObjects method .\\\n * @param { string[] } collection - provide the collection value.\n * @param { boolean } remove - provide the remove value.\n * @param { string[] } tCollection - provide the htmlLayer value.\n *\n * @private\n */\n Diagram.prototype.updateVirtualObjects = function (collection, remove, tCollection) {\n var diagramElementsLayer = document.getElementById(this.element.id + '_diagramLayer');\n var htmlLayer = getHTMLLayer(this.element.id);\n if (this.mode === 'SVG') {\n for (var i = 0; i < collection.length; i++) {\n var index = this.scroller.removeCollection.indexOf(collection[parseInt(i.toString(), 10)]);\n if (index >= 0) {\n this.scroller.removeCollection.splice(index, 1);\n }\n var object = this.nameTable[collection[parseInt(i.toString(), 10)]];\n this.updateTextElementValue(object);\n this.diagramRenderer.renderElement(object.wrapper, diagramElementsLayer, htmlLayer, undefined, undefined, undefined, undefined, object.zIndex);\n }\n for (var k = 0; k < tCollection.length; k++) {\n this.scroller.removeCollection.push(tCollection[parseInt(k.toString(), 10)]);\n }\n if (this.scroller.currentZoom !== 1) {\n this.eventHandler.updateVirtualization();\n }\n }\n else if (this.diagramActions) {\n this.refreshDiagramLayer();\n }\n };\n /**\n *renderDiagramElements method \\\n *\n * @returns { void } renderDiagramElements method .\\\n * @param { HTMLCanvasElement | SVGElement} canvas - provide the canvas value.\n * @param { DiagramRenderer } renderer - provide the renderer value.\n * @param { HTMLElement } htmlLayer - provide the htmlLayer value.\n * @param {boolean } transform - provide the transform value.\n * @param {boolean } fromExport - provide the fromExport value.\n * @param { boolean } isOverView - provide the isOverView value.\n *\n * @private\n */\n Diagram.prototype.renderDiagramElements = function (canvas, renderer, htmlLayer, transform, fromExport, isOverView) {\n if (transform === void 0) { transform = true; }\n var pageBounds = this.scroller.getPageBounds();\n pageBounds.x *= this.scroller.currentZoom;\n pageBounds.y *= this.scroller.currentZoom;\n pageBounds.width *= this.scroller.currentZoom;\n pageBounds.height *= this.scroller.currentZoom;\n var difX = -this.scroller.horizontalOffset - pageBounds.x;\n var difY = -this.scroller.verticalOffset - pageBounds.y;\n var getCenterPoint;\n for (var _i = 0, _a = Object.keys(this.layerZIndexTable); _i < _a.length; _i++) {\n var layerId = _a[_i];\n var layer = this.commandHandler.getLayer(this.layerZIndexTable[\"\" + layerId]);\n var left = void 0;\n var top_1 = void 0;\n if (this.mode === 'Canvas' && canVitualize(this) && !this.diagramActions) {\n this.scroller.virtualizeElements();\n }\n var id = (this.mode === 'Canvas' && canVitualize(this) &&\n this.scroller.oldCollectionObjects.length > 0) ?\n this.scroller.oldCollectionObjects : undefined;\n for (var _b = 0, _c = Object.keys(id || layer.zIndexTable); _b < _c.length; _b++) {\n var node = _c[_b];\n var renderNode = id ? this.nameTable[id[\"\" + node]] : this.nameTable[layer.zIndexTable[\"\" + node]];\n if (renderNode && !(renderNode.parentId) && layer.visible &&\n (!(renderNode.processId) || this.refreshing)) {\n //EJ2-68738 - Overview content not updated properly on zoom out the diagram\n var transformValue = void 0;\n //828826 - In canvas mode diagram transform values are not updated properly while Zoom out action\n if (this.scroller.currentZoom < 1 && this.mode == 'SVG') {\n transformValue = {\n tx: (-pageBounds.x) / this.scroller.currentZoom,\n ty: (-pageBounds.y) / this.scroller.currentZoom,\n scale: this.scroller.transform.scale\n };\n }\n else {\n transformValue = {\n tx: this.scroller.transform.tx,\n ty: this.scroller.transform.ty,\n scale: this.scroller.transform.scale\n };\n }\n if (canVitualize(this)) {\n if (this.scroller.currentZoom < 1) {\n if (pageBounds.x < 0 || this.scroller.horizontalOffset < 0) {\n var verticalValue = this.scroller.verticalOffset < 0 ? this.scroller.verticalOffset : 0;\n left = (difX > 0 ? difX : 0) + 'px';\n top_1 = ((this.realActions & RealAction.vScrollbarMoved) ? 0 : -verticalValue) + 'px';\n }\n else {\n left = 0 + 'px';\n top_1 = 0 + 'px';\n }\n if (this.realActions & RealAction.hScrollbarMoved) {\n this.realActions = this.realActions & ~RealAction.hScrollbarMoved;\n }\n if (this.realActions & RealAction.vScrollbarMoved) {\n this.realActions = this.realActions & ~RealAction.vScrollbarMoved;\n }\n }\n else {\n left = (pageBounds.x < 0 ? difX : -this.scroller.horizontalOffset) + 'px';\n top_1 = (pageBounds.y < 0 ? difY : -this.scroller.verticalOffset) + 'px';\n }\n this.diagramLayer.style.left = left;\n this.diagramLayer.style.top = top_1;\n //EJ2-69578 - Overview is not updated properly when we enable virtualization.\n transformValue.tx = (-pageBounds.x) / transformValue.scale;\n transformValue.ty = (-pageBounds.y) / transformValue.scale;\n }\n var status_1 = true;\n if (fromExport) {\n status_1 = false;\n }\n this.updateTextElementValue(renderNode);\n if (this.refreshing) {\n if (renderNode.shape.activity && renderNode.shape.activity.subProcess\n && renderNode.shape.activity.subProcess.processes) {\n for (var i = 0; i < renderNode.shape.activity.subProcess.processes.length; i++) {\n var process = renderNode.shape.activity.subProcess.processes[parseInt(i.toString(), 10)];\n renderNode.wrapper.children.push(this.nameTable[\"\" + process].wrapper);\n }\n renderNode.wrapper.measure(new Size(renderNode.wrapper.bounds.width, renderNode.wrapper.bounds.height));\n renderNode.wrapper.arrange(renderNode.wrapper.desiredSize);\n }\n }\n if (renderNode instanceof Connector && renderNode.type === 'Bezier') {\n getCenterPoint = this.getMidPoint(renderNode);\n // (EJ2-58802) - Added the below code to add the transform x and y values to center point value in canvas mode\n if (this.mode === 'Canvas' && transform) {\n getCenterPoint.cx += transformValue.tx;\n getCenterPoint.cy += transformValue.ty;\n }\n }\n else {\n getCenterPoint = null;\n }\n renderer.renderElement(renderNode.wrapper, canvas, htmlLayer, (!renderer.isSvgMode && transform) ? transformValue : undefined, undefined, undefined, status_1 && (!this.diagramActions || isOverView), undefined, undefined, getCenterPoint);\n }\n }\n }\n };\n /**\n *updateBridging method \\\n *\n * @returns { void } updateBridging method .\\\n * @param {string} isLoad - provide the isLoad value.\n *\n * @private\n */\n Diagram.prototype.updateBridging = function (isLoad) {\n if (this.bridgingModule) {\n for (var i = 0; i < this.connectors.length; i++) {\n var connector = this.connectors[parseInt(i.toString(), 10)];\n this.bridgingModule.updateBridging(connector, this);\n var canvas = this.connectors[parseInt(i.toString(), 10)].wrapper;\n if (canvas && canvas.children && canvas.children.length > 0) {\n var pathSegment = canvas.children[0];\n var data = pathSegment.data;\n if (connector.isBezierEditing && this.selectedItems.connectors[0].id === connector.id || connector.type !== 'Bezier') {\n connector.getSegmentElement(connector, pathSegment, this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree' ?\n this.layout.orientation : undefined, undefined, false);\n }\n if (pathSegment.data !== data) {\n canvas.measure(new Size());\n canvas.arrange(canvas.desiredSize);\n if (this.mode === 'SVG' && !isLoad) {\n this.updateDiagramObject(connector);\n }\n }\n }\n }\n }\n };\n /**\n *setCursor method \\\n *\n * @returns { void } setCursor method .\\\n * @param {string} cursor - provide the width value.\n *\n * @private\n */\n Diagram.prototype.setCursor = function (cursor) {\n this.diagramRenderer.setCursor(this.diagramCanvas, cursor);\n };\n /**\n *clearCanvas method \\\n *\n * @returns { void } clearCanvas method .\\\n * @param {View} view - provide the width value.\n *\n * @private\n */\n Diagram.prototype.clearCanvas = function (view) {\n //let width: number;\n //let height: number;\n var width = view.contentWidth || view.diagramLayer.width / this.scroller.currentZoom;\n var height = view.contentHeight || view.diagramLayer.height / this.scroller.currentZoom;\n if (view.mode !== 'SVG') {\n var ctx = CanvasRenderer.getContext(view.diagramLayer);\n ctx.clearRect(0, 0, width, height);\n }\n };\n /**\n *updateScrollOffset method \\\n *\n * @returns { void } updateScrollOffset method .\\\n *\n * @private\n */\n Diagram.prototype.updateScrollOffset = function () {\n this.scroller.setScrollOffset(this.diagramCanvas.scrollLeft, this.diagramCanvas.scrollTop);\n updateRuler(this);\n if (canVitualize(this)) {\n this.scroller.virtualizeElements();\n }\n };\n /**\n *setOffset method \\\n *\n * @returns { void } setOffset method .\\\n * @param {number} offsetX - provide the width value.\n * @param {number} offsetY - provide the height value.\n *\n * @private\n */\n Diagram.prototype.setOffset = function (offsetX, offsetY) {\n var domTable = 'domTable';\n if (!window[\"\" + domTable][this.element.id + 'content']) {\n window[\"\" + domTable][this.element.id + 'content'] = document.getElementById(this.element.id + 'content');\n }\n var container = window[\"\" + domTable][this.element.id + 'content'];\n if (container) {\n container.scrollLeft = offsetX;\n container.scrollTop = offsetY;\n }\n };\n /**\n *setSize method \\\n *\n * @returns { void } setSize method .\\\n * @param {number} width - provide the width value.\n * @param {number} height - provide the height value.\n *\n * @private\n */\n Diagram.prototype.setSize = function (width, height) {\n if (this.diagramLayer && !this.preventDiagramUpdate) {\n var position = getRulerSize(this);\n width -= position.width;\n height -= position.height;\n var bounds = this.spatialSearch.getPageBounds();\n bounds.x *= this.scroller.currentZoom;\n bounds.y *= this.scroller.currentZoom;\n bounds.width *= this.scroller.currentZoom;\n bounds.height *= this.scroller.currentZoom;\n var factor = this.mode === 'SVG' ? 1 : 1.5;\n var diagramLayer = this.mode === 'SVG' ?\n getDiagramLayerSvg(this.element.id) : this.diagramLayer;\n var w = (this.mode === 'Canvas' &&\n (this.constraints & DiagramConstraints.Virtualization)) ? this.scroller.viewPortWidth : width;\n var h = (this.mode === 'Canvas' &&\n (this.constraints & DiagramConstraints.Virtualization)) ? this.scroller.viewPortHeight : height;\n diagramLayer.setAttribute('width', (factor * w).toString());\n diagramLayer.setAttribute('height', (factor * h).toString());\n var hiddenUserHandleTemplate = document.getElementById(this.element.id + '_diagramUserHandleLayer');\n if (hiddenUserHandleTemplate) {\n hiddenUserHandleTemplate.style.width = width + 'px';\n hiddenUserHandleTemplate.style.height = height + 'px';\n }\n var attr = { 'width': width.toString(), 'height': height.toString() };\n this.diagramLayerDiv.style.width = width + 'px';\n this.diagramLayerDiv.style.height = height + 'px';\n setAttributeSvg(getNativeLayerSvg(this.element.id), attr);\n setAttributeSvg(getPortLayerSvg(this.element.id), attr);\n var adornerSVG = getAdornerLayerSvg(this.element.id);\n setAttributeSvg(adornerSVG, attr);\n adornerSVG.parentNode.style.width = width + 'px';\n adornerSVG.parentNode.style.height = height + 'px';\n var gridLayer = getGridLayerSvg(this.element.id);\n setAttributeSvg(gridLayer, attr);\n this.diagramRenderer.updateGrid(this.snapSettings, gridLayer, this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n setAttributeSvg(getBackgroundLayerSvg(this.element.id), attr);\n this.htmlLayer.style.width = width + 'px';\n this.htmlLayer.style.height = height + 'px';\n if (this.mode !== 'SVG' && !(canVitualize(this))) {\n this.refreshDiagramLayer();\n }\n if (this.mode === 'SVG' && canVitualize(this)) {\n this.scroller.virtualizeElements();\n }\n }\n };\n /**\n *transformLayers method \\\n *\n * @returns { void } Defines how to remove the Page breaks .\\\n *\n * @private\n */\n Diagram.prototype.transformLayers = function () {\n var bounds = this.spatialSearch.getPageBounds();\n bounds.x *= this.scroller.currentZoom;\n bounds.y *= this.scroller.currentZoom;\n bounds.width *= this.scroller.currentZoom;\n bounds.height *= this.scroller.currentZoom;\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n this.diagramRenderer.transformLayers(this.scroller.transform, this.mode === 'SVG');\n if (!(this.diagramActions & DiagramAction.DragUsingMouse)) {\n this.updateSelector();\n }\n this.renderPageBreaks(bounds);\n };\n /**\n *Defines how to remove the Page breaks \\\n *\n * @returns { void } Defines how to remove the Page breaks .\\\n *\n * @private\n */\n Diagram.prototype.removePageBreaks = function () {\n if (this.diagramLayer) {\n var line = getBackgroundLayer(this.element.id);\n if (line && line.childNodes) {\n var length_2 = line.childNodes.length;\n for (var i = 0; i < length_2; i++) {\n line.removeChild(line.childNodes[0]);\n }\n }\n }\n };\n /**\n * Defines how the page breaks has been rendered \\\n *\n * @returns { void } Defines how the page breaks has been rendered .\\\n * @param {Rect} bounds - provide the overview value.\n *\n * @private\n */\n Diagram.prototype.renderPageBreaks = function (bounds) {\n this.removePageBreaks();\n var backgroundLayer = getBackgroundLayer(this.element.id);\n if (backgroundLayer) {\n var i = 0;\n bounds = this.scroller.getPageBounds(true);\n var x = (this.scroller.transform.tx + bounds.x) * this.scroller.currentZoom;\n var y = (this.scroller.transform.ty + bounds.y) * this.scroller.currentZoom;\n var height = bounds.height * this.scroller.currentZoom;\n var width = bounds.width * this.scroller.currentZoom;\n DiagramRenderer.renderSvgBackGroundImage(this.pageSettings.background, this.element, x, y, width, height);\n var options = {\n id: backgroundLayer.id + 'rect', x: x,\n y: y,\n height: height,\n width: width, angle: 0, stroke: '', strokeWidth: 1,\n fill: this.pageSettings.background.color, opacity: 1,\n pivotX: 0, pivotY: 0, visible: true, dashArray: '0'\n };\n this.diagramRenderer.drawRect(backgroundLayer, options);\n if (this.pageSettings.showPageBreaks) {\n var collection = this.scroller.getPageBreak(bounds);\n for (i = 0; i < collection.length; i++) {\n this.diagramRenderer.drawLine(backgroundLayer, {\n class: 'e-diagram-page-break',\n fill: 'none', stroke: '#aaaaaa', strokeWidth: 1, dashArray: '10 10',\n opacity: 2, x: 0, y: 0, width: 0, height: 0, angle: 0, pivotX: 0, pivotY: 0, visible: true,\n startPoint: {\n x: (collection[parseInt(i.toString(), 10)].x1 + this.scroller.transform.tx) * this.scroller.currentZoom,\n y: (collection[parseInt(i.toString(), 10)].y1 + this.scroller.transform.ty) * this.scroller.currentZoom\n },\n endPoint: {\n x: (collection[parseInt(i.toString(), 10)].x2 + this.scroller.transform.tx) * this.scroller.currentZoom,\n y: (collection[parseInt(i.toString(), 10)].y2 + this.scroller.transform.ty) * this.scroller.currentZoom\n }, id: collection[parseInt(i.toString(), 10)].y1 === collection[parseInt(i.toString(), 10)].y2 ? 'HorizontalLines' : 'VerticalLines'\n });\n }\n }\n }\n };\n Diagram.prototype.validatePageSize = function () {\n var temp = 0;\n if (this.pageSettings.orientation === 'Portrait') {\n if (this.pageSettings.width > this.pageSettings.height) {\n temp = this.pageSettings.height;\n this.pageSettings.height = this.pageSettings.width;\n this.pageSettings.width = temp;\n }\n }\n else {\n if (this.pageSettings.height > this.pageSettings.width) {\n temp = this.pageSettings.width;\n this.pageSettings.width = this.pageSettings.height;\n this.pageSettings.height = temp;\n }\n }\n };\n /**\n * setOverview method \\\n *\n * @returns { void } setOverview method .\\\n * @param {View} overview - provide the overview value.\n * @param {string} id - provide the boolean value.\n *\n * @private\n */\n Diagram.prototype.setOverview = function (overview, id) {\n if (overview) {\n if (overview) {\n this.views.push(overview.id);\n this.views[overview.id] = overview;\n overview.renderDocument(overview);\n overview.diagramRenderer.setLayers();\n overview.updateView(overview);\n this.renderNodes(overview);\n }\n }\n else {\n for (var i = 0; i < this.views.length; i++) {\n if (this.views[parseInt(i.toString(), 10)] === id) {\n overview = (this.views[\"\" + id]);\n }\n }\n this.views[\"\" + id] = undefined;\n var index = this.views.indexOf(id);\n this.views.splice(index, 1);\n }\n };\n Diagram.prototype.renderNodes = function (overview) {\n if (overview) {\n var renderer = new DiagramRenderer(overview.id, new SvgRenderer(), false);\n var g = document.getElementById(overview.element.id + '_diagramLayer');\n var htmlLayer = getHTMLLayer(overview.element.id);\n this.renderDiagramElements(g, overview.diagramRenderer || renderer, htmlLayer, undefined, undefined, true);\n }\n };\n Diagram.prototype.updateThumbConstraints = function (node, selectorModel, canInitialize) {\n var state = 0;\n var length = node.length;\n for (var i = 0; i < length; i++) {\n var obj = node[parseInt(i.toString(), 10)];\n var hideRotate = false;\n var hideResize = false;\n var thumbConstraints = selectorModel.thumbsConstraints;\n if (obj instanceof Node) {\n hideRotate = (obj.shape.type === 'Bpmn' && (obj.shape.shape === 'Activity' &&\n (obj.shape.activity.subProcess.collapsed === false)) ||\n obj.shape.shape === 'TextAnnotation');\n hideResize = (obj.shape.type === 'Bpmn' && obj.shape.shape === 'TextAnnotation');\n if (!canRotate(obj) || !(thumbConstraints & ThumbsConstraints.Rotate) || hideRotate) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.Rotate;\n }\n if (!canResize(obj, 'SouthEast') || !(thumbConstraints & ThumbsConstraints.ResizeSouthEast) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeSouthEast;\n }\n if (!canResize(obj, 'NorthWest') || !(thumbConstraints & ThumbsConstraints.ResizeNorthWest) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeNorthWest;\n }\n if (!canResize(obj, 'East') || !(thumbConstraints & ThumbsConstraints.ResizeEast) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeEast;\n }\n if (!canResize(obj, 'West') || !(thumbConstraints & ThumbsConstraints.ResizeWest) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeWest;\n }\n if (!canResize(obj, 'North') || !(thumbConstraints & ThumbsConstraints.ResizeNorth) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeNorth;\n }\n if (!canResize(obj, 'South') || !(thumbConstraints & ThumbsConstraints.ResizeSouth) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeSouth;\n }\n if (!canResize(obj, 'NorthEast') || !(thumbConstraints & ThumbsConstraints.ResizeNorthEast) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeNorthEast;\n }\n if (!canResize(obj, 'SouthWest') || !(thumbConstraints & ThumbsConstraints.ResizeSouthWest) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeSouthWest;\n }\n }\n else if (obj instanceof Connector) {\n if (!canInitialize) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.Default;\n }\n if (canDragSourceEnd(obj)) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.ConnectorSource;\n }\n else {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ConnectorSource;\n }\n if (canDragTargetEnd(obj)) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.ConnectorTarget;\n }\n else {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ConnectorTarget;\n }\n }\n else {\n if (!canInitialize) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.Default;\n }\n if (!canResize(obj)) {\n thumbConstraints = thumbConstraints & ~(ThumbsConstraints.ResizeSouthEast | ThumbsConstraints.ResizeSouthWest |\n ThumbsConstraints.ResizeSouth | ThumbsConstraints.ResizeEast | ThumbsConstraints.ResizeWest |\n ThumbsConstraints.ResizeNorth | ThumbsConstraints.ResizeNorthEast | ThumbsConstraints.ResizeNorthWest);\n }\n if (!canRotate(obj)) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.Rotate;\n }\n }\n selectorModel.thumbsConstraints = thumbConstraints;\n }\n };\n /**\n * renderSelector method \\\n *\n * @returns { void } renderSelector method .\\\n * @param {boolean} multipleSelection - provide the multipleSelection value.\n * @param {boolean} isSwimLane - provide the boolean value.\n *\n * @private\n */\n Diagram.prototype.renderSelector = function (multipleSelection, isSwimLane) {\n var isProtectedOnChangeValue = this.isProtectedOnChange;\n if (isBlazor()) {\n this.isProtectedOnChange = true;\n }\n var size = new Size();\n var selectorModel = this.selectedItems;\n var selectorConstraints = selectorModel.constraints;\n var rendererActions = this.diagramRenderer.rendererActions;\n var innertemplate = document.getElementsByClassName('blazor-inner-template');\n var i;\n var div;\n this.diagramRenderer.rendererActions = this.currentSymbol ?\n this.addConstraints(rendererActions, RendererAction.DrawSelectorBorder) :\n this.removeConstraints(rendererActions, RendererAction.DrawSelectorBorder);\n this.clearSelectorLayer();\n if (this.commandHandler.hasSelection()) {\n if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) {\n selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.pivot = selectorModel.nodes[0].pivot;\n }\n selectorModel.wrapper.measure(size);\n selectorModel.wrapper.arrange(selectorModel.wrapper.desiredSize);\n selectorModel.width = selectorModel.wrapper.actualSize.width;\n selectorModel.height = selectorModel.wrapper.actualSize.height;\n selectorModel.offsetX = selectorModel.wrapper.offsetX;\n selectorModel.offsetY = selectorModel.wrapper.offsetY;\n if (selectorModel.rotateAngle !== 0) {\n for (var _i = 0, _a = selectorModel.nodes; _i < _a.length; _i++) {\n var obj = _a[_i];\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n }\n for (var _b = 0, _c = selectorModel.connectors; _b < _c.length; _b++) {\n var conn = _c[_b];\n //update connections\n }\n }\n var bounds = this.spatialSearch.getPageBounds();\n //let selectorElement: (SVGElement | HTMLCanvasElement);\n var selectorElement = getSelectorElement(this.element.id);\n //let diagramUserHandlelayer: (SVGElement | HTMLElement);\n var diagramUserHandlelayer = getUserHandleLayer(this.element.id);\n selectorModel.thumbsConstraints = ThumbsConstraints.Default;\n if (selectorModel.annotation) {\n this.updateThumbConstraints([selectorModel.annotation], selectorModel);\n }\n else {\n this.updateThumbConstraints(selectorModel.nodes, selectorModel);\n this.updateThumbConstraints(selectorModel.connectors, selectorModel, true);\n }\n if (selectorModel.annotation) {\n this.renderSelectorForAnnotation(selectorModel, selectorElement);\n }\n else if (selectorModel.nodes.length + selectorModel.connectors.length === 1 || this.nameTable['helper']) {\n if (selectorModel.nodes[0] instanceof Node) {\n var node = selectorModel.nodes[0];\n if (checkParentAsContainer(this, node)) {\n if (!isSwimLane && (node.shape.type !== 'UmlClassifier' && !(node.parentId &&\n this.nameTable[node.parentId]\n && this.nameTable[node.parentId].shape.type === 'UmlClassifier'))) {\n if (!(node.container && (node.container.type === 'Canvas' || node.container.type === 'Grid'))) {\n selectorModel.nodes[0].constraints &= ~(NodeConstraints.Rotate | NodeConstraints.HideThumbs);\n }\n selectorModel.thumbsConstraints &= ~ThumbsConstraints.Rotate;\n }\n }\n var constraints = isSwimLane ? true : ((node.constraints & NodeConstraints.HideThumbs) ? true : false);\n var swimlane = (node.shape.type === 'SwimLane' || node.isLane || node.isPhase || isSwimLane) ? true : false;\n this.diagramRenderer.renderResizeHandle(selectorModel.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, canMove(node), constraints, swimlane, selectorModel.handleSize);\n }\n else if (selectorModel.connectors[0] instanceof Connector && canDrawThumbs(this.diagramRenderer.rendererActions)) {\n var connector = selectorModel.connectors[0];\n this.diagramRenderer.renderEndPointHandle(connector, selectorElement, selectorModel.thumbsConstraints, selectorModel.constraints, this.scroller.transform, connector.sourceWrapper !== undefined, connector.targetWrapper !== undefined, (this.connectorEditingToolModule && canDragSegmentThumb(connector)) ? true : false, this.connectorEditingToolModule ? true : false, selectorModel.handleSize);\n }\n }\n else {\n this.diagramRenderer.renderResizeHandle(selectorModel.wrapper, selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, canMove(selectorModel), null, null, selectorModel.handleSize);\n }\n if (!(selectorModel.annotation) && !this.currentSymbol) {\n this.diagramRenderer.renderUserHandler(selectorModel, selectorElement, this.scroller.transform, diagramUserHandlelayer);\n if (isBlazor() && innertemplate.length > 0) {\n for (i = 0; i < this.selectedItems.userHandles.length; i++) {\n var userHandle = this.selectedItems.userHandles[parseInt(i.toString(), 10)];\n div = document.getElementById(userHandle.name + '_html_element');\n div.style.display = 'block';\n }\n }\n }\n }\n // EJ2-56919 - Add below code to render the selection rectangle for node if selected objects length is greater than one\n if (this.selectedItems.selectedObjects.length > 1) {\n this.updateSelectionRectangle();\n }\n this.isProtectedOnChange = isProtectedOnChangeValue;\n };\n Diagram.prototype.updateSelectionRectangle = function () {\n var selectorElement = getSelectorElement(this.element.id);\n var isFirst = false;\n for (var i = 0; i < this.selectedItems.selectedObjects.length; i++) {\n // EJ2-56919 - For first selected object we need to set stroke as 2, so check below condition as i is zero or not\n // For first element we passed isFirst argument(last arg) as true in both render selection line and rectangle method\n isFirst = i === 0 ? true : false;\n if (getObjectType(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)]) === Connector) {\n // EJ2-56919 - If selected object type is connector means then render selection line for connector\n this.diagramRenderer.renderSelectionLine(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)].wrapper.children[0], selectorElement, this.scroller.transform, isFirst);\n }\n else {\n // EJ2-56919 - If selected object type is node means then render selection rectangle for node\n this.diagramRenderer.renderSelectionRectangle(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)].wrapper, selectorElement, this.scroller.transform, isFirst);\n }\n }\n };\n /**\n * updateSelector method \\\n *\n * @returns { void } updateSelector method .\\\n *\n * @private\n */\n Diagram.prototype.updateSelector = function () {\n var severDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n var size = new Size();\n var selector = this.selectedItems;\n var selectorConstraints = selector.constraints;\n var innertemplate = document.getElementsByClassName('blazor-inner-template');\n var i;\n var div;\n if (!(this.diagramActions & DiagramAction.ToolAction) && this.selectedItems.nodes.length === 1) {\n this.selectedItems.rotateAngle = this.selectedItems.nodes[0].rotateAngle;\n this.selectedItems.wrapper.rotateAngle = this.selectedItems.nodes[0].rotateAngle;\n }\n if (this.selectedItems !== undefined) {\n this.clearSelectorLayer();\n if (selector.wrapper !== null && selector.wrapper.children && selector.wrapper.children.length) {\n var canUpdate = true;\n var canRender = true;\n if (selectionHasConnector(this, selector)) {\n var eventHandler = 'eventHandler';\n var rotate = this[\"\" + eventHandler].action;\n var isRotate = rotate.includes('Rotate');\n var isSelect = rotate.includes('None') || rotate.includes('Select') || rotate.includes('Drag');\n if (isRotate || isSelect) {\n canRender = false;\n }\n if (!isSelect) {\n canUpdate = false;\n }\n }\n if (canUpdate) {\n selector.wrapper.measure(size);\n selector.wrapper.arrange(selector.wrapper.desiredSize);\n }\n if (selector.rotateAngle !== 0 || selector.rotateAngle !== selector.wrapper.prevRotateAngle) {\n for (var _i = 0, _a = selector.nodes; _i < _a.length; _i++) {\n var obj = _a[_i];\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n }\n }\n selector.width = selector.wrapper.actualSize.width;\n selector.height = selector.wrapper.actualSize.height;\n selector.offsetX = selector.wrapper.offsetX;\n selector.offsetY = selector.wrapper.offsetY;\n //let selectorEle: (SVGElement | HTMLCanvasElement);\n var selectorEle = getSelectorElement(this.element.id);\n //let diagramUserHandlelayer: (SVGElement | HTMLElement);\n var diagramUserHandlelayer = getUserHandleLayer(this.element.id);\n var canHideResizers = this.eventHandler.canHideResizers();\n selector.thumbsConstraints = ThumbsConstraints.Default;\n if (selector.annotation) {\n this.updateThumbConstraints([selector.annotation], selector);\n }\n else {\n this.updateThumbConstraints(selector.nodes, selector);\n this.updateThumbConstraints(selector.connectors, selector, true);\n }\n if ((this.selectedItems.constraints & SelectorConstraints.UserHandle) && (!(selector.annotation)) && !this.currentSymbol) {\n this.diagramRenderer.renderUserHandler(selector, selectorEle, this.scroller.transform, diagramUserHandlelayer);\n if (isBlazor() && innertemplate.length > 0) {\n for (i = 0; i < this.selectedItems.userHandles.length; i++) {\n var userHandletemplate = this.selectedItems.userHandles[parseInt(i.toString(), 10)];\n div = document.getElementById(userHandletemplate.name + '_html_element');\n div.style.display = 'block';\n }\n }\n }\n if (selector.annotation) {\n this.renderSelectorForAnnotation(selector, selectorEle);\n }\n else if (selector.nodes.length + selector.connectors.length === 1) {\n if (selector.connectors[0] instanceof Connector && canDrawThumbs(this.diagramRenderer.rendererActions)) {\n var connector = selector.connectors[0];\n this.diagramRenderer.renderEndPointHandle(connector, selectorEle, selector.thumbsConstraints, selectorConstraints, this.scroller.transform, connector.sourceWrapper !== undefined, connector.targetWrapper !== undefined, (this.connectorEditingToolModule && canDragSegmentThumb(connector)) ? true : false, this.connectorEditingToolModule ? true : false, selector.handleSize);\n }\n else if (selector.nodes[0] instanceof Node) {\n var stackPanel = selector.nodes[0];\n if (checkParentAsContainer(this, selector.nodes[0])) {\n if (stackPanel.shape.type !== 'UmlClassifier' && !(stackPanel.parentId &&\n this.nameTable[stackPanel.parentId]\n && this.nameTable[stackPanel.parentId].shape.type === 'UmlClassifier')) {\n if (!(stackPanel.container && (stackPanel.container.type === 'Canvas'\n || stackPanel.container.type === 'Grid'))) {\n selector.nodes[0].constraints &= ~(NodeConstraints.HideThumbs | NodeConstraints.Rotate);\n }\n selector.thumbsConstraints &= ~ThumbsConstraints.Rotate;\n }\n }\n var swimlane = (stackPanel.shape.type === 'SwimLane' || stackPanel.isLane ||\n stackPanel.isPhase) ? true : false;\n this.diagramRenderer.renderResizeHandle(selector.wrapper.children[0], selectorEle, selector.thumbsConstraints, this.scroller.currentZoom, selector.constraints, this.scroller.transform, canHideResizers, canMove(selector.nodes[0]), (selector.nodes[0].constraints & NodeConstraints.HideThumbs) ? true : false, swimlane, selector.handleSize);\n }\n }\n else {\n if (this.diagramActions & DiagramAction.Interactions) {\n this.diagramRenderer.rendererActions = this.diagramRenderer.rendererActions | RendererAction.PreventRenderSelector;\n }\n if (!(selectionHasConnector(this, selector) && canRender)) {\n this.diagramRenderer.renderResizeHandle(selector.wrapper, selectorEle, selector.thumbsConstraints, this.scroller.currentZoom, selector.constraints, this.scroller.transform, canHideResizers, canMove(selector), null, null, selector.handleSize);\n }\n this.diagramRenderer.rendererActions = this.diagramRenderer.rendererActions & ~RendererAction.PreventRenderSelector;\n }\n }\n }\n // EJ2-56919 - Add below code to render selection rectangle for node if selected objects length is greater than one\n if (this.selectedItems.selectedObjects.length > 1) {\n this.updateSelectionRectangle();\n }\n this.enableServerDataBinding(severDataBind);\n };\n /**\n * renderSelectorForAnnotation method \\\n *\n * @returns { void } renderSelectorForAnnotation method .\\\n * @param {Selector} selectorModel - provide the x value.\n * @param {(SVGElement | HTMLCanvasElement)} selectorElement - provide the y value.\n *\n * @private\n */\n //(EJ2-66036)- Annotation interaction not rendered properly\n Diagram.prototype.renderSelectorForAnnotation = function (selectorModel, selectorElement) {\n this.diagramRenderer.renderResizeHandle(selectorModel.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, canMove(selectorModel.annotation), undefined, undefined, selectorModel.handleSize);\n };\n /**\n * drawSelectionRectangle method \\\n *\n * @returns { void } drawSelectionRectangle method .\\\n * @param {number} x - provide the x value.\n * @param {number} y - provide the y value.\n * @param {number} width - provide the width value.\n * @param {number} height - provide the height value.\n *\n * @private\n */\n Diagram.prototype.drawSelectionRectangle = function (x, y, width, height) {\n this.clearSelectorLayer();\n this.diagramRenderer.drawSelectionRectangle(x, y, width, height, this.adornerLayer, this.scroller.transform);\n };\n /**\n * renderHighlighter method \\\n *\n * @returns { void } renderHighlighter method .\\\n * @param {DiagramElement} element - provide the node value.\n *\n * @private\n */\n Diagram.prototype.renderHighlighter = function (element) {\n var adornerSvg = getAdornerLayerSvg(this.element.id);\n this.diagramRenderer.renderHighlighter(element, adornerSvg, this.scroller.transform);\n };\n /**\n * clearHighlighter method \\\n *\n * @returns { void } clearHighlighter method .\\\n *\n * @private\n */\n Diagram.prototype.clearHighlighter = function () {\n var adornerSvg = getAdornerLayerSvg(this.element.id);\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_highlighter');\n if (highlighter) {\n highlighter.parentNode.removeChild(highlighter);\n }\n };\n /**\n * getNodesConnectors method \\\n *\n * @returns { (NodeModel | ConnectorModel)[] } getNodesConnectors method .\\\n * @param {(NodeModel | ConnectorModel)[]} selectedItems - provide the node value.\n *\n * @private\n */\n Diagram.prototype.getNodesConnectors = function (selectedItems) {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = this.nodes[parseInt(i.toString(), 10)];\n selectedItems.push(node);\n }\n for (var i = 0; i < this.connectors.length; i++) {\n var conn = this.connectors[parseInt(i.toString(), 10)];\n selectedItems.push(conn);\n }\n return selectedItems;\n };\n /**\n * clearSelectorLayer method \\\n *\n * @returns { void } clearSelectorLayer method .\\\n *\n * @private\n */\n Diagram.prototype.clearSelectorLayer = function () {\n var adornerSvg = getAdornerLayerSvg(this.element.id);\n var innertemplate = document.getElementsByClassName('blazor-inner-template');\n var i;\n var div;\n var j;\n if (!this.currentSymbol) {\n var selectionRect = adornerSvg.getElementById(this.adornerLayer.id + '_selected_region');\n if (selectionRect) {\n selectionRect.parentNode.removeChild(selectionRect);\n }\n this.clearHighlighter();\n var childNodes = getSelectorElement(this.element.id).childNodes;\n var child = void 0;\n for (var i_4 = childNodes.length; i_4 > 0; i_4--) {\n child = childNodes[i_4 - 1];\n child.parentNode.removeChild(child);\n }\n if (isBlazor() && !(this.diagramActions & DiagramAction.DragUsingMouse) && innertemplate.length > 0) {\n for (i = 0; i < this.selectedItems.userHandles.length; i++) {\n var template = this.selectedItems.userHandles[parseInt(i.toString(), 10)];\n div = document.getElementById(template.name + '_html_element');\n div.style.display = 'none';\n }\n }\n else {\n if (!isBlazor()) {\n var templates = getUserHandleLayer(this.element.id).childNodes;\n for (i = templates.length; i > 0; i--) {\n templates[i - 1].parentNode.removeChild(templates[i - 1]);\n }\n }\n }\n }\n else {\n var symbolBorder = adornerSvg.getElementById('borderRect_symbol');\n if (symbolBorder) {\n symbolBorder.parentNode.removeChild(symbolBorder);\n }\n }\n };\n /**\n * getWrapper method \\\n *\n * @returns { void } getWrapper method .\\\n * @param {Container} nodes - provide the node value.\n * @param {string} id - provide the childernCollection value.\n *\n * @private\n */\n Diagram.prototype.getWrapper = function (nodes, id) {\n var wrapper;\n id = nodes.id + '_' + id;\n var container = nodes instanceof Canvas ? nodes : this.getPortContainer(this.nameTable[nodes.id]);\n for (var i = 0; i < container.children.length; i++) {\n if (id === container.children[parseInt(i.toString(), 10)].id) {\n wrapper = container.children[parseInt(i.toString(), 10)];\n }\n }\n return wrapper;\n };\n /**\n * DiagramElement method \\\n *\n * @returns { void } getEndNodeWrapper method .\\\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @param {ConnectorModel} connector - provide the childernCollection value.\n * @param {boolean} source - provide the childernCollection value.\n *\n * @private\n */\n Diagram.prototype.getEndNodeWrapper = function (node, connector, source) {\n if (node.shape.type === 'Bpmn' && node.wrapper.children[0] instanceof Canvas) {\n if ((!isBlazor() && node.shape.shape === 'Activity') ||\n (isBlazor() && node.shadow.bpmnShape === 'Activity')) {\n if (source && node.shape.activity.subProcess.type === 'Transaction'\n && connector.sourcePortID) {\n var portId = connector.sourcePortID;\n var parent_4 = node.wrapper.children[0].children[0].children[2];\n if (parent_4.children) {\n for (var _i = 0, _a = parent_4.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.visible && child.id === node.id + '_' + portId) {\n return child.children[0];\n }\n }\n }\n }\n return node.wrapper.children[0].children[0].children[0];\n }\n return node.wrapper.children[0].children[0];\n }\n if (!this.containsMargin(node.wrapper.children[0])) {\n if (!node.children) {\n return node.wrapper.children[0];\n }\n }\n return node.wrapper;\n };\n Diagram.prototype.containsMargin = function (node) {\n return node.margin && (node.margin.left !== 0 || node.margin.top !== 0 || node.margin.right !== 0 || node.margin.bottom !== 0);\n };\n Diagram.prototype.focusOutEdit = function () {\n this.endEdit();\n // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode.\n if (this.mode === 'Canvas' && this.scroller.currentZoom !== 1) {\n this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.endEditCommand = function () {\n this.endEdit();\n this.textEditing = false;\n // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode.\n if (this.mode === 'Canvas' && this.scroller.currentZoom !== 1) {\n this.refreshDiagramLayer();\n }\n };\n /**\n * @private\n */\n /* tslint:disable */\n Diagram.prototype.endEdit = function () {\n return __awaiter(this, void 0, void 0, function () {\n var blazor, blazorInterop, oldValues, changedvalues, annotations, textArea, text, element, node, annotation, args, bpmnAnnotation, textWrapper, eventObj, annotation_1, index, deleteNode, eventObj, index, changesAnnotation, nodeIndex, oldnodes, newnodes, clonedObject, selectedNode, swimLaneNode, laneHeader, phaseHeader, collection, j;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.diagramActions & DiagramAction.TextEdit)) return [3 /*break*/, 11];\n blazor = 'Blazor';\n blazorInterop = 'sfBlazor';\n oldValues = void 0;\n changedvalues = void 0;\n annotations = {};\n this.enableServerDataBinding(false);\n if (isBlazor()) {\n this.canEnableBlazorObject = true;\n }\n textArea = document.getElementById(this.element.id + '_editBox');\n if (!((isBlazor() && textArea) || !isBlazor())) return [3 /*break*/, 11];\n text = textArea.value;\n EventHandler.remove(textArea, 'input', this.eventHandler.inputChange);\n EventHandler.remove(textArea, 'focusout', this.focusOutEdit);\n element = document.getElementById(this.element.id + '_editTextBoxDiv');\n node = void 0;\n node = this.nameTable[this.activeLabel.parentId];\n annotation = findAnnotation(node, this.activeLabel.id);\n args = { oldValue: this.activeLabel.text, newValue: text, cancel: false, element: node, annotation: annotation };\n if (isBlazor() && this.textEdit) {\n args = this.getBlazorTextEditArgs(args);\n }\n bpmnAnnotation = false;\n element.parentNode.removeChild(element);\n textWrapper = void 0;\n if (!this.bpmnModule) return [3 /*break*/, 5];\n node = this.bpmnModule.isBpmnTextAnnotation(this.activeLabel, this);\n textWrapper = this.bpmnModule.getTextAnnotationWrapper(node, this.activeLabel.id);\n bpmnAnnotation = node ? true : false;\n if (!bpmnAnnotation) return [3 /*break*/, 5];\n if (!(element.textContent !== text || text !== this.activeLabel.text)) return [3 /*break*/, 5];\n if (!isBlazor()) return [3 /*break*/, 3];\n if (!(this.textEdit && window && window[\"\" + blazor])) return [3 /*break*/, 2];\n eventObj = { 'EventName': 'textEdit', args: JSON.stringify(args) };\n return [4 /*yield*/, window[\"\" + blazorInterop].updateBlazorDiagramEvents(eventObj, this)];\n case 1:\n args = (_a.sent()) || args;\n _a.label = 2;\n case 2: return [3 /*break*/, 4];\n case 3:\n this.triggerEvent(DiagramEvent.textEdit, args);\n _a.label = 4;\n case 4:\n if (!args.cancel) {\n this.bpmnModule.updateTextAnnotationContent(node, this.activeLabel, text, this);\n }\n _a.label = 5;\n case 5:\n if (!!bpmnAnnotation) return [3 /*break*/, 10];\n node = this.nameTable[this.activeLabel.parentId];\n annotation_1 = findAnnotation(node, this.activeLabel.id);\n if (annotation_1 && !(annotation_1 instanceof Text)) {\n index = findObjectIndex(node, annotation_1.id, true);\n annotations[\"\" + index] = { content: annotation_1.content };\n oldValues = { annotations: annotations };\n }\n else {\n if (isBlazor() && (node.shape).type === 'Text') {\n oldValues = { shape: { textContent: node.shape.content } };\n }\n else {\n oldValues = { shape: { content: node.shape.content } };\n }\n }\n deleteNode = this.eventHandler.isAddTextNode(node, true);\n if (!(!deleteNode && (element.textContent !== text || text !== this.activeLabel.text))) return [3 /*break*/, 9];\n if (!isBlazor()) return [3 /*break*/, 8];\n if (!(window && window[\"\" + blazor] && this.textEdit)) return [3 /*break*/, 7];\n eventObj = { 'EventName': 'textEdit', args: JSON.stringify(args) };\n return [4 /*yield*/, window[\"\" + blazorInterop].updateBlazorDiagramEvents(eventObj, this)];\n case 6:\n args = (_a.sent()) || args;\n _a.label = 7;\n case 7: return [3 /*break*/, 9];\n case 8:\n this.triggerEvent(DiagramEvent.textEdit, args);\n _a.label = 9;\n case 9:\n if (!textWrapper) {\n textWrapper = this.getWrapper(node.wrapper, this.activeLabel.id);\n }\n if (annotation_1.content !== text && !args.cancel) {\n if (node.parentId && this.nameTable[node.parentId].shape.type === 'UmlClassifier'\n && text.indexOf('+') === -1 && text.indexOf('-') === -1 && text.indexOf('#') === -1\n && text.indexOf('~') === -1 && node.id.indexOf('_umlClass_header') === -1) {\n text = ' + ' + text;\n }\n if (node.isLane || node.isPhase) {\n this.protectPropertyChange(true);\n }\n if (!(annotation_1 instanceof Text)) {\n index = findObjectIndex(node, annotation_1.id, true);\n changesAnnotation = {};\n changesAnnotation[\"\" + index] = { content: text };\n changedvalues = { annotations: changesAnnotation };\n }\n else {\n if (isBlazor() && (node.shape).type === 'Text') {\n changedvalues = { shape: { textContent: text } };\n }\n else {\n changedvalues = { shape: { content: text } };\n }\n }\n nodeIndex = this.getIndex(node, node.id);\n if (nodeIndex) {\n oldnodes = {};\n oldnodes[\"\" + nodeIndex] = oldValues;\n newnodes = {};\n newnodes[\"\" + nodeIndex] = changedvalues;\n if (getObjectType(node) === Node) {\n this.onPropertyChanged({ nodes: newnodes }, { nodes: oldnodes });\n }\n else {\n this.onPropertyChanged({ connectors: newnodes }, { connectors: oldnodes });\n }\n }\n this.protectPropertyChange(true);\n if (isBlazor() && (node.shape).type === 'Text') {\n node.shape.textContent = text;\n }\n else {\n annotation_1.content = text;\n }\n this.protectPropertyChange(false);\n this.updateSelector();\n if (node.isLane || node.isPhase) {\n this.protectPropertyChange(false);\n }\n }\n if (deleteNode) {\n this.removeObjectsFromLayer(node);\n this.removeFromAQuad(node);\n delete this.nameTable[this.activeLabel.parentId];\n if (text !== '') {\n this.clearSelection();\n clonedObject = cloneObject(node);\n node = this.add(clonedObject);\n this.updateDiagramObject(node);\n this.commandHandler.oldSelectedObjects = cloneSelectedObjects(this);\n this.commandHandler.select(this.nameTable[node.id]);\n this.commandHandler.updateBlazorSelector();\n }\n }\n _a.label = 10;\n case 10:\n if (this.selectedItems.nodes.length) {\n selectedNode = this.nameTable[this.activeLabel.parentId];\n swimLaneNode = this.nameTable[selectedNode.parentId];\n if ((swimLaneNode && swimLaneNode.shape.type === 'SwimLane') || (selectedNode.shape.type === 'SwimLane')) {\n laneHeader = 'LaneHeaderParent';\n phaseHeader = 'PhaseHeaderParent';\n if ((selectedNode.shape.type === 'SwimLane')) {\n swimLaneNode = this.nameTable[this.activeLabel.parentId];\n selectedNode = node;\n }\n if ((selectedNode.isLane || selectedNode.isPhase)) {\n collection = selectedNode.isLane ?\n swimLaneNode.shape.lanes : swimLaneNode.shape.phases;\n for (j = 0; j < collection.length; j++) {\n if (collection[parseInt(j.toString(), 10)].id === (selectedNode[\"\" + laneHeader] || selectedNode[\"\" + phaseHeader])) {\n collection[parseInt(j.toString(), 10)].header.annotation.content = selectedNode.annotations[0].content;\n }\n }\n }\n else if (selectedNode.isHeader && swimLaneNode.shape.hasHeader) {\n swimLaneNode.shape.header.annotation.content = selectedNode.annotations[0].content;\n }\n }\n this.dataBind();\n }\n textWrapper.visible = true;\n this.updateDiagramObject(node);\n this.diagramActions = this.diagramActions & ~DiagramAction.TextEdit;\n if (this.activeLabel.isGroup) {\n this.endGroupAction();\n }\n this.activeLabel = { id: '', parentId: '', isGroup: false, text: undefined };\n this.commandHandler.getBlazorOldValues();\n if (isBlazor()) {\n this.canEnableBlazorObject = false;\n }\n this.enableServerDataBinding(true);\n _a.label = 11;\n case 11: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * getIndex method \\\n *\n * @returns { void } getIndex method .\\\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @param {string} id - provide the childernCollection value.\n *\n * @private\n */\n Diagram.prototype.getIndex = function (node, id) {\n //let index: number;\n var collection = (getObjectType(node) === Node) ? this.nodes : this.connectors;\n for (var i = 0; i < collection.length; i++) {\n if (collection[parseInt(i.toString(), 10)].id.toString() === id.toString()) {\n return i.toString();\n }\n }\n return null;\n };\n /* tslint:enable */\n Diagram.prototype.getBlazorTextEditArgs = function (args) {\n var element = getObjectType(args.element) === Connector ? { connectorId: args.element.id }\n : { nodeId: args.element.id };\n var annotation = {};\n if (getObjectType(args.element) === Node) {\n if (args.element.shape.type === 'Text') {\n annotation.textNode = args.element.shape;\n }\n else {\n annotation.annotationId = args.element.annotations[0].id;\n }\n }\n else {\n annotation.annotationId = args.element.annotations[0].id;\n }\n args = {\n oldValue: args.oldValue,\n newValue: args.newValue,\n cancel: args.cancel,\n element: element,\n annotation: annotation\n };\n return args;\n };\n /**\n * canLogChange method \\\n *\n * @returns { void } canLogChange method .\\\n *\n * @private\n */\n Diagram.prototype.canLogChange = function () {\n if ((this.diagramActions & DiagramAction.Render) && (!(this.diagramActions & DiagramAction.ToolAction)) &&\n (!(this.diagramActions & DiagramAction.UndoRedo)) && (!(this.diagramActions & DiagramAction.PublicMethod))) {\n return true;\n }\n else {\n return false;\n }\n };\n Diagram.prototype.modelChanged = function (newProp, oldProp) {\n if (newProp.connectors || oldProp.connectors || newProp.nodes || oldProp.connectors\n || newProp.pageSettings || oldProp.pageSettings || newProp.bridgeDirection || oldProp.bridgeDirection) {\n return true;\n }\n return false;\n };\n Diagram.prototype.resetDiagramActions = function (action) {\n var isAction = action ? true : false;\n if (this.diagramActions & DiagramAction.UndoRedo && (!isAction || (action === DiagramAction.UndoRedo))) {\n this.diagramActions = this.diagramActions & ~DiagramAction.UndoRedo;\n }\n if (this.diagramActions & DiagramAction.PublicMethod && (!isAction || action === DiagramAction.PublicMethod)) {\n this.diagramActions = this.diagramActions & ~DiagramAction.PublicMethod;\n }\n };\n /**\n * removeNode method \\\n *\n * @returns { void } removeNode method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {NodeModel} childernCollection - provide the childernCollection value.\n *\n * @private\n */\n Diagram.prototype.removeNode = function (node, childernCollection) {\n this.removeObjectsFromLayer(node);\n this.removeFromAQuad(this.nameTable[node.id]);\n var groupElement = document.getElementById(node.id + '_groupElement');\n delete this.nameTable[node.id];\n if (node.children) {\n delete this.groupTable[node.id];\n }\n if (isBlazor()) {\n for (var i = 0; i < this.nodes.length; i++) {\n if (node.id === this.nodes[parseInt(i.toString(), 10)].id) {\n this.UpdateBlazorDiagramModel(node, 'Node', i);\n }\n }\n }\n this.nodes.splice(this.nodes.indexOf(node), 1);\n if (groupElement && groupElement.children && groupElement.children.length > 0) {\n var beforeElement = undefined;\n for (var j = groupElement.children.length - 1; j >= 0; j--) {\n var childElement = groupElement.children[parseInt(j.toString(), 10)];\n if (childernCollection.length > 0 && childernCollection.indexOf(childElement.id.split('_')[0]) !== -1) {\n if (!beforeElement) {\n groupElement.parentNode.insertBefore(childElement, groupElement);\n }\n else {\n groupElement.parentNode.insertBefore(childElement, beforeElement);\n }\n beforeElement = childElement;\n }\n }\n }\n if (groupElement) {\n groupElement.parentNode.removeChild(groupElement);\n }\n };\n /**\n * deleteGroup method \\\n *\n * @returns { void } deleteGroup method .\\\n * @param {NodeModel} node - provide the source value.\n *\n * @private\n */\n Diagram.prototype.deleteGroup = function (node) {\n var elements = [];\n var tempNode = [];\n if (node.children) {\n tempNode = this.commandHandler.getChildren(node, elements);\n }\n this.UpdateBlazorDiagramModelCollection(node);\n for (var _i = 0, tempNode_1 = tempNode; _i < tempNode_1.length; _i++) {\n var nodes = tempNode_1[_i];\n if (this.nameTable[nodes.id]) {\n this.remove(nodes);\n }\n }\n };\n //helper methods - end region\n //property changes - start region\n /** @private */\n /**\n * updateObject method \\\n *\n * @returns { void } updateObject method .\\\n * @param {Node | Connector} actualObject - provide the source value.\n * @param {Node | Connector} oldObject - provide the target value.\n * @param {Node | Connector} changedProp - provide the layoutOrientation value.\n *\n * @private\n */\n Diagram.prototype.updateObject = function (actualObject, oldObject, changedProp) {\n if (!(this.diagramActions & DiagramAction.ToolAction)) {\n var bound = actualObject.wrapper.children[0].bounds;\n var checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, bound);\n if (!checkBoundaryConstraints) {\n if (actualObject instanceof Node) {\n var oldNode = oldObject;\n for (var _i = 0, _a = Object.keys(changedProp); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'width':\n actualObject.width = oldNode.width;\n break;\n case 'height':\n actualObject.height = oldNode.height;\n break;\n case 'offsetX':\n actualObject.offsetX = oldNode.offsetX;\n break;\n case 'offsetY':\n actualObject.offsetY = oldNode.offsetY;\n break;\n case 'rotateAngle':\n actualObject.rotateAngle = oldNode.rotateAngle;\n break;\n }\n }\n this.nodePropertyChange(actualObject, changedProp, oldObject);\n }\n else {\n for (var _b = 0, _c = Object.keys(changedProp); _b < _c.length; _b++) {\n var key = _c[_b];\n var oldConnector = oldObject;\n var actualSourcePoint = actualObject.sourcePoint;\n var actualTargetPoint = actualObject.targetPoint;\n switch (key) {\n case 'sourcePoint':\n actualSourcePoint.x = oldConnector.sourcePoint.x || actualSourcePoint.x;\n actualSourcePoint.y = oldConnector.sourcePoint.y || actualSourcePoint.y;\n break;\n case 'targetPoint':\n actualTargetPoint.x = oldConnector.targetPoint.x || actualTargetPoint.x;\n actualTargetPoint.y = oldConnector.targetPoint.y || actualTargetPoint.y;\n }\n }\n this.connectorPropertyChange(actualObject, changedProp, oldObject);\n }\n }\n }\n };\n Diagram.prototype.nodePropertyChangeExtend = function (actualObject, oldObject, node, update) {\n if (node.style !== undefined && actualObject.shape.type !== 'Bpmn') {\n updateStyle(node.style, actualObject.wrapper.children[0]);\n update = true;\n }\n if (node.shadow !== undefined) {\n this.updateShadow(actualObject.shadow, node.shadow);\n update = true;\n }\n if (node.constraints !== undefined) {\n if ((oldObject.constraints & NodeConstraints.Select) &&\n (!(node.constraints & NodeConstraints.Select)) && isSelected(this, actualObject)) {\n this.clearSelection();\n }\n else {\n this.updateThumbConstraints(this.selectedItems.nodes, this.selectedItems);\n this.updateSelector();\n update = true;\n }\n }\n this.swimLaneNodePropertyChange(actualObject, oldObject, node, update);\n return update;\n };\n /* tslint:disable */\n Diagram.prototype.swimLaneNodePropertyChange = function (actualObject, oldObject, node, update) {\n if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol) {\n if (oldObject.shape) {\n var shape = node.shape;\n var actualShape = actualObject.shape;\n var orientation_1 = (actualShape.orientation === 'Horizontal') ? true : false;\n var padding = actualShape.padding;\n var oldShape = oldObject.shape;\n var grid = actualObject.wrapper.children[0];\n var oldObjects = void 0;\n var newObjects = void 0;\n var id = void 0;\n if (oldShape.lanes || oldShape.phases) {\n if (oldShape.lanes) {\n for (var _i = 0, _a = Object.keys(shape.lanes); _i < _a.length; _i++) {\n var count = _a[_i];\n var indexValue = Number(count);\n var lane = oldShape.lanes[parseInt(indexValue.toString(), 10)];\n var laneIndex = void 0;\n var newLane = shape.lanes[parseInt(indexValue.toString(), 10)];\n if (newLane && newLane.header) {\n id = actualShape.lanes[parseInt(indexValue.toString(), 10)].header.id;\n oldObjects = lane.header;\n newObjects = newLane.header;\n this.nodePropertyChange(this.nameTable[\"\" + id], oldObjects, newObjects);\n }\n if (lane.children) {\n for (var _b = 0, _c = Object.keys(lane.children); _b < _c.length; _b++) {\n var childNodeIndex = _c[_b];\n id = actualShape.lanes[parseInt(indexValue.toString(), 10)].children[Number(childNodeIndex)].id;\n var node_1 = this.nameTable[\"\" + id];\n oldObjects = lane.children[Number(childNodeIndex)];\n newObjects = newLane.children[Number(childNodeIndex)];\n this.nodePropertyChange(node_1, oldObjects, newObjects);\n }\n }\n if (lane.width && !orientation_1) {\n laneIndex = (actualShape.phases && actualShape.phaseSize) ? indexValue + 1 : indexValue;\n grid.updateColumnWidth(laneIndex, newLane.width, true, padding);\n this.updateDiagramElementQuad();\n }\n if (lane.height && orientation_1) {\n laneIndex = (actualShape.header && actualShape.hasHeader) ? indexValue + 1 : indexValue;\n laneIndex += (actualShape.phases && actualShape.phaseSize) ? 1 : 0;\n grid.updateRowHeight(laneIndex, newLane.height, true, padding);\n this.updateDiagramElementQuad();\n }\n }\n }\n if (shape.phases) {\n for (var _d = 0, _e = Object.keys(shape.phases); _d < _e.length; _d++) {\n var key = _e[_d];\n var indexValue = Number(key);\n var phase = shape.phases[parseInt(indexValue.toString(), 10)];\n var size = void 0;\n var rowIndex = (actualShape.header && actualShape.hasHeader) ? 1 : 0;\n if (phase && phase.header) {\n id = actualShape.phases[parseInt(indexValue.toString(), 10)].header.id;\n oldObjects = oldShape.phases[parseInt(indexValue.toString(), 10)].header;\n newObjects = phase.header;\n this.nodePropertyChange(this.nameTable[\"\" + id], oldObjects, newObjects);\n }\n if (phase.offset) {\n if (indexValue === 0) {\n size = phase.offset;\n }\n else {\n var previousPhase = actualShape.phases[indexValue - 1];\n size = phase.offset - previousPhase.offset;\n if (size <= 0) {\n size = phase.offset;\n }\n }\n if (orientation_1) {\n grid.updateColumnWidth(indexValue, size, true, padding);\n updatePhaseMaxWidth(actualObject, this, grid.rows[parseInt(rowIndex.toString(), 10)].cells[parseInt(indexValue.toString(), 10)], indexValue);\n }\n else {\n grid.updateRowHeight(rowIndex + indexValue, size, true, padding);\n }\n }\n }\n }\n }\n if (shape.phaseSize !== undefined && actualShape.phases.length) {\n if (shape.phaseSize === 0 || oldShape.phaseSize === 0) {\n if (oldShape.phaseSize) {\n if (orientation_1) {\n grid.removeRow((actualShape.header && actualShape.hasHeader) ? 1 : 0);\n actualObject.height = actualObject.wrapper.height = grid.height;\n }\n else {\n if (actualShape.header && actualShape.hasHeader) {\n grid.rows[0].cells[1].children = grid.rows[0].cells[0].children;\n grid.rows[0].cells[1].columnSpan = grid.rows[0].cells[0].columnSpan - 1;\n grid.rows[0].cells[0].children = [];\n }\n grid.removeColumn(0);\n }\n }\n else {\n if (orientation_1) {\n var rowDef = new RowDefinition();\n rowDef.height = shape.phaseSize;\n grid.addRow((actualShape.header && actualShape.hasHeader) ? 1 : 0, rowDef, true);\n actualObject.height = actualObject.wrapper.height += shape.phaseSize;\n }\n else {\n var colDef = new ColumnDefinition();\n colDef.width = shape.phaseSize;\n grid.addColumn(0, colDef, true);\n if (actualShape.header && actualShape.hasHeader) {\n grid.rows[0].cells[0].children = grid.rows[0].cells[1].children;\n grid.rows[0].cells[1].children = [];\n grid.rows[0].cells[1].columnSpan = 1;\n grid.rows[0].cells[1].minWidth = undefined;\n grid.rows[0].cells[0].columnSpan = actualShape.lanes.length + 1;\n }\n }\n for (var k = 0; k < actualShape.phases.length; k++) {\n if (actualShape.phases[parseInt(k.toString(), 10)].id === '') {\n actualShape.phases[parseInt(k.toString(), 10)].id = randomId();\n }\n phaseDefine(grid, this, actualObject, (actualShape.header && actualShape.hasHeader) ? 1 : 0, orientation_1, k);\n }\n }\n }\n else {\n if (orientation_1) {\n grid.updateRowHeight((actualShape.header && actualShape.hasHeader) ? 1 : 0, shape.phaseSize, false);\n }\n else {\n grid.updateColumnWidth(0, shape.phaseSize, false);\n }\n }\n }\n if (actualShape.header && actualShape.hasHeader && oldShape.header) {\n var id_1 = grid.rows[0].cells[0].children[0].id;\n var headerNode = this.nameTable[\"\" + id_1];\n this.nodePropertyChange(headerNode, (oldShape.header), shape.header);\n }\n actualObject.height = actualObject.wrapper.height = grid.height;\n actualObject.width = actualObject.wrapper.width = grid.width;\n }\n else if (oldObject.constraints) {\n var oldSelectConstraints = (oldObject.constraints & NodeConstraints.Select);\n var newSelectConstraints = (node.constraints & NodeConstraints.Select);\n if (oldSelectConstraints !== newSelectConstraints) {\n var shape = actualObject.shape;\n // Header - constraints\n var headerNode = this.nameTable[actualObject.id + shape.header.id];\n headerNode.constraints = (!newSelectConstraints) ? headerNode.constraints & ~NodeConstraints.Select :\n headerNode.constraints | NodeConstraints.Select;\n // Phase - Constraints\n var phaseNode = void 0;\n if (shape.phaseSize > 0) {\n for (var i = 0; i < shape.phases.length; i++) {\n phaseNode = this.nameTable[actualObject.id + shape.phases[parseInt(i.toString(), 10)].id + '_header'];\n phaseNode.constraints = (!newSelectConstraints) ? phaseNode.constraints & ~NodeConstraints.Select :\n phaseNode.constraints | NodeConstraints.Select;\n }\n }\n // Header - Constraints\n var laneNode = void 0;\n var laneHeader = void 0;\n var value = shape.phases.length || 1;\n for (var i = 0; i < shape.lanes.length; i++) {\n for (var l = 0; l < value; l++) {\n laneNode = this.nameTable[actualObject.id + shape.lanes[parseInt(i.toString(), 10)].id + l];\n laneNode.constraints = (!newSelectConstraints) ? laneNode.constraints & ~NodeConstraints.Select :\n laneNode.constraints | NodeConstraints.Select;\n if (l === 0) {\n laneHeader = this.nameTable[actualObject.id + shape.lanes[parseInt(i.toString(), 10)].id + '_' + l + '_header'];\n laneHeader.constraints = (!newSelectConstraints) ? laneHeader.constraints & ~NodeConstraints.Select :\n laneHeader.constraints | NodeConstraints.Select;\n }\n }\n }\n }\n }\n update = true;\n }\n return update;\n };\n /** @private */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Diagram.prototype.insertValue = function (oldNodeObject, isNode) {\n if (!(this.blazorActions & BlazorAction.GroupClipboardInProcess)) {\n var value = void 0;\n var oldObjects = isNode ? this.oldNodeObjects : this.oldConnectorObjects;\n for (var i = 0; i < oldObjects.length; i++) {\n if (oldObjects[parseInt(i.toString(), 10)].id === oldNodeObject.id) {\n value = true;\n }\n }\n if (!value) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n isNode ? (this.oldNodeObjects.push(oldNodeObject)) : this.oldConnectorObjects.push(oldNodeObject);\n }\n }\n };\n /* tslint:disable */\n /** @private */\n // eslint-disable-next-line max-len\n Diagram.prototype.nodePropertyChange = function (actualObject, oldObject, node, isLayout, rotate, propertyChange) {\n if (this.canEnableBlazorObject && actualObject.id !== 'helper') {\n var node_2 = cloneObject(actualObject);\n this.insertValue(node_2, true);\n }\n var existingBounds = actualObject.wrapper.outerBounds;\n var existingInnerBounds = actualObject.wrapper.bounds;\n var updateConnector = false;\n var i;\n var j;\n var offsetX;\n var offsetY;\n var update;\n var tx;\n var ty;\n if (node.width !== undefined) {\n if (!actualObject.children) {\n actualObject.wrapper.children[0].width = node.width;\n update = true;\n updateConnector = true;\n }\n else if (!actualObject.container) {\n this.scaleObject(actualObject, node.width, true);\n }\n else {\n actualObject.wrapper.width = node.width;\n }\n }\n if (node.height !== undefined) {\n if (!actualObject.children) {\n actualObject.wrapper.children[0].height = node.height;\n update = true;\n updateConnector = true;\n }\n else if (!actualObject.container) {\n this.scaleObject(actualObject, node.height, false);\n }\n else {\n actualObject.wrapper.height = node.height;\n }\n }\n update = this.nodePropertyChangeExtend(actualObject, oldObject, node, update);\n if (node.constraints !== undefined && canShadow(oldObject) !== canShadow(node)) {\n actualObject.wrapper.children[0].shadow = canShadow(actualObject) ? actualObject.shadow : null;\n }\n if (node.offsetX !== undefined) {\n if (actualObject.wrapper.flip !== 'None') {\n if (actualObject.offsetX !== actualObject.wrapper.offsetX && oldObject.offsetX !== undefined) {\n var offsetX_1 = node.offsetX - oldObject.offsetX;\n actualObject.wrapper.offsetX = actualObject.wrapper.offsetX + offsetX_1;\n this.updateFlipOffset(actualObject.wrapper, offsetX_1, 0, actualObject.wrapper.flip);\n }\n }\n else {\n actualObject.wrapper.offsetX = node.offsetX;\n }\n update = true;\n updateConnector = true;\n }\n if (node.offsetY !== undefined) {\n if (actualObject.wrapper.flip !== 'None') {\n if (actualObject.offsetY !== actualObject.wrapper.offsetY && oldObject.offsetY !== undefined) {\n var offsetY_1 = node.offsetY - oldObject.offsetY;\n actualObject.wrapper.offsetY = actualObject.wrapper.offsetY + offsetY_1;\n this.updateFlipOffset(actualObject.wrapper, 0, offsetY_1, actualObject.wrapper.flip);\n }\n }\n else {\n actualObject.wrapper.offsetY = node.offsetY;\n }\n update = true;\n updateConnector = true;\n }\n if (node.padding !== undefined) {\n actualObject.wrapper.padding.left = node.padding.left !== undefined ? node.padding.left : actualObject.wrapper.padding.left;\n actualObject.wrapper.padding.right = node.padding.right !== undefined ? node.padding.right : actualObject.wrapper.padding.right;\n actualObject.wrapper.padding.top = node.padding.top !== undefined ? node.padding.top : actualObject.wrapper.padding.top;\n actualObject.wrapper.padding.bottom = node.padding.bottom !== undefined ? node.padding.bottom : actualObject.wrapper.padding.bottom;\n update = true;\n }\n if (node.pivot !== undefined) {\n actualObject.wrapper.pivot = node.pivot;\n update = true;\n }\n if (node.minWidth !== undefined) {\n actualObject.wrapper.minWidth = actualObject.wrapper.children[0].minWidth = node.minWidth;\n update = true;\n updateConnector = true;\n }\n if (node.minHeight !== undefined) {\n actualObject.wrapper.minHeight = actualObject.wrapper.children[0].minHeight = node.minHeight;\n update = true;\n updateConnector = true;\n }\n if (node.maxWidth !== undefined) {\n actualObject.wrapper.maxWidth = node.maxWidth;\n update = true;\n updateConnector = true;\n }\n if (node.maxHeight !== undefined) {\n actualObject.wrapper.maxHeight = node.maxHeight;\n update = true;\n updateConnector = true;\n }\n if (node.flip !== undefined) {\n actualObject.wrapper.flip = node.flip;\n update = true;\n updateConnector = true;\n if (actualObject.wrapper.elementActions & ElementAction.ElementIsGroup) {\n alignElement(actualObject.wrapper, actualObject.offsetX, actualObject.offsetY, this, node.flip);\n if (actualObject && actualObject.children) {\n for (var _i = 0, _a = actualObject.children; _i < _a.length; _i++) {\n var child = _a[_i];\n var updateNode = this.nameTable[\"\" + child];\n updateNode.wrapper.flip = node.flip;\n this.updatePorts(updateNode, node.flip);\n }\n }\n //EJ2-826617 - Flip option for BPMN node\n else {\n this.updatePorts(actualObject, actualObject.flip);\n }\n }\n else {\n if (actualObject.flipMode && (actualObject.flipMode === 'Port' || actualObject.flipMode === 'All')) {\n this.updatePorts(actualObject, node.flip);\n }\n //EJ2-826617 - Flip 'None' is not working properly\n else if (actualObject.flip === 'None') {\n this.updatePorts(actualObject, node.flip);\n }\n }\n }\n // EJ2-71981 - Flip mode \"Port\" is not working properly while dragging multiselected node\n if (node.flipMode !== undefined) {\n update = true;\n updateConnector = true;\n if (actualObject.flipMode && (actualObject.flipMode === 'Port' || actualObject.flipMode === 'All')) {\n this.updatePorts(actualObject, actualObject.flip);\n }\n //EJ2-826617 - Flip mode 'Label' does not triggers the port\n else if (actualObject.flipMode === 'Label') {\n this.updatePorts(actualObject, 'None');\n }\n //EJ2-826617 - Flip mode 'None' is not working properly\n else if (actualObject.flipMode === 'None') {\n this.updatePorts(actualObject, actualObject.flipMode);\n }\n }\n if (node.rotateAngle !== undefined && (actualObject.constraints & NodeConstraints.Rotate)) {\n if (actualObject.children && rotate) {\n // eslint-disable-next-line max-len\n this.commandHandler.rotateObjects(actualObject, [actualObject], actualObject.rotateAngle - actualObject.wrapper.rotateAngle, { x: actualObject.offsetX, y: actualObject.offsetY }, false);\n }\n actualObject.wrapper.rotateAngle = node.rotateAngle;\n update = true;\n updateConnector = true;\n }\n if (node.backgroundColor !== undefined) {\n actualObject.wrapper.style.fill = node.backgroundColor;\n }\n if (node.visible !== undefined) {\n this.updateElementVisibility(actualObject.wrapper, actualObject, actualObject.visible);\n }\n if (node.shape !== undefined && actualObject.shape.type !== 'Bpmn') {\n update = true;\n updateShape(node, actualObject, oldObject, this);\n updateConnector = true;\n }\n if (node.margin) {\n update = true;\n this.updateMargin(actualObject, node);\n updateConnector = true;\n }\n if ((((node.shape !== undefined && (node.shape.type === undefined)) || node.width !== undefined\n || node.height !== undefined || node.style !== undefined) && actualObject.shape.type === 'Bpmn' && this.bpmnModule)\n || (isBlazor() && node && node.shape && node.shape.type === 'Bpmn')) {\n update = true;\n updateConnector = true;\n this.bpmnModule.updateBPMN(node, oldObject, actualObject, this);\n }\n if (actualObject.shape.type === 'UmlActivity' && ((!isBlazor() && actualObject.shape.shape === 'FinalNode') ||\n (isBlazor() && actualObject.shape.umlActivityShape === 'FinalNode'))) {\n update = true;\n updateConnector = true;\n this.updateUMLActivity(node, oldObject, actualObject, this);\n }\n if ((actualObject.shape && actualObject.shape.type === 'UmlClassifier') || (actualObject.parentId &&\n this.nameTable[actualObject.parentId] && this.nameTable[actualObject.parentId].shape.type === 'UmlClassifier')) {\n update = true;\n updateConnector = true;\n }\n if (node.ports !== undefined) {\n for (var _b = 0, _c = Object.keys(node.ports); _b < _c.length; _b++) {\n var key = _c[_b];\n var index = Number(key);\n update = true;\n var changedObject = node.ports[\"\" + key];\n var actualPort = actualObject.ports[parseInt(index.toString(), 10)];\n this.updatePort(changedObject, actualPort, actualObject.wrapper);\n updateConnector = true;\n }\n }\n if (node.annotation !== undefined || node.annotations !== undefined || node.width !== undefined) {\n for (var _d = 0, _e = Object.keys(node.annotations || actualObject.annotations); _d < _e.length; _d++) {\n var key = _e[_d];\n var index = Number(key);\n update = true;\n var changedObject = void 0;\n if (node.annotation) {\n changedObject = node.annotation;\n }\n else {\n changedObject = node.annotations ? node.annotations[\"\" + key] : actualObject.annotations;\n }\n var actualAnnotation = actualObject.annotations[parseInt(index.toString(), 10)];\n if (actualAnnotation) {\n var updateSize = actualObject.width ? true : false;\n this.updateAnnotation(changedObject, actualAnnotation, actualObject.wrapper, actualObject, updateSize);\n var swimLaneNode = this.nameTable[actualObject.parentId];\n if ((swimLaneNode && swimLaneNode.shape.type === 'SwimLane')) {\n var laneHeader = 'LaneHeaderParent';\n var phaseHeader = 'PhaseHeaderParent';\n if ((actualObject.isLane || actualObject.isPhase)) {\n var collection = actualObject.isLane ?\n swimLaneNode.shape.lanes : swimLaneNode.shape.phases;\n for (var j_2 = 0; j_2 < collection.length; j_2++) {\n if (collection[parseInt(j_2.toString(), 10)].id === (actualObject[\"\" + laneHeader] || actualObject[\"\" + phaseHeader])) {\n collection[parseInt(j_2.toString(), 10)].header.annotation.content = actualObject.annotations[0].content;\n collection[parseInt(j_2.toString(), 10)].header.annotation.style = actualObject.annotations[0].style;\n break;\n }\n }\n }\n }\n }\n }\n }\n if (node.expandIcon !== undefined || node.collapseIcon !== undefined || node.isExpanded !== undefined) {\n this.updateIcon(actualObject);\n this.updateDefaultLayoutIcons(actualObject);\n if (node.isExpanded !== undefined) {\n this.canExpand = true;\n this.commandHandler.expandNode(actualObject, this);\n }\n update = true;\n this.canExpand = false;\n }\n if (node.fixedUserHandles !== undefined) {\n var index = void 0;\n var changedObject = void 0;\n var actualfixedUserHandle = void 0;\n for (var _f = 0, _g = Object.keys(node.fixedUserHandles); _f < _g.length; _f++) {\n var key = _g[_f];\n index = Number(key);\n update = true;\n if (node.fixedUserHandles[parseInt(index.toString(), 10)]) {\n changedObject = node.fixedUserHandles[parseInt(index.toString(), 10)];\n }\n actualfixedUserHandle = actualObject.fixedUserHandles[parseInt(index.toString(), 10)];\n if (actualfixedUserHandle) {\n this.updateNodefixedUserHandle(changedObject, actualfixedUserHandle, actualObject.wrapper, actualObject);\n }\n }\n }\n if (node.tooltip !== undefined) {\n this.updateTooltip(actualObject, node);\n }\n if (update) {\n if (this.bpmnModule !== undefined) {\n // eslint-disable-next-line max-len\n this.bpmnModule.updateTextAnnotationProp(actualObject, { offsetX: (oldObject.offsetX || actualObject.offsetX), offsetY: (oldObject.offsetY || actualObject.offsetY) }, this);\n }\n if (this.checkSelectedItem(actualObject) && actualObject.wrapper.children[0] instanceof TextElement) {\n actualObject.wrapper.children[0].refreshTextElement();\n }\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height), actualObject.id, this.onLoadImageSize.bind(this));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n this.updateObject(actualObject, oldObject, node);\n if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol && !(this.diagramActions & DiagramAction.ToolAction)) {\n updateHeaderMaxWidth(this, actualObject);\n var grid = actualObject.wrapper.children[0];\n var shape = actualObject.shape;\n var column = grid.columnDefinitions().length;\n if (shape.orientation === 'Horizontal') {\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n updatePhaseMaxWidth(actualObject, this, grid.rows[parseInt(index.toString(), 10)].cells[column - 1], column - 1);\n }\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n }\n if ((!(this.diagramActions & DiagramAction.ToolAction)) || (this.diagramActions & DiagramAction.UndoRedo)) {\n if (this.checkSelectedItem(actualObject)) {\n this.updateSelector();\n }\n }\n if (existingBounds.equals(existingBounds, actualObject.wrapper.outerBounds) === false) {\n this.updateQuad(actualObject);\n // EJ2-57436 - Added the below code to check if node has parent id or not.\n // If node has parentId means then send the parent node to updatequad method to add the parent node in negative quadrant\n if (actualObject.parentId && this.nameTable[actualObject.parentId]) {\n var parentNode = this.nameTable[actualObject.parentId];\n this.updateQuad(parentNode);\n }\n }\n if (!isLayout) {\n // eslint-disable-next-line max-len\n this.commandHandler.connectorSegmentChange(actualObject, existingInnerBounds, (node.rotateAngle !== undefined) ? true : false);\n // if (updateConnector) {\n // this.updateConnectorEdges(actualObject);\n // }\n }\n else {\n if (actualObject && actualObject.visible && actualObject.outEdges) {\n this.updateIconVisibility(actualObject, (actualObject.outEdges.length === 0 ? false : true));\n }\n }\n if (this.bpmnModule !== undefined) {\n this.bpmnModule.updateDocks(actualObject, this);\n }\n if (!node.annotations || !actualObject.processId) {\n this.updateGroupOffset(actualObject);\n }\n // if (existingBounds.equals(existingBounds, actualObject.wrapper.outerBounds) === false) { this.updateQuad(actualObject); }\n // EJ2-42005 - The parent of the actualObject is not measured and arranged when a node or connector is selected.\n // The condition restricts the measure and arrange of the actualObject whenever a node or connector is selected.\n // Commented @Dheepshiva\n // let objects: (NodeModel | ConnectorModel)[] = [];\n // objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n // if (objects.length === 0) {\n if (actualObject.parentId && this.nameTable[actualObject.parentId]) {\n var parent_5 = this.nameTable[actualObject.parentId];\n parent_5.wrapper.measure(new Size(parent_5.wrapper.width, actualObject.wrapper.height));\n parent_5.wrapper.arrange(parent_5.wrapper.desiredSize);\n parent_5.offsetX = parent_5.wrapper.offsetX;\n parent_5.offsetY = parent_5.wrapper.offsetY;\n }\n // }\n if (existingInnerBounds.equals(existingInnerBounds, actualObject.wrapper.bounds) === false) {\n if (actualObject.children) {\n this.updateGroupOffset(actualObject);\n }\n }\n if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol && (this.diagramActions & DiagramAction.Render)) {\n var connectors = getConnectors(this, actualObject.wrapper.children[0], undefined, true);\n updateConnectorsProperties(connectors, this);\n }\n if (!this.preventNodesUpdate) {\n if (!canVitualize(this) || (canVitualize(this) && this.scroller.oldCollectionObjects.indexOf(actualObject.id) > -1)) {\n if (this.diagramActions & DiagramAction.PreventZIndexOnDragging) {\n this.updateDiagramObject(actualObject, true);\n }\n else {\n this.updateDiagramObject(actualObject);\n // EJ2-63939 - Added below code to provide drag support for the bpmn text annotation while drag the swimlane\n if (this.bpmnModule !== undefined && actualObject.shape.type === 'SwimLane' && actualObject.isTextNode) {\n var swimlane = actualObject;\n for (var i_5 = 0; i_5 < swimlane.shape.lanes.length; i_5++) {\n // EJ2-63939 - Get the lane from swimlane\n var lane = swimlane.shape.lanes[parseInt(i_5.toString(), 10)];\n for (var j_3 = 0; j_3 < lane.children.length; j_3++) {\n var children = lane.children[parseInt(j_3.toString(), 10)];\n // EJ2-63939 - Check whether the swimlane children type is BPMN or not.\n if (children.shape.type === 'Bpmn') {\n this.bpmnModule.updateTextAnnotationProp(children, { offsetX: (children.offsetX), offsetY: (children.offsetY) }, this, false);\n }\n }\n }\n }\n }\n }\n if (!isLayout && updateConnector) {\n if (this.lineRoutingModule && this.diagramActions && (this.constraints & DiagramConstraints.LineRouting) && actualObject.id !== 'helper') {\n if (!(this.diagramActions & DiagramAction.ToolAction)) {\n this.lineRoutingModule.renderVirtualRegion(this, true);\n }\n }\n this.updateConnectorEdges(actualObject);\n if (actualObject.id !== 'helper' && !(this.diagramActions & DiagramAction.ToolAction)) {\n var objects = this.spatialSearch.findObjects(actualObject.wrapper.outerBounds);\n for (var i_6 = 0; i_6 < objects.length; i_6++) {\n var object = objects[parseInt(i_6.toString(), 10)];\n if (object instanceof Connector) {\n this.connectorPropertyChange(objects[parseInt(i_6.toString(), 10)], {}, {\n sourceID: object.sourceID,\n targetID: object.targetID,\n sourcePortID: object.sourcePortID,\n targetPortID: object.targetPortID,\n sourcePoint: object.sourcePoint,\n targetPoint: object.targetPoint\n });\n }\n }\n }\n }\n }\n if (actualObject.status !== 'New' && this.diagramActions) {\n actualObject.status = 'Update';\n }\n }\n if (!propertyChange) {\n var element = actualObject;\n var args = {\n element: element, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: oldObject, newValue: node\n };\n if (isBlazor() && this.propertyChange) {\n args.element = { node: cloneBlazorObject(element) };\n args.oldValue = { node: cloneBlazorObject(oldObject) };\n args.newValue = { node: cloneBlazorObject(node) };\n }\n this.triggerEvent(DiagramEvent.propertyChange, args);\n }\n };\n Diagram.prototype.updatePorts = function (actualObject, flip) {\n if (actualObject && actualObject.ports.length > 0) {\n for (var _i = 0, _a = Object.keys(actualObject.ports); _i < _a.length; _i++) {\n var key = _a[_i];\n var index = Number(key);\n var actualPort = actualObject.ports[parseInt(index.toString(), 10)];\n var portWrapper = this.getWrapper(actualObject.wrapper, actualPort.id);\n portWrapper = updatePortEdges(portWrapper, flip, actualPort);\n portWrapper.relativeMode = 'Point';\n portWrapper.measure(new Size(portWrapper.width, portWrapper.height));\n portWrapper.arrange(portWrapper.desiredSize);\n }\n }\n };\n Diagram.prototype.updateFlipOffset = function (element, diffX, diffY, flip) {\n if (element.hasChildren()) {\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (flip === 'Horizontal' || flip === 'Both') {\n child.flipOffset.x = child.flipOffset.x + diffX;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n child.flipOffset.y = child.flipOffset.y + diffY;\n }\n if (child instanceof Canvas || child instanceof Container) {\n this.updateFlipOffset(child, diffX, diffY, flip);\n }\n }\n }\n };\n Diagram.prototype.updateUMLActivity = function (changedProp, oldObject, actualObject, diagram) {\n var sizeChanged = changedProp.width !== undefined || changedProp.height !== undefined;\n if (sizeChanged) {\n var innerFinalNode = actualObject.wrapper.children[0].children[0];\n innerFinalNode.width = changedProp.width;\n innerFinalNode.height = changedProp.height;\n var outerFinalNode = actualObject.wrapper.children[0].children[1];\n outerFinalNode.width = changedProp.width / 1.5;\n outerFinalNode.height = changedProp.height / 1.5;\n }\n };\n Diagram.prototype.updateConnectorProperties = function (connector) {\n if (this.preventConnectorsUpdate) {\n var index = this.selectionConnectorsList.indexOf(connector);\n if (index === -1 && connector) {\n this.selectionConnectorsList.push(connector);\n }\n }\n else {\n var conn = {\n sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint, sourceID: connector.sourceID,\n targetID: connector.targetID, sourcePortID: connector.sourcePortID, targetPortID: connector.targetPortID\n };\n this.connectorPropertyChange(connector, {}, conn, undefined, true);\n }\n };\n /**\n * updateConnectorEdges method \\\n *\n * @returns { void } Updates the connectorPropertyChange of the diagram container .\\\n * @param {Node} actualObject - provide the actualObject value.\n *\n * @private\n */\n Diagram.prototype.updateConnectorEdges = function (actualObject) {\n if (actualObject.inEdges.length > 0) {\n for (var j = 0; j < actualObject.inEdges.length; j++) {\n this.updateConnectorProperties(this.nameTable[actualObject.inEdges[parseInt(j.toString(), 10)]]);\n }\n }\n if (actualObject.outEdges.length > 0) {\n for (var k = 0; k < actualObject.outEdges.length; k++) {\n this.updateConnectorProperties(this.nameTable[actualObject.outEdges[parseInt(k.toString(), 10)]]);\n }\n }\n if (actualObject.parentId && this.nameTable[actualObject.parentId]) {\n this.updateConnectorEdges(this.nameTable[actualObject.parentId]);\n }\n };\n /* tslint:enable */\n Diagram.prototype.connectorProprtyChangeExtend = function (actualObject, oldProp, newProp, updateSelector) {\n if (newProp.type !== undefined && newProp.type !== oldProp.type) {\n if (actualObject.segments.length > 0 && newProp.segments === undefined) {\n actualObject.segments = [];\n }\n }\n if ((newProp.shape !== undefined) && actualObject.shape !== undefined &&\n actualObject.shape && actualObject.shape.type === 'Bpmn' && this.bpmnModule) {\n this.bpmnModule.updateBPMNConnector(actualObject, oldProp, newProp, this);\n }\n if (actualObject.constraints !== undefined) {\n this.updateThumbConstraints(this.selectedItems.connectors, this.selectedItems);\n return updateSelector = true;\n }\n return updateSelector;\n };\n /* tslint:disable */\n /**\n * Updates the connectorPropertyChange of the diagram container \\\n *\n * @returns { void } Updates the connectorPropertyChange of the diagram container .\\\n * @param {DiagramElement} actualObject - provide the actualObject value.\n * @param {boolean} oldProp - provide the oldProp value.\n * @param {boolean} newProp - provide the newProp value.\n * @param {boolean} disableBridging - provide the disableBridging value.\n * @param {boolean} propertyChange - provide the propertyChange value.\n *\n * @private\n */\n Diagram.prototype.connectorPropertyChange = function (actualObject, oldProp, newProp, disableBridging, propertyChange) {\n if (this.canEnableBlazorObject) {\n var node = cloneObject(actualObject);\n this.insertValue(node, false);\n }\n var existingBounds = actualObject.wrapper.bounds;\n var updateSelector = false;\n var points = [];\n updateSelector = this.connectorProprtyChangeExtend(actualObject, oldProp, newProp, updateSelector);\n var inPort;\n var outPort;\n var source;\n var target;\n if (newProp.visible !== undefined) {\n this.updateElementVisibility(actualObject.wrapper, actualObject, actualObject.visible);\n }\n if (newProp.sourcePoint !== undefined || newProp.targetPoint !== undefined\n || newProp.sourceID !== undefined || newProp.targetID !== undefined || newProp.targetPadding !== undefined ||\n newProp.sourcePortID !== undefined || newProp.targetPortID !== undefined || newProp.sourcePadding !== undefined ||\n newProp.type !== undefined || newProp.segments !== undefined || newProp.flip !== undefined) {\n if ((newProp.sourceID !== undefined && newProp.sourceID !== oldProp.sourceID) || newProp.sourcePortID) {\n var sourceNode = this.nameTable[actualObject.sourceID];\n outPort = this.findInOutConnectPorts(sourceNode, false);\n if (!sourceNode || (canOutConnect(sourceNode) || (actualObject.sourcePortID !== '' && canPortOutConnect(outPort)))) {\n actualObject.sourceWrapper = sourceNode ? this.getEndNodeWrapper(sourceNode, actualObject, true) : undefined;\n if (actualObject.sourcePortID && newProp.sourcePortID === undefined) {\n actualObject.sourcePortWrapper = sourceNode ? this.getWrapper(sourceNode.wrapper, actualObject.sourcePortID) : undefined;\n }\n this.removePortEdges(this.nameTable[oldProp.sourceID] || sourceNode, oldProp.sourcePortID || actualObject.sourcePortID, actualObject.id, false);\n }\n if (newProp.sourceID !== undefined && oldProp.sourceID !== undefined && oldProp.sourceID !== '') {\n var oldSource = this.nameTable[oldProp.sourceID];\n if (oldSource !== undefined && oldSource.outEdges && oldSource.outEdges.indexOf(actualObject.id) !== -1) {\n removeItem(oldSource.outEdges, actualObject.id);\n }\n }\n this.updateEdges(actualObject);\n }\n if (newProp.targetID !== undefined && newProp.targetID !== oldProp.targetID) {\n var targetNode = this.nameTable[newProp.targetID];\n inPort = this.findInOutConnectPorts(targetNode, true);\n if (!targetNode || (canInConnect(targetNode) || (actualObject.targetPortID !== '' && canPortInConnect(inPort)))) {\n actualObject.targetWrapper = targetNode ? this.getEndNodeWrapper(targetNode, actualObject, false) : undefined;\n if (actualObject.targetPortID && newProp.targetPortID === undefined) {\n actualObject.targetPortWrapper = targetNode ? this.getWrapper(targetNode.wrapper, actualObject.targetPortID) : undefined;\n }\n this.removePortEdges(this.nameTable[oldProp.targetID] || targetNode, oldProp.targetPortID || actualObject.targetPortID, actualObject.id, true);\n }\n if (oldProp !== undefined && oldProp.targetID !== undefined && oldProp.targetID !== '') {\n var oldTarget = this.nameTable[oldProp.targetID];\n if (oldTarget !== undefined && oldTarget.inEdges && oldTarget.inEdges.indexOf(actualObject.id) !== -1) {\n removeItem(oldTarget.inEdges, actualObject.id);\n }\n }\n this.updateEdges(actualObject);\n }\n if (newProp.sourcePortID !== undefined && newProp.sourcePortID !== oldProp.sourcePortID) {\n if (actualObject.sourceID && this.nameTable[actualObject.sourceID]) {\n source = this.nameTable[actualObject.sourceID].wrapper;\n }\n var sourceNode = this.nameTable[actualObject.sourceID];\n if (!sourceNode || (canOutConnect(sourceNode) || (actualObject.sourcePortID !== '' && canPortOutConnect(outPort)))) {\n actualObject.sourcePortWrapper = source ? this.getWrapper(source, newProp.sourcePortID) : undefined;\n }\n else if (actualObject.sourcePortID === '' && !canOutConnect(sourceNode)) {\n actualObject.sourcePortWrapper = undefined;\n }\n }\n if (newProp.targetPortID !== undefined && newProp.targetPortID !== oldProp.targetPortID) {\n var targetNode = this.nameTable[actualObject.targetID];\n if (actualObject.targetID && this.nameTable[actualObject.targetID]) {\n target = this.nameTable[actualObject.targetID].wrapper;\n }\n if (!targetNode || (canInConnect(targetNode) || (actualObject.targetPortID !== '' && canPortInConnect(inPort)))) {\n actualObject.targetPortWrapper = target ? this.getWrapper(target, newProp.targetPortID) : undefined;\n }\n else if (actualObject.targetPortID === '' && !canInConnect(targetNode)) {\n actualObject.targetPortWrapper = undefined;\n }\n }\n if (newProp.flip !== undefined) {\n actualObject.flip = newProp.flip;\n flipConnector(actualObject);\n }\n if (actualObject.type === 'Orthogonal' && this.lineRoutingModule && this.diagramActions &&\n (this.constraints & DiagramConstraints.LineRouting) && !(this.diagramActions & DiagramAction.ToolAction)) {\n this.lineRoutingModule.renderVirtualRegion(this, true);\n // EJ2-65876 - Exception occurs on line routing injection module\n if (actualObject.sourceID !== actualObject.targetID && actualObject.segments.length > 1) {\n //EJ2-69573 - Excecption occurs when calling doLayout method with the lineRouting module\n this.lineRoutingModule.refreshConnectorSegments(this, actualObject, false);\n }\n }\n points = this.getPoints(actualObject);\n } //Add prop change for zindex, alignments and margin\n if (newProp.style !== undefined) {\n updateStyle(newProp.style, actualObject.wrapper.children[0]);\n }\n if (points.length > 0 || newProp.sourceDecorator !== undefined || (newProp.targetDecorator !== undefined\n && (canMeasureDecoratorPath(Object.keys(newProp.targetDecorator)))) || newProp.cornerRadius !== undefined) {\n updateConnector(actualObject, points.length > 0 ? points : actualObject.intermediatePoints, this.diagramActions);\n if (newProp.type !== undefined) {\n updateSelector = true;\n }\n if (points.length > 0) {\n actualObject.wrapper.measure(new Size(actualObject.wrapper.width, actualObject.wrapper.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n // eslint-disable-next-line max-len\n this.updateConnectorAnnotation(actualObject);\n this.updateConnectorfixedUserHandles(actualObject);\n this.updateObject(actualObject, oldProp, newProp);\n } //work-around to update intersected connector bridging\n }\n if ((newProp.sourcePoint || newProp.targetPoint || newProp.segments)\n && this.diagramActions === DiagramAction.Render) {\n updateSelector = true;\n }\n if (actualObject.shape.type === 'Bpmn' && actualObject.shape.sequence === 'Default' && actualObject.shape.flow === 'Sequence') {\n this.commandHandler.updatePathElementOffset(actualObject);\n }\n // eslint-disable-next-line max-len\n if (!disableBridging) {\n this.updateBridging();\n }\n this.updateAnnotations(newProp, actualObject);\n this.updatefixedUserHandle(newProp, actualObject);\n actualObject.wrapper.measure(new Size(actualObject.wrapper.width, actualObject.wrapper.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n if (existingBounds.equals(existingBounds, actualObject.wrapper.bounds) === false) {\n this.updateQuad(actualObject);\n }\n if (updateSelector === true && this.checkSelectedItem(actualObject) && (!(this.diagramActions & DiagramAction.ToolAction)\n || (this.diagramActions & DiagramAction.UndoRedo))) {\n this.updateSelector();\n }\n if (!this.preventConnectorsUpdate) {\n if (!canVitualize(this) || (canVitualize(this) && this.scroller.oldCollectionObjects.indexOf(actualObject.id) > -1)) {\n if (this.diagramActions & DiagramAction.PreventZIndexOnDragging) {\n this.updateDiagramObject(actualObject, true);\n }\n else {\n this.updateDiagramObject(actualObject);\n }\n }\n }\n if (this.diagramActions && actualObject.status !== 'New') {\n actualObject.status = 'Update';\n }\n this.triggerPropertyChange(propertyChange, actualObject, oldProp, newProp);\n };\n /* tslint:enable */\n /**\n * getDirection methods \\\n *\n * @returns { void } getDirection methods .\\\n * @param {NodeModel} node - provide the node value.\n * @param {string} portId - provide the portId value.\n * @param {string} item - provide the item value.\n * @param {number} isInEdges - provide the isInEdges value.\n *\n * @private\n */\n Diagram.prototype.removePortEdges = function (node, portId, item, isInEdges) {\n if (node) {\n for (var i = 0; i < node.ports.length; i++) {\n var port = node.ports[parseInt(i.toString(), 10)];\n if (port.id === portId) {\n var portEdge = (isInEdges) ? port.inEdges : port.outEdges;\n removeItem(portEdge, item);\n }\n }\n }\n };\n Diagram.prototype.getpropertyChangeArgs = function (element, oldProp, newProp, args) {\n args.element = { connector: cloneBlazorObject(element) };\n args.oldValue = { connector: cloneBlazorObject(oldProp) };\n args.newValue = { connector: cloneBlazorObject(newProp) };\n return args;\n };\n Diagram.prototype.triggerPropertyChange = function (propertyChange, actualObject, oldProp, newProp) {\n if (!propertyChange) {\n var element = actualObject;\n var args = {\n element: cloneBlazorObject(element), cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp), newValue: cloneBlazorObject(newProp)\n };\n if (isBlazor()) {\n args = this.getpropertyChangeArgs(element, oldProp, newProp, args);\n }\n this.triggerEvent(DiagramEvent.propertyChange, args);\n }\n };\n Diagram.prototype.findInOutConnectPorts = function (node, isInconnect) {\n var port = {};\n if (node) {\n port = getInOutConnectPorts(node, isInconnect);\n }\n return port;\n };\n Diagram.prototype.getPoints = function (actualObject, points) {\n //let pts: PointModel[];\n var lineDistributionModule = this.lineDistributionModule ? true : false;\n var pts = actualObject.getConnectorPoints(actualObject.type, points, this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree' ?\n this.layout.orientation : undefined, lineDistributionModule);\n return pts;\n };\n /**\n * update the opacity and visibility for the node once the layout animation starts \\\n *\n * @returns { void } update the opacity and visibility for the node once the layout animation starts .\\\n * @param {Container} element - provide the element value.\n * @param {boolean} visible - provide the visible value.\n * @param {number} opacity - provide the opacity value.\n *\n * @private\n */\n Diagram.prototype.updateNodeProperty = function (element, visible, opacity) {\n if (visible === undefined) {\n this.updateElementVisibility(element, this.nameTable[element.id], visible);\n }\n else {\n element.style.opacity = opacity;\n for (var i = 0; i < element.children.length; i++) {\n if (element.children[parseInt(i.toString(), 10)] instanceof Container) {\n this.updateNodeProperty(element.children[parseInt(i.toString(), 10)], undefined, opacity);\n }\n element.children[parseInt(i.toString(), 10)].style.opacity = opacity;\n }\n }\n };\n /**\n * checkSelected Item for Connector \\\n *\n * @returns { void } checkSelected Item for Connector .\\\n * @param {Connector | Node} actualObject - provide the element value.\n *\n * @private\n */\n Diagram.prototype.checkSelectedItem = function (actualObject) {\n var selectorModel = this.selectedItems;\n var isSelected = false;\n var selItems = [];\n selItems = selItems.concat(selectorModel.nodes, selectorModel.connectors);\n if (selItems.length > 0) {\n if (actualObject.id === selItems[selItems.length - 1].id) {\n isSelected = true;\n }\n }\n return isSelected;\n };\n /**\n * Updates the visibility of the diagram container \\\n *\n * @returns { void } Updates the visibility of the diagram container .\\\n * @param {DiagramElement} element - provide the element value.\n * @param {boolean} visible - provide the target value.\n *\n * @private\n */\n Diagram.prototype.updateDiagramContainerVisibility = function (element, visible) {\n if (element instanceof Container) {\n for (var i = 0; i < element.children.length; i++) {\n this.updateDiagramContainerVisibility(element.children[parseInt(i.toString(), 10)], visible);\n }\n }\n element.visible = visible;\n };\n /**\n * Updates the visibility of the node/connector \\\n *\n * @returns { void } Updates the visibility of the node/connector .\\\n * @param {Container} element - provide the element value.\n * @param {Connector | Node} obj - provide the obj value.\n * @param {boolean} visible - provide the visible value.\n *\n * @private\n */\n Diagram.prototype.updateElementVisibility = function (element, obj, visible) {\n if (visible !== undefined) {\n element.visible = visible;\n if (obj instanceof Node) {\n //content\n if (!obj.children) {\n element.children[0].visible = visible;\n this.updateDiagramContainerVisibility(element.children[0], visible);\n if (obj.shape.type === 'Bpmn' && this.bpmnModule) {\n this.bpmnModule.updateElementVisibility(obj, visible, this);\n }\n }\n else {\n for (var _i = 0, _a = obj.children; _i < _a.length; _i++) {\n var child = _a[_i];\n this.updateElementVisibility(this.nameTable[\"\" + child].wrapper, this.nameTable[\"\" + child], visible);\n }\n }\n //ports\n if (obj.ports) {\n for (var _b = 0, _c = obj.ports; _b < _c.length; _b++) {\n var port = _c[_b];\n if (port.visibility & PortVisibility.Visible) {\n var wrapper = this.getWrapper(element, port.id);\n wrapper.visible = visible;\n }\n }\n }\n if (obj.annotations) {\n for (var _d = 0, _e = obj.annotations; _d < _e.length; _d++) {\n var annotation = _e[_d];\n var wrapper = this.getWrapper(element, annotation.id);\n wrapper.visible = visible;\n }\n }\n }\n else {\n //path and decorators\n for (var i = 0; i < 3; i++) {\n element.children[parseInt(i.toString(), 10)].visible = visible;\n }\n }\n if (obj.annotations) {\n //annotations\n for (var _f = 0, _g = obj.annotations; _f < _g.length; _f++) {\n var annotation = _g[_f];\n var wrapper = this.getWrapper(element, annotation.id);\n wrapper.visible = visible;\n }\n }\n if (obj.expandIcon || obj.collapseIcon) {\n var wrapper = this.getWrapper(element, 'icon_content');\n if (wrapper) {\n for (var i = 0; i < wrapper.children.length; i++) {\n wrapper.children[parseInt(i.toString(), 10)].visible = visible;\n }\n wrapper.visible = visible;\n }\n if (obj && obj.visible && obj.outEdges) {\n this.updateIconVisibility(obj, (obj.outEdges.length === 0 ? false : true));\n }\n }\n if (visible === false) {\n this.unSelect(this.nameTable[element.id]);\n }\n if ((obj instanceof Node && !this.preventNodesUpdate) || (obj instanceof Connector && !this.preventConnectorsUpdate)) {\n //Avoid calling updateDiagramObject method during rendering\n if (this.diagramActions) {\n this.updateDiagramObject(this.nameTable[element.id], undefined, true);\n }\n }\n }\n };\n Diagram.prototype.updateAnnotations = function (newProp, actualObject) {\n if (newProp.annotations !== undefined) {\n for (var _i = 0, _a = Object.keys(newProp.annotations); _i < _a.length; _i++) {\n var key = _a[_i];\n var index = Number(key);\n var changedObject = newProp.annotations[\"\" + key];\n var actualAnnotation = actualObject.annotations[parseInt(index.toString(), 10)];\n this.updateAnnotation(changedObject, actualAnnotation, actualObject.wrapper, actualObject);\n }\n }\n };\n Diagram.prototype.updatefixedUserHandle = function (newProp, actualObject) {\n if (newProp.fixedUserHandles !== undefined) {\n var index = void 0;\n var changedObject = void 0;\n var actualAnnotation = void 0;\n for (var _i = 0, _a = Object.keys(newProp.fixedUserHandles); _i < _a.length; _i++) {\n var key = _a[_i];\n index = Number(key);\n changedObject = newProp.fixedUserHandles[\"\" + key];\n actualAnnotation = actualObject.fixedUserHandles[parseInt(index.toString(), 10)];\n this.updateConnectorfixedUserHandle(changedObject, actualAnnotation, actualObject.wrapper, actualObject);\n }\n }\n };\n /**\n * updateConnectorfixedUserHandle method \\\n *\n * @returns { void } updateConnectorfixedUserHandle method .\\\n * @param {ConnectorFixedUserHandleModel} changedObject - provide the changedObject value.\n * @param {ConnectorFixedUserHandleModel} actualfixedUserHandle - provide the actualfixedUserHandle value.\n * @param {Container} nodes - provide the nodes value.\n * @param {Object} actualObject - provide the actualObject value.\n * @param {boolean} canUpdateSize - provide the canUpdateSize value.\n *\n * @private\n */\n Diagram.prototype.updateConnectorfixedUserHandle = function (changedObject, actualfixedUserHandle, nodes, actualObject, canUpdateSize) {\n var isMeasure = false;\n var fixedUserHandleWrapper = this.getWrapper(nodes, actualfixedUserHandle.id);\n if (fixedUserHandleWrapper !== undefined) {\n if (changedObject.width !== undefined) {\n fixedUserHandleWrapper.width = changedObject.width;\n isMeasure = true;\n }\n if (changedObject.height !== undefined) {\n fixedUserHandleWrapper.height = changedObject.height;\n isMeasure = true;\n }\n if (actualfixedUserHandle instanceof ConnectorFixedUserHandle &&\n (changedObject.offset !== undefined)) {\n actualObject.updateAnnotation(actualfixedUserHandle, actualObject.intermediatePoints, actualObject.wrapper.bounds, fixedUserHandleWrapper);\n }\n if ((actualfixedUserHandle instanceof ConnectorFixedUserHandle) && changedObject.displacement) {\n if (changedObject.displacement.x !== undefined ||\n changedObject.displacement.y !== undefined) {\n isMeasure = true;\n }\n }\n if (changedObject.fill !== undefined) {\n fixedUserHandleWrapper.style.fill = changedObject.fill;\n }\n if (changedObject.handleStrokeColor !== undefined) {\n fixedUserHandleWrapper.style.strokeColor = changedObject.handleStrokeColor;\n }\n if (changedObject.handleStrokeWidth !== undefined) {\n fixedUserHandleWrapper.style.strokeWidth = changedObject.handleStrokeWidth;\n }\n if (changedObject.visibility !== undefined) {\n fixedUserHandleWrapper.visible = changedObject.visibility;\n }\n if (changedObject.cornerRadius !== undefined) {\n fixedUserHandleWrapper.cornerRadius = changedObject.cornerRadius;\n }\n this.updatefixedUserHandleContent(changedObject, isMeasure, fixedUserHandleWrapper, actualObject, actualfixedUserHandle, nodes);\n if (isMeasure === true) {\n fixedUserHandleWrapper.measure(new Size(fixedUserHandleWrapper.width, fixedUserHandleWrapper.height));\n fixedUserHandleWrapper.arrange(fixedUserHandleWrapper.desiredSize);\n }\n }\n };\n /**\n * updateAnnotation method \\\n *\n * @returns { void } updateAnnotation method .\\\n * @param {AnnotationModel} changedObject - provide the changedObject value.\n * @param {ShapeAnnotationModel} actualAnnotation - provide the actualAnnotation value.\n * @param {Container} nodes - provide the nodes value.\n * @param {Object} actualObject - provide the actualObject value.\n * @param {boolean} canUpdateSize - provide the canUpdateSize value.\n *\n * @private\n */\n Diagram.prototype.updateAnnotation = function (changedObject, actualAnnotation, nodes, actualObject, canUpdateSize) {\n var isMeasure = false;\n // eslint-disable-next-line max-len\n var annotationWrapper = this.getWrapper(nodes, actualAnnotation.id);\n if (annotationWrapper !== undefined) {\n if (changedObject.width !== undefined && changedObject.height !== undefined) {\n annotationWrapper.width = changedObject.width;\n annotationWrapper.height = changedObject.height;\n isMeasure = true;\n }\n if (changedObject.rotateAngle !== undefined) {\n annotationWrapper.rotateAngle = changedObject.rotateAngle;\n }\n if (canUpdateSize && !(annotationWrapper instanceof DiagramHtmlElement)) {\n annotationWrapper.refreshTextElement();\n }\n if (actualAnnotation instanceof PathAnnotation && changedObject.segmentAngle !== undefined) {\n annotationWrapper.rotateAngle = actualAnnotation.rotateAngle;\n }\n if (actualAnnotation instanceof ShapeAnnotation &&\n changedObject.offset !== undefined) {\n var offset = changedObject.offset;\n isMeasure = true;\n var offsetX = offset.x !== undefined ? offset.x :\n actualAnnotation.offset.x;\n var offsetY = offset.y !== undefined ? offset.y :\n actualAnnotation.offset.y;\n annotationWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n annotationWrapper.relativeMode = 'Point';\n }\n else if (actualAnnotation instanceof PathAnnotation &&\n (changedObject.offset !== undefined ||\n changedObject.segmentAngle !== undefined)) {\n actualObject.updateAnnotation(actualAnnotation, actualObject.intermediatePoints, actualObject.wrapper.bounds, annotationWrapper);\n }\n if ((actualAnnotation instanceof PathAnnotation) && changedObject.displacement) {\n if (changedObject.displacement.x !== undefined ||\n changedObject.displacement.y !== undefined) {\n isMeasure = true;\n actualObject.updateAnnotation(actualAnnotation, actualObject.intermediatePoints, actualObject.wrapper.bounds, annotationWrapper);\n }\n }\n if (changedObject.margin !== undefined) {\n isMeasure = true;\n if (changedObject.margin.bottom !== undefined) {\n annotationWrapper.margin.bottom = changedObject.margin.bottom;\n }\n if (changedObject.margin.top !== undefined) {\n annotationWrapper.margin.top = changedObject.margin.top;\n }\n if (changedObject.margin.left !== undefined) {\n annotationWrapper.margin.left = changedObject.margin.left;\n }\n if (changedObject.margin.right !== undefined) {\n annotationWrapper.margin.right = changedObject.margin.right;\n }\n }\n if (isMeasure || canUpdateSize) {\n annotationWrapper.width = (actualAnnotation.width || actualObject.width);\n if (actualAnnotation.template) {\n annotationWrapper.width = (annotationWrapper.width || annotationWrapper.actualSize.width);\n annotationWrapper.height = (actualAnnotation.height || actualObject.height ||\n annotationWrapper.actualSize.height);\n }\n }\n if (changedObject.horizontalAlignment !== undefined) {\n annotationWrapper.horizontalAlignment = changedObject.horizontalAlignment;\n isMeasure = true;\n }\n if (changedObject.verticalAlignment !== undefined) {\n annotationWrapper.verticalAlignment = changedObject.verticalAlignment;\n isMeasure = true;\n }\n if (changedObject.visibility !== undefined) {\n annotationWrapper.visible = (nodes.visible && changedObject.visibility) ? true : false;\n }\n if (changedObject.constraints !== undefined) {\n var updateSelector = false;\n if ((annotationWrapper.constraints & AnnotationConstraints.Select) &&\n (!(changedObject.constraints & AnnotationConstraints.Select)) &&\n isSelected(this, actualObject, false, annotationWrapper)) {\n //updateSelector = true;\n }\n annotationWrapper.constraints = changedObject.constraints;\n if (updateSelector) {\n this.clearSelection();\n }\n }\n if (changedObject.style !== undefined) {\n updateStyle(changedObject.style, annotationWrapper);\n }\n if (changedObject.hyperlink !== undefined) {\n updateHyperlink(changedObject.hyperlink, annotationWrapper, actualAnnotation);\n }\n this.updateAnnotationContent(changedObject, isMeasure, annotationWrapper, actualObject, actualAnnotation, nodes);\n if (isMeasure === true) {\n annotationWrapper.measure(new Size(annotationWrapper.width, annotationWrapper.height));\n annotationWrapper.arrange(annotationWrapper.desiredSize);\n }\n if (!(annotationWrapper instanceof DiagramHtmlElement)) {\n annotationWrapper.refreshTextElement();\n }\n // this.refresh(); this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.updatefixedUserHandleContent = function (changedObject, isMeasure, fixedUserHandleWrapper, actualObject, fixedUserHandleAnnotation, nodes) {\n if (changedObject !== undefined) {\n this.updateConnectorfixedUserHandleWrapper(fixedUserHandleWrapper, actualObject, fixedUserHandleAnnotation, nodes);\n }\n };\n Diagram.prototype.updateConnectorfixedUserHandleWrapper = function (fixedUserHandleWrapper, actualObject, actualAnnotation, nodes) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(fixedUserHandleWrapper.id + '_groupElement', elementId);\n removeElement(fixedUserHandleWrapper.id + '_html_element', elementId);\n }\n if (actualObject instanceof Connector) {\n var canvas = actualObject.wrapper;\n var segment = canvas.children[0];\n var bounds = new Rect(segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height);\n fixedUserHandleWrapper =\n actualObject.getfixedUserHandle(actualObject.fixedUserHandles[actualObject.fixedUserHandles.length - 1], actualObject.intermediatePoints, bounds);\n }\n for (var i = 0; i < nodes.children.length; i++) {\n if (fixedUserHandleWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) {\n nodes.children.splice(i, 1, fixedUserHandleWrapper);\n }\n }\n };\n Diagram.prototype.updateAnnotationContent = function (changedObject, isMeasure, annotationWrapper, actualObject, actualAnnotation, nodes) {\n if (changedObject.content !== undefined) {\n if (annotationWrapper) {\n isMeasure = true;\n if (actualObject.shape.type === 'UmlActivity' &&\n ((isBlazor() && actualObject.shape.umlActivityShape === 'StructuredNode') ||\n (!isBlazor() && actualObject.shape.shape === 'StructuredNode'))) {\n annotationWrapper.content = '<<' + changedObject.content + '>>';\n }\n else {\n annotationWrapper.content = changedObject.content;\n }\n }\n if (annotationWrapper instanceof DiagramHtmlElement) {\n this.updateAnnotationWrapper(annotationWrapper, actualObject, actualAnnotation, nodes);\n }\n }\n if (changedObject.template !== undefined) {\n annotationWrapper.content = changedObject.template;\n this.updateAnnotationWrapper(annotationWrapper, actualObject, actualAnnotation, nodes);\n }\n };\n Diagram.prototype.updateAnnotationWrapper = function (annotationWrapper, actualObject, actualAnnotation, nodes) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(annotationWrapper.id + '_groupElement', elementId);\n removeElement(annotationWrapper.id + '_html_element', elementId);\n }\n if (actualObject instanceof Node) {\n annotationWrapper =\n actualObject.initAnnotationWrapper(actualAnnotation, this.element.id);\n }\n else if (actualObject instanceof Connector) {\n var canvas = actualObject.wrapper;\n var segment = canvas.children[0];\n var bounds = new Rect(segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height);\n annotationWrapper =\n actualObject.getAnnotationElement(actualObject.annotations[actualObject.annotations.length - 1], actualObject.intermediatePoints, bounds, this.getDescription, this.element.id);\n }\n for (var i = 0; i < nodes.children.length; i++) {\n if (annotationWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) {\n nodes.children.splice(i, 1, annotationWrapper);\n }\n }\n };\n /**\n * updateNodefixedUserHandle method \\\n *\n * @returns { void } updateNodefixedUserHandle method .\\\n * @param {NodeFixedUserHandleModel} changedObject - provide the changedObject value.\n * @param {NodeFixedUserHandleModel} actualfixedUserHandle - provide the actualfixedUserHandle value.\n * @param {Container} nodes - provide the changedObject value.\n * @param {Object} actualObject - provide the changedObject value.\n *\n * @private\n */\n Diagram.prototype.updateNodefixedUserHandle = function (changedObject, actualfixedUserHandle, nodes, actualObject) {\n //let fixedUserHandleWrapper: Canvas;\n var isMeasure = false;\n var fixedUserHandleWrapper = this.getWrapper(nodes, actualfixedUserHandle.id);\n if (fixedUserHandleWrapper !== undefined) {\n if (changedObject.width !== undefined) {\n fixedUserHandleWrapper.actualSize.width = changedObject.width;\n isMeasure = true;\n }\n if (changedObject.height !== undefined) {\n fixedUserHandleWrapper.height = changedObject.height;\n isMeasure = true;\n }\n if (actualfixedUserHandle instanceof NodeFixedUserHandle &&\n changedObject.offset !== undefined) {\n var offset = changedObject.offset;\n isMeasure = true;\n var offsetX = offset.x !== undefined ? offset.x :\n actualfixedUserHandle.offset.x;\n var offsetY = offset.y !== undefined ? offset.y :\n actualfixedUserHandle.offset.y;\n fixedUserHandleWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n fixedUserHandleWrapper.relativeMode = 'Point';\n }\n if (changedObject.margin !== undefined) {\n isMeasure = true;\n if (changedObject.margin.bottom !== undefined) {\n fixedUserHandleWrapper.margin.bottom = changedObject.margin.bottom;\n }\n if (changedObject.margin.top !== undefined) {\n fixedUserHandleWrapper.margin.top = changedObject.margin.top;\n }\n if (changedObject.margin.left !== undefined) {\n fixedUserHandleWrapper.margin.left = changedObject.margin.left;\n }\n if (changedObject.margin.right !== undefined) {\n fixedUserHandleWrapper.margin.right = changedObject.margin.right;\n }\n }\n if (changedObject.visibility !== undefined) {\n fixedUserHandleWrapper.visible = changedObject.visibility;\n }\n if (changedObject.fill !== undefined) {\n fixedUserHandleWrapper.style.fill = changedObject.fill;\n }\n if (changedObject.handleStrokeColor !== undefined) {\n fixedUserHandleWrapper.style.strokeColor = changedObject.handleStrokeColor;\n }\n if (changedObject.handleStrokeWidth !== undefined) {\n fixedUserHandleWrapper.style.strokeWidth = changedObject.handleStrokeWidth;\n }\n if (changedObject.cornerRadius !== undefined) {\n fixedUserHandleWrapper.cornerRadius = changedObject.cornerRadius;\n }\n this.updatefixedUserHandleWrapper(fixedUserHandleWrapper, actualObject, actualfixedUserHandle, nodes);\n if (isMeasure === true) {\n fixedUserHandleWrapper.measure(new Size(fixedUserHandleWrapper.width, fixedUserHandleWrapper.height));\n fixedUserHandleWrapper.arrange(fixedUserHandleWrapper.desiredSize);\n }\n }\n };\n Diagram.prototype.updatefixedUserHandleWrapper = function (fixedUserHandleWrapper, actualObject, actualAnnotation, nodes) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(fixedUserHandleWrapper.id + '_groupElement', elementId);\n removeElement(fixedUserHandleWrapper.id + '_html_element', elementId);\n }\n if (actualObject instanceof Node) {\n fixedUserHandleWrapper = actualObject.initfixedUserHandles(actualAnnotation);\n }\n for (var i = 0; i < nodes.children.length; i++) {\n if (fixedUserHandleWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) {\n nodes.children.splice(i, 1, fixedUserHandleWrapper);\n }\n }\n };\n /**\n * updatePort method \\\n *\n * @returns { void } updatePort method .\\\n * @param {PointPortModel} changedObject - provide the changedObject value.\n * @param {PointPortModel} actualPort - provide the changedObject value.\n * @param {Container} nodes - provide the changedObject value.\n *\n * @private\n */\n Diagram.prototype.updatePort = function (changedObject, actualPort, nodes) {\n var isMeasure = false;\n var portWrapper = this.getWrapper(nodes, actualPort.id);\n if (portWrapper !== undefined) {\n if (changedObject.offset !== undefined) {\n isMeasure = true;\n var offsetX = changedObject.offset.x !== undefined ? changedObject.offset.x :\n actualPort.offset.x;\n var offsetY = changedObject.offset.y !== undefined ? changedObject.offset.y :\n actualPort.offset.y;\n portWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n portWrapper.relativeMode = 'Point';\n }\n if (changedObject.width !== undefined) {\n isMeasure = true;\n portWrapper.width = changedObject.width;\n }\n if (changedObject.height !== undefined) {\n isMeasure = true;\n portWrapper.height = changedObject.height;\n }\n if (changedObject.visibility !== undefined) {\n portWrapper.visible = (nodes.visible && checkPortRestriction(actualPort, PortVisibility.Visible)) ? true : false;\n }\n if (changedObject.margin !== undefined) {\n isMeasure = true;\n if (changedObject.margin.bottom !== undefined) {\n portWrapper.margin.bottom = changedObject.margin.bottom;\n }\n if (changedObject.margin.top !== undefined) {\n portWrapper.margin.top = changedObject.margin.top;\n }\n if (changedObject.margin.right !== undefined) {\n portWrapper.margin.right = changedObject.margin.right;\n }\n if (changedObject.margin.left !== undefined) {\n portWrapper.margin.left = changedObject.margin.left;\n }\n }\n if (changedObject.horizontalAlignment !== undefined) {\n isMeasure = true;\n portWrapper.horizontalAlignment = changedObject.horizontalAlignment;\n }\n if (changedObject.verticalAlignment !== undefined) {\n isMeasure = true;\n portWrapper.verticalAlignment = changedObject.verticalAlignment;\n }\n if (changedObject.style !== undefined) {\n if (changedObject.style.fill !== undefined) {\n portWrapper.style.fill = changedObject.style.fill;\n }\n if (changedObject.style.opacity !== undefined) {\n portWrapper.style.opacity = changedObject.style.opacity;\n }\n if (changedObject.style.strokeColor !== undefined) {\n portWrapper.style.strokeColor = changedObject.style.strokeColor;\n }\n if (changedObject.style.strokeWidth !== undefined) {\n portWrapper.style.strokeWidth = changedObject.style.strokeWidth;\n }\n if (changedObject.style.strokeDashArray !== undefined) {\n portWrapper.style.strokeDashArray = changedObject.style.strokeDashArray;\n }\n }\n if (changedObject.shape !== undefined) {\n if (portWrapper) {\n var pathdata = getPortShape(changedObject.shape);\n portWrapper.data = pathdata;\n portWrapper.canMeasurePath = true;\n }\n }\n if (changedObject.pathData !== undefined) {\n portWrapper.data = String(changedObject.pathData);\n isMeasure = true;\n }\n if (isMeasure === true) {\n portWrapper.measure(new Size(portWrapper.width, portWrapper.height));\n portWrapper.arrange(portWrapper.desiredSize);\n }\n //this.refresh(); this.refreshDiagramLayer();\n }\n };\n /**\n * updateIcon method \\\n *\n * @returns { void } updateIcon method .\\\n * @param {Node} actualObject - provide the obj value.\n *\n * @private\n */\n Diagram.prototype.updateIcon = function (actualObject) {\n var iconContainer = this.getWrapper(actualObject.wrapper, 'icon_content');\n var diagramId = (this.diagramActions & DiagramAction.Render) ? this.element.id : undefined;\n if (iconContainer) {\n if (this.mode === 'SVG') {\n var icon = getDiagramElement(actualObject.wrapper.id + '_icon_content', diagramId);\n if (icon) {\n var iconRect = getDiagramElement(icon.id + '_rect', diagramId);\n var iconShape = getDiagramElement(icon.id + '_shape', diagramId);\n var nativeContent = getDiagramElement(iconShape.id + '_native_element', diagramId);\n if (nativeContent) {\n nativeContent.parentNode.removeChild(nativeContent);\n }\n iconShape.parentNode.removeChild(iconShape);\n iconRect.parentNode.removeChild(iconRect);\n icon.parentNode.removeChild(icon);\n }\n }\n var index = actualObject.wrapper.children.indexOf(iconContainer);\n actualObject.wrapper.children.splice(index, 1);\n }\n var portContainer = this.getPortContainer(actualObject);\n actualObject.initIcons(this.getDescription, this.layout, portContainer, this.element.id);\n };\n Diagram.prototype.getPortContainer = function (actualObject) {\n if (actualObject.children) {\n for (var i = 0; i < actualObject.wrapper.children.length; i++) {\n if (actualObject.wrapper.children[parseInt(i.toString(), 10)].id === actualObject.id + 'group_container') {\n return actualObject.wrapper.children[parseInt(i.toString(), 10)];\n }\n }\n }\n return actualObject.wrapper;\n };\n Diagram.prototype.updateTooltip = function (actualObject, node) {\n if (node.tooltip.content !== undefined) {\n actualObject.tooltip.content = node.tooltip.content;\n }\n if (node.tooltip.position !== undefined) {\n actualObject.tooltip.position = node.tooltip.position;\n }\n if (node.tooltip.height !== undefined) {\n actualObject.tooltip.height = node.tooltip.height;\n }\n if (node.tooltip.width !== undefined) {\n actualObject.tooltip.width = node.tooltip.width;\n }\n if (node.tooltip.showTipPointer !== undefined) {\n actualObject.tooltip.showTipPointer = node.tooltip.showTipPointer;\n }\n if (node.tooltip.relativeMode !== undefined) {\n actualObject.tooltip.relativeMode = node.tooltip.relativeMode;\n }\n };\n /**\n * updateQuad method \\\n *\n * @returns { void } updateQuad method .\\\n * @param {IElement} obj - provide the obj value.\n *\n * @private\n */\n Diagram.prototype.updateQuad = function (obj) {\n var modified = this.spatialSearch.updateQuad(obj.wrapper);\n if (modified && !this.preventDiagramUpdate) {\n this.updatePage();\n }\n };\n /**\n * removeFromAQuad method \\\n *\n * @returns { void } removeFromAQuad method .\\\n * @param {IElement} obj - provide the node value.\n *\n * @private\n */\n Diagram.prototype.removeFromAQuad = function (obj) {\n if (obj.children) {\n var child = void 0;\n var children = obj.children;\n for (var i = 0; i < children.length; i++) {\n child = this.nameTable[children[parseInt(i.toString(), 10)]];\n if (child) {\n this.removeFromAQuad(child);\n }\n }\n }\n this.spatialSearch.removeFromAQuad(obj.wrapper);\n var modified = this.spatialSearch.updateBounds(obj.wrapper);\n if (modified && !this.preventDiagramUpdate) {\n this.updatePage();\n }\n };\n /**\n * updateGroupSize method \\\n *\n * @returns { void } updateGroupSize method .\\\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n *\n * @private\n */\n Diagram.prototype.updateGroupSize = function (node) {\n var tempNode;\n if (node.parentId) {\n tempNode = this.nameTable[node.parentId];\n if (tempNode) {\n if (tempNode.parentId) {\n this.updateGroupSize(tempNode);\n }\n else {\n tempNode.wrapper.measure(new Size());\n tempNode.wrapper.arrange(tempNode.wrapper.desiredSize);\n this.updateGroupOffset(tempNode);\n this.updateDiagramObject(tempNode);\n }\n }\n }\n };\n Diagram.prototype.updatePage = function () {\n if ((this.diagramActions & DiagramAction.Render) &&\n !(this.diagramActions & DiagramAction.DragUsingMouse)) {\n this.scroller.updateScrollOffsets();\n this.scroller.setSize();\n //updating overview\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.views[\"\" + temp];\n if (!(view instanceof Diagram)) {\n view.updateView(view);\n }\n }\n }\n if (this.diagramActions & DiagramAction.DragUsingMouse) {\n this.renderPageBreaks();\n //EJ2-826378 - Scroller not updated properly when we drag node outside viewport.\n // While dragging, we need to update the scroller.\n this.scroller.updateScrollOffsets();\n this.scroller.setSize();\n }\n };\n /**\n * protectPropertyChange method \\\n *\n * @returns { void } protectPropertyChange method .\\\n * @param {boolean} enable - provide the enable value.\n *\n * @private\n */\n Diagram.prototype.protectPropertyChange = function (enable) {\n this.isProtectedOnChange = enable;\n };\n /**\n * getProtectPropertyChangeValue method \\\n *\n * @returns { boolean } getProtectPropertyChangeValue method .\\\n *\n * @private\n */\n Diagram.prototype.getProtectPropertyChangeValue = function () {\n return this.isProtectedOnChange;\n };\n /**\n * enableServerDataBinding method \\\n *\n * @returns { void } enableServerDataBinding method .\\\n * @param {boolean} enable - provide the node value.\n *\n * @private\n */\n Diagram.prototype.enableServerDataBinding = function (enable) {\n if (isBlazor()) {\n this.allowServerDataBinding = enable;\n if (enable) {\n this.bulkChanges = {};\n }\n }\n };\n /**\n * updateShadow method \\\n *\n * @returns { void } updateShadow method .\\\n * @param {ShadowModel} nodeShadow - provide the node value.\n * @param {ShadowModel} changedShadow - provide the Node value.\n *\n * @private\n */\n Diagram.prototype.updateShadow = function (nodeShadow, changedShadow) {\n if (changedShadow.angle !== undefined) {\n nodeShadow.angle = changedShadow.angle;\n }\n if (changedShadow.color !== undefined) {\n nodeShadow.color = changedShadow.color;\n }\n if (changedShadow.distance !== undefined) {\n nodeShadow.distance = changedShadow.distance;\n }\n if (changedShadow.opacity !== undefined) {\n nodeShadow.opacity = changedShadow.opacity;\n }\n };\n /**\n * updateMargin method \\\n *\n * @returns { void } updateMargin method .\\\n * @param {Node} node - provide the node value.\n * @param {Node} changes - provide the Node value.\n *\n * @private\n */\n Diagram.prototype.updateMargin = function (node, changes) {\n if (changes.margin.top !== undefined) {\n node.margin.top = changes.margin.top;\n }\n if (changes.margin.bottom !== undefined) {\n node.margin.bottom = changes.margin.bottom;\n }\n if (changes.margin.left !== undefined) {\n node.margin.left = changes.margin.left;\n }\n if (changes.margin.right !== undefined) {\n node.margin.right = changes.margin.right;\n }\n };\n Diagram.prototype.removePreviewChildren = function (preview) {\n if (preview.children && preview.children.length &&\n preview.shape && preview.shape.type === 'SwimLane') {\n for (var z = 0; z < preview.children.length; z++) {\n var previewChildId = preview.children[parseInt(z.toString(), 10)];\n var previewIndex_1 = this.nodes.indexOf(this.nameTable[\"\" + previewChildId]);\n if (previewIndex_1 >= 0) {\n this.nodes.splice(previewIndex_1, 1);\n }\n delete this.nameTable[\"\" + previewChildId];\n }\n var previewIndex = this.nodes.indexOf(this.nameTable[this.currentSymbol.id]);\n if (previewIndex >= 0) {\n this.nodes.splice(previewIndex, 1);\n }\n }\n };\n Diagram.prototype.selectDragedNode = function (newObj, args, selectedSymbol) {\n this.currentSymbol = newObj;\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n this.commandHandler.oldSelectedObjects = cloneSelectedObjects(this);\n this.commandHandler.select(newObj);\n this.commandHandler.updateBlazorSelector();\n this.eventHandler.mouseDown(args.event);\n this.eventHandler.mouseMove(args.event, args);\n this.preventDiagramUpdate = false;\n this.updatePage();\n selectedSymbol.style.opacity = '0';\n };\n //property changes - end region\n /* tslint:disable */\n Diagram.prototype.initDroppables = function () {\n var _this = this;\n // initiates droppable event\n var childTable = {};\n var entryTable = {};\n var header;\n var lane;\n var selectedSymbols = 'selectedSymbols';\n this.droppable = new Droppable(this.element);\n // this.droppable.accept = '.e-dragclone';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.droppable.over = function (args) {\n //EJ2-59341- SelectionChange OldValue argument is null\n if (_this.previousSelectedObjects.length === 0 && !_this.currentSymbol) {\n _this.previousSelectedObjects = _this.commandHandler.getSelectedObject();\n }\n _this.commandHandler.PreventConnectorSplit = true;\n if (!_this.currentSymbol) {\n var dragDataHelper = null;\n if (!args.dragData && args.name === 'drag') {\n var helper = document.getElementsByClassName('e-dragclone')[0];\n if (helper) {\n dragDataHelper = helper;\n }\n }\n if (args.dragData || dragDataHelper) {\n var newObj = void 0;\n var isHorizontal = void 0;\n document.getElementById(_this.element.id + 'content').focus();\n var position = _this.eventHandler.getMousePosition(args.event);\n var clonedObject = void 0;\n var selectedSymbol = dragDataHelper || args.dragData.helper;\n var paletteId = selectedSymbol.getAttribute('paletteId');\n var nodeDragSize = void 0;\n var nodePreviewSize = void 0;\n var paletteDragSize = void 0;\n var preview = void 0;\n if (!paletteId && args.dragData) {\n var arg = {\n source: null, element: newObj, cancel: false,\n diagram: _this,\n dragData: args.dragData.draggedElement.ej2_instances[0].dragData,\n dragItem: newObj\n };\n _this.triggerEvent(DiagramEvent.dragEnter, arg);\n var newNode = void 0;\n var newConnector = void 0;\n // EJ2-61664 - Check whether dragItem is returned from dragEnter event or not.\n // If it does not returned means then we do not change the treeview object as node\n if (arg.dragItem) {\n if (arg.dragItem.sourcePoint && arg.dragItem.targetPoint) {\n newConnector = new Connector(_this, 'connectors', arg.dragItem, true);\n }\n else {\n newNode = new Node(_this, 'nodes', arg.dragItem, true);\n }\n newObj = newNode ? newNode : newConnector;\n _this.initObject(newObj, undefined, undefined, true);\n _this['enterObject'] = newObj;\n _this['enterTable'] = entryTable;\n if (newObj instanceof Node) {\n newNode.offsetX = position.x + 5 + (newNode.width) * newNode.pivot.x;\n newNode.offsetY = position.y + (newNode.height) * newNode.pivot.y;\n }\n else if (newObj instanceof Connector) {\n var newObjBounds = Rect.toBounds([newObj.sourcePoint, newObj.targetPoint]);\n var diffx = position.x - newObjBounds.left;\n var diffy = position.y - newObjBounds.top;\n newObj.sourcePoint.x += diffx;\n newObj.sourcePoint.y += diffy;\n newObj.targetPoint.x += diffx;\n newObj.targetPoint.y += diffy;\n }\n _this.preventDiagramUpdate = true;\n _this.currentSymbol = newObj;\n if (_this.mode !== 'SVG') {\n _this.refreshDiagramLayer();\n }\n _this.selectDragedNode(newObj, args, selectedSymbol);\n delete _this['enterObject'];\n delete _this['enterTable'];\n _this.droppable[\"\" + selectedSymbols] = selectedSymbol;\n _this.allowServerDataBinding = true;\n }\n }\n if (paletteId) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var sourceElement = document.getElementById(paletteId).ej2_instances[0];\n var source = 'sourceElement';\n _this.droppable[\"\" + source] = sourceElement;\n var childtable = 'childTable';\n if (sourceElement) {\n var obj = sourceElement[\"\" + selectedSymbols];\n _this.allowServerDataBinding = false;\n clonedObject = cloneObject(sourceElement[\"\" + selectedSymbols]);\n childTable = sourceElement[\"\" + childtable];\n var wrapper = obj.wrapper.children[0].children[0];\n preview = getPreviewSize(sourceElement, clonedObject, wrapper);\n if (sourceElement[\"\" + selectedSymbols] instanceof Node) {\n if (obj.shape.shape === 'TextAnnotation') {\n // eslint-disable-next-line max-len\n clonedObject.offsetX = position.x + 11 + (preview.width) * clonedObject.pivot.x;\n // eslint-disable-next-line max-len\n clonedObject.offsetY = position.y + 11 + (preview.height) * clonedObject.pivot.y;\n }\n else {\n // eslint-disable-next-line max-len\n clonedObject.offsetX = position.x + 5 + (preview.width) * clonedObject.pivot.x;\n // eslint-disable-next-line max-len\n clonedObject.offsetY = position.y + (preview.height) * clonedObject.pivot.y;\n }\n var newNode = new Node(_this, 'nodes', clonedObject, true);\n if (newNode.shape.type === 'Bpmn' && newNode.shape.activity.subProcess.processes\n && newNode.shape.activity.subProcess.processes.length) {\n newNode.shape.activity.subProcess.processes = [];\n }\n nodeDragSize = newNode.dragSize;\n nodePreviewSize = newNode.previewSize;\n paletteDragSize = sourceElement['symbolDragSize'];\n var palettePreview = sourceElement['symbolPreview'];\n // eslint-disable-next-line max-len\n newNode.width = nodeDragSize.width || paletteDragSize.width || nodePreviewSize.width || palettePreview.width || newNode.width;\n // eslint-disable-next-line max-len\n newNode.height = nodeDragSize.height || paletteDragSize.height || nodePreviewSize.height || palettePreview.height || newNode.height;\n if (newNode.shape.type === 'SwimLane') {\n _this.diagramActions |= DiagramAction.PreventHistory;\n if (newNode.shape.isLane) {\n newNode.children = [];\n header = {\n id: 'header' + randomId()\n };\n if (newNode.shape.orientation === 'Horizontal') {\n header.width = newNode.shape.lanes[0].header.width;\n header.height = newNode.shape.lanes[0].height;\n }\n else {\n header.width = newNode.shape.lanes[0].width;\n header.height = newNode.shape.lanes[0].header.height;\n }\n header.style = newNode.shape.lanes[0].header.style;\n header.offsetX = position.x + 5 + header.width / 2;\n header.offsetY = position.y + header.height / 2;\n _this.diagramActions |= DiagramAction.PreventCollectionChangeOnDragOver;\n header = _this.add(header);\n lane = {\n id: 'body' + randomId()\n };\n if (newNode.shape.orientation === 'Horizontal') {\n lane.width = newNode.shape.lanes[0].width - header.width;\n lane.height = newNode.shape.lanes[0].height;\n // eslint-disable-next-line max-len\n lane.offsetX = position.x + 5 + (newNode.shape.lanes[0].header.width + (lane.width / 2));\n lane.offsetY = position.y + lane.height / 2;\n }\n else {\n lane.width = newNode.shape.lanes[0].width;\n lane.height = newNode.shape.lanes[0].height - header.height;\n lane.offsetX = position.x + 5 + lane.width / 2;\n // eslint-disable-next-line max-len\n lane.offsetY = position.y + (newNode.shape.lanes[0].header.height + (lane.height / 2));\n }\n lane.style = newNode.shape.lanes[0].style;\n lane = _this.add(lane);\n var group = {\n id: 'group' + randomId(),\n children: [header.id, lane.id]\n };\n group.shape = newNode.shape;\n group.width = newNode.shape.lanes[0].width;\n group.height = newNode.shape.lanes[0].height;\n group.previewSize = newNode.previewSize;\n group.dragSize = newNode.dragSize;\n group.addInfo = newNode.addInfo;\n newNode = _this.add(group);\n _this.diagramActions &= ~DiagramAction.PreventCollectionChangeOnDragOver;\n }\n _this.diagramActions &= ~DiagramAction.PreventHistory;\n }\n if (newNode.shape.isPhase) {\n isHorizontal = (newNode.shape.orientation === 'Horizontal') ? true : false;\n if (isHorizontal) {\n newNode.offsetX = position.x + 5 + (newNode.width || wrapper.actualSize.width) / 2;\n newNode.offsetY = position.y;\n newNode.shape.data =\n 'M' + 20 + ',' + (newNode.height / 2) + ' L' + (newNode.width - 20) + ',' +\n (newNode.height / 2) + 'z';\n newNode.height = 1;\n }\n else {\n newNode.offsetX = position.x + 5;\n newNode.offsetY = position.y + (newNode.height || wrapper.actualSize.height) / 2;\n newNode.shape.data =\n 'M' + (newNode.width / 2) + ',' + 20 + ' L' + (newNode.width / 2) +\n ',' + (newNode.height - 20) + 'z';\n newNode.width = 1;\n }\n }\n newObj = newNode;\n if (clonedObject.children) {\n var parentNode = clonedObject;\n var tempTable = {};\n entryTable = _this.getChildren(parentNode, tempTable, childTable);\n arrangeChild(parentNode, -parentNode.offsetX, -parentNode.offsetY, entryTable, true, _this);\n }\n }\n else if (sourceElement[\"\" + selectedSymbols] instanceof Connector) {\n newObj = new Connector(_this, 'connectors', clonedObject, true);\n var bounds = Rect.toBounds([newObj.sourcePoint, newObj.targetPoint]);\n var tx = position.x - bounds.left;\n var ty = position.y - bounds.top;\n newObj.sourcePoint.x += tx;\n newObj.sourcePoint.y += ty;\n newObj.targetPoint.x += tx;\n newObj.targetPoint.y += ty;\n }\n if (!newObj.shape.isLane) {\n newObj.id += randomId();\n }\n var arg = {\n source: sourceElement, element: newObj, cancel: false,\n diagram: _this, dragData: null, dragItem: newObj\n };\n if (isBlazor()) {\n arg = _this.getBlazorDragEventArgs(arg);\n }\n _this['enterObject'] = newObj;\n _this['enterTable'] = entryTable;\n _this.triggerEvent(DiagramEvent.dragEnter, arg);\n if ((newObj instanceof Node) && newObj.shape.type === 'SwimLane' && newObj.shape.isLane) {\n var swimLaneObj = arg.element;\n var laneObj = swimLaneObj.shape.lanes[0];\n //let child1: NodeModel; let child2: NodeModel;\n isHorizontal = (swimLaneObj.shape.orientation === 'Horizontal') ? true : false;\n var child1 = _this.nameTable[newObj.children[0]];\n var child2 = _this.nameTable[newObj.children[1]];\n nodeDragSize = newObj.dragSize;\n nodePreviewSize = newObj.previewSize;\n paletteDragSize = sourceElement['symbolDragSize'];\n laneObj.width = nodeDragSize.width || paletteDragSize.width || nodePreviewSize.width || laneObj.width;\n laneObj.height = nodeDragSize.height || paletteDragSize.height || nodePreviewSize.height || laneObj.height;\n if (isHorizontal) {\n header.width = laneObj.header.width;\n header.height = laneObj.height;\n lane.width = laneObj.width - header.width;\n lane.height = laneObj.height;\n lane.offsetX = position.x + 5 + (laneObj.header.width + (child2.width / 2));\n lane.offsetY = position.y + child2.height / 2;\n }\n else {\n header.width = laneObj.width;\n header.height = laneObj.header.height;\n lane.width = laneObj.width;\n lane.height = laneObj.height - header.height;\n lane.offsetX = position.x + 5 + child2.width / 2;\n lane.offsetY = position.y + (laneObj.header.height + (child2.height / 2));\n }\n header.offsetX = position.x + 5 + child1.width / 2;\n header.offsetY = position.y + child1.height / 2;\n newObj.width = laneObj.width;\n newObj.height = laneObj.height;\n }\n if ((newObj instanceof Node) && newObj.shape.isPhase) {\n if (isHorizontal) {\n newObj.height = 1;\n }\n else {\n newObj.width = 1;\n }\n }\n if (!_this.activeLayer.lock && !arg.cancel) {\n _this.preventDiagramUpdate = true;\n if (newObj.children) {\n _this.findChild(newObj, entryTable);\n }\n _this.preventDiagramUpdate = true;\n if (newObj.zIndex !== -1) {\n newObj.zIndex = -1;\n }\n _this.initObject(newObj, undefined, undefined, true);\n _this.selectDragedNode(newObj, args, selectedSymbol);\n }\n delete _this['enterObject'];\n delete _this['enterTable'];\n }\n _this.droppable[\"\" + selectedSymbols] = selectedSymbol;\n _this.allowServerDataBinding = true;\n }\n }\n }\n else {\n if (args.event.touches && args.event.touches.length) {\n _this.eventHandler.mouseMove(args.event, args.event.touches);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.droppable.drop = function (args) { return __awaiter(_this, void 0, void 0, function () {\n var source, value, isPhase, orientation_2, isConnector, arg, id, clonedObject, nodeId, newObj, arg, clonedObject, id, selectedSymbols, draggableElement, i;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.allowServerDataBinding = false;\n source = 'sourceElement';\n if (!this.currentSymbol) return [3 /*break*/, 4];\n isPhase = false;\n isConnector = (this.currentSymbol instanceof Connector) ? true : false;\n if (args.event.touches) {\n this.eventHandler.mouseUp(args.event);\n }\n arg = void 0;\n arg = {\n source: this.droppable[\"\" + source],\n element: this.currentSymbol,\n target: this.eventHandler['hoverNode'] || this.eventHandler['lastObjectUnderMouse'] || this, cancel: false,\n position: { x: this.currentSymbol.wrapper.offsetX, y: this.currentSymbol.wrapper.offsetY }\n };\n if (!isBlazor()) return [3 /*break*/, 2];\n arg = {\n source: cloneBlazorObject(this.droppable[\"\" + source]),\n // eslint-disable-next-line max-len\n element: getObjectType(this.currentSymbol) === Connector ? { connector: cloneBlazorObject(this.currentSymbol) } : { node: cloneBlazorObject(this.currentSymbol) },\n cancel: false, target: {},\n position: { x: this.currentSymbol.wrapper.offsetX, y: this.currentSymbol.wrapper.offsetY }\n };\n // eslint-disable-next-line max-len\n this.getDropEventArgs(arg);\n return [4 /*yield*/, this.triggerEvent(DiagramEvent.drop, arg)];\n case 1:\n arg = (_a.sent()) || arg;\n return [3 /*break*/, 3];\n case 2:\n this.commandHandler.PreventConnectorSplit = false;\n this.triggerEvent(DiagramEvent.drop, arg);\n _a.label = 3;\n case 3:\n id = 'id';\n clonedObject = cloneObject(this.currentSymbol);\n clonedObject['hasTarget'] = this.currentSymbol['hasTarget'];\n this.removeFromAQuad(this.currentSymbol);\n this.removeObjectsFromLayer(this.nameTable[this.currentSymbol.id]);\n this.removeElements(this.currentSymbol);\n if (this.currentSymbol.shape.isLane ||\n this.currentSymbol.shape.isPhase) {\n this.removeChildInNodes(this.currentSymbol);\n }\n if (arg.cancel) {\n removeChildNodes(this.currentSymbol, this);\n }\n if (this.currentSymbol.shape.isPhase) {\n isPhase = true;\n orientation_2 = this.currentSymbol.shape.orientation;\n }\n this.removePreviewChildren(this.currentSymbol);\n delete this.nameTable[this.currentSymbol.id];\n this.currentSymbol = null;\n this.protectPropertyChange(true);\n if (!arg.cancel) {\n this.startGroupAction();\n if (clonedObject && (clonedObject.shape.isLane || isPhase)) {\n if (isPhase) {\n clonedObject.shape.isPhase = isPhase;\n clonedObject.shape.orientation = orientation_2;\n }\n this.eventHandler.addSwimLaneObject(clonedObject);\n }\n if (clonedObject.shape.type === 'Bpmn' && clonedObject.shape.annotation\n && clonedObject['hasTarget']) {\n nodeId = clonedObject.shape.annotation.nodeId;\n clonedObject.shape.annotation.id = clonedObject.id;\n this.addTextAnnotation(clonedObject.shape.annotation, this.nameTable[\"\" + nodeId]);\n clonedObject.nodeId = '';\n }\n if (!clonedObject.shape.isLane && !isPhase) {\n if (clonedObject.children) {\n this.addChildNodes(clonedObject);\n }\n if (arg.target && (arg.target instanceof Node) && !isConnector && checkParentAsContainer(this, arg.target)\n && canAllowDrop(arg.target)) {\n addChildToContainer(this, arg.target, clonedObject);\n }\n else {\n // EJ2-62652 - Added below code to empty the segment collection if connector type is bezier\n if (clonedObject.type === 'Bezier' && clonedObject.segments.length > 0) {\n clonedObject.segments = [];\n }\n value = this.add(clonedObject, true);\n }\n if ((clonedObject || value) && canSingleSelect(this)) {\n this.select([this.nameTable[clonedObject[\"\" + id]]], false, this.previousSelectedObjects);\n }\n if (arg.target && arg.target instanceof Connector) {\n if (this.enableConnectorSplit === true) {\n if (this.nameTable[clonedObject[\"\" + id]] instanceof Node) {\n this.commandHandler.connectorSplit(this.nameTable[clonedObject[\"\" + id]], arg.target);\n this.commandHandler.PreventConnectorSplit = false;\n }\n }\n }\n }\n }\n else {\n this.clearSelectorLayer();\n }\n this.protectPropertyChange(false);\n newObj = this.nameTable[clonedObject[\"\" + id]];\n if (clonedObject['hasTarget']) {\n clonedObject.nodeId = clonedObject['hasTarget'];\n this.remove(clonedObject);\n }\n if (this.bpmnModule && newObj instanceof Node && clonedObject.processId) {\n newObj.processId = clonedObject.processId;\n this.bpmnModule.dropBPMNchild(this.nameTable[newObj.processId], newObj, this);\n }\n if (!arg.cancel) {\n this.endGroupAction();\n }\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n delete this.droppable[\"\" + source];\n return [3 /*break*/, 5];\n case 4:\n arg = {\n source: cloneBlazorObject(args.droppedElement),\n element: undefined,\n target: cloneBlazorObject(this.eventHandler['hoverNode'] || (this.eventHandler['lastObjectUnderMouse']) || this), cancel: false,\n position: undefined\n };\n if (isBlazor()) {\n arg = {\n source: cloneBlazorObject(args.droppedElement),\n element: undefined,\n cancel: false,\n position: undefined,\n target: {}\n };\n this.getDropEventArgs(arg);\n }\n this.triggerEvent(DiagramEvent.drop, arg);\n clonedObject = void 0;\n id = 'id';\n _a.label = 5;\n case 5:\n selectedSymbols = 'selectedSymbols';\n // eslint-disable-next-line max-len\n if (this.droppable[\"\" + selectedSymbols] && this.droppable[\"\" + selectedSymbols].parentNode) {\n remove(this.droppable[\"\" + selectedSymbols]);\n }\n else {\n draggableElement = document.getElementsByClassName('e-dragclone');\n for (i = 0; i < draggableElement.length; i++) {\n draggableElement[parseInt(i.toString(), 10)].remove();\n }\n }\n this.allowServerDataBinding = true;\n this.previousSelectedObjects = [];\n return [2 /*return*/];\n }\n });\n }); };\n this.droppable.out = function (args) {\n // EJ2-57221 - Added the below code to check if we drag the node from symbol palette using touch or mouse.\n if (args.evt.type === 'touchmove') {\n _this.eventHandler.mouseLeave(args.evt);\n }\n if (_this.currentSymbol && (!_this.eventHandler.focus)) {\n _this.unSelect(_this.currentSymbol);\n _this.removeFromAQuad(_this.currentSymbol);\n if (_this.mode !== 'SVG' && _this.currentSymbol.shape.type === 'Native') {\n _this.removeElements(_this.currentSymbol);\n }\n _this.removeObjectsFromLayer(_this.nameTable[_this.currentSymbol.id]);\n _this.removePreviewChildren(_this.currentSymbol);\n delete _this.nameTable[_this.currentSymbol.id];\n var args_1 = {\n element: cloneBlazorObject(_this.currentSymbol),\n diagram: _this\n };\n if (isBlazor()) {\n args_1 = _this.getBlazorDragLeaveEventArgs(args_1);\n }\n _this.triggerEvent(DiagramEvent.dragLeave, args_1);\n if (_this.mode !== 'SVG') {\n _this.refreshDiagramLayer();\n }\n else {\n _this.removeElements(_this.currentSymbol);\n //EJ2-833020-To remove the child element from the group node while dragging the group node from palette\n if (_this.currentSymbol.children && _this.currentSymbol.children.length > 0) {\n for (var i = 0; i < _this.currentSymbol.children.length; i++) {\n var child = _this.nameTable[_this.currentSymbol.children[parseInt(i.toString(), 10)]];\n _this.removeElements(child);\n delete _this.nameTable[_this.currentSymbol.children[parseInt(i.toString(), 10)]];\n }\n }\n }\n _this.currentSymbol = null;\n var selectedSymbols_1 = 'selectedSymbols';\n _this.droppable[\"\" + selectedSymbols_1].style.opacity = '1';\n var source = 'sourceElement';\n delete _this.droppable[\"\" + source];\n _this.diagramRenderer.rendererActions =\n _this.removeConstraints(_this.diagramRenderer.rendererActions, RendererAction.DrawSelectorBorder);\n if (_this.previousSelectedObject) {\n _this.select(_this.previousSelectedObject, _this.previousSelectedObject.length > 1 ? true : false);\n }\n _this.previousSelectedObject = null;\n }\n };\n };\n Diagram.prototype.getBlazorDragLeaveEventArgs = function (args) {\n args = {\n diagramId: this.element.id,\n element: getObjectType(args.element) === Connector ? { connector: cloneBlazorObject(args.element) }\n : { node: cloneBlazorObject(args.element) }\n };\n return args;\n };\n Diagram.prototype.getDropEventArgs = function (arg) {\n if ((this.eventHandler['lastObjectUnderMouse'] || this.eventHandler['hoverNode'])) {\n var object = this.eventHandler['lastObjectUnderMouse'] || this.eventHandler['hoverNode'];\n // eslint-disable-next-line max-len\n arg.target = getObjectType(object) === Connector ? { connector: cloneBlazorObject(object) } : { node: cloneBlazorObject(object) };\n }\n else {\n arg.target.diagramId = this.element.id;\n }\n };\n Diagram.prototype.removeChildInNodes = function (node) {\n if (node) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n this.removeChildInNodes(this.nameTable[node.children[parseInt(i.toString(), 10)]]);\n }\n }\n var index = this.nodes.indexOf(node);\n if (index !== -1) {\n this.nodes.splice(index, 1);\n }\n }\n };\n Diagram.prototype.getBlazorDragEventArgs = function (args) {\n args = {\n // eslint-disable-next-line max-len\n source: cloneBlazorObject(args.source), element: getObjectType(args.element) === Connector ? { connector: cloneBlazorObject(args.element) }\n : { node: cloneBlazorObject(args.element) },\n cancel: args.cancel, diagramId: this.element.id\n };\n return args;\n };\n Diagram.prototype.findChild = function (node, childTable) {\n var group;\n var newNode;\n for (var i = 0; i < node.children.length; i++) {\n group = childTable[node.children[parseInt(i.toString(), 10)]];\n if (group) {\n if (group.children) {\n this.findChild(group, childTable);\n }\n group.id = group.id + randomId();\n childTable[group.id] = group;\n node.children[parseInt(i.toString(), 10)] = group.id;\n newNode = new Node(this, 'nodes', group, true);\n this.initObject(newNode, undefined, undefined, true);\n //this.add(group, true);\n }\n }\n };\n Diagram.prototype.getChildren = function (node, entryTable, childTable) {\n var temp;\n for (var i = 0; i < node.children.length; i++) {\n temp = (childTable[node.children[parseInt(i.toString(), 10)]]);\n if (temp) {\n if (temp.children) {\n entryTable = this.getChildren(temp, entryTable, childTable);\n }\n entryTable[temp.id] = cloneObject(temp);\n }\n }\n return entryTable;\n };\n Diagram.prototype.addChildNodes = function (node) {\n var temp;\n for (var i = 0; i < node.children.length; i++) {\n temp = (this.nameTable[node.children[parseInt(i.toString(), 10)]]);\n if (temp) {\n if (temp.children) {\n this.addChildNodes(temp);\n }\n this.add(temp, true);\n }\n }\n };\n Diagram.prototype.moveNode = function (node) {\n var currentLayer = this.commandHandler.getObjectLayer(node.id);\n var index = currentLayer.zIndex;\n var length = currentLayer.objects.length;\n var targetLayer;\n for (var i = 0; i < this.layers.length; i++) {\n if (index === this.layers[parseInt(i.toString(), 10)].zIndex) {\n targetLayer = this.layers[i + 1];\n }\n }\n if (length > 1) {\n // Bug 830365: Exception raised on adding group node in layers dynamically.\n // Added below code to check the group node and iterate its children in layer to find the last object in the layer.\n var num = 2;\n if (node.children && node.children.length > 0) {\n while (node.children.indexOf(currentLayer.objects[length - num]) > -1) {\n num++;\n }\n }\n this.commandHandler.moveSvgNode(node.id, currentLayer.objects[length - num]);\n this.commandHandler.moveSvgNode(currentLayer.objects[length - num], node.id);\n }\n else {\n if (targetLayer) {\n var targetObject = this.commandHandler.getLayer(this.layerZIndexTable[targetLayer.zIndex]).objects[0];\n if (targetObject) {\n this.commandHandler.moveSvgNode(node.id, targetObject);\n this.commandHandler.updateNativeNodeIndex(node.id, targetObject);\n }\n else {\n this.moveObjectsUp(node, currentLayer);\n }\n }\n else {\n this.moveObjectsUp(node, currentLayer);\n }\n }\n };\n /**\n * moves the node or connector forward within given layer \\\n *\n * @returns { void } moves the node or connector forward within given layer .\\\n * @param {Node | Connector} node - provide the source value.\n * @param {LayerModel} currentLayer - provide the source value.\n *\n */\n Diagram.prototype.moveObjectsUp = function (node, currentLayer) {\n var targetLayer;\n for (var i = this.layers.length - 1; i >= 0; i--) {\n targetLayer = this.layers[parseInt(i.toString(), 10)];\n if (currentLayer.id !== targetLayer.id) {\n // eslint-disable-next-line max-len\n var targetObject = this.commandHandler.getLayer(this.layerZIndexTable[targetLayer.zIndex]).objects[targetLayer.objects.length - 1];\n if (targetObject) {\n this.commandHandler.moveSvgNode(node.id, targetObject);\n this.commandHandler.moveSvgNode(targetObject, node.id);\n break;\n }\n }\n }\n };\n /**\n * Inserts newly added element into the database \\\n *\n * @returns { void } Inserts newly added element into the database .\\\n * @param {Node | Connector} node - provide the source value.\n *\n */\n Diagram.prototype.insertData = function (node) {\n return this.crudOperation(node, 'create', this.getNewUpdateNodes('New'));\n };\n /**\n * updates the user defined element properties into the existing database \\\n *\n * @returns { void } Removes the user deleted element from the existing database .\\\n * @param {Node | Connector} node - provide the source value.\n *\n */\n Diagram.prototype.updateData = function (node) {\n return this.crudOperation(node, 'update', this.getNewUpdateNodes('Update'));\n };\n /**\n * Removes the user deleted element from the existing database \\\n *\n * @returns { void } Removes the user deleted element from the existing database .\\\n * @param {Node | Connector} node - provide the source value.\n *\n */\n Diagram.prototype.removeData = function (node) {\n return this.crudOperation(node, 'destroy', this.getDeletedNodes());\n };\n Diagram.prototype.crudOperation = function (node, crud, getNodesCollection) {\n if (node) {\n var data = this.parameterMap(node, node instanceof Connector ? false : true);\n if (data) {\n // eslint-disable-next-line max-len\n var url = node instanceof Connector ? this.dataSourceSettings.connectionDataSource.crudAction[\"\" + crud] : this.dataSourceSettings.crudAction[\"\" + crud];\n this.raiseAjaxPost(JSON.stringify(data), url);\n }\n return data;\n }\n else {\n var newObjects = getNodesCollection;\n // eslint-disable-next-line max-len\n this.processCrudCollection(newObjects, this.dataSourceSettings.crudAction[\"\" + crud], this.dataSourceSettings.connectionDataSource.crudAction[\"\" + crud]);\n return newObjects;\n }\n };\n Diagram.prototype.processCrudCollection = function (newObjects, nodeCrudAction, connectorCrudAction) {\n if (newObjects.nodes) {\n var data = [];\n var i = void 0;\n for (i = 0; i < newObjects.nodes.length; i++) {\n data.push(this.parameterMap(newObjects.nodes[parseInt(i.toString(), 10)], true));\n }\n if (data && data.length > 0) {\n this.raiseAjaxPost(JSON.stringify(data), nodeCrudAction);\n }\n }\n if (newObjects.connectors) {\n var data = [];\n var i = void 0;\n for (i = 0; i < newObjects.connectors.length; i++) {\n data.push(this.parameterMap(newObjects.connectors[parseInt(i.toString(), 10)], false));\n }\n if (data && data.length > 0) {\n this.raiseAjaxPost(JSON.stringify(data), connectorCrudAction);\n }\n }\n };\n Diagram.prototype.parameterMap = function (object, isNode) {\n var mappingObj = {};\n var i;\n var fields = isNode ? this.dataSourceSettings : this.dataSourceSettings.connectionDataSource;\n if (fields.id) {\n mappingObj[fields.id] = object.id;\n }\n if (fields.sourcePointX && fields.sourcePointY) {\n mappingObj[fields.sourcePointX] = object.sourcePoint.x;\n mappingObj[fields.sourcePointY] = object.sourcePoint.y;\n }\n if (fields.targetPointX && fields.targetPointY) {\n mappingObj[fields.targetPointX] = object.targetPoint.x;\n mappingObj[fields.targetPointY] = object.targetPoint.y;\n }\n if (fields.sourceID) {\n mappingObj[fields.sourceID] = object.sourceID;\n }\n if (fields.targetID) {\n mappingObj[fields.targetID] = object.targetID;\n }\n if (fields.crudAction && fields.crudAction.customFields && fields.crudAction.customFields.length > 0) {\n for (i = 0; i < fields.crudAction.customFields.length; i++) {\n mappingObj[fields.crudAction.customFields[parseInt(i.toString(), 10)]] = object[fields.crudAction.customFields[parseInt(i.toString(), 10)]];\n }\n }\n return mappingObj;\n };\n Diagram.prototype.getNewUpdateNodes = function (status) {\n var nodes = [];\n var connectors = [];\n // eslint-disable-next-line guard-for-in\n for (var name_1 in this.nameTable) {\n var node = this.nameTable[\"\" + name_1];\n if (node.status === status) {\n if (node && node instanceof Connector) {\n node.status = 'None';\n connectors.push(node);\n }\n else {\n node.status = 'None';\n nodes.push(node);\n }\n }\n }\n return { nodes: nodes, connectors: connectors };\n };\n Diagram.prototype.getDeletedNodes = function () {\n var nodes = [];\n var connectors = [];\n var i;\n for (i = 0; i < this.crudDeleteNodes.length; i++) {\n var node = this.crudDeleteNodes[parseInt(i.toString(), 10)];\n if (node && node.segments) {\n connectors.push(node);\n }\n else if (node) {\n nodes.push(node);\n }\n }\n this.crudDeleteNodes = [];\n return { nodes: nodes, connectors: connectors };\n };\n Diagram.prototype.raiseAjaxPost = function (value, url) {\n var callback = new Fetch(url, 'POST', 'application/json');\n var data = JSON.stringify(JSON.parse(value));\n callback.send(data).then();\n /* eslint-disable */\n callback.onSuccess = function (data) {\n };\n /* eslint-enable */\n };\n Diagram.prototype.getHiddenItems = function (args) {\n var hiddenItems = [];\n if (this.contextMenuModule) {\n this.contextMenuModule.hiddenItems = [];\n for (var _i = 0, _a = args.items; _i < _a.length; _i++) {\n var item = _a[_i];\n this.contextMenuModule.ensureItems(item, args.event);\n if (item.items && item.items.length) {\n for (var _b = 0, _c = item.items; _b < _c.length; _b++) {\n var newItem = _c[_b];\n this.contextMenuModule.ensureItems(newItem, args.event);\n }\n }\n }\n return this.contextMenuModule.hiddenItems;\n }\n return hiddenItems;\n };\n __decorate([\n Property('100%')\n ], Diagram.prototype, \"width\", void 0);\n __decorate([\n Property(false)\n ], Diagram.prototype, \"enableConnectorSplit\", void 0);\n __decorate([\n Property('SVG')\n ], Diagram.prototype, \"mode\", void 0);\n __decorate([\n Property('100%')\n ], Diagram.prototype, \"height\", void 0);\n __decorate([\n Property('Rhombus')\n ], Diagram.prototype, \"segmentThumbShape\", void 0);\n __decorate([\n Complex({}, ContextMenuSettings)\n ], Diagram.prototype, \"contextMenuSettings\", void 0);\n __decorate([\n Property(DiagramConstraints.Default)\n ], Diagram.prototype, \"constraints\", void 0);\n __decorate([\n Property(DiagramTools.Default)\n ], Diagram.prototype, \"tool\", void 0);\n __decorate([\n Property('Top')\n ], Diagram.prototype, \"bridgeDirection\", void 0);\n __decorate([\n Property('transparent')\n ], Diagram.prototype, \"backgroundColor\", void 0);\n __decorate([\n Complex({}, SnapSettings)\n ], Diagram.prototype, \"snapSettings\", void 0);\n __decorate([\n Complex({}, RulerSettings)\n ], Diagram.prototype, \"rulerSettings\", void 0);\n __decorate([\n Complex({}, PageSettings)\n ], Diagram.prototype, \"pageSettings\", void 0);\n __decorate([\n Complex({}, SerializationSettings)\n ], Diagram.prototype, \"serializationSettings\", void 0);\n __decorate([\n Collection([], Node)\n ], Diagram.prototype, \"nodes\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"drawingObject\", void 0);\n __decorate([\n Collection([], Connector)\n ], Diagram.prototype, \"connectors\", void 0);\n __decorate([\n Property([])\n ], Diagram.prototype, \"basicElements\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], Diagram.prototype, \"tooltip\", void 0);\n __decorate([\n Complex({}, DataSource)\n ], Diagram.prototype, \"dataSourceSettings\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"addInfo\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"historyManager\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"nodeTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"annotationTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"userHandleTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getNodeDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"nodeDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getConnectorDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"connectorDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"setNodeTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getDescription\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getCustomProperty\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getCustomTool\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getCustomCursor\", void 0);\n __decorate([\n Collection([], CustomCursorAction)\n ], Diagram.prototype, \"customCursor\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"updateSelection\", void 0);\n __decorate([\n Complex({}, DiagramSettings)\n ], Diagram.prototype, \"diagramSettings\", void 0);\n __decorate([\n Complex({}, Selector)\n ], Diagram.prototype, \"selectedItems\", void 0);\n __decorate([\n Complex({}, ScrollSettings)\n ], Diagram.prototype, \"scrollSettings\", void 0);\n __decorate([\n Complex({}, Layout)\n ], Diagram.prototype, \"layout\", void 0);\n __decorate([\n Complex({}, CommandManager)\n ], Diagram.prototype, \"commandManager\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dataLoaded\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dragEnter\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dragLeave\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dragOver\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"historyChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"historyStateChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"doubleClick\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"textEdit\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"scrollChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseWheel\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"selectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"sizeChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"connectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"sourcePointChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"targetPointChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"propertyChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"positionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"keyUp\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"keyDown\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"animationComplete\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"rotateChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"collectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"fixedUserHandleClick\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseDown\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseUp\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseEnter\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseLeave\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"segmentCollectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onImageLoad\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"expandStateChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"load\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseEnter\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseLeave\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseOver\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"elementDraw\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"contextMenuOpen\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"contextMenuBeforeItemRender\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"contextMenuClick\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"commandExecute\", void 0);\n __decorate([\n Collection([], Layer)\n ], Diagram.prototype, \"layers\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"drop\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"segmentChange\", void 0);\n return Diagram;\n}(Component));\nexport { Diagram };\n","import { Node } from '../objects/node';\nimport { Connector } from '../objects/connector';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { randomId, getFunction } from '../utility/base-util';\nimport { cloneBlazorObject } from '../utility/diagram-util';\nimport { updateDefaultValues } from '../utility/diagram-util';\nimport { isBlazor } from '@syncfusion/ej2-base';\n/**\n * data source defines the basic unit of diagram\n */\nvar DataBinding = /** @class */ (function () {\n /**\n * Constructor for the data binding module.\n * @private\n */\n function DataBinding() {\n /** @private */\n this.dataTable = {};\n //constructs the data binding module\n }\n /**\n * To destroy the data binding module\n *\n * @returns {void}\n * @private\n */\n DataBinding.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n DataBinding.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'DataBinding';\n };\n /**\n * Initialize nodes and connectors when we have a data as JSON\n *\n * @param {DataSourceModel} data\n * @param {Diagram} diagram\n * @private\n */\n DataBinding.prototype.initData = function (data, diagram) {\n var dataSource;\n var dataProp = 'data';\n var jsonProp = 'json';\n var dataManager = data.dataManager || data.dataSource || {};\n dataSource = dataManager[\"\" + dataProp] || dataManager[\"\" + jsonProp] ||\n (dataManager.dataSource ? dataManager.dataSource.json : undefined);\n if (dataSource && dataSource.length === 0 && dataManager.dataSource.data) {\n dataSource = dataManager.dataSource.data;\n }\n if (dataSource && dataSource.length) {\n this.applyDataSource(data, dataSource, diagram);\n diagram.trigger('dataLoaded', { diagram: (isBlazor()) ? null : cloneBlazorObject(diagram) });\n }\n };\n /**\n * Initialize nodes and connector when we have a data as remote url\n *\n * @param {DataSourceModel} data\n * @param {Diagram} diagram\n * @private\n */\n DataBinding.prototype.initSource = function (data, diagram) {\n var _this = this;\n var dataSource = data;\n var result;\n var mapper = data;\n if (dataSource.dataManager instanceof DataManager || dataSource.dataSource instanceof DataManager) {\n var tempObj = mapper.dataManager || mapper.dataSource;\n var query = tempObj.defaultQuery || new Query();\n var dataManager = data.dataManager || data.dataSource;\n dataManager.executeQuery(query).then(function (e) {\n var prop = 'result';\n result = e[\"\" + prop];\n if (!diagram.isDestroyed) {\n diagram.protectPropertyChange(true);\n _this.applyDataSource(data, result, diagram);\n diagram.refreshDiagram();\n diagram.protectPropertyChange(false);\n diagram.trigger('dataLoaded', { diagram: (isBlazor()) ? null : cloneBlazorObject(diagram) });\n }\n });\n }\n };\n DataBinding.prototype.applyDataSource = function (mapper, data, diagram) {\n this.dataTable = {};\n var obj;\n var firstNode;\n var node;\n var rootNodes = [];\n var firstLevel = [];\n var item;\n var nextLevel;\n if (data !== undefined) {\n for (var r = 0; r < data.length; r++) {\n obj = data[parseInt(r.toString(), 10)];\n if (obj[mapper.parentId] === undefined || obj[mapper.parentId] === null ||\n typeof obj[mapper.parentId] !== 'object') {\n if (rootNodes[obj[mapper.parentId]] !== undefined) {\n rootNodes[obj[mapper.parentId]].items.push(obj);\n }\n else {\n rootNodes[obj[mapper.parentId]] = { items: [obj] };\n }\n }\n else {\n rootNodes = this.updateMultipleRootNodes(obj, rootNodes, mapper, data);\n }\n if (mapper.root === obj[mapper.id]) {\n firstNode = { items: [obj] };\n }\n }\n if (firstNode) {\n firstLevel.push(firstNode);\n }\n else {\n for (var _i = 0, _a = Object.keys(rootNodes); _i < _a.length; _i++) {\n var n = _a[_i];\n if (!n || n === 'undefined' || n === '\\'\\'' || n === 'null') {\n firstLevel.push(rootNodes[\"\" + n]);\n }\n }\n }\n for (var i = 0; i < firstLevel.length; i++) {\n for (var j = 0; j < firstLevel[parseInt(i.toString(), 10)].items.length; j++) {\n item = firstLevel[parseInt(i.toString(), 10)].items[parseInt(j.toString(), 10)];\n node = this.applyNodeTemplate(mapper, item, diagram);\n diagram.nodes.push(node);\n this.dataTable[item[mapper.id]] = node;\n nextLevel = rootNodes[node.data[mapper.id]];\n if (nextLevel !== undefined) {\n this.renderChildNodes(mapper, nextLevel, node.id, rootNodes, diagram);\n }\n }\n }\n }\n this.dataTable = null;\n };\n /**\n * updateMultipleRootNodes method is used to update the multiple Root Nodes\n *\n * @param {Object} object\n * @param {Object[]} rootnodes\n * @param {DataSourceModel} mapper\n * @param {Object[]} data\n */\n DataBinding.prototype.updateMultipleRootNodes = function (obj, rootNodes, mapper, data) {\n var parents = obj[mapper.parentId];\n var parent;\n for (var i = 0; i < parents.length; i++) {\n parent = parents[parseInt(i.toString(), 10)];\n if (rootNodes[\"\" + parent]) {\n rootNodes[\"\" + parent].items.push(obj);\n }\n else {\n rootNodes[\"\" + parent] = { items: [obj] };\n }\n }\n return rootNodes;\n };\n /**\n * Get the node values\\\n *\n * @returns { Node } Get the node values.\\\n * @param {DataSourceModel} mapper - provide the id value.\n * @param {Object} item - provide the id value.\n * @param {Diagram} diagram - provide the id value.\n *\n * @private\n */\n DataBinding.prototype.applyNodeTemplate = function (mapper, item, diagram) {\n //const root: Object = item;\n var id = randomId();\n //const blazor: string = 'Blazor';\n var nodeModel = { id: id, data: item };\n // eslint-disable-next-line @typescript-eslint/ban-types\n var doBinding = getFunction(mapper.doBinding);\n if (doBinding) {\n doBinding(nodeModel, item, diagram);\n }\n var obj = new Node(diagram, 'nodes', nodeModel, true);\n updateDefaultValues(obj, nodeModel, diagram.nodeDefaults);\n if (mapper.dataMapSettings) {\n var index = void 0;\n var arrayProperty = [];\n var innerProperty = [];\n for (var i = 0; i < mapper.dataMapSettings.length; i++) {\n if (mapper.dataMapSettings[parseInt(i.toString(), 10)].property.indexOf('.') !== -1) {\n innerProperty = this.splitString(mapper.dataMapSettings[parseInt(i.toString(), 10)].property);\n for (var p = 0; p < innerProperty.length; p++) {\n if (innerProperty[parseInt(p.toString(), 10)].indexOf('[') !== -1) {\n index = innerProperty[parseInt(p.toString(), 10)].indexOf('[');\n arrayProperty = innerProperty[parseInt(p.toString(), 10)].split('[');\n }\n }\n if (index) {\n if (innerProperty[2]) {\n obj[arrayProperty[0]][innerProperty[0].charAt(index + 1)][innerProperty[1]][innerProperty[2]] =\n item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n else {\n var value = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n obj[arrayProperty[0]][innerProperty[0].charAt(index + 1)][innerProperty[1]] = value;\n }\n }\n else {\n if (innerProperty[2]) {\n obj[innerProperty[0]][innerProperty[1]][innerProperty[2]] = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n else {\n obj[innerProperty[0]][innerProperty[1]] = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n }\n }\n else {\n var property = mapper.dataMapSettings[parseInt(i.toString(), 10)].property;\n property = property.charAt(0).toLowerCase() + property.slice(1);\n obj[\"\" + property] = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n index = 0;\n arrayProperty = [];\n innerProperty = [];\n }\n }\n if (!this.collectionContains(obj, diagram, mapper.id, mapper.parentId)) {\n return obj;\n }\n else {\n return this.dataTable[item[mapper.id]];\n }\n };\n DataBinding.prototype.splitString = function (property) {\n var temp = [];\n temp = property.split('.');\n for (var i = 0; i < temp.length; i++) {\n temp[parseInt(i.toString(), 10)] = temp[parseInt(i.toString(), 10)].charAt(0).toLowerCase() + temp[parseInt(i.toString(), 10)].slice(1);\n }\n return temp;\n };\n DataBinding.prototype.renderChildNodes = function (mapper, parent, value, rtNodes, diagram) {\n var child;\n var nextLevel;\n var node;\n for (var j = 0; j < parent.items.length; j++) {\n child = parent.items[parseInt(j.toString(), 10)];\n node = this.applyNodeTemplate(mapper, child, diagram);\n var canBreak = false;\n if (!this.collectionContains(node, diagram, mapper.id, mapper.parentId)) {\n this.dataTable[child[mapper.id]] = node;\n diagram.nodes.push(node);\n }\n else {\n canBreak = true;\n }\n if (!this.containsConnector(diagram, value, node.id)) {\n diagram.connectors.push(this.applyConnectorTemplate(value, node.id, diagram));\n }\n if (!canBreak) {\n nextLevel = rtNodes[node.data[mapper.id]];\n if (nextLevel !== undefined) {\n this.renderChildNodes(mapper, nextLevel, node.id, rtNodes, diagram);\n }\n }\n }\n };\n // Bug 832897: Need to improve performance while rendering layout with large number of nodes.\n // Replaced for loop with some() method to improve performance.\n DataBinding.prototype.containsConnector = function (diagram, sourceNode, targetNode) {\n if (sourceNode === '' || targetNode === '') {\n return false;\n }\n return diagram.connectors.some(function (connector) {\n return connector !== undefined && connector.sourceID === sourceNode && connector.targetID === targetNode;\n });\n };\n /**\n * collectionContains method is used to check wthear the node is already present in collection or not\n *\n * @param {Node} node\n * @param {Diagram} diagram\n * @param {string} id\n * @param {string} parentId\n */\n DataBinding.prototype.collectionContains = function (node, diagram, id, parentId) {\n var obj = this.dataTable[node.data[\"\" + id]];\n if (obj !== undefined && obj.data[\"\" + id] === node.data[\"\" + id] && obj.data[\"\" + parentId] === node.data[\"\" + parentId]) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Get the Connector values\n *\n * @param {string} sNode\n * @param {string} tNode\n * @param {Diagram} diagram\n */\n DataBinding.prototype.applyConnectorTemplate = function (sNode, tNode, diagram) {\n var connModel = {\n id: randomId(), sourceID: sNode, targetID: tNode\n };\n var obj = new Connector(diagram, 'connectors', connModel, true);\n updateDefaultValues(obj, connModel, diagram.connectorDefaults);\n return obj;\n };\n return DataBinding;\n}());\nexport { DataBinding };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventHandler, Property, Event, KeyboardEvents, rippleEffect } from '@syncfusion/ej2-base';\nimport { getUniqueID, compile as templateCompiler } from '@syncfusion/ej2-base';\nimport { isVisible, closest, attributes, detach, select, addClass, removeClass, append } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, Collection, Animation } from '@syncfusion/ej2-base';\nimport { setStyleAttribute as setStyle, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, formatUnit, selectAll, SanitizeHtmlHelper, isRippleEnabled } from '@syncfusion/ej2-base';\nvar CLS_ACRDN_ROOT = 'e-acrdn-root';\nvar CLS_ROOT = 'e-accordion';\nvar CLS_ITEM = 'e-acrdn-item';\nvar CLS_ITEMFOCUS = 'e-item-focus';\nvar CLS_ITEMHIDE = 'e-hide';\nvar CLS_HEADER = 'e-acrdn-header';\nvar CLS_HEADERICN = 'e-acrdn-header-icon';\nvar CLS_HEADERCTN = 'e-acrdn-header-content';\nvar CLS_CONTENT = 'e-acrdn-panel';\nvar CLS_CTENT = 'e-acrdn-content';\nvar CLS_TOOGLEICN = 'e-toggle-icon';\nvar CLS_COLLAPSEICN = 'e-tgl-collapse-icon e-icons';\nvar CLS_EXPANDICN = 'e-expand-icon';\nvar CLS_RTL = 'e-rtl';\nvar CLS_CTNHIDE = 'e-content-hide';\nvar CLS_SLCT = 'e-select';\nvar CLS_SLCTED = 'e-selected';\nvar CLS_ACTIVE = 'e-active';\nvar CLS_ANIMATE = 'e-animate';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_TOGANIMATE = 'e-toggle-animation';\nvar CLS_NEST = 'e-nested';\nvar CLS_EXPANDSTATE = 'e-expand-state';\nvar CLS_CONTAINER = 'e-accordion-container';\n/**\n * Objects used for configuring the Accordion expanding item action properties.\n */\nvar AccordionActionSettings = /** @class */ (function (_super) {\n __extends(AccordionActionSettings, _super);\n function AccordionActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], AccordionActionSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], AccordionActionSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('linear')\n ], AccordionActionSettings.prototype, \"easing\", void 0);\n return AccordionActionSettings;\n}(ChildProperty));\nexport { AccordionActionSettings };\n/**\n * Objects used for configuring the Accordion animation properties.\n */\nvar AccordionAnimationSettings = /** @class */ (function (_super) {\n __extends(AccordionAnimationSettings, _super);\n function AccordionAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'SlideUp', duration: 400, easing: 'linear' }, AccordionActionSettings)\n ], AccordionAnimationSettings.prototype, \"collapse\", void 0);\n __decorate([\n Complex({ effect: 'SlideDown', duration: 400, easing: 'linear' }, AccordionActionSettings)\n ], AccordionAnimationSettings.prototype, \"expand\", void 0);\n return AccordionAnimationSettings;\n}(ChildProperty));\nexport { AccordionAnimationSettings };\n/**\n * An item object that is used to configure Accordion items.\n */\nvar AccordionItem = /** @class */ (function (_super) {\n __extends(AccordionItem, _super);\n function AccordionItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"content\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"header\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], AccordionItem.prototype, \"expanded\", void 0);\n __decorate([\n Property(true)\n ], AccordionItem.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], AccordionItem.prototype, \"disabled\", void 0);\n __decorate([\n Property()\n ], AccordionItem.prototype, \"id\", void 0);\n return AccordionItem;\n}(ChildProperty));\nexport { AccordionItem };\n/**\n * The Accordion is a vertically collapsible content panel that displays one or more panels at a time within the available space.\n * ```html\n *
\n * \n * ```\n */\nvar Accordion = /** @class */ (function (_super) {\n __extends(Accordion, _super);\n /**\n * Initializes a new instance of the Accordion class.\n *\n * @param {AccordionModel} options - Specifies Accordion model properties as options.\n * @param {string | HTMLElement} element - Specifies the element that is rendered as an Accordion.\n */\n function Accordion(options, element) {\n var _this = _super.call(this, options, element) || this;\n /**\n * Contains the keyboard configuration of the Accordion.\n */\n _this.keyConfigs = {\n moveUp: 'uparrow',\n moveDown: 'downarrow',\n enter: 'enter',\n space: 'space',\n home: 'home',\n end: 'end'\n };\n return _this;\n }\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n Accordion.prototype.destroy = function () {\n if (this.isReact || this.isAngular || this.isVue) {\n this.clearTemplate();\n }\n var ele = this.element;\n _super.prototype.destroy.call(this);\n this.unwireEvents();\n this.isDestroy = true;\n this.restoreContent(null);\n [].slice.call(ele.children).forEach(function (el) {\n ele.removeChild(el);\n });\n if (this.trgtEle) {\n this.trgtEle = null;\n while (this.ctrlTem.firstElementChild) {\n ele.appendChild(this.ctrlTem.firstElementChild);\n }\n this.ctrlTem = null;\n }\n ele.classList.remove(CLS_ACRDN_ROOT);\n ele.removeAttribute('style');\n this.element.removeAttribute('data-ripple');\n if (!this.isNested && isRippleEnabled) {\n this.removeRippleEffect();\n }\n };\n Accordion.prototype.preRender = function () {\n var nested = closest(this.element, '.' + CLS_CONTENT);\n this.isNested = false;\n this.templateEle = [];\n if (!this.isDestroy) {\n this.isDestroy = false;\n }\n if (nested && nested.firstElementChild && nested.firstElementChild.firstElementChild) {\n if (nested.firstElementChild.firstElementChild.classList.contains(CLS_ROOT)) {\n nested.classList.add(CLS_NEST);\n this.isNested = true;\n }\n }\n else {\n this.element.classList.add(CLS_ACRDN_ROOT);\n }\n if (this.enableRtl) {\n this.add(this.element, CLS_RTL);\n }\n };\n Accordion.prototype.add = function (ele, val) {\n ele.classList.add(val);\n };\n Accordion.prototype.remove = function (ele, val) {\n ele.classList.remove(val);\n };\n /**\n * To initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n Accordion.prototype.render = function () {\n this.initializeHeaderTemplate();\n this.initializeItemTemplate();\n this.initialize();\n this.renderControl();\n this.wireEvents();\n this.renderComplete();\n };\n Accordion.prototype.initialize = function () {\n var width = formatUnit(this.width);\n var height = formatUnit(this.height);\n setStyle(this.element, { 'width': width, 'height': height });\n if (isNOU(this.initExpand)) {\n this.initExpand = [];\n }\n if (this.expandedIndices.length > 0) {\n this.initExpand = this.expandedIndices;\n }\n };\n Accordion.prototype.renderControl = function () {\n this.trgtEle = (this.element.children.length > 0) ? select('div', this.element) : null;\n this.renderItems();\n this.initItemExpand();\n };\n Accordion.prototype.wireFocusEvents = function () {\n var acrdItem = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM));\n for (var _i = 0, acrdItem_1 = acrdItem; _i < acrdItem_1.length; _i++) {\n var item = acrdItem_1[_i];\n var headerEle = item.querySelector('.' + CLS_HEADER);\n if (item.childElementCount > 0 && headerEle) {\n EventHandler.clearEvents(headerEle);\n EventHandler.add(headerEle, 'focus', this.focusIn, this);\n EventHandler.add(headerEle, 'blur', this.focusOut, this);\n }\n }\n };\n Accordion.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n if (!isNOU(this.keyModule)) {\n this.keyModule.destroy();\n }\n };\n Accordion.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n if (!this.isNested && !this.isDestroy) {\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + CLS_HEADER });\n }\n if (!this.isNested) {\n this.keyModule = new KeyboardEvents(this.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n }\n };\n Accordion.prototype.templateParser = function (template) {\n if (template) {\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return templateCompiler(document.querySelector(template).innerHTML.trim());\n }\n else {\n return templateCompiler(template);\n }\n }\n catch (error) {\n return templateCompiler(template);\n }\n }\n return undefined;\n };\n Accordion.prototype.initializeHeaderTemplate = function () {\n if (this.headerTemplate) {\n this.headerTemplateFn = this.templateParser(this.headerTemplate);\n }\n };\n Accordion.prototype.initializeItemTemplate = function () {\n if (this.itemTemplate) {\n this.itemTemplateFn = this.templateParser(this.itemTemplate);\n }\n };\n Accordion.prototype.getHeaderTemplate = function () {\n return this.headerTemplateFn;\n };\n Accordion.prototype.getItemTemplate = function () {\n return this.itemTemplateFn;\n };\n Accordion.prototype.focusIn = function (e) {\n e.target.parentElement.classList.add(CLS_ITEMFOCUS);\n };\n Accordion.prototype.focusOut = function (e) {\n e.target.parentElement.classList.remove(CLS_ITEMFOCUS);\n };\n Accordion.prototype.ctrlTemplate = function () {\n this.ctrlTem = this.element.cloneNode(true);\n var innerEles;\n var rootEle = select('.' + CLS_CONTAINER, this.element);\n if (rootEle) {\n innerEles = rootEle.children;\n }\n else {\n innerEles = this.element.children;\n }\n var items = [];\n [].slice.call(innerEles).forEach(function (el) {\n items.push({\n header: (el.childElementCount > 0 && el.children[0]) ? (el.children[0]) : '',\n content: (el.childElementCount > 1 && el.children[1]) ? (el.children[1]) : ''\n });\n el.parentNode.removeChild(el);\n });\n if (rootEle) {\n this.element.removeChild(rootEle);\n }\n this.setProperties({ items: items }, true);\n };\n Accordion.prototype.toggleIconGenerate = function () {\n var tglIcon = this.createElement('div', { className: CLS_TOOGLEICN });\n var hdrColIcon = this.createElement('span', { className: CLS_COLLAPSEICN });\n tglIcon.appendChild(hdrColIcon);\n return tglIcon;\n };\n Accordion.prototype.initItemExpand = function () {\n var len = this.initExpand.length;\n if (len === 0) {\n return;\n }\n if (this.expandMode === 'Single') {\n this.expandItem(true, this.initExpand[len - 1]);\n }\n else {\n for (var i = 0; i < len; i++) {\n this.expandItem(true, this.initExpand[parseInt(i.toString(), 10)]);\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.renderItems = function () {\n var _this = this;\n var ele = this.element;\n var innerItem;\n var innerDataSourceItem;\n if (!isNOU(this.trgtEle)) {\n this.ctrlTemplate();\n }\n if (this.dataSource.length > 0) {\n this.dataSource.forEach(function (item, index) {\n innerDataSourceItem = _this.renderInnerItem(item, index);\n ele.appendChild(innerDataSourceItem);\n if (innerDataSourceItem.childElementCount > 0) {\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n }\n });\n }\n else {\n var items = this.items;\n if (ele && items.length > 0) {\n items.forEach(function (item, index) {\n innerItem = _this.renderInnerItem(item, index);\n ele.appendChild(innerItem);\n if (innerItem.childElementCount > 0) {\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n }\n });\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.clickHandler = function (e) {\n var trgt = e.target;\n var items = this.getItems();\n var eventArgs = {};\n var tglIcon;\n var acrdEle = closest(trgt, '.' + CLS_ROOT);\n if (acrdEle !== this.element) {\n return;\n }\n trgt.classList.add('e-target');\n var acrdnItem = closest(trgt, '.' + CLS_ITEM);\n var acrdnHdr = closest(trgt, '.' + CLS_HEADER);\n var acrdnCtn = closest(trgt, '.' + CLS_CONTENT);\n if (acrdnItem && (isNOU(acrdnHdr) || isNOU(acrdnCtn))) {\n acrdnHdr = acrdnItem.children[0];\n acrdnCtn = acrdnItem.children[1];\n }\n if (acrdnHdr) {\n tglIcon = select('.' + CLS_TOOGLEICN, acrdnHdr);\n }\n var acrdnCtnItem;\n if (acrdnHdr) {\n acrdnCtnItem = closest(acrdnHdr, '.' + CLS_ITEM);\n }\n else if (acrdnCtn) {\n acrdnCtnItem = closest(acrdnCtn, '.' + CLS_ITEM);\n }\n var index = this.getIndexByItem(acrdnItem);\n if (acrdnCtnItem) {\n eventArgs.item = items[this.getIndexByItem(acrdnCtnItem)];\n }\n eventArgs.originalEvent = e;\n var ctnCheck = !isNOU(tglIcon) && acrdnItem.childElementCount <= 1;\n if (ctnCheck && (isNOU(acrdnCtn) || !isNOU(select('.' + CLS_HEADER + ' .' + CLS_TOOGLEICN, acrdnCtnItem)))) {\n acrdnItem.appendChild(this.contentRendering(index));\n this.ariaAttrUpdate(acrdnItem);\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\n }\n else {\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.afterContentRender = function (trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem) {\n var _this = this;\n var acrdActive = [];\n this.trigger('clicked', eventArgs);\n var cntclkCheck = (acrdnCtn && !isNOU(select('.e-target', acrdnCtn)));\n var inlineAcrdnSel = '.' + CLS_CONTENT + ' .' + CLS_ROOT;\n var inlineEleAcrdn = acrdnCtn && !isNOU(select('.' + CLS_ROOT, acrdnCtn)) && isNOU(closest(trgt, inlineAcrdnSel));\n var nestContCheck = acrdnCtn && isNOU(select('.' + CLS_ROOT, acrdnCtn)) || !(closest(trgt, '.' + CLS_ROOT) === this.element);\n cntclkCheck = cntclkCheck && (inlineEleAcrdn || nestContCheck);\n trgt.classList.remove('e-target');\n if (trgt.classList.contains(CLS_CONTENT) || trgt.classList.contains(CLS_CTENT) || cntclkCheck) {\n return;\n }\n var acrdcontainer = this.element.querySelector('.' + CLS_CONTAINER);\n var acrdnchild = (acrdcontainer) ? acrdcontainer.children : this.element.children;\n [].slice.call(acrdnchild).forEach(function (el) {\n if (el.classList.contains(CLS_ACTIVE)) {\n acrdActive.push(el);\n }\n });\n var acrdAniEle = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM + ' [' + CLS_ANIMATE + ']'));\n if (acrdAniEle.length > 0) {\n for (var _i = 0, acrdAniEle_1 = acrdAniEle; _i < acrdAniEle_1.length; _i++) {\n var el = acrdAniEle_1[_i];\n acrdActive.push(el.parentElement);\n }\n }\n var sameContentCheck = acrdActive.indexOf(acrdnCtnItem) !== -1 && acrdnCtn.getAttribute('e-animate') === 'true';\n var sameHeader = false;\n if (!isNOU(acrdnItem) && !isNOU(acrdnHdr)) {\n var acrdnCtn_1 = select('.' + CLS_CONTENT, acrdnItem);\n var acrdnRoot = closest(acrdnItem, '.' + CLS_ACRDN_ROOT);\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\n if (isNOU(acrdnCtn_1)) {\n return;\n }\n sameHeader = (expandState === acrdnItem);\n if (isVisible(acrdnCtn_1) && (!sameContentCheck || acrdnCtnItem.classList.contains(CLS_SLCTED))) {\n this.collapse(acrdnCtn_1);\n }\n else {\n if ((acrdActive.length > 0) && this.expandMode === 'Single' && !sameContentCheck) {\n acrdActive.forEach(function (el) {\n _this.collapse(select('.' + CLS_CONTENT, el));\n el.classList.remove(CLS_EXPANDSTATE);\n });\n }\n this.expand(acrdnCtn_1);\n }\n if (!isNOU(expandState) && !sameHeader) {\n expandState.classList.remove(CLS_EXPANDSTATE);\n }\n }\n };\n Accordion.prototype.eleMoveFocus = function (action, root, trgt) {\n var clst;\n var clstItem = closest(trgt, '.' + CLS_ITEM);\n if (trgt === root) {\n clst = ((action === 'moveUp' ? trgt.lastElementChild : trgt).querySelector('.' + CLS_HEADER));\n }\n else if (trgt.classList.contains(CLS_HEADER)) {\n clstItem = (action === 'moveUp' ? clstItem.previousElementSibling : clstItem.nextElementSibling);\n if (clstItem) {\n clst = select('.' + CLS_HEADER, clstItem);\n }\n }\n if (clst) {\n clst.focus();\n }\n };\n Accordion.prototype.keyActionHandler = function (e) {\n var trgt = e.target;\n var header = closest(e.target, CLS_HEADER);\n if (isNOU(header) && !trgt.classList.contains(CLS_ROOT) && !trgt.classList.contains(CLS_HEADER)) {\n return;\n }\n var clst;\n var root = this.element;\n var content;\n switch (e.action) {\n case 'moveUp':\n this.eleMoveFocus(e.action, root, trgt);\n break;\n case 'moveDown':\n this.eleMoveFocus(e.action, root, trgt);\n break;\n case 'space':\n case 'enter':\n content = trgt.nextElementSibling;\n if (!isNOU(content) && content.classList.contains(CLS_CONTENT)) {\n if (content.getAttribute('e-animate') !== 'true') {\n trgt.click();\n }\n }\n else {\n trgt.click();\n }\n e.preventDefault();\n break;\n case 'home':\n case 'end':\n clst = e.action === 'home' ? root.firstElementChild.children[0] : root.lastElementChild.children[0];\n clst.focus();\n e.preventDefault();\n break;\n }\n };\n Accordion.prototype.headerEleGenerate = function () {\n var header = this.createElement('div', { className: CLS_HEADER, id: getUniqueID('acrdn_header') });\n var ariaAttr = {\n 'tabindex': '0', 'role': 'button', 'aria-disabled': 'false', 'aria-expanded': 'false'\n };\n attributes(header, ariaAttr);\n return header;\n };\n Accordion.prototype.renderInnerItem = function (item, index) {\n var innerEle = this.createElement('div', {\n className: CLS_ITEM, id: item.id || getUniqueID('acrdn_item')\n });\n if (this.headerTemplate) {\n var ctnEle = this.headerEleGenerate();\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\n ctnEle.appendChild(hdrEle);\n append(this.getHeaderTemplate()(item, this, 'headerTemplate', this.element.id + '_headerTemplate', false), hdrEle);\n innerEle.appendChild(ctnEle);\n ctnEle.appendChild(this.toggleIconGenerate());\n this.add(innerEle, CLS_SLCT);\n return innerEle;\n }\n if (item.header && this.angularnativeCondiCheck(item, 'header')) {\n if (this.enableHtmlSanitizer && typeof (item.header) === 'string') {\n item.header = SanitizeHtmlHelper.sanitize(item.header);\n }\n var ctnEle = this.headerEleGenerate();\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\n ctnEle.appendChild(hdrEle);\n ctnEle.appendChild(this.fetchElement(hdrEle, item.header, index, true));\n innerEle.appendChild(ctnEle);\n }\n var hdr = select('.' + CLS_HEADER, innerEle);\n if (item.expanded && !isNOU(index) && (!this.enablePersistence)) {\n if (this.initExpand.indexOf(index) === -1) {\n this.initExpand.push(index);\n }\n }\n if (item.cssClass) {\n addClass([innerEle], item.cssClass.split(' '));\n }\n if (item.disabled) {\n addClass([innerEle], CLS_DISABLE);\n }\n if (item.visible === false) {\n addClass([innerEle], CLS_ITEMHIDE);\n }\n if (item.iconCss) {\n var hdrIcnEle = this.createElement('div', { className: CLS_HEADERICN });\n var icon = this.createElement('span', { className: item.iconCss + ' e-icons' });\n hdrIcnEle.appendChild(icon);\n if (isNOU(hdr)) {\n hdr = this.headerEleGenerate();\n hdr.appendChild(hdrIcnEle);\n innerEle.appendChild(hdr);\n }\n else {\n hdr.insertBefore(hdrIcnEle, hdr.childNodes[0]);\n }\n }\n if (item.content && this.angularnativeCondiCheck(item, 'content')) {\n var hdrIcon = this.toggleIconGenerate();\n if (isNOU(hdr)) {\n hdr = this.headerEleGenerate();\n innerEle.appendChild(hdr);\n }\n hdr.appendChild(hdrIcon);\n this.add(innerEle, CLS_SLCT);\n }\n return innerEle;\n };\n Accordion.prototype.angularnativeCondiCheck = function (item, prop) {\n var property = prop === 'content' ? item.content : item.header;\n var content = property;\n if (this.isAngular && !isNOU(content.elementRef)) {\n var data = content.elementRef.nativeElement.data;\n if (isNOU(data) || data === '' || (data.indexOf('bindings=') === -1)) {\n return true;\n }\n var parseddata = JSON.parse(content.elementRef.nativeElement.data.replace('bindings=', ''));\n if (!isNOU(parseddata) && parseddata['ng-reflect-ng-if'] === 'false') {\n return false;\n }\n else {\n return true;\n }\n }\n else {\n return true;\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Accordion.prototype.fetchElement = function (ele, value, index, isHeader) {\n var templateFn;\n var temString;\n try {\n if (document.querySelectorAll(value).length && value !== 'Button') {\n var eleVal = document.querySelector(value);\n temString = eleVal.outerHTML.trim();\n ele.appendChild(eleVal);\n eleVal.style.display = '';\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n catch (e) {\n if (typeof (value) === 'string') {\n ele.innerHTML = SanitizeHtmlHelper.sanitize(value);\n }\n else if (!isNOU(this.trgtEle) && (value instanceof (HTMLElement))) {\n ele.appendChild(value);\n ele.firstElementChild.style.display = '';\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n var tempArray;\n if (!isNOU(templateFn)) {\n if (this.isReact) {\n this.renderReactTemplates();\n }\n var templateProps = void 0;\n var templateName = void 0;\n if (ele.classList.contains(CLS_HEADERCTN)) {\n templateProps = this.element.id + index + '_header';\n templateName = 'header';\n }\n else if (ele.classList.contains(CLS_CTENT)) {\n templateProps = this.element.id + index + '_content';\n templateName = 'content';\n }\n tempArray = templateFn({}, this, templateName, templateProps, this.isStringTemplate);\n }\n if (!isNOU(tempArray) && tempArray.length > 0 && !(isNOU(tempArray[0].tagName) && tempArray.length === 1)) {\n [].slice.call(tempArray).forEach(function (el) {\n if (!isNOU(el.tagName)) {\n el.style.display = '';\n }\n ele.appendChild(el);\n });\n }\n else if (ele.childElementCount === 0) {\n ele.innerHTML = SanitizeHtmlHelper.sanitize(value);\n }\n if (!isNOU(temString)) {\n if (this.templateEle.indexOf(value) === -1) {\n this.templateEle.push(value);\n }\n }\n return ele;\n };\n Accordion.prototype.ariaAttrUpdate = function (itemEle) {\n var header = select('.' + CLS_HEADER, itemEle);\n var content = select('.' + CLS_CONTENT, itemEle);\n header.setAttribute('aria-controls', content.id);\n content.setAttribute('aria-labelledby', header.id);\n content.setAttribute('role', 'region');\n };\n Accordion.prototype.contentRendering = function (index) {\n var itemcnt = this.createElement('div', { className: CLS_CONTENT + ' ' + CLS_CTNHIDE, id: getUniqueID('acrdn_panel') });\n attributes(itemcnt, { 'aria-hidden': 'true' });\n var ctn = this.createElement('div', { className: CLS_CTENT });\n if (this.dataSource.length > 0) {\n if (this.isReact) {\n this.renderReactTemplates();\n }\n append(this.getItemTemplate()(this.dataSource[parseInt(index.toString(), 10)], this, 'itemTemplate', this.element.id + '_itemTemplate', false), ctn);\n itemcnt.appendChild(ctn);\n }\n else {\n if (this.enableHtmlSanitizer && typeof (this.items[parseInt(index.toString(), 10)].content)) {\n this.items[parseInt(index.toString(), 10)].content =\n SanitizeHtmlHelper.sanitize(this.items[parseInt(index.toString(), 10)].content);\n }\n itemcnt.appendChild(this.fetchElement(ctn, this.items[parseInt(index.toString(), 10)].content, index, false));\n }\n return itemcnt;\n };\n Accordion.prototype.expand = function (trgt) {\n var _this = this;\n var items = this.getItems();\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\n if (isNOU(trgt) || (isVisible(trgt) && trgt.getAttribute('e-animate') !== 'true') || trgtItemEle.classList.contains(CLS_DISABLE)) {\n return;\n }\n var acrdnRoot = closest(trgtItemEle, '.' + CLS_ACRDN_ROOT);\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\n var animation = {\n name: this.animation.expand.effect,\n duration: this.animation.expand.duration,\n timingFunction: this.animation.expand.easing\n };\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\n var eventArgs = {\n element: trgtItemEle,\n item: items[this.getIndexByItem(trgtItemEle)],\n index: this.getIndexByItem(trgtItemEle),\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\n isExpanded: true\n };\n this.trigger('expanding', eventArgs, function (expandArgs) {\n if (!expandArgs.cancel) {\n icon.classList.add(CLS_TOGANIMATE);\n _this.expandedItemsPush(trgtItemEle);\n if (!isNOU(expandState)) {\n expandState.classList.remove(CLS_EXPANDSTATE);\n }\n trgtItemEle.classList.add(CLS_EXPANDSTATE);\n if ((animation.name === 'None')) {\n _this.expandProgress('begin', icon, trgt, trgtItemEle, expandArgs);\n _this.expandProgress('end', icon, trgt, trgtItemEle, expandArgs);\n }\n else {\n _this.expandAnimation(animation.name, icon, trgt, trgtItemEle, animation, expandArgs);\n }\n }\n });\n };\n Accordion.prototype.expandAnimation = function (ef, icn, trgt, trgtItemEle, animate, args) {\n var _this = this;\n var height;\n this.lastActiveItemId = trgtItemEle.id;\n if (ef === 'SlideDown') {\n animate.begin = function () {\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\n trgt.style.position = 'absolute';\n height = trgtItemEle.offsetHeight;\n trgt.style.maxHeight = (trgt.offsetHeight) + 'px';\n trgtItemEle.style.maxHeight = '';\n };\n animate.progress = function () {\n trgtItemEle.style.minHeight = (height + trgt.offsetHeight) + 'px';\n };\n animate.end = function () {\n setStyle(trgt, { 'position': '', 'maxHeight': '' });\n trgtItemEle.style.minHeight = '';\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\n };\n }\n else {\n animate.begin = function () {\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\n };\n animate.end = function () {\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\n };\n }\n new Animation(animate).animate(trgt);\n };\n Accordion.prototype.expandProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\n this.remove(trgt, CLS_CTNHIDE);\n this.add(trgtItemEle, CLS_SLCTED);\n this.add(icon, CLS_EXPANDICN);\n if (progress === 'end') {\n this.add(trgtItemEle, CLS_ACTIVE);\n trgt.setAttribute('aria-hidden', 'false');\n attributes(trgt.previousElementSibling, { 'aria-expanded': 'true' });\n icon.classList.remove(CLS_TOGANIMATE);\n this.trigger('expanded', eventArgs);\n }\n };\n Accordion.prototype.expandedItemsPush = function (item) {\n var index = this.getIndexByItem(item);\n if (this.expandedIndices.indexOf(index) === -1) {\n var temp = [].slice.call(this.expandedIndices);\n temp.push(index);\n this.setProperties({ expandedIndices: temp }, true);\n }\n };\n Accordion.prototype.getIndexByItem = function (item) {\n var itemEle = this.getItemElements();\n return [].slice.call(itemEle).indexOf(item);\n };\n Accordion.prototype.getItemElements = function () {\n var itemEle = [];\n var itemCollection = this.element.children;\n [].slice.call(itemCollection).forEach(function (el) {\n if (el.classList.contains(CLS_ITEM)) {\n itemEle.push(el);\n }\n });\n return itemEle;\n };\n Accordion.prototype.expandedItemsPop = function (item) {\n var index = this.getIndexByItem(item);\n var temp = [].slice.call(this.expandedIndices);\n temp.splice(temp.indexOf(index), 1);\n this.setProperties({ expandedIndices: temp }, true);\n };\n Accordion.prototype.collapse = function (trgt) {\n var _this = this;\n var items = this.getItems();\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\n if (isNOU(trgt) || !isVisible(trgt) || trgtItemEle.classList.contains(CLS_DISABLE)) {\n return;\n }\n var animation = {\n name: this.animation.collapse.effect,\n duration: this.animation.collapse.duration,\n timingFunction: this.animation.collapse.easing\n };\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\n var eventArgs = {\n element: trgtItemEle,\n item: items[this.getIndexByItem(trgtItemEle)],\n index: this.getIndexByItem(trgtItemEle),\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\n isExpanded: false\n };\n this.trigger('expanding', eventArgs, function (expandArgs) {\n if (!expandArgs.cancel) {\n _this.expandedItemsPop(trgtItemEle);\n trgtItemEle.classList.remove(CLS_EXPANDSTATE);\n icon.classList.add(CLS_TOGANIMATE);\n if ((animation.name === 'None')) {\n _this.collapseProgress('begin', icon, trgt, trgtItemEle, expandArgs);\n _this.collapseProgress('end', icon, trgt, trgtItemEle, expandArgs);\n }\n else {\n _this.collapseAnimation(animation.name, trgt, trgtItemEle, icon, animation, expandArgs);\n }\n }\n });\n };\n Accordion.prototype.collapseAnimation = function (ef, trgt, trgtItEl, icn, animate, args) {\n var _this = this;\n var height;\n var trgtHeight;\n var itemHeight;\n var remain;\n this.lastActiveItemId = trgtItEl.id;\n if (ef === 'SlideUp') {\n animate.begin = function () {\n itemHeight = trgtItEl.offsetHeight;\n trgtItEl.style.minHeight = itemHeight + 'px';\n trgt.style.position = 'absolute';\n height = trgtItEl.offsetHeight;\n trgtHeight = trgt.offsetHeight;\n trgt.style.maxHeight = trgtHeight + 'px';\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\n };\n animate.progress = function () {\n remain = ((height - (trgtHeight - trgt.offsetHeight)));\n if (remain < itemHeight) {\n trgtItEl.style.minHeight = remain + 'px';\n }\n };\n animate.end = function () {\n trgt.style.display = 'none';\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\n trgtItEl.style.minHeight = '';\n setStyle(trgt, { 'position': '', 'maxHeight': '', 'display': '' });\n };\n }\n else {\n animate.begin = function () {\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\n };\n animate.end = function () {\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\n };\n }\n new Animation(animate).animate(trgt);\n };\n Accordion.prototype.collapseProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\n this.remove(icon, CLS_EXPANDICN);\n this.remove(trgtItemEle, CLS_SLCTED);\n if (progress === 'end') {\n this.add(trgt, CLS_CTNHIDE);\n icon.classList.remove(CLS_TOGANIMATE);\n this.remove(trgtItemEle, CLS_ACTIVE);\n trgt.setAttribute('aria-hidden', 'true');\n attributes(trgt.previousElementSibling, { 'aria-expanded': 'false' });\n this.trigger('expanded', eventArgs);\n }\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n Accordion.prototype.getModuleName = function () {\n return 'accordion';\n };\n Accordion.prototype.getItems = function () {\n var items;\n if (this.itemTemplate && this.headerTemplate) {\n items = this.dataSource;\n }\n else {\n items = this.items;\n }\n return items;\n };\n /**\n * Adds new item to the Accordion with the specified index of the Accordion.\n *\n * @param {AccordionItemModel | AccordionItemModel[] | Object | Object[]} item - Item array that is to be added to the Accordion.\n * @param {number} index - Number value that determines where the item should be added.\n * By default, item is added at the last index if the index is not specified.\n * @returns {void}\n */\n Accordion.prototype.addItem = function (item, index) {\n var _this = this;\n var ele = this.element;\n var itemEle = this.getItemElements();\n var items = this.getItems();\n if (isNOU(index)) {\n index = items.length;\n }\n if (ele.childElementCount >= index) {\n var addItems = (item instanceof Array) ? item : [item];\n addItems.forEach(function (addItem, i) {\n var itemIndex = index + i;\n items.splice(itemIndex, 0, addItem);\n var innerItemEle = _this.renderInnerItem(addItem, itemIndex);\n if (ele.childElementCount === itemIndex) {\n ele.appendChild(innerItemEle);\n }\n else {\n ele.insertBefore(innerItemEle, itemEle[parseInt(itemIndex.toString(), 10)]);\n }\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n _this.expandedIndices = [];\n _this.expandedItemRefresh(ele);\n if (addItem && addItem.expanded) {\n _this.expandItem(true, itemIndex);\n }\n });\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Accordion.prototype.expandedItemRefresh = function (ele) {\n var _this = this;\n var itemEle = this.getItemElements();\n [].slice.call(itemEle).forEach(function (el) {\n if (el.classList.contains(CLS_SLCTED)) {\n _this.expandedItemsPush(el);\n }\n });\n };\n /**\n * Dynamically removes item from Accordion.\n *\n * @param {number} index - Number value that determines which item should be removed.\n * @returns {void}.\n */\n Accordion.prototype.removeItem = function (index) {\n if (this.isReact) {\n this.clearTemplate(['headerTemplate', 'itemTemplate'], index);\n }\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n var items = this.getItems();\n if (isNOU(ele)) {\n return;\n }\n this.restoreContent(index);\n detach(ele);\n items.splice(index, 1);\n this.expandedIndices = [];\n this.expandedItemRefresh(this.element);\n };\n /**\n * Sets focus to the specified index item header in Accordion.\n *\n * @param {number} index - Number value that determines which item should be focused.\n * @returns {void}.\n */\n Accordion.prototype.select = function (index) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele) || isNOU(select('.' + CLS_HEADER, ele))) {\n return;\n }\n ele.children[0].focus();\n };\n /**\n * Shows or hides the specified item from Accordion.\n *\n * @param {number} index - Number value that determines which item should be hidden/shown.\n * @param {boolean} isHidden - Boolean value that determines the action either hide (true) or show (false). Default value is false.\n * If the `isHidden` value is false, the item is shown or else item it is hidden.\n * @returns {void}.\n */\n Accordion.prototype.hideItem = function (index, isHidden) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele)) {\n return;\n }\n if (isNOU(isHidden)) {\n isHidden = true;\n }\n if (isHidden) {\n this.add(ele, CLS_ITEMHIDE);\n }\n else {\n this.remove(ele, CLS_ITEMHIDE);\n }\n };\n /**\n * Enables/Disables the specified Accordion item.\n *\n * @param {number} index - Number value that determines which item should be enabled/disabled.\n * @param {boolean} isEnable - Boolean value that determines the action as enable (true) or disable (false).\n * If the `isEnable` value is true, the item is enabled or else it is disabled.\n * @returns {void}.\n */\n Accordion.prototype.enableItem = function (index, isEnable) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele)) {\n return;\n }\n var eleHeader = ele.firstElementChild;\n if (isEnable) {\n this.remove(ele, CLS_DISABLE);\n attributes(eleHeader, { 'tabindex': '0', 'aria-disabled': 'false' });\n eleHeader.focus();\n }\n else {\n if (ele.classList.contains(CLS_ACTIVE)) {\n this.expandItem(false, index);\n this.eleMoveFocus('movedown', this.element, eleHeader);\n }\n this.add(ele, CLS_DISABLE);\n eleHeader.setAttribute('aria-disabled', 'true');\n eleHeader.removeAttribute('tabindex');\n }\n };\n /**\n * Expands/Collapses the specified Accordion item.\n *\n * @param {boolean} isExpand - Boolean value that determines the action as expand or collapse.\n * @param {number} index - Number value that determines which item should be expanded/collapsed.`index` is optional parameter.\n * Without Specifying index, based on the `isExpand` value all Accordion item can be expanded or collapsed.\n * @returns {void}.\n */\n Accordion.prototype.expandItem = function (isExpand, index) {\n var _this = this;\n var itemEle = this.getItemElements();\n if (isNOU(index)) {\n if (this.expandMode === 'Single' && isExpand) {\n var ele = itemEle[itemEle.length - 1];\n this.itemExpand(isExpand, ele, this.getIndexByItem(ele));\n }\n else {\n var item = select('#' + this.lastActiveItemId, this.element);\n [].slice.call(itemEle).forEach(function (el) {\n _this.itemExpand(isExpand, el, _this.getIndexByItem(el));\n el.classList.remove(CLS_EXPANDSTATE);\n });\n var expandedItem = select('.' + CLS_EXPANDSTATE, this.element);\n if (expandedItem) {\n expandedItem.classList.remove(CLS_EXPANDSTATE);\n }\n if (item) {\n item.classList.add(CLS_EXPANDSTATE);\n }\n }\n }\n else {\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele) || !ele.classList.contains(CLS_SLCT) || (ele.classList.contains(CLS_ACTIVE) && isExpand)) {\n return;\n }\n else {\n if (this.expandMode === 'Single') {\n this.expandItem(false);\n }\n this.itemExpand(isExpand, ele, index);\n }\n }\n };\n Accordion.prototype.itemExpand = function (isExpand, ele, index) {\n var ctn = ele.children[1];\n if (ele.classList.contains(CLS_DISABLE)) {\n return;\n }\n if (isNOU(ctn) && isExpand) {\n ctn = this.contentRendering(index);\n ele.appendChild(ctn);\n this.ariaAttrUpdate(ele);\n this.expand(ctn);\n }\n else if (!isNOU(ctn)) {\n if (isExpand) {\n this.expand(ctn);\n }\n else {\n this.collapse(ctn);\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.destroyItems = function () {\n this.restoreContent(null);\n if (this.isReact || this.isAngular || this.isVue) {\n this.clearTemplate();\n }\n [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) {\n detach(el);\n });\n };\n Accordion.prototype.restoreContent = function (index) {\n var ctnElePos;\n if (isNOU(index)) {\n ctnElePos = this.element;\n }\n else {\n ctnElePos = this.element.querySelectorAll('.' + CLS_ITEM)[parseInt(index.toString(), 10)];\n }\n this.templateEle.forEach(function (eleStr) {\n if (!isNOU(ctnElePos.querySelector(eleStr))) {\n document.body.appendChild(ctnElePos.querySelector(eleStr)).style.display = 'none';\n }\n });\n };\n Accordion.prototype.updateItem = function (item, index) {\n if (!isNOU(item)) {\n var items = this.getItems();\n var itemObj = items[parseInt(index.toString(), 10)];\n items.splice(index, 1);\n this.restoreContent(index);\n var header = select('.' + CLS_HEADERCTN, item);\n var content = select('.' + CLS_CTENT, item);\n if (this.isReact || this.isAngular) {\n this.clearAccordionTemplate(header, 'header', CLS_HEADERCTN);\n this.clearAccordionTemplate(content, 'content', CLS_CTENT);\n }\n detach(item);\n this.addItem(itemObj, index);\n }\n };\n Accordion.prototype.setTemplate = function (template, toElement, index) {\n toElement.innerHTML = '';\n this.templateCompile(toElement, template, index);\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.templateCompile = function (ele, cnt, index) {\n var tempEle = this.createElement('div');\n this.fetchElement(tempEle, cnt, index, false);\n if (tempEle.childNodes.length !== 0) {\n [].slice.call(tempEle.childNodes).forEach(function (childEle) {\n ele.appendChild(childEle);\n });\n }\n };\n Accordion.prototype.clearAccordionTemplate = function (templateEle, templateName, className) {\n if (this.registeredTemplate && this.registeredTemplate[\"\" + templateName]) {\n var registeredTemplates = this.registeredTemplate;\n for (var index = 0; index < registeredTemplates[\"\" + templateName].length; index++) {\n var registeredItem = registeredTemplates[\"\" + templateName][parseInt(index.toString(), 10)].rootNodes[0];\n var closestItem = closest(registeredItem.containerInfo, '.' + className);\n if (!isNOU(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], [registeredTemplates[\"\" + templateName][parseInt(index.toString(), 10)]]);\n break;\n }\n }\n }\n else if (this.portals && this.portals.length > 0) {\n var portals = this.portals;\n for (var index = 0; index < portals.length; index++) {\n var portalItem = portals[parseInt(index.toString(), 10)];\n var closestItem = closest(portalItem.containerInfo, '.' + className);\n if (!isNOU(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], index);\n break;\n }\n }\n }\n };\n Accordion.prototype.getPersistData = function () {\n var keyEntity = ['expandedIndices'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {AccordionModel} newProp - It contains the new value of data.\n * @param {AccordionModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n Accordion.prototype.onPropertyChanged = function (newProp, oldProp) {\n var acrdn = this.element;\n var isRefresh = false;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'items':\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\n var changedProp = Object.keys(newProp.items);\n for (var j = 0; j < changedProp.length; j++) {\n var index = parseInt(Object.keys(newProp.items)[parseInt(j.toString(), 10)], 10);\n var property = Object.keys(newProp.items[parseInt(index.toString(), 10)]);\n for (var k = 0; k < property.length; k++) {\n var item = selectAll('.' + CLS_ITEM, this.element)[parseInt(index.toString(), 10)];\n var oldVal = Object(oldProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]];\n var newVal = Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]];\n var temp = property[parseInt(k.toString(), 10)];\n var content = select('.' + CLS_CTENT, item);\n if (temp === 'header' || temp === 'iconCss' || temp === 'expanded' || ((temp === 'content') && (oldVal === ''))) {\n this.updateItem(item, index);\n }\n if (property[parseInt(k.toString(), 10)] === 'cssClass' && !isNOU(item)) {\n if (oldVal) {\n removeClass([item], oldVal.split(' '));\n }\n if (newVal) {\n addClass([item], newVal.split(' '));\n }\n }\n if (property[parseInt(k.toString(), 10)] === 'visible' && !isNOU(item)) {\n if (Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]] === false) {\n item.classList.add(CLS_ITEMHIDE);\n }\n else {\n item.classList.remove(CLS_ITEMHIDE);\n }\n }\n if (property[parseInt(k.toString(), 10)] === 'disabled' && !isNOU(item)) {\n this.enableItem(index, !newVal);\n }\n if (property[parseInt(k.toString(), 10)] === 'content' && !isNOU(item) && item.children.length === 2) {\n if (typeof newVal === 'function') {\n if (this.isAngular || this.isReact) {\n this.clearAccordionTemplate(content, property[parseInt(k.toString(), 10)], CLS_CTENT);\n }\n var activeContent = item.querySelector('.' + CLS_CTENT);\n activeContent.innerHTML = '';\n this.setTemplate(newVal, activeContent, index);\n }\n else {\n if (item.classList.contains(CLS_SLCTED)) {\n this.expandItem(false, index);\n }\n detach(item.querySelector('.' + CLS_CONTENT));\n }\n }\n }\n }\n }\n else {\n isRefresh = true;\n }\n break;\n case 'dataSource':\n case 'expandedIndices':\n if (this.expandedIndices === null) {\n this.expandedIndices = [];\n }\n isRefresh = true;\n break;\n case 'headerTemplate':\n this.initializeHeaderTemplate();\n isRefresh = true;\n break;\n case 'itemTemplate':\n this.initializeItemTemplate();\n isRefresh = true;\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.add(acrdn, CLS_RTL);\n }\n else {\n this.remove(acrdn, CLS_RTL);\n }\n break;\n case 'height':\n setStyle(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'width':\n setStyle(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'expandMode':\n if (newProp.expandMode === 'Single' && this.expandedIndices.length > 1) {\n this.expandItem(false);\n }\n break;\n }\n }\n if (isRefresh) {\n this.initExpand = [];\n if (this.expandedIndices.length > 0) {\n this.initExpand = this.expandedIndices;\n }\n this.destroyItems();\n this.renderItems();\n this.initItemExpand();\n }\n };\n __decorate([\n Collection([], AccordionItem)\n ], Accordion.prototype, \"items\", void 0);\n __decorate([\n Property([])\n ], Accordion.prototype, \"dataSource\", void 0);\n __decorate([\n Property()\n ], Accordion.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property()\n ], Accordion.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property('100%')\n ], Accordion.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Accordion.prototype, \"height\", void 0);\n __decorate([\n Property([])\n ], Accordion.prototype, \"expandedIndices\", void 0);\n __decorate([\n Property('Multiple')\n ], Accordion.prototype, \"expandMode\", void 0);\n __decorate([\n Property(false)\n ], Accordion.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, AccordionAnimationSettings)\n ], Accordion.prototype, \"animation\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"clicked\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"expanding\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"expanded\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"destroyed\", void 0);\n Accordion = __decorate([\n NotifyPropertyChanges\n ], Accordion);\n return Accordion;\n}(Component));\nexport { Accordion };\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Node } from './../objects/node';\nimport { DiagramElement } from './../core/elements/diagram-element';\nimport { Canvas } from './../core/containers/canvas';\nimport { Container } from './../core/containers/container';\nimport { PathElement } from './../core/elements/path-element';\nimport { TextElement } from './../core/elements/text-element';\nimport { updateStyle } from './../../diagram/utility/diagram-util';\nimport { randomId, cloneObject } from './../utility/base-util';\nimport { Connector } from './../objects/connector';\nimport { BpmnAnnotation } from './../objects/node';\nimport { Transform, DiagramAction } from '../enum/enum';\nimport { findAngle, getIntersectionPoints, getPortDirection } from '../utility/connector';\nimport { Point } from '../primitives/point';\nimport { NodeConstraints, ConnectorConstraints } from '../enum/enum';\nimport { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { getDiagramElement } from '../utility/dom-util';\nimport { isBlazor } from '@syncfusion/ej2-base';\nimport { removeElement } from '../utility/dom-util';\n/**\n * BPMN Diagrams contains the BPMN functionalities\n */\nvar BpmnDiagrams = /** @class */ (function () {\n //End size region\n /**\n * Constructor for the BpmnDiagrams module\n *\n * @private\n */\n function BpmnDiagrams() {\n //Code conversion for Bpmn Shapes\n //Start Region\n /** @private */\n this.annotationObjects = {};\n //constructs the BpmnDiagrams module\n }\n Object.defineProperty(BpmnDiagrams.prototype, \"textAnnotationConnectors\", {\n /** @private */\n get: function () {\n var connectors = [];\n for (var _i = 0, _a = Object.keys(this.annotationObjects); _i < _a.length; _i++) {\n var key = _a[_i];\n var entry = this.annotationObjects[\"\" + key];\n for (var _b = 0, _c = Object.keys(entry); _b < _c.length; _b++) {\n var annotation = _c[_b];\n var key_1 = 'connector';\n connectors.push(entry[\"\" + annotation][\"\" + key_1]);\n }\n }\n return connectors;\n },\n enumerable: true,\n configurable: true\n });\n /** @private */\n BpmnDiagrams.prototype.getTextAnnotationConn = function (obj) {\n var connectors = [];\n if (obj.shape.type === 'Bpmn' && obj.shape.annotations.length !== 0) {\n var entry = this.annotationObjects[obj.id];\n for (var _i = 0, _a = Object.keys(entry); _i < _a.length; _i++) {\n var annotation = _a[_i];\n var key = 'connector';\n connectors.push(entry[\"\" + annotation][\"\" + key]);\n }\n }\n return connectors;\n };\n /** @private */\n BpmnDiagrams.prototype.getSize = function (node, content) {\n var size = new Size(node.width, node.height);\n if (size.width === undefined || size.height === undefined) {\n if (!(content instanceof PathElement)) {\n size.width = size.width || 50;\n size.height = size.height || 50;\n }\n if (content.actualSize.width && content.actualSize.height) {\n return content.actualSize;\n }\n else {\n content.measure(new Size());\n size.width = size.width || content.desiredSize.width;\n size.height = size.height || content.desiredSize.height;\n }\n if (node.maxWidth !== undefined) {\n size.width = Math.min(size.width, node.maxWidth);\n }\n if (node.maxHeight !== undefined) {\n size.height = Math.min(size.height, node.maxHeight);\n }\n if (node.minWidth !== undefined) {\n size.width = Math.max(size.width, node.minWidth);\n }\n if (node.minHeight !== undefined) {\n size.height = Math.max(size.height, node.minHeight);\n }\n }\n return size;\n };\n /** @private */\n BpmnDiagrams.prototype.initBPMNContent = function (content, node, diagram) {\n var shape = (isBlazor() ? node.shape : node.shape);\n var bpmnShape = (isBlazor() ? node.shape.bpmnShape : node.shape.shape);\n if (bpmnShape === 'Event') {\n content = this.getBPMNEventShape(node, shape.event);\n }\n if (bpmnShape === 'Gateway') {\n content = this.getBPMNGatewayShape(node);\n }\n if (bpmnShape === 'DataObject') {\n content = this.getBPMNDataObjectShape(node);\n }\n if (bpmnShape === 'Message' || bpmnShape === 'DataSource') {\n content = this.getBPMNShapes(node);\n }\n // if (shape.shape === 'Group') {\n // content = this.getBPMNGroup(node, diagram);\n // content.style.strokeDashArray = '2 2 6 2';\n // content.horizontalAlignment = 'Center';\n // content.verticalAlignment = 'Center';\n // }\n if (bpmnShape === 'Activity') {\n content = this.getBPMNActivityShape(node);\n }\n if (bpmnShape === 'TextAnnotation') {\n content = this.renderBPMNTextAnnotation(diagram, node, content);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var annotations = {};\n if (shape.annotations.length > 0) {\n for (var i = 0; i < shape.annotations.length && shape.annotations[parseInt(i.toString(), 10)].text; i++) {\n content.children.push(this.getBPMNTextAnnotation(node, diagram, shape.annotations[parseInt(i.toString(), 10)], content));\n }\n content.style.strokeDashArray = '2 2 6 2';\n }\n return content;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNShapes = function (node) {\n var bpmnShape = new PathElement();\n //set style\n this.setStyle(bpmnShape, node);\n if ((node.constraints & NodeConstraints.Shadow) !== 0) {\n bpmnShape.shadow = node.shadow;\n }\n var bpmnShapeData = getBpmnShapePathData((isBlazor() ? node.shape.bpmnShape :\n node.shape.shape));\n bpmnShape.data = bpmnShapeData;\n bpmnShape.id = node.id + '_' + (isBlazor() ? node.shape.bpmnShape :\n node.shape.shape);\n if (node.width !== undefined && node.height !== undefined) {\n bpmnShape.width = node.width;\n bpmnShape.height = node.height;\n }\n return bpmnShape;\n };\n /** @private */\n // public getBPMNGroup(node: Node, diagram: Diagram): Container {\n // let group: Container = new Container();\n // group.id = node.id + '_group';\n // //group.style.strokeDashArray = '2 2 6 2';\n // if (!group.children) { group.children = []; }\n // let grp: BpmnGroup = ((node.shape as BpmnShape).group as BpmnGroup);\n // if ((node.shape as BpmnShape).group as BpmnGroup) {\n // for (let i: number = 0; i < grp.children.length; i++) {\n // let b: Node | Connector = diagram.nameTable[grp.children[i]];\n // group.children.push(b.wrapper);\n // }\n // }\n // return group;\n // }\n /** @private */\n BpmnDiagrams.prototype.getBPMNGatewayShape = function (node) {\n var gatewayshape = new Canvas();\n //childNode0\n var gatewayNode = new PathElement();\n gatewayNode.id = node.id + '_0_gateway';\n gatewayNode.offsetX = node.offsetX;\n gatewayNode.offsetY = node.offsetY;\n gatewayNode.data = 'M 40 20 L 20 40 L 0 20 L 20 0 L 40 20 Z';\n this.setStyle(gatewayNode, node);\n //childNode1\n var gatewayTypeNode = new PathElement();\n gatewayTypeNode.id = node.id + '_1_gatewayType';\n //set style - opacity\n gatewayTypeNode.style.opacity = node.style.opacity;\n gatewayTypeNode.style.strokeColor = node.style.strokeColor;\n gatewayTypeNode.horizontalAlignment = 'Center';\n gatewayTypeNode.verticalAlignment = 'Center';\n gatewayTypeNode.relativeMode = 'Object';\n var shapeType = node.shape.gateway;\n //let gatewayTypeNodeShapeData: string;\n var gatewayTypeNodeShapeData = getBpmnGatewayShapePathData(shapeType.type);\n if (shapeType.type === 'EventBased' || shapeType.type === 'ExclusiveEventBased' || shapeType.type === 'ParallelEventBased') {\n gatewayTypeNode.style.fill = 'white';\n }\n else {\n gatewayTypeNode.style.fill = 'black';\n }\n gatewayTypeNode.data = gatewayTypeNodeShapeData;\n // append child and set style\n gatewayshape.style.fill = 'transparent';\n gatewayshape.style.strokeColor = 'transparent';\n gatewayshape.style.strokeWidth = 0;\n gatewayshape.children = [gatewayNode, gatewayTypeNode];\n var size = this.getSize(node, gatewayNode);\n this.setSizeForBPMNGateway(node.shape.gateway, gatewayshape, size.width, size.height);\n return gatewayshape;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNDataObjectShape = function (node) {\n var dataObjectshape = new Canvas();\n var shape = node.shape.dataObject;\n //childNode0\n var dataobjNode = new PathElement();\n dataobjNode.id = node.id + '_0_dataobj';\n dataobjNode.data = 'M29.904,5 L7.853,5 L7.853,45 L42.147,45 L42.147,17.242,L29.932,5,L29.932,17.242,L42.147,17.242';\n var size = this.getSize(node, dataobjNode);\n dataobjNode.width = size.width;\n dataobjNode.height = size.height;\n this.setStyle(dataobjNode, node);\n //childNode1\n var dataobjTypeNode = new PathElement();\n dataobjTypeNode.id = node.id + '_1_type';\n dataobjTypeNode.width = 25;\n dataobjTypeNode.height = 20;\n dataobjTypeNode.margin.left = 5;\n dataobjTypeNode.margin.top = 5;\n dataobjTypeNode.data = 'M 3 9.4 l 6 0 v 2.4 l 3.6 -4 L 9 4 v 2.5 H 3 V 9.4 Z';\n //set style - opacity\n dataobjTypeNode.style.opacity = node.style.opacity;\n //childNode2\n var dataobjCollectionNode = new PathElement();\n dataobjCollectionNode.id = node.id + '_2_collection';\n dataobjCollectionNode.width = 7.5;\n dataobjCollectionNode.height = 15;\n dataobjCollectionNode.style.fill = 'black';\n dataobjCollectionNode.visible = true;\n dataobjCollectionNode.horizontalAlignment = 'Center';\n dataobjCollectionNode.verticalAlignment = 'Bottom';\n dataobjCollectionNode.relativeMode = 'Object';\n //set style - opacity\n dataobjCollectionNode.style.opacity = node.style.opacity;\n dataobjCollectionNode.data = 'M 0 0 L 0.1 0 L 0.1 2 L 0 2 Z M 0.4 0 L 0.6 0 L 0.6 2 L0.4 2 Z M 0.9 0 L 1 0 L 1 2 L 0.9 2 Z';\n switch (shape.type) {\n case 'None':\n dataobjTypeNode.visible = false;\n break;\n case 'Input':\n dataobjTypeNode.style.fill = 'white';\n break;\n case 'Output':\n dataobjTypeNode.style.fill = 'black';\n break;\n }\n if (shape.collection === false) {\n dataobjCollectionNode.visible = false;\n }\n //append child and set style\n dataObjectshape.style.fill = 'transparent';\n dataObjectshape.style.strokeColor = 'transparent';\n dataObjectshape.style.strokeWidth = 0;\n dataObjectshape.children = [dataobjNode, dataobjTypeNode, dataobjCollectionNode];\n return dataObjectshape;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNTaskShape = function (node) {\n var shape = node.shape.activity;\n var task = shape.task;\n var taskShapes = new Canvas();\n //childNode0\n var taskNode = new DiagramElement();\n taskNode.cornerRadius = 10;\n var size = this.getSize(node, taskNode);\n taskNode.id = node.id + '_0_task';\n taskNode.width = size.width;\n taskNode.height = size.height;\n this.setStyle(taskNode, node);\n // if task as call\n if ((task.call !== undefined) && task.call === true) {\n taskNode.style.strokeWidth = 4;\n }\n taskShapes.width = size.width;\n taskShapes.height = size.height;\n var childCount = this.getTaskChildCount(node);\n var x;\n var childSpace = childCount * 12;\n var area = size.width / 2 - childSpace;\n if (childCount === 1) {\n x = area + 8;\n }\n else {\n x = area + (childCount - 1) * 8;\n }\n //childNode1\n var taskTypeNode = new PathElement();\n if (task.type === 'Receive' || task.type === 'Send') {\n taskTypeNode.width = 18;\n taskTypeNode.height = 16;\n }\n else if (task.type === 'Manual') {\n taskTypeNode.width = 16;\n taskTypeNode.height = 11;\n }\n else {\n taskTypeNode.width = 20;\n taskTypeNode.height = 20;\n }\n taskTypeNode.id = node.id + '_1_tasktType';\n taskTypeNode.margin.left = 5;\n taskTypeNode.margin.top = 5;\n var taskTypeNodeData = getBpmnTaskShapePathData(task.type);\n taskTypeNode.data = taskTypeNodeData;\n taskTypeNode.style.fill = 'transparent';\n taskTypeNode.style.opacity = node.style.opacity;\n if (task.type === 'Send') {\n taskTypeNode.style.fill = 'black';\n }\n // append child and set style\n taskShapes.style.fill = 'transparent';\n taskShapes.style.strokeColor = 'transparent';\n taskShapes.style.strokeWidth = 0;\n taskShapes.children = [taskNode, taskTypeNode];\n //childnode for service\n if (task.type === 'Service') {\n var taskTypeNodeService = new PathElement();\n taskTypeNodeService.id = node.id + '_1_taskTypeService';\n taskTypeNodeService.data = taskTypeNodeData;\n taskTypeNodeService.margin.left = taskTypeNode.margin.left + 9;\n taskTypeNodeService.margin.top = taskTypeNode.margin.top + 9;\n taskTypeNodeService.style.fill = 'white';\n taskTypeNodeService.style.opacity = node.style.opacity;\n taskShapes.children.push(taskTypeNodeService);\n }\n // if task as loop\n var loopType = task.loop;\n var taskLoopNode = new PathElement(); //let childNode2data: string;\n var childNode2data = getBpmnLoopShapePathData(loopType);\n taskLoopNode.data = childNode2data;\n taskLoopNode.style.fill = 'black';\n if (loopType !== 'None') {\n taskLoopNode.visible = true;\n }\n else {\n taskLoopNode.visible = false;\n }\n if (childCount === 1) {\n x = area + 9;\n }\n taskLoopNode.margin.left = x;\n if (taskLoopNode.visible === true) {\n x += 12 + 8;\n }\n taskLoopNode.width = 12;\n taskLoopNode.height = 12;\n taskLoopNode.margin.bottom = 5;\n taskLoopNode.id = node.id + '_2_loop';\n taskLoopNode.horizontalAlignment = 'Left';\n taskLoopNode.verticalAlignment = 'Bottom';\n taskLoopNode.setOffsetWithRespectToBounds(0, 1, 'Fraction');\n taskLoopNode.relativeMode = 'Point';\n taskLoopNode.style.fill = 'transparent';\n taskTypeNode.style.opacity = node.style.opacity;\n taskShapes.children.push(taskLoopNode);\n //if task as compensation\n var taskCompNode = new PathElement();\n taskCompNode = this.getBPMNCompensationShape(node, taskCompNode);\n if (task.compensation === true) {\n taskCompNode.visible = true;\n }\n else {\n taskCompNode.visible = false;\n }\n if (childCount === 1) {\n x = area + 9;\n }\n taskCompNode.margin.left = x - 3;\n x += 12 + 6;\n taskShapes.children.push(taskCompNode);\n return taskShapes;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNEventShape = function (node, subEvent, sub, id) {\n var eventshape = new Canvas();\n var event;\n var trigger;\n var width;\n var height;\n id = id || node.id;\n var pathdata = 'M164.1884,84.6909000000001C156.2414,84.6909000000001,149.7764,78.2259000000001,149.7764,70.2769000000001' +\n 'C149.7764,62.3279000000001,156.2414,55.8629000000001,164.1884,55.8629000000001C172.1354,55.8629000000001,178.6024,' +\n '62.3279000000001,178.6024,70.2769000000001C178.6024,78.2259000000001,172.1354,84.6909000000001,164.1884,84.6909000000001';\n var shapeEvent = node.shape.event;\n if ((!isBlazor() && node.shape.shape === 'Event') ||\n (isBlazor() && node.shape.bpmnShape === 'Event')) {\n event = shapeEvent.event;\n trigger = shapeEvent.trigger;\n }\n width = subEvent.width;\n height = subEvent.height;\n if (sub) {\n width = width || 20;\n height = height || 20;\n }\n else if (subEvent.width === undefined || subEvent.height === undefined) {\n var pathElement = new PathElement();\n pathElement.data = pathdata;\n var size = this.getSize(node, pathElement);\n width = size.width;\n height = size.height;\n }\n var shapeActivity = node.shape.activity;\n if ((!isBlazor() && node.shape.shape === 'Activity') ||\n (isBlazor() && node.shape.bpmnShape === 'Activity')) {\n var subProcess = shapeActivity.subProcess;\n event = subEvent.event;\n trigger = subEvent.trigger;\n }\n //childNode0\n var innerEvtNode = new PathElement();\n innerEvtNode.data = pathdata;\n innerEvtNode.id = id + '_0_event';\n innerEvtNode.width = width;\n innerEvtNode.height = height;\n innerEvtNode.horizontalAlignment = 'Center';\n innerEvtNode.verticalAlignment = 'Center';\n innerEvtNode.relativeMode = 'Object';\n this.setStyle(innerEvtNode, node);\n //childNode1\n var outerEvtNode = new PathElement();\n outerEvtNode.data = pathdata;\n outerEvtNode.id = id + '_1_event';\n outerEvtNode.style.gradient = node.style.gradient;\n outerEvtNode.horizontalAlignment = 'Center';\n outerEvtNode.verticalAlignment = 'Center';\n outerEvtNode.relativeMode = 'Object';\n // set style opacity & strokeColor\n outerEvtNode.style.strokeColor = node.style.strokeColor;\n outerEvtNode.style.opacity = node.style.opacity;\n //childNode2\n var triggerNode = new PathElement();\n var triggerNodeData = getBpmnTriggerShapePathData(trigger);\n triggerNode.data = triggerNodeData;\n triggerNode.id = id + '_2_trigger';\n triggerNode.horizontalAlignment = 'Center';\n triggerNode.verticalAlignment = 'Center';\n triggerNode.relativeMode = 'Object';\n // set style opacity & strokeColor\n triggerNode.style.strokeColor = node.style.strokeColor;\n triggerNode.style.opacity = node.style.opacity;\n switch (event) {\n case 'Start':\n outerEvtNode.visible = false;\n break;\n case 'NonInterruptingStart':\n innerEvtNode.style.strokeDashArray = '2 3';\n outerEvtNode.visible = false;\n break;\n case 'Intermediate':\n innerEvtNode.style.fill = node.style.fill;\n innerEvtNode.style.gradient = null;\n break;\n case 'NonInterruptingIntermediate':\n innerEvtNode.style.fill = node.style.fill;\n innerEvtNode.style.gradient = null;\n innerEvtNode.style.strokeDashArray = '2 3';\n outerEvtNode.style.strokeDashArray = '2 3';\n break;\n case 'ThrowingIntermediate':\n case 'End':\n innerEvtNode.style.fill = event !== 'End' ? node.style.fill : node.style.fill !== 'white' ? node.style.fill : 'black';\n innerEvtNode.style.gradient = null;\n triggerNode.style.fill = 'black';\n triggerNode.style.strokeColor = 'white';\n break;\n }\n //append child and set style\n eventshape.style.fill = 'transparent';\n eventshape.style.strokeColor = 'transparent';\n eventshape.style.strokeWidth = 0;\n eventshape.children = [innerEvtNode, outerEvtNode, triggerNode];\n this.setSizeForBPMNEvents(shapeEvent, eventshape, width, height);\n return eventshape;\n };\n BpmnDiagrams.prototype.setEventVisibility = function (node, canvas) {\n var event = node.shape.event.event;\n var innerEvtNode = canvas[0];\n var outerEvtNode = canvas[1];\n var triggerNode = canvas[2];\n switch (event) {\n case 'Start':\n outerEvtNode.visible = false;\n break;\n case 'NonInterruptingStart':\n innerEvtNode.style.strokeDashArray = '2 3';\n outerEvtNode.visible = false;\n break;\n }\n };\n BpmnDiagrams.prototype.setSubProcessVisibility = function (node) {\n var subProcess = node.shape.activity.subProcess;\n var eventLength = subProcess.events.length;\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0;\n var elementWrapper = node.wrapper.children[0].children[0];\n if (subProcess.adhoc === false) {\n elementWrapper.children[3 + index + eventLength].visible = false;\n }\n if (subProcess.compensation === false) {\n elementWrapper.children[4 + index + eventLength].visible = false;\n }\n if (eventLength > 0) {\n for (var i = 0; i < eventLength; i++) {\n this.setEventVisibility(node, elementWrapper.children[2 + i].children);\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNSubProcessShape = function (node) {\n var subProcessShapes = new Canvas();\n var loopType;\n var events;\n var event;\n var subprocessAdhoc = new PathElement();\n var subProcessEventsShapes = new Canvas();\n var subProcessLoopShapes = new PathElement();\n var shape = node.shape.activity;\n var subProcess = shape.subProcess;\n var subChildCount = this.getSubprocessChildCount(node);\n var x;\n var subprocessNode = new DiagramElement();\n subprocessNode.id = node.id + '_0_Subprocess';\n subprocessNode.style.fill = 'transparent';\n subprocessNode.cornerRadius = 10;\n var size = this.getSize(node, subprocessNode);\n subprocessNode.width = size.width;\n subprocessNode.height = size.height;\n subProcessShapes.children = [subprocessNode];\n if (shape.subProcess.type === 'Transaction') {\n this.getBPMNSubProcessTransaction(node, node.shape, subProcessShapes);\n }\n var iconSpace = 4;\n var subChildSpace = 12;\n var childSpace = subChildCount * subChildSpace;\n var area = size.width / 2;\n if (subChildCount === 1) {\n x = area - (subChildSpace * 0.5);\n }\n else {\n x = area - (childSpace / 2) - ((subChildCount - 1) * iconSpace) / 2;\n }\n //set style\n this.setStyle(subprocessNode, node);\n if ((node.constraints & NodeConstraints.Shadow) !== 0) {\n subProcessShapes.shadow = node.shadow;\n }\n var collapsedShape = new PathElement();\n collapsedShape.id = node.id + '_0_collapsed';\n collapsedShape.width = 12;\n collapsedShape.height = 12;\n collapsedShape.style.fill = 'black';\n collapsedShape.style.strokeColor = node.style.strokeColor;\n collapsedShape.margin.bottom = 5;\n collapsedShape.horizontalAlignment = 'Left';\n collapsedShape.verticalAlignment = 'Bottom';\n collapsedShape.setOffsetWithRespectToBounds(0, 1, 'Fraction');\n collapsedShape.relativeMode = 'Point';\n collapsedShape.data = getBpmnShapePathData('collapsedShape');\n collapsedShape.margin.left = x;\n if (subProcess.collapsed === true && !subProcess.processes) {\n collapsedShape.visible = true;\n }\n else {\n collapsedShape.visible = false;\n }\n if (collapsedShape.visible === true) {\n x += 12 + 6;\n }\n subProcessShapes.children.push(collapsedShape);\n if (subProcess.type === 'Event') {\n subprocessNode.style.strokeWidth = 1;\n subprocessNode.style.strokeDashArray = '2 2';\n events = subProcess.events;\n for (var i = 0; i < events.length; i++) {\n event = events[parseInt(i.toString(), 10)];\n this.getBPMNSubEvent(event, node, subProcessShapes);\n }\n }\n // set loop for subprocess\n subProcessLoopShapes = this.getBPMNSubProcessLoopShape(node);\n if (subChildCount === 1) {\n x = area + 8;\n }\n subProcessLoopShapes.margin.left = x;\n if (subProcessLoopShapes.visible === true) {\n x += subChildSpace + iconSpace;\n }\n subProcessShapes.children.push(subProcessLoopShapes);\n // set boundary for subprocess\n subprocessNode.id = node.id + '_boundary';\n if (subProcess.boundary === 'Default') {\n subprocessNode.style.strokeWidth = 1;\n subprocessNode.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Call') {\n subprocessNode.style.strokeWidth = 4;\n subprocessNode.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Event') {\n subprocessNode.style.strokeWidth = 1;\n subprocessNode.style.strokeDashArray = '2 2';\n }\n //set adhoc for subprocess\n subprocessAdhoc = this.getBPMNAdhocShape(node, subprocessAdhoc, subProcess);\n if (subChildCount === 1) {\n x = area + 8;\n }\n subprocessAdhoc.margin.left = x;\n if (subprocessAdhoc.visible === true) {\n x += subChildSpace + iconSpace;\n }\n subProcessShapes.children.push(subprocessAdhoc);\n //set compensation for subprocess\n var subprocessComp = new PathElement();\n if (subProcess.compensation === true) {\n subprocessComp.visible = true;\n }\n else {\n subprocessComp.visible = false;\n }\n subprocessComp = this.getBPMNCompensationShape(node, subprocessComp);\n if (subChildCount === 1) {\n x = area + 8;\n }\n subprocessComp.margin.left = x;\n if (subprocessComp.visible === true) {\n x += subChildSpace + iconSpace;\n }\n subProcessShapes.children.push(subprocessComp);\n //set style for subprocess\n subProcessShapes.style.strokeColor = 'transparent';\n subProcessShapes.style.strokeWidth = 0;\n subProcessShapes.style.fill = 'transparent';\n return subProcessShapes;\n };\n BpmnDiagrams.prototype.getBPMNSubEvent = function (event, node, container, id) {\n container.children = container.children || [];\n //let eventContainer: Canvas;\n var eventContainer = this.getBPMNEventShape(node, event, true, id);\n this.getBPMNSubprocessEvent(node, eventContainer, event);\n eventContainer.id = id || (node.id + '_subprocessEvents');\n eventContainer.width = event.width || 20;\n eventContainer.height = event.height || 20;\n // set offset for subevents\n eventContainer.setOffsetWithRespectToBounds(event.offset.x, event.offset.y, 'Fraction');\n eventContainer.relativeMode = 'Point';\n //set margin for subevents\n eventContainer.margin = event.margin;\n //set alignment for subevents\n eventContainer.horizontalAlignment = event.horizontalAlignment;\n eventContainer.verticalAlignment = event.verticalAlignment;\n // set style for subevent\n eventContainer.style.fill = 'transparent';\n eventContainer.style.strokeColor = 'transparent';\n eventContainer.style.strokeWidth = 0;\n container.children.push(eventContainer);\n };\n BpmnDiagrams.prototype.getBPMNSubProcessTransaction = function (node, shape, container) {\n var shapeWidth = container.children[0].width;\n var shapeHeight = container.children[0].height;\n var innerRect = new DiagramElement();\n innerRect.margin = { left: 3, right: 0, top: 3, bottom: 0 };\n innerRect.id = node.id + '_0_Subprocess_innnerRect';\n innerRect.cornerRadius = 10;\n innerRect.width = shapeWidth - 6;\n //EJ2-824711 - Fill color is not applied properly for BPMN transaction subProcess. \n innerRect.style.fill = 'transparent';\n innerRect.height = shapeHeight - 6;\n container.children.push(innerRect);\n var transactionEvents = new Canvas();\n transactionEvents.id = node.id + '_transaction_events';\n transactionEvents.style.gradient = node.style.gradient;\n var transaction = shape.activity.subProcess.transaction;\n this.getBPMNSubEvent(transaction.success, node, transactionEvents, node.id + '_success');\n this.getBPMNSubEvent(transaction.cancel, node, transactionEvents, node.id + '_cancel');\n this.getBPMNSubEvent(transaction.failure, node, transactionEvents, node.id + '_failure');\n this.updateDiagramContainerVisibility(transactionEvents.children[0], transaction.success.visible);\n this.updateDiagramContainerVisibility(transactionEvents.children[1], transaction.cancel.visible);\n this.updateDiagramContainerVisibility(transactionEvents.children[2], transaction.failure.visible);\n transactionEvents.float = true;\n transactionEvents.width = shapeWidth;\n transactionEvents.height = shapeHeight;\n transactionEvents.style.fill = transactionEvents.style.strokeColor = 'transparent';\n container.children.push(transactionEvents);\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNSubProcessLoopShape = function (node) {\n var shape = node.shape.activity;\n var loopType;\n var subprocessLoop = new PathElement();\n var subprocessLoopData;\n var subProcess = shape.subProcess;\n // eslint-disable-next-line prefer-const\n loopType = subProcess.loop;\n // eslint-disable-next-line prefer-const\n subprocessLoopData = getBpmnLoopShapePathData(loopType);\n if (loopType !== 'None') {\n subprocessLoop.visible = true;\n }\n else {\n subprocessLoop.visible = false;\n }\n subprocessLoop.id = node.id + '_loop';\n subprocessLoop.data = subprocessLoopData;\n subprocessLoop.style.fill = 'black';\n subprocessLoop.width = 12;\n subprocessLoop.height = 12;\n subprocessLoop.horizontalAlignment = 'Left';\n subprocessLoop.verticalAlignment = 'Bottom';\n subprocessLoop.setOffsetWithRespectToBounds(0, 1, 'Fraction');\n subprocessLoop.relativeMode = 'Point';\n subprocessLoop.margin.bottom = 5;\n subprocessLoop.style.fill = 'transparent';\n subprocessLoop.style.strokeColor = node.style.strokeColor;\n return subprocessLoop;\n };\n /** @private */\n BpmnDiagrams.prototype.drag = function (obj, tx, ty, diagram) {\n var node = diagram.nameTable[(obj).processId];\n if (obj.margin.top + ty >= 0) {\n diagram.nodePropertyChange(obj, {}, { margin: { top: obj.margin.top + ty } });\n }\n if (obj.margin.left + tx >= 0) {\n diagram.nodePropertyChange(obj, {}, { margin: { left: obj.margin.left + tx } });\n }\n //const diffX: number = 0;\n //const diffY: number = 0;\n var bound = this.getChildrenBound(node, obj.id, diagram);\n this.updateSubProcessess(bound, obj, diagram);\n node.wrapper.measure(new Size(undefined, undefined));\n node.wrapper.arrange(node.wrapper.desiredSize);\n diagram.refreshCanvasLayers();\n diagram.updateSelector();\n this.updateDocks(obj, diagram);\n };\n /** @private */\n BpmnDiagrams.prototype.dropBPMNchild = function (target, source, diagram) {\n if (source && source.shape.type === 'Bpmn' && target.shape.type === 'Bpmn'\n && ((!isBlazor() && source.shape.shape !== 'TextAnnotation') ||\n (isBlazor() && source.shape.bpmnShape !== 'TextAnnotation'))) {\n var subProcess = diagram.nameTable[target.id].shape.activity.subProcess;\n if (diagram.currentSymbol && target.shape.type === 'Bpmn' && !subProcess.collapsed) {\n source.processId = target.id;\n return;\n }\n subProcess.processes = subProcess.processes || [];\n if (subProcess.processes && subProcess.processes.indexOf(source.id) === -1 && !subProcess.collapsed) {\n subProcess.processes.push(source.id);\n var redoElement = cloneObject(source);\n var sources = diagram.nameTable[source.id].wrapper;\n var targetWrapper = diagram.nameTable[target.id].wrapper;\n sources.margin.top = (sources.offsetY - (sources.actualSize.height / 2))\n - (target.offsetY - (target.actualSize.height / 2));\n sources.margin.left = (sources.offsetX - (sources.actualSize.width / 2))\n - (target.offsetX - (target.actualSize.width / 2));\n sources.margin.top = (sources.margin.top < 0) ? 0 : sources.margin.top;\n sources.margin.left = (sources.margin.left < 0) ? 0 : sources.margin.left;\n diagram.nameTable[source.id].processId = target.id;\n targetWrapper.children.push(diagram.nameTable[source.id].wrapper);\n var bound = this.getChildrenBound(target, source.id, diagram);\n this.updateSubProcessess(bound, source, diagram);\n targetWrapper.measure(new Size(undefined, undefined));\n targetWrapper.arrange(targetWrapper.desiredSize);\n diagram.refreshCanvasLayers();\n diagram.updateSelector();\n var edges = [];\n edges = edges.concat(source.outEdges, source.inEdges);\n for (var i = edges.length - 1; i >= 0; i--) {\n if (diagram.bpmnModule.textAnnotationConnectors.indexOf(diagram.nameTable[edges[parseInt(i.toString(), 10)]]) === -1) {\n diagram.remove(diagram.nameTable[edges[parseInt(i.toString(), 10)]]);\n }\n }\n var obj = cloneObject(source);\n var entry = {\n type: 'PositionChanged', undoObject: { nodes: [redoElement] },\n redoObject: { nodes: [obj] }, category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n if (diagram.mode === 'SVG') {\n if (source.zIndex < target.zIndex) {\n diagram.updateProcesses(source);\n this.updateSubprocessNodeIndex(source, diagram, target);\n }\n }\n this.updateDocks(source, diagram);\n }\n }\n };\n BpmnDiagrams.prototype.updateIndex = function (diagram, source) {\n //let processNode: Node;\n var processNode = source;\n var nodeindex = diagram.getIndex(processNode, processNode.id);\n diagram.nodes.splice(Number(nodeindex), 1);\n processNode.zIndex = diagram.nodes[diagram.nodes.length - 1].zIndex + 1;\n diagram.nodes.push(processNode);\n };\n BpmnDiagrams.prototype.updateSubprocessNodeIndex = function (source, diagram, target) {\n if (source.shape.activity.subProcess.processes\n && source.shape.activity.subProcess.processes.length > 0) {\n for (var i = 0; i < source.shape.activity.subProcess.processes.length; i++) {\n this.updateIndex(diagram, source);\n var processes = source.shape.activity.subProcess.processes[parseInt(i.toString(), 10)];\n if (diagram.nameTable[\"\" + processes].shape.activity.subProcess.processes.length > 0) {\n this.updateSubprocessNodeIndex(diagram.nameTable[\"\" + processes], diagram, target);\n }\n else {\n var node = diagram.nameTable[source.shape.activity.subProcess.processes[parseInt(i.toString(), 10)]];\n this.updateIndex(diagram, node);\n }\n }\n }\n else {\n this.updateIndex(diagram, source);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateDocks = function (obj, diagram) {\n if (obj.shape.type === 'Bpmn' && obj.shape.activity.subProcess.processes &&\n !obj.shape.activity.subProcess.collapsed) {\n var processTable = obj.shape.activity.subProcess.processes;\n for (var _i = 0, processTable_1 = processTable; _i < processTable_1.length; _i++) {\n var i = processTable_1[_i];\n var actualObject = diagram.nameTable[\"\" + i];\n if (actualObject) {\n diagram.updateConnectorEdges(actualObject);\n actualObject.wrapper.measure(new Size(actualObject.wrapper.width, actualObject.wrapper.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n if (actualObject.shape.activity.subProcess.processes\n && actualObject.shape.activity.subProcess.processes.length) {\n this.updateDocks(actualObject, diagram);\n }\n }\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.removeBpmnProcesses = function (currentObj, diagram) {\n var element = diagram.nameTable[currentObj.processId];\n if (currentObj.shape.type === 'Bpmn' && currentObj.shape.activity.subProcess.processes &&\n currentObj.shape.activity.subProcess.processes.length > 0) {\n var processes = currentObj.shape.activity.subProcess.processes;\n for (var j = processes.length - 1; j >= 0; j--) {\n diagram.remove(diagram.nameTable[processes[parseInt(j.toString(), 10)]]);\n }\n }\n if (element) {\n diagram.removeDependentConnector(currentObj);\n var processes = element.shape.activity.subProcess.processes;\n this.removeChildFromBPMN(element.wrapper, currentObj.id);\n var processIndex = processes.indexOf(currentObj.id);\n processes.splice(processIndex, 1);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.removeChildFromBPMN = function (wrapper, name) {\n for (var _i = 0, _a = wrapper.children; _i < _a.length; _i++) {\n var i = _a[_i];\n if (i.id === name) {\n wrapper.children.splice(wrapper.children.indexOf(i), 1);\n }\n else if (i.children) {\n this.removeChildFromBPMN(i, name);\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.removeProcess = function (id, diagram) {\n var node = diagram.nameTable[\"\" + id];\n if (node) {\n var parent_1 = diagram.nameTable[node.processId];\n if (parent_1 && parent_1.shape.type === 'Bpmn') {\n var processes = parent_1.shape.activity.subProcess.processes;\n diagram.removeDependentConnector(node);\n this.removeChildFromBPMN(parent_1.wrapper, id);\n var processIndex = processes.indexOf(id);\n processes.splice(processIndex, 1);\n node.processId = '';\n diagram.refreshDiagramLayer();\n diagram.updateSelector();\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.addProcess = function (process, parentId, diagram) {\n //let id: string;\n process.id = process.id || randomId();\n var id = process.id;\n var node = diagram.nameTable[\"\" + id];\n if (!node) {\n diagram.add(process);\n }\n process.processId = parentId;\n var parentNode = diagram.nameTable[\"\" + parentId];\n var subProcess = parentNode.shape.activity.subProcess;\n if (node && parentNode && parentNode.shape.type === 'Bpmn' && node.shape.type === 'Bpmn' &&\n subProcess.processes) {\n node.processId = parentId;\n var processes = parentNode.shape.activity.subProcess.processes;\n if (processes.indexOf(id) < 0) {\n processes.push(id);\n }\n parentNode.wrapper.children.push(node.wrapper);\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n diagram.bpmnModule.updateDocks(parentNode, diagram);\n diagram.refreshDiagramLayer();\n if (diagram.mode === 'SVG' && (node.shape && node.shape.activity\n && !node.shape.activity.subProcess.processes)) {\n var child = getDiagramElement(parentId + '_groupElement');\n child.appendChild(getDiagramElement(process.id + '_groupElement'));\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getChildrenBound = function (node, excludeChild, diagram) {\n var processes = node.shape.activity.subProcess.processes;\n var bound;\n if (processes && processes.length) {\n for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) {\n var i = processes_1[_i];\n if (excludeChild !== i) {\n if (!bound) {\n bound = diagram.nameTable[\"\" + i].wrapper.bounds;\n }\n else {\n bound = diagram.nameTable[\"\" + i].wrapper.bounds.uniteRect(bound);\n }\n }\n }\n }\n return bound || diagram.nameTable[\"\" + excludeChild].wrapper.bounds;\n };\n /** @private */\n BpmnDiagrams.prototype.updateSubProcessess = function (bound, obj, diagram) {\n var diffX;\n var diffY;\n var node = diagram.nameTable[obj.processId];\n var right;\n var bottom;\n var pivot = { x: 0.5, y: 0.5 };\n if ((node.wrapper.bounds.left + obj.margin.left + obj.width) > (node.wrapper.bounds.right)) {\n right = true;\n }\n if ((node.wrapper.bounds.top + obj.margin.top + obj.height) > (node.wrapper.bounds.bottom)) {\n bottom = true;\n }\n if (right) {\n pivot.x = 0;\n }\n if (bottom) {\n pivot.y = 0;\n }\n var actualSize = node.wrapper.actualSize;\n if (right) {\n diffX = (obj.wrapper.margin.left + obj.wrapper.bounds.width) / actualSize.width;\n }\n if (bottom) {\n diffY = (obj.wrapper.margin.top + obj.wrapper.bounds.height) / actualSize.height;\n }\n if (diffX > 0 || diffY > 0) {\n diagram.commandHandler.scale(diagram.nameTable[obj.processId], diffX || 1, diffY || 1, pivot);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNCompensationShape = function (node, compensationNode) {\n compensationNode.id = node.id + '_0_compensation';\n compensationNode.width = 12;\n compensationNode.height = 12;\n compensationNode.margin.bottom = 5;\n compensationNode.style.fill = 'transparent';\n compensationNode.style.strokeColor = node.style.strokeColor;\n compensationNode.horizontalAlignment = 'Left';\n compensationNode.verticalAlignment = 'Bottom';\n compensationNode.relativeMode = 'Object';\n compensationNode.data = 'M 22.462 18.754 l -6.79 3.92 l 6.79 3.92 V 22.89 l 6.415 3.705 v -7.841 l -6.415 3.705 V 18.754 Z' +\n ' M 28.331 19.701 v 5.947 l -5.149 -2.973 L 28.331 19.701 Z M 21.916 25.647 l -5.15 -2.973 l 5.15 -2.973 V 25.647 Z' +\n ' M 22.275 12.674 c -5.513 0 -9.999 4.486 -9.999 9.999 c 0 5.514 4.486 10.001 9.999 10.001' +\n ' c 5.514 0 9.999 -4.486 9.999 -10.001 C 32.274 17.16 27.789 12.674 22.275 12.674 Z M 22.275 32.127 ' +\n ' c -5.212 0 -9.453 -4.241 -9.453 -9.454 c 0 -5.212 4.241 -9.453 9.453 -9.453 c 5.212 0 9.453 4.241 9.453 9.453' +\n ' C 31.728 27.887 27.487 32.127 22.275 32.127 Z';\n return compensationNode;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNActivityShape = function (node) {\n var eventshape = new Canvas();\n var content;\n var shape = node.shape.activity;\n var task = shape.activity;\n var subProcess = shape.subProcess;\n var activityType = shape.activity;\n if (task === 'Task') {\n content = this.getBPMNTaskShape(node);\n }\n if (task === 'SubProcess' && subProcess) {\n content = this.getBPMNSubProcessShape(node);\n }\n content.id = task + node.id;\n eventshape.children = [content];\n eventshape.style.fill = 'transparent';\n eventshape.style.strokeColor = 'transparent';\n eventshape.style.strokeWidth = 0;\n return eventshape;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNSubprocessEvent = function (node, subProcessEventsShapes, events) {\n var annotations;\n var ports;\n if (events.annotations.length !== 0) {\n for (var i = 0; i < events.annotations.length; i++) {\n var annot = events.annotations[parseInt(i.toString(), 10)];\n annotations = node.initAnnotationWrapper(annot);\n annotations.width = events.width;\n annotations.height = events.height;\n subProcessEventsShapes.children.push(annotations);\n }\n }\n if (events.ports.length !== 0) {\n for (var i = 0; i < events.ports.length; i++) {\n var port = events.ports[parseInt(i.toString(), 10)];\n ports = node.initPortWrapper(port);\n subProcessEventsShapes.children.push(ports);\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNAdhocShape = function (node, adhocNode, subProcess) {\n adhocNode.id = node.id + '_0_adhoc';\n adhocNode.width = 12;\n adhocNode.height = 8;\n adhocNode.style.fill = 'black';\n adhocNode.style.strokeColor = node.style.strokeColor;\n adhocNode.margin.bottom = 5;\n adhocNode.horizontalAlignment = 'Left';\n adhocNode.verticalAlignment = 'Bottom';\n adhocNode.relativeMode = 'Object';\n adhocNode.data = 'M 49.832 76.811 v -2.906 c 0 0 0.466 -1.469 1.931 -1.5 c 1.465 -0.031 2.331 1.219 2.897 1.688 ' +\n 's 1.06 0.75 1.526 0.75 c 0.466 0 1.548 -0.521 1.682 -1.208 s 0.083 3.083 0.083 3.083 s -0.76 0.969 -1.859 0.969 ' +\n 'c -1.066 0 -1.865 -0.625 -2.464 -1.438 s -1.359 -0.998 -2.064 -0.906 C 50.598 75.467 49.832 76.811 49.832 76.811 Z';\n if (subProcess && subProcess.adhoc === true) {\n adhocNode.visible = true;\n }\n else {\n adhocNode.visible = false;\n }\n return adhocNode;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNTextAnnotation = function (node, diagram, annotation, content) {\n annotation.id = annotation.id || randomId();\n annotation.nodeId = node.id;\n var annotationContainer = new Canvas();\n var annotationPath = new PathElement();\n var textElement = new TextElement();\n var margin = 10;\n annotationPath.id = node.id + '_' + annotation.id + '_path';\n annotationPath.width = annotation.width;\n annotationPath.height = annotation.height;\n annotationPath.relativeMode = 'Object';\n textElement.id = node.id + '_' + annotation.id + '_text';\n textElement.content = annotation.text;\n var style = node.style;\n textElement.style = {\n fontSize: style.fontSize, italic: style.italic, gradient: null, opacity: style.opacity,\n bold: style.bold, textWrapping: style.textWrapping, color: style.color, fill: 'white',\n fontFamily: style.fontFamily, whiteSpace: style.whiteSpace, textOverflow: 'Wrap',\n strokeColor: 'none', strokeWidth: 0,\n strokeDashArray: style.strokeDashArray, textAlign: style.textAlign, textDecoration: style.textDecoration\n };\n textElement.horizontalAlignment = 'Center';\n textElement.verticalAlignment = 'Center';\n textElement.relativeMode = 'Object';\n textElement.margin = { left: 5, right: 5, top: 5, bottom: 5 };\n annotationContainer.offsetX = node.offsetX + annotation.length *\n Math.cos(annotation.angle * (Math.PI / 180));\n annotationContainer.offsetY = node.offsetY + annotation.length *\n Math.sin(annotation.angle * (Math.PI / 180));\n annotationContainer.float = true;\n annotationContainer.transform = Transform.Self;\n annotationContainer.id = node.id + '_textannotation_' + annotation.id;\n annotationContainer.style.strokeColor = 'transparent';\n annotationContainer.margin = { left: margin, right: margin, top: margin, bottom: margin };\n annotationContainer.relativeMode = 'Object';\n annotationContainer.rotateAngle = 0;\n annotationContainer.children = [annotationPath, textElement];\n var annotationNode = new Node(node.shape, 'annotations', { id: annotationContainer.id, shape: { type: 'Bpmn', shape: 'TextAnnotation' } }, true);\n annotationNode.ports = [\n {\n id: annotationPath.id + '_port', shape: 'Square',\n offset: { x: 0, y: 0.5 }\n }\n ];\n annotationNode.offsetX = annotationContainer.offsetX;\n annotationNode.offsetY = annotationContainer.offsetY;\n annotationNode.text = annotation.text;\n annotationNode.angle = annotation.angle;\n annotationNode.length = annotation.length;\n annotationNode.width = annotation.width;\n annotationNode.height = annotation.height;\n annotationNode.wrapper = annotationContainer;\n annotationContainer.children.push(annotationNode.initPortWrapper(annotationNode.ports[0]));\n var bounds = new Rect(0, 0, 0, 0);\n var width = node.width || node.minWidth || 0;\n var height = node.height || node.minHeight || 0;\n if (width !== undefined && height !== undefined) {\n bounds = new Rect(node.offsetX - width / 2, node.offsetY - height / 2, width, height);\n }\n this.setAnnotationPath(bounds, annotationContainer, { x: annotationNode.offsetX, y: annotationNode.offsetY }, annotationNode, annotation.length, annotation.angle);\n var connector = {\n id: node.id + '_' + annotation.id + '_connector',\n constraints: ConnectorConstraints.Default & ~(ConnectorConstraints.DragTargetEnd | ConnectorConstraints.Drag),\n sourceID: node.id, targetID: annotationContainer.id,\n targetDecorator: { shape: 'None' }\n };\n var annotationConnector = new Connector(node.shape, 'annotations', connector, true);\n annotationConnector.targetPortID = annotationNode.ports[0].id;\n annotationConnector.init(diagram);\n annotationConnector.wrapper.float = false;\n annotationConnector.wrapper.transform = Transform.Self;\n content.children.push(annotationConnector.wrapper);\n annotationConnector.zIndex = 10000;\n var entry = this.annotationObjects[node.id];\n if (!entry) {\n entry = {};\n }\n if (!entry[annotation.id]) {\n entry[annotation.id] = {};\n }\n var nodeKey = 'node';\n var connKey = 'connector';\n entry[annotation.id][\"\" + nodeKey] = annotationNode;\n entry[annotation.id][\"\" + connKey] = annotationConnector;\n this.annotationObjects[node.id] = entry;\n diagram.initObject(annotationNode, undefined, false);\n annotationNode.zIndex = 10000;\n return annotationContainer;\n };\n /** @private */\n BpmnDiagrams.prototype.renderBPMNTextAnnotation = function (diagram, annotation, content) {\n annotation.id = annotation.id || randomId();\n var annotationsContainer = new Canvas();\n var annotationPath = new PathElement();\n var textObject = new TextElement();\n var margin = 10;\n annotationPath.id = '_' + annotation.id + '_path';\n annotationPath.width = annotation.width;\n annotationPath.height = annotation.height;\n annotationPath.relativeMode = 'Object';\n textObject.id = annotation.id + '_text';\n textObject.content = annotation.shape.annotation.text;\n var textStyle = annotation.style;\n textObject.style = {\n fontSize: textStyle.fontSize, italic: textStyle.italic, gradient: null, opacity: textStyle.opacity,\n bold: textStyle.bold, textWrapping: textStyle.textWrapping, color: textStyle.color, fill: 'white',\n fontFamily: textStyle.fontFamily, whiteSpace: textStyle.whiteSpace, textOverflow: 'Wrap',\n strokeColor: 'none', strokeWidth: 0,\n strokeDashArray: textStyle.strokeDashArray, textAlign: textStyle.textAlign, textDecoration: textStyle.textDecoration\n };\n textObject.horizontalAlignment = 'Left';\n textObject.verticalAlignment = 'Center';\n textObject.relativeMode = 'Object';\n textObject.margin = { left: 5, right: 5, top: 5, bottom: 5 };\n annotationsContainer.offsetX = annotation.offsetX + annotation.shape.annotation.length *\n Math.cos(annotation.shape.annotation.angle * (Math.PI / 180));\n annotationsContainer.offsetY = annotation.offsetY + annotation.shape.annotation.length *\n Math.sin(annotation.shape.annotation.angle * (Math.PI / 180));\n annotationsContainer.float = true;\n // annotationContainer.transform = Transform.Self;\n annotationsContainer.id = annotation.id + '_textannotation_' + annotation.id;\n annotationsContainer.style.strokeColor = 'transparent';\n annotationsContainer.margin = { left: margin, right: margin, top: margin, bottom: margin };\n annotationsContainer.relativeMode = 'Object';\n annotationsContainer.rotateAngle = 0;\n annotationsContainer.children = [annotationPath, textObject];\n var annotationObject = new Node(annotation.shape, 'annotations', { id: annotationsContainer.id, shape: { type: 'Bpmn', shape: 'TextAnnotation' } }, true);\n annotationObject.ports = [\n {\n id: annotationPath.id + '_port', shape: 'Square',\n offset: { x: 0, y: 0.5 }\n }\n ];\n annotationObject.offsetX = annotationsContainer.offsetX;\n annotationObject.offsetY = annotationsContainer.offsetY;\n if (annotationObject.shape && annotationObject.shape.annotation) {\n annotationObject.text = annotation.shape.annotation.text;\n annotationObject.angle = annotation.shape.annotation.angle;\n annotationObject.length = annotation.shape.annotation.length;\n }\n annotationObject.width = annotation.width;\n annotationObject.height = annotation.height;\n annotationObject.wrapper = annotationsContainer;\n annotationsContainer.children.push(annotationObject.initPortWrapper(annotationObject.ports[0]));\n var bounds = new Rect(0, 0, 0, 0);\n var width = annotation.width || 0;\n var height = annotation.height || 0;\n if (width !== undefined && height !== undefined) {\n bounds = new Rect(annotation.offsetX - width / 2, annotation.offsetY - height / 2, width, height);\n }\n this.setAnnotationPath(bounds, annotationsContainer, { x: annotationObject.offsetX, y: annotationObject.offsetY }, annotationObject, annotation.length, annotation.angle);\n return annotationsContainer;\n };\n /** @private */\n BpmnDiagrams.prototype.getTextAnnotationWrapper = function (node, id) {\n if (node && node.shape.type === 'Bpmn') {\n var shape = (isBlazor() ? node.shape.bpmnShape : node.shape.shape);\n if (shape === 'TextAnnotation') {\n return node.wrapper.children[1];\n }\n else if (this.annotationObjects[node.id] && this.annotationObjects[node.id][\"\" + id]) {\n var annotationNode = this.annotationObjects[node.id][\"\" + id].node;\n return this.getTextAnnotationWrapper(annotationNode, id);\n }\n }\n return null;\n };\n /** @private */\n BpmnDiagrams.prototype.addAnnotation = function (node, annotation, diagram) {\n var bpmnShapeContent = node.wrapper.children[0];\n var shape = node.shape;\n annotation.nodeId = node.id;\n var annotationObj = new BpmnAnnotation(shape, 'annotations', annotation, true);\n shape.annotations.push(annotationObj);\n bpmnShapeContent.children.push(this.getBPMNTextAnnotation(node, diagram, annotation, bpmnShapeContent));\n node.wrapper.measure(new Size());\n node.wrapper.arrange(node.wrapper.desiredSize);\n return this.annotationObjects[node.id][annotation.id].connector;\n };\n BpmnDiagrams.prototype.clearAnnotations = function (obj, diagram) {\n var bpmnShape = obj.shape;\n if (bpmnShape.annotations.length) {\n for (var i = bpmnShape.annotations.length - 1; i >= 0; i--) {\n var annotation = bpmnShape.annotations[parseInt(i.toString(), 10)];\n this.removeAnnotationObjects(obj, annotation, diagram);\n }\n }\n delete this.annotationObjects[obj.id];\n };\n /** @private */\n BpmnDiagrams.prototype.checkAndRemoveAnnotations = function (node, diagram) {\n //remove connector path\n //remove annotation node wrapper\n //remove from a quad\n if (node.shape.type === 'Bpmn') {\n if ((!isBlazor() && node.shape.shape === 'TextAnnotation') ||\n (isBlazor() && node.shape.bpmnShape === 'TextAnnotation')) {\n var id = node.id.split('_');\n var annotationId = id[id.length - 1];\n var nodeId = id[id.length - 3] || id[0];\n var parentNode = diagram.nameTable[\"\" + nodeId];\n var bpmnShape = parentNode.shape;\n for (var _i = 0, _a = bpmnShape.annotations; _i < _a.length; _i++) {\n var annotation = _a[_i];\n if (annotation.id === annotationId) {\n var index = bpmnShape.annotations.indexOf(annotation);\n if (index !== -1) {\n diagram.removeDependentConnector(node);\n this.removeAnnotationObjects(parentNode, annotation, diagram);\n return true;\n }\n }\n }\n }\n else if (node.shape.annotations && node.shape.annotations.length) {\n this.clearAnnotations(node, diagram);\n }\n }\n return false;\n };\n BpmnDiagrams.prototype.removeAnnotationObjects = function (parentNode, annotation, diagram) {\n var bpmnShape = parentNode.shape;\n var index = bpmnShape.annotations.indexOf(annotation);\n if (index !== -1) {\n if (!(diagram.diagramActions & DiagramAction.UndoRedo) && !(diagram.diagramActions & DiagramAction.Group)) {\n var entry_1 = {\n type: 'CollectionChanged', changeType: 'Remove', undoObject: cloneObject(annotation),\n redoObject: cloneObject(annotation), category: 'Internal'\n };\n diagram.addHistoryEntry(entry_1);\n }\n bpmnShape.annotations.splice(index, 1);\n var entry = this.annotationObjects[parentNode.id];\n if (entry && entry[annotation.id]) {\n var annotationNode = entry[annotation.id].node;\n var annotationConnector = entry[annotation.id].connector;\n diagram.removeElements(annotationNode);\n diagram.removeElements(annotationConnector);\n var nodeContent = parentNode.wrapper.children[0];\n index = nodeContent.children.indexOf(annotationNode.wrapper);\n nodeContent.children.splice(index, 1);\n index = nodeContent.children.indexOf(annotationConnector.wrapper);\n nodeContent.children.splice(index, 1);\n diagram.removeFromAQuad(annotationNode);\n diagram.removeFromAQuad(annotationConnector);\n delete diagram.nameTable[annotationNode.id];\n delete diagram.nameTable[annotationConnector.id];\n delete entry[annotation.id];\n }\n }\n };\n BpmnDiagrams.prototype.setAnnotationPath = function (parentBounds, wrapper, position, node, length, angle) {\n var rotateAngle = this.getAnnotationPathAngle(position, parentBounds);\n var data = '';\n var pathElement = wrapper.children[0];\n var portElement = wrapper.children[2];\n var textElement = wrapper.children[1];\n pathElement.horizontalAlignment = 'Stretch';\n pathElement.verticalAlignment = 'Stretch';\n textElement.margin.left = textElement.margin.right = 5;\n textElement.margin.top = textElement.margin.bottom = 5;\n var point;\n var segment;\n if (rotateAngle === 0) {\n data = 'M10,20 L0,20 L0,0 L10,0';\n pathElement.width = 10;\n pathElement.horizontalAlignment = 'Left';\n portElement.setOffsetWithRespectToBounds(0, 0.5, 'Fraction');\n textElement.margin.top = textElement.margin.bottom = 10;\n point = parentBounds.middleRight;\n segment = {\n x1: parentBounds.right, y1: parentBounds.top,\n x2: parentBounds.right, y2: parentBounds.bottom\n };\n }\n else if (rotateAngle === 180) {\n data = 'M0,0 L10,0 L10,20 L0,20';\n pathElement.width = 10;\n pathElement.horizontalAlignment = 'Right';\n portElement.setOffsetWithRespectToBounds(1, 0.5, 'Fraction');\n textElement.margin.top = textElement.margin.bottom = 10;\n point = parentBounds.middleLeft;\n segment = {\n x1: parentBounds.left, y1: parentBounds.top,\n x2: parentBounds.left, y2: parentBounds.bottom\n };\n }\n else if (rotateAngle === 90) {\n data = 'M20,10 L20,0 L0,0 L0,10';\n pathElement.height = 10;\n pathElement.verticalAlignment = 'Top';\n portElement.setOffsetWithRespectToBounds(0.5, 0, 'Fraction');\n textElement.margin.left = textElement.margin.right = 10;\n point = parentBounds.bottomCenter;\n segment = {\n x1: parentBounds.right, y1: parentBounds.bottom,\n x2: parentBounds.left, y2: parentBounds.bottom\n };\n }\n else {\n data = 'M0,0 L0,10 L20,10 L20,0';\n pathElement.height = 10;\n pathElement.verticalAlignment = 'Bottom';\n portElement.setOffsetWithRespectToBounds(0.5, 1, 'Fraction');\n textElement.margin.left = textElement.margin.right = 10;\n point = parentBounds.topCenter;\n segment = {\n x1: parentBounds.right, y1: parentBounds.top,\n x2: parentBounds.left, y2: parentBounds.top\n };\n }\n var center = parentBounds.center;\n var endPoint = Point.transform(position, angle, Math.max(parentBounds.width, parentBounds.height));\n point = getIntersectionPoints(segment, [center, endPoint], false, center);\n pathElement.data = data;\n if (length !== undefined && angle !== undefined) {\n point = Point.transform(point, angle, length);\n wrapper.offsetX = node.offsetX = point.x;\n wrapper.offsetY = node.offsetY = point.y;\n }\n };\n /** @private */\n BpmnDiagrams.prototype.isBpmnTextAnnotation = function (activeLabel, diagram) {\n if (this.annotationObjects) {\n var parentNodeId = activeLabel.parentId;\n var annotationId = activeLabel.id;\n var parentNode = diagram.nameTable[\"\" + parentNodeId];\n if (parentNode && parentNode.shape.type === 'Bpmn' && this.annotationObjects[\"\" + parentNodeId] &&\n this.annotationObjects[\"\" + parentNodeId][\"\" + annotationId]) {\n return parentNode;\n }\n return null;\n }\n return null;\n };\n /** @private */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n BpmnDiagrams.prototype.updateTextAnnotationContent = function (parentNode, activeLabel, text, diagram) {\n var parentNodeId = activeLabel.parentId;\n var annotationId = activeLabel.id;\n if (this.annotationObjects[\"\" + parentNodeId] && this.annotationObjects[\"\" + parentNodeId][\"\" + annotationId]) {\n for (var _i = 0, _a = parentNode.shape.annotations; _i < _a.length; _i++) {\n var annotation = _a[_i];\n if (annotation.id === annotationId) {\n annotation.text = text;\n var wrapper = this.annotationObjects[\"\" + parentNodeId][\"\" + annotationId].node.wrapper.children[1];\n wrapper.content = text;\n wrapper.visible = true;\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n }\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateQuad = function (actualObject, diagram) {\n var annotation = actualObject.shape.annotations;\n var annotationNode;\n if (annotation && annotation.length > 0) {\n for (var i = 0; i < annotation.length; i++) {\n annotationNode = this.annotationObjects[actualObject.id][annotation[parseInt(i.toString(), 10)].id].node;\n diagram.updateQuad(annotationNode);\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateTextAnnotationProp = function (actualObject, oldObject, diagram, isChild) {\n if (actualObject.shape.type === 'Bpmn') {\n var annotation = actualObject.shape.annotations;\n if (annotation && annotation.length > 0) {\n for (var i = 0; i < actualObject.wrapper.children[0].children.length; i++) {\n for (var j = 0; j < annotation.length; j++) {\n var annotationId = actualObject.wrapper.children[0].children[parseInt(i.toString(), 10)].id.split('_');\n var id = annotationId[annotationId.length - 1];\n if (id === annotation[parseInt(j.toString(), 10)].id) {\n var annotationNode = this.annotationObjects[actualObject.id][annotation[parseInt(j.toString(), 10)].id].node;\n var connector = this.annotationObjects[actualObject.id][annotation[parseInt(j.toString(), 10)].id].connector;\n var direction = getPortDirection(connector.targetPoint, actualObject.wrapper.bounds, actualObject.wrapper.bounds, false);\n var position = connector.sourcePoint;\n // EJ2-63939 - If it is swimlane children node means we take the offsetX from the wrapper.\n position = {\n x: connector.sourcePoint.x + (isChild ? actualObject.wrapper.offsetX : actualObject.offsetX) - (oldObject.offsetX),\n y: connector.sourcePoint.y + (isChild ? actualObject.wrapper.offsetY : actualObject.offsetY) - (oldObject.offsetY)\n };\n position = Point.transform(position, annotation[parseInt(j.toString(), 10)].angle, annotation[parseInt(j.toString(), 10)].length);\n actualObject.wrapper.children[0].children[parseInt(i.toString(), 10)].offsetX =\n annotationNode.offsetX = position.x;\n actualObject.wrapper.children[0].children[parseInt(i.toString(), 10)].offsetY =\n annotationNode.offsetY = position.y;\n diagram.updateQuad(annotationNode);\n }\n }\n }\n }\n }\n };\n // /** @private */\n // public findInteractableObject(obj: ConnectorModel, diagram: Diagram): NodeModel | ConnectorModel {\n // if (obj.targetID) {\n // let targetNode: NodeModel = diagram.nameTable[obj.targetID];\n // if (targetNode.shape.type === 'Bpmn' && (targetNode.shape as BpmnShape).shape === 'TextAnnotation') {\n // return targetNode;\n // }\n // }\n // return obj;\n // }\n /** @private */\n BpmnDiagrams.prototype.getSubprocessChildCount = function (node) {\n var count = 0;\n var shape = node.shape.activity;\n //let loopType: string;\n var subProcess = shape.subProcess;\n var loopType = subProcess.loop;\n if (loopType !== undefined && loopType !== 'None') {\n count++;\n }\n if ((subProcess.compensation !== undefined) &&\n subProcess.compensation === true) {\n count++;\n }\n if ((subProcess.collapsed !== undefined) &&\n subProcess.collapsed === true) {\n count++;\n }\n if ((subProcess.adhoc !== undefined) &&\n subProcess.adhoc === true) {\n count++;\n }\n return count;\n };\n /** @private */\n BpmnDiagrams.prototype.getTaskChildCount = function (node) {\n var count = 0;\n var shape = node.shape.activity;\n var task = shape.task;\n var loopType;\n if ((task.compensation !== undefined) &&\n task.compensation === true) {\n count++;\n }\n if ((task.loop !== undefined) &&\n task.loop !== 'None') {\n count++;\n }\n return count;\n };\n /** @private */\n BpmnDiagrams.prototype.setStyle = function (child, node) {\n //set style\n child.style.fill = node.style.fill;\n child.style.strokeColor = node.style.strokeColor;\n child.style.strokeWidth = node.style.strokeWidth;\n child.style.strokeDashArray = node.style.strokeDashArray;\n child.style.opacity = node.style.opacity;\n child.style.gradient = node.style.gradient;\n if ((node.constraints & NodeConstraints.Shadow) !== 0) {\n child.shadow = node.shadow;\n }\n };\n //End code conversion region\n //Update BPMN Shapes on NodePropertyChange\n //Start region\n /** @private */\n BpmnDiagrams.prototype.updateBPMN = function (changedProp, oldObject, actualObject, diagram) {\n var newShape = changedProp.shape || {};\n var elementWrapper = actualObject.wrapper.children[0];\n var actualShape = actualObject.shape.shape ||\n (actualObject.shape.bpmnShape);\n var sizeChanged = changedProp.width !== undefined || changedProp.height !== undefined;\n if (((isBlazor() && newShape.bpmnShape === 'Gateway') || newShape.shape === 'Gateway') &&\n newShape.gateway) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNGatewayShape(actualObject);\n }\n else if (((isBlazor() && newShape.bpmnShape === 'DataObject') || newShape.shape === 'DataObject') &&\n newShape.dataObject) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNDataObjectShape(actualObject);\n }\n else if (((isBlazor() && newShape.bpmnShape === 'Activity') || newShape.shape === 'Activity') &&\n newShape.activity) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNActivityShape(actualObject);\n }\n /**\n * EJ2-EJ2-60644 - Bpmn event fill color does not applied while changing event in runtime.\n */\n else if (((isBlazor() && newShape.bpmnShape === 'Event' ||\n actualObject.shape.bpmnShape === 'Event' || actualObject.shape.shape === 'Event') || newShape.shape === 'Event') &&\n newShape.event) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n var shapeEvent = newShape.event;\n actualObject.wrapper.children[0] = this.getBPMNEventShape(actualObject, shapeEvent);\n }\n else if (((isBlazor() && newShape.bpmnShape === 'Message') || newShape.shape === 'Message') ||\n ((isBlazor() && newShape.bpmnShape === 'DataSource') || newShape.shape === 'DataSource')) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNShapes(actualObject);\n //}\n // else if (newShape.shape === 'Group') {\n // actualObject.wrapper.children[0] = this.getBPMNGroup(actualObject, diagram);\n }\n else if (newShape.gateway !== undefined || (actualShape === 'Gateway' && sizeChanged)) {\n this.updateBPMNGateway(actualObject, changedProp);\n }\n else if (newShape.dataObject !== undefined || (actualShape === 'DataObject' && sizeChanged)) {\n this.updateBPMNDataObject(actualObject, changedProp, oldObject);\n }\n else if (newShape.activity !== undefined || (actualShape === 'Activity' && sizeChanged)) {\n this.updateBPMNActivity(actualObject, changedProp, oldObject, diagram);\n }\n else if (newShape.event !== undefined || (actualShape === 'Event' && sizeChanged)) {\n this.updateBPMNEvent(actualObject, changedProp, oldObject);\n }\n actualObject.wrapper.children[0].id = actualObject.wrapper.children[0].id || elementWrapper.id;\n if (changedProp.style) {\n updateStyle(changedProp.style, elementWrapper instanceof Container ? ((!isBlazor() && actualObject.shape.shape === 'Activity' ||\n (isBlazor() && actualObject.shape.bpmnShape === 'Activity'))) ?\n elementWrapper.children[0].children[0] :\n elementWrapper.children[0] : elementWrapper);\n if (changedProp.style && changedProp.style.strokeColor) {\n if (elementWrapper.children.length > 0) {\n if (((!isBlazor() && actualObject.shape.shape === 'Activity') ||\n (isBlazor() && actualObject.shape.bpmnShape === 'Activity')) &&\n actualObject.shape.activity.activity === 'SubProcess') {\n var child = elementWrapper.children[0];\n this.updateBPMNStyle(child, changedProp.style.strokeColor);\n }\n else if (((!isBlazor() && actualObject.shape.shape === 'Gateway')\n || (isBlazor() && actualObject.shape.bpmnShape === 'Gateway')) ||\n ((!isBlazor() && actualObject.shape.shape === 'Event')\n || (isBlazor() && actualObject.shape.bpmnShape === 'Event'))) {\n this.updateBPMNStyle(elementWrapper, changedProp.style.strokeColor);\n }\n }\n }\n }\n };\n /**\n * EJ2-60574 -BPMN shape do not get changed at runtime properly\n */\n BpmnDiagrams.prototype.removeBPMNElementFromDOM = function (actualObject, diagram) {\n for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(actualObject.id + '_groupElement', elementId);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNStyle = function (elementWrapper, changedProp) {\n for (var i = 0; i < elementWrapper.children.length; i++) {\n var child = elementWrapper.children[parseInt(i.toString(), 10)];\n updateStyle({ strokeColor: changedProp }, child);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNGateway = function (node, changedProp) {\n var bpmnShape = node.shape;\n var elementWrapper = node.wrapper.children[0];\n if (bpmnShape) {\n updateStyle(node.style, elementWrapper.children[0]);\n var pathData = getBpmnGatewayShapePathData(bpmnShape.gateway.type);\n var dataobjTypeNode = this.updateGatewaySubType(elementWrapper, node, pathData);\n removeElement(elementWrapper.children[1].id);\n elementWrapper.children.splice(1, 1);\n elementWrapper.children.push(dataobjTypeNode);\n }\n if (changedProp.width !== undefined || changedProp.height !== undefined) {\n this.setSizeForBPMNGateway(node.shape.gateway, elementWrapper, changedProp.width || node.width, changedProp.height || node.height);\n }\n };\n /**\n * Used to update Bpmn gateway child in runtime\n * EJ2-60581\n * @param elementWrapper\n * @param node\n * @param pathData\n * @returns\n */\n BpmnDiagrams.prototype.updateGatewaySubType = function (elementWrapper, node, pathData) {\n var dataobjTypeNode = new PathElement();\n dataobjTypeNode.id = node.id + '_1_gatewayType';\n dataobjTypeNode.width = elementWrapper.children[1].width;\n dataobjTypeNode.height = elementWrapper.children[1].height;\n dataobjTypeNode.margin.left = elementWrapper.children[1].margin.left;\n dataobjTypeNode.margin.top = elementWrapper.children[1].margin.top;\n dataobjTypeNode.data = pathData;\n dataobjTypeNode.offsetX = elementWrapper.children[1].offsetX;\n dataobjTypeNode.offsetY = elementWrapper.children[1].offsetY;\n dataobjTypeNode.style = elementWrapper.children[1].style;\n dataobjTypeNode.horizontalAlignment = elementWrapper.children[1].horizontalAlignment;\n dataobjTypeNode.verticalAlignment = elementWrapper.children[1].verticalAlignment;\n dataobjTypeNode.relativeMode = elementWrapper.children[1].relativeMode;\n dataobjTypeNode.transform = elementWrapper.children[1].transform;\n return dataobjTypeNode;\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNDataObject = function (node, newObject, oldObject) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n if (bpmnShape) {\n var elementWrapperChild1 = elementWrapper.children[1];\n var elementWrapperChild2 = elementWrapper.children[2];\n if (newObject.style !== undefined) {\n updateStyle(newObject.style, elementWrapper.children[0]);\n elementWrapperChild1.style.opacity = node.style.opacity;\n elementWrapperChild2.style.opacity = node.style.opacity;\n }\n if (bpmnShape.dataObject) {\n switch (bpmnShape.dataObject.type) {\n case 'None':\n elementWrapperChild1.visible = false;\n break;\n case 'Input':\n elementWrapperChild1.style.fill = 'white';\n break;\n case 'Output':\n elementWrapperChild1.style.fill = 'black';\n break;\n }\n if (oldObject.shape.dataObject.type === 'None') {\n elementWrapperChild1.visible = true;\n }\n if (newObject.shape.dataObject.collection !== undefined) {\n elementWrapperChild2.visible = bpmnShape.dataObject.collection;\n }\n }\n }\n if (newObject.width !== undefined || newObject.height !== undefined) {\n this.setSizeForBPMNDataObjects(node.shape.dataObject, elementWrapper, newObject.width || node.width, newObject.height || node.height);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getEvent = function (node, oldObject, event, child0, child1, child2) {\n switch (event) {\n case 'Start':\n child1.visible = false;\n child0.style.strokeDashArray = '';\n child2.style.fill = 'white';\n child2.style.strokeColor = 'black';\n child0.style.fill = 'white';\n break;\n case 'NonInterruptingStart':\n child0.style.strokeDashArray = '2 3';\n child2.style.fill = 'white';\n child0.style.fill = 'white';\n child2.style.strokeColor = 'black';\n child1.visible = false;\n break;\n case 'Intermediate':\n child0.style.strokeDashArray = '';\n child0.style.fill = 'white';\n child1.style.strokeDashArray = '';\n child0.style.gradient = null;\n child2.style.fill = 'white';\n child2.style.strokeColor = 'black';\n this.updateEventVisibility(oldObject, child1);\n break;\n case 'NonInterruptingIntermediate':\n child0.style.fill = 'white';\n child0.style.gradient = null;\n child2.style.fill = 'white';\n child2.style.strokeColor = 'black';\n child0.style.strokeDashArray = '2 3';\n child1.style.strokeDashArray = '2 3';\n this.updateEventVisibility(oldObject, child1);\n break;\n case 'ThrowingIntermediate':\n case 'End':\n child0.style.fill = event !== 'End' ? 'white' : 'black';\n child0.style.strokeDashArray = '';\n child1.style.strokeDashArray = '';\n child0.style.gradient = null;\n child2.style.fill = 'black';\n this.updateEventVisibility(oldObject, child1);\n child2.style.strokeColor = node.style.fill;\n break;\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateEventVisibility = function (oldObject, child1) {\n if (oldObject.shape.activity && oldObject.shape.activity.subProcess &&\n oldObject.shape.activity.subProcess.events &&\n oldObject.shape.activity.subProcess.events[0] !== undefined &&\n oldObject.shape.activity.subProcess.events[0].event !== undefined) {\n if (oldObject.shape.activity.subProcess.events[0].event === 'NonInterruptingStart' ||\n oldObject.shape.activity.subProcess.events[0].event === 'Start') {\n child1.visible = true;\n }\n }\n else if (oldObject.shape.event !== undefined) {\n if (oldObject.shape.event.event === 'NonInterruptingStart' ||\n oldObject.shape.event.event === 'Start') {\n child1.visible = true;\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNEvent = function (node, newObject, oldObject) {\n var bpmnShape = newObject.shape;\n var trigger;\n var elementWrapper = node.wrapper.children[0];\n if (bpmnShape) {\n var elementWrapperChild0 = elementWrapper.children[0];\n var elementWrapperChild1 = elementWrapper.children[1];\n var elementWrapperChild2 = elementWrapper.children[2];\n //let event: string;\n if (newObject.style !== undefined) {\n updateStyle(node.style, elementWrapper.children[0]);\n if (newObject.style.opacity !== undefined || newObject.style.strokeColor !== undefined) {\n elementWrapperChild1.style.opacity = node.style.opacity;\n elementWrapperChild1.style.strokeColor = node.style.strokeColor;\n }\n }\n var event_1 = bpmnShape.event.event;\n trigger = bpmnShape.event.trigger;\n if (event_1 !== undefined) {\n this.getEvent(node, oldObject, event_1, elementWrapperChild0, elementWrapperChild1, elementWrapperChild2);\n }\n if (trigger !== undefined) {\n this.updateBPMNEventTrigger(node, newObject);\n }\n }\n if (newObject.width !== undefined || newObject.height !== undefined || trigger !== undefined) {\n this.setSizeForBPMNEvents(node.shape.event, elementWrapper, newObject.width || node.width, newObject.height || node.height);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNEventTrigger = function (node, newObject) {\n var bpmnShape = node.shape;\n var elementWrapper = node.wrapper.children[0].children[2];\n elementWrapper.canMeasurePath = true;\n if (newObject.style &&\n (newObject.style.strokeColor !== undefined || newObject.style.opacity !== undefined)) {\n updateStyle(node.style, elementWrapper);\n }\n var bpmnshapeTriggerdata = getBpmnTriggerShapePathData(bpmnShape.event.trigger);\n elementWrapper.data = bpmnshapeTriggerdata;\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivity = function (node, newObject, oldObject, diagram) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n var size = this.getSize(node, elementWrapper.children[0].children[0]);\n if (bpmnShape) {\n var oldProp = oldObject.shape.activity.activity;\n var actualObjectProp = node.shape.activity.activity;\n if ((oldProp === 'SubProcess' || oldProp === 'Task') && (actualObjectProp === 'SubProcess' || actualObjectProp === 'Task')) {\n diagram.removeElements(node);\n node.wrapper.children[0] = this.getBPMNActivityShape(node);\n }\n else {\n if (actualObjectProp === 'Task' && bpmnShape.activity.task !== undefined) {\n this.updateBPMNActivityTask(node, newObject);\n var subChildCount = this.getTaskChildCount(node);\n var x = void 0;\n var childSpace = subChildCount * 12;\n var area = size.width / 2 - childSpace;\n if (subChildCount === 1) {\n x = area + 8;\n }\n else {\n x = area + (subChildCount - 1) * 8;\n }\n if (bpmnShape.activity.task.loop !== undefined) {\n this.updateBPMNActivityTaskLoop(node, newObject, x, subChildCount, area, 2);\n }\n }\n if (actualObjectProp === 'SubProcess' && bpmnShape.activity.subProcess !== undefined) {\n this.updateBPMNActivitySubProcess(node, newObject, oldObject, diagram);\n }\n }\n this.setSizeForBPMNActivity(node.shape.activity, elementWrapper, newObject.width || size.width, newObject.height || size.height, node);\n }\n if (newObject.width !== undefined || newObject.height !== undefined) {\n this.setSizeForBPMNActivity(node.shape.activity, elementWrapper, newObject.width || size.width, newObject.height || size.height, node);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivityTask = function (node, newObject) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0].children[0];\n var task = bpmnShape.activity.task;\n for (var i = 0; i < elementWrapper.children.length; i++) {\n if (elementWrapper.children[parseInt(i.toString(), 10)].id === node.id + '_1_taskTypeService') {\n elementWrapper.children.splice(i, 1);\n var element = document.getElementById(node.id + '_1_taskTypeService');\n element.parentNode.removeChild(element);\n }\n }\n if (task.type === 'Receive' || task.type === 'Send') {\n elementWrapper.children[1].height = 14;\n }\n else {\n elementWrapper.children[1].height = 20;\n }\n if (task.type !== undefined) {\n var bpmnshapeTaskdata = getBpmnTaskShapePathData(task.type);\n elementWrapper.children[1].data = bpmnshapeTaskdata;\n for (var i = 0; i < elementWrapper.children.length; i++) {\n if (elementWrapper.children[parseInt(i.toString(), 10)].id === node.id + '_1_tasktType') {\n elementWrapper.children.splice(i, 1);\n var element = document.getElementById(node.id + '_1_tasktType');\n element.parentNode.removeChild(element);\n }\n }\n var taskTypeNode = new PathElement();\n taskTypeNode.id = node.id + '_1_tasktType';\n taskTypeNode.margin.left = 5;\n taskTypeNode.margin.top = 5;\n taskTypeNode.data = bpmnshapeTaskdata;\n taskTypeNode.style.fill = 'transparent';\n taskTypeNode.style.opacity = node.style.opacity;\n /**\n * Used to update the Bpmn activity task type at runtime\n * EJ2-60586\n */\n if (task.type === 'Receive' || task.type === 'Send') {\n taskTypeNode.width = 18;\n taskTypeNode.height = 16;\n if (task.type === 'Send') {\n taskTypeNode.style.fill = 'black';\n }\n elementWrapper.children.splice(1, 0, taskTypeNode);\n }\n else if (task.type === 'Manual') {\n taskTypeNode.width = 16;\n taskTypeNode.height = 11;\n elementWrapper.children.splice(1, 0, taskTypeNode);\n }\n else if (task.type !== 'Service') {\n taskTypeNode.width = 20;\n taskTypeNode.height = 20;\n elementWrapper.children.splice(1, 0, taskTypeNode);\n }\n else {\n taskTypeNode.width = 20;\n taskTypeNode.height = 20;\n elementWrapper.children.splice(1, 0, taskTypeNode);\n var taskTypeNodeService = new PathElement();\n taskTypeNodeService.id = node.id + '_1_taskTypeService';\n taskTypeNodeService.data = bpmnshapeTaskdata;\n taskTypeNodeService.margin.left = elementWrapper.children[1].margin.left + 9;\n taskTypeNodeService.margin.top = elementWrapper.children[1].margin.top + 9;\n taskTypeNodeService.style.fill = 'white';\n taskTypeNodeService.style.opacity = node.style.opacity;\n elementWrapper.children.splice(2, 0, taskTypeNodeService);\n }\n }\n if (bpmnShape.activity.task.call !== undefined) {\n if (bpmnShape.activity.task.call !== false) {\n elementWrapper.children[0].style.strokeWidth = 4;\n }\n else {\n elementWrapper.children[0].style.strokeWidth = 1;\n }\n }\n if (bpmnShape.activity.task.compensation !== undefined) {\n if (bpmnShape.activity.task.compensation === true) {\n elementWrapper.children[3].visible = true;\n }\n else {\n elementWrapper.children[3].visible = false;\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivityTaskLoop = function (node, newObject, x, subChildCount, area, start) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0].children[0];\n var activity = bpmnShape.activity;\n var loop;\n var index = 0;\n var bpmnshapeLoopdata;\n if (activity.subProcess !== undefined) {\n var subProcess = activity.subProcess;\n index = (activity.subProcess.type === 'Transaction') ? 2 : 0;\n loop = subProcess.loop;\n bpmnshapeLoopdata = getBpmnLoopShapePathData(loop);\n elementWrapper.children[2 + index].data = bpmnshapeLoopdata;\n elementWrapper.children[2 + index].visible = (loop === 'None') ? false : true;\n }\n else if (activity.task !== undefined && activity.task.loop !== undefined) {\n bpmnshapeLoopdata = getBpmnLoopShapePathData(activity.task.loop);\n elementWrapper.children[2].data = bpmnshapeLoopdata;\n elementWrapper.children[2].visible = (activity.task.loop === 'None') ? false : true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, start + index);\n };\n /** @private */\n BpmnDiagrams.prototype.updateChildMargin = function (elementWrapper, subChildCount, area, x, start) {\n if (subChildCount === 1) {\n for (var i = start; i < elementWrapper.children.length; i++) {\n if (i !== 2 && elementWrapper.children[parseInt(i.toString(), 10)].visible === true) {\n elementWrapper.children[parseInt(i.toString(), 10)].margin.left = x;\n x = area + 8;\n }\n }\n }\n else {\n x = area + (subChildCount - 1) * 8;\n for (var i = start; i < elementWrapper.children.length; i++) {\n if (i !== 2 && elementWrapper.children[parseInt(i.toString(), 10)].visible === true) {\n elementWrapper.children[parseInt(i.toString(), 10)].margin.left = x;\n x += 12 + 8;\n }\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivitySubProcess = function (node, newObject, oldObject, diagram) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n var size = this.getSize(node, elementWrapper.children[0].children[0]);\n var subProcess = bpmnShape.activity.subProcess;\n var subChildCount = this.getSubprocessChildCount(node);\n var x;\n var childSpace = subChildCount * 12;\n var area = size.width / 2 - childSpace;\n if (subChildCount === 1) {\n x = area + 8;\n }\n else {\n x = area + (subChildCount - 1) * 8;\n }\n updateStyle(node.style, elementWrapper.children[0].children[0]);\n if (subProcess.events !== undefined) {\n this.updateBPMNSubProcessEvent(node, newObject, oldObject, diagram);\n }\n if (subProcess.adhoc !== undefined) {\n this.updateBPMNSubProcessAdhoc(node, oldObject, subProcess, x, subChildCount, area);\n }\n if (subProcess.boundary !== undefined) {\n this.updateBPMNSubProcessBoundary(node, subProcess);\n }\n if (subProcess.collapsed !== undefined) {\n this.updateBPMNSubProcessCollapsed(node, oldObject, subProcess, x, subChildCount, area, diagram);\n }\n if (subProcess.compensation !== undefined) {\n this.updateBPMNSubProcessCompensation(node, oldObject, subProcess, x, subChildCount, area);\n }\n if (subProcess.loop !== undefined) {\n this.updateBPMNSubProcessLoop(node, oldObject, subProcess, x, subChildCount, area);\n }\n if (subProcess.transaction !== undefined) {\n this.updateBPMNSubProcessTransaction(node, newObject, oldObject, diagram);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessEvent = function (node, newObject, oldObject, diagram) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n var nodeContent = elementWrapper.children[0];\n var index;\n var j = 0;\n var elementWrapperChildLen = elementWrapper.children[0].children.length;\n var subProcess = bpmnShape.activity.subProcess;\n var events;\n var start = 2;\n for (var _i = 0, _a = Object.keys(subProcess.events); _i < _a.length; _i++) {\n var key = _a[_i];\n var eventIndex = Number(key);\n var eventWrapper = nodeContent.children[eventIndex + start];\n var actualEvent = node.shape.activity.subProcess.events[parseInt(eventIndex.toString(), 10)];\n this.updateBPMNSubEvent(node, subProcess.events[parseInt(eventIndex.toString(), 10)], actualEvent, eventWrapper, newObject, oldObject, diagram);\n }\n };\n BpmnDiagrams.prototype.updateBPMNSubEvent = function (node, newEvent, actualEvent, eventWrapper, newObject, oldObject, diagram) {\n var elementWrapper = node.wrapper.children[0];\n var bpmnShape = newObject.shape;\n var child0 = eventWrapper.children[0];\n var child1 = eventWrapper.children[1];\n var child2 = eventWrapper.children[2];\n var eventType;\n var trigger;\n if (newObject.style) {\n if (newObject.style.strokeColor !== undefined || newObject.style.opacity !== undefined) {\n elementWrapper.children[0].children[1].style.strokeColor = newObject.style.strokeColor;\n elementWrapper.children[0].children[1].style.opacity = newObject.style.opacity;\n }\n }\n if (bpmnShape.activity.subProcess !== undefined) {\n eventType = newEvent.event;\n trigger = newEvent.trigger;\n }\n if (eventType !== undefined) {\n this.getEvent(newObject, oldObject, eventType, child0, child1, child2);\n }\n if (trigger !== undefined) {\n if (newObject.style) {\n updateStyle(newObject.style, elementWrapper.children[0]);\n }\n var bpmnshapeTriggerdata = getBpmnTriggerShapePathData(trigger);\n eventWrapper.children[2].data = bpmnshapeTriggerdata;\n }\n if (newEvent.height !== undefined || newEvent.width !== undefined) {\n this.getEventSize(newEvent, eventWrapper);\n }\n if (newEvent.id !== undefined) {\n eventWrapper.id = newEvent.id;\n }\n if (newEvent.margin !== undefined) {\n eventWrapper.margin = newEvent.margin;\n }\n if (newEvent.horizontalAlignment !== undefined) {\n eventWrapper.horizontalAlignment = newEvent.horizontalAlignment;\n }\n if (newEvent.verticalAlignment !== undefined) {\n eventWrapper.verticalAlignment = newEvent.verticalAlignment;\n }\n if (newEvent.offset !== undefined) {\n eventWrapper.setOffsetWithRespectToBounds(actualEvent.offset.x, actualEvent.offset.y, 'Fraction');\n eventWrapper.relativeMode = 'Point';\n }\n if (newEvent.annotations !== undefined) {\n var annotations = void 0;\n var annotation = elementWrapper.children[0].children[2];\n if (eventWrapper.children[3] && eventWrapper.children.length > 3) {\n annotations = eventWrapper.children[3];\n diagram.updateAnnotation(newEvent.annotations[0], annotations, annotation);\n }\n }\n if (newEvent.ports !== undefined) {\n var ports = void 0;\n var port = elementWrapper.children[0].children[2];\n if (eventWrapper.children[4] && eventWrapper.children.length > 4) {\n ports = eventWrapper.children[4];\n diagram.updatePort(newEvent.ports[0], ports, port);\n }\n }\n if (newEvent.visible !== undefined) {\n this.updateDiagramContainerVisibility(eventWrapper, newEvent.visible);\n }\n };\n BpmnDiagrams.prototype.updateBPMNSubProcessTransaction = function (node, newObject, oldObject, diagram) {\n var transaction = newObject.shape.activity.subProcess.transaction;\n var eventContainer = node.wrapper.children[0].children[0].children[2];\n var actualEvent;\n if (transaction.success !== undefined) {\n actualEvent = node.shape.activity.subProcess.transaction.success;\n this.updateBPMNSubEvent(node, transaction.success, actualEvent, eventContainer.children[0], newObject, oldObject, diagram);\n }\n if (transaction.cancel !== undefined) {\n actualEvent = node.shape.activity.subProcess.transaction.cancel;\n this.updateBPMNSubEvent(node, transaction.cancel, actualEvent, eventContainer.children[1], newObject, oldObject, diagram);\n }\n if (transaction.failure !== undefined) {\n actualEvent = node.shape.activity.subProcess.transaction.failure;\n this.updateBPMNSubEvent(node, transaction.failure, actualEvent, eventContainer.children[2], newObject, oldObject, diagram);\n }\n for (var _i = 0, _a = node.outEdges; _i < _a.length; _i++) {\n var edge = _a[_i];\n var connector = diagram.nameTable[\"\" + edge];\n switch (connector.sourcePortID) {\n case 'success':\n if (transaction.success && transaction.success.visible !== undefined) {\n diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'success' });\n }\n break;\n case 'cancel':\n if (transaction.cancel && transaction.cancel.visible !== undefined) {\n diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'cancel' });\n }\n break;\n case 'failure':\n if (transaction.failure && transaction.failure.visible !== undefined) {\n diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'failure' });\n }\n break;\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getEventSize = function (events, wrapperChild) {\n if (events.height !== undefined) {\n wrapperChild.height = events.height;\n wrapperChild.children[0].height = events.height;\n wrapperChild.children[1].height = events.height * 0.85;\n wrapperChild.children[2].height = events.height * 0.54;\n }\n if (events.width !== undefined) {\n wrapperChild.width = events.width;\n wrapperChild.children[0].width = events.width;\n wrapperChild.children[1].width = events.width * 0.85;\n wrapperChild.children[2].width = events.width * 0.54;\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessAdhoc = function (node, oldObject, subProcess, x, subChildCount, area) {\n var shape = node.shape;\n var elementWrapper = node.wrapper.children[0].children[0];\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0;\n if (subProcess.adhoc === false) {\n elementWrapper.children[3 + index].visible = false;\n }\n else {\n elementWrapper.children[3 + index].visible = true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, 3 + index);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessBoundary = function (node, subProcess) {\n var shape = node.shape;\n var elementWrapper = (node.wrapper.children[0].children[0].children[0]);\n if (subProcess.boundary === 'Default') {\n elementWrapper.style.strokeWidth = 1;\n elementWrapper.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Call') {\n elementWrapper.style.strokeWidth = 4;\n elementWrapper.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Event') {\n elementWrapper.style.strokeWidth = 1;\n elementWrapper.style.strokeDashArray = '2 2';\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateElementVisibility = function (node, visible, diagram) {\n if (node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length > 0) {\n var processes = node.shape.activity.subProcess.processes;\n for (var j = processes.length - 1; j >= 0; j--) {\n var currentNode = diagram.nameTable[processes[parseInt(j.toString(), 10)]];\n currentNode.visible = visible;\n diagram.updateElementVisibility(currentNode.wrapper, currentNode, visible);\n if (visible) {\n if ((!isBlazor() && currentNode.shape.shape === 'Event') ||\n (isBlazor() && currentNode.shape.bpmnShape === 'Event')) {\n this.setEventVisibility(currentNode, currentNode.wrapper.children[0].children);\n }\n if (currentNode.shape.activity.activity === 'SubProcess') {\n this.setSubProcessVisibility(currentNode);\n }\n }\n var connectors = currentNode.inEdges.concat(currentNode.outEdges);\n for (var i = connectors.length - 1; i >= 0; i--) {\n var connector = diagram.nameTable[connectors[parseInt(i.toString(), 10)]];\n connector.visible = visible;\n diagram.updateElementVisibility(connector.wrapper, connector, visible);\n }\n }\n }\n if (visible) {\n if ((!isBlazor() && node.shape.shape === 'Event') ||\n (isBlazor() && node.shape.bpmnShape === 'Event')) {\n this.setEventVisibility(node, node.wrapper.children[0].children);\n }\n if (node.shape.activity.activity === 'SubProcess') {\n this.setSubProcessVisibility(node);\n }\n if (node.shape.activity.activity === 'Task' &&\n ((!isBlazor() && node.shape.shape === 'Activity') ||\n (isBlazor() && node.shape.bpmnShape === 'Activity'))\n && node.shape.activity.subProcess.loop === 'None') {\n node.wrapper.children[0].children[0].children[3].visible = false;\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessCollapsed = function (node, oldObject, subProcess, x, subChildCount, area, diagram) {\n var eventLength = node.shape.activity.subProcess.events.length;\n var elementWrapper = node.wrapper.children[0].children[0];\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 3 : 1;\n if (subProcess.collapsed === false) {\n this.updateElementVisibility(node, true, diagram);\n elementWrapper.children[index + eventLength].visible = false;\n }\n else {\n this.updateElementVisibility(node, false, diagram);\n elementWrapper.children[index + eventLength].visible = true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, 3 + eventLength);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessCompensation = function (node, oldObject, subProcess, x, subChildCount, area) {\n var elementWrapper = node.wrapper.children[0].children[0];\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0;\n if (subProcess.compensation === false) {\n elementWrapper.children[4 + index].visible = false;\n }\n else {\n elementWrapper.children[4 + index].visible = true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, 4 + index);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessLoop = function (node, oldObject, subProcess, x, subChildCount, area) {\n this.updateBPMNActivityTaskLoop(node, node, x, subChildCount, area, 1);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNConnector = function (actualObject, oldObject, connection, diagram) {\n var flowType = connection.shape;\n //EJ2-66905 - Changing BPMN flow connectors at runtime is not working properly.\n var flow = actualObject.shape.flow;\n if ((flowType.flow === 'Sequence' || flowType.sequence) && flow === 'Sequence') {\n actualObject = this.getSequence(actualObject, oldObject, connection, diagram);\n }\n if ((flowType.flow === 'Association' || flowType.association) && flow === 'Association') {\n actualObject = this.getAssociation(actualObject, oldObject, connection, diagram);\n }\n if ((flowType.flow === 'Message' || flowType.message) && flow === 'Message') {\n actualObject = this.getMessage(actualObject, oldObject, connection, diagram);\n }\n return actualObject;\n };\n /** @private */\n BpmnDiagrams.prototype.getSequence = function (actualObject, oldObject, connection, diagram) {\n if ((connection.shape.sequence) === 'Normal' || actualObject.shape.sequence === 'Normal') {\n actualObject.targetDecorator.shape = 'Arrow';\n actualObject.sourceDecorator.shape = 'None';\n actualObject.style.strokeDashArray = 'None';\n actualObject.targetDecorator.style.fill = 'black';\n actualObject.targetDecorator.width = 10;\n actualObject.targetDecorator.height = 10;\n diagram.connectorPropertyChange(actualObject, oldObject, {\n targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 },\n sourceDecorator: { shape: 'None' },\n style: { strokeDashArray: 'None' }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n if ((connection.shape.sequence) === 'Default' || actualObject.shape.sequence === 'Default') {\n actualObject.targetDecorator.shape = 'Arrow';\n actualObject.sourceDecorator.shape = 'None';\n actualObject.style.strokeDashArray = 'None';\n actualObject.targetDecorator.style.fill = 'black';\n actualObject.targetDecorator.width = 10;\n actualObject.targetDecorator.height = 10;\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: 'None' },\n targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 },\n sourceDecorator: { shape: 'None' }\n });\n var segment = new PathElement();\n var pathseq = new PathElement();\n var pathseqData = void 0;\n segment = actualObject.getSegmentElement(actualObject, segment);\n var anglePoints = actualObject.intermediatePoints;\n for (var j = 0; j < anglePoints.length - 1; j++) {\n // eslint-disable-next-line no-global-assign\n length = length + actualObject.distance(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]);\n pathseqData = actualObject.findPath(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]);\n }\n var content = new PathElement();\n content.data = pathseqData[0];\n content.id = actualObject.id + '_' + connection.shape.sequence || actualObject.shape.sequence;\n content.offsetX = pathseqData[1].x;\n content.offsetY = pathseqData[1].y;\n content.rotateAngle = 45;\n content.transform = Transform.Self;\n this.removeDomElement(actualObject, diagram, content);\n }\n if ((connection.shape.sequence) === 'Conditional' || actualObject.shape.sequence === 'Conditional') {\n actualObject.sourceDecorator.shape = 'Diamond';\n actualObject.sourceDecorator.width = 20;\n actualObject.sourceDecorator.height = 10;\n actualObject.sourceDecorator.style.fill = 'white';\n actualObject.targetDecorator.style.fill = 'black';\n actualObject.style.strokeDashArray = 'None';\n actualObject.targetDecorator.shape = 'Arrow';\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: 'None' },\n targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 },\n sourceDecorator: { shape: 'Diamond', width: 20, height: 10, style: { fill: 'white' } }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n return actualObject;\n };\n /** @private */\n BpmnDiagrams.prototype.getAssociation = function (actualObject, oldObject, connection, diagram) {\n if ((connection.shape.association) === 'Default' || actualObject.shape.association === 'Default') {\n actualObject.sourceDecorator.shape = 'None';\n actualObject.targetDecorator.shape = 'None';\n actualObject.style.strokeDashArray = '2 2';\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: '2 2' },\n targetDecorator: { shape: 'None' },\n sourceDecorator: { shape: 'None' }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n if ((connection.shape.association) === 'Directional' || actualObject.shape.association === 'Directional') {\n actualObject.sourceDecorator.shape = 'None';\n actualObject.style.strokeDashArray = '2 2';\n actualObject.targetDecorator.shape = 'OpenArrow';\n actualObject.targetDecorator.width = 10;\n actualObject.targetDecorator.height = 10;\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: '2 2' },\n targetDecorator: { shape: 'OpenArrow', width: 10, height: 10 },\n sourceDecorator: { shape: 'None' }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n if ((connection.shape.association) === 'BiDirectional' || actualObject.shape.association === 'BiDirectional') {\n actualObject.sourceDecorator.shape = 'OpenArrow';\n actualObject.targetDecorator.shape = 'OpenArrow';\n actualObject.sourceDecorator.width = 10;\n actualObject.sourceDecorator.height = 10;\n actualObject.sourceDecorator.style.fill = 'black';\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: '2 2' },\n targetDecorator: { shape: 'OpenArrow', width: 10, height: 10 },\n sourceDecorator: { shape: 'OpenArrow', width: 10, height: 10, style: { fill: 'black' } }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n return actualObject;\n };\n /** @private */\n BpmnDiagrams.prototype.getMessage = function (actualObject, oldObject, connection, diagram) {\n var segmentOffset = 0.5;\n var angle;\n var pt;\n actualObject.sourceDecorator.shape = 'Circle';\n actualObject.sourceDecorator.width = 10;\n actualObject.targetDecorator.shape = 'Arrow';\n actualObject.sourceDecorator.height = 10;\n actualObject.sourceDecorator.style.fill = 'White';\n actualObject.targetDecorator.style.fill = 'White';\n diagram.connectorPropertyChange(actualObject, oldObject, { sourceDecorator: { shape: 'Circle', style: { fill: 'White' }, width: 10, height: 10 }, targetDecorator: { shape: 'Arrow', style: { fill: 'white' } } });\n var anglePoints = actualObject.intermediatePoints;\n var length = 0;\n for (var j = 0; j < anglePoints.length - 1; j++) {\n /* eslint-disable */\n length = length + actualObject.distance(anglePoints[j], anglePoints[j + 1]);\n /* eslint-enable */\n var offLength = length * segmentOffset;\n if (length >= offLength) {\n angle = findAngle(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]);\n pt = Point.transform(anglePoints[parseInt(j.toString(), 10)], angle, offLength);\n }\n }\n var content = new PathElement();\n actualObject.wrapper.children[0].style.strokeDashArray = ' 4 4';\n actualObject.style.strokeDashArray = '4 4';\n content.id = actualObject.id + '_' + connection.shape.message || actualObject.shape.message;\n content.width = 25;\n content.height = 15;\n content.data = 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0';\n content.horizontalAlignment = 'Center';\n content.verticalAlignment = 'Center';\n content.transform = Transform.Self;\n content.style.fill = connection.shape.message === 'NonInitiatingMessage' ?\n 'lightgrey' : 'white';\n content.offsetX = pt.x;\n content.offsetY = pt.y;\n if ((connection.shape.message !== 'Default' && connection.shape.message !== undefined) || actualObject.shape.message !== 'Default') {\n content.style.fill = (connection.shape.message || actualObject.shape.message) === 'NonInitiatingMessage' ?\n 'lightgrey' : 'white';\n }\n else {\n content.visible = false;\n }\n this.removeDomElement(actualObject, diagram, content);\n return actualObject;\n };\n // To remove old wrapper element from dom.\n BpmnDiagrams.prototype.removeDomElement = function (actualObject, diagram, content) {\n for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(actualObject.id + '_groupElement', elementId);\n removeElement(actualObject.id + '_content_groupElement', elementId);\n removeElement(actualObject.id + '_html_element', elementId);\n }\n actualObject.wrapper.children.splice(3, 1);\n actualObject.wrapper.children.splice(3, 0, content);\n };\n //End update Region\n //size updation\n BpmnDiagrams.prototype.setSizeForBPMNEvents = function (event, wrapper, width, height) {\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n //child node 1 - event node\n var eventNode = wrapper.children[1];\n eventNode.width = width * 0.85;\n eventNode.height = height * 0.85;\n var triggerNode = wrapper.children[2];\n if (event.trigger === 'Message') {\n triggerNode.width = width * 0.54;\n triggerNode.height = height * 0.4;\n }\n else {\n triggerNode.width = width * 0.5;\n triggerNode.height = height * 0.5;\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateAnnotationDrag = function (node, diagram, tx, ty) {\n var checkAnnotation = node.id.split('_');\n if (checkAnnotation[1] === 'textannotation') {\n var parentNode = void 0;\n for (var j = 0; j < node.inEdges.length; j++) {\n var connector = diagram.nameTable[node.inEdges[parseInt(j.toString(), 10)]];\n if (connector) {\n parentNode = diagram.nameTable[connector.sourceID];\n }\n var start = { x: node.offsetX + tx, y: node.offsetY + ty };\n var end = connector.sourcePoint;\n var length_1 = Point.findLength(start, end);\n var angle = Point.findAngle(end, start);\n if (parentNode.shape.annotations) {\n for (var x = 0; x < (parentNode.shape.annotations).length; x++) {\n if ((parentNode.shape.annotations)[parseInt(x.toString(), 10)].id === checkAnnotation[checkAnnotation.length - 1]) {\n (parentNode.shape.annotations[parseInt(x.toString(), 10)]).length = length_1;\n (parentNode.shape.annotations[parseInt(x.toString(), 10)]).angle = angle;\n this.setAnnotationPath(parentNode.wrapper.bounds, node.wrapper, start, node);\n return false;\n }\n }\n }\n }\n }\n if (node.processId) {\n this.drag(node, tx, ty, diagram);\n return true;\n }\n return false;\n };\n BpmnDiagrams.prototype.getAnnotationPathAngle = function (point, bounds) {\n var direction = getPortDirection(point, bounds, bounds, false);\n var rotateAngle = 0;\n switch (direction) {\n case 'Right':\n rotateAngle = 0;\n break;\n case 'Left':\n rotateAngle = 180;\n break;\n case 'Bottom':\n rotateAngle = 90;\n break;\n case 'Top':\n rotateAngle = 270;\n break;\n }\n return rotateAngle;\n };\n BpmnDiagrams.prototype.setSizeForBPMNGateway = function (event, wrapper, width, height) {\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n wrapper.children[1].width = width * 0.45;\n wrapper.children[1].height = height * 0.45;\n };\n BpmnDiagrams.prototype.setSizeForBPMNDataObjects = function (event, wrapper, width, height) {\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n };\n BpmnDiagrams.prototype.setSizeForBPMNActivity = function (activity, wrapper, width, height, node) {\n //child node 1 - event node\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n wrapper.children[0].children[0].width = width;\n wrapper.children[0].children[0].height = height;\n if (activity.subProcess.type === 'Transaction') {\n wrapper.children[0].children[1].width = Math.max(width - 6, 1);\n wrapper.children[0].children[1].height = Math.max(height - 6, 1);\n wrapper.children[0].children[2].width = width;\n wrapper.children[0].children[2].height = height;\n }\n var taskNode = new DiagramElement();\n var x;\n var size = this.getSize(node, taskNode);\n var childCount;\n var iconSpace = 4;\n if (activity.activity === 'Task') {\n childCount = this.getTaskChildCount(node);\n }\n else {\n childCount = this.getSubprocessChildCount(node);\n }\n var childSpace = childCount * 12;\n var area = (width || size.width) / 2;\n if (childCount === 1) {\n x = area - 6;\n }\n else {\n x = area - (childSpace / 2) - ((childCount - 1) * iconSpace) / 2;\n }\n for (var i = 0; i < wrapper.children[0].children.length; i++) {\n if (wrapper.children[0].children[parseInt(i.toString(), 10)].visible &&\n (wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_loop') > -1 ||\n wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_compensation') > -1 ||\n wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_adhoc') > -1 ||\n wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_collapsed') > -1)) {\n wrapper.children[0].children[parseInt(i.toString(), 10)].margin.left = x;\n x += wrapper.children[0].children[parseInt(i.toString(), 10)].actualSize.width + iconSpace;\n }\n }\n };\n BpmnDiagrams.prototype.updateDiagramContainerVisibility = function (element, visible) {\n if (element instanceof Container) {\n for (var i = 0; i < element.children.length; i++) {\n this.updateDiagramContainerVisibility(element.children[parseInt(i.toString(), 10)], visible);\n }\n }\n element.visible = visible;\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n BpmnDiagrams.prototype.destroy = function () {\n /**\n * Destroys the BpmnDiagrams module\n */\n };\n /**\n * Get module name.\n *\n * @returns {string} Get module name.\n */\n BpmnDiagrams.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Bpmn';\n };\n return BpmnDiagrams;\n}());\nexport { BpmnDiagrams };\n/**\n * getBpmnShapePathData method \\\n *\n * @returns { string } getBpmnShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnShapePathData(shape) {\n return bpmnShapes[shape.toString()];\n}\n/**\n * getBpmnTriggerShapePathData method \\\n *\n * @returns { string } getBpmnTriggerShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnTriggerShapePathData(shape) {\n return bpmnTriggerShapes[shape.toString()];\n}\n/**\n * getBpmnGatewayShapePathData method \\\n *\n * @returns { string } getBpmnGatewayShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnGatewayShapePathData(shape) {\n return bpmnGatewayShapes[shape.toString()];\n}\n/**\n * getBpmnTaskShapePathData method \\\n *\n * @returns { string } getBpmnTaskShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnTaskShapePathData(shape) {\n return bpmnTaskShapes[shape.toString()];\n}\n/**\n * getBpmnLoopShapePathData method \\\n *\n * @returns { string } getBpmnLoopShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnLoopShapePathData(shape) {\n return bpmnLoopShapes[shape.toString()];\n}\nvar bpmnShapes = {\n 'Event': 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z',\n 'Message': 'M0,0L19.8,12.8L40,0L0,0L0,25.5L40,25.5L40,0z',\n 'DataSource': 'M 0 10.6 c 0 5.9 16.8 10.6 37.5 10.6 S 75 16.4 75 10.6 v 0 v 68.9 v -0.1 C 75 85.3 58.2 90 37.5 90 ' +\n 'S 0 85.3 0 79.4 l 0 0.1 V 56 V 40.6 L 0 10.6 C 0 4.7 16.8 0 37.5 0 S 75 4.7 75 10.6 S 58.2 21.2 37.5 21.2' +\n 'S 0 16.5 0 10.6 l 0 6.7 v -0.2 c 0 5.9 16.8 10.6 37.5 10.6 S 75 22.9 75 17.1 v 6.8 v -0.1 ' +\n 'c 0 5.9 -16.8 10.6 -37.5 10.6 S 0 29.6 0 23.8',\n 'SubProcess': 'M100,100 h200 a20,20 0 0 1 20,20 v200 a20,20 0 0 1 -20,20 h-200 ' +\n 'a20,20 0 0 1 -20,-20 v-200 a20,20 0 0 1 20,-20 z',\n 'collapsedShape': 'M 8.13789 15 H 0 V 0 H 8.13789 V 15 Z M 0.625991 13.75 H 7.51189 V 1.25 H 0.625991 V 13.75 Z ' +\n 'M 2.18095 7.03125 L 5.95631 7.03125 L 5.95631 7.46875 L 2.18095 7.46875 Z M 3.8342 3.73 ' +\n 'L 4.30369 3.73 L 4.30369 11.2687 L 3.8342 11.2687 Z'\n};\nvar bpmnTriggerShapes = {\n // 'None': '',\n 'Message': 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0',\n 'Timer': 'M40,20c0,8.654-5.496,16.024-13.189,18.81' +\n 'C24.685,39.58,22.392,40,20,40C8.954,40,0,31.046,0,20S8.954,0,20,0S40,8.954,40,20z M20,0 L20,2.583 L20,5.283 M10.027,2.681' +\n 'L11.659,5.507 L12.669,7.257 M2.731,9.989 L6.014,11.885 L7.307,12.631 M0.067,19.967 L2.667,19.967 L5.35,19.967' +\n 'M2.748,29.939 L5.731,28.217 L7.323,27.298 M10.056,37.236 L11.292,35.095 L12.698,32.66 M20.033,39.9 L20.033,36.417 L20.033,34.617' +\n 'M30.006,37.219 L28.893,35.292 L27.364,32.643 M37.302,29.911 L34.608,28.355 L32.727,27.269' +\n 'M39.967,19.933 L37.417,19.933 L34.683,19.933 M37.286,9.961 L34.583,11.521 L32.71,12.602 M29.977,2.664 L28.653,4.957 L27.336,' +\n '7.24 M22.104,8.5 L19.688,20 L24.75,20 L31.604,20 L24.75,20 L19.688,20z',\n 'Error': 'M 23.77 18.527 l -7.107 27.396 l 8.507 -17.247 L 36.94 40.073 l 6.394 -25.997 l -8.497 15.754 L 23.77 18.527 Z',\n 'Escalation': 'M 30.001 8.098 L 11.842 43.543 l 18.159 -18.882 l 18.162 18.882 L 30.001 8.098 Z ',\n 'Cancel': 'M 3.5 16 L 0 12.6 L 4.6 8 L 0 3.5 L 3.4 0 L 8 4.6 l 4.5 -4.5 L 16 3.5 L 11.5 8 l 4.5 4.5 l -3.4 3.5 L 8 11.4 L 3.5 16 Z',\n 'Compensation': 'M 25.7086 0 L 0 25 L 25.7086 50 V 26.3752 L 50 50 V 0 L 25.7086 23.6248 V 0 Z ',\n 'Conditional': 'M 0 0 H 16 V 16 H 0 z M 1.14 3.2 H 14.85 M 1.14 6.4 H 14.85 M 1.14 9.6 H 14.85 M 1.14 12.8 H 14.85',\n 'Link': 'M 32.014 19.258 v 5.992 H 9.373 v 9.504 h 22.641 v 5.988 L 50.622 30 L 32.014 19.258 Z',\n 'Signal': 'M 50 50 H 0 L 25.0025 0 L 50 50 Z',\n 'Terminate': 'M 25 50 C 11.21 50 0 38.79 0 25 C 0 11.21 11.21 0 25 0 C 38.78 0 50 11.21 50 25 C 50 38.79 38.78 50 25 50',\n 'Multiple': 'M 17.784 48.889 H 42.21 l 7.548 -23.23 L 29.997 11.303 L 10.236 25.658 L 17.784 48.889 Z',\n 'Parallel': 'M 27.276 49.986 h 5.58 v -17.15 h 17.146 V 27.17 h -17.15 l 0.004 -17.15 h -5.58 l -0.004 17.15 ' +\n 'H 9.994 v 5.666 h 17.278 L 27.276 49.986 Z'\n};\nvar bpmnGatewayShapes = {\n 'None': '',\n //exclusive\n 'Exclusive': 'M 11.196 29.009 l 6.36 -9.712 l -5.764 -8.899 h 4.393 l 3.732 5.979 l 3.656 -5.979 h 4.354 l -5.789 9.039' +\n 'l 6.36 9.572 h -4.532 l -4.126 -6.437 l -4.139 6.437 H 11.196 Z',\n //inclusive\n 'Inclusive': 'M 20.323 31.333 c -6.625 0 -12.015 -5.39 -12.015 -12.015 s 5.39 -12.015 12.015 -12.015 ' +\n 's 12.016 5.39 12.016 12.015 S 26.948 31.333 20.323 31.333 Z M 20.323 9.303 c -5.522 0 -10.015 4.493 -10.015 10.015 ' +\n 's 4.492 10.015 10.015 10.015 s 10.016 -4.493 10.016 -10.015 S 25.846 9.303 20.323 9.303 Z',\n //parallel\n 'Parallel': 'M 18.394 29.542 v -8.833 H 9.626 v -3.691 h 8.768 V 8.251 h 3.734 v 8.767 h 8.768 v 3.691 h -8.768 v 8.833 H 18.394 Z',\n //complex\n 'Complex': 'M29.198,19.063L23.089,19.063L27.794,14.358L26.38,12.944L21.223,18.101L21.223,10.443L19.223,10.443L19.223,17.976' +\n 'L14.022,12.776L12.608,14.19L17.48,19.063L10.365,19.063L10.365,21.063L18.261,21.063L12.392,26.932L13.806,28.346' +\n 'L19.223,22.929L19.223,30.225L21.223,30.225L21.223,22.805L25.925,27.507L27.339,26.093L22.309,21.063L29.198,21.063z',\n //eventbased\n 'EventBased': 'M 20.322 29.874 c -5.444 0 -9.873 -4.43 -9.873 -9.874 s 4.429 -9.874 9.873 -9.874 s 9.874 4.429 9.874 9.874 ' +\n 'S 25.767 29.874 20.322 29.874 Z M 20.322 32.891 c -7.107 0 -12.89 -5.783 -12.89 -12.891 c 0 -7.107 5.782 -12.89 12.89 -12.89 ' +\n 'c 7.108 0 12.891 5.783 12.891 12.89 C 33.213 27.108 27.431 32.891 20.322 32.891 Z M 24.191 25.386 ' +\n 'h -7.984 l -2.469 -7.595 l 6.461 -4.693 l 6.461 4.693 L 24.191 25.386 Z',\n //exclusive event based\n 'ExclusiveEventBased': 'M 30 15 C 30 23.28 23.28 30 15 30 S 0 23.28 0 15 S 6.72 0 15 0 S 30 6.72 30 15 z M 15 5 ' +\n 'L 5 12.5 L 8 22.5 H 22 L 25 12.5 z',\n //parallel event based\n 'ParallelEventBased': 'M 35 17.5 C 35 27.16 27.16 35 17.5 35 S 0 27.16 0 17.5 S 7.84 0 17.5 0 S 35 7.84 35 17.5 z M 14.58 5.83 ' +\n 'V 14.58 H 5.83 V 20.42 H 14.58 V 29.17 H 20.42 V 20.42 H 29.17 V 14.58 H 20.42 V 5.83 z'\n};\nvar bpmnTaskShapes = {\n 'None': '',\n 'Service': 'M 32.699 20.187 v -4.005 h -3.32 c -0.125 -0.43 -0.292 -0.83 -0.488 -1.21 l 2.373 -2.375 ' +\n 'l -2.833 -2.83 l -2.333 2.333 c -0.44 -0.253 -0.9 -0.448 -1.387 -0.595 v -3.32 h -4.003 v 3.32 c -0.46 0.137 -0.89' +\n '0.322 -1.3 0.537 l -2.285 -2.275 l -2.833 2.83 l 2.285 2.278 c -0.235 0.42 -0.41 0.847 -0.547 1.307 h -3.33 v 4.005 h 3.33 ' +\n 'c 0.148 0.488 0.343 0.955 0.588 1.395 l -2.325 2.325 l 2.822 2.832 l 2.373 -2.382 c 0.392 0.205 0.792 0.37 1.212 0.497 v 3.33 ' +\n 'h 4.003 v -3.33 c 0.46 -0.138 0.89 -0.323 1.3 -0.547 l 2.43 2.432 l 2.822 -2.832 l -2.42 -2.422 c 0.222 -0.41 0.4 -0.85 0.535' +\n '-1.297 H 32.699 Z M 22.699 21.987 c -2.1 0 -3.803 -1.703 -3.803 -3.803 c 0 -2.1 1.703 -3.803 3.803 -3.803 c 2.1 0 3.803 ' +\n '1.703 3.803 3.803 C 26.502 20.285 24.8 21.987 22.699 21.987 Z',\n 'Receive': 'M 12.217 12.134 v 13.334 h 20 V 12.134 H 12.217 Z M 30.44 13.007 l -8.223 5.35 l -8.223 -5.35 H 30.44 Z M 13.09' +\n ' 24.594 V 13.459 l 9.127 5.94 l 9.127 -5.94 v 11.135 H 13.09 Z',\n 'Send': 'M0,1.2260086 L8.0000002,8.3380068 16,1.2260086 16,12.000007 0,12.000007 z M1.6300015,0 L14.371001,0 8.0000055,5.662 z',\n 'InstantiatingReceive': 'M 16.306 17.39 v 8.79 h 13.198 v -8.79 H 16.306 Z M 28.375 17.946 l -5.47 3.558 l -5.47 -3.558 ' +\n 'H 28.375 Z M 28.948 25.625 H 16.861 v -7.389 l 6.043 3.931 l 6.043 -3.931 V 25.625 Z M 22.905 11.785' +\n 'c -5.514 0 -9.999 4.486 -9.999 10 c 0 5.514 4.485 10 9.999 10 s 9.999 -4.486 9.999 -10 ' +\n 'C 32.904 16.272 28.419 11.785 22.905 11.785 Z M 22.905 31.239 c -5.212 0 -9.453 -4.241 -9.453 -9.454' +\n 'c 0 -5.212 4.241 -9.453 9.453 -9.453 s 9.452 4.241 9.452 9.453 C 32.357 26.998 28.117 31.239 22.905 31.239 Z',\n 'Manual': 'M9.21 612 L5.82 612 L1.07 612 a1.07317 1 -180 0 1 -1.07317 -1 L0 604.75 A3.42007 1.59344 -180 0 0 1.61 604 L2.6 604 L5.99 604 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L2.6 605.34 a0.48818 0.183302 -90 0 0 0.0837073 0.342385 L5.63 605.69 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L10.28 605.66 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 607.01 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 607.35 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L10.01 607.33 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 608.67 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 609.01 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L9.47 608.99 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 610.34 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 610.68 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L9.21 610.66 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672',\n 'BusinessRule': 'M 32.844 13.245 h -0.089 v 0 H 13.764 v -0.015 h -1.009 v 16.989 h 0.095 v 0.011 h 19.716 v -0.011 h 0.278 ' +\n 'V 13.245 Z M 31.844 14.229 v 4.185 h -18.08 v -4.185 H 31.844 Z M 18.168 25.306 v 3.938 h -4.404 v -3.938 H 18.168 Z ' +\n 'M 13.764 24.322 v -4.923 h 4.404 v 4.923 H 13.764 Z M 19.177 25.306 h 12.667 v 3.938 H 19.177 V 25.306 Z M 19.177 24.322' +\n 'v -4.923 h 12.667 v 4.923 H 19.177 Z',\n 'User': 'M8.6751149,13.75 L10.79009,18.703003 11.664047,18.696991 13.792084,13.75 13.824066,13.75 C18.177001,13.75 21.709022,' +\n '17.259003 21.748998,21.60199 21.748998,21.649994 21.743993,21.700012 21.735021,21.747009 21.137981,24.774994 18.775997,' +\n '27.144989 15.74904,27.75 L6.7491024,27.75 C3.7231224,27.144989 1.3601628,24.774994 0.76312089,21.747009 0.75414884,21.700012 0.74914402,' +\n '21.649994 0.75012076,21.60199 0.78912175,17.259003 4.3221171,13.75 8.6751149,13.75 z M11.249014,0.75 C14.287014,0.75 16.749015,' +\n '3.2119999 16.749015,6.25 16.749015,9.2880001 14.287014,11.75 11.249014,11.75 8.211015,11.75 5.7490147,9.2880001 5.7490147,6.25 5.7490147,3.2119999 8.211015,0.75 11.249014,0.75 z',\n 'Script': 'M22.3,80.4 A82.9529,77.0159,-180,0,0,10.3,46.7 A69.8467,64.8477,0,0,1,0,19.7 A27.6207,25.6439,0,0,1,12.1,0 L84.7,0 A37.4124,34.7347,-180,0,0,77.7,19.6 A82.8871,76.9547,' +\n '-180,0,0,89.7,53.3 A69.8146,64.81790000000001,0,0,1,100,80.3 A27.603399999999997,25.6278,0,0,1,87.9,100 L15.3,100 A37.4265,34.7479,-180,0,0,22.3,80.4 M12.5,28.6 L67.3,28.6 M18.3,42.9 L72.1,42.9 M80.8,' +\n '57.1 L26,57.1 M85.6,71.4 L32.6,71.4'\n};\nvar bpmnLoopShapes = {\n 'None': '',\n 'Standard': 'M 52.002 73.379 c -2.494 -2.536 -6.55 -2.534 -9.043 0 c -1.208 1.228 -1.874 2.861 -1.874 4.598 ' +\n 'c 0 1.225 0.337 2.395 0.957 3.411 l -1.167 1.186 l 2.071 0.458 l 2.071 0.458 l -0.45 -2.106 l -0.45 -2.106 l -1.292 1.314' +\n 'c -1.119 -2.065 -0.842 -4.709 0.877 -6.458 c 2.084 -2.119 5.475 -2.117 7.557 0 c 2.083 2.119 2.083 5.565 0 7.685' +\n 'c -0.976 0.992 -2.272 1.557 -3.65 1.59 l 0.025 1.068 c 1.65 -0.041 3.2 -0.716 4.368 -1.903 ' +\n 'c 1.208 -1.228 1.874 -2.861 1.874 -4.597 C 53.875 76.24 53.209 74.607 52.002 73.379 Z',\n 'ParallelMultiInstance': 'M 51.5,69.5 L52.5,69.5 L52.5,84.5 L51.5 84.5 Z M 46.5,69.5 L47.5,69.5 L47.5,84.5 L46.5 84.5 Z' +\n ' M 41.5,69.5 L42.5,69.5 L42.5,84.5 L41.5 84.5 Z ',\n 'SequenceMultiInstance': 'M 40.375,71.5 L 55.375,71.5 L 55.375,72.5 L 40.375,72.5 Z M 40.375,76.5 L 55.375,76.5 ' +\n 'L 55.375,77.5 L 40.375,77.5 Z M 40.375,76.5 L 55.375,76.5 L 55.375,77.5 L 40.375,77.5 Z M 40.375,81.5 L 55.375,81.5' +\n 'L 55.375,82.5 L 40.375,82.5 Z'\n};\n","import { OrthogonalSegment } from '../objects/connector';\nimport { Rect } from '../primitives/rect';\nimport { findDistance, findPort, getConnectorDirection, intersect2 } from '../utility/diagram-util';\nimport { randomId } from '../utility/base-util';\nimport { Point } from '../primitives/point';\nimport { PointPort } from '../objects/port';\nimport { Size } from '../primitives/size';\n/**\n * Line Distribution\n * @private\n */\nvar LineDistribution = /** @class */ (function () {\n /**\n * Constructor for the line distribution module\n * @private\n */\n function LineDistribution() {\n //constructs the line distribution module\n }\n /**\n * To destroy the line distribution module\n * @returns {void}\n * @private\n */\n LineDistribution.prototype.destroy = function () {\n /**\n * Destroys the line distribution module\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n LineDistribution.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'LineDistribution';\n };\n /** @private */\n LineDistribution.prototype.initLineDistribution = function (graph, diagram) {\n var srcDirection = 'Bottom';\n this.diagram = diagram;\n if (diagram.layout.connectionPointOrigin === 'DifferentPoint' || diagram.layout.enableRouting) {\n var tarDirection = 'Top';\n if (graph.orientation === 'BottomToTop') {\n srcDirection = 'Top';\n tarDirection = 'Bottom';\n }\n else if (graph.orientation === 'RightToLeft') {\n srcDirection = 'Left';\n tarDirection = 'Right';\n }\n else if (graph.orientation === 'LeftToRight') {\n srcDirection = 'Right';\n tarDirection = 'Left';\n }\n var graphnodes = diagram.nodes;\n if (graphnodes.length > 0) {\n for (var i = 0; i < graphnodes.length; i++) {\n var node = diagram.nameTable[graphnodes[parseInt(i.toString(), 10)].id];\n this.addDynamicPortandDistrrbuteLine(graph, node, srcDirection, tarDirection, diagram);\n }\n }\n }\n };\n LineDistribution.prototype.ObstacleSegment = function (options) {\n options.direction = getConnectorDirection(options.startpt, options.endpt);\n options.distance = Point.findLength(options.startpt, options.endpt);\n options.orientation = options.direction === 'Left' || options.direction === 'Right' ? 'horizontal' : 'vertical';\n // eslint-disable-next-line no-self-assign\n options.id = options.id;\n if (options.orientation === 'horizontal') {\n options.coord = options.startpt.y;\n if (options.direction === 'Left') {\n options.start = options.endpt.x;\n options.end = options.startpt.x;\n }\n else {\n options.start = options.startpt.x;\n options.end = options.endpt.x;\n }\n }\n else {\n options.coord = options.startpt.x;\n if (options.direction === 'Top') {\n options.start = options.endpt.y;\n options.end = options.startpt.y;\n }\n else {\n options.start = options.startpt.y;\n options.end = options.endpt.y;\n }\n }\n return options;\n };\n /** @private */\n LineDistribution.prototype.distributeLines = function (layout, diagram) {\n var isHorizontal = layout.orientation === 'LeftToRight'\n || layout.orientation === 'RightToLeft';\n var inversespacing = !isHorizontal ? layout.verticalSpacing : layout.horizontalSpacing;\n var srcdecoratorSize = 8.0;\n var obstacleCollection = 'obstaclePointCollection';\n var tardecoratorSize = 10.0;\n var avaibaleSpace = inversespacing - srcdecoratorSize - tardecoratorSize;\n var graph = [];\n var connectorObstacles = [];\n var globalConnectors = diagram.connectors;\n for (var i = 0; i < globalConnectors.length; i++) {\n var connector = globalConnectors[parseInt(i.toString(), 10)];\n var pts = [];\n for (var key = 0; key < connector.segments.length; key++) {\n var seg = connector.segments[parseInt(key.toString(), 10)];\n for (var k = 0; k < seg.points.length; k++) {\n var pt = seg.points[parseInt(k.toString(), 10)];\n if (pts.length === 0 || !(Point.equals(pt, pts[pts.length - 1]))) {\n pts.push(pt);\n }\n }\n }\n var obssegments = [];\n for (var j = 1; j < pts.length; j++) {\n var obstacle = this.ObstacleSegment({ startpt: pts[j - 1], endpt: pts[parseInt(j.toString(), 10)], id: connector.id });\n obssegments.push(obstacle);\n }\n var connectorObstacle = { wrapper: connector, segments: obssegments };\n var segments = [];\n if (!isHorizontal) {\n for (var key = 0; key < connectorObstacle.segments.length; key++) {\n var obstacle = connectorObstacle.segments[parseInt(key.toString(), 10)];\n if (obstacle.orientation === 'horizontal') {\n segments.push(obstacle);\n }\n }\n }\n else {\n for (var key = 0; key < connectorObstacle.segments.length; key++) {\n var obstacle = connectorObstacle.segments[parseInt(key.toString(), 10)];\n if (obstacle.orientation === 'vertical') {\n segments.push(obstacle);\n }\n }\n }\n for (var j = 0; j < segments.length; j++) {\n var obstacleSegment = segments[parseInt(j.toString(), 10)];\n if (!this.containsValue(graph, obstacleSegment.coord)) {\n graph.push({ key: obstacleSegment.coord, value: [] });\n }\n var index = void 0;\n for (var k = 0; k < graph.length; k++) {\n var key = graph[parseInt(k.toString(), 10)].key;\n if (Number(key) === obstacleSegment.coord) {\n index = k;\n break;\n }\n }\n graph[parseInt(index.toString(), 10)].value.push(obstacleSegment);\n }\n connectorObstacles.push(connectorObstacle);\n }\n var modifiedgrap = [];\n for (var m = 0; m < graph.length; m++) {\n var row = graph[parseInt(m.toString(), 10)];\n var sortedrow = row.value;\n sortedrow.sort();\n var groupby = void 0;\n groupby = [];\n var index = 0;\n var maxEnd = Number.MIN_VALUE;\n groupby.push([]);\n for (var n = 0; n < sortedrow.length; n++) {\n var obstacleSegment = sortedrow[parseInt(n.toString(), 10)];\n if (!(groupby[parseInt(index.toString(), 10)].length > 0) || maxEnd >= obstacleSegment.start) {\n groupby[parseInt(index.toString(), 10)].push(obstacleSegment);\n maxEnd = Math.max(maxEnd, groupby[parseInt(index.toString(), 10)][groupby[parseInt(index.toString(), 10)].length - 1].end);\n }\n else {\n index++;\n groupby.push([]);\n groupby[parseInt(index.toString(), 10)].push(obstacleSegment);\n maxEnd = groupby[parseInt(index.toString(), 10)][groupby[parseInt(index.toString(), 10)].length - 1].end;\n }\n }\n for (var n = 0; n < groupby.length; n++) {\n var group = groupby[parseInt(n.toString(), 10)];\n var sortedGroup = [];\n for (var j = 0; j < group.length; j++) {\n var e = group[parseInt(j.toString(), 10)];\n if (e.start) {\n sortedGroup.push(e);\n }\n }\n var comparingDir = isHorizontal ? 'Bottom' : 'Right';\n var directed = [];\n for (var j = 0; j < sortedGroup.length; j++) {\n var e = sortedGroup[parseInt(j.toString(), 10)];\n if (e.direction === comparingDir) {\n directed.push(e);\n }\n }\n var reversedirected = [];\n for (var j = 0; j < sortedGroup.length; j++) {\n var e = sortedGroup[parseInt(j.toString(), 10)];\n if (e.direction !== comparingDir) {\n reversedirected.push(e);\n }\n }\n var mutual = [];\n if (directed.length > 0) {\n var temp = directed[0].start;\n var j = 0;\n while (j < reversedirected.length) {\n if (reversedirected[parseInt(j.toString(), 10)].end > temp) {\n mutual.push(reversedirected[parseInt(j.toString(), 10)]);\n reversedirected.splice(j, 1);\n }\n else {\n j++;\n }\n }\n }\n var mutualRow = [];\n mutualRow = this.updateSegmentRow(mutual, mutualRow);\n var directedRow = [];\n directedRow = [];\n directedRow = this.updateSegmentRow(reversedirected, directedRow);\n directed.reverse();\n directedRow = this.updateSegmentRow(directed, directedRow);\n if (!(mutualRow[mutualRow.length - 1].length > 0)) {\n mutualRow.splice(mutualRow.length - 1, 1);\n }\n if (!(directedRow[directedRow.length - 1].length > 0)) {\n directedRow.splice(directedRow.length - 1, 1);\n }\n var subrow = [];\n var descAdding = mutual.length > 0 && (sortedGroup[0].direction === mutual[0].direction\n || sortedGroup[sortedGroup.length - 1].direction === mutual[mutual.length - 1].direction);\n if (descAdding) {\n subrow = directedRow;\n for (var p = 0; p < mutualRow.length; p++) {\n var obj = mutualRow[parseInt(p.toString(), 10)];\n subrow[subrow.length] = obj;\n }\n }\n else {\n subrow = mutualRow;\n for (var p = 0; p < directedRow.length; p++) {\n var obj = directedRow[parseInt(p.toString(), 10)];\n subrow[subrow.length] = obj;\n }\n }\n if (subrow.length > 1) {\n var directionModifier = 1;\n if (layout.orientation === 'BottomToTop'\n || layout.orientation === 'RightToLeft') {\n directionModifier = -1;\n }\n var startCoord = row.key - (directionModifier * avaibaleSpace / 2.0);\n var diff = avaibaleSpace / subrow.length;\n for (var i = 0; i < subrow.length; i++) {\n var newcoord = startCoord + (i * diff * directionModifier);\n for (var p = 0; p < subrow[parseInt(i.toString(), 10)].length; p++) {\n var obstacleSegment = subrow[parseInt(i.toString(), 10)][parseInt(p.toString(), 10)];\n obstacleSegment.coord = newcoord;\n if (!this.containsValue(modifiedgrap, obstacleSegment.coord)) {\n modifiedgrap.push({ key: obstacleSegment.coord, value: [] });\n }\n var index_1 = void 0;\n for (var k = 0; k < modifiedgrap.length; k++) {\n var keyCheck = modifiedgrap[parseInt(k.toString(), 10)].key;\n if (keyCheck === obstacleSegment.coord) {\n index_1 = k;\n break;\n }\n }\n modifiedgrap[parseInt(index_1.toString(), 10)].value.push(obstacleSegment);\n }\n }\n }\n }\n }\n for (var m = 0; m < connectorObstacles.length; m++) {\n var connectorObstacle = connectorObstacles[parseInt(m.toString(), 10)];\n var pts = [];\n for (var i = 0; i < connectorObstacle.segments.length; i++) {\n if (i === 0) {\n pts.push(this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]));\n }\n else if (isHorizontal) {\n if (connectorObstacle.segments[parseInt(i.toString(), 10)].orientation === 'vertical') {\n pts[pts.length - 1] = this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]);\n }\n }\n else if (!isHorizontal) {\n if (connectorObstacle.segments[parseInt(i.toString(), 10)].orientation === 'horizontal') {\n pts[pts.length - 1] = this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]);\n }\n }\n pts.push(this.getObstacleEndPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]));\n }\n /* tslint:disable */\n connectorObstacle.wrapper[\"\" + obstacleCollection] = [];\n for (var j = 0; j < pts.length; j++) {\n var point = pts[parseInt(j.toString(), 10)];\n if (j === 0 || (j > 0 && !(Point.equals(point, pts[j - 1])))) {\n connectorObstacle.wrapper[\"\" + obstacleCollection].push(this.getPointvalue(point.x, point.y));\n }\n }\n /* tslint:enable */\n //EJ2-70198 - The layout ConnectionPointOrigin DifferentPoint property is not working for bezier connector\n if (connectorObstacle.wrapper === \"Orthogonal\") {\n this.resetConnectorPoints(connectorObstacle.wrapper, diagram);\n }\n }\n };\n LineDistribution.prototype.inflate = function (rect, x, y) {\n rect.x -= x;\n rect.y -= y;\n rect.width += 2 * x;\n rect.height += 2 * y;\n return rect;\n };\n LineDistribution.prototype.updateConnectorPoints = function (connectorPoints, startSegmentSize, intermediatePoint, bounds, orientation) {\n var layoutBounds = bounds;\n var isHorizontal = orientation === 'LeftToRight' || orientation === 'RightToLeft';\n var pts = connectorPoints;\n if (pts.length > 2) {\n var newPt = Point.transform(pts[0], Point.findAngle(pts[0], pts[1]), startSegmentSize);\n var nextPt = Point.transform(newPt, Point.findAngle(pts[1], pts[2]), Point.findLength(pts[1], pts[2]));\n pts.splice(1, 2, newPt, nextPt);\n if (intermediatePoint != null) {\n var index = 2;\n var ptsCount = pts.length;\n var newPt1 = Point.transform(pts[ptsCount - 1], Point.findAngle(pts[ptsCount - 1], pts[ptsCount - 2]), startSegmentSize);\n pts.splice(ptsCount - 1, 0, newPt1);\n while (index < (pts.length - 2)) {\n pts.splice(index, 1);\n }\n var edgePt = intermediatePoint;\n this.inflate(layoutBounds, layoutBounds.width, layoutBounds.height);\n var line1 = [];\n line1[0] = this.getPointvalue(edgePt.x, layoutBounds.y);\n line1[1] = this.getPointvalue(edgePt.x, layoutBounds.y + layoutBounds.height);\n var line2 = [];\n line2[0] = this.getPointvalue(layoutBounds.x, pts[1].y);\n line2[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, pts[1].y);\n var line3 = [];\n line3[0] = this.getPointvalue(layoutBounds.x, newPt1.y);\n line3[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, newPt1.y);\n if (isHorizontal) {\n line1[0] = this.getPointvalue(layoutBounds.x, edgePt.y);\n line1[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, edgePt.y);\n line2[0] = this.getPointvalue(pts[1].x, layoutBounds.y);\n line2[1] = this.getPointvalue(pts[1].x, layoutBounds.y + layoutBounds.height);\n line3[0] = this.getPointvalue(newPt1.x, layoutBounds.y);\n line2[1] = this.getPointvalue(newPt1.x, layoutBounds.y + layoutBounds.height);\n }\n var intercepts1 = [intersect2(line1[0], line1[1], line2[0], line2[1])];\n var intercepts2 = [intersect2(line1[0], line1[1], line3[0], line3[1])];\n if (intercepts2.length > 0) {\n pts.splice(2, 0, intercepts2[0]);\n }\n if (intercepts1.length > 0) {\n pts.splice(2, 0, intercepts1[0]);\n }\n }\n }\n var i = 1;\n while (i < pts.length - 1) {\n if (Point.equals(pts[i - 1], pts[parseInt(i.toString(), 10)])) {\n pts.splice(i, 1);\n }\n else if (Point.findAngle(pts[i - 1], pts[parseInt(i.toString(), 10)]) === Point.findAngle(pts[parseInt(i.toString(), 10)], pts[i + 1])) {\n pts.splice(i, 1);\n }\n else {\n i++;\n }\n }\n return pts;\n };\n /* tslint:disable */\n LineDistribution.prototype.resetConnectorPoints = function (edge, diagram) {\n var obstacleCollection = 'obstaclePointCollection';\n if (edge.segments[0].points\n && edge.segments[0].points.length > 0 && edge[\"\" + obstacleCollection]) {\n var connector = edge;\n connector.sourcePoint = edge[\"\" + obstacleCollection][0];\n connector.targetPoint = edge[\"\" + obstacleCollection][edge[\"\" + obstacleCollection].length - 1];\n var segments = void 0;\n segments = [];\n for (var i = 0; i < edge[\"\" + obstacleCollection].length - 1; i++) {\n var point1 = edge[\"\" + obstacleCollection][parseInt(i.toString(), 10)];\n var point2 = edge[\"\" + obstacleCollection][i + 1];\n var length_1 = findDistance(point1, point2);\n var direction = getConnectorDirection(point1, point2);\n if (i === edge[\"\" + obstacleCollection].length - 2) {\n if ((diagram.layout.orientation === 'RightToLeft' && direction === 'Left')\n || (diagram.layout.orientation === 'LeftToRight' && direction === 'Right')\n || (diagram.layout.orientation === 'TopToBottom' && direction === 'Bottom')\n || (diagram.layout.orientation === 'BottomToTop' && direction === 'Top')) {\n length_1 = length_1 / 2;\n }\n }\n /* tslint:enable */\n var tempSegment = new OrthogonalSegment(edge, 'segments', { type: 'Orthogonal' }, true);\n tempSegment.length = length_1;\n tempSegment.direction = direction;\n segments.push(tempSegment);\n }\n connector.segments = segments;\n connector.type = 'Orthogonal';\n diagram.connectorPropertyChange(connector, {}, {\n type: 'Orthogonal',\n segments: connector.segments\n });\n }\n };\n LineDistribution.prototype.getObstacleEndPoint = function (segment) {\n if (segment.orientation === 'horizontal') {\n if (segment.direction === 'Left') {\n return this.getPointvalue(segment.start, segment.coord);\n }\n return this.getPointvalue(segment.end, segment.coord);\n }\n if (segment.direction === 'Top') {\n return this.getPointvalue(segment.coord, segment.start);\n }\n return this.getPointvalue(segment.coord, segment.end);\n };\n LineDistribution.prototype.getObstacleStartPoint = function (segment) {\n if (segment.orientation === 'horizontal') {\n if (segment.direction === 'Left') {\n return this.getPointvalue(segment.end, segment.coord);\n }\n return this.getPointvalue(segment.start, segment.coord);\n }\n if (segment.direction === 'Top') {\n return this.getPointvalue(segment.coord, segment.end);\n }\n return this.getPointvalue(segment.coord, segment.start);\n };\n LineDistribution.prototype.updateSegmentRow = function (obstacleSegments, segmentRow) {\n var k = 0;\n if (!(segmentRow.length > 0)) {\n segmentRow[0] = [];\n }\n for (var i = 0; i < obstacleSegments.length; i++) {\n var obstacleSegment = obstacleSegments[parseInt(i.toString(), 10)];\n while (k < segmentRow.length) {\n if (k === segmentRow.length - 1) {\n segmentRow[k + 1] = [];\n }\n if (!(segmentRow[parseInt(k.toString(), 10)].length > 0)\n || segmentRow[parseInt(k.toString(), 10)][segmentRow[parseInt(k.toString(), 10)].length - 1].end < obstacleSegment.start) {\n segmentRow[parseInt(k.toString(), 10)].push(obstacleSegment);\n break;\n }\n k++;\n }\n }\n return segmentRow;\n };\n LineDistribution.prototype.portOffsetCalculation = function (port, length, direction, i) {\n if (direction === 'Top') {\n port.offset = { x: (i + 1) * (1.0 / (length + 1)), y: 0 };\n }\n if (direction === 'Bottom') {\n port.offset = { x: (i + 1) * (1.0 / (length + 1)), y: 1 };\n }\n if (direction === 'Left') {\n port.offset = { x: 0, y: (i + 1) * (1.0 / (length + 1)) };\n }\n if (direction === 'Right') {\n port.offset = { x: 1, y: (i + 1) * (1.0 / (length + 1)) };\n }\n };\n LineDistribution.prototype.addDynamicPortandDistrrbuteLine = function (layout, node, sourceDirection, targetDirection, diagram) {\n if ((node.ports && node.ports.length > 0)) {\n var port = node.ports;\n diagram.removePorts(node, port);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var existingPorts = node.ports;\n var outConnectors = node.outEdges;\n var inConnectors = node.inEdges;\n this.initPort(outConnectors, diagram, node, sourceDirection, false);\n this.initPort(inConnectors, diagram, node, targetDirection, true);\n };\n /* tslint:disable */\n LineDistribution.prototype.initPort = function (connectors, diagram, node, targetDirection, inConnectors) {\n var obstacleCollection = 'obstaclePointCollection';\n var objects = connectors;\n // EJ2-61463 - Added below code to sort the objects based on the source node offset position\n if (connectors.length > 1 && inConnectors) {\n connectors = this.sortObjects(objects, inConnectors, diagram);\n }\n for (var i = 0; i <= connectors.length - 1; i++) {\n var internalConnector = diagram.nameTable[connectors[parseInt(i.toString(), 10)]];\n internalConnector[\"\" + obstacleCollection] = [];\n var newPort = findPort(node, inConnectors ? internalConnector.targetPortID : internalConnector.sourcePortID);\n var direction = targetDirection;\n if (newPort === undefined) {\n newPort = new PointPort(node, 'ports', '', true);\n newPort.id = randomId() + '_LineDistribution';\n if (inConnectors) {\n internalConnector.targetPortID = newPort.id;\n }\n else {\n internalConnector.sourcePortID = newPort.id;\n }\n }\n this.portOffsetCalculation(newPort, connectors.length, direction, i);\n node.ports.push(newPort);\n var portWrapper = node.initPortWrapper(node.ports[node.ports.length - 1]);\n node.wrapper.children.push(portWrapper);\n // EJ2-66867 - Exception occurs on calling doLayout while injecting Linerouting module\n // nodes portWrapper bouds is updated below\n node.wrapper.measure(new Size(node.width, node.height), node.id);\n node.wrapper.arrange(node.wrapper.desiredSize);\n diagram.connectorPropertyChange(internalConnector, inConnectors ? { targetPortID: '' } : { sourcePortID: '' }, \n // eslint-disable-next-line\n inConnectors ? { targetPortID: newPort.id } : { sourcePortID: newPort.id });\n }\n };\n /* tslint:enable */\n //EJ2-61463 - Method used to sort the connectors based on the source node offset position\n LineDistribution.prototype.sortObjects = function (objects, inConnectors, diagram) {\n var temp;\n for (var i = 0; i < objects.length; i++) {\n for (var j = i + 1; j < objects.length; j++) {\n var internalConnector = diagram.nameTable[objects[parseInt(i.toString(), 10)]];\n var internalConnector2 = diagram.nameTable[objects[parseInt(j.toString(), 10)]];\n if (inConnectors) {\n var childNode = diagram.nameTable[internalConnector.sourceID];\n var childNode2 = diagram.nameTable[internalConnector2.sourceID];\n // For LeftToRight and RightToLeft we want to consider source node offsetY position\n if (diagram.layout.orientation === 'LeftToRight' || diagram.layout.orientation === 'RightToLeft') {\n if (childNode.offsetY > childNode2.offsetY) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n else {\n // For TopToBottom or BottomToTop means we want to consider source node offsetX position\n if (childNode.offsetX > childNode2.offsetX) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n }\n }\n return objects;\n };\n LineDistribution.prototype.shiftMatrixCells = function (value, startingCell, shiftChildren, parentCell, matrixModel) {\n if (!(value === 0)) {\n var matrix = matrixModel.matrix;\n var matrixRow = matrix[startingCell.level].value;\n var index = matrixRow.indexOf(startingCell);\n for (var i = index; i < matrixRow.length; i++) {\n matrixRow[parseInt(i.toString(), 10)].offset += value;\n }\n if (shiftChildren) {\n if (startingCell.visitedChildren.length > 0) {\n this.shiftMatrixCells(value, startingCell.visitedChildren[0], true, startingCell, matrixModel);\n }\n else {\n var i = 1;\n var nextSibilingwithChild = null;\n while (index + i < matrixRow.length) {\n var nextCell = matrixRow[index + i];\n if (parentCell != null && this.containsValue(nextCell.visitedParents, parentCell)) {\n if (nextCell.visitedChildren.length > 0) {\n nextSibilingwithChild = nextCell;\n }\n else {\n i++;\n continue;\n }\n }\n break;\n }\n if (nextSibilingwithChild != null) {\n this.shiftMatrixCells(value, nextSibilingwithChild.visitedChildren[0], true, nextSibilingwithChild, matrixModel);\n }\n }\n }\n }\n };\n LineDistribution.prototype.arrangeMatrix = function (cell, parent, matrixModel) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight'\n || layoutSettings.orientation === 'RightToLeft';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var matrix = matrixModel.matrix;\n var matrixRow = matrix[cell.level].value;\n var matrixIndex = matrixRow.indexOf(cell);\n if (cell.visitedParents.length > 0) {\n if (cell.visitedParents.length === 1) {\n cell.initialOffset = cell.offset;\n }\n if (matrixIndex + 1 < matrixRow.length) {\n var nextCell = matrixRow[matrixIndex + 1];\n if (nextCell.visitedParents.length > 0) {\n if (!this.containsValue(cell.visitedParents, parent)) {\n cell.visitedParents.push(parent);\n parent.ignoredChildren.push(cell);\n return;\n }\n }\n }\n }\n if (!(cell.children.length > 0)) {\n var validOffset = cell.offset;\n if (matrixIndex > 0) {\n var prevCell = matrixRow[matrixIndex - 1];\n validOffset = prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n }\n this.shiftMatrixCells(validOffset - cell.offset, cell, false, null, matrixModel);\n }\n else {\n for (var i = 0; i < cell.children.length; i++) {\n var matrixCellChild = cell.children[parseInt(i.toString(), 10)];\n if (!this.containsValue(cell.visitedChildren, matrixCellChild)) {\n this.arrangeMatrix(matrixCellChild, cell, matrixModel);\n cell.visitedChildren.push(matrixCellChild);\n }\n }\n if (cell.visitedChildren.length > 0) {\n var children = cell.visitedChildren.slice();\n for (var i = 0; i < cell.ignoredChildren.length; i++) {\n //let cellIgnoredChild: MatrixCellGroupObject = cell.ignoredChildren[i];\n children.splice(0, 1);\n cell.visitedChildren.splice(0, 1);\n }\n if (children.length > 0) {\n var firstChild = cell.visitedChildren[0];\n var lastChild = cell.visitedChildren[cell.visitedChildren.length - 1];\n var x1 = firstChild.offset - (firstChild.size / 2);\n var x2 = lastChild.offset + (lastChild.size / 2);\n var newoffset = (x1 + x2) / 2;\n if (newoffset < cell.offset) {\n this.shiftMatrixCells(cell.offset - newoffset, firstChild, true, cell, matrixModel);\n }\n else if (newoffset > cell.offset) {\n this.shiftMatrixCells(newoffset - cell.offset, cell, false, null, matrixModel);\n }\n }\n }\n }\n if (!this.containsValue(cell.visitedParents, parent)) {\n cell.visitedParents.push(parent);\n }\n };\n LineDistribution.prototype.getFixedTerminalPoint = function () {\n var pt = null;\n return pt;\n };\n LineDistribution.prototype.setAbsoluteTerminalPoint = function (point, isSource, edge) {\n var absolutePoints = 'absolutePoints';\n if (isSource) {\n if (edge[\"\" + absolutePoints] == null) {\n edge[\"\" + absolutePoints] = [];\n }\n if (edge[\"\" + absolutePoints].length === 0) {\n edge[\"\" + absolutePoints].push(point);\n }\n else {\n edge[\"\" + absolutePoints][0] = point;\n }\n }\n else {\n if (edge[\"\" + absolutePoints] == null) {\n edge[\"\" + absolutePoints] = [];\n edge[\"\" + absolutePoints].push(null);\n edge[\"\" + absolutePoints].push(point);\n }\n else if (edge[\"\" + absolutePoints].length === 1) {\n edge[\"\" + absolutePoints].push(point);\n }\n else {\n edge[\"\" + absolutePoints][edge[\"\" + absolutePoints].length - 1] = point;\n }\n }\n };\n LineDistribution.prototype.updateFixedTerminalPoint = function (edge, source) {\n this.setAbsoluteTerminalPoint(this.getFixedTerminalPoint(), source, edge);\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n LineDistribution.prototype.updateFixedTerminalPoints = function (connectors, diagram) {\n this.updateFixedTerminalPoint(connectors, true);\n this.updateFixedTerminalPoint(connectors, false);\n };\n LineDistribution.prototype.updatePoints = function (edge, points) {\n var absolutePoints = 'absolutePoints';\n if (edge != null) {\n var pts = [];\n pts.push(edge[\"\" + absolutePoints][0]);\n for (var i = 0; i < points.length; i++) {\n if (points[parseInt(i.toString(), 10)] != null) {\n var pt = points[parseInt(i.toString(), 10)];\n pts.push(pt);\n }\n }\n var tmp = edge[\"\" + absolutePoints];\n pts.push(tmp[tmp.length - 1]);\n edge[\"\" + absolutePoints] = pts;\n }\n };\n LineDistribution.prototype.updateFloatingTerminalPoint = function (edge, start, end, source) {\n this.setAbsoluteTerminalPoint(this.getFloatingTerminalPoint(edge, start, end, source), source, edge);\n };\n LineDistribution.prototype.getNextPoint = function (edge, opposite, source) {\n var absolutePoints = 'absolutePoints';\n var pts = edge[\"\" + absolutePoints];\n var point = null;\n if (pts != null && pts.length >= 2) {\n var count = pts.length;\n point = pts[(source) ? Math.min(1, count - 1) : Math.max(0, count - 2)];\n }\n return point;\n };\n LineDistribution.prototype.getCenterX = function (start) {\n if (start.offsetX) {\n return start.offsetX + start.width;\n }\n else {\n return start.x + start.width;\n }\n };\n LineDistribution.prototype.getCenterY = function (start) {\n if (start.offsetY) {\n return start.offsetY + start.height;\n }\n else {\n return start.y + start.height;\n }\n };\n LineDistribution.prototype.getPerimeterBounds = function (border) {\n //let newBounds: Rect;\n var newBounds = border.wrapper.outerBounds;\n return newBounds;\n };\n LineDistribution.prototype.getPerimeterFunction = function (bounds, next, orthogonal) {\n var cx = this.getCenterX(bounds);\n var cy = this.getCenterY(bounds);\n var dx = next.x - cx;\n var dy = next.y - cy;\n var alpha = Math.atan2(dy, dx);\n var point = this.getPointvalue(0, 0);\n var pi = Math.PI;\n var pi2 = Math.PI / 2;\n var beta = pi2 - alpha;\n var t = Math.atan2(bounds.height, bounds.width);\n if (alpha < -pi + t || alpha > pi - t) {\n // Left edge\n point.x = bounds.x;\n point.y = cy - bounds.width * Math.tan(alpha) / 2;\n }\n else if (alpha < -t) {\n // Top Edge\n point.y = bounds.y;\n point.x = cx - bounds.height * Math.tan(beta) / 2;\n }\n else if (alpha < t) {\n // Right Edge\n point.x = bounds.x + bounds.width;\n point.y = cy + bounds.width * Math.tan(alpha) / 2;\n }\n else {\n // Bottom Edge\n point.y = bounds.y + bounds.height;\n point.x = cx + bounds.height * Math.tan(beta) / 2;\n }\n if (orthogonal) {\n if (next.x >= bounds.x &&\n next.x <= bounds.x + bounds.width) {\n point.x = next.x;\n }\n else if (next.y >= bounds.y &&\n next.y <= bounds.y + bounds.height) {\n point.y = next.y;\n }\n if (next.x < bounds.x) {\n point.x = bounds.x;\n }\n else if (next.x > bounds.x + bounds.width) {\n point.x = bounds.x + bounds.width;\n }\n if (next.y < bounds.y) {\n point.y = bounds.y;\n }\n else if (next.y > bounds.y + bounds.height) {\n point.y = bounds.y + bounds.height;\n }\n }\n return point;\n };\n LineDistribution.prototype.getPerimeterPoint = function (terminal, next, orthogonal) {\n var point = null;\n if (terminal != null) {\n if (next != null) {\n var bounds = this.getPerimeterBounds(terminal);\n if (bounds.width > 0 || bounds.height > 0) {\n point = this.getPointvalue(next.x, next.y);\n point = this.getPerimeterFunction(bounds, point, orthogonal);\n }\n }\n }\n return point;\n };\n LineDistribution.prototype.getFloatingTerminalPoint = function (edge, start, end, source) {\n start = start;\n var next = this.getNextPoint(edge, end, source);\n var orth = 1;\n var alpha = 0;\n var pt = this.getPerimeterPoint(start, next, alpha === 0 && orth);\n return pt;\n };\n LineDistribution.prototype.updateFloatingTerminalPoints = function (state, source, target) {\n var absolutePoints = 'absolutePoints';\n var pts = state[\"\" + absolutePoints];\n var p0 = pts[0];\n var pe = pts[pts.length - 1];\n if (pe == null && target != null) {\n this.updateFloatingTerminalPoint(state, target, source, false);\n }\n if (p0 == null && source != null) {\n this.updateFloatingTerminalPoint(state, source, target, true);\n }\n };\n LineDistribution.prototype.getConnectorPoints = function (connectors, diagram) {\n var absolutePoints = 'absolutePoints';\n var geometry = 'geometry';\n this.updateFixedTerminalPoints(connectors, diagram);\n this.updatePoints(connectors, connectors[\"\" + geometry].points);\n this.updateFloatingTerminalPoints(connectors, diagram.nameTable[connectors.sourceID], diagram.nameTable[connectors.targetID]);\n connectors[\"\" + absolutePoints][0].y = connectors.sourcePoint.y;\n connectors[\"\" + absolutePoints][connectors[\"\" + absolutePoints].length - 1].y = connectors.targetPoint.y;\n };\n LineDistribution.prototype.adjustSegmentPoints = function (temppoints, points, diagram) {\n if (diagram.layout.orientation === 'TopToBottom' || diagram.layout.orientation === 'BottomToTop') {\n temppoints[0].x = points[0].x;\n temppoints[1].x = points[1].x;\n temppoints[temppoints.length - 1].x = points[points.length - 1].x;\n temppoints[temppoints.length - 2].x = points[points.length - 2].x;\n if (diagram.layout.orientation === 'TopToBottom') {\n temppoints[temppoints.length - 2].y = temppoints[temppoints.length - 1].y - diagram.layout.verticalSpacing / 2;\n temppoints[1].y = temppoints[0].y + diagram.layout.verticalSpacing / 2;\n }\n else {\n temppoints[1].y = temppoints[0].y - diagram.layout.verticalSpacing / 2;\n temppoints[temppoints.length - 2].y = temppoints[temppoints.length - 1].y + diagram.layout.verticalSpacing / 2;\n }\n temppoints[2].y = temppoints[1].y;\n temppoints[temppoints.length - 3].y = temppoints[temppoints.length - 2].y;\n }\n if (diagram.layout.orientation === 'RightToLeft' || diagram.layout.orientation === 'LeftToRight') {\n temppoints[0] = points[0];\n temppoints[1] = points[1];\n temppoints[temppoints.length - 1] = points[points.length - 1];\n temppoints[temppoints.length - 2] = points[points.length - 2];\n if (diagram.layout.orientation === 'RightToLeft') {\n temppoints[1].x = temppoints[0].x - diagram.layout.verticalSpacing / 2;\n }\n if (diagram.layout.orientation === 'LeftToRight') {\n temppoints[1].x = temppoints[0].x + diagram.layout.verticalSpacing / 2;\n }\n temppoints[2].x = temppoints[1].x;\n if (diagram.layout.orientation === 'RightToLeft') {\n temppoints[temppoints.length - 2].x = temppoints[temppoints.length - 1].x + diagram.layout.verticalSpacing / 2;\n }\n if (diagram.layout.orientation === 'LeftToRight') {\n temppoints[temppoints.length - 2].x = temppoints[temppoints.length - 1].x - diagram.layout.verticalSpacing / 2;\n }\n temppoints[temppoints.length - 3].x = temppoints[temppoints.length - 2].x;\n }\n };\n LineDistribution.prototype.updateConnectorSegmentPoints = function (temppoints, diagram) {\n if (temppoints.length > 1) {\n if ((diagram.layout.orientation === 'TopToBottom' || diagram.layout.orientation === 'BottomToTop')) {\n for (var i = 1; i < temppoints.length - 1; i = i + 2) {\n if (temppoints[parseInt(i.toString(), 10)].y !== temppoints[i + 1].y && (diagram.layout.orientation === 'TopToBottom'\n || diagram.layout.orientation === 'BottomToTop')) {\n temppoints[i + 1].y = temppoints[parseInt(i.toString(), 10)].y;\n }\n }\n }\n else {\n var check = false;\n for (var i = temppoints.length - 1; i > 1; i = i = i - 2) {\n if (diagram.layout.orientation === 'RightToLeft' || diagram.layout.orientation === 'LeftToRight') {\n if (!check) {\n temppoints[i - 1].x = temppoints[i - 2].x;\n check = true;\n }\n else {\n temppoints[i - 2].x = temppoints[i - 1].x;\n check = false;\n }\n }\n else {\n temppoints[i + 1].x = temppoints[parseInt(i.toString(), 10)].x;\n }\n }\n }\n }\n };\n LineDistribution.prototype.updateConnectorSegmentPoint = function (connector, diagram) {\n var absolutePoints = 'absolutePoints';\n var segments = [];\n for (var i = 0; i < connector[\"\" + absolutePoints].length - 1; i++) {\n var point1 = connector[\"\" + absolutePoints][parseInt(i.toString(), 10)];\n var point2 = connector[\"\" + absolutePoints][i + 1];\n var length_2 = findDistance(point1, point2);\n var direction = getConnectorDirection(point1, point2);\n if (i === connector[\"\" + absolutePoints].length - 2) {\n if ((diagram.layout.orientation === 'TopToBottom' && direction === 'Bottom')\n || (diagram.layout.orientation === 'RightToLeft' && direction === 'Left')\n || (diagram.layout.orientation === 'LeftToRight' && direction === 'Right')\n || (diagram.layout.orientation === 'BottomToTop' && direction === 'Top')) {\n length_2 = length_2 / 2;\n }\n }\n var tempSegment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n tempSegment.length = length_2;\n tempSegment.direction = direction;\n segments.push(tempSegment);\n }\n connector.segments = segments;\n connector.type = 'Orthogonal';\n diagram.connectorPropertyChange(connector, {}, {\n type: 'Orthogonal',\n segments: connector.segments\n });\n };\n /** @private */\n LineDistribution.prototype.resetConnectorSegments = function (connector) {\n var segements = connector.segments;\n for (var i = segements.length; i > 1; i--) {\n segements.splice(i - 1, 1);\n }\n };\n /* tslint:disable */\n /** @private */\n LineDistribution.prototype.resetRoutingSegments = function (connector, diagram, points) {\n if (connector['levelSkip']) {\n var absolutePoints = 'absolutePoints';\n //let temppoints: PointModel[];\n this.getConnectorPoints(connector, diagram);\n var temppoints = connector[\"\" + absolutePoints];\n this.updateConnectorSegmentPoints(temppoints, diagram);\n this.adjustSegmentPoints(temppoints, points, diagram);\n this.updateConnectorSegmentPoint(connector, diagram);\n }\n };\n /* tslint:enable */\n /** @private */\n LineDistribution.prototype.arrangeElements = function (matrixModel, layout) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal;\n if (layout.orientation === 'LeftToRight' || layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n else {\n isHorizontal = false;\n }\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n //let spacingInverse: number = !isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n // Need to group element before\n this.groupLayoutCells(matrixModel);\n this.createMatrixCells(matrixModel);\n for (var j = 0; j < matrixModel.matrix.length; j++) {\n var matrixKey = matrixModel.matrix[parseInt(j.toString(), 10)].key;\n var matrixrow = matrixModel.matrix[parseInt(matrixKey.toString(), 10)].value;\n for (var i = 1; i < matrixrow.length; i++) {\n var cell = matrixrow[parseInt(i.toString(), 10)];\n var prevCell = matrixrow[i - 1];\n cell.offset += prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n }\n }\n for (var j = 0; j < matrixModel.matrix[0].value.length; j++) {\n var root = matrixModel.matrix[0].value[parseInt(j.toString(), 10)];\n this.arrangeMatrix(root, null, matrixModel);\n }\n for (var k = 0; k < matrixModel.matrix.length; k++) {\n var row = matrixModel.matrix[parseInt(k.toString(), 10)].value;\n for (var i = 0; i < row.length; i++) {\n var cell = row[parseInt(i.toString(), 10)];\n if (cell.visitedParents.length > 1) {\n var firstParent = cell.visitedParents[0];\n var lastParent = cell.visitedParents[cell.visitedParents.length - 1];\n var firstVertexParent = this.findParentVertexCellGroup(firstParent);\n var lastVertexParent = this.findParentVertexCellGroup(lastParent);\n if (firstParent !== firstVertexParent && firstVertexParent.offset < firstParent.offset) {\n firstParent = firstVertexParent;\n }\n if (lastParent !== lastVertexParent && lastVertexParent.offset > lastParent.offset) {\n lastParent = firstVertexParent;\n }\n var newoffset = (firstParent.offset + lastParent.offset) / 2;\n var availOffsetMin = cell.initialOffset;\n var availOffsetMax = cell.offset;\n if (!(availOffsetMax === availOffsetMin)) {\n if (newoffset >= availOffsetMin && newoffset <= availOffsetMax) {\n this.translateMatrixCells(newoffset - cell.offset, cell);\n }\n else if (newoffset < availOffsetMin) {\n this.translateMatrixCells(availOffsetMin - cell.offset, cell);\n }\n }\n }\n }\n }\n this.setXYforMatrixCell(matrixModel);\n };\n LineDistribution.prototype.findParentVertexCellGroup = function (cell) {\n if (cell.cells[0]) {\n return cell;\n }\n if (cell.parents.length > 0) {\n return this.findParentVertexCellGroup(cell.parents[0]);\n }\n return cell;\n };\n LineDistribution.prototype.setXYforMatrixCell = function (matrixModel) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight'\n || layoutSettings.orientation === 'RightToLeft';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n for (var i = 0; i < matrixModel.matrix.length; i++) {\n var matrixrow1 = matrixModel.matrix[parseInt(i.toString(), 10)].value;\n for (var j = 0; j < matrixrow1.length; j++) {\n var matrixCell = matrixrow1[parseInt(j.toString(), 10)];\n var start = matrixCell.offset - (matrixCell.size / 2);\n for (var k = 0; k < matrixCell.cells.length; k++) {\n var cell = matrixCell.cells[parseInt(k.toString(), 10)];\n var type = this.getType(cell.type);\n if (type === 'internalVertex') {\n var internalVertex = cell;\n var width = internalVertex.cell.geometry.width;\n var height = internalVertex.cell.geometry.height;\n if (isHorizontal) {\n internalVertex.cell.geometry = new Rect(matrixModel.rowOffset[matrixCell.level] - (width / 2), start, width, height);\n }\n else {\n internalVertex.cell.geometry = new Rect(start, matrixModel.rowOffset[matrixCell.level] - (height / 2), width, height);\n }\n start += (isHorizontal ? height : width) + spacing;\n }\n else if (type === 'internalEdge') {\n var internalEdges = cell;\n var parent_1 = matrixCell.visitedParents[0];\n var isContainSibilingVertex = false;\n if (parent_1) {\n for (var l = 0; l < parent_1.visitedChildren.length; l++) {\n var children = parent_1.visitedChildren[parseInt(l.toString(), 10)];\n var cells = [];\n for (var m = 0; m < children.cells.length; m++) {\n var cell_1 = children.cells[parseInt(m.toString(), 10)];\n var type_1 = this.getType(cell_1.type);\n if (type_1 === 'internalVertex') {\n cells.push(cell_1);\n }\n }\n if (cells.length > 0) {\n isContainSibilingVertex = true;\n break;\n }\n }\n }\n // Need to updated line width\n var lineWidth = 1;\n var edgeSpacing = 5;\n for (var m = 0; m < internalEdges.edges.length; m++) {\n var internalConnector = internalEdges.edges[parseInt(m.toString(), 10)];\n var pt = this.getPointvalue(start + (lineWidth / 2.0), matrixModel.rowOffset[matrixCell.level]);\n if (isHorizontal) {\n pt = this.getPointvalue(matrixModel.rowOffset[matrixCell.level], start + (lineWidth / 2.0));\n }\n if (this.containsValue(this.getEdgeMapper(), internalConnector)) {\n var key = void 0;\n for (var l = 0; l < this.getEdgeMapper().length; l++) {\n if ((this.getEdgeMapper())[parseInt(l.toString(), 10)].key === internalConnector) {\n key = l;\n break;\n }\n }\n (this.getEdgeMapper())[parseInt(key.toString(), 10)].value.push(pt);\n }\n start += lineWidth + edgeSpacing;\n }\n start += spacing;\n }\n }\n }\n }\n };\n LineDistribution.prototype.getEdgeMapper = function () {\n return this.edgeMapper;\n };\n /** @private */\n LineDistribution.prototype.setEdgeMapper = function (value) {\n this.edgeMapper.push(value);\n };\n LineDistribution.prototype.translateMatrixCells = function (value, cell) {\n if (!(value === 0)) {\n cell.offset += value;\n if (cell.visitedChildren.length > 0) {\n for (var i = 0; i < cell.visitedChildren.length; i++) {\n var cellVisitedChild = cell.visitedChildren[parseInt(i.toString(), 10)];\n this.translateMatrixCells(value, cellVisitedChild);\n }\n }\n }\n };\n LineDistribution.prototype.groupLayoutCells = function (matrixModel) {\n var ranks = matrixModel.model.ranks;\n for (var j = ranks.length - 1; j >= 0; j--) {\n var vertices = [];\n for (var v = 0; v < ranks[parseInt(j.toString(), 10)].length; v++) {\n var rank = ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)];\n var type = this.getType(rank.type);\n if (type === 'internalVertex') {\n vertices.push(ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)]);\n }\n }\n var edges = [];\n for (var e = 0; e < ranks[parseInt(j.toString(), 10)].length; e++) {\n var rank = ranks[parseInt(j.toString(), 10)][parseInt(e.toString(), 10)];\n var type = this.getType(rank.type);\n if (type === 'internalEdge') {\n edges.push(rank);\n }\n }\n while (vertices.length > 1) {\n var vertex1 = vertices[0];\n var parentset1 = this.selectIds(vertex1.connectsAsTarget, true);\n var childset1 = this.selectIds(vertex1.connectsAsSource, false);\n while (vertices.length > 1) {\n var vertex2 = vertices[1];\n var parentset2 = this.selectIds(vertex2.connectsAsTarget, true);\n var childset2 = this.selectIds(vertex2.connectsAsSource, false);\n var parentequals = this.compareLists(parentset1, parentset2);\n var childequals = this.compareLists(childset1, childset2);\n if (parentequals && childequals) {\n this.updateMutualSharing(vertices[0], vertex2.id);\n this.updateMutualSharing(vertices[1], vertex1.id);\n vertices.splice(1, 1);\n continue;\n }\n break;\n }\n vertices.splice(0, 1);\n }\n while (edges.length > 1) {\n var internalEdge = edges[0];\n var parentset = internalEdge.source;\n var childset = internalEdge.target;\n if (parentset.identicalSibiling != null) {\n var groupedges = [];\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[parseInt(i.toString(), 10)];\n if (edge.target === childset) {\n groupedges.push(edge);\n }\n }\n for (var i = 0; i < groupedges.length; i++) {\n var internalEdgese = groupedges[parseInt(i.toString(), 10)];\n if (this.containsValue(parentset.identicalSibiling, internalEdgese.source.id)) {\n internalEdgese.source.identicalSibiling = null;\n }\n }\n internalEdge.source.identicalSibiling = null;\n }\n edges.splice(0, 1);\n }\n }\n };\n LineDistribution.prototype.getType = function (type) {\n if (type === 'internalVertex') {\n return 'internalVertex';\n }\n else {\n return 'internalEdge';\n }\n };\n LineDistribution.prototype.selectIds = function (node, source) {\n var returnIds = [];\n for (var i = 0; i < node.length; i++) {\n var connector = node[parseInt(i.toString(), 10)];\n if (source) {\n {\n returnIds.push(connector.source.id);\n }\n }\n else {\n returnIds.push(connector.target.id);\n }\n }\n return returnIds;\n };\n LineDistribution.prototype.compareLists = function (list1, list2) {\n var newList1 = list1.slice();\n var newList2 = list2.slice();\n if (newList1.length === newList2.length) {\n if (newList1.length === 0) {\n return true;\n }\n else {\n var isSame = true;\n for (var i = 0; i < newList2.length; i++) {\n var o = newList2[parseInt(i.toString(), 10)];\n // EJ2-63944 - Nodes overlapping in Complex hierarchical tree layout in linear arrangement.\n if (newList1.indexOf(o) === -1) {\n isSame = false;\n break;\n }\n }\n return isSame;\n }\n }\n return false;\n };\n LineDistribution.prototype.updateMutualSharing = function (cell, id) {\n if (cell.identicalSibiling != null) {\n cell.identicalSibiling.push(id);\n }\n else {\n cell.identicalSibiling = [];\n cell.identicalSibiling.push(id);\n }\n };\n LineDistribution.prototype.matrixCellGroup = function (options) {\n options.level = options.level;\n options.parents = options.parents;\n options.children = options.children;\n options.visitedChildren = options.visitedChildren;\n options.visitedParents = options.visitedParents;\n options.ignoredChildren = options.ignoredChildren;\n options.cells = options.cells;\n options.offset = options.offset;\n options.initialOffset = options.initialOffset;\n return options;\n };\n LineDistribution.prototype.getPointvalue = function (x, y) {\n return { 'x': Number(x) || 0, 'y': Number(y) || 0 };\n };\n LineDistribution.prototype.containsValue = function (list, keyValue) {\n for (var i = 0; i < list.length; i++) {\n if (list[parseInt(i.toString(), 10)].key === keyValue || list[parseInt(i.toString(), 10)] === keyValue) {\n return true;\n }\n }\n return false;\n };\n /* tslint:disable */\n LineDistribution.prototype.createMatrixCells = function (matrixModel) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight'\n || layoutSettings.orientation === 'RightToLeft';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var spacingInverse = !isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var ranks = matrixModel.model.ranks;\n var matrixCellMapper = [];\n var rowoffset = -spacingInverse;\n for (var j = ranks.length - 1; j >= 0; j--) {\n var maxDimension = 0.0;\n var index = (ranks.length - 1) - j;\n var rank = ranks[parseInt(j.toString(), 10)].slice(); //.ToList();\n // Creating new row and adding it to matrix\n var matrixRow = [];\n matrixModel.matrix.push({ key: index, value: matrixRow });\n // Creating new row mapper\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var tempMatrixRow = [];\n matrixCellMapper.push({ index: index, value: tempMatrixRow });\n while (rank.length > 0) //.Any())\n {\n var layoutCell = rank[0];\n // eslint-disable-next-line max-len\n var matrixCell = this.matrixCellGroup({ level: index, parents: [], children: [], visitedParents: [], visitedChildren: [], ignoredChildren: [], cells: [], size: 0, offset: 0, initialOffset: 0 });\n matrixRow.push(matrixCell);\n var type = this.getType(layoutCell.type);\n if (type === 'internalVertex') {\n matrixCell.cells.push(layoutCell);\n if (layoutCell.identicalSibiling != null) {\n for (var i = 0; i < rank.length; i++) {\n var internalVertex = rank[parseInt(i.toString(), 10)];\n var type_2 = this.getType(internalVertex.type);\n if (type_2 === 'internalVertex' && this.containsValue(layoutCell.identicalSibiling, internalVertex.id)) {\n matrixCell.cells.push(internalVertex);\n if (matrixCell.cells.length > layoutCell.identicalSibiling.length) {\n break;\n }\n }\n }\n }\n for (var i = 0; i < matrixCell.cells.length; i++) {\n var internalVertex = matrixCell.cells[parseInt(i.toString(), 10)];\n var type_3 = this.getType(internalVertex.type);\n if (type_3 === 'internalVertex') {\n var geometry = internalVertex.cell.geometry;\n matrixCell.size += isHorizontal ? geometry.height : geometry.width;\n maxDimension = Math.max(maxDimension, !isHorizontal ? geometry.height : geometry.width);\n tempMatrixRow.push({ key: internalVertex.id, value: matrixCell });\n if (internalVertex.connectsAsTarget.length > 0) {\n for (var k = 0; k < internalVertex.connectsAsTarget.length; k++) {\n var internalEdgese = internalVertex.connectsAsTarget[parseInt(k.toString(), 10)];\n var key = null;\n if (this.containsValue(matrixCellMapper[index - 1].value, internalEdgese.ids)) {\n key = internalEdgese.ids;\n }\n else if (this.containsValue(matrixCellMapper[index - 1].value, internalEdgese.source.id)) {\n key = internalEdgese.source.id;\n }\n if (key != null) {\n var parentcellValue = matrixCellMapper[index - 1].value;\n var parentMartixCell = void 0;\n for (var v = 0; v < parentcellValue.length; v++) {\n if (parentcellValue[parseInt(v.toString(), 10)].key === key) {\n parentMartixCell = parentcellValue[parseInt(v.toString(), 10)].value;\n break;\n }\n }\n if (!this.containsValue(matrixCell.parents, parentMartixCell)) {\n matrixCell.parents.push(parentMartixCell);\n }\n if (!this.containsValue(parentMartixCell.children, matrixCell)) {\n parentMartixCell.children.push(matrixCell);\n }\n }\n }\n }\n rank.reverse();\n rank.pop();\n rank.reverse();\n }\n }\n matrixCell.size += (matrixCell.cells.length - 1) * spacing;\n }\n else if (type === 'internalEdge') {\n matrixCell.cells.push(layoutCell);\n for (var i = 0; i < matrixCell.cells.length; i++) {\n var internalEdge = matrixCell.cells[parseInt(i.toString(), 10)];\n var type1 = this.getType(internalEdge.type);\n if (type1 === 'internalEdge' && internalEdge.edges != null) {\n // need to spacing based on its source and target Node\n var edgeSpacing = 5;\n var cellSize = -edgeSpacing;\n for (var k = 0; k < internalEdge.edges.length; k++) {\n //const internalConnector = internalEdge.edges[k];\n // need to summ up the line width\n cellSize += 1 + edgeSpacing;\n }\n matrixCell.size += cellSize;\n }\n tempMatrixRow.push({ key: internalEdge.ids, value: matrixCell });\n var key = null;\n if (this.containsValue(matrixCellMapper[index - 1].value, internalEdge.ids)) {\n key = internalEdge.ids;\n }\n else if (this.containsValue(matrixCellMapper[index - 1].value, internalEdge.source.id)) {\n key = internalEdge.source.id;\n }\n if (key != null) {\n var parentcell = matrixCellMapper[index - 1].value;\n var parentMartixCell = void 0;\n for (var v = 0; v < parentcell.length; v++) {\n if (parentcell[parseInt(v.toString(), 10)].key === key) {\n parentMartixCell = parentcell[parseInt(v.toString(), 10)].value;\n break;\n }\n }\n if (!this.containsValue(matrixCell.parents, parentMartixCell)) {\n matrixCell.parents.push(parentMartixCell);\n }\n if (!this.containsValue(parentMartixCell.children, matrixCell)) {\n parentMartixCell.children.push(matrixCell);\n }\n }\n rank.reverse();\n rank.pop();\n rank.reverse();\n }\n matrixCell.size += (matrixCell.cells.length - 1) * spacing;\n }\n }\n matrixModel.rowOffset.push(rowoffset + (maxDimension / 2) + spacingInverse);\n rowoffset += maxDimension + spacingInverse;\n }\n };\n /* eslint-disable */\n /** @private */\n LineDistribution.prototype.updateLayout = function (viewPort, modelBounds, layoutProp, layout, nodeWithMultiEdges, nameTable) {\n {\n var trnsX = ((viewPort.x - modelBounds.width) / 2) - modelBounds.x;\n var trnsY = ((viewPort.y - modelBounds.height) / 2) - modelBounds.y;\n trnsX = Math.round(trnsX);\n trnsY = Math.round(trnsY);\n var modifiedConnectors = [];\n var transModelBounds = new Rect(modelBounds.x + trnsX, modelBounds.y + trnsY, modelBounds.width, modelBounds.height);\n var margin = layoutProp.margin;\n var isHorizontal = layout.orientation === 'RightToLeft' || layout.orientation === 'LeftToRight';\n var inversespacing = !isHorizontal ? layout.verticalSpacing : layout.horizontalSpacing;\n for (var i = 0; i < nodeWithMultiEdges.length; i++) {\n var node = nodeWithMultiEdges[i];\n if (node.outEdges != null && node.outEdges.length > 0) {\n var count = node.outEdges.length;\n for (var j = 0; j < count; j++) {\n var internalConnector = nameTable[node.outEdges[j]];\n internalConnector['pointCollection'] = [];\n if (count > 1) {\n var segmentsize = inversespacing / 2.0;\n var intermediatePoint = null;\n var key = void 0;\n var edgeMapper = this.getEdgeMapper();\n for (var k = 0; k < edgeMapper.length; k++) {\n if (edgeMapper[k].key === internalConnector) {\n key = k;\n break;\n }\n }\n if (edgeMapper[key].value.length > 0) {\n var edgePoint = edgeMapper[key].value[0];\n var dxValue1 = edgePoint.x + margin.left;\n var dyValue1 = edgePoint.y + margin.top;\n var x1 = dxValue1;\n var y1 = dyValue1;\n if (layout.orientation === 'BottomToTop') {\n y1 = modelBounds.height - dyValue1;\n }\n else if (layout.orientation === 'RightToLeft') {\n x1 = modelBounds.width - dxValue1;\n }\n x1 += trnsX;\n y1 += trnsY;\n intermediatePoint = this.getPointvalue(x1, y1);\n }\n var pts = [];\n for (var i_1 = 0; i_1 < internalConnector.segments.length; i_1++) {\n var pt = internalConnector.segments[i_1].points;\n // eslint-disable-next-line guard-for-in\n for (var temp in pt) {\n pts.push(pt[temp]);\n }\n }\n // eslint-disable-next-line max-len\n pts = this.updateConnectorPoints(pts, segmentsize, intermediatePoint, transModelBounds, layout.orientation);\n for (var p = 0; p < pts.length; p++) {\n var pt = pts[p];\n internalConnector['pointCollection'].push(this.getPointvalue(pt.x, pt.y));\n }\n this.resetConnectorPoints(internalConnector, this.diagram);\n }\n modifiedConnectors.push(internalConnector);\n }\n }\n if (node.inEdges != null && node.inEdges.length > 1) {\n var count = node.inEdges.length;\n var edgeMapper = this.getEdgeMapper();\n for (var j = 0; j < count; j++) {\n var internalConnector = nameTable[node.inEdges[j]];\n if (!this.containsValue(modifiedConnectors, internalConnector)) {\n internalConnector['pointCollection'] = [];\n }\n if (count > 1) {\n var segmentsize = inversespacing / 2.0;\n var intermediatePoint = null;\n var key = void 0;\n var k = void 0;\n for (k = 0; k < edgeMapper.length; k++) {\n if (edgeMapper[k].key === internalConnector) {\n key = k;\n break;\n }\n }\n if (edgeMapper[key].value.length > 0\n && !this.containsValue(modifiedConnectors, internalConnector)) {\n var edgePt = edgeMapper[k].value[0];\n var dx1 = edgePt.x + margin.left;\n var dy1 = edgePt.y + margin.top;\n // eslint-disable-next-line one-var\n var x1 = dx1, y1 = dy1;\n if (layout.orientation === 'BottomToTop') {\n y1 = modelBounds.height - dy1;\n }\n else if (layout.orientation === 'RightToLeft') {\n x1 = modelBounds.width - dx1;\n }\n x1 += trnsX;\n y1 += trnsY;\n intermediatePoint = this.getPointvalue(x1, y1);\n }\n var pts = [];\n for (var p = 0; p < internalConnector.segments.length; p++) {\n var pt = internalConnector.segments[p].points;\n // eslint-disable-next-line guard-for-in\n for (var temp in pt) {\n pts.push(pt[temp]);\n }\n }\n pts.reverse();\n // eslint-disable-next-line\n pts = this.updateConnectorPoints(pts, segmentsize, intermediatePoint, transModelBounds, layoutProp.orientation);\n pts.reverse();\n internalConnector['pointCollection'] = [];\n for (var p = 0; p < pts.length; p++) {\n var pt = pts[p];\n internalConnector['pointCollection'].push(this.getPointvalue(pt.x, pt.y));\n }\n this.resetConnectorPoints(internalConnector, this.diagram);\n }\n }\n }\n }\n }\n };\n return LineDistribution;\n}());\nexport { LineDistribution };\n","/**\n * Connects diagram objects with layout algorithm\n */\nvar ComplexHierarchicalTree = /** @class */ (function () {\n /**\n * Constructor for the hierarchical tree layout module\n *\n * @private\n */\n function ComplexHierarchicalTree() {\n //constructs the layout module\n }\n /**\n * To destroy the hierarchical tree module\n *\n * @returns {void}\n * @private\n */\n ComplexHierarchicalTree.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n ComplexHierarchicalTree.prototype.getModuleName = function () {\n /**\n * Returns the module name of the layout\n *\n */\n return 'ComplexHierarchicalTree';\n };\n /**\n * doLayout method\\\n *\n * @returns { void } doLayout method .\\\n * @param {INode[]} nodes - provide the nodes value.\n * @param {{}} nameTable - provide the nameTable value.\n * @param {Layout} layout - provide the layout value.\n * @param {PointModel} viewPort - provide the viewPort value.\n * @param {LineDistribution} lineDistribution - provide the lineDistribution value.\n * @private\n */\n ComplexHierarchicalTree.prototype.doLayout = function (nodes, nameTable, layout, viewPort, lineDistribution) {\n new HierarchicalLayoutUtil().doLayout(nodes, nameTable, layout, viewPort, lineDistribution);\n };\n ComplexHierarchicalTree.prototype.getLayoutNodesCollection = function (nodes) {\n var nodesCollection = [];\n var node;\n var parentId = 'parentId';\n var processId = 'processId';\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if ((node.inEdges.length + node.outEdges.length > 0) && !node[\"\" + parentId] && !node[\"\" + processId]) {\n nodesCollection.push(node);\n }\n }\n return nodesCollection;\n };\n return ComplexHierarchicalTree;\n}());\nexport { ComplexHierarchicalTree };\n/**\n * Utility that arranges the nodes in hierarchical structure\n */\nvar HierarchicalLayoutUtil = /** @class */ (function () {\n function HierarchicalLayoutUtil() {\n this.nameTable = {};\n this.crossReduction = new CrossReduction();\n /**\n * The preferred vertical offset between edges exiting a vertex Default is 2.\n */\n this.previousEdgeOffset = 6;\n /**\n * The preferred horizontal distance between edges exiting a vertex Default is 5.\n */\n this.previousEdgeDistance = 5;\n /**\n * Holds the collection vertices, that are equivalent to nodes to be arranged\n */\n this.jettyPositions = {};\n /**\n * Internal cache of bottom-most value of Y for each rank\n */\n this.rankBottomY = null;\n /**\n * Internal cache of bottom-most value of X for each rank\n */\n this.limitX = null;\n /**\n * Internal cache of top-most values of Y for each rank\n */\n this.rankTopY = null;\n /**\n * The minimum parallelEdgeSpacing value is 12.\n */\n this.parallelEdgeSpacing = 10;\n /**\n * The minimum distance for an edge jetty from a vertex Default is 12.\n */\n this.minEdgeJetty = 12;\n }\n //Defines a vertex that is equivalent to a node object\n HierarchicalLayoutUtil.prototype.createVertex = function (node, value, x, y, width, height) {\n var geometry = { x: x, y: y, width: width, height: height };\n var vertex = {\n value: value, geometry: geometry, name: value, vertex: true,\n inEdges: node.inEdges.slice(), outEdges: node.outEdges.slice()\n };\n return vertex;\n };\n /**\n * Initializes the edges collection of the vertices\\\n *\n * @returns { IConnector[] } Initializes the edges collection of the vertices\\\n * @param {Vertex} node - provide the node value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getEdges = function (node) {\n var edges = [];\n if (node) {\n for (var i = 0; node.inEdges.length > 0 && i < node.inEdges.length; i++) {\n edges.push(this.nameTable[node.inEdges[parseInt(i.toString(), 10)]]);\n }\n for (var i = 0; node.outEdges.length > 0 && i < node.outEdges.length; i++) {\n edges.push(this.nameTable[node.outEdges[parseInt(i.toString(), 10)]]);\n }\n }\n return edges;\n };\n //Finds the root nodes of the layout\n HierarchicalLayoutUtil.prototype.findRoots = function (vertices) {\n var roots = [];\n var best = null;\n var maxDiff = -100000;\n for (var _i = 0, _a = Object.keys(vertices); _i < _a.length; _i++) {\n var i = _a[_i];\n var cell = vertices[\"\" + i];\n var conns = this.getEdges(cell);\n var outEdges = 0;\n var inEdges = 0;\n for (var k = 0; k < conns.length; k++) {\n var src = this.getVisibleTerminal(conns[parseInt(k.toString(), 10)], true);\n if (src.name === cell.name) {\n outEdges++;\n }\n else {\n inEdges++;\n }\n }\n if (inEdges === 0 && outEdges > 0) {\n roots.push(cell);\n }\n var diff = outEdges - inEdges;\n if (diff > maxDiff) {\n maxDiff = diff;\n best = cell;\n }\n }\n if (roots.length === 0 && best != null) {\n roots.push(best);\n }\n return roots;\n };\n /**\n * Returns the source/target vertex of the given connector \\\n *\n * @returns { Vertex } Returns the source/target vertex of the given connector \\\n * @param {IConnector} edge - provide the node value.\n * @param {boolean} source - provide the node value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getVisibleTerminal = function (edge, source) {\n var terminalCache = this.nameTable[edge.targetID];\n if (source) {\n terminalCache = this.nameTable[edge.sourceID];\n }\n for (var i = 0; i < this.vertices.length; i++) {\n if (this.vertices[parseInt(i.toString(), 10)].name === terminalCache.id) {\n return this.vertices[parseInt(i.toString(), 10)];\n }\n }\n return null;\n };\n /**\n * Traverses each sub tree, ensures there is no cycle in traversing \\\n *\n * @returns { {} } Traverses each sub tree, ensures there is no cycle in traversing .\\\n * @param {Vertex} vertex - provide the vertex value.\n * @param {boolean} directed - provide the directed value.\n * @param {IConnector} edge - provide the edge value.\n * @param {{}} currentComp - provide the currentComp value.\n * @param {{}[]} hierarchyVertices - provide the hierarchyVertices value.\n * @param {{}} filledVertices - provide the filledVertices value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.traverse = function (vertex, directed, edge, currentComp, hierarchyVertices, filledVertices) {\n if (vertex != null) {\n var vertexID = vertex.name;\n if ((filledVertices == null ? true : filledVertices[\"\" + vertexID] != null)) {\n if (currentComp[\"\" + vertexID] == null) {\n currentComp[\"\" + vertexID] = vertex;\n }\n if (filledVertices != null) {\n delete filledVertices[\"\" + vertexID];\n }\n var edges = this.getEdges(vertex);\n var edgeIsSource = [];\n for (var i = 0; i < edges.length; i++) {\n edgeIsSource[parseInt(i.toString(), 10)] = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], true) === vertex;\n }\n for (var i = 0; i < edges.length; i++) {\n if (!directed || edgeIsSource[parseInt(i.toString(), 10)]) {\n var next = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], !edgeIsSource[parseInt(i.toString(), 10)]);\n var netCount = 1;\n for (var j = 0; j < edges.length; j++) {\n if (j === i) {\n continue;\n }\n else {\n var isSource2 = edgeIsSource[parseInt(j.toString(), 10)];\n var otherTerm = this.getVisibleTerminal(edges[parseInt(j.toString(), 10)], !isSource2);\n if (otherTerm === next) {\n if (isSource2) {\n netCount++;\n }\n else {\n netCount--;\n }\n }\n }\n }\n if (netCount >= 0) {\n currentComp = this.traverse(next, directed, edges[parseInt(i.toString(), 10)], currentComp, hierarchyVertices, filledVertices);\n }\n }\n }\n }\n else {\n if (currentComp[\"\" + vertexID] == null) {\n // We've seen this vertex before, but not in the current component This component and the one it's in need to be merged\n for (var i = 0; i < hierarchyVertices.length; i++) {\n var comp = hierarchyVertices[parseInt(i.toString(), 10)];\n if (comp[\"\" + vertexID] != null) {\n for (var _i = 0, _a = Object.keys(comp); _i < _a.length; _i++) {\n var key = _a[_i];\n currentComp[\"\" + key] = comp[\"\" + key];\n }\n // Remove the current component from the hierarchy set\n hierarchyVertices.splice(i, 1);\n return currentComp;\n }\n }\n }\n }\n }\n return currentComp;\n };\n //Returns the bounds of the given vertices\n HierarchicalLayoutUtil.prototype.getModelBounds = function (nodes) {\n nodes = nodes.slice();\n var rect = null;\n var rect1 = null;\n for (var i = 0; i < nodes.length; i++) {\n rect = nodes[parseInt(i.toString(), 10)].geometry;\n if (rect1) {\n var right = Math.max(rect1.x + rect1.width, rect.x + rect.width);\n var bottom = Math.max(rect1.y + rect1.height, rect.y + rect.height);\n rect1.x = Math.min(rect1.x, rect.x);\n rect1.y = Math.min(rect1.y, rect.y);\n rect1.width = right - rect1.x;\n rect1.height = bottom - rect1.y;\n }\n else {\n rect1 = { x: rect.x, y: rect.y, width: rect.width, height: rect.height };\n }\n }\n return rect1;\n };\n /* tslint:disable */\n /**\n * Initializes the layouting process \\\n *\n * @returns { Vertex } Initializes the layouting process \\\n * @param {INode[]} nodes - provide the node value.\n * @param {{}} nameTable - provide the nameTable value.\n * @param {Layout} layoutProp - provide the layoutProp value.\n * @param {PointModel} viewPort - provide the viewPort value.\n * @param {LineDistribution} lineDistribution - provide the lineDistribution value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.doLayout = function (nodes, nameTable, layoutProp, viewPort, lineDistribution) {\n this.nameTable = nameTable;\n var canEnableRouting = layoutProp.enableRouting;\n var layout = {\n horizontalSpacing: layoutProp.horizontalSpacing, verticalSpacing: layoutProp.verticalSpacing,\n orientation: layoutProp.orientation, marginX: layoutProp.margin.left, marginY: layoutProp.margin.top,\n enableLayoutRouting: canEnableRouting\n };\n var model;\n if (lineDistribution) {\n lineDistribution.edgeMapper = [];\n }\n var nodeWithMultiEdges = [];\n this.vertices = [];\n var filledVertexSet = {};\n for (var i = 0; i < nodes.length; i++) {\n var node = this.createVertex(nodes[parseInt(i.toString(), 10)], nodes[parseInt(i.toString(), 10)].id, 0, 0, nodes[parseInt(i.toString(), 10)].actualSize.width, nodes[parseInt(i.toString(), 10)].actualSize.height);\n this.vertices.push(node);\n if (nodes[parseInt(i.toString(), 10)].inEdges.length > 0 || nodes[parseInt(i.toString(), 10)].outEdges.length > 0) {\n nodeWithMultiEdges.push(nodes[parseInt(i.toString(), 10)]);\n }\n filledVertexSet[node.name] = node;\n if (lineDistribution) {\n var outEdges = nodes[parseInt(i.toString(), 10)].outEdges.slice();\n for (var j = 0; j < outEdges.length; j++) {\n var outEdge = nameTable[outEdges[parseInt(j.toString(), 10)]];\n lineDistribution.setEdgeMapper({ key: outEdge, value: [] });\n }\n }\n }\n var hierarchyVertices = [];\n //let candidateRoots: Vertex[];\n var candidateRoots = this.findRoots(filledVertexSet);\n for (var i = 0; i < candidateRoots.length; i++) {\n var vertexSet = {};\n hierarchyVertices.push(vertexSet);\n this.traverse(candidateRoots[parseInt(i.toString(), 10)], true, null, vertexSet, hierarchyVertices, filledVertexSet);\n }\n var limit = { marginX: 0, marginY: 0 };\n var tmp = [];\n var checkLinear = false;\n var matrixModel;\n for (var i = 0; i < hierarchyVertices.length; i++) {\n var vertexSet = hierarchyVertices[parseInt(i.toString(), 10)];\n // eslint-disable-next-line\n for (var _i = 0, _a = Object.keys(vertexSet); _i < _a.length; _i++) {\n var key = _a[_i];\n tmp.push(vertexSet[\"\" + key]);\n }\n if ((layoutProp.arrangement === 'Linear' && i === hierarchyVertices.length - 1) || canEnableRouting) {\n checkLinear = true;\n }\n model = new MultiParentModel(this, tmp, candidateRoots, layout);\n this.cycleStage(model);\n this.layeringStage(model);\n if ((lineDistribution && layoutProp.connectionPointOrigin === 'DifferentPoint') || checkLinear) {\n matrixModel = this.matrixModel({ model: model, matrix: [], rowOffset: [] });\n lineDistribution.arrangeElements(matrixModel, layoutProp);\n }\n else {\n if (layoutProp.arrangement === 'Nonlinear') {\n this.crossingStage(model);\n limit = this.placementStage(model, limit.marginX, limit.marginY);\n tmp = [];\n }\n }\n }\n var modelBounds = this.getModelBounds(this.vertices);\n this.updateMargin(layoutProp, layout, modelBounds, viewPort);\n for (var i = 0; i < this.vertices.length; i++) {\n var clnode = this.vertices[parseInt(i.toString(), 10)];\n if (clnode) { //Check what is node.source/node.target - && !clnode.source && !clnode.target) {\n var dnode = this.nameTable[clnode.name];\n dnode.offsetX = 0;\n dnode.offsetY = 0;\n //initialize layout\n var dx = (clnode.geometry.x - (dnode.offsetX - (dnode.actualSize.width / 2))) + layout.marginX;\n var dy = (clnode.geometry.y - (dnode.offsetY - (dnode.actualSize.height / 2))) + layout.marginY;\n var x = dx;\n var y = dy;\n if (layout.orientation === 'BottomToTop') {\n if (canEnableRouting) {\n clnode.geometry.y = modelBounds.height - dy - dnode.actualSize.height / 2;\n }\n y = modelBounds.height - dy;\n }\n else if (layout.orientation === 'RightToLeft') {\n x = modelBounds.width - dx;\n }\n dnode.offsetX += x - dnode.offsetX;\n dnode.offsetY += y - dnode.offsetY;\n }\n }\n if (!checkLinear) {\n for (var i = 0; i < this.vertices.length; i++) {\n this.isNodeOverLap(this.nameTable[this.vertices[parseInt(i.toString(), 10)].name], layoutProp);\n }\n }\n if ((lineDistribution && layoutProp.connectionPointOrigin === 'DifferentPoint') || canEnableRouting) {\n lineDistribution.updateLayout(viewPort, modelBounds, layoutProp, layout, nodeWithMultiEdges, nameTable);\n }\n if (canEnableRouting) {\n var vertices = {};\n var matrixrow1 = void 0;\n for (var p = 0; p < matrixModel.matrix.length; p++) {\n matrixrow1 = matrixModel.matrix[parseInt(p.toString(), 10)].value;\n for (var q = 0; q < matrixrow1.length; q++) {\n var matrixCell = matrixrow1[parseInt(q.toString(), 10)];\n for (var r = 0; r < matrixCell.cells.length; r++) {\n var cell = matrixCell.cells[parseInt(r.toString(), 10)];\n var type = this.getType(cell.type);\n if (type === 'internalVertex') {\n var internalVertex = cell;\n vertices[internalVertex.id] = internalVertex;\n }\n }\n }\n }\n this.updateRankValuess(model);\n for (var i = 0, a = Object.keys(vertices); i < a.length; i++) {\n var key = a[parseInt(i.toString(), 10)];\n this.setVertexLocationValue(vertices[\"\" + key], layoutProp.orientation, modelBounds);\n }\n this.localEdgeProcessing(model, vertices);\n this.assignRankOffset(model);\n this.updateEdgeSetXYValue(model);\n var edges = this.getValues(model.edgeMapper);\n for (var i = 0; i < edges.length; i++) {\n if ((edges[parseInt(i.toString(), 10)]).x.length > 0) {\n for (var j = 0; j < (edges[parseInt(i.toString(), 10)]).x.length; j++) {\n if (layoutProp.orientation !== 'RightToLeft' && layoutProp.orientation !== 'LeftToRight') {\n (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layout.marginX;\n }\n else if (layoutProp.orientation === 'LeftToRight') {\n (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layoutProp.verticalSpacing / 2;\n }\n else {\n (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layoutProp.verticalSpacing / 2;\n }\n }\n }\n this.setEdgePosition(edges[parseInt(i.toString(), 10)], model, layout);\n }\n for (var p = 0; p < this.vertices.length; p++) {\n var clnode = this.vertices[parseInt(p.toString(), 10)];\n if (clnode.outEdges.length > 1) {\n this.updateMultiOutEdgesPoints(clnode);\n }\n }\n }\n };\n HierarchicalLayoutUtil.prototype.setEdgeXY = function (ranks, node, spacing, layer) {\n if (ranks && node.source.id) {\n var targetValue = void 0;\n var sourceValue = void 0;\n for (var i = 0; i < ranks.length; i++) {\n for (var k = 0; k < ranks[parseInt(i.toString(), 10)].length; k++) {\n if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.target.id || ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.source.id) {\n if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.target.id && targetValue === undefined) {\n targetValue = i;\n }\n if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.source.id && sourceValue === undefined) {\n sourceValue = i;\n }\n }\n }\n }\n var rankOffsetValue = void 0;\n for (var m = targetValue; m <= sourceValue; m++) {\n if (rankOffsetValue === undefined) {\n rankOffsetValue = this[m + '_RankOffset'];\n }\n if (rankOffsetValue !== undefined && rankOffsetValue < this[m + '_RankOffset']) {\n rankOffsetValue = this[m + '_RankOffset'];\n }\n }\n if (this['edges'] === undefined) {\n this['edges'] = {};\n }\n this['edges'][(node).ids[0]] = { x: node.x, y: 0 };\n var value = this.resetOffsetXValue(rankOffsetValue, spacing / 10);\n node.x[layer - node.minRank - 1] = value;\n for (var k = 0; k < (node).edges.length; k++) {\n (node).edges[parseInt(k.toString(), 10)]['levelSkip'] = true;\n }\n }\n };\n HierarchicalLayoutUtil.prototype.resetOffsetXValue = function (value, spacing) {\n for (var i = 0, a = Object.keys(this['edges']); i < a.length; i++) {\n var key = a[parseInt(i.toString(), 10)];\n var length_1 = this['edges'][\"\" + key].x;\n for (var j = 0; j < length_1.length; j++) {\n var offsetValue = void 0;\n if (this['edges'][\"\" + key].x[parseInt(j.toString(), 10)] === value) {\n offsetValue = value + spacing;\n offsetValue = this.resetOffsetXValue(offsetValue, spacing);\n return offsetValue;\n }\n }\n }\n return value;\n };\n HierarchicalLayoutUtil.prototype.setEdgePosition = function (cell, model, layout) {\n // For parallel edges we need to seperate out the points a\n // little\n var offsetX = 0;\n // Only set the edge control points once\n if (cell.temp[0] !== 101207) {\n if (cell.maxRank === undefined) {\n cell.maxRank = -1;\n }\n if (cell.minRank === undefined) {\n cell.minRank = -1;\n }\n var maxRank = cell.maxRank;\n var minRank = cell.minRank;\n if (maxRank === minRank) {\n maxRank = cell.source.maxRank;\n minRank = cell.target.minRank;\n }\n var parallelEdgeCount = 0;\n var jettys = this.jettyPositions[cell.ids[0]];\n if (cell.isReversed === undefined) {\n cell.isReversed = false;\n }\n else {\n cell.isReversed = true;\n }\n var source = cell.isReversed ? cell.target.cell : cell.source.cell;\n var layoutReversed = false;\n if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'LeftToRight') {\n if (model.layout.orientation === 'TopToBottom') {\n layoutReversed = false;\n }\n if (model.layout.orientation === 'LeftToRight') {\n if (!cell.isReversed) {\n layoutReversed = false;\n }\n else {\n layoutReversed = false;\n }\n }\n }\n else {\n if (!cell.isReversed) {\n layoutReversed = true;\n }\n }\n for (var i = 0; i < cell.edges.length; i++) {\n var realEdge = cell.edges[parseInt(i.toString(), 10)];\n var realSource = this.getVisibleTerminal(realEdge, true);\n //List oldPoints = graph.getPoints(realEdge);\n var newPoints = [];\n // Single length reversed edges end up with the jettys in the wrong\n // places. Since single length edges only have jettys, not segment\n // control points, we just say the edge isn't reversed in this section\n var reversed = cell.isReversed;\n // if(cell.isReversed===undefined){\n // reversed = false\n // }else{\n // reversed =cell.isReversed\n // }\n if (realSource !== source) {\n // The real edges include all core model edges and these can go\n // in both directions. If the source of the hierarchical model edge\n // isn't the source of the specific real edge in this iteration\n // treat if as reversed\n reversed = !reversed;\n }\n // First jetty of edge\n if (jettys != null) {\n var arrayOffset = reversed ? 2 : 0;\n var y = reversed ?\n (layoutReversed ? this.rankBottomY[parseInt(minRank.toString(), 10)] : this.rankTopY[parseInt(minRank.toString(), 10)]) :\n (layoutReversed ? this.rankTopY[parseInt(maxRank.toString(), 10)] : this.rankBottomY[parseInt(maxRank.toString(), 10)]);\n var jetty = jettys[parallelEdgeCount * 4 + 1 + arrayOffset];\n if (reversed !== layoutReversed) {\n jetty = -jetty;\n }\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n y += jetty;\n }\n var x = jettys[parallelEdgeCount * 4 + arrayOffset];\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n newPoints.push(this.getPointvalue(x, y + layout.marginY));\n }\n else {\n if (layout.orientation === 'LeftToRight') {\n newPoints.push(this.getPointvalue(y + jetty, x + layout.marginY));\n }\n else {\n newPoints.push(this.getPointvalue(y, x + layout.marginY));\n }\n }\n }\n var loopStart = cell.x.length - 1;\n var loopLimit = -1;\n var loopDelta = -1;\n var currentRank = cell.maxRank - 1;\n if (reversed) {\n loopStart = 0;\n loopLimit = cell.x.length;\n loopDelta = 1;\n currentRank = cell.minRank + 1;\n }\n // Reversed edges need the points inserted in\n // reverse order\n for (var j = loopStart; (cell.maxRank !== cell.minRank) && j !== loopLimit; j += loopDelta) {\n // The horizontal position in a vertical layout\n var positionX = cell.x[parseInt(j.toString(), 10)] + offsetX;\n // This cell.x determines the deviated points of the connectors and jetty positions\n //determine the src and targetgeo points .\n // Work out the vertical positions in a vertical layout\n // in the edge buffer channels above and below this rank\n var topChannelY = (this.rankTopY[parseInt(currentRank.toString(), 10)] + this.rankBottomY[currentRank + 1]) / 2.0;\n var bottomChannelY = (this.rankTopY[currentRank - 1] + this.rankBottomY[parseInt(currentRank.toString(), 10)]) / 2.0;\n if (reversed) {\n var tmp = topChannelY;\n topChannelY = bottomChannelY;\n bottomChannelY = tmp;\n }\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n newPoints.push(this.getPointvalue(positionX, topChannelY + layout.marginY));\n newPoints.push(this.getPointvalue(positionX, bottomChannelY + layout.marginY));\n }\n else {\n newPoints.push(this.getPointvalue(topChannelY, positionX + layout.marginY));\n newPoints.push(this.getPointvalue(bottomChannelY, positionX + layout.marginY));\n }\n this.limitX = Math.max(this.limitX, positionX);\n currentRank += loopDelta;\n }\n // Second jetty of edge\n if (jettys != null) {\n var arrayOffset = reversed ? 2 : 0;\n var rankY = reversed ?\n (layoutReversed ? this.rankTopY[parseInt(maxRank.toString(), 10)] : this.rankBottomY[parseInt(maxRank.toString(), 10)]) :\n (layoutReversed ? this.rankBottomY[parseInt(minRank.toString(), 10)] : this.rankTopY[parseInt(minRank.toString(), 10)]);\n var jetty = jettys[parallelEdgeCount * 4 + 3 - arrayOffset];\n if (reversed !== layoutReversed) {\n jetty = -jetty;\n }\n var y = rankY - jetty;\n var x = jettys[parallelEdgeCount * 4 + 2 - arrayOffset];\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n newPoints.push(this.getPointvalue(x, y + layout.marginY));\n }\n else {\n newPoints.push(this.getPointvalue(y, x + layout.marginY));\n }\n }\n this.setEdgePoints(realEdge, newPoints, model);\n // Increase offset so next edge is drawn next to\n // this one\n if (offsetX === 0.0) {\n offsetX = this.parallelEdgeSpacing;\n }\n else if (offsetX > 0) {\n offsetX = -offsetX;\n }\n else {\n offsetX = -offsetX + this.parallelEdgeSpacing;\n }\n parallelEdgeCount++;\n }\n cell.temp[0] = 101207;\n }\n };\n /* tslint:enable */\n // eslint-disable-next-line\n HierarchicalLayoutUtil.prototype.getPointvalue = function (x, y) {\n return { 'x': Number(x) || 0, 'y': Number(y) || 0 };\n };\n HierarchicalLayoutUtil.prototype.updateEdgeSetXYValue = function (model) {\n if (model.layout.enableLayoutRouting) {\n var isHorizontal = false;\n if (model.layout.orientation === 'LeftToRight' || model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n for (var i = 0; i < model.ranks.length; i++) {\n var rank = model.ranks[parseInt(i.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n if ((cell).edges && (cell).edges.length > 0) {\n var spacing = model.layout.horizontalSpacing > 0 ? (model.layout.horizontalSpacing / 2) : 15;\n var check = true;\n if (!(cell.minRank === i - 1 || cell.maxRank === i - 1)) {\n check = false;\n }\n if (check) {\n this.setXY(cell, i, undefined, isHorizontal ? true : false, model.ranks, spacing);\n }\n }\n }\n }\n }\n };\n HierarchicalLayoutUtil.prototype.getPreviousLayerConnectedCells = function (layer, cell) {\n if (cell.previousLayerConnectedCells == null) {\n cell.previousLayerConnectedCells = [];\n cell.previousLayerConnectedCells[0] = [];\n for (var i = 0; i < cell.connectsAsSource.length; i++) {\n var edge = cell.connectsAsSource[parseInt(i.toString(), 10)];\n if (edge.minRank === -1 || edge.minRank === layer - 1) {\n // No dummy nodes in edge, add node of other side of edge\n cell.previousLayerConnectedCells[0].push(edge.target);\n }\n else {\n // Edge spans at least two layers, add edge\n cell.previousLayerConnectedCells[0].push(edge);\n }\n }\n }\n return cell.previousLayerConnectedCells[0];\n };\n HierarchicalLayoutUtil.prototype.compare = function (a, b) {\n if (a != null && b != null) {\n if (b.weightedValue > a.weightedValue) {\n return -1;\n }\n else if (b.weightedValue < a.weightedValue) {\n return 1;\n }\n }\n return 0;\n };\n /* tslint:disable */\n // eslint-disable-next-line\n HierarchicalLayoutUtil.prototype.localEdgeProcessing = function (model, vertices) {\n // Iterate through each vertex, look at the edges connected in\n // both directions.\n for (var rankIndex = 0; rankIndex < model.ranks.length; rankIndex++) {\n var rank = model.ranks[parseInt(rankIndex.toString(), 10)];\n for (var cellIndex = 0; cellIndex < rank.length; cellIndex++) {\n var cell = rank[parseInt(cellIndex.toString(), 10)];\n if (this.crossReduction.isVertex(cell)) {\n var currentCells = this.getPreviousLayerConnectedCells(rankIndex, cell);\n var currentRank = rankIndex - 1;\n // Two loops, last connected cells, and next\n for (var k = 0; k < 2; k++) {\n if (currentRank > -1\n && currentRank < model.ranks.length\n && currentCells != null\n && currentCells.length > 0) {\n var sortedCells = [];\n for (var j = 0; j < currentCells.length; j++) {\n var sorter = this.weightedCellSorter(currentCells[parseInt(j.toString(), 10)], this.getX(currentRank, currentCells[parseInt(j.toString(), 10)]));\n sortedCells.push(sorter);\n }\n sortedCells.sort(this.compare);\n cell.width = vertices[cell.id].cell.geometry.width;\n cell.height = vertices[cell.id].cell.geometry.height;\n var leftLimit = void 0;\n if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'BottomToTop') {\n cell.x[0] = vertices[cell.id].cell.geometry.x + vertices[cell.id].cell.geometry.width / 2;\n leftLimit = cell.x[0] - cell.width / 2 + vertices[cell.id].cell.geometry.height / 2;\n }\n else {\n cell.x[0] = vertices[cell.id].cell.geometry.y;\n leftLimit = cell.x[0];\n }\n var rightLimit = leftLimit + cell.width;\n // Connected edge count starts at 1 to allow for buffer\n // with edge of vertex\n var connectedEdgeCount = 0;\n var connectedEdgeGroupCount = 0;\n var connectedEdges = [];\n // Calculate width requirements for all connected edges\n for (var j = 0; j < sortedCells.length; j++) {\n var innerCell = sortedCells[parseInt(j.toString(), 10)].cell;\n var connections = void 0;\n if (this.crossReduction.isVertex(innerCell)) {\n // Get the connecting edge\n if (k === 0) {\n connections = cell.connectsAsSource;\n }\n else {\n connections = cell.connectsAsTarget;\n }\n for (var connIndex = 0; connIndex < connections.length; connIndex++) {\n if (connections[parseInt(connIndex.toString(), 10)].source === innerCell\n || connections[parseInt(connIndex.toString(), 10)].target === innerCell) {\n connectedEdgeCount += connections[parseInt(connIndex.toString(), 10)].edges\n .length;\n connectedEdgeGroupCount++;\n connectedEdges.push(connections[parseInt(connIndex.toString(), 10)]);\n }\n }\n }\n else {\n connectedEdgeCount += innerCell.edges.length;\n // eslint-disable-next-line\n connectedEdgeGroupCount++;\n connectedEdges.push(innerCell);\n }\n }\n var requiredWidth = (connectedEdgeCount + 1)\n * this.previousEdgeDistance;\n // Add a buffer on the edges of the vertex if the edge count allows\n if (cell.width > requiredWidth\n + (2 * this.previousEdgeDistance)) {\n leftLimit += this.previousEdgeDistance;\n rightLimit -= this.previousEdgeDistance;\n }\n var availableWidth = rightLimit - leftLimit;\n var edgeSpacing = availableWidth / connectedEdgeCount;\n var currentX = leftLimit + edgeSpacing / 2.0;\n var currentYOffset = this.minEdgeJetty - this.previousEdgeOffset;\n var maxYOffset = 0;\n for (var j = 0; j < connectedEdges.length; j++) {\n var numActualEdges = connectedEdges[parseInt(j.toString(), 10)].edges\n .length;\n if (this.jettyPositions === undefined) {\n this.jettyPositions = {};\n }\n var pos = this.jettyPositions[connectedEdges[parseInt(j.toString(), 10)].ids[0]];\n if (pos == null) {\n pos = [];\n this.jettyPositions[connectedEdges[parseInt(j.toString(), 10)].ids[0]] = pos;\n }\n if (j < connectedEdgeCount / 2) {\n currentYOffset += this.previousEdgeOffset;\n }\n else if (j > connectedEdgeCount / 2) {\n currentYOffset -= this.previousEdgeOffset;\n }\n // Ignore the case if equals, this means the second of 2\n // jettys with the same y (even number of edges)\n for (var m = 0; m < numActualEdges; m++) {\n pos[m * 4 + k * 2] = currentX;\n currentX += edgeSpacing;\n pos[m * 4 + k * 2 + 1] = currentYOffset;\n }\n maxYOffset = Math.max(maxYOffset, currentYOffset);\n }\n }\n currentCells = this.getNextLayerConnectedCells(rankIndex, cell);\n currentRank = rankIndex + 1;\n }\n }\n }\n }\n };\n /* tslint:enable */\n HierarchicalLayoutUtil.prototype.updateMultiOutEdgesPoints = function (clnode) {\n for (var i = 0; i < clnode.outEdges.length / 2; i++) {\n var connector1 = this.nameTable[clnode.outEdges[parseInt(i.toString(), 10)]];\n var connector2 = this.nameTable[clnode.outEdges[clnode.outEdges.length - (i + 1)]];\n var geometry = 'geometry';\n connector2[\"\" + geometry].points[0].y = connector1[\"\" + geometry].points[0].y;\n }\n };\n HierarchicalLayoutUtil.prototype.getNextLayerConnectedCells = function (layer, cell) {\n if (cell.nextLayerConnectedCells == null) {\n cell.nextLayerConnectedCells = [];\n cell.nextLayerConnectedCells[0] = [];\n for (var i = 0; i < cell.connectsAsTarget.length; i++) {\n var edge = cell.connectsAsTarget[parseInt(i.toString(), 10)];\n if (edge.maxRank === -1 || edge.maxRank === layer + 1) {\n // Either edge is not in any rank or\n // no dummy nodes in edge, add node of other side of edge\n cell.nextLayerConnectedCells[0].push(edge.source);\n }\n else {\n // Edge spans at least two layers, add edge\n cell.nextLayerConnectedCells[0].push(edge);\n }\n }\n }\n return cell.nextLayerConnectedCells[0];\n };\n HierarchicalLayoutUtil.prototype.getX = function (layer, cell) {\n if (this.crossReduction.isVertex(cell)) {\n return cell.x[0];\n }\n else if (!this.crossReduction.isVertex(cell)) {\n return cell.x[layer - cell.minRank - 1] || cell.temp[layer - cell.minRank - 1];\n }\n return 0.0;\n };\n HierarchicalLayoutUtil.prototype.getGeometry = function (edge) {\n var geometry = 'geometry';\n return edge[\"\" + geometry];\n };\n HierarchicalLayoutUtil.prototype.setEdgePoints = function (edge, points, model) {\n if (edge != null) {\n var geometryValue = 'geometry';\n var geometry = this.getGeometry(edge);\n if (points != null) {\n for (var i = 0; i < points.length; i++) {\n // eslint-disable-next-line\n points[i].x = points[i].x;\n // eslint-disable-next-line\n points[i].y = points[i].y;\n }\n }\n geometry.points = points;\n edge[\"\" + geometryValue] = geometry;\n }\n };\n HierarchicalLayoutUtil.prototype.assignRankOffset = function (model) {\n if (model) {\n for (var i = 0; i < model.ranks.length; i++) {\n this.rankCoordinatesAssigment(i, model);\n }\n }\n };\n HierarchicalLayoutUtil.prototype.rankCoordinatesAssigment = function (rankValue, model) {\n var rank = model.ranks[parseInt(rankValue.toString(), 10)];\n var spacing = model.layout.horizontalSpacing;\n var localOffset;\n for (var i = 0; i < rank.length; i++) {\n if (this[rankValue + '_' + 'RankOffset'] === undefined) {\n this[rankValue + '_' + 'RankOffset'] = 0;\n }\n localOffset = rank[parseInt(i.toString(), 10)].x[0];\n if (this[rankValue + '_' + 'RankOffset'] < localOffset) {\n this[rankValue + '_' + 'RankOffset'] = localOffset + rank[parseInt(i.toString(), 10)].width / 2 + spacing;\n }\n }\n };\n HierarchicalLayoutUtil.prototype.getType = function (type) {\n if (type === 'internalVertex') {\n return 'internalVertex';\n }\n else {\n return 'internalEdge';\n }\n };\n HierarchicalLayoutUtil.prototype.updateRankValuess = function (model) {\n this.rankTopY = [];\n this.rankBottomY = [];\n for (var i = 0; i < model.ranks.length; i++) {\n this.rankTopY[parseInt(i.toString(), 10)] = Number.MAX_VALUE;\n this.rankBottomY[parseInt(i.toString(), 10)] = -Number.MAX_VALUE;\n }\n };\n HierarchicalLayoutUtil.prototype.setVertexLocationValue = function (cell, orientation, modelBounds) {\n var cellGeomtry = cell.cell.geometry;\n var positionX;\n var positionY;\n if (orientation === 'TopToBottom' || orientation === 'BottomToTop') {\n positionX = cellGeomtry.x;\n positionY = cellGeomtry.y;\n }\n else {\n positionX = cellGeomtry.y;\n positionY = cellGeomtry.x;\n }\n if (orientation === 'RightToLeft') {\n // eslint-disable-next-line\n positionX = cellGeomtry.y;\n positionY = modelBounds.width - cellGeomtry.x - cellGeomtry.height;\n this.rankBottomY[cell.minRank] = Math.max(this.rankBottomY[cell.minRank], positionY);\n this.rankTopY[cell.minRank] = Math.min(this.rankTopY[cell.minRank], positionY + cellGeomtry.height);\n }\n else {\n this.rankTopY[cell.minRank] = Math.min(this.rankTopY[cell.minRank], positionY);\n this.rankBottomY[cell.minRank] = Math.max(this.rankBottomY[cell.minRank], positionY + cellGeomtry.height);\n }\n };\n HierarchicalLayoutUtil.prototype.matrixModel = function (options) {\n // eslint-disable-next-line\n options.model = options.model;\n options.matrix = options.matrix || [];\n options.rowOffset = options.rowOffset || [];\n return options;\n };\n HierarchicalLayoutUtil.prototype.calculateRectValue = function (dnode) {\n var rect = { x: 0, y: 0, right: 0, bottom: 0, height: 0, width: 0 };\n rect.x = dnode.offsetX - dnode.actualSize.width / 2;\n rect.right = dnode.offsetX + dnode.actualSize.width / 2;\n rect.y = dnode.offsetY - dnode.actualSize.height / 2;\n rect.bottom = dnode.offsetY + dnode.actualSize.height / 2;\n return rect;\n };\n HierarchicalLayoutUtil.prototype.isNodeOverLap = function (dnode, layoutProp) {\n var nodeRect = { x: 0, y: 0, right: 0, bottom: 0, height: 0, width: 0 };\n for (var i = 0; i < this.vertices.length; i++) {\n var rect = { x: 0, y: 0, width: 0, height: 0 };\n //let tempnode1: INode;\n var tempnode1 = this.nameTable[this.vertices[parseInt(i.toString(), 10)].value];\n if (dnode.id !== tempnode1.id && tempnode1.offsetX !== 0 && tempnode1.offsetY !== 0) {\n nodeRect = this.calculateRectValue(dnode);\n rect = this.calculateRectValue(tempnode1);\n if (this.isIntersect(rect, nodeRect, layoutProp)) {\n if (layoutProp.orientation === 'TopToBottom' || layoutProp.orientation === 'BottomToTop') {\n dnode.offsetX += layoutProp.horizontalSpacing;\n }\n else {\n dnode.offsetY += layoutProp.verticalSpacing;\n }\n this.isNodeOverLap(dnode, layoutProp);\n }\n }\n }\n };\n HierarchicalLayoutUtil.prototype.isIntersect = function (rect, nodeRect, layoutProp) {\n if (!(Math.floor(rect.right + layoutProp.horizontalSpacing) <= Math.floor(nodeRect.x) ||\n Math.floor(rect.x - layoutProp.horizontalSpacing) >= Math.floor(nodeRect.right)\n || Math.floor(rect.y - layoutProp.verticalSpacing) >= Math.floor(nodeRect.bottom)\n || Math.floor(rect.bottom + layoutProp.verticalSpacing) <= Math.floor(nodeRect.y))) {\n return true;\n }\n else {\n return false;\n }\n };\n /* eslint-disable */\n HierarchicalLayoutUtil.prototype.updateMargin = function (layoutProp, layout, modelBounds, viewPort) {\n var viewPortBounds = { x: 0, y: 0, width: viewPort.x, height: viewPort.y };\n //let layoutBounds: Rect;\n var bounds = {\n x: modelBounds.x, y: modelBounds.y,\n right: modelBounds.x + modelBounds.width,\n bottom: modelBounds.y + modelBounds.height\n };\n var layoutBounds = layoutProp.bounds ? layoutProp.bounds : viewPortBounds;\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n switch (layoutProp.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n layout.marginX = (layoutBounds.x - bounds.x) + layoutProp.margin.left;\n break;\n case 'Right':\n layout.marginX = layoutBounds.x + layoutBounds.width - layoutProp.margin.right - bounds.right;\n break;\n case 'Center':\n layout.marginX = layoutBounds.x + layoutBounds.width / 2 - (bounds.x + bounds.right) / 2;\n break;\n }\n switch (layoutProp.verticalAlignment) {\n case 'Top':\n //const top: number;\n var top_1 = layoutBounds.y + layoutProp.margin.top;\n layout.marginY = layout.orientation === 'TopToBottom' ? top_1 : -top_1;\n break;\n case 'Bottom':\n //const bottom: number;\n var bottom = layoutBounds.y + layoutBounds.height - layoutProp.margin.bottom;\n layout.marginY = layout.orientation === 'TopToBottom' ? bottom - bounds.bottom : -(bottom - bounds.bottom);\n break;\n case 'Auto':\n case 'Center':\n //const center: number;\n var center = layoutBounds.y + layoutBounds.height / 2;\n layout.marginY = layout.orientation === 'TopToBottom' ?\n center - (bounds.y + bounds.bottom) / 2 : -center + (bounds.y + bounds.bottom) / 2;\n break;\n }\n }\n else {\n switch (layoutProp.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n //let left: number;\n var left = layoutBounds.x + layoutProp.margin.left;\n layout.marginX = layout.orientation === 'LeftToRight' ? left : -left;\n break;\n case 'Right':\n var right = void 0;\n right = layoutBounds.x + layoutBounds.width - layoutProp.margin.right;\n layout.marginX = layout.orientation === 'LeftToRight' ? right - bounds.right : bounds.right - right;\n break;\n case 'Center':\n var center = void 0;\n center = layoutBounds.width / 2 + layoutBounds.x;\n layout.marginX = layout.orientation === 'LeftToRight' ?\n center - (bounds.y + bounds.bottom) / 2 : -center + (bounds.x + bounds.right) / 2;\n break;\n }\n switch (layoutProp.verticalAlignment) {\n case 'Top':\n layout.marginY = layoutBounds.y + layoutProp.margin.top - bounds.x;\n break;\n case 'Auto':\n case 'Center':\n layout.marginY = layoutBounds.y + layoutBounds.height / 2 - (bounds.y + bounds.bottom) / 2;\n break;\n case 'Bottom':\n layout.marginY = layoutBounds.y + layoutBounds.height - layoutProp.margin.bottom - bounds.bottom;\n break;\n }\n }\n };\n /* eslint-enable */\n //Handles positioning the nodes\n HierarchicalLayoutUtil.prototype.placementStage = function (model, marginX, marginY) {\n var placementStage = this.coordinateAssignment(marginX, marginY, parent, model);\n placementStage.model = model;\n placementStage.widestRankValue = null;\n this.placementStageExecute(placementStage);\n return {\n marginX: placementStage.marginX + model.layout.horizontalSpacing,\n marginY: placementStage.marginY + model.layout.verticalSpacing\n };\n };\n //Initializes the layout properties for positioning\n HierarchicalLayoutUtil.prototype.coordinateAssignment = function (marginX, marginY, parent, model) {\n var plalementChange = {};\n if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'BottomToTop') {\n plalementChange.horizontalSpacing = model.layout.horizontalSpacing;\n plalementChange.verticalSpacing = model.layout.verticalSpacing;\n }\n else {\n plalementChange.horizontalSpacing = model.layout.verticalSpacing;\n plalementChange.verticalSpacing = model.layout.horizontalSpacing;\n }\n plalementChange.orientation = 'north';\n //Removed the conditions here. So check here in case of any issue\n plalementChange.marginX = plalementChange.marginX = marginX;\n plalementChange.marginY = plalementChange.marginY = marginY;\n return plalementChange;\n };\n //Calculate the largest size of the node either height or width depends upon the layoutorientation\n HierarchicalLayoutUtil.prototype.calculateWidestRank = function (plalementChange, graph, model) {\n var isHorizontal = false;\n if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n var offset = -plalementChange.verticalSpacing;\n var lastRankMaxCellSize = 0.0;\n plalementChange.rankSizes = [];\n plalementChange.rankOffset = [];\n for (var rankValue = model.maxRank; rankValue >= 0; rankValue--) {\n var maxCellSize = 0.0;\n var rank = model.ranks[parseInt(rankValue.toString(), 10)];\n var localOffset = isHorizontal ? plalementChange.marginY : plalementChange.marginX;\n for (var i = 0; i < rank.length; i++) {\n var node = rank[parseInt(i.toString(), 10)];\n if (this.crossReduction.isVertex(node)) {\n var vertex = node;\n if (vertex.cell && (vertex.cell.inEdges || vertex.cell.outEdges)) {\n var obj = this.nameTable[vertex.cell.name];\n vertex.width = obj.actualSize.width;\n vertex.height = obj.actualSize.height;\n maxCellSize = Math.max(maxCellSize, (isHorizontal ? vertex.width : vertex.height));\n }\n }\n else {\n if (node) {\n var edge = node;\n var numEdges = 1;\n if (edge.edges != null) {\n numEdges = edge.edges.length;\n }\n node.width = (numEdges - 1) * 10;\n }\n }\n if (isHorizontal) {\n if (!node.height) {\n node.height = 0;\n }\n }\n // Set the initial x-value as being the best result so far\n localOffset += (isHorizontal ? node.height : node.width) / 2.0;\n this.setXY(node, rankValue, localOffset, isHorizontal ? true : false);\n this.setTempVariable(node, rankValue, localOffset);\n localOffset += ((isHorizontal ? node.height : node.width) / 2.0) + plalementChange.horizontalSpacing;\n if (localOffset > plalementChange.widestRankValue) {\n plalementChange.widestRankValue = localOffset;\n plalementChange.widestRank = rankValue;\n }\n plalementChange.rankSizes[parseInt(rankValue.toString(), 10)] = localOffset;\n }\n plalementChange.rankOffset[parseInt(rankValue.toString(), 10)] = offset;\n var distanceToNextRank = maxCellSize / 2.0 + lastRankMaxCellSize / 2.0 + plalementChange.verticalSpacing;\n lastRankMaxCellSize = maxCellSize;\n if (plalementChange.orientation === 'north' || plalementChange.orientation === 'west') {\n offset += distanceToNextRank;\n }\n else {\n offset -= distanceToNextRank;\n }\n for (var i = 0; i < rank.length; i++) {\n var cell = rank[parseInt(i.toString(), 10)];\n this.setXY(cell, rankValue, offset, isHorizontal ? false : true);\n }\n }\n };\n /**\n * Sets the temp position of the node on the layer \\\n *\n * @returns { void } Sets the temp position of the node on the layer \\\n * @param {IVertex} node - provide the nodes value.\n * @param {number} layer - provide the layer value.\n * @param {number} value - provide the value value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.setTempVariable = function (node, layer, value) {\n if (this.crossReduction.isVertex(node)) {\n node.temp[0] = value;\n }\n else {\n node.temp[layer - node.minRank - 1] = value;\n }\n };\n // eslint-disable-next-line valid-jsdoc\n /**\n * setXY method \\\n *\n * @returns { void } setXY method .\\\n * @param {IVertex} node - provide the source value.\n * @param {number} layer - provide the target value.\n * @param {number} value - provide the layoutOrientation value.\n * @param {boolean} isY - provide the layoutOrientation value.\n * @param {IVertex[][]} ranks - provide the layoutOrientation value.\n * @param {number} spacing - provide the layoutOrientation value.\n *\n * @private\n */\n HierarchicalLayoutUtil.prototype.setXY = function (node, layer, value, isY, ranks, spacing) {\n if (node && node.cell) {\n if (node.cell.inEdges || node.cell.outEdges) {\n if (isY) {\n node.y[0] = value;\n }\n else {\n node.x[0] = value;\n }\n }\n else {\n if (isY) {\n node.y[layer - node.minRank - 1] = value;\n }\n else {\n node.x[layer - node.minRank - 1] = value;\n }\n }\n }\n else {\n this.setEdgeXY(ranks, node, spacing, layer);\n }\n };\n //Sets geometry position of the layout node on the layout model\n HierarchicalLayoutUtil.prototype.rankCoordinates = function (stage, rankValue, graph, model) {\n var isHorizontal = false;\n if (stage.model.layout.orientation === 'LeftToRight' || stage.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n var rank = model.ranks[parseInt(rankValue.toString(), 10)];\n var maxOffset = 0.0;\n var localOffset = (isHorizontal ? stage.marginY : stage.marginX) + (stage.widestRankValue - stage.rankSizes[parseInt(rankValue.toString(), 10)]) / 2;\n for (var i = 0; i < rank.length; i++) {\n var node = rank[parseInt(i.toString(), 10)];\n if (this.crossReduction.isVertex(node)) {\n var obj = this.nameTable[node.cell.name];\n node.width = obj.actualSize.width;\n node.height = obj.actualSize.height;\n maxOffset = Math.max(maxOffset, node.height);\n }\n else {\n var edge = node;\n var numEdges = 1;\n if (edge.edges != null) {\n numEdges = edge.edges.length;\n }\n if (isHorizontal) {\n node.height = (numEdges - 1) * 10;\n }\n else {\n node.width = (numEdges - 1) * 10;\n }\n }\n var size = (isHorizontal ? node.height : node.width) / 2.0;\n localOffset += size;\n this.setXY(node, rankValue, localOffset, isHorizontal ? true : false);\n this.setTempVariable(node, rankValue, localOffset);\n localOffset += (size + stage.horizontalSpacing);\n }\n };\n //sets the layout in an initial positioning.it will arange all the ranks as much as possible\n HierarchicalLayoutUtil.prototype.initialCoords = function (plalementChange, facade, model) {\n this.calculateWidestRank(plalementChange, facade, model);\n // Reverse sweep direction each time from widest rank\n for (var i = plalementChange.widestRank; i >= 0; i--) {\n if (i < model.maxRank) {\n this.rankCoordinates(plalementChange, i, facade, model);\n }\n }\n for (var i = plalementChange.widestRank + 1; i <= model.maxRank; i++) {\n if (i > 0) {\n this.rankCoordinates(plalementChange, i, facade, model);\n }\n }\n };\n /**\n * Checks whether the given node is an ancestor \\\n *\n * @returns { boolean } Checks whether the given node is an ancestor \\\n * @param {IVertex} node - provide the nodes value.\n * @param {IVertex} otherNode - provide the layer value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.isAncestor = function (node, otherNode) {\n // Firstly, the hash code of this node needs to be shorter than the other node\n if (otherNode != null && node.hashCode != null && otherNode.hashCode != null\n && node.hashCode.length < otherNode.hashCode.length) {\n if (node.hashCode === otherNode.hashCode) {\n return true;\n }\n if (node.hashCode == null || node.hashCode == null) {\n return false;\n }\n for (var i = 0; i < node.hashCode.length; i++) {\n if (node.hashCode[parseInt(i.toString(), 10)] !== otherNode.hashCode[parseInt(i.toString(), 10)]) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n //initializes the sorter object\n HierarchicalLayoutUtil.prototype.weightedCellSorter = function (cell, weightedValue) {\n var weightedCellSorter = {};\n weightedCellSorter.cell = cell ? cell : null;\n weightedCellSorter.weightedValue = weightedValue ? weightedValue : 0;\n weightedCellSorter.visited = false;\n weightedCellSorter.rankIndex = null;\n return weightedCellSorter;\n };\n //Performs one node positioning in both directions\n HierarchicalLayoutUtil.prototype.minNode = function (plalementChange, model) {\n var nodeList = [];\n var map = { map: {} };\n var rank = [];\n for (var i = 0; i <= model.maxRank; i++) {\n rank[parseInt(i.toString(), 10)] = model.ranks[parseInt(i.toString(), 10)];\n for (var j = 0; j < rank[parseInt(i.toString(), 10)].length; j++) {\n var node = rank[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)];\n var nodeWrapper = this.weightedCellSorter(node, i);\n nodeWrapper.rankIndex = j;\n nodeWrapper.visited = true;\n nodeList.push(nodeWrapper);\n model.setDictionaryForSorter(map, node, nodeWrapper, true);\n }\n }\n var maxTries = nodeList.length * 10;\n var count = 0;\n var tolerance = 1;\n while (nodeList.length > 0 && count <= maxTries) {\n var cellWrapper = nodeList.shift();\n var cell = cellWrapper.cell;\n var rankValue = cellWrapper.weightedValue;\n var rankIndex = cellWrapper.rankIndex;\n var nextLayerConnectedCells = this.crossReduction.getConnectedCellsOnLayer(cell, rankValue);\n var previousLayerConnectedCells = this.crossReduction.getConnectedCellsOnLayer(cell, rankValue, true);\n var nextConnectedCount = nextLayerConnectedCells.length;\n var prevConnectedCount = previousLayerConnectedCells.length;\n var medianNextLevel = this.medianXValue(plalementChange, nextLayerConnectedCells, rankValue + 1);\n var medianPreviousLevel = this.medianXValue(plalementChange, previousLayerConnectedCells, rankValue - 1);\n var numConnectedNeighbours = nextConnectedCount + prevConnectedCount;\n var currentPosition = this.crossReduction.getTempVariable(cell, rankValue);\n var cellMedian = currentPosition;\n if (numConnectedNeighbours > 0) {\n cellMedian = (medianNextLevel * nextConnectedCount + medianPreviousLevel * prevConnectedCount) / numConnectedNeighbours;\n }\n if (nextConnectedCount === 1 && prevConnectedCount === 1) {\n cellMedian = (medianPreviousLevel * prevConnectedCount) / prevConnectedCount;\n }\n else if (nextConnectedCount === 1) {\n cellMedian = (medianNextLevel * nextConnectedCount) / nextConnectedCount;\n }\n var positionChanged = false;\n var tempValue = undefined;\n if (cellMedian < currentPosition - tolerance) {\n if (rankIndex === 0) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else {\n var leftCell = rank[parseInt(rankValue.toString(), 10)][rankIndex - 1];\n var leftLimit = this.crossReduction.getTempVariable(leftCell, rankValue);\n leftLimit = leftLimit + leftCell.width / 2 + plalementChange.intraCellSpacing + cell.width / 2;\n if (leftLimit < cellMedian) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else if (leftLimit < this.crossReduction.getTempVariable(cell, rankValue) - tolerance) {\n tempValue = leftLimit;\n positionChanged = true;\n }\n }\n }\n else if (cellMedian > currentPosition + tolerance) {\n var rankSize = rank[parseInt(rankValue.toString(), 10)].length;\n if (rankIndex === rankSize - 1) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else {\n var rightCell = rank[parseInt(rankValue.toString(), 10)][rankIndex + 1];\n var rightLimit = this.crossReduction.getTempVariable(rightCell, rankValue);\n rightLimit = rightLimit - rightCell.width / 2 - plalementChange.intraCellSpacing - cell.width / 2;\n if (rightLimit > cellMedian) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else if (rightLimit > this.crossReduction.getTempVariable(cell, rankValue) + tolerance) {\n tempValue = rightLimit;\n positionChanged = true;\n }\n }\n }\n if (positionChanged) {\n this.setTempVariable(cell, rankValue, tempValue);\n // Add connected nodes to map and list\n this.updateNodeList(nodeList, map, nextLayerConnectedCells, model);\n this.updateNodeList(nodeList, map, previousLayerConnectedCells, model);\n }\n if (this.crossReduction.isVertex(cellWrapper.cell)) {\n cellWrapper.visited = false;\n }\n count++;\n }\n };\n //Updates the ndoes collection\n HierarchicalLayoutUtil.prototype.updateNodeList = function (nodeList, map, collection, model) {\n for (var i = 0; i < collection.length; i++) {\n var connectedCell = collection[parseInt(i.toString(), 10)];\n var connectedCellWrapper = model.getDictionaryForSorter(map, connectedCell);\n if (connectedCellWrapper != null) {\n if (connectedCellWrapper.visited === false) {\n connectedCellWrapper.visited = true;\n nodeList.push(connectedCellWrapper);\n }\n }\n }\n };\n //Calculates the node position of the connected cell on the specified rank\n HierarchicalLayoutUtil.prototype.medianXValue = function (plalementChange, connectedCells, rankValue) {\n if (connectedCells.length === 0) {\n return 0;\n }\n var medianValues = [];\n for (var i = 0; i < connectedCells.length; i++) {\n medianValues[parseInt(i.toString(), 10)] = this.crossReduction.getTempVariable(connectedCells[parseInt(i.toString(), 10)], rankValue);\n }\n medianValues.sort(function (a, b) {\n return a - b;\n });\n if (connectedCells.length % 2 === 1) {\n return medianValues[Math.floor(connectedCells.length / 2)];\n }\n else {\n var medianPoint = connectedCells.length / 2;\n var leftMedian = medianValues[medianPoint - 1];\n var rightMedian = medianValues[parseInt(medianPoint.toString(), 10)];\n return ((leftMedian + rightMedian) / 2);\n }\n };\n //Updates the geometry of the vertices\n HierarchicalLayoutUtil.prototype.placementStageExecute = function (plalementChange) {\n var isHorizontal = false;\n if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n plalementChange.jettyPositions = {};\n var model = plalementChange.model;\n // eslint-disable-next-line\n isHorizontal ? plalementChange.currentYDelta = 0.0 : plalementChange.currentXDelta = 0.0;\n this.initialCoords(plalementChange, { model: model }, model);\n this.minNode(plalementChange, model);\n var bestOffsetDelta = 100000000.0;\n if (!plalementChange.maxIterations) {\n plalementChange.maxIterations = 8;\n }\n for (var i = 0; i < plalementChange.maxIterations; i++) {\n // if the total offset is less for the current positioning,\n //there are less heavily angled edges and so the current positioning is used\n if ((isHorizontal ? plalementChange.currentYDelta : plalementChange.currentXDelta) < bestOffsetDelta) {\n for (var j = 0; j < model.ranks.length; j++) {\n var rank = model.ranks[parseInt(j.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n this.setXY(cell, j, this.crossReduction.getTempVariable(cell, j), isHorizontal ? true : false);\n }\n }\n bestOffsetDelta = isHorizontal ? plalementChange.currentYDelta : plalementChange.currentXDelta;\n }\n // eslint-disable-next-line\n isHorizontal ? plalementChange.currentYDelta = 0 : plalementChange.currentXDelta = 0;\n }\n this.setCellLocations(plalementChange, model);\n };\n //sets the cell position in the after the layout operation\n HierarchicalLayoutUtil.prototype.setCellLocations = function (plalementChange, model) {\n var vertices = this.getValues(model.vertexMapper);\n for (var i = 0; i < vertices.length; i++) {\n this.setVertexLocation(plalementChange, vertices[parseInt(i.toString(), 10)]);\n }\n };\n //used to specify the geometrical position of the layout model cell\n HierarchicalLayoutUtil.prototype.garphModelsetVertexLocation = function (plalementChange, cell, x, y) {\n //let model: MultiParentModel = plalementChange.model;\n var geometry = cell.geometry;\n var result = null;\n if (geometry != null) {\n result = { x: x, y: y, width: geometry.width, height: geometry.height };\n if (geometry.x !== x || geometry.y !== y) {\n cell.geometry = result;\n }\n }\n return result;\n };\n //set the position of the specified node\n HierarchicalLayoutUtil.prototype.setVertexLocation = function (plalementChange, cell) {\n var isHorizontal = false;\n if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n var realCell = cell.cell;\n var positionX = cell.x[0] - cell.width / 2;\n var positionY = cell.y[0] - cell.height / 2;\n this.garphModelsetVertexLocation(plalementChange, realCell, positionX, positionY);\n if (isHorizontal) {\n if (!plalementChange.marginY) {\n plalementChange.marginY = 0;\n }\n plalementChange.marginY = Math.max(plalementChange.marginY, positionY + cell.height);\n }\n else {\n if (!plalementChange.marginX) {\n plalementChange.marginX = 0;\n }\n plalementChange.marginX = Math.max(plalementChange.marginX, positionX + cell.width);\n }\n };\n /**\n * get the specific value from the key value pair \\\n *\n * @returns { {}[] } get the specific value from the key value pair \\\n * @param {VertexMapper} mapper - provide the mapper value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getValues = function (mapper) {\n var list = [];\n if (mapper.map) {\n for (var _i = 0, _a = Object.keys(mapper.map); _i < _a.length; _i++) {\n var key = _a[_i];\n list.push(mapper.map[\"\" + key]);\n }\n }\n return list;\n };\n /**\n *Checks and reduces the crosses in between line segments \\\n *\n * @returns { void } Checks and reduces the crosses in between line segments.\\\n * @param {End} model - provide the model value.\n *\n * @private\n */\n HierarchicalLayoutUtil.prototype.crossingStage = function (model) {\n this.crossReduction.execute(model);\n };\n //Initializes the ranks of the vertices\n HierarchicalLayoutUtil.prototype.layeringStage = function (model) {\n this.initialRank(model);\n this.fixRanks(model);\n };\n //determine the initial rank for the each vertex on the relevent direction\n HierarchicalLayoutUtil.prototype.initialRank = function (model) {\n var startNodes = model.startNodes;\n var internalNodes = model.getDictionaryValues(model.vertexMapper);\n var startNodesCopy = startNodes.slice();\n while (startNodes.length > 0) {\n var internalNode = startNodes[0];\n var layerDeterminingEdges = internalNode.connectsAsTarget;\n var edgesToBeMarked = internalNode.connectsAsSource;\n var allEdgesScanned = true;\n var minimumLayer = 100000000;\n for (var i = 0; i < layerDeterminingEdges.length; i++) {\n var internalEdge = layerDeterminingEdges[parseInt(i.toString(), 10)];\n if (internalEdge.temp[0] === 5270620) {\n // This edge has been scanned, get the layer of the node on the other end\n var otherNode = internalEdge.source;\n minimumLayer = Math.min(minimumLayer, otherNode.temp[0] - 1);\n }\n else {\n allEdgesScanned = false;\n break;\n }\n }\n // If all edge have been scanned, assign the layer, mark all edges in the other direction and remove from the nodes list\n if (allEdgesScanned) {\n internalNode.temp[0] = minimumLayer;\n if (!model.maxRank) {\n model.maxRank = 100000000;\n }\n model.maxRank = Math.min(model.maxRank, minimumLayer);\n if (edgesToBeMarked != null) {\n for (var i = 0; i < edgesToBeMarked.length; i++) {\n var internalEdge = edgesToBeMarked[parseInt(i.toString(), 10)];\n internalEdge.temp[0] = 5270620;\n // Add node on other end of edge to LinkedList of nodes to be analysed\n var otherNode = internalEdge.target;\n // Only add node if it hasn't been assigned a layer\n if (otherNode.temp[0] === -1) {\n startNodes.push(otherNode);\n // Mark this other node as neither being unassigned nor assigned\n //so it isn't added to this list again, but it's layer isn't used in any calculation.\n otherNode.temp[0] = -2;\n }\n }\n }\n startNodes.shift();\n }\n else {\n // Not all the edges have been scanned, get to the back of the class and put the dunces cap on\n var removedCell = startNodes.shift();\n startNodes.push(internalNode);\n if (removedCell === internalNode && startNodes.length === 1) {\n // This is an error condition, we can't get out of this loop.\n //It could happen for more than one node but that's a lot harder to detect. Log the error\n break;\n }\n }\n }\n for (var i = 0; i < internalNodes.length; i++) {\n internalNodes[parseInt(i.toString(), 10)].temp[0] -= model.maxRank;\n }\n for (var i = 0; i < startNodesCopy.length; i++) {\n var internalNode = startNodesCopy[parseInt(i.toString(), 10)];\n var currentMaxLayer = 0;\n var layerDeterminingEdges = internalNode.connectsAsSource;\n for (var j = 0; j < layerDeterminingEdges.length; j++) {\n var internalEdge = layerDeterminingEdges[parseInt(j.toString(), 10)];\n var otherNode = internalEdge.target;\n internalNode.temp[0] = Math.max(currentMaxLayer, otherNode.temp[0] + 1);\n currentMaxLayer = internalNode.temp[0];\n }\n }\n model.maxRank = 100000000 - model.maxRank;\n };\n //used to set the optimum value of each vertex on the layout\n HierarchicalLayoutUtil.prototype.fixRanks = function (model) {\n model.fixRanks();\n };\n //used to determine any cyclic stage have been created on the layout model\n HierarchicalLayoutUtil.prototype.cycleStage = function (model) {\n var seenNodes = {};\n model.startNodes = [];\n var unseenNodesArray = model.getDictionaryValues(model.vertexMapper);\n var unseenNodes = [];\n for (var i = 0; i < unseenNodesArray.length; i++) {\n unseenNodesArray[parseInt(i.toString(), 10)].temp[0] = -1;\n unseenNodes[unseenNodesArray[parseInt(i.toString(), 10)].id] = unseenNodesArray[parseInt(i.toString(), 10)];\n }\n var rootsArray = null;\n if (model.roots != null) {\n var modelRoots = model.roots;\n rootsArray = [];\n for (var i = 0; i < modelRoots.length; i++) {\n rootsArray[parseInt(i.toString(), 10)] = model.getDictionary(model.vertexMapper, modelRoots[parseInt(i.toString(), 10)]);\n if (rootsArray[parseInt(i.toString(), 10)] != null) {\n model.startNodes.push(rootsArray[parseInt(i.toString(), 10)]);\n }\n }\n }\n model.visit('removeParentConnection', rootsArray, true, null, { seenNodes: seenNodes, unseenNodes: unseenNodes });\n var seenNodesCopy = model.clone(seenNodes, null, true);\n model.visit('removeNodeConnection', unseenNodes, true, seenNodesCopy, { seenNodes: seenNodes, unseenNodes: unseenNodes });\n };\n /**\n * removes the edge from the given collection \\\n *\n * @returns { IEdge } removes the edge from the given collection .\\\n * @param {IEdge} obj - provide the angle value.\n * @param { IEdge[]} array - provide the angle value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.remove = function (obj, array) {\n var index = array.indexOf(obj);\n if (index !== -1) {\n array.splice(index, 1);\n }\n return obj;\n };\n /**\n * Inverts the source and target of an edge \\\n *\n * @returns { void } Inverts the source and target of an edge .\\\n * @param {IEdge} connectingEdge - provide the angle value.\n * @param { number} layer - provide the angle value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.invert = function (connectingEdge, layer) {\n var temp = connectingEdge.source;\n connectingEdge.source = connectingEdge.target;\n connectingEdge.target = temp;\n connectingEdge.isReversed = !connectingEdge.isReversed;\n };\n /**\n * used to get the edges between the given source and target \\\n *\n * @returns { IConnector[] } used to get the edges between the given source and target .\\\n * @param {Vertex} source - provide the angle value.\n * @param { Vertex} target - provide the angle value.\n * @param { boolean} directed - provide the angle value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getEdgesBetween = function (source, target, directed) {\n directed = (directed != null) ? directed : false;\n var edges = this.getEdges(source);\n var result = [];\n for (var i = 0; i < edges.length; i++) {\n var src = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], true);\n var trg = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], false);\n if ((src === source && trg === target) || (!directed && src === target && trg === source)) {\n result.push(edges[parseInt(i.toString(), 10)]);\n }\n }\n return result;\n };\n return HierarchicalLayoutUtil;\n}());\n/**\n * Handles position the objects in a hierarchical tree structure\n */\nvar MultiParentModel = /** @class */ (function () {\n function MultiParentModel(layout, vertices, roots, dlayout) {\n this.multiObjectIdentityCounter = 0;\n //used to count the no of times the parent have been used\n this.dfsCount = 0;\n this.hierarchicalUtil = new HierarchicalLayoutUtil();\n this.roots = roots;\n this.vertexMapper = { map: {} };\n var internalVertices = [];\n this.layout = dlayout;\n this.maxRank = 100000000;\n this.edgeMapper = { map: {} };\n this.hierarchicalLayout = layout;\n this.createInternalCells(layout, vertices, internalVertices, dlayout);\n for (var i = 0; i < vertices.length; i++) {\n var edges = internalVertices[parseInt(i.toString(), 10)].connectsAsSource;\n for (var j = 0; j < edges.length; j++) {\n var internalEdge = edges[parseInt(j.toString(), 10)];\n var realEdges = internalEdge.edges;\n if (realEdges != null && realEdges.length > 0) {\n var realEdge = realEdges[0];\n var targetCell = layout.getVisibleTerminal(realEdge, false);\n var internalTargetCell = this.getDictionary(this.vertexMapper, targetCell);\n if (internalVertices[parseInt(i.toString(), 10)] === internalTargetCell) {\n targetCell = layout.getVisibleTerminal(realEdge, true);\n internalTargetCell = this.getDictionary(this.vertexMapper, targetCell);\n }\n if (internalTargetCell != null && internalVertices[parseInt(i.toString(), 10)] !== internalTargetCell) {\n internalEdge.target = internalTargetCell;\n if (internalTargetCell.connectsAsTarget.length === 0) {\n internalTargetCell.connectsAsTarget = [];\n }\n if (internalTargetCell.connectsAsTarget.indexOf(internalEdge) < 0) {\n internalTargetCell.connectsAsTarget.push(internalEdge);\n }\n }\n }\n }\n internalVertices[parseInt(i.toString(), 10)].temp[0] = 1;\n }\n }\n /* tslint:disable */\n MultiParentModel.prototype.resetEdge = function (edge) {\n var geometry = { x: 0, y: 0, width: 0, height: 0, relative: true };\n var geo = geometry;\n edge['geometry'] = geo;\n return edge;\n };\n // eslint-disable-next-line max-len\n MultiParentModel.prototype.createInternalCells = function (layout, vertices, internalVertices, dlayout) {\n for (var i = 0; i < vertices.length; i++) {\n internalVertices[parseInt(i.toString(), 10)] = {\n x: [], y: [], temp: [], cell: vertices[parseInt(i.toString(), 10)],\n id: vertices[parseInt(i.toString(), 10)].name, connectsAsTarget: [], connectsAsSource: [], type: 'internalVertex'\n };\n this.setDictionary(this.vertexMapper, vertices[parseInt(i.toString(), 10)], internalVertices[parseInt(i.toString(), 10)]);\n var conns = layout.getEdges(vertices[parseInt(i.toString(), 10)]);\n internalVertices[parseInt(i.toString(), 10)].connectsAsSource = [];\n for (var j = 0; j < conns.length; j++) {\n var cell = layout.getVisibleTerminal(conns[parseInt(j.toString(), 10)], false);\n if (cell !== vertices[parseInt(i.toString(), 10)]) {\n var undirectedEdges = layout.getEdgesBetween(vertices[parseInt(i.toString(), 10)], cell, false);\n var directedEdges = layout.getEdgesBetween(vertices[parseInt(i.toString(), 10)], cell, true);\n if (undirectedEdges != null && undirectedEdges.length > 0 && directedEdges.length * 2 >= undirectedEdges.length) {\n var internalEdge = { x: [], y: [], temp: [], edges: undirectedEdges, ids: [] };\n if (dlayout.enableLayoutRouting) {\n for (var k = 0; k < undirectedEdges.length; k++) {\n var edge = undirectedEdges[parseInt(k.toString(), 10)];\n this.setDictionary(this.edgeMapper, undefined, internalEdge, edge.id);\n // Resets all point on the edge and disables the edge style\n // without deleting it from the cell style\n this.resetEdge(edge);\n }\n }\n internalEdge.source = internalVertices[parseInt(i.toString(), 10)];\n for (var m = 0; m < undirectedEdges.length; m++) {\n internalEdge.ids.push(undirectedEdges[parseInt(m.toString(), 10)].id);\n }\n internalEdge.source = internalVertices[parseInt(i.toString(), 10)];\n if (!internalVertices[parseInt(i.toString(), 10)].connectsAsSource) {\n internalVertices[parseInt(i.toString(), 10)].connectsAsSource = [];\n }\n if (internalVertices[parseInt(i.toString(), 10)].connectsAsSource.indexOf(internalEdge) < 0) {\n internalVertices[parseInt(i.toString(), 10)].connectsAsSource.push(internalEdge);\n }\n }\n }\n }\n internalVertices[parseInt(i.toString(), 10)].temp[0] = 0;\n }\n };\n /* tslint:enable */\n /**\n * used to set the optimum value of each vertex on the layout \\\n *\n * @returns { void } used to set the optimum value of each vertex on the layout .\\\n * @private\n */\n MultiParentModel.prototype.fixRanks = function () {\n var rankList = [];\n this.ranks = [];\n for (var i = 0; i < this.maxRank + 1; i++) {\n rankList[parseInt(i.toString(), 10)] = [];\n this.ranks[parseInt(i.toString(), 10)] = rankList[parseInt(i.toString(), 10)];\n }\n var rootsArray = null;\n if (this.roots != null) {\n var oldRootsArray = this.roots;\n rootsArray = [];\n for (var i = 0; i < oldRootsArray.length; i++) {\n var cell = oldRootsArray[parseInt(i.toString(), 10)];\n var internalNode = this.getDictionary(this.vertexMapper, cell);\n rootsArray[parseInt(i.toString(), 10)] = internalNode;\n }\n }\n this.visit('updateMinMaxRank', rootsArray, false, null, { seenNodes: null, unseenNodes: null, rankList: rankList });\n };\n //Updates the min/max rank of the layer\n MultiParentModel.prototype.updateMinMaxRank = function (layer, seen, data) {\n //let seenNodes: {} = data.seenNodes;\n //let unseenNodes: {} = data.unseenNodes;\n var parent = data.parent;\n var node = data.root;\n var edge = data.edge;\n var rankList = data.rankList;\n if (!node.maxRank && node.maxRank !== 0) {\n node.maxRank = -1;\n }\n if (!node.minRank && node.minRank !== 0) {\n node.minRank = -1;\n }\n if (seen === 0 && node.maxRank < 0 && node.minRank < 0) {\n rankList[node.temp[0]].push(node);\n node.maxRank = node.temp[0];\n node.minRank = node.temp[0];\n node.temp[0] = rankList[node.maxRank].length - 1;\n }\n if (parent != null && edge != null) {\n var parentToCellRankDifference = parent.maxRank - node.maxRank;\n if (parentToCellRankDifference > 1) {\n edge.maxRank = parent.maxRank;\n edge.minRank = node.maxRank;\n edge.temp = [];\n edge.x = [];\n edge.y = [];\n for (var i = edge.minRank + 1; i < edge.maxRank; i++) {\n rankList[parseInt(i.toString(), 10)].push(edge);\n this.hierarchicalUtil.setTempVariable(edge, i, rankList[parseInt(i.toString(), 10)].length - 1);\n }\n }\n }\n };\n //used to store the value of th given key on the object\n MultiParentModel.prototype.setDictionary = function (dic, key, value, edgeId) {\n if (!edgeId) {\n var id = key.name;\n var previous = dic.map[\"\" + id];\n dic.map[\"\" + id] = value;\n return previous;\n }\n else {\n var previous = dic.map[\"\" + edgeId];\n dic.map[\"\" + edgeId] = value;\n return previous;\n }\n };\n /**\n * used to store the value of th given key on the objectt \\\n *\n * @returns { IVertex } used to store the value of th given key on the object .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @param {IVertex} key - provide the angle value.\n * @param {WeightedCellSorter} value - provide the angle value.\n * @param {boolean} flag - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.setDictionaryForSorter = function (dic, key, value, flag) {\n var id = key.id;\n if (!id) {\n //id = this._getDictionaryForSorter(dic, key);\n }\n var previous = dic.map[\"\" + id];\n dic.map[\"\" + id] = value;\n return previous;\n };\n /**\n * used to get the value of the given key \\\n *\n * @returns { IVertex } used to get the value of the given key .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @param {IVertex} key - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.getDictionary = function (dic, key) {\n if (!this.multiObjectIdentityCounter && this.multiObjectIdentityCounter !== 0) {\n this.multiObjectIdentityCounter = 0;\n }\n var id = key.name;\n if (!id) {\n if (!key.layoutObjectId) { ///####\n key.layoutObjectId = 'graphHierarchyNode#' + this.multiObjectIdentityCounter++;\n return key.layoutObjectId;\n }\n else {\n return dic.map[key.layoutObjectId];\n }\n }\n return dic.map[\"\" + id];\n };\n /**\n * used to get the value of the given key \\\n *\n * @returns { IVertex } used to get the value of the given key .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @param {IVertex} key - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.getDictionaryForSorter = function (dic, key) {\n if (!this.multiObjectIdentityCounter && this.multiObjectIdentityCounter !== 0) {\n this.multiObjectIdentityCounter = 0;\n }\n var id = key.id;\n if (!id) {\n if (!key.layoutObjectId) { ///####\n key.layoutObjectId = 'graphHierarchyNode#' + this.multiObjectIdentityCounter++;\n return key.layoutObjectId;\n }\n else {\n return dic.map[key.layoutObjectId];\n }\n }\n return dic.map[\"\" + id];\n };\n /**\n * used to get all the values of the dictionary object \\\n *\n * @returns { IVertex[] } used to get all the values of the dictionary object .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.getDictionaryValues = function (dic) {\n var result = [];\n for (var _i = 0, _a = Object.keys(dic.map); _i < _a.length; _i++) {\n var key = _a[_i];\n result.push(dic.map[\"\" + key]);\n }\n return result;\n };\n /**\n * used to visit all the entries on the given dictionary with given function \\\n *\n * @returns { void } used to visit all the entries on the given dictionary with given function .\\\n * @param {string} visitor - provide the visitor value.\n * @param {IVertex[]} dfsRoots - provide the dfsRoots value.\n * @param {boolean} trackAncestors - provide the trackAncestors value.\n * @param {{}} seenNodes - provide the seenNodes value.\n * @param {TraverseData} data - provide the data value.\n * @private\n */\n MultiParentModel.prototype.visit = function (visitor, dfsRoots, trackAncestors, seenNodes, data) {\n //let seenNodes1: {} = data.seenNodes;\n //let unseenNodes1: {} = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n // Run depth first search through on all roots\n if (dfsRoots != null) {\n for (var i = 0; i < dfsRoots.length; i++) {\n var internalNode = dfsRoots[parseInt(i.toString(), 10)];\n if (internalNode != null) {\n if (seenNodes == null) {\n seenNodes = new Object();\n }\n data.parent = null;\n data.root = internalNode;\n data.edge = null;\n if (trackAncestors) {\n // Set up hash code for root\n internalNode.hashCode = [];\n internalNode.hashCode[0] = this.dfsCount;\n internalNode.hashCode[1] = i;\n this.extendedDfs(visitor, seenNodes, i, 0, data);\n }\n else {\n this.depthFirstSearch(visitor, seenNodes, 0, data);\n }\n }\n }\n this.dfsCount++;\n }\n };\n //used to perform the depth fisrt search on the layout model\n MultiParentModel.prototype.depthFirstSearch = function (visitor, seen, layer, data) {\n //let seenNodes1: {} = data.seenNodes;\n //let unseenNodes1: {} = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n //let parent: IVertex = data.parent;\n var root = data.root;\n //let edge: IEdge = data.edge;\n if (root != null) {\n var rootId = root.id;\n if (seen[\"\" + rootId] == null) {\n seen[\"\" + rootId] = root;\n this.updateConnectionRank(visitor, layer, 0, data);\n // Copy the connects as source list so that visitors can change the original for edge direction inversions\n var outgoingEdges = root.connectsAsSource.slice();\n for (var i = 0; i < outgoingEdges.length; i++) {\n var internalEdge = outgoingEdges[parseInt(i.toString(), 10)];\n var targetNode = internalEdge.target;\n // Root check is O(|roots|)\n data.parent = root;\n data.root = targetNode;\n data.edge = internalEdge;\n this.depthFirstSearch(visitor, seen, layer + 1, data);\n }\n }\n else {\n this.updateConnectionRank(visitor, layer, 1, data);\n }\n }\n };\n //Updates the rank of the connection\n MultiParentModel.prototype.updateConnectionRank = function (visitor, layer, seen, traversedList) {\n var parent = traversedList.parent;\n var root = traversedList.root;\n var edge = traversedList.edge;\n if (visitor === 'removeParentConnection' || visitor === 'removeNodeConnection') {\n var remove = visitor === 'removeNodeConnection' ? true : false;\n this.removeConnectionEdge(parent, root, edge, layer, traversedList, remove);\n }\n if (visitor === 'updateMinMaxRank') {\n this.updateMinMaxRank(layer, seen, traversedList);\n }\n };\n //Removes the edge from the collection\n MultiParentModel.prototype.removeConnectionEdge = function (parent, node, edge, layer, data, remove) {\n var seenNodes = data.seenNodes;\n var unseenNodes = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n if (this.hierarchicalUtil.isAncestor(node, parent)) {\n this.hierarchicalUtil.invert(edge, 0);\n this.hierarchicalUtil.remove(edge, parent.connectsAsSource);\n if (remove) {\n node.connectsAsSource.push(edge);\n parent.connectsAsTarget.push(edge);\n this.hierarchicalUtil.remove(edge, node.connectsAsTarget);\n }\n else {\n parent.connectsAsTarget.push(edge);\n this.hierarchicalUtil.remove(edge, node.connectsAsTarget);\n node.connectsAsSource.push(edge);\n }\n }\n seenNodes[node.id] = node;\n delete unseenNodes[node.id];\n };\n //the dfs extends the default version by keeping track of cells ancestors, but it should be only used when necessary\n MultiParentModel.prototype.extendedDfs = function (visitor, seen, cHash, layer, data) {\n //let seenNodes: {} = data.seenNodes;\n //let unseenNodes: {} = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n var parent = data.parent;\n var root = data.root;\n var edge = data.edge;\n if (root != null) {\n if (parent != null) {\n if (root.hashCode == null ||\n root.hashCode[0] !== parent.hashCode[0]) {\n var hashCodeLength = parent.hashCode.length + 1;\n root.hashCode = parent.hashCode.slice();\n root.hashCode[hashCodeLength - 1] = cHash;\n }\n }\n var rootId = root.id;\n if (seen[\"\" + rootId] == null) {\n seen[\"\" + rootId] = root;\n this.updateConnectionRank(visitor, layer, 0, data);\n var outgoingEdges = root.connectsAsSource.slice();\n for (var i = 0; i < outgoingEdges.length; i++) {\n var internalEdge = outgoingEdges[parseInt(i.toString(), 10)];\n var targetNode = internalEdge.target;\n data.parent = root;\n data.root = targetNode;\n data.edge = internalEdge;\n this.extendedDfs(visitor, seen, i, layer + 1, data);\n }\n }\n else {\n this.updateConnectionRank(visitor, layer, 1, data);\n }\n }\n };\n /**\n * used to clone the specified object ignoring all fieldnames in the given array of transient fields \\\n *\n * @returns { void } used to clone the specified object ignoring all fieldnames in the given array of transient fields .\\\n * @param {Object} obj - provide the source value.\n * @param {string[]} transients - provide the target value.\n * @param {boolean} shallow - provide the shallow value.\n *\n * @private\n */\n MultiParentModel.prototype.clone = function (obj, transients, shallow) {\n shallow = (shallow != null) ? shallow : false;\n if (obj != null && typeof (obj.constructor) === 'function') {\n var clonedObj = obj.constructor();\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var i = _a[_i];\n if (i !== 'layoutObjectId' && (transients == null || transients.indexOf(i) < 0)) {\n if (!shallow && typeof (obj[\"\" + i]) === 'object') {\n //not used\n // _clone[i] = $.extend(true, {}, obj[i]);\n }\n else {\n clonedObj[\"\" + i] = obj[\"\" + i];\n }\n }\n }\n return clonedObj;\n }\n return null;\n };\n return MultiParentModel;\n}());\n/**\n * Defines how to reduce the crosses in between the line segments\n */\nvar CrossReduction = /** @class */ (function () {\n function CrossReduction() {\n }\n /**\n * used to calculate the number of edges crossing the layout model \\\n *\n * @returns { number } used to calculate the number of edges crossing the layout model\\\n * @param {MultiParentModel} model - provide the model value.\n *\n * @private\n */\n CrossReduction.prototype.calculateCrossings = function (model) {\n var numRanks = model.ranks.length;\n var totalCrossings = 0;\n for (var i = 1; i < numRanks; i++) {\n totalCrossings += this.calculateRankCrossing(i, model);\n }\n return totalCrossings;\n };\n /**\n * used to get the temp value specified for the node or connector. \\\n *\n * @returns { boolean } used to get the temp value specified for the node or connector.\\\n * @param {IVertex} node - provide the node value.\n * @param {IVertex} layer - provide the layer value.\n *\n * @private\n */\n CrossReduction.prototype.getTempVariable = function (node, layer) {\n if (node) {\n if (this.isVertex(node)) {\n return node.temp[0];\n }\n else {\n return node.temp[layer - node.minRank - 1];\n }\n }\n return 0;\n };\n //used to specify the number of conenctors crossing between the specified rank and its below rank\n CrossReduction.prototype.calculateRankCrossing = function (i, model) {\n var totalCrossings = 0;\n var rank = model.ranks[parseInt(i.toString(), 10)];\n var previousRank = model.ranks[i - 1];\n var tmpIndices = [];\n // Iterate over the top rank and fill in the connection information\n for (var j = 0; j < rank.length; j++) {\n var node = rank[parseInt(j.toString(), 10)];\n var rankPosition = this.getTempVariable(node, i);\n var connectedCells = this.getConnectedCellsOnLayer(node, i, true);\n ///####\n var nodeIndices = [];\n for (var k = 0; k < connectedCells.length; k++) {\n var connectedNode = connectedCells[parseInt(k.toString(), 10)];\n var otherCellRankPosition = this.getTempVariable(connectedNode, i - 1);\n nodeIndices.push(otherCellRankPosition);\n }\n nodeIndices.sort(function (x, y) { return x - y; });\n tmpIndices[parseInt(rankPosition.toString(), 10)] = nodeIndices;\n }\n var indices = [];\n for (var j = 0; j < tmpIndices.length; j++) {\n indices = indices.concat(tmpIndices[parseInt(j.toString(), 10)]);\n }\n var firstIndex = 1;\n while (firstIndex < previousRank.length) {\n firstIndex <<= 1;\n }\n var treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n var tree = [];\n for (var j = 0; j < treeSize; ++j) {\n tree[parseInt(j.toString(), 10)] = 0;\n }\n for (var j = 0; j < indices.length; j++) {\n var index = indices[parseInt(j.toString(), 10)];\n var treeIndex = index + firstIndex;\n ++tree[parseInt(treeIndex.toString(), 10)];\n while (treeIndex > 0) {\n if (treeIndex % 2) {\n totalCrossings += tree[treeIndex + 1];\n }\n treeIndex = (treeIndex - 1) >> 1;\n ++tree[parseInt(treeIndex.toString(), 10)];\n }\n }\n return totalCrossings;\n };\n /**\n * Calculates and reduces the crosses between line segments\n *\n * @returns { void }Calculates and reduces the crosses between line segments.\\\n * @param {MultiParentModel} model - provide the target value.\n * @private\n */\n CrossReduction.prototype.execute = function (model) {\n // Stores initial ordering\n this.nestedBestRanks = [];\n for (var i = 0; i < model.ranks.length; i++) {\n this.nestedBestRanks[parseInt(i.toString(), 10)] = model.ranks[parseInt(i.toString(), 10)].slice();\n }\n var iterationsWithoutImprovement = 0;\n var currentBestCrossings = this.calculateCrossings(model);\n for (var i = 0; i < 24 && iterationsWithoutImprovement < 2; i++) {\n this.weightedMedian(i, model);\n var candidateCrossings = this.calculateCrossings(model);\n if (candidateCrossings < currentBestCrossings) {\n currentBestCrossings = candidateCrossings;\n iterationsWithoutImprovement = 0;\n for (var j = 0; j < this.nestedBestRanks.length; j++) {\n var rank = model.ranks[parseInt(j.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n var obj = this.nestedBestRanks[parseInt(j.toString(), 10)][cell.temp[0]];\n var check = true;\n if (cell.edges && obj && !obj.edges) {\n check = false;\n }\n if (obj && check) {\n this.nestedBestRanks[parseInt(j.toString(), 10)][cell.temp[0]] = cell;\n }\n }\n }\n }\n else {\n // Increase count of iterations\n iterationsWithoutImprovement++;\n // Restore the best values to the cells\n for (var j = 0; j < this.nestedBestRanks.length; j++) {\n var rank = model.ranks[parseInt(j.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n this.setTempVariable(cell, j, k);\n }\n }\n }\n if (currentBestCrossings === 0) {\n break;\n }\n }\n // Store the best rankings but in the model\n var ranks = [];\n var rankList = [];\n for (var i = 0; i < model.maxRank + 1; i++) {\n rankList[parseInt(i.toString(), 10)] = [];\n ranks[parseInt(i.toString(), 10)] = rankList[parseInt(i.toString(), 10)];\n }\n for (var i = 0; i < this.nestedBestRanks.length; i++) {\n for (var j = 0; j < this.nestedBestRanks[parseInt(i.toString(), 10)].length; j++) {\n rankList[parseInt(i.toString(), 10)].push(this.nestedBestRanks[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]);\n }\n }\n model.ranks = ranks;\n };\n /**\n * check whether the object is vertext or edge on the layout model. \\\n *\n * @returns { boolean } check whether the object is vertext or edge on the layout model..\\\n * @param {IVertex} node - provide the iteration value.\n *\n * @private\n */\n CrossReduction.prototype.isVertex = function (node) {\n if (node && node.cell && (node.cell.inEdges || node.cell.outEdges)) {\n return true;\n }\n return false;\n };\n /**\n * used to move up or move down the node position on the adjacent ranks \\\n *\n * @returns { void } used to move up or move down the node position on the adjacent ranks.\\\n * @param {number} iteration - provide the iteration value.\n * @param {MultiParentModel} model - provide the model value.\n *\n * @private\n */\n CrossReduction.prototype.weightedMedian = function (iteration, model) {\n // Reverse sweep direction each time through this method\n var downwardSweep = (iteration % 2 === 0);\n if (downwardSweep) {\n for (var j = model.maxRank - 1; j >= 0; j--) {\n this.medianRank(j, downwardSweep);\n }\n }\n else {\n for (var j = 1; j < model.maxRank; j++) {\n this.medianRank(j, downwardSweep);\n }\n }\n };\n /**\n * used to get the node next(up) connected to the specified node or connector \\\n *\n * @returns { void } calculates the rank elements on the specified rank.\\\n * @param {IVertex} cell - provide the cell value.\n * @param {number} layer - provide the layer value.\n * @param {boolean} isPrevious - provide the isPrevious value.\n *\n * @private\n */\n CrossReduction.prototype.getConnectedCellsOnLayer = function (cell, layer, isPrevious) {\n if (isPrevious === void 0) { isPrevious = false; }\n var connectedlayer = 'nextLayerConnectedCells';\n var connectedAs = 'connectsAsTarget';\n if (isPrevious) {\n connectedlayer = 'previousLayerConnectedCells';\n connectedAs = 'connectsAsSource';\n }\n if (cell) {\n if (this.isVertex(cell)) {\n if (cell[\"\" + connectedlayer] == null) {\n cell[\"\" + connectedlayer] = [];\n cell[\"\" + connectedlayer][0] = [];\n for (var i = 0; i < cell[\"\" + connectedAs].length; i++) {\n var edge = cell[\"\" + connectedAs][parseInt(i.toString(), 10)];\n if (edge.maxRank === undefined) {\n edge.maxRank = -1;\n }\n if (edge.maxRank === -1 || (isPrevious ? (edge.minRank === layer - 1) : (edge.maxRank === layer + 1))) {\n // Either edge is not in any rank or no dummy nodes in edge, add node of other side of edge\n cell[\"\" + connectedlayer][0].push(isPrevious ? edge.target : edge.source);\n }\n else {\n // Edge spans at least two layers, add edge\n cell[\"\" + connectedlayer][0].push(edge);\n }\n }\n }\n return cell[\"\" + connectedlayer][0];\n }\n else {\n if (cell[\"\" + connectedlayer] == null) {\n cell[\"\" + connectedlayer] = [];\n for (var i = 0; i < cell.temp.length; i++) {\n cell[\"\" + connectedlayer][parseInt(i.toString(), 10)] = [];\n if (i === (isPrevious ? 0 : (cell.temp.length - 1))) {\n cell[\"\" + connectedlayer][parseInt(i.toString(), 10)].push(isPrevious ? cell.target : cell.source);\n }\n else {\n cell[\"\" + connectedlayer][parseInt(i.toString(), 10)].push(cell);\n }\n }\n }\n return cell[\"\" + connectedlayer][layer - cell.minRank - 1];\n }\n }\n return null;\n };\n /**\n * calculates the rank elements on the specified rank \\\n *\n * @returns { void } calculates the rank elements on the specified rank.\\\n * @param {IVertex[]} connectedCells - provide the cell value.\n * @param {number} rankValue - provide the layer value.\n *\n * @private\n */\n CrossReduction.prototype.medianValue = function (connectedCells, rankValue) {\n var medianValues = [];\n var arrayCount = 0;\n for (var i = 0; i < connectedCells.length; i++) {\n var cell = connectedCells[parseInt(i.toString(), 10)];\n medianValues[arrayCount++] = this.getTempVariable(cell, rankValue);\n }\n // sorts numerical order sort\n medianValues.sort(function (a, b) { return a - b; });\n if (arrayCount % 2 === 1) {\n // For odd numbers of adjacent vertices return the median\n return medianValues[Math.floor(arrayCount / 2)];\n }\n else if (arrayCount === 2) {\n return ((medianValues[0] + medianValues[1]) / 2.0);\n }\n else {\n var medianPoint = arrayCount / 2;\n var leftMedian = medianValues[medianPoint - 1] - medianValues[0];\n var rightMedian = medianValues[arrayCount - 1]\n - medianValues[parseInt(medianPoint.toString(), 10)];\n return (medianValues[medianPoint - 1] * rightMedian + medianValues[parseInt(medianPoint.toString(), 10)] * leftMedian) / (leftMedian + rightMedian);\n }\n };\n /**\n * get the temp value of the specified layer \\\n *\n * @returns { void } getDirection method .\\\n * @param {IVertex} cell - provide the cell value.\n * @param {layer} layer - provide the layer value.\n * @param {LayoutOrientation} value - provide the value value.\n *\n * @private\n */\n CrossReduction.prototype.setTempVariable = function (cell, layer, value) {\n if (cell) {\n cell.temp[0] = value;\n }\n };\n /**\n * used to minimize the node position on this rank and one of its adjacent ranks\n */\n CrossReduction.prototype.medianRank = function (rankValue, downwardSweep) {\n var numCellsForRank = this.nestedBestRanks[parseInt(rankValue.toString(), 10)].length;\n var medianValues = [];\n var reservedPositions = [];\n for (var i = 0; i < numCellsForRank; i++) {\n var cell = this.nestedBestRanks[parseInt(rankValue.toString(), 10)][parseInt(i.toString(), 10)];\n var sorterEntry = { medianValue: 0 };\n sorterEntry.cell = cell;\n // Flip whether or not equal medians are flipped on up and down sweeps\n //TODO re-implement some kind of nudge medianValues[i].nudge = !downwardSweep;\n var nextLevelConnectedCells = void 0;\n if (downwardSweep) {\n nextLevelConnectedCells = this.getConnectedCellsOnLayer(cell, rankValue);\n }\n else {\n nextLevelConnectedCells = this.getConnectedCellsOnLayer(cell, rankValue, true);\n }\n var nextRankValue = void 0;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n downwardSweep ? nextRankValue = rankValue + 1 : nextRankValue = rankValue - 1;\n if (nextLevelConnectedCells != null && nextLevelConnectedCells.length !== 0) {\n sorterEntry.medianValue = this.medianValue(nextLevelConnectedCells, nextRankValue);\n medianValues.push(sorterEntry);\n }\n else {\n // Nodes with no adjacent vertices are flagged in the reserved array to\n //indicate they should be left in their current position.\n reservedPositions[this.getTempVariable(cell, rankValue)] = true;\n }\n }\n medianValues.sort(this.compare);\n // Set the new position of each node within the rank using its temp variable\n for (var i = 0; i < numCellsForRank; i++) {\n if (reservedPositions[parseInt(i.toString(), 10)] == null && medianValues.length > 0) {\n var cell = medianValues.shift().cell;\n this.setTempVariable(cell, rankValue, i);\n }\n }\n };\n //compares two values, it sends the values to the compare function,\n //and sorts the values according to the returned (negative, zero, positive) value\n CrossReduction.prototype.compare = function (a, b) {\n if (a != null && b != null) {\n if (b.medianValue > a.medianValue) {\n return -1;\n }\n else if (b.medianValue < a.medianValue) {\n return 1;\n }\n }\n return 0;\n };\n return CrossReduction;\n}());\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Component, Property, Complex, CollectionFactory, ChildProperty, Event, L10n, initializeCSPTemplate } from '@syncfusion/ej2-base';\nimport { isBlazor } from '@syncfusion/ej2-base';\nimport { Browser, EventHandler, Draggable, Collection } from '@syncfusion/ej2-base';\nimport { remove } from '@syncfusion/ej2-base';\nimport { Accordion } from '@syncfusion/ej2-navigations';\nimport { Node, Connector, Shape, Size, ConnectorConstraints, NodeConstraints } from '../diagram/index';\nimport { Transform } from '../diagram/index';\nimport { DiagramRenderer, StackPanel, Margin } from '../diagram/index';\nimport { TextElement, Canvas } from '../diagram/index';\nimport { SvgRenderer } from '../diagram/rendering/svg-renderer';\nimport { parentsUntil, createSvgElement, createHtmlElement, createMeasureElements } from '../diagram/utility/dom-util';\nimport { removeElementsByClass, applyStyleAgainstCsp } from '../diagram/utility/dom-util';\nimport { scaleElement, arrangeChild, groupHasType, setUMLActivityDefaults, updateDefaultValues } from '../diagram/utility/diagram-util';\nimport { getFunction, randomId, cloneObject } from '../diagram/utility/base-util';\nimport { getOuterBounds } from '../diagram/utility/connector';\nimport { Point } from '../diagram/primitives/point';\nimport { CanvasRenderer } from '../diagram/rendering/canvas-renderer';\nimport { Tooltip } from '@syncfusion/ej2-popups';\n// eslint-disable-next-line\nvar getObjectType = function (obj) {\n var conn = obj;\n if (conn.sourcePoint || conn.targetPoint || conn.sourceID || conn.targetID\n || conn.sourcePortID || conn.targetPortID || conn.sourceDecorator || conn.targetDecorator) {\n return Connector;\n }\n if (obj.shape && (obj.shape instanceof Shape || obj.shape.type)) {\n return Node;\n }\n return Node;\n};\n/**\n * A palette allows to display a group of related symbols and it textually annotates the group with its header.\n */\nvar Palette = /** @class */ (function (_super) {\n __extends(Palette, _super);\n // eslint-disable-next-line\n function Palette(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n __decorate([\n Property('')\n ], Palette.prototype, \"id\", void 0);\n __decorate([\n Property()\n ], Palette.prototype, \"height\", void 0);\n __decorate([\n Property(true)\n ], Palette.prototype, \"expanded\", void 0);\n __decorate([\n Property('')\n ], Palette.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Palette.prototype, \"title\", void 0);\n __decorate([\n CollectionFactory(getObjectType)\n ], Palette.prototype, \"symbols\", void 0);\n return Palette;\n}(ChildProperty));\nexport { Palette };\n/**\n * customize the drag size of the individual palette items.\n */\nvar SymbolDragSize = /** @class */ (function (_super) {\n __extends(SymbolDragSize, _super);\n function SymbolDragSize() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolDragSize.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolDragSize.prototype, \"height\", void 0);\n return SymbolDragSize;\n}(ChildProperty));\nexport { SymbolDragSize };\n/**\n * customize the preview size and position of the individual palette items.\n */\nvar SymbolPreview = /** @class */ (function (_super) {\n __extends(SymbolPreview, _super);\n function SymbolPreview() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolPreview.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolPreview.prototype, \"height\", void 0);\n __decorate([\n Complex({}, Point)\n ], SymbolPreview.prototype, \"offset\", void 0);\n return SymbolPreview;\n}(ChildProperty));\nexport { SymbolPreview };\n/**\n * Represents the Symbol Palette Component.\n * ```html\n *
\n * \n * ```\n */\n/**\n * The symbol palette control allows to predefine the frequently used nodes and connectors\n * and to drag and drop those nodes/connectors to drawing area\n */\nvar SymbolPalette = /** @class */ (function (_super) {\n __extends(SymbolPalette, _super);\n //region - protected methods\n /**\n * Constructor for creating the symbol palette Component\n *\n * @param {SymbolPaletteModel} options The symbol palette model.\n * @param {string | HTMLElement} element The symbol palette element.\n */\n function SymbolPalette(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.symbolTable = {};\n /** @private */\n _this.childTable = {};\n _this.info = 'info';\n _this.oldObject = null;\n _this.laneTable = {};\n _this.isExpand = false;\n _this.isExpandMode = false;\n _this.isMethod = false;\n _this.paletteid = 88123;\n _this.checkOnRender = false;\n _this.symbolTooltipObject = null;\n // eslint-disable\n _this.helper = function (e) {\n var clonedElement;\n var id = (_this.selectedSymbol && _this.selectedSymbol.id) || e.sender.target.id.split('_container')[0];\n var symbol = _this.symbolTable[\"\" + id];\n if (symbol && _this.selectedSymbol) {\n _this.selectedSymbols = _this.selectedSymbol.id === symbol.id ? symbol : _this.selectedSymbol;\n //const position: PointModel = this.getMousePosition(e.sender);\n clonedElement = _this.getSymbolPreview(_this.selectedSymbols, e.sender, _this.element);\n clonedElement.setAttribute('paletteId', _this.element.id);\n }\n return clonedElement;\n };\n var child;\n var node;\n for (var i = 0; _this && _this.palettes && i < _this.palettes.length; i++) {\n for (var j = 0; j < _this.palettes[parseInt(i.toString(), 10)].symbols.length; j++) {\n child = _this.palettes[parseInt(i.toString(), 10)].symbols[parseInt(j.toString(), 10)];\n node = options.palettes[parseInt(i.toString(), 10)].symbols[parseInt(j.toString(), 10)];\n if (child && child.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(node, child);\n }\n if (_this.nodeDefaults || _this.connectorDefaults) {\n updateDefaultValues(child, node, child instanceof Node ? _this.nodeDefaults : _this.connectorDefaults);\n }\n }\n }\n return _this;\n }\n /**\n * Refreshes the panel when the symbol palette properties are updated\\\n *\n * @returns { void} Refreshes the panel when the symbol palette properties are updated .\\\n * @param {SymbolPaletteModel} newProp - Defines the new values of the changed properties.\n * @param {SymbolPaletteModel} oldProp - Defines the old values of the changed properties.\n */\n // eslint-disable-next-line\n SymbolPalette.prototype.onPropertyChanged = function (newProp, oldProp) {\n var refresh = false;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n this.element.style.width = this.width.toString();\n break;\n case 'height':\n this.element.style.height = this.height.toString();\n break;\n case 'symbolPreview':\n break;\n case 'symbolWidth':\n case 'symbolHeight':\n case 'getSymbolInfo':\n if (this.isReact) {\n refresh = false;\n }\n else {\n refresh = true;\n }\n break;\n case 'enableSearch':\n if (newProp.enableSearch && !isBlazor()) {\n this.createTextbox();\n }\n else {\n var divElement = document.getElementById(this.element.id + '_search');\n if (divElement) {\n divElement.parentNode.removeChild(divElement);\n }\n }\n break;\n case 'palettes':\n for (var _b = 0, _c = Object.keys(newProp.palettes); _b < _c.length; _b++) {\n var i = _c[_b];\n var index = Number(i);\n if (!isBlazor() && !this.accordionElement.items[parseInt(index.toString(), 10)]) {\n this.accordionElement.items[parseInt(index.toString(), 10)] = {\n header: newProp.palettes[parseInt(index.toString(), 10)].title || '',\n expanded: newProp.palettes[parseInt(index.toString(), 10)].expanded,\n iconCss: newProp.palettes[parseInt(index.toString(), 10)].iconCss || ''\n };\n }\n if (newProp.palettes[parseInt(index.toString(), 10)].height) {\n var paletteDiv = document.getElementById(this.palettes[parseInt(index.toString(), 10)].id + '_content');\n paletteDiv.style.height = newProp.palettes[parseInt(index.toString(), 10)].height + 'px';\n }\n if (newProp.palettes[parseInt(index.toString(), 10)].iconCss !== undefined) {\n if (!isBlazor()) {\n this.accordionElement.items[parseInt(index.toString(), 10)].iconCss = newProp.palettes[parseInt(index.toString(), 10)].iconCss || '';\n refresh = true;\n }\n }\n if (newProp.palettes[parseInt(index.toString(), 10)].expanded !== undefined && !isBlazor()) {\n if (!this.palettes[parseInt(index.toString(), 10)].isInteraction) {\n this.accordionElement.items[parseInt(index.toString(), 10)].expanded = newProp.palettes[parseInt(index.toString(), 10)].expanded;\n this.isExpand = true;\n }\n else {\n this.palettes[parseInt(index.toString(), 10)].isInteraction = false;\n }\n if (!this.isExpandMode && !this.isMethod && !this.isExpand) {\n this.isExpand = true;\n }\n }\n if (isBlazor() && newProp.palettes[parseInt(index.toString(), 10)].symbols !== null) {\n refresh = true;\n }\n if (isBlazor() && newProp.palettes[parseInt(index.toString(), 10)].symbols === null) {\n this.updateBlazorProperties(newProp);\n }\n }\n break;\n case 'enableAnimation':\n if (!isBlazor()) {\n if (!this.enableAnimation) {\n this.accordionElement.animation = { expand: { duration: 0 }, collapse: { duration: 0 } };\n }\n else {\n this.accordionElement.animation = { expand: { duration: 400 }, collapse: { duration: 400 } };\n }\n }\n break;\n case 'expandMode':\n if (!isBlazor()) {\n this.accordionElement.expandMode = this.expandMode;\n refresh = true;\n this.isExpandMode = true;\n }\n break;\n case 'allowDrag':\n this.allowDrag = newProp.allowDrag;\n if (!this.allowDrag) {\n this.draggable.helper = function () {\n return null;\n };\n }\n else {\n this.initDraggable();\n this.draggable.helper = this.helper;\n }\n break;\n }\n }\n if (refresh) {\n this.refreshPalettes();\n }\n if (this.isExpand && !refresh) {\n this.refresh();\n this.isExpand = false;\n for (var p = 0; p < this.palettes.length; p++) {\n var paletteElement = this.palettes[parseInt(p.toString(), 10)].id;\n if (window[\"\" + paletteElement]) {\n if (window[\"\" + paletteElement].length > 1) {\n window[\"\" + paletteElement][1].parentNode.removeChild(window[\"\" + paletteElement][1]);\n window[\"\" + paletteElement][1] = null;\n }\n }\n }\n }\n this.isMethod = false;\n };\n /**\n * updateBlazorProperties method\\\n *\n * @returns {void} updateBlazorProperties method .\\\n * @param {SymbolPaletteModel} newProp - provide the scale value.\n *\n * @private\n */\n SymbolPalette.prototype.updateBlazorProperties = function (newProp) {\n var blazorInterop = 'sfBlazor';\n var blazor = 'Blazor';\n if (window && window[\"\" + blazor]) {\n var palObj = { palette: newProp.palettes };\n var obj = { 'methodName': 'UpdateBlazorProperties', 'paletteobj': palObj };\n window[\"\" + blazorInterop].updateBlazorProperties(obj, this);\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Get the properties to be maintained in the persisted state.\n */\n SymbolPalette.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Initializes the values of private members.\n *\n * @returns {void} Initializes the values of private members.\n * @private\n */\n SymbolPalette.prototype.preRender = function () {\n var _this = this;\n this.l10n = new L10n(this.getModuleName(), this.defaultLocale(), this.locale);\n if (this.element.id === '') {\n var collection = document.getElementsByClassName('e-symbolpalette').length;\n this.element.id = 'symbolpalette_' + this.paletteid + '_' + collection;\n }\n this.element.style.overflow = 'auto';\n this.element.style.height = this.height.toString();\n this.element.style.width = this.width.toString();\n if (this.enableSearch && !isBlazor()) {\n this.createTextbox();\n }\n //create accordion element\n if (!isBlazor()) {\n var accordionDiv = createHtmlElement('div', { id: this.element.id + '_container' });\n this.accordionElement = new Accordion({\n expandMode: this.expandMode\n });\n if (!this.enableAnimation) {\n this.accordionElement.animation = { expand: { duration: 0 }, collapse: { duration: 0 } };\n }\n this.accordionElement.created = function () {\n _this.checkOnRender = true;\n };\n this.accordionElement.expanded = function (args) {\n var index = _this.accordionElement.items.indexOf(args.item);\n var isAllowDatabind = _this.allowServerDataBinding;\n _this.allowServerDataBinding = false;\n _this.palettes[parseInt(index.toString(), 10)].expanded = args.isExpanded;\n _this.palettes[parseInt(index.toString(), 10)].isInteraction = true;\n _this.allowServerDataBinding = isAllowDatabind;\n };\n this.accordionElement.expanding = function (args) {\n if (_this.checkOnRender) {\n // eslint-disable-next-line\n var diagramArgs = {\n element: args.element, content: args.content, index: args.index, cancel: false,\n isExpanded: args.isExpanded, palette: _this.palettes[args.index]\n };\n var event_1 = 'paletteExpanding';\n _this.trigger(event_1, diagramArgs);\n args.cancel = diagramArgs.cancel;\n }\n };\n this.element.appendChild(accordionDiv);\n }\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement] = null;\n }\n createMeasureElements();\n this.unWireEvents();\n this.wireEvents();\n };\n /**\n * EJ2-61531- Localization support for the symbol palette search box placeholder.\n * @returns defaultLocale\n */\n SymbolPalette.prototype.defaultLocale = function () {\n return { SearchShapes: 'Search Shapes' };\n };\n /**\n * Renders the rulers.\n *\n * @returns {void} Renders the rulers.\n * @private\n */\n SymbolPalette.prototype.render = function () {\n this.diagramRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), false);\n this.svgRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), true);\n this.updatePalettes();\n if (!isBlazor()) {\n this.accordionElement.appendTo('#' + this.element.id + '_container');\n }\n this.renderComplete();\n if (isBlazor()) {\n this.element.classList.remove('e-symbolpalette-hidden');\n }\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n SymbolPalette.prototype.getModuleName = function () {\n return 'SymbolPalette';\n };\n /**\n * To provide the array of modules needed for control rendering.\n *\n * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering .\n * @private\n */\n SymbolPalette.prototype.requiredModules = function () {\n var modules = [];\n modules.push({\n member: 'Bpmn',\n args: []\n });\n return modules;\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n SymbolPalette.prototype.destroy = function () {\n if (this.allowDrag) {\n this.draggable.destroy();\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n var content = document.getElementById(this.element.id + '_container');\n if (content) {\n this.element.removeChild(content);\n var measureElemnt = 'measureElement';\n if (window[\"\" + measureElemnt]) {\n window[\"\" + measureElemnt].usageCount -= 1;\n var measureElementCount = 'measureElementCount';\n window[\"\" + measureElementCount]--;\n if (window[\"\" + measureElementCount] === 0) {\n window[\"\" + measureElemnt].parentNode.removeChild(window[\"\" + measureElemnt]);\n window[\"\" + measureElemnt] = null;\n }\n }\n }\n content = document.getElementById(this.element.id + '_search');\n if (content) {\n content.parentNode.removeChild(content);\n }\n this.element.classList.remove('e-symbolpalette');\n }\n };\n /**\n * Add particular palettes to symbol palette at runtime.\\\n *\n * @returns { void} Refreshes the ruler when the Ruler properties are updated .\\\n * @param { PaletteModel[]} palettes -Defines the collection of palettes to be added.\n */\n SymbolPalette.prototype.addPalettes = function (palettes) {\n var palette;\n for (var i = 0; i < palettes.length; i++) {\n var isEnableServerDatabind = this.allowServerDataBinding;\n this.isProtectedOnChange = true;\n this.allowServerDataBinding = false;\n palette = new Palette(this, 'palettes', palettes[parseInt(i.toString(), 10)], true);\n this.palettes.push(palette);\n this.initSymbols(palette);\n this.allowServerDataBinding = isEnableServerDatabind;\n this.isProtectedOnChange = false;\n this.renderPalette(palette);\n }\n this.bulkChanges = {};\n if (!isBlazor()) {\n this.accordionElement.refresh();\n }\n };\n /**\n * removePalette method\\\n *\n * @returns {void} removePalette method .\\\n * @param {string} paletteId - provide the scale value.\n *\n * @private\n */\n SymbolPalette.prototype.removePalette = function (paletteId) {\n for (var i = 0; i < this.palettes.length; i++) {\n if (this.palettes[parseInt(i.toString(), 10)].id === paletteId) {\n this.palettes.splice(i, 1);\n if (!isBlazor()) {\n this.accordionElement.items.splice(i, 1);\n }\n break;\n }\n }\n };\n /**\n * Remove particular palettes to symbol palette at runtime \\\n *\n * @returns {void} Remove particular palettes to symbol palette at runtime .\\\n * @param {string[]} palettes - provide the scale value.\n */\n SymbolPalette.prototype.removePalettes = function (palettes) {\n var isEnableServerDatabind = this.allowServerDataBinding;\n this.allowServerDataBinding = false;\n for (var i = 0; i < palettes.length; i++) {\n this.removePalette(palettes[parseInt(i.toString(), 10)]);\n }\n if (!isBlazor()) {\n this.accordionElement.refresh();\n }\n else {\n this.updatePalettes();\n }\n this.allowServerDataBinding = isEnableServerDatabind;\n };\n //end region - protected methods\n //region - private methods to render symbols\n /**\n * Method to initialize the items in the symbols \\\n *\n * @returns {void} Method to initialize the items in the symbols .\\\n * @param {PaletteModel} symbolGroup - provide the scale value.\n *\n */\n SymbolPalette.prototype.initSymbols = function (symbolGroup) {\n var group = [];\n var laneHeight = 0;\n var laneWidth = 0;\n for (var _i = 0, _a = symbolGroup.symbols; _i < _a.length; _i++) {\n var symbol = _a[_i];\n if (symbol.shape.type === 'SwimLane') {\n var swimLaneObj = symbol;\n var swimLaneShape = symbol.shape;\n var isHorizontal = (swimLaneShape.orientation === 'Horizontal') ? true : false;\n if (swimLaneShape.isLane) {\n laneHeight = isHorizontal ? this.symbolHeight - this.symbolHeight / 2 : this.symbolHeight - this.symbolHeight / 4;\n laneWidth = isHorizontal ? this.symbolWidth - this.symbolWidth / 4 : this.symbolWidth - this.symbolWidth / 2;\n this.laneTable[symbol.id] = { height: laneHeight, width: laneWidth };\n var header = swimLaneShape.lanes[0].header;\n var laneStyle = swimLaneShape.lanes[0].style;\n var headerStyle = header.style;\n var headerObj = {\n id: 'header' + randomId(), shape: { type: 'Basic', shape: 'Rectangle' },\n width: isHorizontal ? header.width : swimLaneObj.width,\n height: isHorizontal ? swimLaneObj.height : header.height,\n style: headerStyle,\n annotations: [{ content: header.annotation.content }]\n };\n headerObj.offsetX = headerObj.width / 2;\n headerObj.offsetY = headerObj.height / 2;\n this.addPaletteItem(symbolGroup.id, headerObj);\n var laneObj = {\n id: 'lane' + randomId(), shape: { type: 'Basic', shape: 'Rectangle' },\n width: isHorizontal ? (swimLaneObj.width - header.width) : swimLaneObj.width,\n height: isHorizontal ? swimLaneObj.height : (swimLaneObj.height - header.height),\n style: laneStyle\n };\n laneObj.offsetX = isHorizontal ? (headerObj.width + (laneObj.width / 2)) : laneObj.width / 2;\n laneObj.offsetY = isHorizontal ? laneObj.height / 2 : (headerObj.height + (laneObj.height / 2));\n this.addPaletteItem(symbolGroup.id, laneObj);\n swimLaneObj.children = [headerObj.id, laneObj.id];\n }\n else if (swimLaneShape.isPhase) {\n laneHeight = swimLaneObj.height ? swimLaneObj.height : this.symbolHeight;\n laneWidth = swimLaneObj.width ? swimLaneObj.width : this.symbolWidth;\n symbol.shape.type = 'Path';\n if (isHorizontal) {\n symbol.shape.data = 'M0,0 L' + laneWidth + ',' + '0';\n }\n else {\n symbol.shape.data = 'M0,0 L0,' + laneWidth;\n }\n }\n }\n if (symbol instanceof Node) {\n var getNodeDefaults = getFunction(this.getNodeDefaults);\n if (getNodeDefaults) {\n getNodeDefaults(symbol, this);\n }\n }\n else if (symbol instanceof Connector) {\n var getConnectorDefaults = getFunction(this.getConnectorDefaults);\n if (getConnectorDefaults) {\n getConnectorDefaults(symbol, this);\n }\n }\n this.symbolTable[symbol.id] = symbol;\n if (symbol instanceof Node && symbol.children) {\n group.push(symbol);\n }\n }\n for (var i = 0; i < group.length; i++) {\n var node = void 0;\n for (var j = 0; j < group[parseInt(i.toString(), 10)].children.length; j++) {\n node = (this.symbolTable[group[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)]]);\n if (node) {\n this.childTable[node.id] = node;\n node.parentId = group[parseInt(i.toString(), 10)].id;\n }\n }\n }\n for (var _b = 0, _c = symbolGroup.symbols; _b < _c.length; _b++) {\n var symbol = _c[_b];\n if (!(symbol instanceof Node && symbol.children)) {\n this.prepareSymbol(symbol);\n }\n }\n for (var _d = 0, group_1 = group; _d < group_1.length; _d++) {\n var symbol = group_1[_d];\n this.prepareSymbol(symbol);\n }\n };\n SymbolPalette.prototype.renderPalette = function (symbolGroup) {\n var style = (isBlazor()) ? 'overflow:auto;' : 'display:none;overflow:auto;';\n if (symbolGroup.height) {\n style += 'height:' + symbolGroup.height + 'px';\n }\n var paletteParentDiv = document.getElementById(symbolGroup.id);\n var paletteDiv;\n if (isBlazor() && paletteParentDiv != null) {\n paletteDiv = createHtmlElement('div', { 'id': symbolGroup.id + '_content', style: style, class: 'e-remove-palette' });\n paletteParentDiv.appendChild(paletteDiv);\n }\n else {\n paletteDiv = createHtmlElement('div', { 'id': symbolGroup.id, style: style, class: 'e-remove-palette' });\n this.element.appendChild(paletteDiv);\n }\n if (!isBlazor()) {\n var item = {\n header: symbolGroup.title, expanded: symbolGroup.expanded,\n content: '#' + symbolGroup.id, iconCss: symbolGroup.iconCss\n };\n this.accordionElement.items.push(item);\n }\n this.renderSymbols(symbolGroup, paletteDiv);\n };\n /**\n * Used to add the palette item as nodes or connectors in palettes \\\n *\n * @returns {void} Used to add the palette item as nodes or connectors in palettes .\\\n * @param {string} paletteName - provide the scale value.\n * @param {NodeModel | ConnectorModel} paletteSymbol - provide the scale value.\n * @param {boolean} isChild - provide the scale value.\n */\n SymbolPalette.prototype.addPaletteItem = function (paletteName, paletteSymbol, isChild) {\n paletteSymbol = cloneObject(paletteSymbol);\n //let refresh: boolean;\n for (var i = 0; i < this.palettes.length; i++) {\n var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)];\n if (symbolPaletteGroup.id.indexOf(paletteName) !== -1) {\n // eslint-disable-next-line\n var param = [undefined, symbolPaletteGroup, 'symbols', {}, true];\n // eslint-disable-next-line\n var obj = new (Function.prototype.bind.apply(getObjectType(paletteSymbol), param));\n for (var i_1 = 0; i_1 < Object.keys(paletteSymbol).length; i_1++) {\n var isEnableServerDatabind_1 = this.allowServerDataBinding;\n this.allowServerDataBinding = false;\n obj[Object.keys(paletteSymbol)[parseInt(i_1.toString(), 10)]] = paletteSymbol[Object.keys(paletteSymbol)[parseInt(i_1.toString(), 10)]];\n this.allowServerDataBinding = isEnableServerDatabind_1;\n }\n updateDefaultValues(obj, paletteSymbol, obj instanceof Node ? this.nodeDefaults : this.connectorDefaults);\n symbolPaletteGroup.symbols.push(obj);\n var isEnableServerDatabind = this.allowServerDataBinding;\n this.allowServerDataBinding = false;\n this.prepareSymbol(obj);\n this.allowServerDataBinding = isEnableServerDatabind;\n this.symbolTable[obj.id] = obj;\n if (isChild) {\n this.childTable[obj.id] = obj;\n }\n else {\n var paletteDiv = void 0;\n if (isBlazor()) {\n paletteDiv = document.getElementById(symbolPaletteGroup.id + '_content');\n }\n else {\n paletteDiv = document.getElementById(symbolPaletteGroup.id);\n }\n if (paletteDiv) {\n paletteDiv.appendChild(this.getSymbolContainer(obj, paletteDiv));\n }\n }\n break;\n }\n }\n };\n /**\n * Used to remove the palette item as nodes or connectors in palettes \\\n *\n * @returns {void} Used to remove the palette item as nodes or connectors in palettes .\\\n * @param {string} paletteName - provide the scale value.\n * @param {string} symbolId - provide the scale value.\n */\n SymbolPalette.prototype.removePaletteItem = function (paletteName, symbolId) {\n var refresh;\n for (var i = 0; i < this.palettes.length; i++) {\n var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)];\n if (symbolPaletteGroup.id.indexOf(paletteName) !== -1) {\n for (var _i = 0, _a = symbolPaletteGroup.symbols; _i < _a.length; _i++) {\n var symbol = _a[_i];\n if (symbol.id.indexOf(symbolId) !== -1) {\n var index = symbolPaletteGroup.symbols.indexOf(symbol);\n symbolPaletteGroup.symbols.splice(index, 1);\n if (symbol.children) {\n var parentNode = symbol.children;\n for (var i_2 = 0; i_2 < parentNode.length; i_2++) {\n delete this.symbolTable[(parentNode[parseInt(i_2.toString(), 10)])];\n }\n }\n delete this.symbolTable[symbol.id];\n var element = document.getElementById(symbol.id + '_container');\n element.parentNode.removeChild(element);\n refresh = true;\n break;\n }\n }\n }\n if (refresh) {\n break;\n }\n }\n };\n SymbolPalette.prototype.prepareSymbol = function (symbol) {\n var width;\n var sw;\n var height;\n var sh;\n var stackPanel = new StackPanel();\n var obj = symbol;\n var content;\n var symbolContainer = new Canvas();\n var container = (symbol instanceof Node) ? symbol.initContainer() : null;\n if (container && !container.children) {\n container.children = [];\n }\n //preparing objects\n var getSymbolTemplate = getFunction(this.getSymbolTemplate);\n if (getSymbolTemplate) {\n content = getSymbolTemplate(symbol);\n }\n if (!content) {\n if (obj.children) {\n content = this.getContainer(obj, container);\n }\n else {\n content = symbol.init(this);\n if (symbol instanceof Node && symbol.parentId) {\n container.children.push(content);\n }\n }\n }\n if (!symbol.parentId) {\n var symbolInfo = { width: this.symbolWidth, height: this.symbolHeight };\n var getSymbolInfo = getFunction(this.getSymbolInfo);\n if (getSymbolInfo) {\n symbolInfo = getSymbolInfo(symbol);\n }\n else if (isBlazor()) {\n symbolInfo = this.getBlazorSymbolInfo(symbol, symbolInfo);\n }\n symbolInfo = symbolInfo || this.symbolInfo || {};\n if (symbol.shape && symbol.shape.isPhase) {\n symbolInfo.width = symbolInfo.width || this.symbolWidth;\n symbolInfo.height = symbolInfo.height || this.symbolHeight;\n }\n //defining custom templates\n content.relativeMode = 'Object';\n content.horizontalAlignment = content.verticalAlignment = 'Center';\n symbolContainer.style.strokeColor = symbolContainer.style.fill = 'none';\n symbolContainer.children = [content];\n content.measure(new Size());\n content.arrange(content.desiredSize);\n width = symbolInfo.width = symbolInfo.width ||\n (obj.width !== undefined ? content.actualSize.width : undefined) || this.symbolWidth;\n height = symbolInfo.height = symbolInfo.height ||\n (obj.height !== undefined ? content.actualSize.height : undefined) || this.symbolHeight;\n if (width !== undefined && height !== undefined) {\n var actualWidth = width;\n var actualHeight = height;\n //let isLane: boolean = (symbol.shape as SwimLane).isLane ? true : false;\n var isPhase = symbol.shape.isPhase ? true : false;\n if (this.symbolWidth !== undefined) {\n actualWidth = this.symbolWidth - this.symbolMargin.left - this.symbolMargin.right;\n }\n else {\n width += obj.style.strokeWidth;\n }\n if (this.symbolHeight !== undefined) {\n actualHeight = this.symbolHeight - this.symbolMargin.top - this.symbolMargin.bottom;\n }\n else {\n height += obj.style.strokeWidth;\n }\n if (symbolInfo.description && symbolInfo.description.text !== '') {\n actualHeight -= 20; // default height of the text have been reduced from the container.\n }\n sw = actualWidth / ((!isPhase && content.width) || width);\n sh = actualHeight / ((!isPhase && content.height) || height);\n if (symbolInfo.fit) {\n sw = actualWidth / symbolInfo.width;\n sh = actualHeight / symbolInfo.height;\n }\n width = actualWidth;\n height = actualHeight;\n sw = sh = Math.min(sw, sh);\n symbolContainer.width = width;\n symbolContainer.height = height;\n content.width = symbolInfo.width;\n content.height = symbolInfo.height;\n this.scaleSymbol(symbol, symbolContainer, sw, sh, width, height);\n }\n else {\n var outerBounds = void 0;\n if (symbol instanceof Connector) {\n outerBounds = getOuterBounds(symbol);\n }\n content.width = symbol.width || (outerBounds) ? outerBounds.width : content.actualSize.width;\n content.height = symbol.height || (outerBounds) ? outerBounds.height : content.actualSize.height;\n }\n symbol.wrapper = stackPanel;\n stackPanel.children = [symbolContainer];\n content.pivot = stackPanel.pivot = { x: 0, y: 0 };\n stackPanel.id = content.id + '_symbol';\n stackPanel.style.fill = stackPanel.style.strokeColor = 'transparent';\n if (symbol instanceof Node) {\n stackPanel.offsetX = symbol.style.strokeWidth / 2;\n stackPanel.offsetY = symbol.style.strokeWidth / 2;\n }\n else {\n stackPanel.offsetX = 0.5;\n stackPanel.offsetY = 0.5;\n }\n //symbol description-textElement\n this.getSymbolDescription(symbolInfo, width, stackPanel);\n stackPanel.measure(new Size());\n stackPanel.arrange(stackPanel.desiredSize);\n symbolInfo.width = symbolInfo.width || content.actualSize.width;\n symbolInfo.height = symbolInfo.height || content.actualSize.height;\n symbol[this.info] = symbolInfo;\n }\n if (symbol.parentId) {\n container.measure(new Size(obj.width, obj.height));\n container.arrange(container.desiredSize);\n }\n };\n SymbolPalette.prototype.getBlazorSymbolInfo = function (symbol, symbolInfo) {\n var node = symbol;\n var shapeSymbolInfo = node.symbolInfo;\n if (shapeSymbolInfo) {\n symbolInfo.description = shapeSymbolInfo.description || this.symbolInfo.description;\n symbolInfo.fit = shapeSymbolInfo.fit || this.symbolInfo.fit;\n symbolInfo.height = shapeSymbolInfo.height || this.symbolInfo.height;\n symbolInfo.width = shapeSymbolInfo.width || this.symbolInfo.width;\n symbolInfo.tooltip = shapeSymbolInfo.tooltip || this.symbolInfo.tooltip;\n symbolInfo.template = shapeSymbolInfo.template || this.symbolInfo.template;\n }\n return symbolInfo;\n };\n SymbolPalette.prototype.getContainer = function (obj, container) {\n container.measureChildren = false;\n var bounds;\n var child = obj.children;\n container.children = [];\n for (var i = 0; i < child.length; i++) {\n if (this.symbolTable[child[parseInt(i.toString(), 10)]]) {\n container.children.push(this.symbolTable[child[parseInt(i.toString(), 10)]].wrapper);\n }\n }\n container.measure(new Size(obj.width, obj.height));\n container.arrange(container.desiredSize);\n if (container.bounds.x !== 0 || container.bounds.y !== 0) {\n bounds = container.bounds;\n arrangeChild(obj, bounds.x, bounds.y, this.symbolTable, false, this);\n container = this.getContainer(obj, container);\n }\n return container;\n };\n /**\n * Feature [EJ2- 47318] - Support for the change of the symbol description\n * Feature [EJ2- 50705] - Support to add margin between the text and symbols\n */\n SymbolPalette.prototype.getSymbolDescription = function (symbolInfo, width, parent) {\n if (symbolInfo && symbolInfo.description && symbolInfo.description.text) {\n var textElement = new TextElement();\n //symbol description-textElement\n symbolInfo.description.overflow = symbolInfo.description.overflow || 'Ellipsis';\n symbolInfo.description.wrap = symbolInfo.description.wrap || 'WrapWithOverflow';\n textElement.id = parent.id + '_text';\n textElement.content = symbolInfo.description.text;\n textElement.width = width;\n textElement.height = 20;\n textElement.style.strokeColor = 'transparent';\n textElement.style.color = symbolInfo.description.color || 'black';\n textElement.style.fill = symbolInfo.description.fill || 'transparent';\n textElement.style.fontFamily = symbolInfo.description.fontFamily || 'Arial';\n textElement.style.fontSize = symbolInfo.description.fontSize || 12;\n textElement.style.bold = symbolInfo.description.bold || false;\n textElement.style.italic = symbolInfo.description.italic || false;\n textElement.style.textDecoration = symbolInfo.description.textDecoration || 'None';\n textElement.style.strokeWidth = 0;\n textElement.style.textWrapping = symbolInfo.description.wrap;\n textElement.style.textOverflow = symbolInfo.description.overflow;\n textElement.margin = { left: 0, right: 0, top: symbolInfo.description.margin ? symbolInfo.description.margin.top : 0, bottom: symbolInfo.description.margin ? symbolInfo.description.margin.bottom : 5 };\n parent.children.push(textElement);\n }\n };\n SymbolPalette.prototype.renderSymbols = function (symbolGroup, parentDiv) {\n for (var _i = 0, _a = symbolGroup.symbols; _i < _a.length; _i++) {\n var symbol = _a[_i];\n if (!symbol.parentId) {\n this.getSymbolContainer(symbol, parentDiv);\n }\n }\n };\n SymbolPalette.prototype.getSymbolPreview = function (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n symbol, evt, parentDiv) {\n this.allowServerDataBinding = false;\n var canvas;\n var sw;\n var sh;\n var symbolPreviewWidth = symbol.wrapper.children[0].desiredSize.width + symbol.style.strokeWidth;\n var symbolPreviewHeight = symbol.wrapper.children[0].desiredSize.height + symbol.style.strokeWidth;\n var content = symbol.wrapper.children[0].children[0];\n var symbolPreview = symbol.previewSize;\n if ((symbol && (symbolPreview.width || symbolPreview.height)) ||\n this.symbolPreview.width !== undefined || this.symbolPreview.height !== undefined) {\n symbolPreviewWidth = (symbolPreview.width || this.symbolPreview.width || symbolPreviewWidth) - symbol.style.strokeWidth;\n symbolPreviewHeight = (symbolPreview.height || this.symbolPreview.height || symbolPreviewHeight) - symbol.style.strokeWidth;\n // EJ2-56887 - Connector do not get rendered properly in symbol palette.\n // Added below code to check if connector width is less than strokewidth means then set symbol width for connector.\n if (symbol instanceof Connector) {\n if (content.actualSize.width <= symbol.style.strokeWidth) {\n content.actualSize.width = this.symbolWidth;\n }\n if (content.actualSize.height <= symbol.style.strokeWidth) {\n content.actualSize.height = this.symbolHeight;\n }\n }\n sw = symbolPreviewWidth / content.actualSize.width;\n sh = symbolPreviewHeight / content.actualSize.height;\n sw = sh = Math.min(sw, sh);\n var symbolWidth = content.actualSize.width * sw;\n var symbolHeight = content.actualSize.height * sh;\n symbol.wrapper.children[0].width = symbolPreviewWidth;\n symbol.wrapper.children[0].height = symbolPreviewHeight;\n this.measureAndArrangeSymbol(content, symbol instanceof Node);\n this.scaleSymbol(symbol, symbol.wrapper.children[0], sw, sh, symbolWidth, symbolHeight, true);\n symbolPreviewWidth = symbolWidth;\n symbolPreviewHeight = symbolHeight;\n }\n var prevPosition = { x: content.offsetX, y: content.offsetY };\n content.offsetX = content.offsetY = symbol.style.strokeWidth / 2;\n content.pivot = { x: 0, y: 0 };\n this.measureAndArrangeSymbol(content, symbol instanceof Node);\n var previewContainer = createHtmlElement('div', { 'draggable': 'true', 'class': 'e-dragclone', 'style': 'pointer-events:none' });\n var div;\n document.body.appendChild(previewContainer);\n var style = 'margin:5px;';\n if (symbol.shape.type === 'Native') {\n canvas = createSvgElement('svg', {\n id: symbol.id + '_preview',\n width: Math.ceil(symbolPreviewWidth) + 1,\n height: Math.ceil(symbolPreviewHeight) + 1\n });\n var gElement = createSvgElement('g', { id: symbol.id + '_g' });\n canvas.appendChild(gElement);\n previewContainer.appendChild(canvas);\n this.svgRenderer.renderElement(content, gElement, undefined, undefined, canvas);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n else if (symbol.shape.type === 'HTML') {\n div = this.getHtmlSymbol(symbol, canvas, previewContainer, symbolPreviewHeight, symbolPreviewWidth, true);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n else {\n if (symbol.children &&\n symbol.children.length > 0 && groupHasType(symbol, 'HTML', this.childTable)) {\n div = this.getGroupParent(symbol, canvas, previewContainer, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, true);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n else {\n canvas = CanvasRenderer.createCanvas(symbol.id + '_preview', (Math.ceil(symbolPreviewWidth) + symbol.style.strokeWidth + 1) * 2, (Math.ceil(symbolPreviewHeight) + symbol.style.strokeWidth + 1) * 2);\n previewContainer.appendChild(canvas);\n // BLAZ-3223: translate applied only for Basic and Flow now and need to add for remaining shapes in future\n if (symbol.shape.type === 'Basic' || symbol.shape.type === 'Flow') {\n style += 'transform: scale(0.5) translate(-' + canvas.width / 2 + 'px, -' + canvas.height / 2 + 'px);';\n }\n else {\n style += 'transform:scale(0.5);';\n }\n canvas.setAttribute('transform-origin', '0 0');\n var index = 2;\n if (symbol instanceof Connector) {\n index = 1.9;\n }\n canvas.getContext('2d').setTransform(index, 0, 0, index, 0, 0);\n this.diagramRenderer.renderElement(content, canvas, undefined);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n }\n applyStyleAgainstCsp(((div && (symbol.shape.type === 'HTML' || symbol.children\n && symbol.children.length > 0)) ? div : canvas), style);\n content.offsetX = prevPosition.x;\n content.offsetY = prevPosition.y;\n this.allowServerDataBinding = true;\n return previewContainer;\n };\n SymbolPalette.prototype.measureAndArrangeSymbol = function (content, isNode) {\n if (content.children && !isNode) {\n content.children[0].transform = Transform.Self;\n }\n content.measure(new Size());\n content.arrange(content.desiredSize);\n if (content.children) {\n content.children[0].transform = Transform.Parent;\n }\n };\n SymbolPalette.prototype.updateSymbolSize = function (symbol, width, height) {\n var element = symbol.wrapper.children[0].children[0];\n var strokeWidth = symbol.style.strokeWidth;\n element.width = (width || element.width) - (strokeWidth + 1);\n element.height = (height || element.height) - (strokeWidth + 1);\n symbol.wrapper.measure(new Size());\n symbol.wrapper.arrange(symbol.wrapper.desiredSize);\n };\n SymbolPalette.prototype.getSymbolContainer = function (symbol, parentDiv, preview) {\n var symbolInfo = this.symbolTable[symbol.id][this.info];\n var size = this.getSymbolSize(symbol, symbolInfo);\n var width = size.width + 1;\n var height = size.height + 1;\n var container = createHtmlElement('div', {\n id: symbol.id + '_container',\n style: 'width:' + width + 'px;height:' + height + 'px;float:left;overflow:hidden',\n });\n parentDiv.appendChild(container);\n var canvas;\n var gElement;\n var div;\n if (symbol.shape.type === 'Native') {\n canvas = createSvgElement('svg', {\n id: symbol.id,\n width: Math.ceil(symbol.wrapper.actualSize.width) + 1,\n height: Math.ceil(symbol.wrapper.actualSize.height) + 1\n });\n gElement = createSvgElement('g', { id: symbol.id + '_g' });\n canvas.appendChild(gElement);\n container.appendChild(canvas);\n this.updateSymbolSize(symbol);\n this.svgRenderer.renderElement(symbol.wrapper, gElement, undefined, undefined, canvas);\n }\n else if (symbol.shape.type === 'HTML') {\n div = this.getHtmlSymbol(symbol, canvas, container, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, false);\n }\n else {\n if (symbol.children &&\n symbol.children.length > 0 && groupHasType(symbol, 'HTML', this.childTable)) {\n div = this.getGroupParent(symbol, canvas, container, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, false);\n }\n else {\n canvas = CanvasRenderer.createCanvas(symbol.id, Math.ceil((symbol.wrapper.actualSize.width + symbol.style.strokeWidth) * 2) + 1, Math.ceil((symbol.wrapper.actualSize.height + symbol.style.strokeWidth) * 2) + 1);\n container.appendChild(canvas);\n var index = 2;\n if (symbol instanceof Connector) {\n index = 1.9;\n }\n canvas.getContext('2d').setTransform(index, 0, 0, index, 0, 0);\n this.diagramRenderer.renderElement(symbol.wrapper, gElement || canvas, undefined, undefined, undefined, undefined, true, undefined, true);\n }\n }\n if (!preview) {\n var actualWidth = symbol.wrapper.actualSize.width + symbol.style.strokeWidth;\n var actualHeight = symbol.wrapper.actualSize.height + symbol.style.strokeWidth;\n var style = 'pointer-events:none;transform-origin:0 0;overflow:hidden;';\n if (symbol.shape.isPhase) {\n if (symbol.shape.orientation === 'Horizontal') {\n style += 'margin-left:' +\n Math.max(this.symbolMargin.left, ((width - actualWidth) / 2))\n + 'px;margin-top:' + size.height / 2\n + 'px;';\n }\n else {\n style += 'margin-left:' +\n size.width / 2\n + 'px;margin-top:' + Math.max(this.symbolMargin.top, ((height - actualHeight) / 2))\n + 'px;';\n }\n }\n else {\n style += 'margin-left:' +\n Math.max(this.symbolMargin.left, ((width - actualWidth) / 2))\n + 'px;margin-top:' + Math.max(this.symbolMargin.top, ((height - actualHeight) / 2))\n + 'px;';\n }\n if (canvas instanceof HTMLCanvasElement) {\n style += 'transform:scale(.5,.5);';\n }\n //EJ2-70280 - Text description in symbol palette for HTML nodes is not visible.\n if (symbol.shape.type === 'HTML') {\n style += 'transform:scale(.5,.5);';\n }\n applyStyleAgainstCsp(((div && (symbol.shape.type === 'HTML' || symbol.children &&\n symbol.children.length > 0)) ? div : canvas), style);\n container.classList.add('e-symbol-draggable');\n return container;\n }\n return canvas;\n };\n SymbolPalette.prototype.getGroupParent = function (item, canvas, container, height, width, isPreview) {\n var div = createHtmlElement('div', { 'id': item.id + (isPreview ? '_html_div_preview' : '_html_div') });\n var htmlLayer = createHtmlElement('div', {\n 'id': item.id + (isPreview ? '_htmlLayer_preview' : '_htmlLayer'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute',\n 'class': 'e-html-layer'\n });\n var htmlLayerDiv = createHtmlElement('div', {\n 'id': item.id + (isPreview ? '_htmlLayer_div_preview' : '_htmlLayer_div'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute'\n });\n htmlLayer.appendChild(htmlLayerDiv);\n div.appendChild(htmlLayer);\n canvas = CanvasRenderer.createCanvas((isPreview ? (item.id + '_preview') : item.id), Math.ceil(width) + 1, Math.ceil(height) + 1);\n div.appendChild(canvas);\n container.appendChild(div);\n this.diagramRenderer.renderElement(item.wrapper.children[0].children[0], canvas, htmlLayer);\n return div;\n };\n SymbolPalette.prototype.getHtmlSymbol = function (symbol, canvas, container, height, width, isPreview) {\n var div = createHtmlElement('div', {\n 'id': symbol.id + (isPreview ? '_html_div_preview' : '_html_div')\n });\n var htmlLayer = createHtmlElement('div', {\n 'id': symbol.id + (isPreview ? '_htmlLayer_preview' : '_htmlLayer'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute',\n 'class': 'e-html-layer'\n });\n var htmlLayerDiv = createHtmlElement('div', {\n 'id': symbol.id + (isPreview ? '_htmlLayer_div_preview' : '_htmlLayer_div'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute'\n });\n htmlLayer.appendChild(htmlLayerDiv);\n div.appendChild(htmlLayer);\n canvas = CanvasRenderer.createCanvas(symbol.id, Math.ceil((symbol.wrapper.actualSize.width + symbol.style.strokeWidth) * 2) + 1, Math.ceil((symbol.wrapper.actualSize.height + symbol.style.strokeWidth) * 2) + 1);\n container.appendChild(canvas);\n canvas.getContext('2d').setTransform(2, 0, 0, 2, 0, 0);\n div.appendChild(canvas);\n container.appendChild(div);\n //EJ2-70280 - Text description in symbol palette for HTML nodes is not visible.\n if (isPreview) {\n this.diagramRenderer.renderElement(symbol.wrapper.children[0].children[0], canvas, htmlLayer);\n }\n else {\n this.diagramRenderer.renderElement(symbol.wrapper, canvas, htmlLayer);\n }\n return div;\n };\n // eslint-disable-next-line\n SymbolPalette.prototype.getSymbolSize = function (symbol, symbolInfo) {\n var width = symbol.wrapper.actualSize.width;\n var height = symbol.wrapper.actualSize.height;\n if (!this.symbolWidth && !this.symbolHeight) {\n width += this.symbolMargin.left + this.symbolMargin.right + symbol.style.strokeWidth;\n height += this.symbolMargin.top + this.symbolMargin.bottom + symbol.style.strokeWidth;\n }\n else {\n width = this.symbolWidth;\n height = Math.max(this.symbolHeight, height);\n }\n return new Size(width, height);\n };\n //end region - rendering symbols\n //region event handlers\n SymbolPalette.prototype.getMousePosition = function (e) {\n var offsetY;\n var offsetX;\n var touchArg;\n if (e.type.indexOf('touch') !== -1) {\n touchArg = e;\n var pageY = touchArg.changedTouches[0].clientY;\n var pageX = touchArg.changedTouches[0].clientX;\n offsetY = pageY - this.element.offsetTop;\n offsetX = pageX - this.element.offsetLeft;\n }\n else {\n offsetY = e.clientY - this.element.offsetTop;\n offsetX = e.clientX - this.element.offsetLeft;\n }\n return { x: offsetX, y: offsetY };\n };\n /** Gets the default content of the Tooltip*/\n SymbolPalette.prototype.getContent = function (obj) {\n var isPrivateTooltip = ((this.hoverElement instanceof Node) &&\n this.hoverElement.constraints & NodeConstraints.Tooltip) ||\n ((this.hoverElement instanceof Connector) &&\n this.hoverElement.constraints & ConnectorConstraints.Tooltip);\n var content = isPrivateTooltip ? this.hoverElement.tooltip.content :\n obj.id;\n return content;\n };\n /**\n * Initialize the basic properties of Toolip object\n */\n SymbolPalette.prototype.initTooltip = function (element) {\n var tooltip;\n if (!isBlazor()) {\n var tooltipOption = new Tooltip;\n tooltipOption = this.updateTooltipContent(this.hoverElement.tooltip, tooltipOption);\n tooltip = new Tooltip(tooltipOption);\n tooltip.cssClass = 'e-symbolPalette-tooltip';\n tooltip.opensOn = 'custom';\n tooltip.appendTo('#' + element.id);\n tooltip.close();\n }\n else {\n tooltip = this.updateTooltipContent(this.hoverElement.tooltip, tooltip);\n }\n return tooltip;\n };\n /**Method to update Tooltip Content*/\n SymbolPalette.prototype.updateTooltipContent = function (tooltip, tooltipObject) {\n tooltipObject.content = tooltip.content;\n tooltipObject.position = 'BottomRight';\n tooltipObject.showTipPointer = tooltip.showTipPointer;\n tooltipObject.width = tooltip.width;\n tooltipObject.height = tooltip.height;\n if (!tooltip.animation) {\n tooltipObject.animation = { close: { effect: 'None' } };\n }\n else {\n tooltipObject.animation = tooltip.animation;\n }\n return tooltipObject;\n };\n /**\n * To open the Tooltip element relevant to the target and relative mode */\n SymbolPalette.prototype.elementEnter = function (mousePosition, elementOver) {\n if (!elementOver) {\n //set the collision target element to given position if enabled\n this.symbolTooltipObject.windowCollision = true;\n if (this.hoverElement instanceof Node) {\n if (!(this.hoverElement.constraints & (NodeConstraints.Default && NodeConstraints.Tooltip))) {\n this.hoverElement.tooltip.content = this.hoverElement.id;\n //Task 834121: Content-Security-Policy support for diagram\n this.symbolTooltipObject.content = initializeCSPTemplate(function () { return this.hoverElement.id; }, this);\n }\n }\n else if (this.hoverElement instanceof Connector) {\n if (!(this.hoverElement.constraints & (ConnectorConstraints.Default && ConnectorConstraints.Tooltip))) {\n this.hoverElement.tooltip.content = this.hoverElement.id;\n this.symbolTooltipObject.content = initializeCSPTemplate(function () { return this.hoverElement.id; }, this);\n }\n }\n if (this.hoverElement.tooltip.content) {\n if (this.hoverElement.tooltip.relativeMode === 'Mouse') {\n //To set relative mode only to object for Symbol Palatte\n this.hoverElement.tooltip.relativeMode = 'Object';\n this.symbolTooltipObject.offsetX = 0;\n this.symbolTooltipObject.offsetY = 0;\n }\n else {\n this.symbolTooltipObject.offsetX = 0;\n this.symbolTooltipObject.offsetY = 0;\n }\n }\n var targetEle = document.getElementById(this.hoverElement.id);\n if (this.hoverElement.tooltip.openOn === 'Auto' && this.hoverElement.tooltip.content !== '') {\n this.symbolTooltipObject.close();\n this.symbolTooltipObject.opensOn = this.hoverElement.tooltip.openOn;\n if (isBlazor()) {\n this.symbolTooltipObject.open(targetEle, {});\n }\n else {\n this.symbolTooltipObject.dataBind();\n }\n }\n if (this.hoverElement.tooltip.openOn === 'Auto') {\n this.symbolTooltipObject.target = this.hoverElement.id;\n this.symbolTooltipObject.open(targetEle);\n }\n }\n };\n // eslint-disable-next-line\n SymbolPalette.prototype.mouseMove = function (e, touches) {\n if (this.highlightedSymbol && (!this.selectedSymbol\n || this.selectedSymbol.id + '_container' !== this.highlightedSymbol.id)) {\n this.highlightedSymbol.classList.remove('e-symbol-hover');\n this.highlightedSymbol.style.backgroundColor = '';\n this.highlightedSymbol = null;\n }\n var id = e.target.id.split('_container')[0];\n if (this.symbolTable[\"\" + id]) {\n var container = document.getElementById(id + '_container');\n container.classList.add('e-symbol-hover');\n this.highlightedSymbol = container;\n }\n e.preventDefault();\n //EJ2-66311-tooltip support for Symbolpalette\n var obj = this.symbolTable[\"\" + id];\n if (this.symbolTable[\"\" + id] && obj !== this.hoverElement) {\n this.currentPosition = this.getMousePosition(e);\n var content = this.getContent(obj);\n if (this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content !== '') {\n this.elementLeave();\n }\n this.hoverElement = obj;\n this.symbolTooltipObject = this.initTooltip(this.hoverElement);\n if (content === '') {\n content = this.hoverElement.id;\n }\n if (this.hoverElement.tooltip && content !== '') {\n this.elementEnter(this.currentPosition, false);\n }\n }\n if (obj === undefined && this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto') {\n this.hoverElement = null;\n this.elementLeave();\n }\n };\n /**\n * When Mouse pointer leaves the symbol palette object Mouse leave event is called and closes Tooltip\n */\n SymbolPalette.prototype.elementLeave = function () {\n if (this.symbolTooltipObject && this.symbolTooltipObject.opensOn !== 'Custom') {\n this.symbolTooltipObject.close();\n }\n };\n /** @private\n * @param {PointerEvent} evt - provide event name\n */\n SymbolPalette.prototype.mouseLeave = function (evt) {\n this.elementLeave();\n evt.preventDefault();\n };\n // eslint-enable\n SymbolPalette.prototype.mouseUp = function (evt) {\n this.isMethod = true;\n if (evt && evt.target) {\n if (evt.srcElement.id === 'iconSearch') {\n var element = document.getElementById('iconSearch');\n if (element.classList.contains('e-clear-searchtext')) {\n element.className = 'e-input-group-icon e-search e-icons';\n document.getElementById('textEnter').value = '';\n if (isBlazor()) {\n document.getElementById(this.element.id + '_search_content').classList.add('e-symbolpalette-search-hidden');\n }\n this.searchPalette('');\n }\n }\n else {\n var id = evt.target.id.split('_container')[0];\n if (id && this.selectedSymbol) {\n var args = { oldValue: this.oldObject, newValue: id };\n var event_2 = 'paletteSelectionChange';\n this.trigger(event_2, args);\n this.oldObject = id;\n evt.preventDefault();\n }\n else if (this.oldObject !== '') {\n this.oldObject = '';\n }\n }\n }\n };\n SymbolPalette.prototype.keyUp = function (evt) {\n var _this = this;\n if (this.enableSearch) {\n // eslint-disable-next-line\n var palette_1 = this;\n var element = document.getElementById('iconSearch');\n element.className = 'e-input-group-icon e-clear-searchtext e-icons';\n if (isBlazor() && evt.target instanceof HTMLInputElement) {\n if (evt.target.value === '') {\n document.getElementById(this.element.id + '_search_content').classList.add('e-symbolpalette-search-hidden');\n }\n else {\n document.getElementById(this.element.id + '_search_content').classList.remove('e-symbolpalette-search-hidden');\n }\n }\n if (evt && (evt.key === 'Enter' || evt.keyCode === 13)) {\n if (evt.target instanceof HTMLInputElement) {\n this.searchPalette(evt.target.value);\n }\n }\n else {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(function () {\n if (evt.target instanceof HTMLInputElement) {\n palette_1.searchPalette(evt.target.value);\n _this.timer = null;\n }\n }, 500);\n }\n }\n };\n SymbolPalette.prototype.mouseDown = function (evt) {\n var id = evt.target.id.split('_container')[0];\n if (this.selectedSymbol) {\n var oldSymbol = document.getElementById(this.selectedSymbol.id + '_container');\n if (id !== this.selectedSymbol.id && oldSymbol) {\n oldSymbol.classList.remove('e-symbol-selected');\n }\n var container = document.getElementById(this.selectedSymbol.id + '_container');\n if (container) {\n container.style.backgroundColor = '';\n }\n this.selectedSymbol = null;\n }\n if (this.symbolTable[\"\" + id]) {\n var container = document.getElementById(id + '_container');\n container.classList.add('e-symbol-selected');\n this.selectedSymbol = this.symbolTable[\"\" + id];\n evt.preventDefault();\n }\n };\n SymbolPalette.prototype.keyDown = function (evt) {\n // eslint-disable-next-line\n var palette = this;\n var helperElement = 'helperElement';\n var intDestroy = 'intDestroy';\n if (evt && (evt.key === 'Escape')) {\n var element = palette.draggable[\"\" + helperElement];\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n palette.draggable[\"\" + intDestroy]();\n }\n }\n };\n //end region - event handlers\n // region - draggable\n SymbolPalette.prototype.initDraggable = function () {\n if (this.allowDrag) {\n //let drag: Draggable;\n this.draggable = new Draggable(this.element, {\n dragTarget: '.e-symbol-draggable',\n helper: this.helper,\n dragStart: this.dragStart,\n preventDefault: false,\n dragStop: this.dragStop,\n drag: function (args) {\n var target = 'target';\n var parent = parentsUntil(args[\"\" + target], 'e-droppable');\n if (parent && parent.classList.contains('e-diagram')) {\n var e2eInstance = 'ej2_instances';\n parent[\"\" + e2eInstance][0].droppable.over(args);\n }\n },\n cursorAt: { left: this.symbolPreview.offset.x, top: this.symbolPreview.offset.y }\n });\n }\n };\n // eslint-enable\n SymbolPalette.prototype.dragStart = function (e) {\n var element = this.helper[0];\n if (element) {\n element.setAttribute('paletteId', this.element.id);\n }\n if (isBlazor()) {\n e.bindEvents(e.dragElement);\n }\n };\n SymbolPalette.prototype.dragStop = function (e) {\n if (!parentsUntil(e.target, 'e-diagram')) {\n remove(e.helper);\n }\n };\n //end region - draggable\n //region - helper methods\n SymbolPalette.prototype.scaleSymbol = function (symbol, symbolContainer, sw, sh, width, height, preview) {\n if (symbol instanceof Connector) {\n var wrapper = symbol.wrapper;\n symbol.wrapper = symbolContainer.children[0];\n var point = symbol.scale(sw, sh, width, height, symbolContainer.children[0]);\n var difX = width / 2 - symbolContainer.children[0].children[0].offsetX + point.x / 2;\n var difY = height / 2 - symbolContainer.children[0].children[0].offsetY + point.y / 2;\n for (var _i = 0, _a = symbolContainer.children[0].children; _i < _a.length; _i++) {\n var child = _a[_i];\n child.offsetX += difX;\n child.offsetY += difY;\n child.staticSize = false;\n }\n symbol.wrapper = wrapper;\n }\n else if (symbol.shape.type === 'Bpmn' && this.bpmnModule) {\n var wrapper = symbol.wrapper;\n symbol.wrapper = symbolContainer;\n symbolContainer.children[0].width = width;\n symbolContainer.children[0].height = height;\n this.bpmnModule.updateBPMN({ width: width, height: height }, symbol, symbol, null);\n symbol.wrapper = wrapper;\n }\n else {\n if (symbol.children) {\n var parentNode = symbol.children;\n var w = 0;\n var h = 0;\n if (!preview) {\n var node = void 0;\n var container = void 0;\n for (var i = 0; i < parentNode.length; i++) {\n container = symbolContainer.children[0].children[parseInt(i.toString(), 10)];\n if (container) {\n if (container.children[0].children) {\n this.measureChild(container);\n }\n node = this.symbolTable[container.id];\n container.width = node.width;\n container.height = node.height;\n container.measure(new Size());\n container.arrange(container.children[0].desiredSize);\n }\n }\n }\n w = width / symbolContainer.children[0].desiredSize.width;\n h = height / symbolContainer.children[0].desiredSize.height;\n symbolContainer.children[0].measure(new Size());\n symbolContainer.children[0].arrange(symbolContainer.children[0].desiredSize);\n if (!preview) {\n var children = void 0;\n for (var i = 0; i < parentNode.length; i++) {\n children = symbolContainer.children[0].children[parseInt(i.toString(), 10)];\n if (children) {\n if (children.children[0].children) {\n this.scaleChildren(children, w, h, symbol);\n }\n this.scaleGroup(children, w, h, symbol);\n }\n }\n }\n if (preview) {\n ///let node: Node;\n var scaleWidth = void 0;\n var scaleHeight = void 0;\n var children = void 0;\n for (var i = 0; i < parentNode.length; i++) {\n //const node: Node = this.symbolTable[parentNode[i]];\n scaleWidth = width / symbol.wrapper.children[0].desiredSize.width;\n scaleHeight = height / symbol.wrapper.children[0].desiredSize.height;\n children = symbolContainer.children[0].children[parseInt(i.toString(), 10)];\n if (children) {\n if (children.children[0].children) {\n this.scaleChildren(children, scaleWidth, scaleHeight, symbol, true);\n }\n this.scaleGroup(children, scaleWidth, scaleHeight, symbol, true);\n }\n }\n symbol.wrapper.children[0].measure(new Size());\n symbol.wrapper.children[0].arrange(symbol.wrapper.children[0].desiredSize);\n }\n }\n else {\n scaleElement(symbolContainer.children[0], sw, sh, symbolContainer);\n }\n }\n };\n SymbolPalette.prototype.scaleChildren = function (container, w, h, symbol, preview) {\n var child;\n for (var i = 0; i < container.children.length; i++) {\n child = container.children[parseInt(i.toString(), 10)];\n if (!child.children[0].children) {\n this.scaleGroup(child, w, h, symbol, preview);\n }\n else {\n this.scaleChildren(child, w, h, symbol, preview);\n }\n }\n };\n SymbolPalette.prototype.measureChild = function (container) {\n var childContainer;\n var node;\n for (var i = 0; i < container.children.length; i++) {\n childContainer = container.children[parseInt(i.toString(), 10)];\n if (!childContainer.children[0].children) {\n node = this.symbolTable[childContainer.id];\n childContainer.width = node.width;\n childContainer.height = node.height;\n childContainer.measure(new Size());\n childContainer.arrange(childContainer.children[0].desiredSize);\n }\n else {\n this.measureChild(childContainer);\n }\n }\n };\n SymbolPalette.prototype.scaleGroup = function (child, w, h, symbol, preview) {\n child.width = child.width * w;\n child.height = (child.height * h);\n child.offsetX = preview ? (child.offsetX * w) - symbol.style.strokeWidth : (child.offsetX * w) + symbol.style.strokeWidth / 2;\n child.offsetY = preview ? (child.offsetY * h) - symbol.style.strokeWidth : (child.offsetY * h) + symbol.style.strokeWidth / 2;\n child.measure(new Size());\n child.arrange(child.children[0].desiredSize);\n };\n SymbolPalette.prototype.refreshPalettes = function () {\n if (!isBlazor()) {\n this.accordionElement.items = [];\n }\n removeElementsByClass('e-remove-palette', this.element.id);\n this.updatePalettes();\n if (!isBlazor()) {\n this.accordionElement.dataBind();\n }\n };\n SymbolPalette.prototype.updatePalettes = function () {\n for (var i = 0; i < this.palettes.length; i++) {\n var symGroup = this.palettes[parseInt(i.toString(), 10)];\n this.initSymbols(symGroup);\n this.renderPalette(symGroup);\n }\n };\n SymbolPalette.prototype.createTextbox = function () {\n var searchDiv = createHtmlElement('div', { id: this.element.id + '_search' });\n applyStyleAgainstCsp(searchDiv, 'backgroundColor:white;height:30px');\n // searchDiv.setAttribute('style', 'backgroundColor:white;height:30px');\n searchDiv.className = 'e-input-group';\n this.element.appendChild(searchDiv);\n var textBox = createHtmlElement('input', {});\n textBox.placeholder = this.l10n.getConstant('SearchShapes');\n textBox.id = 'textEnter';\n applyStyleAgainstCsp(textBox, 'width:100%;height:auto');\n //textBox.setAttribute('style', 'width:100%;height:auto');\n textBox.className = 'e-input';\n searchDiv.appendChild(textBox);\n var span = createHtmlElement('span', { id: 'iconSearch', className: 'e-input-group-icon e-search e-icons' });\n searchDiv.appendChild(span);\n };\n SymbolPalette.prototype.getFilterSymbol = function (symbol) {\n var items = [];\n for (var i = 0; i < symbol.length; i++) {\n for (var j = 0; j < this.ignoreSymbolsOnSearch.length; j++) {\n if (this.ignoreSymbolsOnSearch[parseInt(j.toString(), 10)] !== symbol[parseInt(i.toString(), 10)].id) {\n items.push(symbol[0]);\n }\n }\n }\n return items;\n };\n SymbolPalette.prototype.searchPalette = function (value) {\n var symbolGroup = [];\n var element = document.getElementById('SearchPalette');\n var paletteDiv;\n //remove the existing child in palette\n if (element) {\n for (var k = element.children.length - 1; k >= 0; k--) {\n element.removeChild(element.children[parseInt(k.toString(), 10)]);\n }\n }\n //add the searched item in array collection\n for (var i = 0; i < this.palettes.length; i++) {\n var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)];\n for (var j = 0; j < symbolPaletteGroup.symbols.length; j++) {\n var item = symbolPaletteGroup.symbols[parseInt(j.toString(), 10)];\n if (value !== '' && item.id.toLowerCase().indexOf(value.toLowerCase()) !== -1) {\n symbolGroup.push(item);\n }\n }\n }\n var filterSymbols = getFunction(this.filterSymbols);\n if (filterSymbols) {\n symbolGroup = filterSymbols(symbolGroup) || [];\n }\n if (this.ignoreSymbolsOnSearch && this.ignoreSymbolsOnSearch.length > 0) {\n symbolGroup = this.getFilterSymbol(symbolGroup);\n }\n //create a palette collection\n if (!element && !isBlazor()) {\n paletteDiv = this.createSearchPalette(paletteDiv);\n element = paletteDiv;\n }\n //add the symbols into search palette\n if (symbolGroup.length > 0) {\n for (var _i = 0, symbolGroup_1 = symbolGroup; _i < symbolGroup_1.length; _i++) {\n var symbol = symbolGroup_1[_i];\n if (symbol.parentId === '') {\n this.getSymbolContainer(symbol, element);\n }\n }\n }\n else if (value !== '') {\n var emptyDiv = createHtmlElement('div', { 'id': 'EmptyDiv', 'style': 'text-align:center;font-style:italic' });\n emptyDiv.innerHTML = 'No Items To Display';\n element.appendChild(emptyDiv);\n }\n else {\n var element_1 = document.getElementById('iconSearch');\n element_1.className = 'e-input-group-icon e-search e-icons';\n if (!isBlazor()) {\n this.accordionElement.removeItem(0);\n var searchPalette = document.getElementById('SearchPalette');\n if (searchPalette) {\n searchPalette.remove();\n }\n }\n }\n };\n SymbolPalette.prototype.createSearchPalette = function (paletteDiv) {\n paletteDiv = createHtmlElement('div', { 'id': 'SearchPalette', 'style': 'display:none;overflow:auto;' });\n this.element.appendChild(paletteDiv);\n var paletteCollection = {\n header: 'Search Results', expanded: true,\n content: '#SearchPalette'\n };\n this.accordionElement.addItem(paletteCollection, 0);\n return paletteDiv;\n };\n SymbolPalette.prototype.wireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var stopEvent = Browser.touchEndEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = 'mouseleave';\n var keyEvent = 'keyup';\n var keyDownEvent = 'keydown';\n EventHandler.add(this.element, startEvent, this.mouseDown, this);\n EventHandler.add(this.element, moveEvent, this.mouseMove, this);\n EventHandler.add(this.element, stopEvent, this.mouseUp, this);\n EventHandler.add(this.element, cancelEvent, this.mouseLeave, this);\n EventHandler.add(this.element, keyEvent, this.keyUp, this);\n EventHandler.add(document, keyDownEvent, this.keyDown, this);\n // initialize the draggable component\n this.initDraggable();\n };\n SymbolPalette.prototype.unWireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var stopEvent = Browser.touchEndEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n var keyEvent = 'keyup';\n var keyDownEvent = 'keydown';\n EventHandler.remove(this.element, startEvent, this.mouseDown);\n EventHandler.remove(this.element, moveEvent, this.mouseMove);\n EventHandler.remove(this.element, stopEvent, this.mouseUp);\n EventHandler.remove(this.element, cancelEvent, this.mouseLeave);\n EventHandler.remove(this.element, keyEvent, this.keyUp);\n EventHandler.remove(document, keyDownEvent, this.keyDown);\n };\n __decorate([\n Property('S')\n ], SymbolPalette.prototype, \"accessKey\", void 0);\n __decorate([\n Property('100%')\n ], SymbolPalette.prototype, \"width\", void 0);\n __decorate([\n Property('100%')\n ], SymbolPalette.prototype, \"height\", void 0);\n __decorate([\n Collection([], Palette)\n ], SymbolPalette.prototype, \"palettes\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getSymbolInfo\", void 0);\n __decorate([\n Property({ fit: true })\n ], SymbolPalette.prototype, \"symbolInfo\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"filterSymbols\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"ignoreSymbolsOnSearch\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getSymbolTemplate\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"symbolWidth\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"symbolHeight\", void 0);\n __decorate([\n Complex({ left: 10, right: 10, top: 10, bottom: 10 }, Margin)\n ], SymbolPalette.prototype, \"symbolMargin\", void 0);\n __decorate([\n Property(true)\n ], SymbolPalette.prototype, \"allowDrag\", void 0);\n __decorate([\n Complex({}, SymbolPreview)\n ], SymbolPalette.prototype, \"symbolPreview\", void 0);\n __decorate([\n Complex({}, SymbolDragSize)\n ], SymbolPalette.prototype, \"symbolDragSize\", void 0);\n __decorate([\n Property(false)\n ], SymbolPalette.prototype, \"enableSearch\", void 0);\n __decorate([\n Property(true)\n ], SymbolPalette.prototype, \"enableAnimation\", void 0);\n __decorate([\n Property('Multiple')\n ], SymbolPalette.prototype, \"expandMode\", void 0);\n __decorate([\n Event()\n ], SymbolPalette.prototype, \"paletteSelectionChange\", void 0);\n __decorate([\n Event()\n ], SymbolPalette.prototype, \"paletteExpanding\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getNodeDefaults\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"nodeDefaults\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getConnectorDefaults\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"connectorDefaults\", void 0);\n return SymbolPalette;\n}(Component));\nexport { SymbolPalette };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RealAction } from '../diagram/enum/enum';\nimport { DiagramRenderer } from '../diagram/rendering/renderer';\nimport { CanvasRenderer } from '../diagram/rendering/canvas-renderer';\nimport { Component, Property, Browser, EventHandler, Event, isBlazor } from '@syncfusion/ej2-base';\nimport { setAttributeHtml, setAttributeSvg, createHtmlElement, getHTMLLayer } from '../diagram/utility/dom-util';\nimport { createSvgElement, getNativeLayer, hasClass } from '../diagram/utility/dom-util';\nimport { Rect } from '../diagram/primitives/rect';\nimport { Size } from '../diagram/primitives/size';\nimport { SvgRenderer } from '../diagram/rendering/svg-renderer';\n/**\n * Overview control allows you to see a preview or an overall view of the entire content of a Diagram.\n * This helps you to look at the overall picture of a large Diagram\n * To navigate, pan, or zoom, on a particular position of the page.\n * ```html\n *
\n *
\n * ```\n * ```typescript\n * let overview: Overview;\n * let diagram: Diagram = new Diagram({\n * width:'1000px', height:'500px' });\n * diagram.appendTo('#diagram');\n * let options: OverviewModel = {};\n * options.sourceID = 'diagram';\n * options.width = '250px';\n * options.height = '500px';\n * overview = new Overview(options);\n * overview.appendTo('#overview');\n * ```\n */\nvar Overview = /** @class */ (function (_super) {\n __extends(Overview, _super);\n function Overview(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.mode = 'Canvas';\n /** @private */\n _this.id = 'overview';\n _this.actionName = '';\n _this.startPoint = null;\n _this.currentPoint = null;\n _this.prevPoint = null;\n _this.scale = null;\n _this.inAction = false;\n _this.viewPortRatio = 1;\n _this.horizontalOffset = 0;\n _this.verticalOffset = 0;\n _this.model = {};\n _this.event = true;\n _this.overviewid = 88123;\n _this.model = { width: _this.width, height: _this.height };\n return _this;\n }\n /**\n * Updates the overview control when the objects are changed\n *\n * @param {OverviewModel} newProp - Lists the new values of the changed properties\n * @param {OverviewModel} oldProp - Lists the old values of the changed properties\n */\n Overview.prototype.onPropertyChanged = function (newProp, oldProp) {\n //let objectArray: Object[] = [];\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'sourceID':\n this.setParent(newProp.sourceID);\n break;\n case 'width':\n case 'height':\n this.renderCanvas();\n this.setParent(this.sourceID);\n break;\n }\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Get the properties to be maintained in the persisted state.\n */\n Overview.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Initializes the values of private members.\n *\n * @returns {void} Initializes the values of private members.\n * @private\n */\n Overview.prototype.preRender = function () {\n if (this.element.id === '') {\n var collection = document.getElementsByClassName('e-overview').length;\n this.element.id = 'overview_' + this.overviewid + '_' + collection;\n }\n //EJ2-64637 - Diagram element in the overview disappears on window resize.\n this.id = this.element.id ? this.element.id : this.id;\n this.element.style.background = 'transparent';\n this.unWireEvents();\n this.wireEvents();\n };\n Overview.prototype.render = function () {\n this.diagramRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), false);\n this.renderCanvas();\n this.setParent(this.sourceID);\n this.renderComplete();\n };\n // eslint-disable-next-line @typescript-eslint/ban-types\n Overview.prototype.getSizeValue = function (real) {\n var text;\n if (real.toString().indexOf('px') > 0 || real.toString().indexOf('%') > 0) {\n text = real.toString();\n }\n else {\n text = real.toString() + 'px';\n }\n return text;\n };\n Overview.prototype.renderCanvas = function (options) {\n var canvas = document.getElementById(this.element.id + '_canvas');\n if (!canvas) {\n canvas = createHtmlElement('div', {});\n this.element.appendChild(canvas);\n }\n var attribute = {\n 'id': this.element.id + '_canvas', 'class': 'drawing',\n 'style': 'position:relative; height:' + this.getSizeValue(this.model.height) + '; width:' +\n this.getSizeValue(this.model.width) +\n ';style:-ms-touch-action: none;touch-action: none;'\n };\n setAttributeHtml(canvas, attribute);\n this.element.setAttribute('tabindex', String(0));\n this.element.style.overflow = 'hidden';\n this.element.style.height = String(this.model.height);\n this.element.style.width = String(this.model.width);\n this.canvas = canvas;\n };\n Overview.prototype.setParent = function (id) {\n var element = document.getElementById(id);\n var instance = 'ej2_instances';\n if (this.parent) {\n var oldparent = this.parent;\n this.parent = null;\n oldparent.setOverview(null, this.element.id);\n this.removeDocument(this);\n }\n this.parent = this.getDiagram(element, instance);\n if (this.parent) {\n this.parent.setOverview(this);\n }\n };\n Overview.prototype.getDiagram = function (element, instance) {\n var diagram;\n var n = element[\"\" + instance].length;\n for (var i = 0; i < n; i++) {\n if (hasClass(element[\"\" + instance][parseInt(i.toString(), 10)].element, 'e-diagram')) {\n diagram = element[\"\" + instance][parseInt(i.toString(), 10)];\n break;\n }\n }\n return diagram;\n };\n Overview.prototype.unWireEvents = function () {\n var start = Browser.touchStartEvent;\n var move = Browser.touchMoveEvent;\n //const evnt: EventHandler;\n var cancel = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n //const isIE11Pointer: Boolean = Browser.isPointer;\n // const wheelEvent: string = Browser.info.name === 'mozilla' ?\n // (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n var stop = Browser.touchEndEvent;\n EventHandler.remove(this.element, start, this.mouseDown);\n EventHandler.remove(this.element, move, this.mouseMove);\n EventHandler.remove(this.element, stop, this.mouseUp);\n EventHandler.remove(this.element, cancel, this.documentMouseUp);\n EventHandler.remove(window, 'resize', this.windowResize);\n var container = document.getElementById(this.sourceID + 'content');\n if (container) {\n EventHandler.remove(container, 'scroll', this.scrolled);\n }\n };\n Overview.prototype.wireEvents = function () {\n var start = Browser.touchStartEvent;\n var stop = Browser.touchEndEvent;\n var move = Browser.touchMoveEvent;\n var cancel = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n //const isIE11Pointer: Boolean = Browser.isPointer;\n // const wheelEvent: string = Browser.info.name === 'mozilla' ?\n // (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n EventHandler.add(this.element, start, this.mouseDown, this);\n EventHandler.add(this.element, move, this.mouseMove, this);\n EventHandler.add(this.element, stop, this.mouseUp, this);\n EventHandler.add(this.element, cancel, this.documentMouseUp, this);\n // eslint-disable\n EventHandler.add(window, 'resize', this.windowResize, this);\n // eslint-enable\n var container = document.getElementById(this.sourceID + 'content');\n if (container) {\n EventHandler.add(container, 'scroll', this.scrolled, this);\n }\n };\n /**\n * renderDocument method\\\n *\n * @returns { void } renderDocument method .\\\n * @param {Overview} view - provide the angle value.\n * @private\n */\n Overview.prototype.renderDocument = function (view) {\n view.canvas = this.canvas;\n var g = document.getElementById(this.canvas.id + '_svg');\n if (g) {\n g.parentNode.removeChild(g);\n }\n var attr = {\n id: this.canvas.id + '_svg',\n version: '1.1',\n 'class': 'overview_svg'\n };\n var svg = createSvgElement('svg', attr);\n this.svg = svg;\n view.svg = svg;\n view.canvas.appendChild(svg);\n var ovw = document.getElementById(this.element.id);\n var element = ovw;\n var eWidth = element.clientWidth;\n var eHeight = element.clientHeight;\n var bRect = element.getBoundingClientRect();\n // Check for the window resize\n var screenX = (window.screenX < 0) ? window.screenX * -1 : window.screenX;\n var screenY = (window.screenY < 0) ? window.screenY * -1 : window.screenY;\n if (eWidth === 0) {\n var widthValue = Math.floor(((window.innerWidth - screenX) - Math.floor(bRect.left)));\n eWidth = widthValue > 0 ? widthValue : Math.floor(window.innerWidth);\n }\n if (eHeight === 0) {\n var heightValue = Math.floor(((window.innerHeight - screenY) - Math.floor(bRect.top)));\n eHeight = heightValue > 0 ? heightValue : Math.floor(window.innerHeight);\n }\n if (eWidth > 0) {\n svg.setAttribute('width', String(eWidth));\n this.model.height = eHeight;\n }\n if (eHeight > 0) {\n svg.setAttribute('height', String(eHeight));\n this.model.width = eWidth;\n }\n //let attributes: Object;\n if (!view.diagramLayerDiv) {\n view.diagramLayerDiv = createHtmlElement('div', {});\n //const container: HTMLElement = document.getElementById(this.element.id);\n view.diagramLayer = CanvasRenderer.createCanvas(this.element.id + '_diagramLayer', this.model.width, this.model.height);\n view.diagramLayer.setAttribute('style', 'position:absolute; left:0px; top:0px ');\n view.diagramLayerDiv.appendChild(view.diagramLayer);\n view.canvas.appendChild(view.diagramLayerDiv);\n }\n var attributes = {\n 'id': this.element.id + '_diagramLayer_div',\n 'style': 'width:' + this.model.width + 'px; height:' + this.model.height + 'px;position:absolute;top:0px;left:0px'\n };\n setAttributeHtml(view.diagramLayerDiv, attributes);\n this.renderHtmlLayer(view.canvas);\n this.renderNativeLayer(view.canvas, view);\n this.addOverviewRectPanel(view);\n };\n /**\n * removeDocument method\\\n *\n * @returns { void } removeDocument method .\\\n * @param {Overview} view - provide the angle value.\n * @private\n */\n Overview.prototype.removeDocument = function (view) {\n var svg = document.getElementById(this.canvas.id + '_svg');\n this.canvas.removeChild(svg);\n var htmlLayer = document.getElementById(this.element.id + '_htmlLayer');\n this.canvas.removeChild(htmlLayer);\n var diagramLayer = document.getElementById(this.element.id + '_diagramLayer_div');\n this.canvas.removeChild(diagramLayer);\n view.diagramLayerDiv = null;\n view.diagramLayer = null;\n var domTable = 'domTable';\n window[\"\" + domTable][this.id + 'html_layer'] = null;\n };\n Overview.prototype.renderHtmlLayer = function (canvas) {\n var htmlLayer = createHtmlElement('div', {\n 'id': this.element.id + '_htmlLayer', 'class': 'e-html-layer',\n 'style': 'pointer-events:none;position:absolute;top:0px;left:0px;'\n });\n var options = {\n 'id': this.element.id + '_htmlLayer_div',\n 'style': 'position:absolute;top:0px;left:0px;'\n };\n var htmlDiv = createHtmlElement('div', options);\n htmlLayer.appendChild(htmlDiv);\n canvas.appendChild(htmlLayer);\n return htmlLayer;\n };\n Overview.prototype.renderNativeLayer = function (canvas, view) {\n if (!document.getElementById(this.element.id + '_nativeLayer_svg')) {\n var nativeLayerSvg = this.parent.createSvg(this.element.id + '_nativeLayer_svg', this.model.width, this.model.height);\n var nativeLayer = createSvgElement('g', { 'id': this.element.id + '_nativeLayer' });\n nativeLayerSvg.appendChild(nativeLayer);\n view.diagramLayerDiv.appendChild(nativeLayerSvg);\n setAttributeSvg(nativeLayerSvg, { 'class': 'e-native-layer' });\n }\n };\n Overview.prototype.addOverviewRectPanel = function (view) {\n var svg = document.getElementById(this.canvas.id + '_overviewsvg');\n if (svg) {\n svg.parentNode.removeChild(svg);\n }\n var attr = ({\n id: this.canvas.id + '_overviewsvg',\n class: 'overviewsvg',\n version: '1.1',\n 'style': 'position:absolute;left:0px;top:0px; aria-label:Specifies overview',\n width: this.model.width,\n height: this.model.height\n });\n svg = createSvgElement('svg', attr);\n view.canvas.appendChild(svg);\n var ovw = createSvgElement('g', { 'id': this.element.id + '_overviewlayer', 'style': 'pointer-events:none' });\n svg.appendChild(ovw);\n var rect = createSvgElement('rect', {\n 'fill': 'transparent', 'width': '100%', 'height': '100%', 'class': 'overviewbackrect',\n 'id': this.canvas.id + 'overviewbackrect'\n });\n rect.setAttribute('style', ' pointer-events: none; ');\n ovw.appendChild(rect);\n //const svgDocument: SVGElement = (ovw);\n var g = createSvgElement('g', { 'id': this.canvas.id + 'overviewhandle', 'style': 'pointer-events:all' });\n ovw.appendChild(g);\n var innerrect = createSvgElement('rect', { 'id': this.canvas.id + 'overviewrect', 'fill': 'transparent' });\n g.appendChild(innerrect);\n this.renderOverviewCorner('left', g);\n this.renderOverviewCorner('right', g);\n this.renderOverviewCorner('top', g);\n this.renderOverviewCorner('bottom', g);\n this.renderOverviewCorner('topleft', g);\n this.renderOverviewCorner('topright', g);\n this.renderOverviewCorner('bottomleft', g);\n this.renderOverviewCorner('bottomright', g);\n };\n Overview.prototype.renderOverviewCorner = function (name, parent) {\n var svg = this.svg;\n var shape;\n if (name === 'top' || name === 'bottom' || name === 'right' || name === 'left') {\n shape = 'rect';\n }\n else {\n shape = 'circle';\n }\n var innerrect = createSvgElement(shape, { 'id': this.canvas.id + 'visible' + name });\n parent.appendChild(innerrect);\n var transrect = createSvgElement(shape, {\n 'id': this.canvas.id + name, 'class': 'overviewresizer', 'fill': 'transparent'\n });\n parent.appendChild(transrect);\n };\n Overview.prototype.updateOverviewRectangle = function () {\n var difx = this.currentPoint.x - this.prevPoint.x;\n var dify = this.currentPoint.y - this.prevPoint.y;\n var size = new Size();\n size.width = 0;\n size.height = 0;\n var x = 0;\n var y = 0;\n var w;\n var h;\n switch (this.resizeDirection) {\n case 'left':\n size.width -= difx;\n size.height -= difx / this.viewPortRatio;\n x = difx;\n y = difx / this.viewPortRatio;\n y /= 2;\n break;\n case 'right':\n size.width += difx;\n size.height += difx / this.viewPortRatio;\n y = difx / this.viewPortRatio;\n y /= -2;\n break;\n case 'top':\n size.height -= dify;\n size.width -= dify * this.viewPortRatio;\n y = dify;\n x = dify * this.viewPortRatio;\n x /= 2;\n break;\n case 'bottom':\n size.height += dify;\n size.width += dify * this.viewPortRatio;\n x = dify * this.viewPortRatio;\n x /= -2;\n break;\n case 'topleft':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = dify * this.viewPortRatio;\n }\n else {\n dify = difx / this.viewPortRatio;\n }\n size.width -= difx;\n size.height -= dify;\n x = difx;\n y = dify;\n break;\n case 'topright':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = -dify * this.viewPortRatio;\n }\n else {\n dify = -(difx / this.viewPortRatio);\n }\n y = dify;\n size.width += difx;\n size.height -= dify;\n break;\n case 'bottomleft':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = -dify * this.viewPortRatio;\n }\n else {\n dify = -difx / this.viewPortRatio;\n }\n x = difx;\n size.width -= difx;\n size.height += dify;\n break;\n case 'bottomright':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = dify * this.viewPortRatio;\n }\n else {\n dify = difx / this.viewPortRatio;\n }\n size.width += difx;\n size.height += dify;\n break;\n }\n this.updateHelper(x, y, size, w, h);\n };\n Overview.prototype.updateHelper = function (difx, dify, size, width, height) {\n var x;\n var y;\n var bounds;\n var svg = this.element.getElementsByTagName('svg')[2];\n var rect = svg.getElementById('helper');\n if (size) {\n bounds = rect.getBBox();\n x = bounds.x + difx;\n y = bounds.y + dify;\n width = bounds.width + size.width;\n height = bounds.height + size.height;\n }\n else {\n var difx_1;\n if (this.currentPoint.x > this.startPoint.x) {\n difx_1 = this.currentPoint.x - this.prevPoint.x;\n }\n else {\n difx_1 = this.prevPoint.x - this.currentPoint.x;\n }\n var dify_1;\n if (this.currentPoint.y > this.startPoint.y) {\n dify_1 = this.currentPoint.y - this.prevPoint.y;\n }\n else {\n dify_1 = this.prevPoint.y - this.currentPoint.y;\n }\n var w = void 0;\n var h = void 0;\n if (Math.abs(dify_1) > Math.abs(difx_1)) {\n difx_1 = this.viewPortRatio * dify_1;\n h = true;\n w = false;\n }\n else {\n dify_1 = difx_1 / this.viewPortRatio;\n w = true;\n h = false;\n }\n bounds = rect.getBBox();\n x = ((this.startPoint.x > this.currentPoint.x) ?\n bounds.x - difx_1 : bounds.x);\n y = ((this.startPoint.y > this.currentPoint.y) ? bounds.y - dify_1 : bounds.y);\n width = bounds.width + difx_1;\n height = bounds.height + dify_1;\n }\n setAttributeSvg(this.helper, {\n 'id': this.helper.id, 'x': x, 'y': y,\n 'width': Math.max(0, width), 'height': Math.max(0, height)\n });\n };\n Overview.prototype.updateOverviewrect = function (x, y, width, height) {\n var rect = document.getElementById(this.canvas.id + 'overviewrect');\n var attr = { x: x, y: y, width: Math.max(1, width), height: Math.max(1, height) };\n setAttributeHtml(rect, attr);\n this.updateOverviewCorner('top', x + 8, y + 1, Math.max(0, width - 16), 2);\n this.updateOverviewCorner('bottom', x + 8, y + height + 3, Math.max(0, width - 16), 2);\n this.updateOverviewCorner('left', x - 2, y + 11, 2, Math.max(0, height - 16));\n this.updateOverviewCorner('right', x + width, y + 11, 2, Math.max(0, height - 16));\n this.updateOverviewCorner('topleft', x, y + 3, 5, 5);\n this.updateOverviewCorner('topright', x + width, y + 3, 5, 5);\n this.updateOverviewCorner('bottomleft', x, y + height + 3, 5, 5);\n this.updateOverviewCorner('bottomright', x + width, y + height + 3, 5, 5);\n };\n Overview.prototype.updateOverviewCorner = function (name, x, y, width, height) {\n var attr;\n var transattr;\n var rectname = 'visible' + name;\n var rect = document.getElementById(this.canvas.id + rectname);\n if (name === 'top' || name === 'bottom' || name === 'right' || name === 'left') {\n attr = { x: x, y: y, width: width, height: height, fill: '#ED1C24' };\n transattr = { x: x - 2, y: y - 2, width: width === 2 ? 4 : width, height: height === 2 ? 4 : height };\n }\n else {\n attr = { cx: x, cy: y, 'r': 4, fill: '#ED1C24' };\n transattr = { cx: x, cy: y, 'r': 6, fill: 'transparent' };\n }\n setAttributeHtml(rect, attr);\n var transrect = document.getElementById(this.canvas.id + name);\n setAttributeHtml(transrect, transattr);\n };\n Overview.prototype.translateOverviewRectangle = function () {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n var difx = this.currentPoint.x - this.prevPoint.x;\n var dify = this.currentPoint.y - this.prevPoint.y;\n //const viewPort: Rect;\n //let zoom: number = Math.min(this.parent.scroller.viewPortWidth / offwidth, this.parent.scroller.viewPortHeight / offheight);\n var svg = this.element.getElementsByClassName('overviewsvg')[0];\n var panel = svg.getElementById(this.canvas.id\n + 'overviewrect');\n var bounds = panel.getBBox();\n var x = bounds.x + difx;\n var y = bounds.y + dify;\n var width = bounds.width;\n var height = bounds.height;\n this.updateOverviewrect(x, y, width, height);\n this.updateParentView(this.parent.scroller.currentZoom, x, y, width, height, null);\n };\n Overview.prototype.renderOverviewRect = function (x, y, width, height) {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n //const viewPort: Rect;\n var viewwidth = (width / offwidth) * this.contentWidth;\n var viewheight = (height / offheight) * this.contentHeight;\n var zoom = Math.max(this.parent.scroller.viewPortWidth / viewwidth, this.parent.scroller.viewPortHeight / viewheight);\n if (zoom >= 0.25 && zoom <= 30) {\n var point = { x: 0, y: 0 };\n this.updateParentView(zoom, x, y, width, height, point);\n var bounds = this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom, true);\n if (this.helper) {\n var panel = this.element.getElementsByTagName('rect')[10];\n var svgRect = panel.getBBox();\n bounds.x = svgRect.x;\n bounds.y = svgRect.y;\n }\n this.updateOverviewrect(bounds.x, bounds.y, bounds.width, bounds.height);\n }\n };\n Overview.prototype.scrollOverviewRect = function (hoffset, voffset, currentZoom, scaled) {\n if (!(this.actionName) || scaled) {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n var scale = Math.min(this.contentWidth / offwidth, this.contentHeight / offheight);\n var bounds = new Rect();\n var x = bounds.x = (hoffset / currentZoom) / scale;\n var y = bounds.y = (voffset / currentZoom) / scale;\n //const viewPort: Rect;\n var width = bounds.width = (this.parent.scroller.viewPortWidth / currentZoom) / scale;\n var height = bounds.height = (this.parent.scroller.viewPortHeight / currentZoom) / scale;\n //const ratio: number = this.parent.scroller.viewPortWidth / this.parent.scroller.viewPortHeight;\n if (scaled) {\n var rect = new Rect();\n rect.x = x;\n rect.y = y;\n rect.width = width;\n rect.height = height;\n return rect;\n }\n this.updateOverviewrect(-x, -y, width, height);\n }\n return null;\n };\n Overview.prototype.updateParentView = function (zoom, x, y, width, height, focusPoint) {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n var scalex = this.contentWidth / offwidth;\n var scaley = this.contentHeight / offheight;\n var hoffset = x * scalex * zoom;\n var voffset = y * scaley * zoom;\n var delx;\n var dely;\n var bounds = this.parent.scroller.getPageBounds();\n if (zoom !== 1 || this.actionName === 'pan') {\n delx = -hoffset - this.parent.scroller.horizontalOffset;\n dely = -voffset - this.parent.scroller.verticalOffset;\n }\n this.parent.setBlazorDiagramProps(true);\n this.parent.realActions |= RealAction.OverViewAction;\n var canOverview = true;\n if (this.actionName === 'scale' || this.actionName === 'draw') {\n this.parent.scroller.zoom(zoom / this.parent.scroller.currentZoom, delx, dely, focusPoint);\n }\n else {\n if (!isBlazor()) {\n this.parent.pan(delx, dely, focusPoint, canOverview);\n }\n else {\n this.parent.scroller.zoom(1, delx, dely, focusPoint);\n }\n }\n };\n Overview.prototype.updateHtmlLayer = function (view) {\n var htmlLayer = getHTMLLayer(view.element.id);\n var bounds = this.parent.scroller.getPageBounds(true);\n var width = bounds.width;\n var height = bounds.height;\n var w = Math.max(width, this.parent.scroller.viewPortWidth);\n var h = Math.max(height, this.parent.scroller.viewPortHeight / this.parent.scroller.currentZoom);\n var scale = Math.min(Number(this.model.width) / w, Number(this.model.height) / h);\n htmlLayer.style.transform = 'scale(' + scale + ') translate(' + this.parent.scroller.transform.tx + 'px,'\n + (this.parent.scroller.transform.ty) + 'px)';\n };\n /** @private */\n /**\n * updateView method\\\n *\n * @returns { void } removeDocument method .\\\n * @param {Overview} view - provide the angle value.\n * @private\n */\n Overview.prototype.updateView = function (view) {\n //let width: number; let height: number;\n var bounds = this.parent.scroller.getPageBounds();\n var diagramBoundsWidth = this.parent.scroller.viewPortWidth / this.parent.scroller.currentZoom;\n var diagramBoundsHeight = this.parent.scroller.viewPortHeight / this.parent.scroller.currentZoom;\n var transformWidth = 0;\n var transformHeight = 0;\n if (this.parent.scroller.currentZoom < 1 && diagramBoundsWidth > bounds.width && diagramBoundsHeight > bounds.height) {\n transformWidth = (diagramBoundsWidth - bounds.width) / 2;\n transformHeight = (diagramBoundsHeight - bounds.height) / 2;\n }\n var width = bounds.width;\n var height = bounds.height;\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n //let scale: number;\n var w = Math.max(width, this.parent.scroller.viewPortWidth);\n var h = Math.max(height, this.parent.scroller.viewPortHeight / this.parent.scroller.currentZoom);\n this.contentWidth = w = Math.max(w, (offwidth / offheight) * h);\n this.contentHeight = h = Math.max(h, (offheight / offwidth) * w);\n var scale = Math.min(offwidth / w, offheight / h);\n var htmlLayer = document.getElementById(this.element.id + '_htmlLayer');\n htmlLayer.style.webkitTransform = 'scale(' + scale + ') translate(' + -bounds.x + 'px,' + (-bounds.y) + 'px)';\n htmlLayer.style.transform = 'scale(' + scale + ') translate(' + ((-(bounds.x)) + transformWidth) + 'px,'\n + (((-bounds.y) + transformHeight)) + 'px)';\n var ovw = document.getElementById(this.element.id + '_overviewlayer');\n ovw.setAttribute('transform', 'translate(' + (-bounds.x * scale) + ',' + (-bounds.y * scale) + ')');\n this.horizontalOffset = bounds.x * scale;\n this.verticalOffset = bounds.y * scale;\n var canvas = document.getElementById(this.element.id + '_diagramLayer');\n var nativeLayer = getNativeLayer(this.element.id);\n var context = canvas.getContext('2d');\n var widthratio = (Number(this.model.width) / this.contentWidth);\n var heightratio = (Number(this.model.height) / this.contentHeight);\n widthratio = Math.min(widthratio, heightratio);\n var transform = this.parent.scroller.transform;\n var tx = transform.tx;\n var ty = transform.ty;\n nativeLayer.setAttribute('transform', 'translate('\n + (tx * widthratio) + ',' + (ty * heightratio) + '),scale('\n + widthratio + ')');\n context.setTransform(widthratio, 0, 0, widthratio, 0, 0);\n context.fillStyle = 'red';\n this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom);\n };\n // region - Event Handlers\n Overview.prototype.scrolled = function (evt) {\n if (this.event) {\n var bounds = this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom, true);\n this.updateOverviewrect(-bounds.x, -bounds.y, bounds.width, bounds.height);\n // EJ2-67416 - Added below code to update the overview rect if the diagram and overview is scrolled.\n this.updateView(this);\n }\n };\n Overview.prototype.updateCursor = function (evt) {\n if (hasClass(evt.target, ('overviewresizer'))) {\n switch (evt.target.id) {\n case this.canvas.id + 'left':\n this.canvas.style.cursor = 'w-resize';\n break;\n case this.canvas.id + 'right':\n this.canvas.style.cursor = 'e-resize';\n break;\n case this.canvas.id + 'top':\n this.canvas.style.cursor = 'n-resize';\n break;\n case this.canvas.id + 'bottom':\n this.canvas.style.cursor = 's-resize';\n break;\n case this.canvas.id + 'topleft':\n this.canvas.style.cursor = 'nw-resize';\n break;\n case this.canvas.id + 'topright':\n this.canvas.style.cursor = 'ne-resize';\n break;\n case this.canvas.id + 'bottomleft':\n this.canvas.style.cursor = 'sw-resize';\n break;\n case this.canvas.id + 'bottomright':\n this.canvas.style.cursor = 'se-resize';\n break;\n }\n }\n else {\n this.canvas.style.cursor = 'default';\n }\n };\n Overview.prototype.mouseMove = function (evt) {\n this.event = false;\n this.updateCursor(evt);\n this.currentPoint = this.mousePosition(evt);\n if (this.actionName) {\n switch (this.actionName) {\n case 'draw':\n if (!this.inAction && (this.startPoint.x !== this.currentPoint.x || this.startPoint.y !== this.currentPoint.y)) {\n this.initHelper();\n this.inAction = true;\n }\n if (this.inAction) {\n this.updateHelper();\n }\n break;\n case 'scale':\n if (!this.inAction) {\n this.initHelper();\n this.inAction = true;\n }\n this.updateOverviewRectangle();\n break;\n case 'pan':\n if ((this.startPoint.x !== this.currentPoint.x || this.startPoint.y === this.currentPoint.y) || this.inAction) {\n this.inAction = true;\n this.translateOverviewRectangle();\n }\n break;\n }\n }\n this.prevPoint = this.currentPoint;\n };\n Overview.prototype.documentMouseUp = function (evt) {\n this.inAction = false;\n this.actionName = '';\n if (this.helper) {\n this.helper.parentNode.removeChild(this.helper);\n this.helper = null;\n }\n this.event = true;\n document.getElementById(this.canvas.id + 'overviewhandle').style.pointerEvents = 'all';\n };\n Overview.prototype.windowResize = function (evt) {\n var _this = this;\n if (this.resizeTo) {\n clearTimeout(this.resizeTo);\n }\n this.resizeTo = setTimeout(function () {\n var element = document.getElementById(_this.element.id);\n var bRect = element.getBoundingClientRect();\n _this.model.width = bRect.width > 0 ? bRect.width : _this.model.width;\n _this.model.height = bRect.height > 0 ? bRect.height : _this.model.height;\n _this.renderCanvas();\n _this.setParent(_this.sourceID);\n }, 10);\n return false;\n };\n /**\n * mouseDown method\\\n *\n * @returns { void } mouseDown method .\\\n * @param {PointerEvent | TouchEvent} evt - provide the angle value.\n * @private\n */\n Overview.prototype.mouseDown = function (evt) {\n if (evt.target.id === this.canvas.id + '_overviewsvg') {\n this.actionName = 'draw';\n }\n if (evt.target.id === this.canvas.id + 'overviewrect') {\n this.actionName = 'pan';\n }\n if (hasClass(evt.target, 'overviewresizer')) {\n this.actionName = 'scale';\n switch (evt.target.id) {\n case this.canvas.id + 'left':\n this.resizeDirection = 'left';\n break;\n case this.canvas.id + 'right':\n this.resizeDirection = 'right';\n break;\n case this.canvas.id + 'top':\n this.resizeDirection = 'top';\n break;\n case this.canvas.id + 'bottom':\n this.resizeDirection = 'bottom';\n break;\n case this.canvas.id + 'topleft':\n this.resizeDirection = 'topleft';\n break;\n case this.canvas.id + 'topright':\n this.resizeDirection = 'topright';\n break;\n case this.canvas.id + 'bottomleft':\n this.resizeDirection = 'bottomleft';\n break;\n case this.canvas.id + 'bottomright':\n this.resizeDirection = 'bottomright';\n break;\n }\n }\n this.startPoint = this.prevPoint = this.mousePosition(evt);\n this.viewPortRatio = this.parent.scroller.viewPortWidth / this.parent.scroller.viewPortHeight;\n var overViewHandle = document.getElementById(this.canvas.id + 'overviewhandle');\n overViewHandle.style.pointerEvents = 'none';\n };\n Overview.prototype.mouseUp = function (evt) {\n this.currentPoint = this.mousePosition(evt);\n //let offwidth: number = Number(this.model.width);\n //let offheight: number = Number(this.model.height);\n if (this.actionName) {\n if ((this.startPoint.x !== this.currentPoint.x || this.startPoint.y !== this.currentPoint.y)) {\n if (this.actionName === 'pan') {\n //let i: number = 0;\n }\n else {\n if (this.helper) {\n var bounds = (this.element.getElementsByTagName('rect')[10]).getBBox();\n this.resizeDirection = this.resizeDirection || '';\n var x = bounds.x;\n var y = bounds.y;\n var width = bounds.width;\n var height = bounds.height;\n var adjust = this.resizeDirection === 'topleft' || this.resizeDirection === 'topright' ||\n this.resizeDirection === 'bottomleft' || this.resizeDirection === 'bottomright';\n this.renderOverviewRect(x, y, width, height);\n }\n }\n }\n else {\n if (evt.target.id === this.canvas.id + '_overviewsvg' || evt.target.id === 'helper') {\n var svg = this.element.getElementsByTagName('svg')[2];\n var g = svg.getElementById(this.canvas.id\n + 'overviewrect');\n var bounds = g.getBBox();\n var width = bounds.width;\n var height = bounds.height;\n this.inAction = true;\n this.actionName = 'pan';\n this.renderOverviewRect(this.currentPoint.x - width / 2, this.currentPoint.y - height / 2, width, height);\n this.inAction = false;\n }\n }\n }\n if (this.helper) {\n this.helper.parentNode.removeChild(this.helper);\n this.helper = null;\n }\n this.actionName = '';\n this.startPoint = null;\n this.currentPoint = null;\n this.prevPoint = null;\n this.helper = null;\n this.viewPortRatio = 1;\n this.resizeDirection = '';\n this.inAction = false;\n this.event = true;\n document.getElementById(this.canvas.id + 'overviewhandle').style.pointerEvents = 'all';\n };\n Overview.prototype.initHelper = function () {\n var g = this.element.getElementsByTagName('svg')[2];\n //const scale: number = this.parent.scroller.currentZoom;\n var x = this.startPoint.x;\n var y = this.startPoint.y;\n var width = 1;\n var height = 1;\n if (this.actionName === 'scale') {\n var rect = g.\n getElementById(this.canvas.id + 'overviewrect');\n var bounds = rect.getBBox();\n x = bounds.x;\n y = bounds.y;\n width = bounds.width;\n height = bounds.height;\n }\n var selectionRect = createSvgElement('rect', {\n 'id': 'helper', x: x, y: y, width: width, height: height,\n 'fill': 'transparent', 'stroke': 'gray', 'stroke-dasharray': '2 2', 'shape-rendering': 'crispEdges'\n });\n var overviewLayer = g.getElementById(this.element.id + '_overviewlayer');\n overviewLayer.appendChild(selectionRect);\n this.helper = selectionRect;\n };\n Overview.prototype.mousePosition = function (evt) {\n var touchArg;\n var offsetX;\n var offsetY;\n if (evt.type.indexOf('touch') !== -1) {\n touchArg = evt;\n var pageX = touchArg.changedTouches[0].clientX;\n var pageY = touchArg.changedTouches[0].clientY;\n offsetX = pageX - this.element.offsetLeft;\n offsetY = pageY - this.element.offsetTop;\n }\n else {\n offsetX = evt.clientX;\n offsetY = evt.clientY;\n }\n var boundingRect = this.element.getBoundingClientRect();\n offsetX = offsetX - boundingRect.left;\n offsetY = offsetY - boundingRect.top;\n return { x: offsetX + this.horizontalOffset, y: offsetY + this.verticalOffset };\n };\n // end region - Event handlers\n /**\n *To destroy the overview\n *\n * @returns {void} To destroy the overview\n */\n Overview.prototype.destroy = function () {\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n if (document.getElementById(this.element.id)) {\n this.element.classList.remove('e-overview');\n var content = document.getElementById(this.element.id + '_canvas');\n if (content) {\n this.element.removeChild(content);\n }\n }\n this.parent.views.splice(this.parent.views.indexOf(this.element.id), 1);\n this.diagramLayerDiv = null;\n this.canvas = null;\n this.parent = null;\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n Overview.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Overview';\n };\n __decorate([\n Property('100%')\n ], Overview.prototype, \"width\", void 0);\n __decorate([\n Property('100%')\n ], Overview.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Overview.prototype, \"sourceID\", void 0);\n __decorate([\n Event()\n ], Overview.prototype, \"created\", void 0);\n return Overview;\n}(Component));\nexport { Overview };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Diagram } from '@syncfusion/ej2-diagrams';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents react Diagram Component\n * ```tsx\n * \n * ```\n */\nvar DiagramComponent = /** @class */ (function (_super) {\n __extends(DiagramComponent, _super);\n function DiagramComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.directivekeys = { 'layers': 'layer', 'customCursors': 'customCursor', 'connectors': { 'connector': { 'connectorFixedUserHandles': 'connectorFixedUserHandle', 'connectorAnnotations': 'connectorAnnotation' } }, 'nodes': { 'node': { 'nodeFixedUserHandles': 'nodeFixedUserHandle', 'nodeAnnotations': 'nodeAnnotation', 'ports': 'port' } } };\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = false;\n _this.portals = [];\n return _this;\n }\n DiagramComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return DiagramComponent;\n}(Diagram));\nexport { DiagramComponent };\napplyMixins(DiagramComponent, [ComponentBase, React.Component]);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { ComplexBase } from '@syncfusion/ej2-react-base';\n/**\n * `Palette` directive represent a axis palette of the react SymbolPalette.\n * It must be contained in a SymbolPalette component(`SymbolPaletteComponent`).\n * ```tsx\n * \n * \n * \n * \n * \n * ```\n */\nvar PaletteDirective = /** @class */ (function (_super) {\n __extends(PaletteDirective, _super);\n function PaletteDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PaletteDirective.moduleName = 'palette';\n return PaletteDirective;\n}(ComplexBase));\nexport { PaletteDirective };\nvar PalettesDirective = /** @class */ (function (_super) {\n __extends(PalettesDirective, _super);\n function PalettesDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PalettesDirective.propertyName = 'palettes';\n PalettesDirective.moduleName = 'palettes';\n return PalettesDirective;\n}(ComplexBase));\nexport { PalettesDirective };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { SymbolPalette } from '@syncfusion/ej2-diagrams';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents react SymbolPalette Component\n * ```tsx\n * \n * ```\n */\nvar SymbolPaletteComponent = /** @class */ (function (_super) {\n __extends(SymbolPaletteComponent, _super);\n function SymbolPaletteComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = true;\n _this.directivekeys = { 'palettes': 'palette' };\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n SymbolPaletteComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return SymbolPaletteComponent;\n}(SymbolPalette));\nexport { SymbolPaletteComponent };\napplyMixins(SymbolPaletteComponent, [ComponentBase, React.Component]);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as React from 'react';\nimport { Overview } from '@syncfusion/ej2-diagrams';\nimport { ComponentBase, applyMixins } from '@syncfusion/ej2-react-base';\n/**\n * Represents react Overview Component\n * ```tsx\n * \n * ```\n */\nvar OverviewComponent = /** @class */ (function (_super) {\n __extends(OverviewComponent, _super);\n function OverviewComponent(props) {\n var _this = _super.call(this, props) || this;\n _this.initRenderCalled = false;\n _this.checkInjectedModules = false;\n _this.statelessTemplateProps = null;\n _this.templateProps = null;\n _this.immediateRender = true;\n _this.portals = [];\n return _this;\n }\n OverviewComponent.prototype.render = function () {\n if (((this.element && !this.initRenderCalled) || this.refreshing) && !this.isReactForeceUpdate) {\n _super.prototype.render.call(this);\n this.initRenderCalled = true;\n }\n else {\n return React.createElement('div', this.getDefaultAttributes(), [].concat(this.props.children, this.portals));\n }\n };\n return OverviewComponent;\n}(Overview));\nexport { OverviewComponent };\napplyMixins(OverviewComponent, [ComponentBase, React.Component]);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _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}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n};\n\nvar isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n};\nvar isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n}; // We are using types to enforce the `stripe` prop in this lib,\n// but in an untyped integration `stripe` could be anything, so we need\n// to do some sanity validation to prevent type errors.\n\nvar isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n};\n\nvar PLAIN_OBJECT_STR = '[object Object]';\nvar isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n};\n\nvar extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n};\n\nvar INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n// integration `stripe` could be anything, so we need to do some sanity\n// validation to prevent type errors.\n\nvar validateStripe = function validateStripe(maybeStripe) {\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(INVALID_STRIPE_ERROR);\n};\n\nvar parseStripeProp = function parseStripeProp(raw) {\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(validateStripe)\n };\n }\n\n var stripe = validateStripe(raw);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n};\n\nvar ElementsContext = /*#__PURE__*/React.createContext(null);\nElementsContext.displayName = 'ElementsContext';\nvar parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n};\nvar CartElementContext = /*#__PURE__*/React.createContext(null);\nCartElementContext.displayName = 'CartElementContext';\nvar parseCartElementContext = function parseCartElementContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n};\n/**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\nvar Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]);\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n cart = _React$useState2[0],\n setCart = _React$useState2[1];\n\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n cartState = _React$useState4[0],\n setCartState = _React$useState4[1]; // For a sync stripe instance, initialize into context\n\n\n var _React$useState5 = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n ctx = _React$useState6[0],\n setContext = _React$useState6[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n var anyStripe = ctx.stripe;\n\n if (!anyStripe || !anyStripe._registerWrapper || !anyStripe.registerAppInfo) {\n return;\n }\n\n anyStripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"2.1.1\"\n });\n\n anyStripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"2.1.1\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, /*#__PURE__*/React.createElement(CartElementContext.Provider, {\n value: {\n cart: cart,\n setCart: setCart,\n cartState: cartState,\n setCartState: setCartState\n }\n }, children));\n};\nElements.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.object\n};\nvar useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n};\nvar useCartElementContextWithUseCase = function useCartElementContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(CartElementContext);\n return parseCartElementContext(ctx, useCaseMessage);\n};\n/**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\nvar useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n};\n/**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\nvar useStripe = function useStripe() {\n var _useElementsContextWi2 = useElementsContextWithUseCase('calls useStripe()'),\n stripe = _useElementsContextWi2.stripe;\n\n return stripe;\n};\n/**\n * @docs https://stripe.com/docs/payments/checkout/cart-element\n */\n\nvar useCartElement = function useCartElement() {\n var _useCartElementContex = useCartElementContextWithUseCase('calls useCartElement()'),\n cart = _useCartElementContex.cart;\n\n return cart;\n};\n/**\n * @docs https://stripe.com/docs/payments/checkout/cart-element\n */\n\nvar useCartElementState = function useCartElementState() {\n var _useCartElementContex2 = useCartElementContextWithUseCase('calls useCartElementState()'),\n cartState = _useCartElementContex2.cartState;\n\n return cartState;\n};\n/**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\nvar ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts '); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n};\nElementsConsumer.propTypes = {\n children: PropTypes.func.isRequired\n};\n\nvar useAttachEvent = function useAttachEvent(element, event, cb) {\n var cbDefined = !!cb;\n var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n // Using a ref saves us from calling element.on/.off every render.\n\n React.useEffect(function () {\n cbRef.current = cb;\n }, [cb]);\n React.useEffect(function () {\n if (!cbDefined || !element) {\n return function () {};\n }\n\n var decoratedCb = function decoratedCb() {\n if (cbRef.current) {\n cbRef.current.apply(cbRef, arguments);\n }\n };\n\n element.on(event, decoratedCb);\n return function () {\n element.off(event, decoratedCb);\n };\n }, [cbDefined, event, element, cbRef]);\n};\n\nvar capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nvar createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n onBlur = _ref.onBlur,\n onFocus = _ref.onFocus,\n onReady = _ref.onReady,\n onChange = _ref.onChange,\n onEscape = _ref.onEscape,\n onClick = _ref.onClick,\n onLoadError = _ref.onLoadError,\n onLoaderStart = _ref.onLoaderStart,\n onNetworksChange = _ref.onNetworksChange,\n onCheckout = _ref.onCheckout,\n onLineItemClick = _ref.onLineItemClick,\n onConfirm = _ref.onConfirm,\n onCancel = _ref.onCancel,\n onShippingAddressChange = _ref.onShippingAddressChange,\n onShippingRateChange = _ref.onShippingRateChange;\n\n var _useElementsContextWi = useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\")),\n elements = _useElementsContextWi.elements;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null);\n\n var _useCartElementContex = useCartElementContextWithUseCase(\"mounts <\".concat(displayName, \">\")),\n setCart = _useCartElementContex.setCart,\n setCartState = _useCartElementContex.setCartState; // For every event where the merchant provides a callback, call element.on\n // with that callback. If the merchant ever changes the callback, removes\n // the old callback with element.off and then call element.on with the new one.\n\n\n useAttachEvent(element, 'blur', onBlur);\n useAttachEvent(element, 'focus', onFocus);\n useAttachEvent(element, 'escape', onEscape);\n useAttachEvent(element, 'click', onClick);\n useAttachEvent(element, 'loaderror', onLoadError);\n useAttachEvent(element, 'loaderstart', onLoaderStart);\n useAttachEvent(element, 'networkschange', onNetworksChange);\n useAttachEvent(element, 'lineitemclick', onLineItemClick);\n useAttachEvent(element, 'confirm', onConfirm);\n useAttachEvent(element, 'cancel', onCancel);\n useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n var readyCallback;\n\n if (type === 'cart') {\n readyCallback = function readyCallback(event) {\n setCartState(event);\n onReady && onReady(event);\n };\n } else if (onReady) {\n if (type === 'expressCheckout') {\n // Passes through the event, which includes visible PM types\n readyCallback = onReady;\n } else {\n // For other Elements, pass through the Element itself.\n readyCallback = function readyCallback() {\n onReady(element);\n };\n }\n }\n\n useAttachEvent(element, 'ready', readyCallback);\n var changeCallback = type === 'cart' ? function (event) {\n setCartState(event);\n onChange && onChange(event);\n } : onChange;\n useAttachEvent(element, 'change', changeCallback);\n var checkoutCallback = type === 'cart' ? function (event) {\n setCartState(event);\n onCheckout && onCheckout(event);\n } : onCheckout;\n useAttachEvent(element, 'checkout', checkoutCallback);\n React.useLayoutEffect(function () {\n if (elementRef.current === null && elements && domNode.current !== null) {\n var newElement = elements.create(type, options);\n\n if (type === 'cart' && setCart) {\n // we know that elements.create return value must be of type StripeCartElement if type is 'cart',\n // we need to cast because typescript is not able to infer which overloaded method is used based off param type\n setCart(newElement);\n } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n setElement(newElement);\n newElement.mount(domNode.current);\n }\n }, [elements, options, setCart]);\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current && typeof elementRef.current.destroy === 'function') {\n try {\n elementRef.current.destroy();\n elementRef.current = null;\n } catch (error) {// Do nothing\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n // Validate that we are in the right context by calling useElementsContextWithUseCase.\n useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n useCartElementContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onReady: PropTypes.func,\n onEscape: PropTypes.func,\n onClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoaderStart: PropTypes.func,\n onNetworksChange: PropTypes.func,\n onCheckout: PropTypes.func,\n onLineItemClick: PropTypes.func,\n onConfirm: PropTypes.func,\n onCancel: PropTypes.func,\n onShippingAddressChange: PropTypes.func,\n onShippingRateChange: PropTypes.func,\n options: PropTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n};\n\nvar isServer = typeof window === 'undefined';\n/**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardElement = createElementComponent('card', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardNumberElement = createElementComponent('cardNumber', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardExpiryElement = createElementComponent('cardExpiry', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar CardCvcElement = createElementComponent('cardCvc', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar FpxBankElement = createElementComponent('fpxBank', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar IbanElement = createElementComponent('iban', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar IdealBankElement = createElementComponent('idealBank', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar P24BankElement = createElementComponent('p24Bank', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar EpsBankElement = createElementComponent('epsBank', isServer);\nvar PaymentElement = createElementComponent('payment', isServer);\n/**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar ExpressCheckoutElement = createElementComponent('expressCheckout', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n/**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar AddressElement = createElementComponent('address', isServer);\n/**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n/**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/elements/cart-element\n */\n\nvar CartElement = createElementComponent('cart', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n/**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\nvar AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\nexport { AddressElement, AffirmMessageElement, AfterpayClearpayMessageElement, AuBankAccountElement, CardCvcElement, CardElement, CardExpiryElement, CardNumberElement, CartElement, Elements, ElementsConsumer, EpsBankElement, ExpressCheckoutElement, FpxBankElement, IbanElement, IdealBankElement, LinkAuthenticationElement, P24BankElement, PaymentElement, PaymentMethodMessagingElement, PaymentRequestButtonElement, ShippingAddressElement, useCartElement, useCartElementState, useElements, useStripe };\n","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.54.1\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\n// own script injection.\n\nvar stripePromise$1 = Promise.resolve().then(function () {\n return loadScript(null);\n});\nvar loadCalled = false;\nstripePromise$1[\"catch\"](function (err) {\n if (!loadCalled) {\n console.warn(err);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now();\n return stripePromise$1.then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","export const semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nexport const validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nexport const compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\n//# sourceMappingURL=utils.js.map","import { compareSegments, validateAndParse } from './utils';\n/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n//# sourceMappingURL=compareVersions.js.map","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import toDate from \"../toDate/index.js\";\nimport addLeadingZeros from \"../_lib/addLeadingZeros/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {'extended'|'basic'} [options.format='extended'] - if 'basic', hide delimiters between date and time values.\n * @param {'complete'|'date'|'time'} [options.representation='complete'] - format date, time with local time zone, or both.\n * @returns {String} the formatted date string (in local time zone)\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.format` must be 'extended' or 'basic'\n * @throws {RangeError} `options.representation` must be 'date', 'time' or 'complete'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\nexport default function formatISO(date, options) {\n var _options$format, _options$representati;\n requiredArgs(1, arguments);\n var originalDate = toDate(date);\n if (isNaN(originalDate.getTime())) {\n throw new RangeError('Invalid time value');\n }\n var format = String((_options$format = options === null || options === void 0 ? void 0 : options.format) !== null && _options$format !== void 0 ? _options$format : 'extended');\n var representation = String((_options$representati = options === null || options === void 0 ? void 0 : options.representation) !== null && _options$representati !== void 0 ? _options$representati : 'complete');\n if (format !== 'extended' && format !== 'basic') {\n throw new RangeError(\"format must be 'extended' or 'basic'\");\n }\n if (representation !== 'date' && representation !== 'time' && representation !== 'complete') {\n throw new RangeError(\"representation must be 'date', 'time', or 'complete'\");\n }\n var result = '';\n var tzOffset = '';\n var dateDelimiter = format === 'extended' ? '-' : '';\n var timeDelimiter = format === 'extended' ? ':' : '';\n\n // Representation is either 'date' or 'complete'\n if (representation !== 'time') {\n var day = addLeadingZeros(originalDate.getDate(), 2);\n var month = addLeadingZeros(originalDate.getMonth() + 1, 2);\n var year = addLeadingZeros(originalDate.getFullYear(), 4);\n\n // yyyyMMdd or yyyy-MM-dd.\n result = \"\".concat(year).concat(dateDelimiter).concat(month).concat(dateDelimiter).concat(day);\n }\n\n // Representation is either 'time' or 'complete'\n if (representation !== 'date') {\n // Add the timezone.\n var offset = originalDate.getTimezoneOffset();\n if (offset !== 0) {\n var absoluteOffset = Math.abs(offset);\n var hourOffset = addLeadingZeros(Math.floor(absoluteOffset / 60), 2);\n var minuteOffset = addLeadingZeros(absoluteOffset % 60, 2);\n // If less than 0, the sign is +, because it is ahead of time.\n var sign = offset < 0 ? '+' : '-';\n tzOffset = \"\".concat(sign).concat(hourOffset, \":\").concat(minuteOffset);\n } else {\n tzOffset = 'Z';\n }\n var hour = addLeadingZeros(originalDate.getHours(), 2);\n var minute = addLeadingZeros(originalDate.getMinutes(), 2);\n var second = addLeadingZeros(originalDate.getSeconds(), 2);\n\n // If there's also date, separate it with time with 'T'\n var separator = result === '' ? '' : 'T';\n\n // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n var time = [hour, minute, second].join(timeDelimiter);\n\n // HHmmss or HH:mm:ss.\n result = \"\".concat(result).concat(separator).concat(time).concat(tzOffset);\n }\n return result;\n}","// Keep only the fields that are valid in JSON\nconst cleanFields = (obj)=>{\n if (typeof obj === 'undefined' || obj === null || typeof obj === 'bigint' || Number.isNaN(obj) || obj === Infinity || obj === -Infinity) {\n return undefined;\n }\n if ([\n 'string',\n 'number',\n 'boolean'\n ].includes(typeof obj)) {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(cleanFields).filter((t)=>typeof t !== 'undefined');\n }\n const result = {};\n for (const [key, value] of Object.entries(obj)){\n const cleaned = cleanFields(value);\n if (typeof cleaned !== 'undefined') {\n result[key] = cleaned;\n }\n }\n return result;\n};\n\n/**\n * If we use `a.push(...b)`, it will result in `Maximum call stack size exceeded` error.\n * The reason is unclear, it may be a bug of V8, so we should implement a push method by ourselves.\n */ const concat = (a, b, prependEach = false)=>{\n if (!Array.isArray(a) || !Array.isArray(b)) {\n throw new Error('Both arguments should be arrays.');\n }\n const lenA = a.length;\n const lenB = b.length;\n const len = lenA + lenB;\n const result = new Array(len);\n if (prependEach) {\n for(let i = 0; i < lenB; i++){\n result[i] = b[lenB - i - 1];\n }\n for(let i = 0; i < lenA; i++){\n result[i + lenB] = a[i];\n }\n return result;\n }\n for(let i = 0; i < lenA; i++){\n result[i] = a[i];\n }\n for(let i = 0; i < lenB; i++){\n result[i + lenA] = b[i];\n }\n return result;\n};\n\nconst detectCircular = (value, map = new Map())=>{\n // primitive types should not be checked\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n // value has appeared\n if (map.has(value)) {\n return true;\n }\n map.set(value, true);\n // value is an array\n if (Array.isArray(value)) {\n for(let i = 0; i < value.length; i++){\n if (detectCircular(value[i], map)) {\n return true;\n }\n }\n return false;\n }\n // value is an object\n for(const key in value){\n if (detectCircular(value[key], map)) {\n return true;\n }\n }\n return false;\n};\n\n// https://gist.github.com/RexSkz/c4f78a6e143e9008f9c717623b7a2bc1\nconst stringify = (obj, replacer, space, depth = Infinity, undefinedBehavior)=>{\n if (!obj || typeof obj !== 'object') {\n let result = undefined;\n if (!Number.isNaN(obj) && obj !== Infinity && obj !== -Infinity && typeof obj !== 'bigint') {\n result = JSON.stringify(obj, replacer, space);\n }\n if (result === undefined) {\n switch(undefinedBehavior){\n case UndefinedBehavior.throw:\n throw new Error(`Value is not valid in JSON, got ${String(obj)}`);\n case UndefinedBehavior.stringify:\n return stringifyInvalidValue(obj);\n default:\n throw new Error(`Should not reach here, please report this bug.`);\n }\n }\n return result;\n }\n const t = depth < 1 ? '\"...\"' : Array.isArray(obj) ? `[${obj.map((v)=>stringify(v, replacer, space, depth - 1, undefinedBehavior)).join(',')}]` : `{${Object.keys(obj).map((k)=>`\"${k}\": ${stringify(obj[k], replacer, space, depth - 1, undefinedBehavior)}`).join(', ')}}`;\n return JSON.stringify(JSON.parse(t), replacer, space);\n};\nconst stringifyInvalidValue = (value)=>{\n if (value === undefined) {\n return 'undefined';\n }\n if (value === Infinity) {\n return 'Infinity';\n }\n if (value === -Infinity) {\n return '-Infinity';\n }\n if (Number.isNaN(value)) {\n return 'NaN';\n }\n if (typeof value === 'bigint') {\n return `${value}n`;\n }\n return String(value);\n};\n\nconst formatValue = (value, depth = Infinity, pretty = false, undefinedBehavior = UndefinedBehavior.stringify)=>{\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value) || typeof value === 'object') {\n return stringify(value, undefined, pretty ? 1 : undefined, depth, undefinedBehavior);\n }\n return stringify(value, undefined, undefined, undefined, undefinedBehavior);\n};\n\nconst getOrderByType = (value)=>{\n if (typeof value === 'boolean') {\n return 0;\n }\n if (typeof value === 'number') {\n return 1;\n }\n if (typeof value === 'string') {\n return 2;\n }\n if (value === null) {\n return 3;\n }\n if (Array.isArray(value)) {\n return 4;\n }\n if (typeof value === 'object') {\n return 5;\n }\n if (typeof value === 'symbol') {\n return 6;\n }\n if (typeof value === 'function') {\n return 7;\n }\n if (typeof value === 'bigint') {\n return 8;\n }\n return -1;\n};\n/**\n * The compare function to correct the order for \"array\" or \"object\":\n * - The order for 2 values with different types are: boolean, number, string, null, array, object.\n * - The order for 2 values with the same type is according to the type:\n * - For boolean, number, string: use the `<` sign.\n * - For array and object: preserve the original order (or do we have a better idea?)\n */ const cmp = (a, b, options)=>{\n var _options_keyOrdersMap, _options_keyOrdersMap1;\n const orderByMapA = (_options_keyOrdersMap = options.keyOrdersMap) == null ? void 0 : _options_keyOrdersMap.get(a);\n const orderByMapB = (_options_keyOrdersMap1 = options.keyOrdersMap) == null ? void 0 : _options_keyOrdersMap1.get(b);\n if (orderByMapA !== undefined && orderByMapB !== undefined) {\n return orderByMapA - orderByMapB;\n }\n const orderByTypeA = getOrderByType(a);\n const orderByTypeB = getOrderByType(b);\n if (orderByTypeA !== orderByTypeB) {\n return orderByTypeA - orderByTypeB;\n }\n if (a === null && b === null || Array.isArray(a) && Array.isArray(b) || orderByTypeA === 5 && orderByTypeB === 5) {\n return 0;\n }\n switch(typeof a){\n case 'number':\n if (Number.isNaN(a) && Number.isNaN(b) || a === Infinity && b === Infinity || a === -Infinity && b === -Infinity) {\n return 0;\n }\n return a - b;\n case 'string':\n if (options.ignoreCase) {\n a = a.toLowerCase();\n b = b.toLowerCase();\n }\n return a < b ? -1 : a > b ? 1 : 0;\n case 'boolean':\n return +a - +b;\n case 'symbol':\n case 'function':\n return String(a).localeCompare(String(b));\n }\n if (typeof a === 'bigint' && typeof b === 'bigint') {\n const result = BigInt(a) - BigInt(b);\n return result < 0 ? -1 : result > 0 ? 1 : 0;\n }\n return String(a).localeCompare(String(b));\n};\n\nconst getType = (value)=>{\n if (Array.isArray(value)) {\n return 'array';\n }\n if (value === null) {\n return 'null';\n }\n return typeof value;\n};\n\nconst prettyAppendLines = (linesLeft, linesRight, keyLeft, keyRight, valueLeft, valueRight, level, options)=>{\n const valueCmpOptions = {\n ignoreCase: options.ignoreCase\n };\n const _resultLeft = formatValue(valueLeft, options.maxDepth, true, options.undefinedBehavior).split('\\n');\n const _resultRight = formatValue(valueRight, options.maxDepth, true, options.undefinedBehavior).split('\\n');\n if (cmp(valueLeft, valueRight, valueCmpOptions) !== 0) {\n if (options.showModifications) {\n const maxLines = Math.max(_resultLeft.length, _resultRight.length);\n for(let i = _resultLeft.length; i < maxLines; i++){\n _resultLeft.push('');\n }\n for(let i = _resultRight.length; i < maxLines; i++){\n _resultRight.push('');\n }\n linesLeft.push({\n level,\n type: 'modify',\n text: keyLeft ? `\"${keyLeft}\": ${_resultLeft[0]}` : _resultLeft[0]\n });\n for(let i = 1; i < _resultLeft.length; i++){\n var _resultLeft_i_match, _resultLeft_i_match_;\n linesLeft.push({\n level: level + (((_resultLeft_i_match = _resultLeft[i].match(/^\\s+/)) == null ? void 0 : (_resultLeft_i_match_ = _resultLeft_i_match[0]) == null ? void 0 : _resultLeft_i_match_.length) || 0),\n type: 'modify',\n text: _resultLeft[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n }\n for(let i = _resultLeft.length; i < maxLines; i++){\n linesLeft.push({\n level,\n type: 'equal',\n text: ''\n });\n }\n linesRight.push({\n level,\n type: 'modify',\n text: keyRight ? `\"${keyRight}\": ${_resultRight[0]}` : _resultRight[0]\n });\n for(let i = 1; i < _resultRight.length; i++){\n var _resultRight_i_match, _resultRight_i_match_;\n linesRight.push({\n level: level + (((_resultRight_i_match = _resultRight[i].match(/^\\s+/)) == null ? void 0 : (_resultRight_i_match_ = _resultRight_i_match[0]) == null ? void 0 : _resultRight_i_match_.length) || 0),\n type: 'modify',\n text: _resultRight[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n }\n for(let i = _resultRight.length; i < maxLines; i++){\n linesRight.push({\n level,\n type: 'equal',\n text: ''\n });\n }\n } else {\n linesLeft.push({\n level,\n type: 'remove',\n text: keyLeft ? `\"${keyLeft}\": ${_resultLeft[0]}` : _resultLeft[0]\n });\n for(let i = 1; i < _resultLeft.length; i++){\n var _resultLeft_i_match1, _resultLeft_i_match_1;\n linesLeft.push({\n level: level + (((_resultLeft_i_match1 = _resultLeft[i].match(/^\\s+/)) == null ? void 0 : (_resultLeft_i_match_1 = _resultLeft_i_match1[0]) == null ? void 0 : _resultLeft_i_match_1.length) || 0),\n type: 'remove',\n text: _resultLeft[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n }\n for(let i = 0; i < _resultRight.length; i++){\n linesLeft.push({\n level,\n type: 'equal',\n text: ''\n });\n }\n for(let i = 0; i < _resultLeft.length; i++){\n linesRight.push({\n level,\n type: 'equal',\n text: ''\n });\n }\n linesRight.push({\n level,\n type: 'add',\n text: keyRight ? `\"${keyRight}\": ${_resultRight[0]}` : _resultRight[0]\n });\n for(let i = 1; i < _resultRight.length; i++){\n var _resultRight_i_match1, _resultRight_i_match_1;\n linesRight.push({\n level: level + (((_resultRight_i_match1 = _resultRight[i].match(/^\\s+/)) == null ? void 0 : (_resultRight_i_match_1 = _resultRight_i_match1[0]) == null ? void 0 : _resultRight_i_match_1.length) || 0),\n type: 'add',\n text: _resultRight[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n }\n }\n } else {\n const maxLines = Math.max(_resultLeft.length, _resultRight.length);\n for(let i = _resultLeft.length; i < maxLines; i++){\n _resultLeft.push('');\n }\n for(let i = _resultRight.length; i < maxLines; i++){\n _resultRight.push('');\n }\n linesLeft.push({\n level,\n type: 'equal',\n text: keyLeft ? `\"${keyLeft}\": ${_resultLeft[0]}` : _resultLeft[0]\n });\n for(let i = 1; i < _resultLeft.length; i++){\n var _resultLeft_i_match2, _resultLeft_i_match_2;\n linesLeft.push({\n level: level + (((_resultLeft_i_match2 = _resultLeft[i].match(/^\\s+/)) == null ? void 0 : (_resultLeft_i_match_2 = _resultLeft_i_match2[0]) == null ? void 0 : _resultLeft_i_match_2.length) || 0),\n type: 'equal',\n text: _resultLeft[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n }\n linesRight.push({\n level,\n type: 'equal',\n text: keyRight ? `\"${keyRight}\": ${_resultRight[0]}` : _resultRight[0]\n });\n for(let i = 1; i < _resultRight.length; i++){\n var _resultRight_i_match2, _resultRight_i_match_2;\n linesRight.push({\n level: level + (((_resultRight_i_match2 = _resultRight[i].match(/^\\s+/)) == null ? void 0 : (_resultRight_i_match_2 = _resultRight_i_match2[0]) == null ? void 0 : _resultRight_i_match_2.length) || 0),\n type: 'equal',\n text: _resultRight[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n }\n }\n};\n\nconst sortKeys = (arr, options)=>{\n return arr.sort((a, b)=>cmp(a, b, {\n ignoreCase: options.ignoreCaseForKey\n }));\n};\n\nconst diffObject = (lhs, rhs, level = 1, options, arrayDiffFunc)=>{\n if (level > (options.maxDepth || Infinity)) {\n return [\n [\n {\n level,\n type: 'equal',\n text: '...'\n }\n ],\n [\n {\n level,\n type: 'equal',\n text: '...'\n }\n ]\n ];\n }\n let linesLeft = [];\n let linesRight = [];\n if (lhs === null && rhs === null || lhs === undefined && rhs === undefined) {\n return [\n linesLeft,\n linesRight\n ];\n } else if (lhs === null || lhs === undefined) {\n const addedLines = stringify(rhs, undefined, 1, undefined, options.undefinedBehavior).split('\\n');\n for(let i = 0; i < addedLines.length; i++){\n var _addedLines_i_match, _addedLines_i_match_;\n linesLeft.push({\n level,\n type: 'equal',\n text: ''\n });\n linesRight.push({\n level: level + (((_addedLines_i_match = addedLines[i].match(/^\\s+/)) == null ? void 0 : (_addedLines_i_match_ = _addedLines_i_match[0]) == null ? void 0 : _addedLines_i_match_.length) || 0),\n type: 'add',\n text: addedLines[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n }\n return [\n linesLeft,\n linesRight\n ];\n } else if (rhs === null || rhs === undefined) {\n const addedLines = stringify(lhs, undefined, 1, undefined, options.undefinedBehavior).split('\\n');\n for(let i = 0; i < addedLines.length; i++){\n var _addedLines_i_match1, _addedLines_i_match_1;\n linesLeft.push({\n level: level + (((_addedLines_i_match1 = addedLines[i].match(/^\\s+/)) == null ? void 0 : (_addedLines_i_match_1 = _addedLines_i_match1[0]) == null ? void 0 : _addedLines_i_match_1.length) || 0),\n type: 'remove',\n text: addedLines[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n linesRight.push({\n level,\n type: 'equal',\n text: ''\n });\n }\n return [\n linesLeft,\n linesRight\n ];\n }\n const keysLeft = Object.keys(lhs);\n const keysRight = Object.keys(rhs);\n const keyOrdersMap = new Map();\n if (!options.preserveKeyOrder) {\n sortKeys(keysLeft, options);\n sortKeys(keysRight, options);\n } else if (options.preserveKeyOrder === 'before') {\n for(let i = 0; i < keysLeft.length; i++){\n keyOrdersMap.set(keysLeft[i], i);\n }\n for(let i = 0; i < keysRight.length; i++){\n if (!keyOrdersMap.has(keysRight[i])) {\n keyOrdersMap.set(keysRight[i], keysLeft.length + i);\n }\n }\n keysRight.sort((a, b)=>keyOrdersMap.get(a) - keyOrdersMap.get(b));\n } else if (options.preserveKeyOrder === 'after') {\n for(let i = 0; i < keysRight.length; i++){\n keyOrdersMap.set(keysRight[i], i);\n }\n for(let i = 0; i < keysLeft.length; i++){\n if (!keyOrdersMap.has(keysLeft[i])) {\n keyOrdersMap.set(keysLeft[i], keysRight.length + i);\n }\n }\n keysLeft.sort((a, b)=>keyOrdersMap.get(a) - keyOrdersMap.get(b));\n }\n const keysCmpOptions = {\n ignoreCase: options.ignoreCaseForKey,\n keyOrdersMap\n };\n while(keysLeft.length || keysRight.length){\n const keyLeft = keysLeft[0];\n const keyRight = keysRight[0];\n const keyCmpResult = cmp(keyLeft, keyRight, keysCmpOptions);\n if (keyCmpResult === 0) {\n if (getType(lhs[keyLeft]) !== getType(rhs[keyRight])) {\n prettyAppendLines(linesLeft, linesRight, keyLeft, keyRight, lhs[keyLeft], rhs[keyRight], level, options);\n } else if (Array.isArray(lhs[keyLeft])) {\n const arrLeft = [\n ...lhs[keyLeft]\n ];\n const arrRight = [\n ...rhs[keyRight]\n ];\n const [resLeft, resRight] = arrayDiffFunc(arrLeft, arrRight, keyLeft, keyRight, level, options, [], []);\n linesLeft = concat(linesLeft, resLeft);\n linesRight = concat(linesRight, resRight);\n } else if (lhs[keyLeft] === null) {\n linesLeft.push({\n level,\n type: 'equal',\n text: `\"${keyLeft}\": null`\n });\n linesRight.push({\n level,\n type: 'equal',\n text: `\"${keyRight}\": null`\n });\n } else if (typeof lhs[keyLeft] === 'object') {\n const result = diffObject(lhs[keyLeft], rhs[keyRight], level + 1, options, arrayDiffFunc);\n linesLeft.push({\n level,\n type: 'equal',\n text: `\"${keyLeft}\": {`\n });\n linesLeft = concat(linesLeft, result[0]);\n linesLeft.push({\n level,\n type: 'equal',\n text: '}'\n });\n linesRight.push({\n level,\n type: 'equal',\n text: `\"${keyRight}\": {`\n });\n linesRight = concat(linesRight, result[1]);\n linesRight.push({\n level,\n type: 'equal',\n text: '}'\n });\n } else {\n prettyAppendLines(linesLeft, linesRight, keyLeft, keyRight, lhs[keyLeft], rhs[keyRight], level, options);\n }\n } else if (keysLeft.length && keysRight.length) {\n if (keyCmpResult < 0) {\n const addedLines = stringify(lhs[keyLeft], undefined, 1, undefined, options.undefinedBehavior).split('\\n');\n for(let i = 0; i < addedLines.length; i++){\n var _addedLines_i_match2, _addedLines_i_match_2;\n const text = addedLines[i].replace(/^\\s+/, '').replace(/,$/g, '');\n linesLeft.push({\n level: level + (((_addedLines_i_match2 = addedLines[i].match(/^\\s+/)) == null ? void 0 : (_addedLines_i_match_2 = _addedLines_i_match2[0]) == null ? void 0 : _addedLines_i_match_2.length) || 0),\n type: 'remove',\n text: i ? text : `\"${keyLeft}\": ${text}`\n });\n linesRight.push({\n level,\n type: 'equal',\n text: ''\n });\n }\n } else {\n const addedLines = stringify(rhs[keyRight], undefined, 1, undefined, options.undefinedBehavior).split('\\n');\n for(let i = 0; i < addedLines.length; i++){\n var _addedLines_i_match3, _addedLines_i_match_3;\n const text = addedLines[i].replace(/^\\s+/, '').replace(/,$/g, '');\n linesLeft.push({\n level,\n type: 'equal',\n text: ''\n });\n linesRight.push({\n level: level + (((_addedLines_i_match3 = addedLines[i].match(/^\\s+/)) == null ? void 0 : (_addedLines_i_match_3 = _addedLines_i_match3[0]) == null ? void 0 : _addedLines_i_match_3.length) || 0),\n type: 'add',\n text: i ? text : `\"${keyRight}\": ${text}`\n });\n }\n }\n } else if (keysLeft.length) {\n const addedLines = stringify(lhs[keyLeft], undefined, 1, undefined, options.undefinedBehavior).split('\\n');\n for(let i = 0; i < addedLines.length; i++){\n var _addedLines_i_match4, _addedLines_i_match_4;\n const text = addedLines[i].replace(/^\\s+/, '').replace(/,$/g, '');\n linesLeft.push({\n level: level + (((_addedLines_i_match4 = addedLines[i].match(/^\\s+/)) == null ? void 0 : (_addedLines_i_match_4 = _addedLines_i_match4[0]) == null ? void 0 : _addedLines_i_match_4.length) || 0),\n type: 'remove',\n text: i ? text : `\"${keyLeft}\": ${text}`\n });\n linesRight.push({\n level,\n type: 'equal',\n text: ''\n });\n }\n } else if (keysRight.length) {\n const addedLines = stringify(rhs[keyRight], undefined, 1, undefined, options.undefinedBehavior).split('\\n');\n for(let i = 0; i < addedLines.length; i++){\n var _addedLines_i_match5, _addedLines_i_match_5;\n const text = addedLines[i].replace(/^\\s+/, '').replace(/,$/g, '');\n linesLeft.push({\n level,\n type: 'equal',\n text: ''\n });\n linesRight.push({\n level: level + (((_addedLines_i_match5 = addedLines[i].match(/^\\s+/)) == null ? void 0 : (_addedLines_i_match_5 = _addedLines_i_match5[0]) == null ? void 0 : _addedLines_i_match_5.length) || 0),\n type: 'add',\n text: i ? text : `\"${keyRight}\": ${text}`\n });\n }\n }\n if (!keyLeft) {\n keysRight.shift();\n } else if (!keyRight) {\n keysLeft.shift();\n } else if (keyCmpResult === 0) {\n keysLeft.shift();\n keysRight.shift();\n } else if (keyCmpResult < 0) {\n keysLeft.shift();\n } else {\n keysRight.shift();\n }\n }\n if (linesLeft.length !== linesRight.length) {\n throw new Error('Diff error: length not match for left & right, please report a bug with your data.');\n }\n return [\n linesLeft,\n linesRight\n ];\n};\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */ function listCacheClear$1() {\n this.__data__ = [];\n this.size = 0;\n}\nvar _listCacheClear = listCacheClear$1;\n\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 */ function eq$2(value, other) {\n return value === other || value !== value && other !== other;\n}\nvar eq_1 = eq$2;\n\nvar eq$1 = eq_1;\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 */ function assocIndexOf$4(array, key) {\n var length = array.length;\n while(length--){\n if (eq$1(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\nvar _assocIndexOf = assocIndexOf$4;\n\nvar assocIndexOf$3 = _assocIndexOf;\n/** Used for built-in method references. */ var arrayProto = Array.prototype;\n/** Built-in value references. */ var splice = arrayProto.splice;\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 */ function listCacheDelete$1(key) {\n var data = this.__data__, index = assocIndexOf$3(data, key);\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}\nvar _listCacheDelete = listCacheDelete$1;\n\nvar assocIndexOf$2 = _assocIndexOf;\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 */ function listCacheGet$1(key) {\n var data = this.__data__, index = assocIndexOf$2(data, key);\n return index < 0 ? undefined : data[index][1];\n}\nvar _listCacheGet = listCacheGet$1;\n\nvar assocIndexOf$1 = _assocIndexOf;\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 */ function listCacheHas$1(key) {\n return assocIndexOf$1(this.__data__, key) > -1;\n}\nvar _listCacheHas = listCacheHas$1;\n\nvar assocIndexOf = _assocIndexOf;\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 */ function listCacheSet$1(key, value) {\n var data = this.__data__, index = assocIndexOf(data, key);\n if (index < 0) {\n ++this.size;\n data.push([\n key,\n value\n ]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\nvar _listCacheSet = listCacheSet$1;\n\nvar listCacheClear = _listCacheClear, listCacheDelete = _listCacheDelete, listCacheGet = _listCacheGet, listCacheHas = _listCacheHas, listCacheSet = _listCacheSet;\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */ function ListCache$4(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while(++index < length){\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n// Add methods to `ListCache`.\nListCache$4.prototype.clear = listCacheClear;\nListCache$4.prototype['delete'] = listCacheDelete;\nListCache$4.prototype.get = listCacheGet;\nListCache$4.prototype.has = listCacheHas;\nListCache$4.prototype.set = listCacheSet;\nvar _ListCache = ListCache$4;\n\nvar ListCache$3 = _ListCache;\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */ function stackClear$1() {\n this.__data__ = new ListCache$3;\n this.size = 0;\n}\nvar _stackClear = stackClear$1;\n\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 */ function stackDelete$1(key) {\n var data = this.__data__, result = data['delete'](key);\n this.size = data.size;\n return result;\n}\nvar _stackDelete = stackDelete$1;\n\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 */ function stackGet$1(key) {\n return this.__data__.get(key);\n}\nvar _stackGet = stackGet$1;\n\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 */ function stackHas$1(key) {\n return this.__data__.has(key);\n}\nvar _stackHas = stackHas$1;\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar freeGlobal$1 = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\nvar _freeGlobal = freeGlobal$1;\n\nvar freeGlobal = _freeGlobal;\n/** Detect free variable `self`. */ var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */ var root$8 = freeGlobal || freeSelf || Function('return this')();\nvar _root = root$8;\n\nvar root$7 = _root;\n/** Built-in value references. */ var Symbol$3 = root$7.Symbol;\nvar _Symbol = Symbol$3;\n\nvar Symbol$2 = _Symbol;\n/** Used for built-in method references. */ var objectProto$b = Object.prototype;\n/** Used to check objects for own properties. */ var hasOwnProperty$8 = objectProto$b.hasOwnProperty;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */ var nativeObjectToString$1 = objectProto$b.toString;\n/** Built-in value references. */ var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : undefined;\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 */ function getRawTag$1(value) {\n var isOwn = hasOwnProperty$8.call(value, symToStringTag$1), tag = value[symToStringTag$1];\n try {\n value[symToStringTag$1] = undefined;\n var unmasked = true;\n } catch (e) {}\n var result = nativeObjectToString$1.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag$1] = tag;\n } else {\n delete value[symToStringTag$1];\n }\n }\n return result;\n}\nvar _getRawTag = getRawTag$1;\n\n/** Used for built-in method references. */ var objectProto$a = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */ var nativeObjectToString = objectProto$a.toString;\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 */ function objectToString$1(value) {\n return nativeObjectToString.call(value);\n}\nvar _objectToString = objectToString$1;\n\nvar Symbol$1 = _Symbol, getRawTag = _getRawTag, objectToString = _objectToString;\n/** `Object#toString` result references. */ var nullTag = '[object Null]', undefinedTag = '[object Undefined]';\n/** Built-in value references. */ var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined;\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 */ function baseGetTag$4(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\nvar _baseGetTag = baseGetTag$4;\n\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 */ function isObject$2(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\nvar isObject_1 = isObject$2;\n\nvar baseGetTag$3 = _baseGetTag, isObject$1 = isObject_1;\n/** `Object#toString` result references. */ var asyncTag = '[object AsyncFunction]', funcTag$1 = '[object Function]', genTag = '[object GeneratorFunction]', proxyTag = '[object Proxy]';\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 */ function isFunction$2(value) {\n if (!isObject$1(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$3(value);\n return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\nvar isFunction_1 = isFunction$2;\n\nvar root$6 = _root;\n/** Used to detect overreaching core-js shims. */ var coreJsData$1 = root$6['__core-js_shared__'];\nvar _coreJsData = coreJsData$1;\n\nvar coreJsData = _coreJsData;\n/** Used to detect methods masquerading as native. */ var maskSrcKey = function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? 'Symbol(src)_1.' + uid : '';\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 */ function isMasked$1(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\nvar _isMasked = isMasked$1;\n\n/** Used for built-in method references. */ var funcProto$1 = Function.prototype;\n/** Used to resolve the decompiled source of functions. */ var funcToString$1 = funcProto$1.toString;\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 */ function toSource$2(func) {\n if (func != null) {\n try {\n return funcToString$1.call(func);\n } catch (e) {}\n try {\n return func + '';\n } catch (e) {}\n }\n return '';\n}\nvar _toSource = toSource$2;\n\nvar isFunction$1 = isFunction_1, isMasked = _isMasked, isObject = isObject_1, toSource$1 = _toSource;\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */ var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n/** Used to detect host constructors (Safari). */ var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n/** Used for built-in method references. */ var funcProto = Function.prototype, objectProto$9 = Object.prototype;\n/** Used to resolve the decompiled source of functions. */ var funcToString = funcProto.toString;\n/** Used to check objects for own properties. */ var hasOwnProperty$7 = objectProto$9.hasOwnProperty;\n/** Used to detect if a method is native. */ var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty$7).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\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 */ function baseIsNative$1(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction$1(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource$1(value));\n}\nvar _baseIsNative = baseIsNative$1;\n\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 */ function getValue$1(object, key) {\n return object == null ? undefined : object[key];\n}\nvar _getValue = getValue$1;\n\nvar baseIsNative = _baseIsNative, getValue = _getValue;\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 */ function getNative$6(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\nvar _getNative = getNative$6;\n\nvar getNative$5 = _getNative, root$5 = _root;\n/* Built-in method references that are verified to be native. */ var Map$4 = getNative$5(root$5, 'Map');\nvar _Map = Map$4;\n\nvar getNative$4 = _getNative;\n/* Built-in method references that are verified to be native. */ var nativeCreate$4 = getNative$4(Object, 'create');\nvar _nativeCreate = nativeCreate$4;\n\nvar nativeCreate$3 = _nativeCreate;\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */ function hashClear$1() {\n this.__data__ = nativeCreate$3 ? nativeCreate$3(null) : {};\n this.size = 0;\n}\nvar _hashClear = hashClear$1;\n\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 */ function hashDelete$1(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _hashDelete = hashDelete$1;\n\nvar nativeCreate$2 = _nativeCreate;\n/** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED$2 = '__lodash_hash_undefined__';\n/** Used for built-in method references. */ var objectProto$8 = Object.prototype;\n/** Used to check objects for own properties. */ var hasOwnProperty$6 = objectProto$8.hasOwnProperty;\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 */ function hashGet$1(key) {\n var data = this.__data__;\n if (nativeCreate$2) {\n var result = data[key];\n return result === HASH_UNDEFINED$2 ? undefined : result;\n }\n return hasOwnProperty$6.call(data, key) ? data[key] : undefined;\n}\nvar _hashGet = hashGet$1;\n\nvar nativeCreate$1 = _nativeCreate;\n/** Used for built-in method references. */ var objectProto$7 = Object.prototype;\n/** Used to check objects for own properties. */ var hasOwnProperty$5 = objectProto$7.hasOwnProperty;\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 */ function hashHas$1(key) {\n var data = this.__data__;\n return nativeCreate$1 ? data[key] !== undefined : hasOwnProperty$5.call(data, key);\n}\nvar _hashHas = hashHas$1;\n\nvar nativeCreate = _nativeCreate;\n/** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED$1 = '__lodash_hash_undefined__';\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 */ function hashSet$1(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED$1 : value;\n return this;\n}\nvar _hashSet = hashSet$1;\n\nvar hashClear = _hashClear, hashDelete = _hashDelete, hashGet = _hashGet, hashHas = _hashHas, hashSet = _hashSet;\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */ function Hash$1(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while(++index < length){\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n// Add methods to `Hash`.\nHash$1.prototype.clear = hashClear;\nHash$1.prototype['delete'] = hashDelete;\nHash$1.prototype.get = hashGet;\nHash$1.prototype.has = hashHas;\nHash$1.prototype.set = hashSet;\nvar _Hash = Hash$1;\n\nvar Hash = _Hash, ListCache$2 = _ListCache, Map$3 = _Map;\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */ function mapCacheClear$1() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map$3 || ListCache$2),\n 'string': new Hash\n };\n}\nvar _mapCacheClear = mapCacheClear$1;\n\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 */ function isKeyable$1(value) {\n var type = typeof value;\n return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n}\nvar _isKeyable = isKeyable$1;\n\nvar isKeyable = _isKeyable;\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 */ function getMapData$4(map, key) {\n var data = map.__data__;\n return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\nvar _getMapData = getMapData$4;\n\nvar getMapData$3 = _getMapData;\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 */ function mapCacheDelete$1(key) {\n var result = getMapData$3(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _mapCacheDelete = mapCacheDelete$1;\n\nvar getMapData$2 = _getMapData;\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 */ function mapCacheGet$1(key) {\n return getMapData$2(this, key).get(key);\n}\nvar _mapCacheGet = mapCacheGet$1;\n\nvar getMapData$1 = _getMapData;\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 */ function mapCacheHas$1(key) {\n return getMapData$1(this, key).has(key);\n}\nvar _mapCacheHas = mapCacheHas$1;\n\nvar getMapData = _getMapData;\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 */ function mapCacheSet$1(key, value) {\n var data = getMapData(this, key), size = data.size;\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\nvar _mapCacheSet = mapCacheSet$1;\n\nvar mapCacheClear = _mapCacheClear, mapCacheDelete = _mapCacheDelete, mapCacheGet = _mapCacheGet, mapCacheHas = _mapCacheHas, mapCacheSet = _mapCacheSet;\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 */ function MapCache$2(entries) {\n var index = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while(++index < length){\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n// Add methods to `MapCache`.\nMapCache$2.prototype.clear = mapCacheClear;\nMapCache$2.prototype['delete'] = mapCacheDelete;\nMapCache$2.prototype.get = mapCacheGet;\nMapCache$2.prototype.has = mapCacheHas;\nMapCache$2.prototype.set = mapCacheSet;\nvar _MapCache = MapCache$2;\n\nvar ListCache$1 = _ListCache, Map$2 = _Map, MapCache$1 = _MapCache;\n/** Used as the size to enable large array optimizations. */ var LARGE_ARRAY_SIZE = 200;\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 */ function stackSet$1(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache$1) {\n var pairs = data.__data__;\n if (!Map$2 || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([\n key,\n value\n ]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache$1(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\nvar _stackSet = stackSet$1;\n\nvar ListCache = _ListCache, stackClear = _stackClear, stackDelete = _stackDelete, stackGet = _stackGet, stackHas = _stackHas, stackSet = _stackSet;\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 */ function Stack$1(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n// Add methods to `Stack`.\nStack$1.prototype.clear = stackClear;\nStack$1.prototype['delete'] = stackDelete;\nStack$1.prototype.get = stackGet;\nStack$1.prototype.has = stackHas;\nStack$1.prototype.set = stackSet;\nvar _Stack = Stack$1;\n\n/** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__';\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */ function setCacheAdd$1(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\nvar _setCacheAdd = setCacheAdd$1;\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */ function setCacheHas$1(value) {\n return this.__data__.has(value);\n}\nvar _setCacheHas = setCacheHas$1;\n\nvar MapCache = _MapCache, setCacheAdd = _setCacheAdd, setCacheHas = _setCacheHas;\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */ function SetCache$1(values) {\n var index = -1, length = values == null ? 0 : values.length;\n this.__data__ = new MapCache;\n while(++index < length){\n this.add(values[index]);\n }\n}\n// Add methods to `SetCache`.\nSetCache$1.prototype.add = SetCache$1.prototype.push = setCacheAdd;\nSetCache$1.prototype.has = setCacheHas;\nvar _SetCache = SetCache$1;\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */ function arraySome$1(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length;\n while(++index < length){\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\nvar _arraySome = arraySome$1;\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\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 */ function cacheHas$1(cache, key) {\n return cache.has(key);\n}\nvar _cacheHas = cacheHas$1;\n\nvar SetCache = _SetCache, arraySome = _arraySome, cacheHas = _cacheHas;\n/** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG$3 = 1, COMPARE_UNORDERED_FLAG$1 = 2;\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */ function equalArrays$2(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, arrLength = array.length, othLength = other.length;\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$1 ? new SetCache : undefined;\n stack.set(array, other);\n stack.set(other, array);\n // Ignore non-index properties.\n while(++index < arrLength){\n var arrValue = array[index], othValue = other[index];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\nvar _equalArrays = equalArrays$2;\n\nvar root$4 = _root;\n/** Built-in value references. */ var Uint8Array$1 = root$4.Uint8Array;\nvar _Uint8Array = Uint8Array$1;\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */ function mapToArray$1(map) {\n var index = -1, result = Array(map.size);\n map.forEach(function(value, key) {\n result[++index] = [\n key,\n value\n ];\n });\n return result;\n}\nvar _mapToArray = mapToArray$1;\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */ function setToArray$1(set) {\n var index = -1, result = Array(set.size);\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\nvar _setToArray = setToArray$1;\n\nvar Symbol = _Symbol, Uint8Array = _Uint8Array, eq = eq_1, equalArrays$1 = _equalArrays, mapToArray = _mapToArray, setToArray = _setToArray;\n/** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG$2 = 1, COMPARE_UNORDERED_FLAG = 2;\n/** `Object#toString` result references. */ var boolTag$1 = '[object Boolean]', dateTag$1 = '[object Date]', errorTag$1 = '[object Error]', mapTag$2 = '[object Map]', numberTag$1 = '[object Number]', regexpTag$1 = '[object RegExp]', setTag$2 = '[object Set]', stringTag$1 = '[object String]', symbolTag = '[object Symbol]';\nvar arrayBufferTag$1 = '[object ArrayBuffer]', dataViewTag$2 = '[object DataView]';\n/** Used to convert symbols to primitives and strings. */ var symbolProto = Symbol ? Symbol.prototype : undefined, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */ function equalByTag$1(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch(tag){\n case dataViewTag$2:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n case arrayBufferTag$1:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n case boolTag$1:\n case dateTag$1:\n case numberTag$1:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n case errorTag$1:\n return object.name == other.name && object.message == other.message;\n case regexpTag$1:\n case stringTag$1:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == other + '';\n case mapTag$2:\n var convert = mapToArray;\n case setTag$2:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$2;\n convert || (convert = setToArray);\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays$1(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\nvar _equalByTag = equalByTag$1;\n\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 */ function arrayPush$1(array, values) {\n var index = -1, length = values.length, offset = array.length;\n while(++index < length){\n array[offset + index] = values[index];\n }\n return array;\n}\nvar _arrayPush = arrayPush$1;\n\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 */ var isArray$3 = Array.isArray;\nvar isArray_1 = isArray$3;\n\nvar arrayPush = _arrayPush, isArray$2 = isArray_1;\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 */ function baseGetAllKeys$1(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray$2(object) ? result : arrayPush(result, symbolsFunc(object));\n}\nvar _baseGetAllKeys = baseGetAllKeys$1;\n\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 */ function arrayFilter$1(array, predicate) {\n var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];\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}\nvar _arrayFilter = arrayFilter$1;\n\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 */ function stubArray$1() {\n return [];\n}\nvar stubArray_1 = stubArray$1;\n\nvar arrayFilter = _arrayFilter, stubArray = stubArray_1;\n/** Used for built-in method references. */ var objectProto$6 = Object.prototype;\n/** Built-in value references. */ var propertyIsEnumerable$1 = objectProto$6.propertyIsEnumerable;\n/* Built-in method references for those with the same name as other `lodash` methods. */ var nativeGetSymbols = Object.getOwnPropertySymbols;\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 */ var getSymbols$1 = !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$1.call(object, symbol);\n });\n};\nvar _getSymbols = getSymbols$1;\n\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 */ function baseTimes$1(n, iteratee) {\n var index = -1, result = Array(n);\n while(++index < n){\n result[index] = iteratee(index);\n }\n return result;\n}\nvar _baseTimes = baseTimes$1;\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 */ function isObjectLike$4(value) {\n return value != null && typeof value == 'object';\n}\nvar isObjectLike_1 = isObjectLike$4;\n\nvar baseGetTag$2 = _baseGetTag, isObjectLike$3 = isObjectLike_1;\n/** `Object#toString` result references. */ var argsTag$2 = '[object Arguments]';\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 */ function baseIsArguments$1(value) {\n return isObjectLike$3(value) && baseGetTag$2(value) == argsTag$2;\n}\nvar _baseIsArguments = baseIsArguments$1;\n\nvar baseIsArguments = _baseIsArguments, isObjectLike$2 = isObjectLike_1;\n/** Used for built-in method references. */ var objectProto$5 = Object.prototype;\n/** Used to check objects for own properties. */ var hasOwnProperty$4 = objectProto$5.hasOwnProperty;\n/** Built-in value references. */ var propertyIsEnumerable = objectProto$5.propertyIsEnumerable;\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 */ var isArguments$1 = baseIsArguments(function() {\n return arguments;\n}()) ? baseIsArguments : function(value) {\n return isObjectLike$2(value) && hasOwnProperty$4.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\nvar isArguments_1 = isArguments$1;\n\nvar isBuffer$2 = {exports: {}};\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 */ function stubFalse() {\n return false;\n}\nvar stubFalse_1 = stubFalse;\n\n(function(module, exports) {\n var root = _root, stubFalse = stubFalse_1;\n /** Detect free variable `exports`. */ var freeExports = exports && !exports.nodeType && exports;\n /** Detect free variable `module`. */ var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports = freeModule && freeModule.exports === freeExports;\n /** Built-in value references. */ var Buffer = moduleExports ? root.Buffer : undefined;\n /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\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 */ var isBuffer = nativeIsBuffer || stubFalse;\n module.exports = isBuffer;\n})(isBuffer$2, isBuffer$2.exports);\n\n/** Used as references for various `Number` constants. */ var MAX_SAFE_INTEGER$1 = 9007199254740991;\n/** Used to detect unsigned integer values. */ var reIsUint = /^(?:0|[1-9]\\d*)$/;\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 */ function isIndex$1(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER$1 : length;\n return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\nvar _isIndex = isIndex$1;\n\n/** Used as references for various `Number` constants. */ var MAX_SAFE_INTEGER = 9007199254740991;\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 */ function isLength$2(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\nvar isLength_1 = isLength$2;\n\nvar baseGetTag$1 = _baseGetTag, isLength$1 = isLength_1, isObjectLike$1 = isObjectLike_1;\n/** `Object#toString` result references. */ var argsTag$1 = '[object Arguments]', arrayTag$1 = '[object Array]', boolTag = '[object Boolean]', dateTag = '[object Date]', errorTag = '[object Error]', funcTag = '[object Function]', mapTag$1 = '[object Map]', numberTag = '[object Number]', objectTag$2 = '[object Object]', regexpTag = '[object RegExp]', setTag$1 = '[object Set]', stringTag = '[object String]', weakMapTag$1 = '[object WeakMap]';\nvar arrayBufferTag = '[object ArrayBuffer]', dataViewTag$1 = '[object DataView]', float32Tag = '[object Float32Array]', float64Tag = '[object Float64Array]', int8Tag = '[object Int8Array]', int16Tag = '[object Int16Array]', int32Tag = '[object Int32Array]', uint8Tag = '[object Uint8Array]', uint8ClampedTag = '[object Uint8ClampedArray]', uint16Tag = '[object Uint16Array]', uint32Tag = '[object Uint32Array]';\n/** Used to identify `toStringTag` values of typed arrays. */ var typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag$1] = typedArrayTags[numberTag] = typedArrayTags[objectTag$2] = typedArrayTags[regexpTag] = typedArrayTags[setTag$1] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag$1] = false;\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 */ function baseIsTypedArray$1(value) {\n return isObjectLike$1(value) && isLength$1(value.length) && !!typedArrayTags[baseGetTag$1(value)];\n}\nvar _baseIsTypedArray = baseIsTypedArray$1;\n\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 */ function baseUnary$1(func) {\n return function(value) {\n return func(value);\n };\n}\nvar _baseUnary = baseUnary$1;\n\nvar _nodeUtil = {exports: {}};\n\n(function(module, exports) {\n var freeGlobal = _freeGlobal;\n /** Detect free variable `exports`. */ var freeExports = exports && !exports.nodeType && exports;\n /** Detect free variable `module`. */ var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports = freeModule && freeModule.exports === freeExports;\n /** Detect free variable `process` from Node.js. */ var freeProcess = moduleExports && freeGlobal.process;\n /** Used to access faster Node.js helpers. */ var nodeUtil = function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n if (types) {\n return types;\n }\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }();\n module.exports = nodeUtil;\n})(_nodeUtil, _nodeUtil.exports);\n\nvar baseIsTypedArray = _baseIsTypedArray, baseUnary = _baseUnary, nodeUtil = _nodeUtil.exports;\n/* Node.js helper references. */ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\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 */ var isTypedArray$2 = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\nvar isTypedArray_1 = isTypedArray$2;\n\nvar baseTimes = _baseTimes, isArguments = isArguments_1, isArray$1 = isArray_1, isBuffer$1 = isBuffer$2.exports, isIndex = _isIndex, isTypedArray$1 = isTypedArray_1;\n/** Used for built-in method references. */ var objectProto$4 = Object.prototype;\n/** Used to check objects for own properties. */ var hasOwnProperty$3 = objectProto$4.hasOwnProperty;\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 */ function arrayLikeKeys$1(value, inherited) {\n var isArr = isArray$1(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer$1(value), isType = !isArr && !isArg && !isBuff && isTypedArray$1(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;\n for(var key in value){\n if ((inherited || hasOwnProperty$3.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.\n (key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == 'offset' || key == 'parent') || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') || // Skip index properties.\n isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\nvar _arrayLikeKeys = arrayLikeKeys$1;\n\n/** Used for built-in method references. */ var objectProto$3 = Object.prototype;\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 */ function isPrototype$1(value) {\n var Ctor = value && value.constructor, proto = typeof Ctor == 'function' && Ctor.prototype || objectProto$3;\n return value === proto;\n}\nvar _isPrototype = isPrototype$1;\n\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 */ function overArg$1(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\nvar _overArg = overArg$1;\n\nvar overArg = _overArg;\n/* Built-in method references for those with the same name as other `lodash` methods. */ var nativeKeys$1 = overArg(Object.keys, Object);\nvar _nativeKeys = nativeKeys$1;\n\nvar isPrototype = _isPrototype, nativeKeys = _nativeKeys;\n/** Used for built-in method references. */ var objectProto$2 = Object.prototype;\n/** Used to check objects for own properties. */ var hasOwnProperty$2 = objectProto$2.hasOwnProperty;\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 */ function baseKeys$1(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for(var key in Object(object)){\n if (hasOwnProperty$2.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\nvar _baseKeys = baseKeys$1;\n\nvar isFunction = isFunction_1, isLength = isLength_1;\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 */ function isArrayLike$1(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\nvar isArrayLike_1 = isArrayLike$1;\n\nvar arrayLikeKeys = _arrayLikeKeys, baseKeys = _baseKeys, isArrayLike = isArrayLike_1;\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 */ function keys$1(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\nvar keys_1 = keys$1;\n\nvar baseGetAllKeys = _baseGetAllKeys, getSymbols = _getSymbols, keys = keys_1;\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 */ function getAllKeys$1(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\nvar _getAllKeys = getAllKeys$1;\n\nvar getAllKeys = _getAllKeys;\n/** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG$1 = 1;\n/** Used for built-in method references. */ var objectProto$1 = Object.prototype;\n/** Used to check objects for own properties. */ var hasOwnProperty$1 = objectProto$1.hasOwnProperty;\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */ function equalObjects$1(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$1, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while(index--){\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty$1.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n while(++index < objLength){\n key = objProps[index];\n var objValue = object[key], othValue = other[key];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor, othCtor = other.constructor;\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\nvar _equalObjects = equalObjects$1;\n\nvar getNative$3 = _getNative, root$3 = _root;\n/* Built-in method references that are verified to be native. */ var DataView$1 = getNative$3(root$3, 'DataView');\nvar _DataView = DataView$1;\n\nvar getNative$2 = _getNative, root$2 = _root;\n/* Built-in method references that are verified to be native. */ var Promise$2 = getNative$2(root$2, 'Promise');\nvar _Promise = Promise$2;\n\nvar getNative$1 = _getNative, root$1 = _root;\n/* Built-in method references that are verified to be native. */ var Set$2 = getNative$1(root$1, 'Set');\nvar _Set = Set$2;\n\nvar getNative = _getNative, root = _root;\n/* Built-in method references that are verified to be native. */ var WeakMap$1 = getNative(root, 'WeakMap');\nvar _WeakMap = WeakMap$1;\n\nvar DataView = _DataView, Map$1 = _Map, Promise$1 = _Promise, Set$1 = _Set, WeakMap = _WeakMap, baseGetTag = _baseGetTag, toSource = _toSource;\n/** `Object#toString` result references. */ var mapTag = '[object Map]', objectTag$1 = '[object Object]', promiseTag = '[object Promise]', setTag = '[object Set]', weakMapTag = '[object WeakMap]';\nvar dataViewTag = '[object DataView]';\n/** Used to detect maps, sets, and weakmaps. */ var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap);\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */ var getTag$1 = baseGetTag;\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif (DataView && getTag$1(new DataView(new ArrayBuffer(1))) != dataViewTag || Map$1 && getTag$1(new Map$1) != mapTag || Promise$1 && getTag$1(Promise$1.resolve()) != promiseTag || Set$1 && getTag$1(new Set$1) != setTag || WeakMap && getTag$1(new WeakMap) != weakMapTag) {\n getTag$1 = function(value) {\n var result = baseGetTag(value), Ctor = result == objectTag$1 ? value.constructor : undefined, ctorString = Ctor ? toSource(Ctor) : '';\n if (ctorString) {\n switch(ctorString){\n case dataViewCtorString:\n return dataViewTag;\n case mapCtorString:\n return mapTag;\n case promiseCtorString:\n return promiseTag;\n case setCtorString:\n return setTag;\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n return result;\n };\n}\nvar _getTag = getTag$1;\n\nvar Stack = _Stack, equalArrays = _equalArrays, equalByTag = _equalByTag, equalObjects = _equalObjects, getTag = _getTag, isArray = isArray_1, isBuffer = isBuffer$2.exports, isTypedArray = isTypedArray_1;\n/** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1;\n/** `Object#toString` result references. */ var argsTag = '[object Arguments]', arrayTag = '[object Array]', objectTag = '[object Object]';\n/** Used for built-in method references. */ var objectProto = Object.prototype;\n/** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */ function baseIsEqualDeep$1(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\nvar _baseIsEqualDeep = baseIsEqualDeep$1;\n\nvar baseIsEqualDeep = _baseIsEqualDeep, isObjectLike = isObjectLike_1;\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */ function baseIsEqual$1(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual$1, stack);\n}\nvar _baseIsEqual = baseIsEqual$1;\n\nvar baseIsEqual = _baseIsEqual;\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\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 * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */ function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n}\nvar isEqualWith_1 = isEqualWith;\n\nconst isEqual = (a, b, options)=>{\n if (options.ignoreCase) {\n return typeof a === 'string' && typeof b === 'string' && a.toLowerCase() === b.toLowerCase();\n }\n if (typeof a === 'symbol' && typeof b === 'symbol') {\n return a.toString() === b.toString();\n }\n if (options.recursiveEqual) {\n return isEqualWith_1(a, b, (a, b)=>options.ignoreCase ? typeof a === 'string' && typeof b === 'string' ? a.toLowerCase() === b.toLowerCase() : undefined : undefined);\n }\n return a === b;\n};\n\nconst shallowSimilarity = (left, right)=>{\n if (left === right) {\n return 1;\n }\n if (left === null || right === null) {\n return 0;\n }\n if (typeof left !== 'object' || typeof right !== 'object') {\n return 0;\n }\n const leftKeys = Object.keys(left);\n const rightKeys = Object.keys(right);\n const leftKeysLength = leftKeys.length;\n const rightKeysLength = rightKeys.length;\n if (leftKeysLength === 0 || rightKeysLength === 0) {\n return 0;\n }\n const leftKeysSet = new Set(leftKeys);\n const rightKeysSet = new Set(rightKeys);\n const intersection = new Set([\n ...leftKeysSet\n ].filter((x)=>rightKeysSet.has(x)));\n if (intersection.size === 0) {\n return 0;\n }\n if (intersection.size === 1 && (leftKeysLength === 1 || rightKeysLength === 1) && left[leftKeys[0]] !== right[rightKeys[0]]) {\n return 0;\n }\n return Math.max(intersection.size / leftKeysLength, intersection.size / rightKeysLength);\n};\n\nconst lcs = (arrLeft, arrRight, keyLeft, keyRight, level, options)=>{\n const f = Array(arrLeft.length + 1).fill(0).map(()=>Array(arrRight.length + 1).fill(0));\n const backtrack = Array(arrLeft.length + 1).fill(0).map(()=>Array(arrRight.length + 1).fill(0));\n for(let i = 1; i <= arrLeft.length; i++){\n backtrack[i][0] = 'up';\n }\n for(let j = 1; j <= arrRight.length; j++){\n backtrack[0][j] = 'left';\n }\n for(let i = 1; i <= arrLeft.length; i++){\n for(let j = 1; j <= arrRight.length; j++){\n const typeI = getType(arrLeft[i - 1]);\n const typeJ = getType(arrRight[j - 1]);\n if (typeI === typeJ && (typeI === 'array' || typeI === 'object')) {\n if (options.recursiveEqual) {\n if (isEqual(arrLeft[i - 1], arrRight[j - 1], options) || shallowSimilarity(arrLeft[i - 1], arrRight[j - 1]) > 0.5) {\n f[i][j] = f[i - 1][j - 1] + 1;\n backtrack[i][j] = 'diag';\n } else if (f[i - 1][j] >= f[i][j - 1]) {\n f[i][j] = f[i - 1][j];\n backtrack[i][j] = 'up';\n } else {\n f[i][j] = f[i][j - 1];\n backtrack[i][j] = 'left';\n }\n } else {\n // this is a diff-specific logic, when 2 values are both arrays or both objects, the\n // algorithm should assume they are equal in order to diff recursively later\n f[i][j] = f[i - 1][j - 1] + 1;\n backtrack[i][j] = 'diag';\n }\n } else if (isEqual(arrLeft[i - 1], arrRight[j - 1], options)) {\n f[i][j] = f[i - 1][j - 1] + 1;\n backtrack[i][j] = 'diag';\n } else if (f[i - 1][j] >= f[i][j - 1]) {\n f[i][j] = f[i - 1][j];\n backtrack[i][j] = 'up';\n } else {\n f[i][j] = f[i][j - 1];\n backtrack[i][j] = 'left';\n }\n }\n }\n let i = arrLeft.length;\n let j = arrRight.length;\n let tLeft = [];\n let tRight = [];\n // this is a backtracking process, all new lines should be unshifted to the result, not\n // pushed to the result\n while(i > 0 || j > 0){\n if (backtrack[i][j] === 'diag') {\n const type = getType(arrLeft[i - 1]);\n if (options.recursiveEqual && (type === 'array' || type === 'object') && isEqual(arrLeft[i - 1], arrRight[j - 1], options)) {\n const reversedLeft = [];\n const reversedRight = [];\n prettyAppendLines(reversedLeft, reversedRight, '', '', arrLeft[i - 1], arrRight[j - 1], level + 1, options);\n tLeft = concat(tLeft, reversedLeft.reverse(), true);\n tRight = concat(tRight, reversedRight.reverse(), true);\n } else if (type === 'array') {\n const [l, r] = diffArrayLCS(arrLeft[i - 1], arrRight[j - 1], keyLeft, keyRight, level + 1, options);\n tLeft = concat(tLeft, l.reverse(), true);\n tRight = concat(tRight, r.reverse(), true);\n } else if (type === 'object') {\n const [l, r] = diffObject(arrLeft[i - 1], arrRight[j - 1], level + 2, options, diffArrayLCS);\n tLeft.unshift({\n level: level + 1,\n type: 'equal',\n text: '}'\n });\n tRight.unshift({\n level: level + 1,\n type: 'equal',\n text: '}'\n });\n tLeft = concat(tLeft, l.reverse(), true);\n tRight = concat(tRight, r.reverse(), true);\n tLeft.unshift({\n level: level + 1,\n type: 'equal',\n text: '{'\n });\n tRight.unshift({\n level: level + 1,\n type: 'equal',\n text: '{'\n });\n } else {\n const reversedLeft = [];\n const reversedRight = [];\n prettyAppendLines(reversedLeft, reversedRight, '', '', arrLeft[i - 1], arrRight[j - 1], level + 1, options);\n tLeft = concat(tLeft, reversedLeft.reverse(), true);\n tRight = concat(tRight, reversedRight.reverse(), true);\n }\n i--;\n j--;\n } else if (backtrack[i][j] === 'up') {\n if (options.showModifications && i > 1 && backtrack[i - 1][j] === 'left') {\n const typeLeft = getType(arrLeft[i - 1]);\n const typeRight = getType(arrRight[j - 1]);\n if (typeLeft === typeRight) {\n if (typeLeft === 'array') {\n const [l, r] = diffArrayLCS(arrLeft[i - 1], arrRight[j - 1], keyLeft, keyRight, level + 1, options);\n tLeft = concat(tLeft, l.reverse(), true);\n tRight = concat(tRight, r.reverse(), true);\n } else if (typeLeft === 'object') {\n const [l, r] = diffObject(arrLeft[i - 1], arrRight[j - 1], level + 2, options, diffArrayLCS);\n tLeft.unshift({\n level: level + 1,\n type: 'equal',\n text: '}'\n });\n tRight.unshift({\n level: level + 1,\n type: 'equal',\n text: '}'\n });\n tLeft = concat(tLeft, l.reverse(), true);\n tRight = concat(tRight, r.reverse(), true);\n tLeft.unshift({\n level: level + 1,\n type: 'equal',\n text: '{'\n });\n tRight.unshift({\n level: level + 1,\n type: 'equal',\n text: '{'\n });\n } else {\n tLeft.unshift({\n level: level + 1,\n type: 'modify',\n text: formatValue(arrLeft[i - 1], undefined, undefined, options.undefinedBehavior)\n });\n tRight.unshift({\n level: level + 1,\n type: 'modify',\n text: formatValue(arrRight[j - 1], undefined, undefined, options.undefinedBehavior)\n });\n }\n } else {\n const reversedLeft = [];\n const reversedRight = [];\n prettyAppendLines(reversedLeft, reversedRight, '', '', arrLeft[i - 1], arrRight[j - 1], level + 1, options);\n tLeft = concat(tLeft, reversedLeft.reverse(), true);\n tRight = concat(tRight, reversedRight.reverse(), true);\n }\n i--;\n j--;\n } else {\n const removedLines = stringify(arrLeft[i - 1], undefined, 1, undefined, options.undefinedBehavior).split('\\n');\n for(let i = removedLines.length - 1; i >= 0; i--){\n var _removedLines_i_match, _removedLines_i_match_;\n tLeft.unshift({\n level: level + 1 + (((_removedLines_i_match = removedLines[i].match(/^\\s+/)) == null ? void 0 : (_removedLines_i_match_ = _removedLines_i_match[0]) == null ? void 0 : _removedLines_i_match_.length) || 0),\n type: 'remove',\n text: removedLines[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n tRight.unshift({\n level: level + 1,\n type: 'equal',\n text: ''\n });\n }\n i--;\n }\n } else {\n const addedLines = stringify(arrRight[j - 1], undefined, 1, undefined, options.undefinedBehavior).split('\\n');\n for(let i = addedLines.length - 1; i >= 0; i--){\n var _addedLines_i_match, _addedLines_i_match_;\n tLeft.unshift({\n level: level + 1,\n type: 'equal',\n text: ''\n });\n tRight.unshift({\n level: level + 1 + (((_addedLines_i_match = addedLines[i].match(/^\\s+/)) == null ? void 0 : (_addedLines_i_match_ = _addedLines_i_match[0]) == null ? void 0 : _addedLines_i_match_.length) || 0),\n type: 'add',\n text: addedLines[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n }\n j--;\n }\n }\n return [\n tLeft,\n tRight\n ];\n};\nconst diffArrayLCS = (arrLeft, arrRight, keyLeft, keyRight, level, options, linesLeft = [], linesRight = [])=>{\n if (keyLeft && keyRight) {\n linesLeft.push({\n level,\n type: 'equal',\n text: `\"${keyLeft}\": [`\n });\n linesRight.push({\n level,\n type: 'equal',\n text: `\"${keyRight}\": [`\n });\n } else {\n linesLeft.push({\n level,\n type: 'equal',\n text: '['\n });\n linesRight.push({\n level,\n type: 'equal',\n text: '['\n });\n }\n if (level >= (options.maxDepth || Infinity)) {\n linesLeft.push({\n level: level + 1,\n type: 'equal',\n text: '...'\n });\n linesRight.push({\n level: level + 1,\n type: 'equal',\n text: '...'\n });\n } else {\n const [tLeftReverse, tRightReverse] = lcs(arrLeft, arrRight, keyLeft, keyRight, level, options);\n linesLeft = concat(linesLeft, tLeftReverse);\n linesRight = concat(linesRight, tRightReverse);\n }\n linesLeft.push({\n level,\n type: 'equal',\n text: ']'\n });\n linesRight.push({\n level,\n type: 'equal',\n text: ']'\n });\n return [\n linesLeft,\n linesRight\n ];\n};\n\nconst diffArrayNormal = (arrLeft, arrRight, keyLeft, keyRight, level, options, linesLeft = [], linesRight = [])=>{\n arrLeft = [\n ...arrLeft\n ];\n arrRight = [\n ...arrRight\n ];\n if (keyLeft && keyRight) {\n linesLeft.push({\n level,\n type: 'equal',\n text: `\"${keyLeft}\": [`\n });\n linesRight.push({\n level,\n type: 'equal',\n text: `\"${keyRight}\": [`\n });\n } else {\n linesLeft.push({\n level,\n type: 'equal',\n text: '['\n });\n linesRight.push({\n level,\n type: 'equal',\n text: '['\n });\n }\n if (level >= (options.maxDepth || Infinity)) {\n linesLeft.push({\n level: level + 1,\n type: 'equal',\n text: '...'\n });\n linesRight.push({\n level: level + 1,\n type: 'equal',\n text: '...'\n });\n } else {\n while(arrLeft.length || arrRight.length){\n const itemLeft = arrLeft[0];\n const itemRight = arrRight[0];\n const leftType = getType(itemLeft);\n const rightType = getType(itemRight);\n if (arrLeft.length && arrRight.length) {\n if (leftType !== rightType) {\n prettyAppendLines(linesLeft, linesRight, '', '', itemLeft, itemRight, level + 1, options);\n } else if (options.recursiveEqual && [\n 'object',\n 'array'\n ].includes(leftType) && isEqual(itemLeft, itemRight, options)) {\n prettyAppendLines(linesLeft, linesRight, '', '', itemLeft, itemRight, level + 1, options);\n } else if (leftType === 'object') {\n linesLeft.push({\n level: level + 1,\n type: 'equal',\n text: '{'\n });\n linesRight.push({\n level: level + 1,\n type: 'equal',\n text: '{'\n });\n const [leftLines, rightLines] = diffObject(itemLeft, itemRight, level + 2, options, diffArrayNormal);\n linesLeft = concat(linesLeft, leftLines);\n linesRight = concat(linesRight, rightLines);\n linesLeft.push({\n level: level + 1,\n type: 'equal',\n text: '}'\n });\n linesRight.push({\n level: level + 1,\n type: 'equal',\n text: '}'\n });\n } else if (leftType === 'array') {\n const [resLeft, resRight] = diffArrayNormal(itemLeft, itemRight, '', '', level + 1, options, [], []);\n linesLeft = concat(linesLeft, resLeft);\n linesRight = concat(linesRight, resRight);\n } else if (cmp(itemLeft, itemRight, {\n ignoreCase: options.ignoreCase\n }) === 0) {\n linesLeft.push({\n level: level + 1,\n type: 'equal',\n text: formatValue(itemLeft, undefined, undefined, options.undefinedBehavior)\n });\n linesRight.push({\n level: level + 1,\n type: 'equal',\n text: formatValue(itemRight, undefined, undefined, options.undefinedBehavior)\n });\n } else {\n if (options.showModifications) {\n linesLeft.push({\n level: level + 1,\n type: 'modify',\n text: formatValue(itemLeft, undefined, undefined, options.undefinedBehavior)\n });\n linesRight.push({\n level: level + 1,\n type: 'modify',\n text: formatValue(itemRight, undefined, undefined, options.undefinedBehavior)\n });\n } else {\n linesLeft.push({\n level: level + 1,\n type: 'remove',\n text: formatValue(itemLeft, undefined, undefined, options.undefinedBehavior)\n });\n linesLeft.push({\n level: level + 1,\n type: 'equal',\n text: ''\n });\n linesRight.push({\n level: level + 1,\n type: 'equal',\n text: ''\n });\n linesRight.push({\n level: level + 1,\n type: 'add',\n text: formatValue(itemRight, undefined, undefined, options.undefinedBehavior)\n });\n }\n }\n arrLeft.shift();\n arrRight.shift();\n } else if (arrLeft.length) {\n const removedLines = formatValue(itemLeft, undefined, true, options.undefinedBehavior).split('\\n');\n for(let i = 0; i < removedLines.length; i++){\n var _removedLines_i_match, _removedLines_i_match_;\n linesLeft.push({\n level: level + 1 + (((_removedLines_i_match = removedLines[i].match(/^\\s+/)) == null ? void 0 : (_removedLines_i_match_ = _removedLines_i_match[0]) == null ? void 0 : _removedLines_i_match_.length) || 0),\n type: 'remove',\n text: removedLines[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n linesRight.push({\n level: level + 1,\n type: 'equal',\n text: ''\n });\n }\n arrLeft.shift();\n } else if (arrRight.length) {\n const addedLines = formatValue(itemRight, undefined, true, options.undefinedBehavior).split('\\n');\n for(let i = 0; i < addedLines.length; i++){\n var _addedLines_i_match, _addedLines_i_match_;\n linesLeft.push({\n level: level + 1,\n type: 'equal',\n text: ''\n });\n linesRight.push({\n level: level + 1 + (((_addedLines_i_match = addedLines[i].match(/^\\s+/)) == null ? void 0 : (_addedLines_i_match_ = _addedLines_i_match[0]) == null ? void 0 : _addedLines_i_match_.length) || 0),\n type: 'add',\n text: addedLines[i].replace(/^\\s+/, '').replace(/,$/g, '')\n });\n }\n arrRight.shift();\n }\n }\n }\n linesLeft.push({\n level,\n type: 'equal',\n text: ']'\n });\n linesRight.push({\n level,\n type: 'equal',\n text: ']'\n });\n return [\n linesLeft,\n linesRight\n ];\n};\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends$1.apply(this, arguments);\n}\nconst sortInnerArrays = (source, options)=>{\n if (!source || typeof source !== 'object') {\n return source;\n }\n if (Array.isArray(source)) {\n const result = [\n ...source\n ];\n result.sort((a, b)=>{\n return cmp(a, b, {\n ignoreCase: options == null ? void 0 : options.ignoreCase\n });\n });\n return result.map((item)=>sortInnerArrays(item, options));\n }\n const result = _extends$1({}, source);\n for(const key in result){\n result[key] = sortInnerArrays(result[key], options);\n }\n return result;\n};\n\nfunction _extends() {\n _extends = Object.assign || function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nvar UndefinedBehavior;\n(function(UndefinedBehavior) {\n UndefinedBehavior[\"stringify\"] = \"stringify\";\n UndefinedBehavior[\"ignore\"] = \"ignore\";\n UndefinedBehavior[\"throw\"] = \"throw\";\n})(UndefinedBehavior || (UndefinedBehavior = {}));\nconst EQUAL_EMPTY_LINE = {\n level: 0,\n type: 'equal',\n text: ''\n};\nconst EQUAL_LEFT_BRACKET_LINE = {\n level: 0,\n type: 'equal',\n text: '{'\n};\nconst EQUAL_RIGHT_BRACKET_LINE = {\n level: 0,\n type: 'equal',\n text: '}'\n};\nlet Differ = class Differ {\n detectCircular(source) {\n if (this.options.detectCircular) {\n if (detectCircular(source)) {\n throw new Error(`Circular reference detected in object (with keys ${Object.keys(source).map((t)=>`\"${t}\"`).join(', ')})`);\n }\n }\n }\n sortResultLines(left, right) {\n for(let k = 0; k < left.length; k++){\n let changed = false;\n for(let i = 1; i < left.length; i++){\n if (left[i].type === 'remove' && left[i - 1].type === 'equal' && right[i].type === 'equal' && right[i - 1].type === 'add') {\n const t1 = left[i - 1];\n left[i - 1] = left[i];\n left[i] = t1;\n const t2 = right[i - 1];\n right[i - 1] = right[i];\n right[i] = t2;\n changed = true;\n }\n }\n if (!changed) {\n break;\n }\n }\n }\n calculateLineNumbers(result) {\n let lineNumber = 0;\n for (const item of result){\n if (!item.text) {\n continue;\n }\n item.lineNumber = ++lineNumber;\n }\n }\n calculateCommas(result) {\n const nextLine = Array(result.length).fill(0);\n for(let i = result.length - 1; i > 0; i--){\n if (result[i].text) {\n nextLine[i - 1] = i;\n } else {\n nextLine[i - 1] = nextLine[i];\n }\n }\n for(let i = 0; i < result.length; i++){\n if (!result[i].text.endsWith('{') && !result[i].text.endsWith('[') && result[i].text && nextLine[i] && result[i].level <= result[nextLine[i]].level) {\n result[i].comma = true;\n }\n }\n }\n diff(sourceLeft, sourceRight) {\n this.detectCircular(sourceLeft);\n this.detectCircular(sourceRight);\n if (this.options.arrayDiffMethod === 'unorder-normal' || this.options.arrayDiffMethod === 'unorder-lcs') {\n sourceLeft = sortInnerArrays(sourceLeft, this.options);\n sourceRight = sortInnerArrays(sourceRight, this.options);\n }\n if (this.options.undefinedBehavior === 'ignore') {\n var _cleanFields;\n sourceLeft = (_cleanFields = cleanFields(sourceLeft)) != null ? _cleanFields : null;\n var _cleanFields1;\n sourceRight = (_cleanFields1 = cleanFields(sourceRight)) != null ? _cleanFields1 : null;\n }\n let resultLeft = [];\n let resultRight = [];\n const typeLeft = getType(sourceLeft);\n const typeRight = getType(sourceRight);\n if (typeLeft !== typeRight) {\n resultLeft = stringify(sourceLeft, undefined, 1, this.options.maxDepth, this.options.undefinedBehavior).split('\\n').map((line)=>{\n var _line_match, _line_match_;\n return {\n level: ((_line_match = line.match(/^\\s+/)) == null ? void 0 : (_line_match_ = _line_match[0]) == null ? void 0 : _line_match_.length) || 0,\n type: 'remove',\n text: line.replace(/^\\s+/, '').replace(/,$/g, ''),\n comma: line.endsWith(',')\n };\n });\n resultRight = stringify(sourceRight, undefined, 1, this.options.maxDepth, this.options.undefinedBehavior).split('\\n').map((line)=>{\n var _line_match, _line_match_;\n return {\n level: ((_line_match = line.match(/^\\s+/)) == null ? void 0 : (_line_match_ = _line_match[0]) == null ? void 0 : _line_match_.length) || 0,\n type: 'add',\n text: line.replace(/^\\s+/, '').replace(/,$/g, ''),\n comma: line.endsWith(',')\n };\n });\n const lLength = resultLeft.length;\n const rLength = resultRight.length;\n resultLeft = concat(resultLeft, Array(rLength).fill(0).map(()=>_extends({}, EQUAL_EMPTY_LINE)));\n resultRight = concat(resultRight, Array(lLength).fill(0).map(()=>_extends({}, EQUAL_EMPTY_LINE)), true);\n } else if (typeLeft === 'object') {\n [resultLeft, resultRight] = diffObject(sourceLeft, sourceRight, 1, this.options, this.arrayDiffFunc);\n resultLeft.unshift(_extends({}, EQUAL_LEFT_BRACKET_LINE));\n resultLeft.push(_extends({}, EQUAL_RIGHT_BRACKET_LINE));\n resultRight.unshift(_extends({}, EQUAL_LEFT_BRACKET_LINE));\n resultRight.push(_extends({}, EQUAL_RIGHT_BRACKET_LINE));\n } else if (typeLeft === 'array') {\n [resultLeft, resultRight] = this.arrayDiffFunc(sourceLeft, sourceRight, '', '', 0, this.options);\n } else if (sourceLeft !== sourceRight) {\n if (this.options.ignoreCase) {\n if (typeof sourceLeft === 'string' && typeof sourceRight === 'string' && sourceLeft.toLowerCase() === sourceRight.toLowerCase()) {\n resultLeft = [\n {\n level: 0,\n type: 'equal',\n text: sourceLeft\n }\n ];\n resultRight = [\n {\n level: 0,\n type: 'equal',\n text: sourceRight\n }\n ];\n }\n } else if (this.options.showModifications) {\n resultLeft = [\n {\n level: 0,\n type: 'modify',\n text: stringify(sourceLeft, undefined, undefined, this.options.maxDepth, this.options.undefinedBehavior)\n }\n ];\n resultRight = [\n {\n level: 0,\n type: 'modify',\n text: stringify(sourceRight, undefined, undefined, this.options.maxDepth, this.options.undefinedBehavior)\n }\n ];\n } else {\n resultLeft = [\n {\n level: 0,\n type: 'remove',\n text: stringify(sourceLeft, undefined, undefined, this.options.maxDepth, this.options.undefinedBehavior)\n },\n _extends({}, EQUAL_EMPTY_LINE)\n ];\n resultRight = [\n _extends({}, EQUAL_EMPTY_LINE),\n {\n level: 0,\n type: 'add',\n text: stringify(sourceRight, undefined, undefined, this.options.maxDepth, this.options.undefinedBehavior)\n }\n ];\n }\n } else {\n resultLeft = [\n {\n level: 0,\n type: 'equal',\n text: stringify(sourceLeft, undefined, undefined, this.options.maxDepth, this.options.undefinedBehavior)\n }\n ];\n resultRight = [\n {\n level: 0,\n type: 'equal',\n text: stringify(sourceRight, undefined, undefined, this.options.maxDepth, this.options.undefinedBehavior)\n }\n ];\n }\n this.sortResultLines(resultLeft, resultRight);\n this.calculateLineNumbers(resultLeft);\n this.calculateLineNumbers(resultRight);\n this.calculateCommas(resultLeft);\n this.calculateCommas(resultRight);\n return [\n resultLeft,\n resultRight\n ];\n }\n constructor({ detectCircular =true , maxDepth =Infinity , showModifications =true , arrayDiffMethod ='normal' , ignoreCase =false , ignoreCaseForKey =false , recursiveEqual =false , preserveKeyOrder , undefinedBehavior ='stringify' } = {}){\n this.options = {\n detectCircular,\n maxDepth,\n showModifications,\n arrayDiffMethod,\n ignoreCase,\n ignoreCaseForKey,\n recursiveEqual,\n preserveKeyOrder,\n undefinedBehavior\n };\n this.arrayDiffFunc = arrayDiffMethod === 'lcs' || arrayDiffMethod === 'unorder-lcs' ? diffArrayLCS : diffArrayNormal;\n }\n};\n\nexport { UndefinedBehavior, Differ as default };\n","import * as React from 'react';\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends$1.apply(this, arguments);\n}\nconst isExpandLine = (segment)=>{\n return 'hasLinesBefore' in segment || 'hasLinesAfter' in segment;\n};\nconst getSegmentHeight = (segment, itemHeight, expandLineHeight)=>{\n return isExpandLine(segment) ? expandLineHeight : itemHeight * (segment.end - segment.start + 1);\n};\n/**\n * Merge two segments array into one, divide the segment if necessary.\n */ const mergeSegments = (tokens, diffs)=>{\n const result = [];\n let token;\n let diff;\n if (tokens.length && diffs.length) {\n tokens = [\n ...tokens\n ];\n diffs = [\n ...diffs\n ];\n token = _extends$1({}, tokens.shift());\n diff = _extends$1({}, diffs.shift());\n while(1){\n if (token.start === diff.start) {\n const end = Math.min(token.end, diff.end);\n result.push(_extends$1({}, token, diff, {\n end\n }));\n token.start = diff.start = end;\n } else if (token.start < diff.start) {\n const end = Math.min(token.end, diff.start);\n result.push(_extends$1({}, diff, token, {\n end\n }));\n token.start = end;\n } else {\n const end = Math.min(token.start, diff.end);\n result.push(_extends$1({}, token, diff, {\n end\n }));\n diff.start = end;\n }\n if (!tokens.length || !diffs.length) break;\n if (token.start === token.end) token = _extends$1({}, tokens.shift());\n if (diff.start === diff.end) diff = _extends$1({}, diffs.shift());\n }\n }\n if (!tokens.length) result.push(...diffs.map((d)=>_extends$1({}, d, {\n token: token.token || 'plain'\n })));\n if (!diffs.length) result.push(...tokens);\n return result;\n};\n\nconst calculatePlaceholderHeight = (segments, accTop, startSegment, startLine, endSegment, endLine, itemHeight, expandLineHeight, totalHeight)=>{\n if (!accTop.length) {\n return [\n 0,\n 0\n ];\n }\n let topHeight = 0;\n let bottomHeight = 0;\n const startSegmentItem = segments[startSegment];\n if (isExpandLine(startSegmentItem)) {\n topHeight = accTop[startSegment];\n } else {\n topHeight = accTop[startSegment] + (startLine - startSegmentItem.start) * itemHeight;\n }\n const endSegmentItem = segments[endSegment];\n if (isExpandLine(endSegmentItem)) {\n bottomHeight = totalHeight - accTop[endSegment] - expandLineHeight;\n } else {\n bottomHeight = totalHeight - accTop[endSegment] - (endLine - endSegmentItem.start) * itemHeight;\n }\n return [\n topHeight,\n bottomHeight\n ];\n};\n\nconst findVisibleLines = (segments, accTop, viewportTop, viewportBottom, itemHeight, expandLineHeight)=>{\n if (!accTop.length) {\n return [\n 0,\n 0,\n 0,\n 0\n ];\n }\n let startSegment = 0;\n let endSegment = 0;\n let startLine = 0;\n let endLine = 0;\n let l = 0;\n let r = segments.length - 1;\n // start segment\n while(1){\n let m = Math.floor((l + r) / 2);\n const top = accTop[m];\n const bottom = top + getSegmentHeight(segments[m], itemHeight, expandLineHeight);\n if (bottom <= viewportTop) {\n l = m + 1;\n } else {\n r = m;\n }\n if (l === r) {\n startSegment = l;\n break;\n }\n }\n // start line\n const startSegmentItem = segments[startSegment];\n if (isExpandLine(startSegmentItem)) {\n startLine = startSegmentItem.start;\n } else {\n startLine = startSegmentItem.start + Math.floor((viewportTop - accTop[startSegment]) / itemHeight);\n }\n // end segment\n l = 0;\n r = segments.length - 1;\n while(1){\n let m = Math.floor((l + r + 1) / 2);\n const top = accTop[m];\n if (top >= viewportBottom) {\n r = m - 1;\n } else {\n l = m;\n }\n if (l === r) {\n endSegment = l;\n break;\n }\n }\n // end line\n const endSegmentItem = segments[endSegment];\n if (isExpandLine(endSegmentItem)) {\n endLine = endSegmentItem.end;\n } else {\n endLine = endSegmentItem.start + Math.ceil((viewportBottom - accTop[endSegment]) / itemHeight);\n }\n return [\n startSegment,\n startLine,\n endSegment,\n endLine\n ];\n};\n\nvar bin = {};\n\nObject.defineProperty(bin, \"__esModule\", {\n value: true\n});\nbin.applyPatch = bin.calcPatch = lcs_1 = bin.lcs = bin.diff = bin.diff_core = void 0;\nfunction diff_internal(state, c) {\n const { b , eq , stack_base } = state;\n let { i , N , j , M , Z , stack_top } = state;\n for(;;){\n switch(c){\n case 0:\n {\n Z_block: while(N > 0 && M > 0){\n b.fill(0, 0, 2 * Z);\n const W = N - M;\n const L = N + M;\n const parity = L & 1;\n const offsetx = i + N - 1;\n const offsety = j + M - 1;\n const hmax = (L + parity) / 2;\n let z;\n h_loop: for(let h = 0; h <= hmax; h++){\n const kmin = 2 * Math.max(0, h - M) - h;\n const kmax = h - 2 * Math.max(0, h - N);\n for(let k = kmin; k <= kmax; k += 2){\n const gkm = b[k - 1 - Z * Math.floor((k - 1) / Z)];\n const gkp = b[k + 1 - Z * Math.floor((k + 1) / Z)];\n const u = k === -h || k !== h && gkm < gkp ? gkp : gkm + 1;\n const v = u - k;\n let x = u;\n let y = v;\n while(x < N && y < M && eq(i + x, j + y))x++, y++;\n b[k - Z * Math.floor(k / Z)] = x;\n if (parity === 1 && (z = W - k) >= 1 - h && z < h && x + b[Z + z - Z * Math.floor(z / Z)] >= N) {\n if (h > 1 || x !== u) {\n stack_base[stack_top++] = i + x;\n stack_base[stack_top++] = N - x;\n stack_base[stack_top++] = j + y;\n stack_base[stack_top++] = M - y;\n N = u;\n M = v;\n Z = 2 * (Math.min(N, M) + 1);\n continue Z_block;\n } else break h_loop;\n }\n }\n for(let k = kmin; k <= kmax; k += 2){\n const pkm = b[Z + k - 1 - Z * Math.floor((k - 1) / Z)];\n const pkp = b[Z + k + 1 - Z * Math.floor((k + 1) / Z)];\n const u = k === -h || k !== h && pkm < pkp ? pkp : pkm + 1;\n const v = u - k;\n let x = u;\n let y = v;\n while(x < N && y < M && eq(offsetx - x, offsety - y))x++, y++;\n b[Z + k - Z * Math.floor(k / Z)] = x;\n if (parity === 0 && (z = W - k) >= -h && z <= h && x + b[z - Z * Math.floor(z / Z)] >= N) {\n if (h > 0 || x !== u) {\n stack_base[stack_top++] = i + N - u;\n stack_base[stack_top++] = u;\n stack_base[stack_top++] = j + M - v;\n stack_base[stack_top++] = v;\n N = N - x;\n M = M - y;\n Z = 2 * (Math.min(N, M) + 1);\n continue Z_block;\n } else break h_loop;\n }\n }\n }\n if (N === M) continue;\n if (M > N) {\n i += N;\n j += N;\n M -= N;\n N = 0;\n } else {\n i += M;\n j += M;\n N -= M;\n M = 0;\n }\n break;\n }\n if (N + M !== 0) {\n if (state.pxe === i || state.pye === j) {\n state.pxe = i + N;\n state.pye = j + M;\n } else {\n const sx = state.pxs;\n state.oxs = state.pxs;\n state.oxe = state.pxe;\n state.oys = state.pys;\n state.oye = state.pye;\n state.pxs = i;\n state.pxe = i + N;\n state.pys = j;\n state.pye = j + M;\n if (sx >= 0) {\n state.i = i;\n state.N = N;\n state.j = j;\n state.M = M;\n state.Z = Z;\n state.stack_top = stack_top;\n return 1;\n }\n }\n }\n }\n case 1:\n {\n if (stack_top === 0) return 2;\n M = stack_base[--stack_top];\n j = stack_base[--stack_top];\n N = stack_base[--stack_top];\n i = stack_base[--stack_top];\n Z = 2 * (Math.min(N, M) + 1);\n c = 0;\n }\n }\n }\n}\nlet DiffGen = class DiffGen {\n [Symbol.iterator]() {\n return this;\n }\n next() {\n const { state , result } = this;\n if (this.c > 1) {\n result.done = true;\n result.value = undefined;\n return result;\n }\n const c = diff_internal(state, this.c);\n this.c = c;\n if (c === 1) {\n result.value = [\n state.oxs,\n state.oxe,\n state.oys,\n state.oye\n ];\n return result;\n }\n if (state.pxs >= 0) {\n result.value = [\n state.pxs,\n state.pxe,\n state.pys,\n state.pye\n ];\n return result;\n }\n result.done = true;\n result.value = undefined;\n return result;\n }\n constructor(state){\n this.state = state;\n this.c = 0;\n this.result = {\n value: null,\n done: false\n };\n }\n};\nfunction diff_core(i, N, j, M, eq) {\n const Z = (Math.min(N, M) + 1) * 2;\n const L = N + M;\n const b = new (L < 256 ? Uint8Array : L < 65536 ? Uint16Array : Uint32Array)(2 * Z);\n return new DiffGen({\n i,\n N,\n j,\n M,\n Z,\n b,\n eq,\n pxs: -1,\n pxe: -1,\n pys: -1,\n pye: -1,\n oxs: -1,\n oxe: -1,\n oys: -1,\n oye: -1,\n stack_top: 0,\n stack_base: []\n });\n}\nbin.diff_core = diff_core;\nfunction diff(xs, ys) {\n let [i, N, M] = [\n 0,\n xs.length,\n ys.length\n ];\n while(i < N && i < M && xs[i] === ys[i])i++;\n if (i === N && i === M) return [][Symbol.iterator]();\n while(xs[--N] === ys[--M] && N > i && M > i);\n const eq = (x, y)=>xs[x] === ys[y];\n return diff_core(i, N + 1 - i, i, M + 1 - i, eq);\n}\nbin.diff = diff;\nlet LCSGen = class LCSGen {\n [Symbol.iterator]() {\n return this;\n }\n next() {\n const rec = this.diff.next();\n if (rec.done) {\n const { i , j , N } = this;\n if (i < N) {\n rec.done = false;\n rec.value = [\n i,\n j,\n N - i\n ];\n this.i = N;\n }\n return rec;\n }\n const v = rec.value;\n const sx = v[0];\n const ex = v[1];\n const ey = v[3];\n const { i , j } = this;\n if (i !== sx) {\n v.length--;\n v[0] = i;\n v[1] = j;\n v[2] = sx - i;\n }\n this.i = ex;\n this.j = ey;\n return rec;\n }\n constructor(diff, N){\n this.diff = diff;\n this.N = N;\n this.i = 0;\n this.j = 0;\n }\n};\nfunction lcs(xs, ys) {\n return new LCSGen(diff(xs, ys), xs.length);\n}\nvar lcs_1 = bin.lcs = lcs;\nfunction* calcPatch(xs, ys) {\n const slice = ArrayBuffer.isView(xs) ? Uint8Array.prototype.subarray : xs.slice;\n for (const v of diff(xs, ys)){\n v[2] = slice.call(ys, v[2], v[3]);\n yield v;\n }\n}\nbin.calcPatch = calcPatch;\nfunction* applyPatch(xs, patch) {\n let i = 0;\n const slice = ArrayBuffer.isView(xs) ? Uint8Array.prototype.subarray : xs.slice;\n for (const [dels, dele, ins] of patch){\n if (i < dels) yield slice.call(xs, i, dels);\n if (ins.length > 0) yield ins;\n i = dele;\n }\n if (i < xs.length) yield slice.call(xs, i);\n}\nbin.applyPatch = applyPatch;\n\nconst getOriginalIndices = (arr, separatorLength)=>{\n const result = [];\n let index = 0;\n for (const item of arr){\n result.push(index);\n index += item.length + separatorLength;\n }\n result.push(index - separatorLength);\n return result;\n};\nconst filterEmptyParts = (arr)=>{\n return arr.filter((item)=>item.end > item.start);\n};\nconst getInlineDiff = (l, r, options)=>{\n let resultL = [];\n let resultR = [];\n let lastL = 0;\n let lastR = 0;\n if (options.mode === 'word') {\n const wordSeparator = options.wordSeparator || ' ';\n const lArr = l.split(wordSeparator);\n const rArr = r.split(wordSeparator);\n /**\n * The iter array contains the information about replacement, which is an array of\n * tuple `[startL, startR, length]`.\n *\n * e.g. `[1, 2, 3]` means replace `lArr[1...1+3]` to `rArr[2...2+3]` (include the end).\n */ const iter = [\n ...lcs_1(lArr, rArr)\n ];\n const separatorLength = wordSeparator.length;\n const indicesL = getOriginalIndices(lArr, separatorLength);\n const indicesR = getOriginalIndices(rArr, separatorLength);\n for (const [sl, sr, length] of iter){\n if (sl > lastL) {\n resultL.push({\n type: 'remove',\n start: indicesL[lastL],\n end: indicesL[sl]\n });\n }\n if (sr > lastR) {\n resultR.push({\n type: 'add',\n start: indicesR[lastR],\n end: indicesR[sr]\n });\n }\n lastL = sl + length;\n lastR = sr + length;\n resultL.push({\n start: indicesL[sl],\n end: indicesL[lastL]\n });\n resultR.push({\n start: indicesR[sr],\n end: indicesR[lastR]\n });\n }\n if (l.length > lastL) {\n resultL.push({\n type: 'remove',\n start: indicesL[lastL],\n end: l.length\n });\n }\n if (r.length > lastR) {\n resultR.push({\n type: 'add',\n start: indicesR[lastR],\n end: r.length\n });\n }\n resultL = filterEmptyParts(resultL);\n resultR = filterEmptyParts(resultR);\n return [\n resultL,\n resultR\n ];\n }\n const iter = lcs_1(l, r);\n for (const [sl, sr, length] of iter){\n if (sl > lastL) {\n resultL.push({\n type: 'remove',\n start: lastL,\n end: sl\n });\n }\n if (sr > lastR) {\n resultR.push({\n type: 'add',\n start: lastR,\n end: sr\n });\n }\n lastL = sl + length;\n lastR = sr + length;\n resultL.push({\n start: sl,\n end: lastL\n });\n resultR.push({\n start: sr,\n end: lastR\n });\n }\n if (l.length > lastL) {\n resultL.push({\n type: 'remove',\n start: lastL,\n end: l.length\n });\n }\n if (r.length > lastR) {\n resultR.push({\n type: 'add',\n start: lastR,\n end: r.length\n });\n }\n resultL = filterEmptyParts(resultL);\n resultR = filterEmptyParts(resultR);\n return [\n resultL,\n resultR\n ];\n};\n\nconst syntaxHighlightLine = (enabled, text, offset)=>{\n if (!enabled) {\n return [\n {\n token: 'plain',\n start: offset,\n end: text.length + offset\n }\n ];\n }\n if (text === 'undefined' || text === 'Infinity' || text === '-Infinity' || text === 'NaN' || /^\\d+n$/i.test(text) || text.startsWith('Symbol(') || text.startsWith('function') || text.startsWith('(')) {\n return [\n {\n token: 'invalid',\n start: offset,\n end: text.length + offset\n }\n ];\n }\n if (!Number.isNaN(Number(text))) {\n return [\n {\n token: 'number',\n start: offset,\n end: text.length + offset\n }\n ];\n }\n if (text === 'true' || text === 'false') {\n return [\n {\n token: 'boolean',\n start: offset,\n end: text.length + offset\n }\n ];\n }\n if (text === 'null') {\n return [\n {\n token: 'null',\n start: offset,\n end: text.length + offset\n }\n ];\n }\n if (text.startsWith('\"')) {\n if (text.endsWith(': [') || text.endsWith(': {')) {\n return [\n {\n token: 'key',\n start: offset,\n end: text.length - 3 + offset\n },\n {\n token: 'punctuation',\n start: text.length - 3,\n end: text.length - 2 + offset\n },\n {\n token: 'plain',\n start: text.length - 2,\n end: text.length - 1 + offset\n },\n {\n token: 'punctuation',\n start: text.length - 1,\n end: text.length + offset\n }\n ];\n }\n let pairedQuoteIndex = 1;\n while(pairedQuoteIndex < text.length){\n if (text[pairedQuoteIndex] === '\"') break;\n if (text[pairedQuoteIndex] === '\\\\') ++pairedQuoteIndex;\n ++pairedQuoteIndex;\n }\n if (pairedQuoteIndex === text.length - 1) {\n return [\n {\n token: 'string',\n start: offset,\n end: text.length + offset\n }\n ];\n }\n return [\n {\n token: 'key',\n start: offset,\n end: pairedQuoteIndex + 1 + offset\n },\n {\n token: 'punctuation',\n start: pairedQuoteIndex + 1,\n end: pairedQuoteIndex + 2 + offset\n },\n {\n token: 'plain',\n start: pairedQuoteIndex + 2,\n end: pairedQuoteIndex + 3 + offset\n },\n ...syntaxHighlightLine(enabled, text.substring(pairedQuoteIndex + 3), offset + pairedQuoteIndex + 3)\n ];\n }\n if (text === '{' || text === '}' || text === '[' || text === ']') {\n return [\n {\n token: 'punctuation',\n start: offset,\n end: text.length + offset\n }\n ];\n }\n // should this be expected?\n return [\n {\n token: 'plain',\n start: offset,\n end: text.length + offset\n }\n ];\n};\n\nconst defaultOptions = {\n threshold: 8,\n margin: 3\n};\nconst getSegments = (l, r, options, jsonsAreEqual)=>{\n if (!options || jsonsAreEqual) {\n return [\n {\n start: 0,\n end: l.length,\n isEqual: false\n }\n ];\n }\n const segments = [];\n for(let i = 0; i < l.length; i++){\n if (l[i].type === 'equal' && r[i].type === 'equal') {\n if (segments.length && segments[segments.length - 1].isEqual) {\n segments[segments.length - 1].end++;\n } else {\n segments.push({\n start: i,\n end: i + 1,\n isEqual: true\n });\n }\n } else {\n if (segments.length && !segments[segments.length - 1].isEqual) {\n segments[segments.length - 1].end++;\n } else {\n segments.push({\n start: i,\n end: i + 1,\n isEqual: false\n });\n }\n }\n }\n const _options = options === true ? defaultOptions : options;\n const { threshold , margin } = _options;\n if (threshold < margin * 2 + 1) {\n console.warn(`Threshold (${threshold}) is no more than 2 margins + 1 \"expand\" line (${margin} * 2 + 1), it's not necessary to hide unchanged areas which have less than ${margin * 2 + 1} lines.`);\n }\n const result = [];\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n if (!segment.isEqual || segment.end - segment.start < threshold || segment.end - segment.start <= margin * 2 + 1) {\n result.push(segment);\n continue;\n }\n if (!i) {\n result.push({\n hasLinesBefore: true,\n hasLinesAfter: false,\n start: 0,\n end: segment.end - margin,\n isEqual: true\n });\n result.push({\n start: segment.end - margin,\n end: segment.end,\n isEqual: true\n });\n } else if (i === segments.length - 1) {\n result.push({\n start: segment.start,\n end: segment.start + margin,\n isEqual: true\n });\n result.push({\n hasLinesBefore: false,\n hasLinesAfter: true,\n start: segment.start + margin,\n end: l.length,\n isEqual: true\n });\n } else {\n result.push({\n start: segment.start,\n end: segment.start + margin,\n isEqual: true\n });\n result.push({\n hasLinesBefore: true,\n hasLinesAfter: true,\n start: segment.start + margin,\n end: segment.end - margin,\n isEqual: true\n });\n result.push({\n start: segment.end - margin,\n end: segment.end,\n isEqual: true\n });\n }\n }\n return result;\n};\n\nfunction _extends() {\n _extends = Object.assign || function(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source){\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nconst DEFAULT_INDENT = 2;\nconst DEFAULT_EXPAND_MORE_LINES_LIMIT = 20;\nconst DEFAULT_TEXTS = {\n noChangeDetected: 'No change detected'\n};\nconst Viewer = (props)=>{\n var _props_inlineDiffOptions, _props_inlineDiffOptions1;\n const [linesLeft, linesRight] = props.diff;\n const jsonsAreEqual = React.useMemo(()=>{\n return linesLeft.length === linesRight.length && linesLeft.every((item)=>item.type === 'equal') && linesRight.every((item)=>item.type === 'equal');\n }, [\n linesLeft,\n linesRight\n ]);\n const mergedTexts = _extends({}, DEFAULT_TEXTS, props.texts);\n const lineNumberWidth = props.lineNumbers ? `calc(${String(linesLeft.length).length}ch + 16px)` : 0;\n var _props_indent;\n const indent = (_props_indent = props.indent) != null ? _props_indent : DEFAULT_INDENT;\n const indentChar = indent === 'tab' ? '\\t' : ' ';\n const indentSize = indent === 'tab' ? 1 : indent;\n const inlineDiffOptions = {\n mode: ((_props_inlineDiffOptions = props.inlineDiffOptions) == null ? void 0 : _props_inlineDiffOptions.mode) || 'char',\n wordSeparator: ((_props_inlineDiffOptions1 = props.inlineDiffOptions) == null ? void 0 : _props_inlineDiffOptions1.wordSeparator) || ''\n };\n var _props_hideUnchangedLines;\n const hideUnchangedLines = (_props_hideUnchangedLines = props.hideUnchangedLines) != null ? _props_hideUnchangedLines : false;\n const { scrollContainer: _scrollContainer = 'body' , itemHeight =18 , expandLineHeight =26 } = !props.virtual || props.virtual === true ? {} : props.virtual;\n const scrollContainer = _scrollContainer === 'body' ? document.body : document.querySelector(_scrollContainer);\n // Use these refs to keep the diff data and segments sync,\n // or it may cause runtime error because of their mismatch.\n // Do not use the states to render, use the refs to render and use `updateViewer` to update.\n const linesLeftRef = React.useRef(linesLeft);\n const linesRightRef = React.useRef(linesRight);\n const segmentsRef = React.useRef(getSegments(linesLeft, linesRight, hideUnchangedLines, jsonsAreEqual));\n const accTopRef = React.useRef([]);\n const totalHeightRef = React.useRef(0);\n const tbodyRef = React.useRef(null);\n const [, forceUpdate] = React.useState({});\n const updateViewer = ()=>{\n accTopRef.current = [];\n if (props.virtual) {\n let acc = 0;\n for (const segment of segmentsRef.current){\n if (isExpandLine(segment)) {\n accTopRef.current.push(acc);\n acc += expandLineHeight;\n } else {\n accTopRef.current.push(acc);\n acc += itemHeight * (segment.end - segment.start);\n }\n }\n totalHeightRef.current = segmentsRef.current.reduce((acc, segment)=>{\n if (!isExpandLine(segment)) {\n return acc + (segment.end - segment.start) * itemHeight;\n }\n return acc + expandLineHeight;\n }, 0);\n }\n forceUpdate({});\n };\n React.useEffect(()=>{\n linesLeftRef.current = linesLeft;\n linesRightRef.current = linesRight;\n segmentsRef.current = getSegments(linesLeft, linesRight, hideUnchangedLines, jsonsAreEqual);\n updateViewer();\n }, [\n hideUnchangedLines,\n linesLeft,\n linesRight\n ]);\n React.useEffect(()=>{\n if (!props.virtual || !scrollContainer) {\n return;\n }\n const onScroll = ()=>forceUpdate({});\n scrollContainer.addEventListener('scroll', onScroll);\n return ()=>{\n scrollContainer.removeEventListener('scroll', onScroll);\n };\n }, [\n props.virtual,\n scrollContainer\n ]);\n const onExpandBefore = (segmentIndex)=>(lines)=>{\n const newSegments = [\n ...segmentsRef.current\n ];\n const newSegment = newSegments[segmentIndex];\n newSegments[segmentIndex] = _extends({}, newSegment, {\n end: Math.max(newSegment.end - lines, newSegment.start)\n });\n if (segmentIndex + 1 < segmentsRef.current.length - 1) {\n newSegments[segmentIndex + 1] = _extends({}, newSegments[segmentIndex + 1], {\n start: Math.max(newSegment.end - lines, newSegment.start)\n });\n }\n segmentsRef.current = newSegments;\n updateViewer();\n };\n const onExpandAfter = (segmentIndex)=>(lines)=>{\n const newSegments = [\n ...segmentsRef.current\n ];\n const newSegment = newSegments[segmentIndex];\n newSegments[segmentIndex] = _extends({}, newSegment, {\n start: Math.min(newSegment.start + lines, newSegment.end)\n });\n if (segmentIndex > 1) {\n newSegments[segmentIndex - 1] = _extends({}, newSegments[segmentIndex - 1], {\n end: Math.min(newSegment.start + lines, newSegment.end)\n });\n }\n segmentsRef.current = newSegments;\n updateViewer();\n };\n const onExpandAll = (segmentIndex)=>()=>{\n const newSegments = [\n ...segmentsRef.current\n ];\n const newSegment = newSegments[segmentIndex];\n newSegments[segmentIndex] = _extends({}, newSegment, {\n start: newSegment.start,\n end: newSegment.start\n });\n if (segmentIndex + 1 < segmentsRef.current.length - 1) {\n newSegments[segmentIndex + 1] = _extends({}, newSegments[segmentIndex + 1], {\n start: newSegment.start\n });\n } else {\n newSegments[segmentIndex - 1] = _extends({}, newSegments[segmentIndex - 1], {\n end: newSegment.end\n });\n }\n segmentsRef.current = newSegments;\n updateViewer();\n };\n const renderInlineResult = (text, info = [], comma = false, syntaxHighlightEnabled = false)=>/*#__PURE__*/ React.createElement(React.Fragment, null, info.map((item, index)=>{\n const frag = text.slice(item.start, item.end);\n if (!item.type && !item.token) {\n return frag;\n }\n const className = [\n item.type ? `inline-diff-${item.type}` : '',\n item.token ? `token ${item.token}` : ''\n ].filter(Boolean).join(' ');\n return /*#__PURE__*/ React.createElement(\"span\", {\n key: `${index}-${item.type}-${frag}`,\n className: className\n }, frag);\n }), comma && (syntaxHighlightEnabled ? /*#__PURE__*/ React.createElement(\"span\", {\n className: \"token punctuation\"\n }, \",\") : ','));\n const renderLine = (index, syntaxHighlightEnabled)=>{\n var _props_bgColour, _props_bgColour1;\n const l = linesLeftRef.current[index];\n const r = linesRightRef.current[index];\n const [lDiff, rDiff] = props.highlightInlineDiff && l.type === 'modify' && r.type === 'modify' ? getInlineDiff(l.text, r.text, inlineDiffOptions) : [\n [],\n []\n ];\n const lTokens = syntaxHighlightLine(syntaxHighlightEnabled, l.text, 0);\n const rTokens = syntaxHighlightLine(syntaxHighlightEnabled, r.text, 0);\n const lResult = mergeSegments(lTokens, lDiff);\n const rResult = mergeSegments(rTokens, rDiff);\n var _props_bgColour_l_type;\n const bgLeft = l.type !== 'equal' ? (_props_bgColour_l_type = (_props_bgColour = props.bgColour) == null ? void 0 : _props_bgColour[l.type]) != null ? _props_bgColour_l_type : '' : '';\n var _props_bgColour_r_type;\n const bgRight = r.type !== 'equal' ? (_props_bgColour_r_type = (_props_bgColour1 = props.bgColour) == null ? void 0 : _props_bgColour1[r.type]) != null ? _props_bgColour_r_type : '' : '';\n return(// eslint-disable-next-line react/no-array-index-key\n /*#__PURE__*/ React.createElement(\"tr\", {\n key: index\n }, props.lineNumbers && /*#__PURE__*/ React.createElement(\"td\", {\n className: `line-${l.type} line-number`,\n style: {\n backgroundColor: bgLeft\n }\n }, l.lineNumber), /*#__PURE__*/ React.createElement(\"td\", {\n className: `line-${l.type}`,\n style: {\n backgroundColor: bgLeft\n }\n }, /*#__PURE__*/ React.createElement(\"pre\", null, l.text && indentChar.repeat(l.level * indentSize), renderInlineResult(l.text, lResult, l.comma, syntaxHighlightEnabled))), props.lineNumbers && /*#__PURE__*/ React.createElement(\"td\", {\n className: `line-${r.type} line-number`,\n style: {\n backgroundColor: bgRight\n }\n }, r.lineNumber), /*#__PURE__*/ React.createElement(\"td\", {\n className: `line-${r.type}`,\n style: {\n backgroundColor: bgRight\n }\n }, /*#__PURE__*/ React.createElement(\"pre\", null, r.text && indentChar.repeat(r.level * indentSize), renderInlineResult(r.text, rResult, r.comma, syntaxHighlightEnabled)))));\n };\n const renderExpandLine = (hasLinesBefore, hasLinesAfter, expandMoreLinesLimit, index)=>{\n return /*#__PURE__*/ React.createElement(React.Fragment, null, hasLinesBefore && /*#__PURE__*/ React.createElement(\"button\", {\n onClick: ()=>onExpandBefore(index)(expandMoreLinesLimit)\n }, \"⭡ Show \", expandMoreLinesLimit, \" lines before\"), /*#__PURE__*/ React.createElement(\"button\", {\n onClick: ()=>onExpandAll(index)()\n }, \"⭥ Show all unchanged lines\"), hasLinesAfter && /*#__PURE__*/ React.createElement(\"button\", {\n onClick: ()=>onExpandAfter(index)(expandMoreLinesLimit)\n }, \"⭣ Show \", expandMoreLinesLimit, \" lines after\"));\n };\n const renderSegment = (segment, index, renderStart, renderEnd, syntaxHighlightEnabled)=>{\n let { start , end } = segment;\n start = Math.max(start, renderStart);\n end = Math.min(end, renderEnd);\n if (start === end) {\n return null;\n }\n if (!isExpandLine(segment)) {\n return Array(end - start).fill(0).map((_, index)=>renderLine(start + index, syntaxHighlightEnabled));\n }\n const { hasLinesBefore , hasLinesAfter } = segment;\n const expandMoreLinesLimit = typeof hideUnchangedLines === 'boolean' ? DEFAULT_EXPAND_MORE_LINES_LIMIT : hideUnchangedLines.expandMoreLinesLimit || DEFAULT_EXPAND_MORE_LINES_LIMIT;\n return [\n /*#__PURE__*/ React.createElement(\"tr\", {\n key: `expand-line-${index}`,\n className: \"expand-line\"\n }, /*#__PURE__*/ React.createElement(\"td\", {\n colSpan: 4,\n className: `${hasLinesBefore ? 'has-lines-before' : ''} ${hasLinesAfter ? 'has-lines-after' : ''}`\n }, typeof hideUnchangedLines !== 'boolean' && hideUnchangedLines.expandLineRenderer ? hideUnchangedLines.expandLineRenderer({\n hasLinesBefore,\n hasLinesAfter,\n onExpandBefore: onExpandBefore(index),\n onExpandAfter: onExpandAfter(index),\n onExpandAll: onExpandAll(index)\n }) : renderExpandLine(hasLinesBefore, hasLinesAfter, expandMoreLinesLimit, index)))\n ];\n };\n const renderTbody = (syntaxHighlightEnabled)=>{\n if (jsonsAreEqual && hideUnchangedLines) {\n return /*#__PURE__*/ React.createElement(\"tr\", {\n key: \"message-line\",\n className: \"message-line\"\n }, /*#__PURE__*/ React.createElement(\"td\", {\n colSpan: 4\n }, mergedTexts.noChangeDetected));\n }\n if (!props.virtual) {\n return segmentsRef.current.map((item, index)=>renderSegment(item, index, 0, linesLeftRef.current.length, syntaxHighlightEnabled));\n }\n var _scrollContainer_clientHeight;\n const containerHeight = (_scrollContainer_clientHeight = scrollContainer == null ? void 0 : scrollContainer.clientHeight) != null ? _scrollContainer_clientHeight : 0;\n var _scrollContainer_scrollTop;\n const scrollTop = (_scrollContainer_scrollTop = scrollContainer == null ? void 0 : scrollContainer.scrollTop) != null ? _scrollContainer_scrollTop : 0;\n const scrollBottom = scrollTop + containerHeight;\n let t = tbodyRef.current;\n var _t_offsetTop;\n let firstElementTop = (_t_offsetTop = t == null ? void 0 : t.offsetTop) != null ? _t_offsetTop : 0;\n while((t == null ? void 0 : t.offsetParent) && (t == null ? void 0 : t.offsetParent) !== scrollContainer){\n t = t.offsetParent;\n firstElementTop += t.offsetTop;\n }\n if (firstElementTop > scrollBottom || firstElementTop + totalHeightRef.current < scrollTop) {\n return /*#__PURE__*/ React.createElement(\"tr\", null, /*#__PURE__*/ React.createElement(\"td\", {\n colSpan: 4,\n style: {\n height: `${totalHeightRef.current}px`\n }\n }));\n }\n const viewportTop = scrollTop - firstElementTop;\n const viewportBottom = scrollBottom - firstElementTop;\n const [startSegment, startLine, endSegment, endLine] = findVisibleLines(segmentsRef.current, accTopRef.current, viewportTop, viewportBottom, itemHeight, expandLineHeight);\n const [topHeight, bottomHeight] = calculatePlaceholderHeight(segmentsRef.current, accTopRef.current, startSegment, startLine, endSegment, endLine, itemHeight, expandLineHeight, totalHeightRef.current);\n const visibleSegments = segmentsRef.current.slice(startSegment, endSegment + 1);\n return visibleSegments.length ? /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(\"tr\", null, /*#__PURE__*/ React.createElement(\"td\", {\n colSpan: 4,\n style: {\n height: topHeight,\n padding: 0\n }\n })), visibleSegments.map((segment, index)=>renderSegment(segment, index, startLine, endLine, syntaxHighlightEnabled)), /*#__PURE__*/ React.createElement(\"tr\", null, /*#__PURE__*/ React.createElement(\"td\", {\n colSpan: 4,\n style: {\n height: bottomHeight,\n padding: 0\n }\n }))) : /*#__PURE__*/ React.createElement(\"tr\", null, /*#__PURE__*/ React.createElement(\"td\", {\n colSpan: 4,\n style: {\n height: `${totalHeightRef.current}px`\n }\n }));\n };\n const renderMeasureLine = ()=>/*#__PURE__*/ React.createElement(\"colgroup\", {\n className: \"measure-line\"\n }, props.lineNumbers && /*#__PURE__*/ React.createElement(\"col\", {\n style: {\n width: lineNumberWidth\n }\n }), /*#__PURE__*/ React.createElement(\"col\", null), props.lineNumbers && /*#__PURE__*/ React.createElement(\"col\", {\n style: {\n width: lineNumberWidth\n }\n }), /*#__PURE__*/ React.createElement(\"col\", null));\n const classes = [\n 'json-diff-viewer',\n props.virtual && 'json-diff-viewer-virtual',\n props.syntaxHighlight && `json-diff-viewer-theme-${props.syntaxHighlight.theme || 'monokai'}`,\n props.className\n ].filter(Boolean).join(' ');\n const syntaxHighlightEnabled = !!props.syntaxHighlight;\n return /*#__PURE__*/ React.createElement(\"table\", {\n className: classes,\n style: props.style\n }, renderMeasureLine(), /*#__PURE__*/ React.createElement(\"tbody\", {\n ref: tbodyRef\n }, renderTbody(syntaxHighlightEnabled)));\n};\nViewer.displayName = 'Viewer';\n\nexport { Viewer as default };\n","var HumanizeDurationLanguage = /** @class */ (function () {\r\n function HumanizeDurationLanguage() {\r\n var _this = this;\r\n this.languages = {\r\n ar: {\r\n y: function (c) {\r\n return c === 1 ? \"سنة\" : \"سنوات\";\r\n },\r\n mo: function (c) {\r\n return c === 1 ? \"شهر\" : \"أشهر\";\r\n },\r\n w: function (c) {\r\n return c === 1 ? \"أسبوع\" : \"أسابيع\";\r\n },\r\n d: function (c) {\r\n return c === 1 ? \"يوم\" : \"أيام\";\r\n },\r\n h: function (c) {\r\n return c === 1 ? \"ساعة\" : \"ساعات\";\r\n },\r\n m: function (c) {\r\n return [\"دقيقة\", \"دقائق\"][_this.getArabicForm(c)];\r\n },\r\n s: function (c) {\r\n return c === 1 ? \"ثانية\" : \"ثواني\";\r\n },\r\n ms: function (c) {\r\n return c === 1 ? \"جزء من الثانية\" : \"أجزاء من الثانية\";\r\n },\r\n decimal: \",\"\r\n },\r\n bg: {\r\n y: function (c) {\r\n return [\"години\", \"година\", \"години\"][_this.getSlavicForm(c)];\r\n },\r\n mo: function (c) {\r\n return [\"месеца\", \"месец\", \"месеца\"][_this.getSlavicForm(c)];\r\n },\r\n w: function (c) {\r\n return [\"седмици\", \"седмица\", \"седмици\"][_this.getSlavicForm(c)];\r\n },\r\n d: function (c) {\r\n return [\"дни\", \"ден\", \"дни\"][_this.getSlavicForm(c)];\r\n },\r\n h: function (c) {\r\n return [\"часа\", \"час\", \"часа\"][_this.getSlavicForm(c)];\r\n },\r\n m: function (c) {\r\n return [\"минути\", \"минута\", \"минути\"][_this.getSlavicForm(c)];\r\n },\r\n s: function (c) {\r\n return [\"секунди\", \"секунда\", \"секунди\"][_this.getSlavicForm(c)];\r\n },\r\n ms: function (c) {\r\n return [\"милисекунди\", \"милисекунда\", \"милисекунди\"][_this.getSlavicForm(c)];\r\n },\r\n decimal: \",\"\r\n },\r\n ca: {\r\n y: function (c) {\r\n return \"any\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n mo: function (c) {\r\n return \"mes\" + (c === 1 ? \"\" : \"os\");\r\n },\r\n w: function (c) {\r\n return \"setman\" + (c === 1 ? \"a\" : \"es\");\r\n },\r\n d: function (c) {\r\n return \"di\" + (c === 1 ? \"a\" : \"es\");\r\n },\r\n h: function (c) {\r\n return \"hor\" + (c === 1 ? \"a\" : \"es\");\r\n },\r\n m: function (c) {\r\n return \"minut\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n s: function (c) {\r\n return \"segon\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n ms: function (c) {\r\n return \"milisegon\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n decimal: \",\"\r\n },\r\n cs: {\r\n y: function (c) {\r\n return [\"rok\", \"roku\", \"roky\", \"let\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n mo: function (c) {\r\n return [\"měsíc\", \"měsíce\", \"měsíce\", \"měsíců\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n w: function (c) {\r\n return [\"týden\", \"týdne\", \"týdny\", \"týdnů\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n d: function (c) {\r\n return [\"den\", \"dne\", \"dny\", \"dní\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n h: function (c) {\r\n return [\"hodina\", \"hodiny\", \"hodiny\", \"hodin\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n m: function (c) {\r\n return [\"minuta\", \"minuty\", \"minuty\", \"minut\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n s: function (c) {\r\n return [\"sekunda\", \"sekundy\", \"sekundy\", \"sekund\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n ms: function (c) {\r\n return [\"milisekunda\", \"milisekundy\", \"milisekundy\", \"milisekund\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n decimal: \",\"\r\n },\r\n da: {\r\n y: function () {\r\n return \"år\";\r\n },\r\n mo: function (c) {\r\n return \"måned\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n w: function (c) {\r\n return \"uge\" + (c === 1 ? \"\" : \"r\");\r\n },\r\n d: function (c) {\r\n return \"dag\" + (c === 1 ? \"\" : \"e\");\r\n },\r\n h: function (c) {\r\n return \"time\" + (c === 1 ? \"\" : \"r\");\r\n },\r\n m: function (c) {\r\n return \"minut\" + (c === 1 ? \"\" : \"ter\");\r\n },\r\n s: function (c) {\r\n return \"sekund\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n ms: function (c) {\r\n return \"millisekund\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n decimal: \",\"\r\n },\r\n de: {\r\n y: function (c) {\r\n return \"Jahr\" + (c === 1 ? \"\" : \"e\");\r\n },\r\n mo: function (c) {\r\n return \"Monat\" + (c === 1 ? \"\" : \"e\");\r\n },\r\n w: function (c) {\r\n return \"Woche\" + (c === 1 ? \"\" : \"n\");\r\n },\r\n d: function (c) {\r\n return \"Tag\" + (c === 1 ? \"\" : \"e\");\r\n },\r\n h: function (c) {\r\n return \"Stunde\" + (c === 1 ? \"\" : \"n\");\r\n },\r\n m: function (c) {\r\n return \"Minute\" + (c === 1 ? \"\" : \"n\");\r\n },\r\n s: function (c) {\r\n return \"Sekunde\" + (c === 1 ? \"\" : \"n\");\r\n },\r\n ms: function (c) {\r\n return \"Millisekunde\" + (c === 1 ? \"\" : \"n\");\r\n },\r\n decimal: \",\"\r\n },\r\n el: {\r\n y: function (c) {\r\n return c === 1 ? \"χρόνος\" : \"χρόνια\";\r\n },\r\n mo: function (c) {\r\n return c === 1 ? \"μήνας\" : \"μήνες\";\r\n },\r\n w: function (c) {\r\n return c === 1 ? \"εβδομάδα\" : \"εβδομάδες\";\r\n },\r\n d: function (c) {\r\n return c === 1 ? \"μέρα\" : \"μέρες\";\r\n },\r\n h: function (c) {\r\n return c === 1 ? \"ώρα\" : \"ώρες\";\r\n },\r\n m: function (c) {\r\n return c === 1 ? \"λεπτό\" : \"λεπτά\";\r\n },\r\n s: function (c) {\r\n return c === 1 ? \"δευτερόλεπτο\" : \"δευτερόλεπτα\";\r\n },\r\n ms: function (c) {\r\n return c === 1\r\n ? \"χιλιοστό του δευτερολέπτου\"\r\n : \"χιλιοστά του δευτερολέπτου\";\r\n },\r\n decimal: \",\"\r\n },\r\n en: {\r\n y: function (c) {\r\n return \"year\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n mo: function (c) {\r\n return \"month\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n w: function (c) {\r\n return \"week\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n d: function (c) {\r\n return \"day\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n h: function (c) {\r\n return \"hour\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n m: function (c) {\r\n return \"minute\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n s: function (c) {\r\n return \"second\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n ms: function (c) {\r\n return \"millisecond\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n decimal: \".\"\r\n },\r\n es: {\r\n y: function (c) {\r\n return \"año\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n mo: function (c) {\r\n return \"mes\" + (c === 1 ? \"\" : \"es\");\r\n },\r\n w: function (c) {\r\n return \"semana\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n d: function (c) {\r\n return \"día\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n h: function (c) {\r\n return \"hora\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n m: function (c) {\r\n return \"minuto\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n s: function (c) {\r\n return \"segundo\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n ms: function (c) {\r\n return \"milisegundo\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n decimal: \",\"\r\n },\r\n et: {\r\n y: function (c) {\r\n return \"aasta\" + (c === 1 ? \"\" : \"t\");\r\n },\r\n mo: function (c) {\r\n return \"kuu\" + (c === 1 ? \"\" : \"d\");\r\n },\r\n w: function (c) {\r\n return \"nädal\" + (c === 1 ? \"\" : \"at\");\r\n },\r\n d: function (c) {\r\n return \"päev\" + (c === 1 ? \"\" : \"a\");\r\n },\r\n h: function (c) {\r\n return \"tund\" + (c === 1 ? \"\" : \"i\");\r\n },\r\n m: function (c) {\r\n return \"minut\" + (c === 1 ? \"\" : \"it\");\r\n },\r\n s: function (c) {\r\n return \"sekund\" + (c === 1 ? \"\" : \"it\");\r\n },\r\n ms: function (c) {\r\n return \"millisekund\" + (c === 1 ? \"\" : \"it\");\r\n },\r\n decimal: \",\"\r\n },\r\n fa: {\r\n y: function () {\r\n return \"سال\";\r\n },\r\n mo: function () {\r\n return \"ماه\";\r\n },\r\n w: function () {\r\n return \"هفته\";\r\n },\r\n d: function () {\r\n return \"روز\";\r\n },\r\n h: function () {\r\n return \"ساعت\";\r\n },\r\n m: function () {\r\n return \"دقیقه\";\r\n },\r\n s: function () {\r\n return \"ثانیه\";\r\n },\r\n ms: function () {\r\n return \"میلی ثانیه\";\r\n },\r\n decimal: \".\"\r\n },\r\n fi: {\r\n y: function (c) {\r\n return c === 1 ? \"vuosi\" : \"vuotta\";\r\n },\r\n mo: function (c) {\r\n return c === 1 ? \"kuukausi\" : \"kuukautta\";\r\n },\r\n w: function (c) {\r\n return \"viikko\" + (c === 1 ? \"\" : \"a\");\r\n },\r\n d: function (c) {\r\n return \"päivä\" + (c === 1 ? \"\" : \"ä\");\r\n },\r\n h: function (c) {\r\n return \"tunti\" + (c === 1 ? \"\" : \"a\");\r\n },\r\n m: function (c) {\r\n return \"minuutti\" + (c === 1 ? \"\" : \"a\");\r\n },\r\n s: function (c) {\r\n return \"sekunti\" + (c === 1 ? \"\" : \"a\");\r\n },\r\n ms: function (c) {\r\n return \"millisekunti\" + (c === 1 ? \"\" : \"a\");\r\n },\r\n decimal: \",\"\r\n },\r\n fo: {\r\n y: function () {\r\n return \"ár\";\r\n },\r\n mo: function (c) {\r\n return c === 1 ? \"mánaður\" : \"mánaðir\";\r\n },\r\n w: function (c) {\r\n return c === 1 ? \"vika\" : \"vikur\";\r\n },\r\n d: function (c) {\r\n return c === 1 ? \"dagur\" : \"dagar\";\r\n },\r\n h: function (c) {\r\n return c === 1 ? \"tími\" : \"tímar\";\r\n },\r\n m: function (c) {\r\n return c === 1 ? \"minuttur\" : \"minuttir\";\r\n },\r\n s: function () {\r\n return \"sekund\";\r\n },\r\n ms: function () {\r\n return \"millisekund\";\r\n },\r\n decimal: \",\"\r\n },\r\n fr: {\r\n y: function (c) {\r\n return \"an\" + (c >= 2 ? \"s\" : \"\");\r\n },\r\n mo: function () {\r\n return \"mois\";\r\n },\r\n w: function (c) {\r\n return \"semaine\" + (c >= 2 ? \"s\" : \"\");\r\n },\r\n d: function (c) {\r\n return \"jour\" + (c >= 2 ? \"s\" : \"\");\r\n },\r\n h: function (c) {\r\n return \"heure\" + (c >= 2 ? \"s\" : \"\");\r\n },\r\n m: function (c) {\r\n return \"minute\" + (c >= 2 ? \"s\" : \"\");\r\n },\r\n s: function (c) {\r\n return \"seconde\" + (c >= 2 ? \"s\" : \"\");\r\n },\r\n ms: function (c) {\r\n return \"milliseconde\" + (c >= 2 ? \"s\" : \"\");\r\n },\r\n decimal: \",\"\r\n },\r\n hr: {\r\n y: function (c) {\r\n if (c % 10 === 2 || c % 10 === 3 || c % 10 === 4) {\r\n return \"godine\";\r\n }\r\n return \"godina\";\r\n },\r\n mo: function (c) {\r\n if (c === 1) {\r\n return \"mjesec\";\r\n }\r\n else if (c === 2 || c === 3 || c === 4) {\r\n return \"mjeseca\";\r\n }\r\n return \"mjeseci\";\r\n },\r\n w: function (c) {\r\n if (c % 10 === 1 && c !== 11) {\r\n return \"tjedan\";\r\n }\r\n return \"tjedna\";\r\n },\r\n d: function (c) {\r\n return c === 1 ? \"dan\" : \"dana\";\r\n },\r\n h: function (c) {\r\n if (c === 1) {\r\n return \"sat\";\r\n }\r\n else if (c === 2 || c === 3 || c === 4) {\r\n return \"sata\";\r\n }\r\n return \"sati\";\r\n },\r\n m: function (c) {\r\n var mod10 = c % 10;\r\n if ((mod10 === 2 || mod10 === 3 || mod10 === 4) && (c < 10 || c > 14)) {\r\n return \"minute\";\r\n }\r\n return \"minuta\";\r\n },\r\n s: function (c) {\r\n if (c === 10 ||\r\n c === 11 ||\r\n c === 12 ||\r\n c === 13 ||\r\n c === 14 ||\r\n c === 16 ||\r\n c === 17 ||\r\n c === 18 ||\r\n c === 19 ||\r\n c % 10 === 5) {\r\n return \"sekundi\";\r\n }\r\n else if (c % 10 === 1) {\r\n return \"sekunda\";\r\n }\r\n else if (c % 10 === 2 || c % 10 === 3 || c % 10 === 4) {\r\n return \"sekunde\";\r\n }\r\n return \"sekundi\";\r\n },\r\n ms: function (c) {\r\n if (c === 1) {\r\n return \"milisekunda\";\r\n }\r\n else if (c % 10 === 2 || c % 10 === 3 || c % 10 === 4) {\r\n return \"milisekunde\";\r\n }\r\n return \"milisekundi\";\r\n },\r\n decimal: \",\"\r\n },\r\n hu: {\r\n y: function () {\r\n return \"év\";\r\n },\r\n mo: function () {\r\n return \"hónap\";\r\n },\r\n w: function () {\r\n return \"hét\";\r\n },\r\n d: function () {\r\n return \"nap\";\r\n },\r\n h: function () {\r\n return \"óra\";\r\n },\r\n m: function () {\r\n return \"perc\";\r\n },\r\n s: function () {\r\n return \"másodperc\";\r\n },\r\n ms: function () {\r\n return \"ezredmásodperc\";\r\n },\r\n decimal: \",\"\r\n },\r\n id: {\r\n y: function () {\r\n return \"tahun\";\r\n },\r\n mo: function () {\r\n return \"bulan\";\r\n },\r\n w: function () {\r\n return \"minggu\";\r\n },\r\n d: function () {\r\n return \"hari\";\r\n },\r\n h: function () {\r\n return \"jam\";\r\n },\r\n m: function () {\r\n return \"menit\";\r\n },\r\n s: function () {\r\n return \"detik\";\r\n },\r\n ms: function () {\r\n return \"milidetik\";\r\n },\r\n decimal: \".\"\r\n },\r\n is: {\r\n y: function () {\r\n return \"ár\";\r\n },\r\n mo: function (c) {\r\n return \"mánuð\" + (c === 1 ? \"ur\" : \"ir\");\r\n },\r\n w: function (c) {\r\n return \"vik\" + (c === 1 ? \"a\" : \"ur\");\r\n },\r\n d: function (c) {\r\n return \"dag\" + (c === 1 ? \"ur\" : \"ar\");\r\n },\r\n h: function (c) {\r\n return \"klukkutím\" + (c === 1 ? \"i\" : \"ar\");\r\n },\r\n m: function (c) {\r\n return \"mínút\" + (c === 1 ? \"a\" : \"ur\");\r\n },\r\n s: function (c) {\r\n return \"sekúnd\" + (c === 1 ? \"a\" : \"ur\");\r\n },\r\n ms: function (c) {\r\n return \"millisekúnd\" + (c === 1 ? \"a\" : \"ur\");\r\n },\r\n decimal: \".\"\r\n },\r\n it: {\r\n y: function (c) {\r\n return \"ann\" + (c === 1 ? \"o\" : \"i\");\r\n },\r\n mo: function (c) {\r\n return \"mes\" + (c === 1 ? \"e\" : \"i\");\r\n },\r\n w: function (c) {\r\n return \"settiman\" + (c === 1 ? \"a\" : \"e\");\r\n },\r\n d: function (c) {\r\n return \"giorn\" + (c === 1 ? \"o\" : \"i\");\r\n },\r\n h: function (c) {\r\n return \"or\" + (c === 1 ? \"a\" : \"e\");\r\n },\r\n m: function (c) {\r\n return \"minut\" + (c === 1 ? \"o\" : \"i\");\r\n },\r\n s: function (c) {\r\n return \"second\" + (c === 1 ? \"o\" : \"i\");\r\n },\r\n ms: function (c) {\r\n return \"millisecond\" + (c === 1 ? \"o\" : \"i\");\r\n },\r\n decimal: \",\"\r\n },\r\n ja: {\r\n y: function () {\r\n return \"年\";\r\n },\r\n mo: function () {\r\n return \"月\";\r\n },\r\n w: function () {\r\n return \"週\";\r\n },\r\n d: function () {\r\n return \"日\";\r\n },\r\n h: function () {\r\n return \"時間\";\r\n },\r\n m: function () {\r\n return \"分\";\r\n },\r\n s: function () {\r\n return \"秒\";\r\n },\r\n ms: function () {\r\n return \"ミリ秒\";\r\n },\r\n decimal: \".\"\r\n },\r\n ko: {\r\n y: function () {\r\n return \"년\";\r\n },\r\n mo: function () {\r\n return \"개월\";\r\n },\r\n w: function () {\r\n return \"주일\";\r\n },\r\n d: function () {\r\n return \"일\";\r\n },\r\n h: function () {\r\n return \"시간\";\r\n },\r\n m: function () {\r\n return \"분\";\r\n },\r\n s: function () {\r\n return \"초\";\r\n },\r\n ms: function () {\r\n return \"밀리 초\";\r\n },\r\n decimal: \".\"\r\n },\r\n lo: {\r\n y: function () {\r\n return \"ປີ\";\r\n },\r\n mo: function () {\r\n return \"ເດືອນ\";\r\n },\r\n w: function () {\r\n return \"ອາທິດ\";\r\n },\r\n d: function () {\r\n return \"ມື້\";\r\n },\r\n h: function () {\r\n return \"ຊົ່ວໂມງ\";\r\n },\r\n m: function () {\r\n return \"ນາທີ\";\r\n },\r\n s: function () {\r\n return \"ວິນາທີ\";\r\n },\r\n ms: function () {\r\n return \"ມິນລິວິນາທີ\";\r\n },\r\n decimal: \",\"\r\n },\r\n lt: {\r\n y: function (c) {\r\n return c % 10 === 0 || (c % 100 >= 10 && c % 100 <= 20)\r\n ? \"metų\"\r\n : \"metai\";\r\n },\r\n mo: function (c) {\r\n return [\"mėnuo\", \"mėnesiai\", \"mėnesių\"][_this.getLithuanianForm(c)];\r\n },\r\n w: function (c) {\r\n return [\"savaitė\", \"savaitės\", \"savaičių\"][_this.getLithuanianForm(c)];\r\n },\r\n d: function (c) {\r\n return [\"diena\", \"dienos\", \"dienų\"][_this.getLithuanianForm(c)];\r\n },\r\n h: function (c) {\r\n return [\"valanda\", \"valandos\", \"valandų\"][_this.getLithuanianForm(c)];\r\n },\r\n m: function (c) {\r\n return [\"minutė\", \"minutės\", \"minučių\"][_this.getLithuanianForm(c)];\r\n },\r\n s: function (c) {\r\n return [\"sekundė\", \"sekundės\", \"sekundžių\"][_this.getLithuanianForm(c)];\r\n },\r\n ms: function (c) {\r\n return [\"milisekundė\", \"milisekundės\", \"milisekundžių\"][_this.getLithuanianForm(c)];\r\n },\r\n decimal: \",\"\r\n },\r\n lv: {\r\n y: function (c) {\r\n return [\"gads\", \"gadi\"][_this.getLatvianForm(c)];\r\n },\r\n mo: function (c) {\r\n return [\"mēnesis\", \"mēneši\"][_this.getLatvianForm(c)];\r\n },\r\n w: function (c) {\r\n return [\"nedēļa\", \"nedēļas\"][_this.getLatvianForm(c)];\r\n },\r\n d: function (c) {\r\n return [\"diena\", \"dienas\"][_this.getLatvianForm(c)];\r\n },\r\n h: function (c) {\r\n return [\"stunda\", \"stundas\"][_this.getLatvianForm(c)];\r\n },\r\n m: function (c) {\r\n return [\"minūte\", \"minūtes\"][_this.getLatvianForm(c)];\r\n },\r\n s: function (c) {\r\n return [\"sekunde\", \"sekundes\"][_this.getLatvianForm(c)];\r\n },\r\n ms: function (c) {\r\n return [\"milisekunde\", \"milisekundes\"][_this.getLatvianForm(c)];\r\n },\r\n decimal: \",\"\r\n },\r\n ms: {\r\n y: function () {\r\n return \"tahun\";\r\n },\r\n mo: function () {\r\n return \"bulan\";\r\n },\r\n w: function () {\r\n return \"minggu\";\r\n },\r\n d: function () {\r\n return \"hari\";\r\n },\r\n h: function () {\r\n return \"jam\";\r\n },\r\n m: function () {\r\n return \"minit\";\r\n },\r\n s: function () {\r\n return \"saat\";\r\n },\r\n ms: function () {\r\n return \"milisaat\";\r\n },\r\n decimal: \".\"\r\n },\r\n nl: {\r\n y: function () {\r\n return \"jaar\";\r\n },\r\n mo: function (c) {\r\n return c === 1 ? \"maand\" : \"maanden\";\r\n },\r\n w: function (c) {\r\n return c === 1 ? \"week\" : \"weken\";\r\n },\r\n d: function (c) {\r\n return c === 1 ? \"dag\" : \"dagen\";\r\n },\r\n h: function () {\r\n return \"uur\";\r\n },\r\n m: function (c) {\r\n return c === 1 ? \"minuut\" : \"minuten\";\r\n },\r\n s: function (c) {\r\n return c === 1 ? \"seconde\" : \"seconden\";\r\n },\r\n ms: function (c) {\r\n return c === 1 ? \"milliseconde\" : \"milliseconden\";\r\n },\r\n decimal: \",\"\r\n },\r\n no: {\r\n y: function () {\r\n return \"år\";\r\n },\r\n mo: function (c) {\r\n return \"måned\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n w: function (c) {\r\n return \"uke\" + (c === 1 ? \"\" : \"r\");\r\n },\r\n d: function (c) {\r\n return \"dag\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n h: function (c) {\r\n return \"time\" + (c === 1 ? \"\" : \"r\");\r\n },\r\n m: function (c) {\r\n return \"minutt\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n s: function (c) {\r\n return \"sekund\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n ms: function (c) {\r\n return \"millisekund\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n decimal: \",\"\r\n },\r\n pl: {\r\n y: function (c) {\r\n return [\"rok\", \"roku\", \"lata\", \"lat\"][_this.getPolishForm(c)];\r\n },\r\n mo: function (c) {\r\n return [\"miesiąc\", \"miesiąca\", \"miesiące\", \"miesięcy\"][_this.getPolishForm(c)];\r\n },\r\n w: function (c) {\r\n return [\"tydzień\", \"tygodnia\", \"tygodnie\", \"tygodni\"][_this.getPolishForm(c)];\r\n },\r\n d: function (c) {\r\n return [\"dzień\", \"dnia\", \"dni\", \"dni\"][_this.getPolishForm(c)];\r\n },\r\n h: function (c) {\r\n return [\"godzina\", \"godziny\", \"godziny\", \"godzin\"][_this.getPolishForm(c)];\r\n },\r\n m: function (c) {\r\n return [\"minuta\", \"minuty\", \"minuty\", \"minut\"][_this.getPolishForm(c)];\r\n },\r\n s: function (c) {\r\n return [\"sekunda\", \"sekundy\", \"sekundy\", \"sekund\"][_this.getPolishForm(c)];\r\n },\r\n ms: function (c) {\r\n return [\"milisekunda\", \"milisekundy\", \"milisekundy\", \"milisekund\"][_this.getPolishForm(c)];\r\n },\r\n decimal: \",\"\r\n },\r\n pt: {\r\n y: function (c) {\r\n return \"ano\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n mo: function (c) {\r\n return c === 1 ? \"mês\" : \"meses\";\r\n },\r\n w: function (c) {\r\n return \"semana\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n d: function (c) {\r\n return \"dia\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n h: function (c) {\r\n return \"hora\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n m: function (c) {\r\n return \"minuto\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n s: function (c) {\r\n return \"segundo\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n ms: function (c) {\r\n return \"milissegundo\" + (c === 1 ? \"\" : \"s\");\r\n },\r\n decimal: \",\"\r\n },\r\n ro: {\r\n y: function (c) {\r\n return c === 1 ? \"an\" : \"ani\";\r\n },\r\n mo: function (c) {\r\n return c === 1 ? \"lună\" : \"luni\";\r\n },\r\n w: function (c) {\r\n return c === 1 ? \"săptămână\" : \"săptămâni\";\r\n },\r\n d: function (c) {\r\n return c === 1 ? \"zi\" : \"zile\";\r\n },\r\n h: function (c) {\r\n return c === 1 ? \"oră\" : \"ore\";\r\n },\r\n m: function (c) {\r\n return c === 1 ? \"minut\" : \"minute\";\r\n },\r\n s: function (c) {\r\n return c === 1 ? \"secundă\" : \"secunde\";\r\n },\r\n ms: function (c) {\r\n return c === 1 ? \"milisecundă\" : \"milisecunde\";\r\n },\r\n decimal: \",\"\r\n },\r\n ru: {\r\n y: function (c) {\r\n return [\"лет\", \"год\", \"года\"][_this.getSlavicForm(c)];\r\n },\r\n mo: function (c) {\r\n return [\"месяцев\", \"месяц\", \"месяца\"][_this.getSlavicForm(c)];\r\n },\r\n w: function (c) {\r\n return [\"недель\", \"неделя\", \"недели\"][_this.getSlavicForm(c)];\r\n },\r\n d: function (c) {\r\n return [\"дней\", \"день\", \"дня\"][_this.getSlavicForm(c)];\r\n },\r\n h: function (c) {\r\n return [\"часов\", \"час\", \"часа\"][_this.getSlavicForm(c)];\r\n },\r\n m: function (c) {\r\n return [\"минут\", \"минута\", \"минуты\"][_this.getSlavicForm(c)];\r\n },\r\n s: function (c) {\r\n return [\"секунд\", \"секунда\", \"секунды\"][_this.getSlavicForm(c)];\r\n },\r\n ms: function (c) {\r\n return [\"миллисекунд\", \"миллисекунда\", \"миллисекунды\"][_this.getSlavicForm(c)];\r\n },\r\n decimal: \",\"\r\n },\r\n uk: {\r\n y: function (c) {\r\n return [\"років\", \"рік\", \"роки\"][_this.getSlavicForm(c)];\r\n },\r\n mo: function (c) {\r\n return [\"місяців\", \"місяць\", \"місяці\"][_this.getSlavicForm(c)];\r\n },\r\n w: function (c) {\r\n return [\"тижнів\", \"тиждень\", \"тижні\"][_this.getSlavicForm(c)];\r\n },\r\n d: function (c) {\r\n return [\"днів\", \"день\", \"дні\"][_this.getSlavicForm(c)];\r\n },\r\n h: function (c) {\r\n return [\"годин\", \"година\", \"години\"][_this.getSlavicForm(c)];\r\n },\r\n m: function (c) {\r\n return [\"хвилин\", \"хвилина\", \"хвилини\"][_this.getSlavicForm(c)];\r\n },\r\n s: function (c) {\r\n return [\"секунд\", \"секунда\", \"секунди\"][_this.getSlavicForm(c)];\r\n },\r\n ms: function (c) {\r\n return [\"мілісекунд\", \"мілісекунда\", \"мілісекунди\"][_this.getSlavicForm(c)];\r\n },\r\n decimal: \",\"\r\n },\r\n ur: {\r\n y: function () {\r\n return \"سال\";\r\n },\r\n mo: function (c) {\r\n return c === 1 ? \"مہینہ\" : \"مہینے\";\r\n },\r\n w: function (c) {\r\n return c === 1 ? \"ہفتہ\" : \"ہفتے\";\r\n },\r\n d: function () {\r\n return \"دن\";\r\n },\r\n h: function (c) {\r\n return c === 1 ? \"گھنٹہ\" : \"گھنٹے\";\r\n },\r\n m: function () {\r\n return \"منٹ\";\r\n },\r\n s: function () {\r\n return \"سیکنڈ\";\r\n },\r\n ms: function () {\r\n return \"ملی سیکنڈ\";\r\n },\r\n decimal: \".\"\r\n },\r\n sk: {\r\n y: function (c) {\r\n return [\"rok\", \"roky\", \"roky\", \"rokov\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n mo: function (c) {\r\n return [\"mesiac\", \"mesiace\", \"mesiace\", \"mesiacov\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n w: function (c) {\r\n return [\"týždeň\", \"týždne\", \"týždne\", \"týždňov\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n d: function (c) {\r\n return [\"deň\", \"dni\", \"dni\", \"dní\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n h: function (c) {\r\n return [\"hodina\", \"hodiny\", \"hodiny\", \"hodín\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n m: function (c) {\r\n return [\"minúta\", \"minúty\", \"minúty\", \"minút\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n s: function (c) {\r\n return [\"sekunda\", \"sekundy\", \"sekundy\", \"sekúnd\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n ms: function (c) {\r\n return [\"milisekunda\", \"milisekundy\", \"milisekundy\", \"milisekúnd\"][_this.getCzechOrSlovakForm(c)];\r\n },\r\n decimal: \",\"\r\n },\r\n sv: {\r\n y: function () {\r\n return \"år\";\r\n },\r\n mo: function (c) {\r\n return \"månad\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n w: function (c) {\r\n return \"veck\" + (c === 1 ? \"a\" : \"or\");\r\n },\r\n d: function (c) {\r\n return \"dag\" + (c === 1 ? \"\" : \"ar\");\r\n },\r\n h: function (c) {\r\n return \"timm\" + (c === 1 ? \"e\" : \"ar\");\r\n },\r\n m: function (c) {\r\n return \"minut\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n s: function (c) {\r\n return \"sekund\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n ms: function (c) {\r\n return \"millisekund\" + (c === 1 ? \"\" : \"er\");\r\n },\r\n decimal: \",\"\r\n },\r\n tr: {\r\n y: function () {\r\n return \"yıl\";\r\n },\r\n mo: function () {\r\n return \"ay\";\r\n },\r\n w: function () {\r\n return \"hafta\";\r\n },\r\n d: function () {\r\n return \"gün\";\r\n },\r\n h: function () {\r\n return \"saat\";\r\n },\r\n m: function () {\r\n return \"dakika\";\r\n },\r\n s: function () {\r\n return \"saniye\";\r\n },\r\n ms: function () {\r\n return \"milisaniye\";\r\n },\r\n decimal: \",\"\r\n },\r\n th: {\r\n y: function () {\r\n return \"ปี\";\r\n },\r\n mo: function () {\r\n return \"เดือน\";\r\n },\r\n w: function () {\r\n return \"อาทิตย์\";\r\n },\r\n d: function () {\r\n return \"วัน\";\r\n },\r\n h: function () {\r\n return \"ชั่วโมง\";\r\n },\r\n m: function () {\r\n return \"นาที\";\r\n },\r\n s: function () {\r\n return \"วินาที\";\r\n },\r\n ms: function () {\r\n return \"มิลลิวินาที\";\r\n },\r\n decimal: \".\"\r\n },\r\n vi: {\r\n y: function () {\r\n return \"năm\";\r\n },\r\n mo: function () {\r\n return \"tháng\";\r\n },\r\n w: function () {\r\n return \"tuần\";\r\n },\r\n d: function () {\r\n return \"ngày\";\r\n },\r\n h: function () {\r\n return \"giờ\";\r\n },\r\n m: function () {\r\n return \"phút\";\r\n },\r\n s: function () {\r\n return \"giây\";\r\n },\r\n ms: function () {\r\n return \"mili giây\";\r\n },\r\n decimal: \",\"\r\n },\r\n zh_CN: {\r\n y: function () {\r\n return \"年\";\r\n },\r\n mo: function () {\r\n return \"个月\";\r\n },\r\n w: function () {\r\n return \"周\";\r\n },\r\n d: function () {\r\n return \"天\";\r\n },\r\n h: function () {\r\n return \"小时\";\r\n },\r\n m: function () {\r\n return \"分钟\";\r\n },\r\n s: function () {\r\n return \"秒\";\r\n },\r\n ms: function () {\r\n return \"毫秒\";\r\n },\r\n decimal: \".\"\r\n },\r\n zh_TW: {\r\n y: function () {\r\n return \"年\";\r\n },\r\n mo: function () {\r\n return \"個月\";\r\n },\r\n w: function () {\r\n return \"周\";\r\n },\r\n d: function () {\r\n return \"天\";\r\n },\r\n h: function () {\r\n return \"小時\";\r\n },\r\n m: function () {\r\n return \"分鐘\";\r\n },\r\n s: function () {\r\n return \"秒\";\r\n },\r\n ms: function () {\r\n return \"毫秒\";\r\n },\r\n decimal: \".\"\r\n }\r\n };\r\n }\r\n HumanizeDurationLanguage.prototype.addLanguage = function (key, lang) {\r\n this.languages[key] = lang;\r\n };\r\n // Internal helper function for Czech language.\r\n HumanizeDurationLanguage.prototype.getCzechForm = function (c) {\r\n if (c === 1) {\r\n return 0;\r\n }\r\n else if (Math.floor(c) !== c) {\r\n return 1;\r\n }\r\n else if (c % 10 >= 2 && c % 10 <= 4 && c % 100 < 10) {\r\n return 2;\r\n }\r\n else {\r\n return 3;\r\n }\r\n };\r\n // Internal helper function for Polish language.\r\n HumanizeDurationLanguage.prototype.getPolishForm = function (c) {\r\n if (c === 1) {\r\n return 0;\r\n }\r\n else if (Math.floor(c) !== c) {\r\n return 1;\r\n }\r\n else if (c % 10 >= 2 && c % 10 <= 4 && !(c % 100 > 10 && c % 100 < 20)) {\r\n return 2;\r\n }\r\n else {\r\n return 3;\r\n }\r\n };\r\n // Internal helper function for Russian and Ukranian languages.\r\n HumanizeDurationLanguage.prototype.getSlavicForm = function (c) {\r\n if (Math.floor(c) !== c) {\r\n return 2;\r\n }\r\n else if ((c >= 5 && c <= 20) ||\r\n (c % 10 >= 5 && c % 10 <= 9) ||\r\n c % 10 === 0) {\r\n return 0;\r\n }\r\n else if (c % 10 === 1) {\r\n return 1;\r\n }\r\n else if (c > 1) {\r\n return 2;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n // Internal helper function for Lithuanian language.\r\n HumanizeDurationLanguage.prototype.getLithuanianForm = function (c) {\r\n if (c === 1 || (c % 10 === 1 && c % 100 > 20)) {\r\n return 0;\r\n }\r\n else if (Math.floor(c) !== c ||\r\n (c % 10 >= 2 && c % 100 > 20) ||\r\n (c % 10 >= 2 && c % 100 < 10)) {\r\n return 1;\r\n }\r\n else {\r\n return 2;\r\n }\r\n };\r\n // Internal helper function for Arabic language.\r\n HumanizeDurationLanguage.prototype.getArabicForm = function (c) {\r\n if (c <= 2) {\r\n return 0;\r\n }\r\n if (c > 2 && c < 11) {\r\n return 1;\r\n }\r\n return 0;\r\n };\r\n // Internal helper function for Slovak language.\r\n HumanizeDurationLanguage.prototype.getCzechOrSlovakForm = function (c) {\r\n if (c === 1) {\r\n return 0;\r\n }\r\n else if (Math.floor(c) !== c) {\r\n return 1;\r\n }\r\n else if (c % 10 >= 2 && c % 10 <= 4 && c % 100 < 10) {\r\n return 2;\r\n }\r\n else {\r\n return 3;\r\n }\r\n };\r\n // Internal helper function for Latvian language.\r\n HumanizeDurationLanguage.prototype.getLatvianForm = function (c) {\r\n if (c === 1 || (c % 10 === 1 && c % 100 !== 11)) {\r\n return 0;\r\n }\r\n else {\r\n return 1;\r\n }\r\n };\r\n return HumanizeDurationLanguage;\r\n}());\n\nvar HumanizeDuration = /** @class */ (function () {\r\n function HumanizeDuration(languageUtil) {\r\n this.languageUtil = languageUtil;\r\n this.defaultOptions = {\r\n language: \"en\",\r\n delimiter: \", \",\r\n spacer: \" \",\r\n conjunction: \"\",\r\n serialComma: true,\r\n units: [\"y\", \"mo\", \"w\", \"d\", \"h\", \"m\", \"s\"],\r\n languages: {},\r\n largest: 10,\r\n decimal: \".\",\r\n round: false,\r\n unitMeasures: {\r\n y: 31557600000,\r\n mo: 2629800000,\r\n w: 604800000,\r\n d: 86400000,\r\n h: 3600000,\r\n m: 60000,\r\n s: 1000,\r\n ms: 1\r\n }\r\n };\r\n this.options = undefined;\r\n this.options = this.defaultOptions;\r\n }\r\n HumanizeDuration.prototype.humanize = function (value, tempOptions) {\r\n var options = tempOptions !== undefined\r\n ? this.extend(this.options, tempOptions)\r\n : this.defaultOptions;\r\n return this.doHumanization(value, options);\r\n };\r\n HumanizeDuration.prototype.setOptions = function (passedOptions) {\r\n this.options =\r\n passedOptions !== undefined\r\n ? this.extend(this.defaultOptions, passedOptions)\r\n : this.defaultOptions;\r\n };\r\n HumanizeDuration.prototype.getSupportedLanguages = function () {\r\n var result = [];\r\n for (var language in this.languageUtil.languages) {\r\n if (this.languageUtil.languages.hasOwnProperty(language)) {\r\n result.push(language);\r\n }\r\n }\r\n return result;\r\n };\r\n HumanizeDuration.prototype.addLanguage = function (key, lang) {\r\n this.languageUtil.addLanguage(key, lang);\r\n };\r\n HumanizeDuration.prototype.doHumanization = function (ms, options) {\r\n var i, len, piece;\r\n // Make sure we have a positive number.\r\n // Has the nice sideffect of turning Number objects into primitives.\r\n ms = Math.abs(ms);\r\n var dictionary = options.languages[options.language] ||\r\n this.languageUtil.languages[options.language];\r\n if (!dictionary) {\r\n throw new Error(\"No language \" + dictionary + \".\");\r\n }\r\n var pieces = [];\r\n // Start at the top and keep removing units, bit by bit.\r\n var unitName;\r\n var unitMS, unitCount;\r\n for (i = 0, len = options.units.length; i < len; i++) {\r\n unitName = options.units[i];\r\n unitMS = options.unitMeasures[unitName];\r\n // What's the number of full units we can fit?\r\n if (i + 1 === len) {\r\n unitCount = ms / unitMS;\r\n }\r\n else {\r\n unitCount = Math.floor(ms / unitMS);\r\n }\r\n // Add the string.\r\n pieces.push({\r\n unitCount: unitCount,\r\n unitName: unitName\r\n });\r\n // Remove what we just figured out.\r\n ms -= unitCount * unitMS;\r\n }\r\n var firstOccupiedUnitIndex = 0;\r\n for (i = 0; i < pieces.length; i++) {\r\n if (pieces[i].unitCount) {\r\n firstOccupiedUnitIndex = i;\r\n break;\r\n }\r\n }\r\n if (options.round) {\r\n var ratioToLargerUnit = void 0, previousPiece = void 0;\r\n for (i = pieces.length - 1; i >= 0; i--) {\r\n piece = pieces[i];\r\n piece.unitCount = Math.round(piece.unitCount);\r\n if (i === 0) {\r\n break;\r\n }\r\n previousPiece = pieces[i - 1];\r\n ratioToLargerUnit =\r\n options.unitMeasures[previousPiece.unitName] /\r\n options.unitMeasures[piece.unitName];\r\n if (piece.unitCount % ratioToLargerUnit === 0 ||\r\n (options.largest && options.largest - 1 < i - firstOccupiedUnitIndex)) {\r\n previousPiece.unitCount += piece.unitCount / ratioToLargerUnit;\r\n piece.unitCount = 0;\r\n }\r\n }\r\n }\r\n var result = [];\r\n for (i = 0, pieces.length; i < len; i++) {\r\n piece = pieces[i];\r\n if (piece.unitCount) {\r\n result.push(this.render(piece.unitCount, piece.unitName, dictionary, options));\r\n }\r\n if (result.length === options.largest) {\r\n break;\r\n }\r\n }\r\n if (result.length) {\r\n if (!options.conjunction || result.length === 1) {\r\n return result.join(options.delimiter);\r\n }\r\n else if (result.length === 2) {\r\n return result.join(options.conjunction);\r\n }\r\n else if (result.length > 2) {\r\n return (result.slice(0, -1).join(options.delimiter) +\r\n (options.serialComma ? \",\" : \"\") +\r\n options.conjunction +\r\n result.slice(-1));\r\n }\r\n }\r\n else {\r\n return this.render(0, options.units[options.units.length - 1], dictionary, options);\r\n }\r\n };\r\n HumanizeDuration.prototype.render = function (count, type, dictionary, options) {\r\n var decimal;\r\n if (options.decimal === void 0) {\r\n decimal = dictionary.decimal;\r\n }\r\n else {\r\n decimal = options.decimal;\r\n }\r\n var countStr = count.toString().replace(\".\", decimal.toString());\r\n var word = dictionary[type](count);\r\n return countStr + options.spacer + word;\r\n };\r\n HumanizeDuration.prototype.extend = function (options, override) {\r\n for (var prop in override) {\r\n if (options.hasOwnProperty(prop)) {\r\n options[prop] = override[prop];\r\n }\r\n }\r\n return options;\r\n };\r\n return HumanizeDuration;\r\n}());\n\nexport { HumanizeDuration, HumanizeDurationLanguage };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"./codegen\");\nconst names = {\n // validation function arguments\n data: new codegen_1.Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new codegen_1.Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new codegen_1.Name(\"instancePath\"),\n parentData: new codegen_1.Name(\"parentData\"),\n parentDataProperty: new codegen_1.Name(\"parentDataProperty\"),\n rootData: new codegen_1.Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new codegen_1.Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new codegen_1.Name(\"vErrors\"), // null or array of validation errors\n errors: new codegen_1.Name(\"errors\"), // counter of validation errors\n this: new codegen_1.Name(\"this\"),\n // \"globals\"\n self: new codegen_1.Name(\"self\"),\n scope: new codegen_1.Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new codegen_1.Name(\"json\"),\n jsonPos: new codegen_1.Name(\"jsonPos\"),\n jsonLen: new codegen_1.Name(\"jsonLen\"),\n jsonPart: new codegen_1.Name(\"jsonPart\"),\n};\nexports.default = names;\n//# sourceMappingURL=names.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i (count += countKeys(sch)));\n }\n if (count === Infinity)\n return Infinity;\n }\n return count;\n}\nfunction getFullPath(resolver, id = \"\", normalize) {\n if (normalize !== false)\n id = normalizeId(id);\n const p = resolver.parse(id);\n return _getFullPath(resolver, p);\n}\nexports.getFullPath = getFullPath;\nfunction _getFullPath(resolver, p) {\n const serialized = resolver.serialize(p);\n return serialized.split(\"#\")[0] + \"#\";\n}\nexports._getFullPath = _getFullPath;\nconst TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\";\n}\nexports.normalizeId = normalizeId;\nfunction resolveUrl(resolver, baseId, id) {\n id = normalizeId(id);\n return resolver.resolve(baseId, id);\n}\nexports.resolveUrl = resolveUrl;\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i;\nfunction getSchemaRefs(schema, baseId) {\n if (typeof schema == \"boolean\")\n return {};\n const { schemaId, uriResolver } = this.opts;\n const schId = normalizeId(schema[schemaId] || baseId);\n const baseIds = { \"\": schId };\n const pathPrefix = getFullPath(uriResolver, schId, false);\n const localRefs = {};\n const schemaRefs = new Set();\n traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined)\n return;\n const fullPath = pathPrefix + jsonPtr;\n let innerBaseId = baseIds[parentJsonPtr];\n if (typeof sch[schemaId] == \"string\")\n innerBaseId = addRef.call(this, sch[schemaId]);\n addAnchor.call(this, sch.$anchor);\n addAnchor.call(this, sch.$dynamicAnchor);\n baseIds[jsonPtr] = innerBaseId;\n function addRef(ref) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve;\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);\n if (schemaRefs.has(ref))\n throw ambiguos(ref);\n schemaRefs.add(ref);\n let schOrRef = this.refs[ref];\n if (typeof schOrRef == \"string\")\n schOrRef = this.refs[schOrRef];\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref);\n }\n else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref);\n localRefs[ref] = sch;\n }\n else {\n this.refs[ref] = fullPath;\n }\n }\n return ref;\n }\n function addAnchor(anchor) {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor))\n throw new Error(`invalid anchor \"${anchor}\"`);\n addRef.call(this, `#${anchor}`);\n }\n }\n });\n return localRefs;\n function checkAmbiguosRef(sch1, sch2, ref) {\n if (sch2 !== undefined && !equal(sch1, sch2))\n throw ambiguos(ref);\n }\n function ambiguos(ref) {\n return new Error(`reference \"${ref}\" resolves to more than one schema`);\n }\n}\nexports.getSchemaRefs = getSchemaRefs;\n//# sourceMappingURL=resolve.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nclass ValidationError extends Error {\n constructor(errors) {\n super(\"validation failed\");\n this.errors = errors;\n this.ajv = this.validation = true;\n }\n}\nexports.default = ValidationError;\n//# sourceMappingURL=validation_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(factory((global.URI = global.URI || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction merge() {\n for (var _len = arguments.length, sets = Array(_len), _key = 0; _key < _len; _key++) {\n sets[_key] = arguments[_key];\n }\n\n if (sets.length > 1) {\n sets[0] = sets[0].slice(0, -1);\n var xl = sets.length - 1;\n for (var x = 1; x < xl; ++x) {\n sets[x] = sets[x].slice(1, -1);\n }\n sets[xl] = sets[xl].slice(1);\n return sets.join('');\n } else {\n return sets[0];\n }\n}\nfunction subexp(str) {\n return \"(?:\" + str + \")\";\n}\nfunction typeOf(o) {\n return o === undefined ? \"undefined\" : o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase();\n}\nfunction toUpperCase(str) {\n return str.toUpperCase();\n}\nfunction toArray(obj) {\n return obj !== undefined && obj !== null ? obj instanceof Array ? obj : typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj) : [];\n}\nfunction assign(target, source) {\n var obj = target;\n if (source) {\n for (var key in source) {\n obj[key] = source[key];\n }\n }\n return obj;\n}\n\nfunction buildExps(isIRI) {\n var ALPHA$$ = \"[A-Za-z]\",\n CR$ = \"[\\\\x0D]\",\n DIGIT$$ = \"[0-9]\",\n DQUOTE$$ = \"[\\\\x22]\",\n HEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"),\n //case-insensitive\n LF$$ = \"[\\\\x0A]\",\n SP$$ = \"[\\\\x20]\",\n PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)),\n //expanded\n GEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n SUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n RESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n UCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\",\n //subset, excludes bidi control characters\n IPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\",\n //subset\n UNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n SCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n USERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n DEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n DEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$),\n //relaxed parsing rules\n IPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n H16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n LS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n IPV6ADDRESS1$ = subexp(subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$),\n // 6( h16 \":\" ) ls32\n IPV6ADDRESS2$ = subexp(\"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$),\n // \"::\" 5( h16 \":\" ) ls32\n IPV6ADDRESS3$ = subexp(subexp(H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$),\n //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n IPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$),\n //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n IPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$),\n //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n IPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$),\n //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n IPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$),\n //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n IPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$),\n //[ *5( h16 \":\" ) h16 ] \"::\" h16\n IPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\"),\n //[ *6( h16 \":\" ) h16 ] \"::\"\n IPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n ZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"),\n //RFC 6874\n IPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$),\n //RFC 6874\n IPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$),\n //RFC 6874, with relaxed parsing rules\n IPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n IP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"),\n //RFC 6874\n REG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n HOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n PORT$ = subexp(DIGIT$$ + \"*\"),\n AUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n PCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n SEGMENT$ = subexp(PCHAR$ + \"*\"),\n SEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n SEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n PATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n PATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"),\n //simplified\n PATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$),\n //simplified\n PATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$),\n //simplified\n PATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n PATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n QUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n FRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n HIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n RELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n RELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n URI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n ABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n GENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n RELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n ABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n SAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n AUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\";\n return {\n NOT_SCHEME: new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n NOT_USERINFO: new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_HOST: new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH: new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_PATH_NOSCHEME: new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n NOT_QUERY: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n NOT_FRAGMENT: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n ESCAPE: new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n UNRESERVED: new RegExp(UNRESERVED$$, \"g\"),\n OTHER_CHARS: new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n PCT_ENCODED: new RegExp(PCT_ENCODED$, \"g\"),\n IPV4ADDRESS: new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n IPV6ADDRESS: new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n };\n}\nvar URI_PROTOCOL = buildExps(false);\n\nvar IRI_PROTOCOL = buildExps(true);\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/** Highest positive signed 32-bit float value */\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nvar regexPunycode = /^xn--/;\nvar regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nvar regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nvar errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error$1(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tvar result = [];\n\tvar length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tvar parts = string.split('@');\n\tvar result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tvar labels = string.split('.');\n\tvar encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tvar output = [];\n\tvar counter = 0;\n\tvar length = string.length;\n\twhile (counter < length) {\n\t\tvar value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tvar extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t// Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nvar ucs2encode = function ucs2encode(array) {\n\treturn String.fromCodePoint.apply(String, toConsumableArray(array));\n};\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nvar basicToDigit = function basicToDigit(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nvar digitToBasic = function digitToBasic(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nvar adapt = function adapt(delta, numPoints, firstTime) {\n\tvar k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nvar decode = function decode(input) {\n\t// Don't use UCS-2.\n\tvar output = [];\n\tvar inputLength = input.length;\n\tvar i = 0;\n\tvar n = initialN;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tvar basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (var j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror$1('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (var index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tvar oldi = i;\n\t\tfor (var w = 1, k = base;; /* no condition */k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror$1('invalid-input');\n\t\t\t}\n\n\t\t\tvar digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror$1('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\t\t}\n\n\t\tvar out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\t}\n\n\treturn String.fromCodePoint.apply(String, output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nvar encode = function encode(input) {\n\tvar output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tvar inputLength = input.length;\n\n\t// Initialize the state.\n\tvar n = initialN;\n\tvar delta = 0;\n\tvar bias = initialBias;\n\n\t// Handle the basic code points.\n\tvar _iteratorNormalCompletion = true;\n\tvar _didIteratorError = false;\n\tvar _iteratorError = undefined;\n\n\ttry {\n\t\tfor (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\tvar _currentValue2 = _step.value;\n\n\t\t\tif (_currentValue2 < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(_currentValue2));\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\t_didIteratorError = true;\n\t\t_iteratorError = err;\n\t} finally {\n\t\ttry {\n\t\t\tif (!_iteratorNormalCompletion && _iterator.return) {\n\t\t\t\t_iterator.return();\n\t\t\t}\n\t\t} finally {\n\t\t\tif (_didIteratorError) {\n\t\t\t\tthrow _iteratorError;\n\t\t\t}\n\t\t}\n\t}\n\n\tvar basicLength = output.length;\n\tvar handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tvar m = maxInt;\n\t\tvar _iteratorNormalCompletion2 = true;\n\t\tvar _didIteratorError2 = false;\n\t\tvar _iteratorError2 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator2 = input[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\tvar currentValue = _step2.value;\n\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow.\n\t\t} catch (err) {\n\t\t\t_didIteratorError2 = true;\n\t\t\t_iteratorError2 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return) {\n\t\t\t\t\t_iterator2.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError2) {\n\t\t\t\t\tthrow _iteratorError2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror$1('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tvar _iteratorNormalCompletion3 = true;\n\t\tvar _didIteratorError3 = false;\n\t\tvar _iteratorError3 = undefined;\n\n\t\ttry {\n\t\t\tfor (var _iterator3 = input[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\tvar _currentValue = _step3.value;\n\n\t\t\t\tif (_currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror$1('overflow');\n\t\t\t\t}\n\t\t\t\tif (_currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\t\tvar q = delta;\n\t\t\t\t\tfor (var k = base;; /* no condition */k += base) {\n\t\t\t\t\t\tvar t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar qMinusT = q - t;\n\t\t\t\t\t\tvar baseMinusT = base - t;\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_didIteratorError3 = true;\n\t\t\t_iteratorError3 = err;\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return) {\n\t\t\t\t\t_iterator3.return();\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (_didIteratorError3) {\n\t\t\t\t\tthrow _iteratorError3;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nvar toUnicode = function toUnicode(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nvar toASCII = function toASCII(input) {\n\treturn mapDomain(input, function (string) {\n\t\treturn regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nvar punycode = {\n\t/**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n\t'version': '2.1.0',\n\t/**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\n/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author Gary Court\n * @see http://github.com/garycourt/uri-js\n */\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\nvar SCHEMES = {};\nfunction pctEncChar(chr) {\n var c = chr.charCodeAt(0);\n var e = void 0;\n if (c < 16) e = \"%0\" + c.toString(16).toUpperCase();else if (c < 128) e = \"%\" + c.toString(16).toUpperCase();else if (c < 2048) e = \"%\" + (c >> 6 | 192).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();else e = \"%\" + (c >> 12 | 224).toString(16).toUpperCase() + \"%\" + (c >> 6 & 63 | 128).toString(16).toUpperCase() + \"%\" + (c & 63 | 128).toString(16).toUpperCase();\n return e;\n}\nfunction pctDecChars(str) {\n var newStr = \"\";\n var i = 0;\n var il = str.length;\n while (i < il) {\n var c = parseInt(str.substr(i + 1, 2), 16);\n if (c < 128) {\n newStr += String.fromCharCode(c);\n i += 3;\n } else if (c >= 194 && c < 224) {\n if (il - i >= 6) {\n var c2 = parseInt(str.substr(i + 4, 2), 16);\n newStr += String.fromCharCode((c & 31) << 6 | c2 & 63);\n } else {\n newStr += str.substr(i, 6);\n }\n i += 6;\n } else if (c >= 224) {\n if (il - i >= 9) {\n var _c = parseInt(str.substr(i + 4, 2), 16);\n var c3 = parseInt(str.substr(i + 7, 2), 16);\n newStr += String.fromCharCode((c & 15) << 12 | (_c & 63) << 6 | c3 & 63);\n } else {\n newStr += str.substr(i, 9);\n }\n i += 9;\n } else {\n newStr += str.substr(i, 3);\n i += 3;\n }\n }\n return newStr;\n}\nfunction _normalizeComponentEncoding(components, protocol) {\n function decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(protocol.UNRESERVED) ? str : decStr;\n }\n if (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n if (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n if (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n return components;\n}\n\nfunction _stripLeadingZeros(str) {\n return str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\nfunction _normalizeIPv4(host, protocol) {\n var matches = host.match(protocol.IPV4ADDRESS) || [];\n\n var _matches = slicedToArray(matches, 2),\n address = _matches[1];\n\n if (address) {\n return address.split(\".\").map(_stripLeadingZeros).join(\".\");\n } else {\n return host;\n }\n}\nfunction _normalizeIPv6(host, protocol) {\n var matches = host.match(protocol.IPV6ADDRESS) || [];\n\n var _matches2 = slicedToArray(matches, 3),\n address = _matches2[1],\n zone = _matches2[2];\n\n if (address) {\n var _address$toLowerCase$ = address.toLowerCase().split('::').reverse(),\n _address$toLowerCase$2 = slicedToArray(_address$toLowerCase$, 2),\n last = _address$toLowerCase$2[0],\n first = _address$toLowerCase$2[1];\n\n var firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n var lastFields = last.split(\":\").map(_stripLeadingZeros);\n var isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n var fieldCount = isLastFieldIPv4Address ? 7 : 8;\n var lastFieldsStart = lastFields.length - fieldCount;\n var fields = Array(fieldCount);\n for (var x = 0; x < fieldCount; ++x) {\n fields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n }\n if (isLastFieldIPv4Address) {\n fields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n }\n var allZeroFields = fields.reduce(function (acc, field, index) {\n if (!field || field === \"0\") {\n var lastLongest = acc[acc.length - 1];\n if (lastLongest && lastLongest.index + lastLongest.length === index) {\n lastLongest.length++;\n } else {\n acc.push({ index: index, length: 1 });\n }\n }\n return acc;\n }, []);\n var longestZeroFields = allZeroFields.sort(function (a, b) {\n return b.length - a.length;\n })[0];\n var newHost = void 0;\n if (longestZeroFields && longestZeroFields.length > 1) {\n var newFirst = fields.slice(0, longestZeroFields.index);\n var newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n newHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n } else {\n newHost = fields.join(\":\");\n }\n if (zone) {\n newHost += \"%\" + zone;\n }\n return newHost;\n } else {\n return host;\n }\n}\nvar URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nvar NO_MATCH_IS_UNDEFINED = \"\".match(/(){0}/)[1] === undefined;\nfunction parse(uriString) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var components = {};\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n if (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n var matches = uriString.match(URI_PARSE);\n if (matches) {\n if (NO_MATCH_IS_UNDEFINED) {\n //store each component\n components.scheme = matches[1];\n components.userinfo = matches[3];\n components.host = matches[4];\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = matches[7];\n components.fragment = matches[8];\n //fix port number\n if (isNaN(components.port)) {\n components.port = matches[5];\n }\n } else {\n //IE FIX for improper RegExp matching\n //store each component\n components.scheme = matches[1] || undefined;\n components.userinfo = uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined;\n components.host = uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined;\n components.port = parseInt(matches[5], 10);\n components.path = matches[6] || \"\";\n components.query = uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined;\n components.fragment = uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined;\n //fix port number\n if (isNaN(components.port)) {\n components.port = uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined;\n }\n }\n if (components.host) {\n //normalize IP hosts\n components.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n }\n //determine reference type\n if (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n components.reference = \"same-document\";\n } else if (components.scheme === undefined) {\n components.reference = \"relative\";\n } else if (components.fragment === undefined) {\n components.reference = \"absolute\";\n } else {\n components.reference = \"uri\";\n }\n //check for reference errors\n if (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n components.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n }\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n //if host component is a domain name\n if (components.host && (options.domainHost || schemeHandler && schemeHandler.domainHost)) {\n //convert Unicode IDN -> ASCII IDN\n try {\n components.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n }\n }\n //convert IRI -> URI\n _normalizeComponentEncoding(components, URI_PROTOCOL);\n } else {\n //normalize encodings\n _normalizeComponentEncoding(components, protocol);\n }\n //perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(components, options);\n }\n } else {\n components.error = components.error || \"URI can not be parsed.\";\n }\n return components;\n}\n\nfunction _recomposeAuthority(components, options) {\n var protocol = options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo);\n uriTokens.push(\"@\");\n }\n if (components.host !== undefined) {\n //normalize IP hosts, add brackets and escape zone separator for IPv6\n uriTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, function (_, $1, $2) {\n return \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\";\n }));\n }\n if (typeof components.port === \"number\" || typeof components.port === \"string\") {\n uriTokens.push(\":\");\n uriTokens.push(String(components.port));\n }\n return uriTokens.length ? uriTokens.join(\"\") : undefined;\n}\n\nvar RDS1 = /^\\.\\.?\\//;\nvar RDS2 = /^\\/\\.(\\/|$)/;\nvar RDS3 = /^\\/\\.\\.(\\/|$)/;\nvar RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\nfunction removeDotSegments(input) {\n var output = [];\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, \"\");\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, \"/\");\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, \"/\");\n output.pop();\n } else if (input === \".\" || input === \"..\") {\n input = \"\";\n } else {\n var im = input.match(RDS5);\n if (im) {\n var s = im[0];\n input = input.slice(s.length);\n output.push(s);\n } else {\n throw new Error(\"Unexpected dot segment condition\");\n }\n }\n }\n return output.join(\"\");\n}\n\nfunction serialize(components) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var protocol = options.iri ? IRI_PROTOCOL : URI_PROTOCOL;\n var uriTokens = [];\n //find scheme handler\n var schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n //perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n if (components.host) {\n //if host component is an IPv6 address\n if (protocol.IPV6ADDRESS.test(components.host)) {}\n //TODO: normalize IPv6 address as per RFC 5952\n\n //if host component is a domain name\n else if (options.domainHost || schemeHandler && schemeHandler.domainHost) {\n //convert IDN via punycode\n try {\n components.host = !options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host);\n } catch (e) {\n components.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n }\n }\n //normalize encoding\n _normalizeComponentEncoding(components, protocol);\n if (options.reference !== \"suffix\" && components.scheme) {\n uriTokens.push(components.scheme);\n uriTokens.push(\":\");\n }\n var authority = _recomposeAuthority(components, options);\n if (authority !== undefined) {\n if (options.reference !== \"suffix\") {\n uriTokens.push(\"//\");\n }\n uriTokens.push(authority);\n if (components.path && components.path.charAt(0) !== \"/\") {\n uriTokens.push(\"/\");\n }\n }\n if (components.path !== undefined) {\n var s = components.path;\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s);\n }\n if (authority === undefined) {\n s = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n }\n uriTokens.push(s);\n }\n if (components.query !== undefined) {\n uriTokens.push(\"?\");\n uriTokens.push(components.query);\n }\n if (components.fragment !== undefined) {\n uriTokens.push(\"#\");\n uriTokens.push(components.fragment);\n }\n return uriTokens.join(\"\"); //merge tokens into a string\n}\n\nfunction resolveComponents(base, relative) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var skipNormalization = arguments[3];\n\n var target = {};\n if (!skipNormalization) {\n base = parse(serialize(base, options), options); //normalize base components\n relative = parse(serialize(relative, options), options); //normalize relative components\n }\n options = options || {};\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme;\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n //target.authority = relative.authority;\n target.userinfo = relative.userinfo;\n target.host = relative.host;\n target.port = relative.port;\n target.path = removeDotSegments(relative.path || \"\");\n target.query = relative.query;\n } else {\n if (!relative.path) {\n target.path = base.path;\n if (relative.query !== undefined) {\n target.query = relative.query;\n } else {\n target.query = base.query;\n }\n } else {\n if (relative.path.charAt(0) === \"/\") {\n target.path = removeDotSegments(relative.path);\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = \"/\" + relative.path;\n } else if (!base.path) {\n target.path = relative.path;\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n }\n target.path = removeDotSegments(target.path);\n }\n target.query = relative.query;\n }\n //target.authority = base.authority;\n target.userinfo = base.userinfo;\n target.host = base.host;\n target.port = base.port;\n }\n target.scheme = base.scheme;\n }\n target.fragment = relative.fragment;\n return target;\n}\n\nfunction resolve(baseURI, relativeURI, options) {\n var schemelessOptions = assign({ scheme: 'null' }, options);\n return serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n}\n\nfunction normalize(uri, options) {\n if (typeof uri === \"string\") {\n uri = serialize(parse(uri, options), options);\n } else if (typeOf(uri) === \"object\") {\n uri = parse(serialize(uri, options), options);\n }\n return uri;\n}\n\nfunction equal(uriA, uriB, options) {\n if (typeof uriA === \"string\") {\n uriA = serialize(parse(uriA, options), options);\n } else if (typeOf(uriA) === \"object\") {\n uriA = serialize(uriA, options);\n }\n if (typeof uriB === \"string\") {\n uriB = serialize(parse(uriB, options), options);\n } else if (typeOf(uriB) === \"object\") {\n uriB = serialize(uriB, options);\n }\n return uriA === uriB;\n}\n\nfunction escapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE, pctEncChar);\n}\n\nfunction unescapeComponent(str, options) {\n return str && str.toString().replace(!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED, pctDecChars);\n}\n\nvar handler = {\n scheme: \"http\",\n domainHost: true,\n parse: function parse(components, options) {\n //report missing host\n if (!components.host) {\n components.error = components.error || \"HTTP URIs must have a host.\";\n }\n return components;\n },\n serialize: function serialize(components, options) {\n var secure = String(components.scheme).toLowerCase() === \"https\";\n //normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === \"\") {\n components.port = undefined;\n }\n //normalize the empty path\n if (!components.path) {\n components.path = \"/\";\n }\n //NOTE: We do not parse query strings for HTTP URIs\n //as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n //and not the HTTP spec.\n return components;\n }\n};\n\nvar handler$1 = {\n scheme: \"https\",\n domainHost: handler.domainHost,\n parse: handler.parse,\n serialize: handler.serialize\n};\n\nfunction isSecure(wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n//RFC 6455\nvar handler$2 = {\n scheme: \"ws\",\n domainHost: true,\n parse: function parse(components, options) {\n var wsComponents = components;\n //indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents);\n //construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n wsComponents.path = undefined;\n wsComponents.query = undefined;\n return wsComponents;\n },\n serialize: function serialize(wsComponents, options) {\n //normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n wsComponents.port = undefined;\n }\n //ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = wsComponents.secure ? 'wss' : 'ws';\n wsComponents.secure = undefined;\n }\n //reconstruct path from resource name\n if (wsComponents.resourceName) {\n var _wsComponents$resourc = wsComponents.resourceName.split('?'),\n _wsComponents$resourc2 = slicedToArray(_wsComponents$resourc, 2),\n path = _wsComponents$resourc2[0],\n query = _wsComponents$resourc2[1];\n\n wsComponents.path = path && path !== '/' ? path : undefined;\n wsComponents.query = query;\n wsComponents.resourceName = undefined;\n }\n //forbid fragment component\n wsComponents.fragment = undefined;\n return wsComponents;\n }\n};\n\nvar handler$3 = {\n scheme: \"wss\",\n domainHost: handler$2.domainHost,\n parse: handler$2.parse,\n serialize: handler$2.serialize\n};\n\nvar O = {};\nvar isIRI = true;\n//RFC 3986\nvar UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nvar HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nvar PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nvar ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nvar QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nvar VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nvar SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nvar UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nvar PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nvar NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nvar NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nvar NOT_HFVALUE = NOT_HFNAME;\nfunction decodeUnreserved(str) {\n var decStr = pctDecChars(str);\n return !decStr.match(UNRESERVED) ? str : decStr;\n}\nvar handler$4 = {\n scheme: \"mailto\",\n parse: function parse$$1(components, options) {\n var mailtoComponents = components;\n var to = mailtoComponents.to = mailtoComponents.path ? mailtoComponents.path.split(\",\") : [];\n mailtoComponents.path = undefined;\n if (mailtoComponents.query) {\n var unknownHeaders = false;\n var headers = {};\n var hfields = mailtoComponents.query.split(\"&\");\n for (var x = 0, xl = hfields.length; x < xl; ++x) {\n var hfield = hfields[x].split(\"=\");\n switch (hfield[0]) {\n case \"to\":\n var toAddrs = hfield[1].split(\",\");\n for (var _x = 0, _xl = toAddrs.length; _x < _xl; ++_x) {\n to.push(toAddrs[_x]);\n }\n break;\n case \"subject\":\n mailtoComponents.subject = unescapeComponent(hfield[1], options);\n break;\n case \"body\":\n mailtoComponents.body = unescapeComponent(hfield[1], options);\n break;\n default:\n unknownHeaders = true;\n headers[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n break;\n }\n }\n if (unknownHeaders) mailtoComponents.headers = headers;\n }\n mailtoComponents.query = undefined;\n for (var _x2 = 0, _xl2 = to.length; _x2 < _xl2; ++_x2) {\n var addr = to[_x2].split(\"@\");\n addr[0] = unescapeComponent(addr[0]);\n if (!options.unicodeSupport) {\n //convert Unicode IDN -> ASCII IDN\n try {\n addr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n } catch (e) {\n mailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n }\n } else {\n addr[1] = unescapeComponent(addr[1], options).toLowerCase();\n }\n to[_x2] = addr.join(\"@\");\n }\n return mailtoComponents;\n },\n serialize: function serialize$$1(mailtoComponents, options) {\n var components = mailtoComponents;\n var to = toArray(mailtoComponents.to);\n if (to) {\n for (var x = 0, xl = to.length; x < xl; ++x) {\n var toAddr = String(to[x]);\n var atIdx = toAddr.lastIndexOf(\"@\");\n var localPart = toAddr.slice(0, atIdx).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n var domain = toAddr.slice(atIdx + 1);\n //convert IDN via punycode\n try {\n domain = !options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain);\n } catch (e) {\n components.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n }\n to[x] = localPart + \"@\" + domain;\n }\n components.path = to.join(\",\");\n }\n var headers = mailtoComponents.headers = mailtoComponents.headers || {};\n if (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n if (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n var fields = [];\n for (var name in headers) {\n if (headers[name] !== O[name]) {\n fields.push(name.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) + \"=\" + headers[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar));\n }\n }\n if (fields.length) {\n components.query = fields.join(\"&\");\n }\n return components;\n }\n};\n\nvar URN_PARSE = /^([^\\:]+)\\:(.*)/;\n//RFC 2141\nvar handler$5 = {\n scheme: \"urn\",\n parse: function parse$$1(components, options) {\n var matches = components.path && components.path.match(URN_PARSE);\n var urnComponents = components;\n if (matches) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = matches[1].toLowerCase();\n var nss = matches[2];\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n urnComponents.nid = nid;\n urnComponents.nss = nss;\n urnComponents.path = undefined;\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options);\n }\n } else {\n urnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n }\n return urnComponents;\n },\n serialize: function serialize$$1(urnComponents, options) {\n var scheme = options.scheme || urnComponents.scheme || \"urn\";\n var nid = urnComponents.nid;\n var urnScheme = scheme + \":\" + (options.nid || nid);\n var schemeHandler = SCHEMES[urnScheme];\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options);\n }\n var uriComponents = urnComponents;\n var nss = urnComponents.nss;\n uriComponents.path = (nid || options.nid) + \":\" + nss;\n return uriComponents;\n }\n};\n\nvar UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\n//RFC 4122\nvar handler$6 = {\n scheme: \"urn:uuid\",\n parse: function parse(urnComponents, options) {\n var uuidComponents = urnComponents;\n uuidComponents.uuid = uuidComponents.nss;\n uuidComponents.nss = undefined;\n if (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n uuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n }\n return uuidComponents;\n },\n serialize: function serialize(uuidComponents, options) {\n var urnComponents = uuidComponents;\n //normalize UUID\n urnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n return urnComponents;\n }\n};\n\nSCHEMES[handler.scheme] = handler;\nSCHEMES[handler$1.scheme] = handler$1;\nSCHEMES[handler$2.scheme] = handler$2;\nSCHEMES[handler$3.scheme] = handler$3;\nSCHEMES[handler$4.scheme] = handler$4;\nSCHEMES[handler$5.scheme] = handler$5;\nSCHEMES[handler$6.scheme] = handler$6;\n\nexports.SCHEMES = SCHEMES;\nexports.pctEncChar = pctEncChar;\nexports.pctDecChars = pctDecChars;\nexports.parse = parse;\nexports.removeDotSegments = removeDotSegments;\nexports.serialize = serialize;\nexports.resolveComponents = resolveComponents;\nexports.resolve = resolve;\nexports.normalize = normalize;\nexports.equal = equal;\nexports.escapeComponent = escapeComponent;\nexports.unescapeComponent = unescapeComponent;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=uri.all.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"uri-js\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst ref_1 = require(\"ajv/dist/vocabularies/core/ref\");\nconst core = [\n \"$schema\",\n \"id\",\n \"$defs\",\n { keyword: \"$comment\" },\n \"definitions\",\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=core.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"ajv/dist/core\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: {\n exclusive: \"exclusiveMaximum\",\n ops: [\n { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n ],\n },\n minimum: {\n exclusive: \"exclusiveMinimum\",\n ops: [\n { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n ],\n },\n};\nconst error = {\n message: (cxt) => core_1.str `must be ${kwdOp(cxt).okStr} ${cxt.schemaCode}`,\n params: (cxt) => core_1._ `{comparison: ${kwdOp(cxt).okStr}, limit: ${cxt.schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { data, schemaCode } = cxt;\n cxt.fail$data(core_1._ `${data} ${kwdOp(cxt).fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nfunction kwdOp(cxt) {\n var _a;\n const keyword = cxt.keyword;\n const opsIdx = ((_a = cxt.parentSchema) === null || _a === void 0 ? void 0 : _a[KWDs[keyword].exclusive]) ? 1 : 0;\n return KWDs[keyword].ops[opsIdx];\n}\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst KWDs = {\n exclusiveMaximum: \"maximum\",\n exclusiveMinimum: \"minimum\",\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"boolean\",\n code({ keyword, parentSchema }) {\n const limitKwd = KWDs[keyword];\n if (parentSchema[limitKwd] === undefined) {\n throw new Error(`${keyword} can only be used with ${limitKwd}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumberExclusive.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { data, $data, schema, schemaCode, it } = cxt;\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { missingProperty } }) => (0, codegen_1.str) `must have required property '${missingProperty}'`,\n params: ({ params: { missingProperty } }) => (0, codegen_1._) `{missingProperty: ${missingProperty}}`,\n};\nconst def = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, schema, schemaCode, data, $data, it } = cxt;\n const { opts } = it;\n if (!$data && schema.length === 0)\n return;\n const useLoop = schema.length >= opts.loopRequired;\n if (it.allErrors)\n allErrorsMode();\n else\n exitOnErrorMode();\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties;\n const { definedProperties } = cxt.it;\n for (const requiredKey of schema) {\n if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);\n }\n }\n }\n function allErrorsMode() {\n if (useLoop || $data) {\n cxt.block$data(codegen_1.nil, loopAllRequired);\n }\n else {\n for (const prop of schema) {\n (0, code_1.checkReportMissingProp)(cxt, prop);\n }\n }\n }\n function exitOnErrorMode() {\n const missing = gen.let(\"missing\");\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true);\n cxt.block$data(valid, () => loopUntilMissing(missing, valid));\n cxt.ok(valid);\n }\n else {\n gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n function loopAllRequired() {\n gen.forOf(\"prop\", schemaCode, (prop) => {\n cxt.setParams({ missingProperty: prop });\n gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());\n });\n }\n function loopUntilMissing(missing, valid) {\n cxt.setParams({ missingProperty: missing });\n gen.forOf(missing, schemaCode, () => {\n gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error();\n gen.break();\n });\n }, codegen_1.nil);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=required.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to one of the allowed values\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValues: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n if (!$data && schema.length === 0)\n throw new Error(\"enum must have non-empty array\");\n const useLoop = schema.length >= it.opts.loopEnum;\n let eql;\n const getEql = () => (eql !== null && eql !== void 0 ? eql : (eql = (0, util_1.useFunc)(gen, equal_1.default)));\n let valid;\n if (useLoop || $data) {\n valid = gen.let(\"valid\");\n cxt.block$data(valid, loopEnum);\n }\n else {\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const vSchema = gen.const(\"vSchema\", schemaCode);\n valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));\n }\n cxt.pass(valid);\n function loopEnum() {\n gen.assign(valid, false);\n gen.forOf(\"v\", schemaCode, (v) => gen.if((0, codegen_1._) `${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));\n }\n function equalCode(vSchema, i) {\n const sch = schema[i];\n return typeof sch === \"object\" && sch !== null\n ? (0, codegen_1._) `${getEql()}(${data}, ${vSchema}[${i}])`\n : (0, codegen_1._) `${data} === ${sch}`;\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=enum.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst limitNumberExclusive_1 = require(\"./limitNumberExclusive\");\nconst multipleOf_1 = require(\"ajv/dist/vocabularies/validation/multipleOf\");\nconst limitLength_1 = require(\"ajv/dist/vocabularies/validation/limitLength\");\nconst pattern_1 = require(\"ajv/dist/vocabularies/validation/pattern\");\nconst limitProperties_1 = require(\"ajv/dist/vocabularies/validation/limitProperties\");\nconst required_1 = require(\"ajv/dist/vocabularies/validation/required\");\nconst limitItems_1 = require(\"ajv/dist/vocabularies/validation/limitItems\");\nconst uniqueItems_1 = require(\"ajv/dist/vocabularies/validation/uniqueItems\");\nconst const_1 = require(\"ajv/dist/vocabularies/validation/const\");\nconst enum_1 = require(\"ajv/dist/vocabularies/validation/enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n limitNumberExclusive_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAdditionalItems = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"additionalItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { parentSchema, it } = cxt;\n const { items } = parentSchema;\n if (!Array.isArray(items)) {\n (0, util_1.checkStrictMode)(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas');\n return;\n }\n validateAdditionalItems(cxt, items);\n },\n};\nfunction validateAdditionalItems(cxt, items) {\n const { gen, schema, data, keyword, it } = cxt;\n it.items = true;\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n if (schema === false) {\n cxt.setParams({ len: items.length });\n cxt.pass((0, codegen_1._) `${len} <= ${items.length}`);\n }\n else if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.var(\"valid\", (0, codegen_1._) `${len} <= ${items.length}`); // TODO var\n gen.if((0, codegen_1.not)(valid), () => validateItems(valid));\n cxt.ok(valid);\n }\n function validateItems(valid) {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);\n if (!it.allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n });\n }\n}\nexports.validateAdditionalItems = validateAdditionalItems;\nexports.default = def;\n//# sourceMappingURL=additionalItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateTuple = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt) {\n const { schema, it } = cxt;\n if (Array.isArray(schema))\n return validateTuple(cxt, \"additionalItems\", schema);\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nfunction validateTuple(cxt, extraItems, schArr = cxt.schema) {\n const { gen, parentSchema, data, keyword, it } = cxt;\n checkStrictTuple(parentSchema);\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);\n }\n const valid = gen.name(\"valid\");\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n schArr.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n gen.if((0, codegen_1._) `${len} > ${i}`, () => cxt.subschema({\n keyword,\n schemaProp: i,\n dataProp: i,\n }, valid));\n cxt.ok(valid);\n });\n function checkStrictTuple(sch) {\n const { opts, errSchemaPath } = it;\n const l = schArr.length;\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`;\n (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);\n }\n }\n}\nexports.validateTuple = validateTuple;\nexports.default = def;\n//# sourceMappingURL=items.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"property name must be valid\",\n params: ({ params }) => (0, codegen_1._) `{propertyName: ${params.propertyName}}`,\n};\nconst def = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt) {\n const { gen, schema, data, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n const valid = gen.name(\"valid\");\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({ propertyName: key });\n cxt.subschema({\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n }, valid);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.error(true);\n if (!it.allErrors)\n gen.break();\n });\n });\n cxt.ok(valid);\n },\n};\nexports.default = def;\n//# sourceMappingURL=propertyNames.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt) {\n const { gen, schema, it } = cxt;\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n cxt.fail();\n return;\n }\n const valid = gen.name(\"valid\");\n cxt.subschema({\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, valid);\n cxt.failResult(valid, () => cxt.reset(), () => cxt.error());\n },\n error: { message: \"must NOT be valid\" },\n};\nexports.default = def;\n//# sourceMappingURL=not.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst additionalItems_1 = require(\"./additionalItems\");\nconst prefixItems_1 = require(\"./prefixItems\");\nconst items_1 = require(\"./items\");\nconst items2020_1 = require(\"./items2020\");\nconst contains_1 = require(\"./contains\");\nconst dependencies_1 = require(\"./dependencies\");\nconst propertyNames_1 = require(\"./propertyNames\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst properties_1 = require(\"./properties\");\nconst patternProperties_1 = require(\"./patternProperties\");\nconst not_1 = require(\"./not\");\nconst anyOf_1 = require(\"./anyOf\");\nconst oneOf_1 = require(\"./oneOf\");\nconst allOf_1 = require(\"./allOf\");\nconst if_1 = require(\"./if\");\nconst thenElse_1 = require(\"./thenElse\");\nfunction getApplicator(draft2020 = false) {\n const applicator = [\n // any\n not_1.default,\n anyOf_1.default,\n oneOf_1.default,\n allOf_1.default,\n if_1.default,\n thenElse_1.default,\n // object\n propertyNames_1.default,\n additionalProperties_1.default,\n dependencies_1.default,\n properties_1.default,\n patternProperties_1.default,\n ];\n // array\n if (draft2020)\n applicator.push(prefixItems_1.default, items2020_1.default);\n else\n applicator.push(additionalItems_1.default, items_1.default);\n applicator.push(contains_1.default);\n return applicator;\n}\nexports.default = getApplicator;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"ajv/dist/vocabularies/applicator\");\nconst format_1 = require(\"ajv/dist/vocabularies/format\");\nconst metadataVocabulary = [\"title\", \"description\", \"default\"];\nconst draft4Vocabularies = [\n core_1.default,\n validation_1.default,\n applicator_1.default(),\n format_1.default,\n metadataVocabulary,\n];\nexports.default = draft4Vocabularies;\n//# sourceMappingURL=draft4.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, sch === null || sch === void 0 ? void 0 : sch.$ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nconst core_1 = require(\"ajv/dist/core\");\nconst draft4_1 = require(\"./vocabulary/draft4\");\nconst discriminator_1 = require(\"ajv/dist/vocabularies/discriminator\");\nconst draft4MetaSchema = require(\"./refs/json-schema-draft-04.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-04/schema\";\nclass Ajv extends core_1.default {\n constructor(opts = {}) {\n super({\n ...opts,\n schemaId: \"id\",\n });\n }\n _addVocabularies() {\n super._addVocabularies();\n draft4_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft4MetaSchema, META_SUPPORT_DATA)\n : draft4MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nmodule.exports = exports = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar core_2 = require(\"ajv/dist/core\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return core_2.KeywordCxt; } });\nvar core_3 = require(\"ajv/dist/core\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return core_3._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return core_3.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return core_3.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return core_3.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return core_3.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return core_3.CodeGen; } });\n//# sourceMappingURL=index.js.map","/** Determines whether a `thing` is an object for the purposes of RSJF. In this case, `thing` is an object if it has\n * the type `object` but is NOT null, an array or a File.\n *\n * @param thing - The thing to check to see whether it is an object\n * @returns - True if it is a non-null, non-array, non-File object\n */\nexport default function isObject(thing) {\n if (typeof File !== 'undefined' && thing instanceof File) {\n return false;\n }\n if (typeof Date !== 'undefined' && thing instanceof Date) {\n return false;\n }\n return typeof thing === 'object' && thing !== null && !Array.isArray(thing);\n}\n//# sourceMappingURL=isObject.js.map","import isObject from './isObject';\n/** Checks the schema to see if it is allowing additional items, by verifying that `schema.additionalItems` is an\n * object. The user is warned in the console if `schema.additionalItems` has the value `true`.\n *\n * @param schema - The schema object to check\n * @returns - True if additional items is allowed, otherwise false\n */\nexport default function allowAdditionalItems(schema) {\n if (schema.additionalItems === true) {\n console.warn('additionalItems=true is currently not supported');\n }\n return isObject(schema.additionalItems);\n}\n//# sourceMappingURL=allowAdditionalItems.js.map","/** Attempts to convert the string into a number. If an empty string is provided, then `undefined` is returned. If a\n * `null` is provided, it is returned. If the string ends in a `.` then the string is returned because the user may be\n * in the middle of typing a float number. If a number ends in a pattern like `.0`, `.20`, `.030`, string is returned\n * because the user may be typing number that will end in a non-zero digit. Otherwise, the string is wrapped by\n * `Number()` and if that result is not `NaN`, that number will be returned, otherwise the string `value` will be.\n *\n * @param value - The string or null value to convert to a number\n * @returns - The `value` converted to a number when appropriate, otherwise the `value`\n */\nexport default function asNumber(value) {\n if (value === '') {\n return undefined;\n }\n if (value === null) {\n return null;\n }\n if (/\\.$/.test(value)) {\n // '3.' can't really be considered a number even if it parses in js. The\n // user is most likely entering a float.\n return value;\n }\n if (/\\.0$/.test(value)) {\n // we need to return this as a string here, to allow for input like 3.07\n return value;\n }\n if (/\\.\\d*0$/.test(value)) {\n // It's a number, that's cool - but we need it as a string so it doesn't screw\n // with the user when entering dollar amounts or other values (such as those with\n // specific precision or number of significant digits)\n return value;\n }\n const n = Number(value);\n const valid = typeof n === 'number' && !Number.isNaN(n);\n return valid ? n : value;\n}\n//# sourceMappingURL=asNumber.js.map","/** Below are the list of all the keys into various elements of a RJSFSchema or UiSchema that are used by the various\n * utility functions. In addition to those keys, there are the special `ADDITIONAL_PROPERTY_FLAG` and\n * `RJSF_ADDITONAL_PROPERTIES_FLAG` flags that is added to a schema under certain conditions by the `retrieveSchema()`\n * utility.\n */\nexport const ADDITIONAL_PROPERTY_FLAG = '__additional_property';\nexport const ADDITIONAL_PROPERTIES_KEY = 'additionalProperties';\nexport const ALL_OF_KEY = 'allOf';\nexport const ANY_OF_KEY = 'anyOf';\nexport const CONST_KEY = 'const';\nexport const DEFAULT_KEY = 'default';\nexport const DEFINITIONS_KEY = 'definitions';\nexport const DEPENDENCIES_KEY = 'dependencies';\nexport const ENUM_KEY = 'enum';\nexport const ERRORS_KEY = '__errors';\nexport const ID_KEY = '$id';\nexport const IF_KEY = 'if';\nexport const ITEMS_KEY = 'items';\nexport const JUNK_OPTION_ID = '_$junk_option_schema_id$_';\nexport const NAME_KEY = '$name';\nexport const ONE_OF_KEY = 'oneOf';\nexport const PROPERTIES_KEY = 'properties';\nexport const REQUIRED_KEY = 'required';\nexport const SUBMIT_BTN_OPTIONS_KEY = 'submitButtonOptions';\nexport const REF_KEY = '$ref';\nexport const RJSF_ADDITONAL_PROPERTIES_FLAG = '__rjsf_additionalProperties';\nexport const ROOT_SCHEMA_PREFIX = '__rjsf_rootSchema';\nexport const UI_FIELD_KEY = 'ui:field';\nexport const UI_WIDGET_KEY = 'ui:widget';\nexport const UI_OPTIONS_KEY = 'ui:options';\nexport const UI_GLOBAL_OPTIONS_KEY = 'ui:globalOptions';\n//# sourceMappingURL=constants.js.map","import { UI_OPTIONS_KEY, UI_WIDGET_KEY } from './constants';\nimport isObject from './isObject';\n/** Get all passed options from ui:options, and ui:, returning them in an object with the `ui:`\n * stripped off. Any `globalOptions` will always be returned, unless they are overridden by options in the `uiSchema`.\n *\n * @param [uiSchema={}] - The UI Schema from which to get any `ui:xxx` options\n * @param [globalOptions={}] - The optional Global UI Schema from which to get any fallback `xxx` options\n * @returns - An object containing all the `ui:xxx` options with the `ui:` stripped off along with all `globalOptions`\n */\nexport default function getUiOptions(uiSchema = {}, globalOptions = {}) {\n return Object.keys(uiSchema)\n .filter((key) => key.indexOf('ui:') === 0)\n .reduce((options, key) => {\n const value = uiSchema[key];\n if (key === UI_WIDGET_KEY && isObject(value)) {\n console.error('Setting options via ui:widget object is no longer supported, use ui:options instead');\n return options;\n }\n if (key === UI_OPTIONS_KEY && isObject(value)) {\n return { ...options, ...value };\n }\n return { ...options, [key.substring(3)]: value };\n }, { ...globalOptions });\n}\n//# sourceMappingURL=getUiOptions.js.map","import getUiOptions from './getUiOptions';\n/** Checks whether the field described by `schema`, having the `uiSchema` and `formData` supports expanding. The UI for\n * the field can expand if it has additional properties, is not forced as non-expandable by the `uiSchema` and the\n * `formData` object doesn't already have `schema.maxProperties` elements.\n *\n * @param schema - The schema for the field that is being checked\n * @param [uiSchema={}] - The uiSchema for the field\n * @param [formData] - The formData for the field\n * @returns - True if the schema element has additionalProperties, is expandable, and not at the maxProperties limit\n */\nexport default function canExpand(schema, uiSchema = {}, formData) {\n if (!schema.additionalProperties) {\n return false;\n }\n const { expandable = true } = getUiOptions(uiSchema);\n if (expandable === false) {\n return expandable;\n }\n // if ui:options.expandable was not explicitly set to false, we can add\n // another property if we have not exceeded maxProperties yet\n if (schema.maxProperties !== undefined && formData) {\n return Object.keys(formData).length < schema.maxProperties;\n }\n return true;\n}\n//# sourceMappingURL=canExpand.js.map","/**\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\nmodule.exports = overArg;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = isPlainObject;\n","import isPlainObject from 'lodash/isPlainObject';\nimport { ERRORS_KEY } from './constants';\n/** Given a `formData` object, recursively creates a `FormValidation` error handling structure around it\n *\n * @param formData - The form data around which the error handler is created\n * @returns - A `FormValidation` object based on the `formData` structure\n */\nexport default function createErrorHandler(formData) {\n const handler = {\n // We store the list of errors for this node in a property named __errors\n // to avoid name collision with a possible sub schema field named\n // 'errors' (see `utils.toErrorSchema`).\n [ERRORS_KEY]: [],\n addError(message) {\n this[ERRORS_KEY].push(message);\n },\n };\n if (Array.isArray(formData)) {\n return formData.reduce((acc, value, key) => {\n return { ...acc, [key]: createErrorHandler(value) };\n }, handler);\n }\n if (isPlainObject(formData)) {\n const formObject = formData;\n return Object.keys(formObject).reduce((acc, key) => {\n return { ...acc, [key]: createErrorHandler(formObject[key]) };\n }, handler);\n }\n return handler;\n}\n//# sourceMappingURL=createErrorHandler.js.map","var ListCache = require('./_ListCache');\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\nmodule.exports = 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\nmodule.exports = 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\nmodule.exports = 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\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\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\nmodule.exports = stackSet;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\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\nmodule.exports = Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\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 cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\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\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\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\nmodule.exports = arrayPush;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\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\nmodule.exports = baseGetAllKeys;\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\nmodule.exports = arrayFilter;\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\nmodule.exports = stubArray;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\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\nmodule.exports = getSymbols;\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\nmodule.exports = baseTimes;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = baseIsArguments;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = isArguments;\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\nmodule.exports = stubFalse;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\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\nmodule.exports = isBuffer;\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\nmodule.exports = isIndex;\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\nmodule.exports = isLength;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = 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\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = nodeUtil;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\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\nmodule.exports = isTypedArray;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\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\nmodule.exports = arrayLikeKeys;\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\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\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\nmodule.exports = baseKeys;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\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\nmodule.exports = isArrayLike;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\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\nmodule.exports = keys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\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\nmodule.exports = getAllKeys;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\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 * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\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\nmodule.exports = getTag;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\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 * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\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 * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n}\n\nmodule.exports = isEqualWith;\n","import isEqualWith from 'lodash/isEqualWith';\n/** Implements a deep equals using the `lodash.isEqualWith` function, that provides a customized comparator that\n * assumes all functions are equivalent.\n *\n * @param a - The first element to compare\n * @param b - The second element to compare\n * @returns - True if the `a` and `b` are deeply equal, false otherwise\n */\nexport default function deepEquals(a, b) {\n return isEqualWith(a, b, (obj, other) => {\n if (typeof obj === 'function' && typeof other === 'function') {\n // Assume all functions are equivalent\n // see https://github.com/rjsf-team/react-jsonschema-form/issues/255\n return true;\n }\n return undefined; // fallback to default isEquals behavior\n });\n}\n//# sourceMappingURL=deepEquals.js.map","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\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 `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\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 empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var hasExcape = /~/\nvar escapeMatcher = /~[01]/g\nfunction escapeReplacer (m) {\n switch (m) {\n case '~1': return '/'\n case '~0': return '~'\n }\n throw new Error('Invalid tilde escape: ' + m)\n}\n\nfunction untilde (str) {\n if (!hasExcape.test(str)) return str\n return str.replace(escapeMatcher, escapeReplacer)\n}\n\nfunction setter (obj, pointer, value) {\n var part\n var hasNextPart\n\n for (var p = 1, len = pointer.length; p < len;) {\n if (pointer[p] === 'constructor' || pointer[p] === 'prototype' || pointer[p] === '__proto__') return obj\n\n part = untilde(pointer[p++])\n hasNextPart = len > p\n\n if (typeof obj[part] === 'undefined') {\n // support setting of /-\n if (Array.isArray(obj) && part === '-') {\n part = obj.length\n }\n\n // support nested objects/array when setting values\n if (hasNextPart) {\n if ((pointer[p] !== '' && pointer[p] < Infinity) || pointer[p] === '-') obj[part] = []\n else obj[part] = {}\n }\n }\n\n if (!hasNextPart) break\n obj = obj[part]\n }\n\n var oldValue = obj[part]\n if (value === undefined) delete obj[part]\n else obj[part] = value\n return oldValue\n}\n\nfunction compilePointer (pointer) {\n if (typeof pointer === 'string') {\n pointer = pointer.split('/')\n if (pointer[0] === '') return pointer\n throw new Error('Invalid JSON pointer.')\n } else if (Array.isArray(pointer)) {\n for (const part of pointer) {\n if (typeof part !== 'string' && typeof part !== 'number') {\n throw new Error('Invalid JSON pointer. Must be of type string or number.')\n }\n }\n return pointer\n }\n\n throw new Error('Invalid JSON pointer.')\n}\n\nfunction get (obj, pointer) {\n if (typeof obj !== 'object') throw new Error('Invalid input object.')\n pointer = compilePointer(pointer)\n var len = pointer.length\n if (len === 1) return obj\n\n for (var p = 1; p < len;) {\n obj = obj[untilde(pointer[p++])]\n if (len === p) return obj\n if (typeof obj !== 'object' || obj === null) return undefined\n }\n}\n\nfunction set (obj, pointer, value) {\n if (typeof obj !== 'object') throw new Error('Invalid input object.')\n pointer = compilePointer(pointer)\n if (pointer.length === 0) throw new Error('Invalid JSON pointer for set.')\n return setter(obj, pointer, value)\n}\n\nfunction compile (pointer) {\n var compiled = compilePointer(pointer)\n return {\n get: function (object) {\n return get(object, compiled)\n },\n set: function (object, value) {\n return set(object, compiled, value)\n }\n }\n}\n\nexports.get = get\nexports.set = set\nexports.compile = compile\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\nmodule.exports = arrayEach;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var defineProperty = require('./_defineProperty');\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\nmodule.exports = baseAssignValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\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\nmodule.exports = assignValue;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\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\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\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\nmodule.exports = baseAssign;\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\nmodule.exports = nativeKeysIn;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\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\nmodule.exports = baseKeysIn;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\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\nmodule.exports = keysIn;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\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\nmodule.exports = baseAssignIn;\n","var root = require('./_root');\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\nmodule.exports = cloneBuffer;\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\nmodule.exports = copyArray;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\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\nmodule.exports = copySymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\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\nmodule.exports = getSymbolsIn;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\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\nmodule.exports = copySymbolsIn;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\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\nmodule.exports = getAllKeysIn;\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\nmodule.exports = initCloneArray;\n","var Uint8Array = require('./_Uint8Array');\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\nmodule.exports = cloneArrayBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\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\nmodule.exports = cloneDataView;\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\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\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\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\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\nmodule.exports = cloneTypedArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\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\nmodule.exports = initCloneByTag;\n","var isObject = require('./isObject');\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\nmodule.exports = baseCreate;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\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\nmodule.exports = initCloneObject;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = baseIsMap;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\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\nmodule.exports = isMap;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = baseIsSet;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\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\nmodule.exports = isSet;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\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\nmodule.exports = baseClone;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\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/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n","import jsonpointer from 'jsonpointer';\nimport omit from 'lodash/omit';\nimport { REF_KEY } from './constants';\n/** Splits out the value at the `key` in `object` from the `object`, returning an array that contains in the first\n * location, the `object` minus the `key: value` and in the second location the `value`.\n *\n * @param key - The key from the object to extract\n * @param object - The object from which to extract the element\n * @returns - An array with the first value being the object minus the `key` element and the second element being the\n * value from `object[key]`\n */\nexport function splitKeyElementFromObject(key, object) {\n const value = object[key];\n const remaining = omit(object, [key]);\n return [remaining, value];\n}\n/** Given the name of a `$ref` from within a schema, using the `rootSchema`, recursively look up and return the\n * sub-schema using the path provided by that reference. If `#` is not the first character of the reference, the path\n * does not exist in the schema, or the reference resolves circularly back to itself, then throw an Error.\n * Otherwise return the sub-schema. Also deals with nested `$ref`s in the sub-schema.\n *\n * @param $ref - The ref string for which the schema definition is desired\n * @param [rootSchema={}] - The root schema in which to search for the definition\n * @param recurseList - List of $refs already resolved to prevent recursion\n * @returns - The sub-schema within the `rootSchema` which matches the `$ref` if it exists\n * @throws - Error indicating that no schema for that reference could be resolved\n */\nexport function findSchemaDefinitionRecursive($ref, rootSchema = {}, recurseList = []) {\n const ref = $ref || '';\n let decodedRef;\n if (ref.startsWith('#')) {\n // Decode URI fragment representation.\n decodedRef = decodeURIComponent(ref.substring(1));\n }\n else {\n throw new Error(`Could not find a definition for ${$ref}.`);\n }\n const current = jsonpointer.get(rootSchema, decodedRef);\n if (current === undefined) {\n throw new Error(`Could not find a definition for ${$ref}.`);\n }\n const nextRef = current[REF_KEY];\n if (nextRef) {\n // Check for circular references.\n if (recurseList.includes(nextRef)) {\n if (recurseList.length === 1) {\n throw new Error(`Definition for ${$ref} is a circular reference`);\n }\n const [firstRef, ...restRefs] = recurseList;\n const circularPath = [...restRefs, ref, firstRef].join(' -> ');\n throw new Error(`Definition for ${firstRef} contains a circular reference through ${circularPath}`);\n }\n const [remaining, theRef] = splitKeyElementFromObject(REF_KEY, current);\n const subSchema = findSchemaDefinitionRecursive(theRef, rootSchema, [...recurseList, ref]);\n if (Object.keys(remaining).length > 0) {\n return { ...remaining, ...subSchema };\n }\n return subSchema;\n }\n return current;\n}\n/** Given the name of a `$ref` from within a schema, using the `rootSchema`, look up and return the sub-schema using the\n * path provided by that reference. If `#` is not the first character of the reference, the path does not exist in\n * the schema, or the reference resolves circularly back to itself, then throw an Error. Otherwise return the\n * sub-schema. Also deals with nested `$ref`s in the sub-schema.\n *\n * @param $ref - The ref string for which the schema definition is desired\n * @param [rootSchema={}] - The root schema in which to search for the definition\n * @returns - The sub-schema within the `rootSchema` which matches the `$ref` if it exists\n * @throws - Error indicating that no schema for that reference could be resolved\n */\nexport default function findSchemaDefinition($ref, rootSchema = {}) {\n const recurseList = [];\n return findSchemaDefinitionRecursive($ref, rootSchema, recurseList);\n}\n//# sourceMappingURL=findSchemaDefinition.js.map","/** 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 `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nmodule.exports = baseHas;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\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 number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","/**\n * A specialized version of `_.reduce` 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 * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseReduce;\n","var arrayReduce = require('./_arrayReduce'),\n baseEach = require('./_baseEach'),\n baseIteratee = require('./_baseIteratee'),\n baseReduce = require('./_baseReduce'),\n isArray = require('./isArray');\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nmodule.exports = reduce;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTimes = require('./_baseTimes'),\n castFunction = require('./_castFunction'),\n toInteger = require('./toInteger');\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Invokes the iteratee `n` times, returning an array of the results of\n * each invocation. The iteratee is invoked with one argument; (index).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.times(3, String);\n * // => ['0', '1', '2']\n *\n * _.times(4, _.constant(0));\n * // => [0, 0, 0, 0]\n */\nfunction times(n, iteratee) {\n n = toInteger(n);\n if (n < 1 || n > MAX_SAFE_INTEGER) {\n return [];\n }\n var index = MAX_ARRAY_LENGTH,\n length = nativeMin(n, MAX_ARRAY_LENGTH);\n\n iteratee = castFunction(iteratee);\n n -= MAX_ARRAY_LENGTH;\n\n var result = baseTimes(length, iteratee);\n while (++index < n) {\n iteratee(index);\n }\n return result;\n}\n\nmodule.exports = times;\n","import get from 'lodash/get';\nimport { PROPERTIES_KEY } from './constants';\n/** Compares the value of `discriminatorField` within `formData` against the value of `discriminatorField` within schema for each `option`.\n * Returns index of first `option` whose discriminator matches formData. Returns `undefined` if there is no match.\n * This function does not work with discriminators of `\"type\": \"object\"` and `\"type\": \"array\"`\n *\n * @param formData - The current formData, if any, used to figure out a match\n * @param options - The list of options to find a matching options from\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the matched option or undefined if there is no match\n */\nexport default function getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField) {\n var _a;\n if (formData && discriminatorField) {\n const value = get(formData, discriminatorField);\n if (value === undefined) {\n return;\n }\n for (let i = 0; i < options.length; i++) {\n const option = options[i];\n const discriminator = get(option, [PROPERTIES_KEY, discriminatorField], {});\n if (discriminator.type === 'object' || discriminator.type === 'array') {\n continue;\n }\n if (discriminator.const === value) {\n return i;\n }\n if ((_a = discriminator.enum) === null || _a === void 0 ? void 0 : _a.includes(value)) {\n return i;\n }\n }\n }\n return;\n}\n//# sourceMappingURL=getOptionMatchingSimpleDiscriminator.js.map","import get from 'lodash/get';\nimport has from 'lodash/has';\nimport isNumber from 'lodash/isNumber';\nimport { PROPERTIES_KEY } from '../constants';\nimport getOptionMatchingSimpleDiscriminator from '../getOptionMatchingSimpleDiscriminator';\n/** Given the `formData` and list of `options`, attempts to find the index of the option that best matches the data.\n * Deprecated, use `getFirstMatchingOption()` instead.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param formData - The current formData, if any, used to figure out a match\n * @param options - The list of options to find a matching options from\n * @param rootSchema - The root schema, used to primarily to look up `$ref`s\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the matched option or 0 if none is available\n * @deprecated\n */\nexport default function getMatchingOption(validator, formData, options, rootSchema, discriminatorField) {\n // For performance, skip validating subschemas if formData is undefined. We just\n // want to get the first option in that case.\n if (formData === undefined) {\n return 0;\n }\n const simpleDiscriminatorMatch = getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField);\n if (isNumber(simpleDiscriminatorMatch)) {\n return simpleDiscriminatorMatch;\n }\n for (let i = 0; i < options.length; i++) {\n const option = options[i];\n // If we have a discriminator field, then we will use this to make the determination\n if (discriminatorField && has(option, [PROPERTIES_KEY, discriminatorField])) {\n const value = get(formData, discriminatorField);\n const discriminator = get(option, [PROPERTIES_KEY, discriminatorField], {});\n if (validator.isValid(discriminator, value, rootSchema)) {\n return i;\n }\n }\n else if (option[PROPERTIES_KEY]) {\n // If the schema describes an object then we need to add slightly more\n // strict matching to the schema, because unless the schema uses the\n // \"requires\" keyword, an object will match the schema as long as it\n // doesn't have matching keys with a conflicting type. To do this we use an\n // \"anyOf\" with an array of requires. This augmentation expresses that the\n // schema should match if any of the keys in the schema are present on the\n // object and pass validation.\n //\n // Create an \"anyOf\" schema that requires at least one of the keys in the\n // \"properties\" object\n const requiresAnyOf = {\n anyOf: Object.keys(option[PROPERTIES_KEY]).map((key) => ({\n required: [key],\n })),\n };\n let augmentedSchema;\n // If the \"anyOf\" keyword already exists, wrap the augmentation in an \"allOf\"\n if (option.anyOf) {\n // Create a shallow clone of the option\n const { ...shallowClone } = option;\n if (!shallowClone.allOf) {\n shallowClone.allOf = [];\n }\n else {\n // If \"allOf\" already exists, shallow clone the array\n shallowClone.allOf = shallowClone.allOf.slice();\n }\n shallowClone.allOf.push(requiresAnyOf);\n augmentedSchema = shallowClone;\n }\n else {\n augmentedSchema = Object.assign({}, option, requiresAnyOf);\n }\n // Remove the \"required\" field as it's likely that not all fields have\n // been filled in yet, which will mean that the schema is not valid\n delete augmentedSchema.required;\n if (validator.isValid(augmentedSchema, formData, rootSchema)) {\n return i;\n }\n }\n else if (validator.isValid(option, formData, rootSchema)) {\n return i;\n }\n }\n return 0;\n}\n//# sourceMappingURL=getMatchingOption.js.map","import getMatchingOption from './getMatchingOption';\n/** Given the `formData` and list of `options`, attempts to find the index of the first option that matches the data.\n * Always returns the first option if there is nothing that matches.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param formData - The current formData, if any, used to figure out a match\n * @param options - The list of options to find a matching options from\n * @param rootSchema - The root schema, used to primarily to look up `$ref`s\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the first matched option or 0 if none is available\n */\nexport default function getFirstMatchingOption(validator, formData, options, rootSchema, discriminatorField) {\n return getMatchingOption(validator, formData, options, rootSchema, discriminatorField);\n}\n//# sourceMappingURL=getFirstMatchingOption.js.map","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.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 * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\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 (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\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\nmodule.exports = baseSet;\n","var baseSet = require('./_baseSet');\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\nmodule.exports = set;\n","var arrayEach = require('./_arrayEach'),\n baseCreate = require('./_baseCreate'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee'),\n getPrototype = require('./_getPrototype'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isTypedArray = require('./isTypedArray');\n\n/**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\nfunction transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = baseIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n}\n\nmodule.exports = transform;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\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 assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\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 safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var baseFlatten = require('./_baseFlatten');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var baseClone = require('./_baseClone');\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\nmodule.exports = cloneDeep;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\nfunction uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n}\n\nmodule.exports = uniqWith;\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\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 own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nmodule.exports = defaults;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\n","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\nvar intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n});\n\nmodule.exports = intersectionWith;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or 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 boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","var isEqual = require('lodash/isEqual')\nvar sortBy = require('lodash/sortBy')\nvar uniq = require('lodash/uniq')\nvar uniqWith = require('lodash/uniqWith')\nvar defaults = require('lodash/defaults')\nvar intersectionWith = require('lodash/intersectionWith')\nvar isPlainObject = require('lodash/isPlainObject')\nvar isBoolean = require('lodash/isBoolean')\n\nvar normalizeArray = val => Array.isArray(val)\n ? val : [val]\nvar undef = val => val === undefined\nvar keys = obj => isPlainObject(obj) || Array.isArray(obj) ? Object.keys(obj) : []\nvar has = (obj, key) => obj.hasOwnProperty(key)\nvar stringArray = arr => sortBy(uniq(arr))\nvar undefEmpty = val => undef(val) || (Array.isArray(val) && val.length === 0)\nvar keyValEqual = (a, b, key, compare) => b && has(b, key) && a && has(a, key) && compare(a[key], b[key])\nvar undefAndZero = (a, b) => (undef(a) && b === 0) || (undef(b) && a === 0) || isEqual(a, b)\nvar falseUndefined = (a, b) => (undef(a) && b === false) || (undef(b) && a === false) || isEqual(a, b)\nvar emptySchema = schema => undef(schema) || isEqual(schema, {}) || schema === true\nvar emptyObjUndef = schema => undef(schema) || isEqual(schema, {})\nvar isSchema = val => undef(val) || isPlainObject(val) || val === true || val === false\n\nfunction undefArrayEqual(a, b) {\n if (undefEmpty(a) && undefEmpty(b)) {\n return true\n } else {\n return isEqual(stringArray(a), stringArray(b))\n }\n}\n\nfunction unsortedNormalizedArray(a, b) {\n a = normalizeArray(a)\n b = normalizeArray(b)\n return isEqual(stringArray(a), stringArray(b))\n}\n\nfunction schemaGroup(a, b, key, compare) {\n var allProps = uniq(keys(a).concat(keys(b)))\n if (emptyObjUndef(a) && emptyObjUndef(b)) {\n return true\n } else if (emptyObjUndef(a) && keys(b).length) {\n return false\n } else if (emptyObjUndef(b) && keys(a).length) {\n return false\n }\n\n return allProps.every(function(key) {\n var aVal = a[key]\n var bVal = b[key]\n if (Array.isArray(aVal) && Array.isArray(bVal)) {\n return isEqual(stringArray(a), stringArray(b))\n } else if (Array.isArray(aVal) && !Array.isArray(bVal)) {\n return false\n } else if (Array.isArray(bVal) && !Array.isArray(aVal)) {\n return false\n }\n return keyValEqual(a, b, key, compare)\n })\n}\n\nfunction items(a, b, key, compare) {\n if (isPlainObject(a) && isPlainObject(b)) {\n return compare(a, b)\n } else if (Array.isArray(a) && Array.isArray(b)) {\n return schemaGroup(a, b, key, compare)\n } else {\n return isEqual(a, b)\n }\n}\n\nfunction unsortedArray(a, b, key, compare) {\n var uniqueA = uniqWith(a, compare)\n var uniqueB = uniqWith(b, compare)\n var inter = intersectionWith(uniqueA, uniqueB, compare)\n return inter.length === Math.max(uniqueA.length, uniqueB.length)\n}\n\nvar comparers = {\n title: isEqual,\n uniqueItems: falseUndefined,\n minLength: undefAndZero,\n minItems: undefAndZero,\n minProperties: undefAndZero,\n required: undefArrayEqual,\n enum: undefArrayEqual,\n type: unsortedNormalizedArray,\n items: items,\n anyOf: unsortedArray,\n allOf: unsortedArray,\n oneOf: unsortedArray,\n properties: schemaGroup,\n patternProperties: schemaGroup,\n dependencies: schemaGroup\n}\n\nvar acceptsUndefined = [\n 'properties',\n 'patternProperties',\n 'dependencies',\n 'uniqueItems',\n 'minLength',\n 'minItems',\n 'minProperties',\n 'required'\n]\n\nvar schemaProps = ['additionalProperties', 'additionalItems', 'contains', 'propertyNames', 'not']\n\nfunction compare(a, b, options) {\n options = defaults(options, {\n ignore: []\n })\n\n if (emptySchema(a) && emptySchema(b)) {\n return true\n }\n\n if (!isSchema(a) || !isSchema(b)) {\n throw new Error('Either of the values are not a JSON schema.')\n }\n if (a === b) {\n return true\n }\n\n if (isBoolean(a) && isBoolean(b)) {\n return a === b\n }\n\n if ((a === undefined && b === false) || (b === undefined && a === false)) {\n return false\n }\n\n if ((undef(a) && !undef(b)) || (!undef(a) && undef(b))) {\n return false\n }\n\n var allKeys = uniq(Object.keys(a).concat(Object.keys(b)))\n\n if (options.ignore.length) {\n allKeys = allKeys.filter(k => options.ignore.indexOf(k) === -1)\n }\n\n if (!allKeys.length) {\n return true\n }\n\n function innerCompare(a, b) {\n return compare(a, b, options)\n }\n\n return allKeys.every(function(key) {\n var aValue = a[key]\n var bValue = b[key]\n\n if (schemaProps.indexOf(key) !== -1) {\n return compare(aValue, bValue, options)\n }\n\n var comparer = comparers[key]\n if (!comparer) {\n comparer = isEqual\n }\n\n // do simple lodash check first\n if (isEqual(aValue, bValue)) {\n return true\n }\n\n if (acceptsUndefined.indexOf(key) === -1) {\n if ((!has(a, key) && has(b, key)) || (has(a, key) && !has(b, key))) {\n return aValue === bValue\n }\n }\n\n var result = comparer(aValue, bValue, key, innerCompare)\n if (!isBoolean(result)) {\n throw new Error('Comparer must return true or false')\n }\n return result\n })\n}\n\nmodule.exports = compare\n","'use strict';\n\n/**\n* FUNCTION: isArray( value )\n*\tValidates if a value is an array.\n*\n* @param {*} value - value to be validated\n* @returns {Boolean} boolean indicating whether value is an array\n*/\nfunction isArray( value ) {\n\treturn Object.prototype.toString.call( value ) === '[object Array]';\n} // end FUNCTION isArray()\n\n// EXPORTS //\n\nmodule.exports = Array.isArray || isArray;\n","/**\n*\n*\tVALIDATE: number\n*\n*\n*\tDESCRIPTION:\n*\t\t- Validates if a value is a number.\n*\n*\n*\tNOTES:\n*\t\t[1]\n*\n*\n*\tTODO:\n*\t\t[1]\n*\n*\n*\tLICENSE:\n*\t\tMIT\n*\n*\tCopyright (c) 2014. Athan Reines.\n*\n*\n*\tAUTHOR:\n*\t\tAthan Reines. kgryte@gmail.com. 2014.\n*\n*/\n\n'use strict';\n\n/**\n* FUNCTION: isNumber( value )\n*\tValidates if a value is a number.\n*\n* @param {*} value - value to be validated\n* @returns {Boolean} boolean indicating whether value is a number\n*/\nfunction isNumber( value ) {\n\treturn ( typeof value === 'number' || Object.prototype.toString.call( value ) === '[object Number]' ) && value.valueOf() === value.valueOf();\n} // end FUNCTION isNumber()\n\n\n// EXPORTS //\n\nmodule.exports = isNumber;\n","/**\n*\n*\tVALIDATE: integer\n*\n*\n*\tDESCRIPTION:\n*\t\t- Validates if a value is an integer.\n*\n*\n*\tNOTES:\n*\t\t[1]\n*\n*\n*\tTODO:\n*\t\t[1]\n*\n*\n*\tLICENSE:\n*\t\tMIT\n*\n*\tCopyright (c) 2014. Athan Reines.\n*\n*\n*\tAUTHOR:\n*\t\tAthan Reines. kgryte@gmail.com. 2014.\n*\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isNumber = require( 'validate.io-number' );\n\n\n// ISINTEGER //\n\n/**\n* FUNCTION: isInteger( value )\n*\tValidates if a value is an integer.\n*\n* @param {Number} value - value to be validated\n* @returns {Boolean} boolean indicating whether value is an integer\n*/\nfunction isInteger( value ) {\n\treturn isNumber( value ) && value%1 === 0;\n} // end FUNCTION isInteger()\n\n\n// EXPORTS //\n\nmodule.exports = isInteger;\n","/**\n*\n*\tVALIDATE: integer-array\n*\n*\n*\tDESCRIPTION:\n*\t\t- Validates if a value is an integer array.\n*\n*\n*\tNOTES:\n*\t\t[1]\n*\n*\n*\tTODO:\n*\t\t[1]\n*\n*\n*\tLICENSE:\n*\t\tMIT\n*\n*\tCopyright (c) 2015. Athan Reines.\n*\n*\n*\tAUTHOR:\n*\t\tAthan Reines. kgryte@gmail.com. 2015.\n*\n*/\n\n'use strict';\n\n// MODULES //\n\nvar isArray = require( 'validate.io-array' ),\n\tisInteger = require( 'validate.io-integer' );\n\n\n// IS INTEGER ARRAY //\n\n/**\n* FUNCTION: isIntegerArray( value )\n*\tValidates if a value is an integer array.\n*\n* @param {*} value - value to be validated\n* @returns {Boolean} boolean indicating if a value is an integer array\n*/\nfunction isIntegerArray( value ) {\n\tvar len;\n\tif ( !isArray( value ) ) {\n\t\treturn false;\n\t}\n\tlen = value.length;\n\tif ( !len ) {\n\t\treturn false;\n\t}\n\tfor ( var i = 0; i < len; i++ ) {\n\t\tif ( !isInteger( value[i] ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n} // end FUNCTION isIntegerArray()\n\n\n// EXPORTS //\n\nmodule.exports = isIntegerArray;\n","/**\n*\n*\tVALIDATE: function\n*\n*\n*\tDESCRIPTION:\n*\t\t- Validates if a value is a function.\n*\n*\n*\tNOTES:\n*\t\t[1]\n*\n*\n*\tTODO:\n*\t\t[1]\n*\n*\n*\tLICENSE:\n*\t\tMIT\n*\n*\tCopyright (c) 2014. Athan Reines.\n*\n*\n*\tAUTHOR:\n*\t\tAthan Reines. kgryte@gmail.com. 2014.\n*\n*/\n\n'use strict';\n\n/**\n* FUNCTION: isFunction( value )\n*\tValidates if a value is a function.\n*\n* @param {*} value - value to be validated\n* @returns {Boolean} boolean indicating whether value is a function\n*/\nfunction isFunction( value ) {\n\treturn ( typeof value === 'function' );\n} // end FUNCTION isFunction()\n\n\n// EXPORTS //\n\nmodule.exports = isFunction;\n","'use strict';\n\n// MODULES //\n\nvar isArray = require( 'validate.io-array' ),\n\tisIntegerArray = require( 'validate.io-integer-array' ),\n\tisFunction = require( 'validate.io-function' );\n\n\n// VARIABLES //\n\nvar MAXINT = Math.pow( 2, 31 ) - 1;\n\n\n// FUNCTIONS //\n\n/**\n* FUNCTION: gcd( a, b )\n*\tComputes the greatest common divisor of two integers `a` and `b`, using the binary GCD algorithm.\n*\n* @param {Number} a - integer\n* @param {Number} b - integer\n* @returns {Number} greatest common divisor\n*/\nfunction gcd( a, b ) {\n\tvar k = 1,\n\t\tt;\n\t// Simple cases:\n\tif ( a === 0 ) {\n\t\treturn b;\n\t}\n\tif ( b === 0 ) {\n\t\treturn a;\n\t}\n\t// Reduce `a` and/or `b` to odd numbers and keep track of the greatest power of 2 dividing both `a` and `b`...\n\twhile ( a%2 === 0 && b%2 === 0 ) {\n\t\ta = a / 2; // right shift\n\t\tb = b / 2; // right shift\n\t\tk = k * 2; // left shift\n\t}\n\t// Reduce `a` to an odd number...\n\twhile ( a%2 === 0 ) {\n\t\ta = a / 2; // right shift\n\t}\n\t// Henceforth, `a` is always odd...\n\twhile ( b ) {\n\t\t// Remove all factors of 2 in `b`, as they are not common...\n\t\twhile ( b%2 === 0 ) {\n\t\t\tb = b / 2; // right shift\n\t\t}\n\t\t// `a` and `b` are both odd. Swap values such that `b` is the larger of the two values, and then set `b` to the difference (which is even)...\n\t\tif ( a > b ) {\n\t\t\tt = b;\n\t\t\tb = a;\n\t\t\ta = t;\n\t\t}\n\t\tb = b - a; // b=0 iff b=a\n\t}\n\t// Restore common factors of 2...\n\treturn k * a;\n} // end FUNCTION gcd()\n\n/**\n* FUNCTION: bitwise( a, b )\n*\tComputes the greatest common divisor of two integers `a` and `b`, using the binary GCD algorithm and bitwise operations.\n*\n* @param {Number} a - safe integer\n* @param {Number} b - safe integer\n* @returns {Number} greatest common divisor\n*/\nfunction bitwise( a, b ) {\n\tvar k = 0,\n\t\tt;\n\t// Simple cases:\n\tif ( a === 0 ) {\n\t\treturn b;\n\t}\n\tif ( b === 0 ) {\n\t\treturn a;\n\t}\n\t// Reduce `a` and/or `b` to odd numbers and keep track of the greatest power of 2 dividing both `a` and `b`...\n\twhile ( (a & 1) === 0 && (b & 1) === 0 ) {\n\t\ta >>>= 1; // right shift\n\t\tb >>>= 1; // right shift\n\t\tk++;\n\t}\n\t// Reduce `a` to an odd number...\n\twhile ( (a & 1) === 0 ) {\n\t\ta >>>= 1; // right shift\n\t}\n\t// Henceforth, `a` is always odd...\n\twhile ( b ) {\n\t\t// Remove all factors of 2 in `b`, as they are not common...\n\t\twhile ( (b & 1) === 0 ) {\n\t\t\tb >>>= 1; // right shift\n\t\t}\n\t\t// `a` and `b` are both odd. Swap values such that `b` is the larger of the two values, and then set `b` to the difference (which is even)...\n\t\tif ( a > b ) {\n\t\t\tt = b;\n\t\t\tb = a;\n\t\t\ta = t;\n\t\t}\n\t\tb = b - a; // b=0 iff b=a\n\t}\n\t// Restore common factors of 2...\n\treturn a << k;\n} // end FUNCTION bitwise()\n\n\n// GREATEST COMMON DIVISOR //\n\n/**\n* FUNCTION: compute( arr[, clbk] )\n*\tComputes the greatest common divisor.\n*\n* @param {Number[]|Number} arr - input array of integers\n* @param {Function|Number} [clbk] - accessor function for accessing array values\n* @returns {Number|Null} greatest common divisor or null\n*/\nfunction compute() {\n\tvar nargs = arguments.length,\n\t\targs,\n\t\tclbk,\n\t\tarr,\n\t\tlen,\n\t\ta, b,\n\t\ti;\n\n\t// Copy the input arguments to an array...\n\targs = new Array( nargs );\n\tfor ( i = 0; i < nargs; i++ ) {\n\t\targs[ i ] = arguments[ i ];\n\t}\n\t// Have we been provided with integer arguments?\n\tif ( isIntegerArray( args ) ) {\n\t\tif ( nargs === 2 ) {\n\t\t\ta = args[ 0 ];\n\t\t\tb = args[ 1 ];\n\t\t\tif ( a < 0 ) {\n\t\t\t\ta = -a;\n\t\t\t}\n\t\t\tif ( b < 0 ) {\n\t\t\t\tb = -b;\n\t\t\t}\n\t\t\tif ( a <= MAXINT && b <= MAXINT ) {\n\t\t\t\treturn bitwise( a, b );\n\t\t\t} else {\n\t\t\t\treturn gcd( a, b );\n\t\t\t}\n\t\t}\n\t\tarr = args;\n\t}\n\t// If not integers, ensure the first argument is an array...\n\telse if ( !isArray( args[ 0 ] ) ) {\n\t\tthrow new TypeError( 'gcd()::invalid input argument. Must provide an array of integers. Value: `' + args[ 0 ] + '`.' );\n\t}\n\t// Have we been provided with more than one argument? If so, ensure that the accessor argument is a function...\n\telse if ( nargs > 1 ) {\n\t\tarr = args[ 0 ];\n\t\tclbk = args[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( 'gcd()::invalid input argument. Accessor must be a function. Value: `' + clbk + '`.' );\n\t\t}\n\t}\n\t// We have been provided an array...\n\telse {\n\t\tarr = args[ 0 ];\n\t}\n\tlen = arr.length;\n\n\t// Check if a sufficient number of values have been provided...\n\tif ( len < 2 ) {\n\t\treturn null;\n\t}\n\t// If an accessor is provided, extract the array values...\n\tif ( clbk ) {\n\t\ta = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\ta[ i ] = clbk( arr[ i ], i );\n\t\t}\n\t\tarr = a;\n\t}\n\t// Given an input array, ensure all array values are integers...\n\tif ( nargs < 3 ) {\n\t\tif ( !isIntegerArray( arr ) ) {\n\t\t\tthrow new TypeError( 'gcd()::invalid input argument. Accessed array values must be integers. Value: `' + arr + '`.' );\n\t\t}\n\t}\n\t// Convert any negative integers to positive integers...\n\tfor ( i = 0; i < len; i++ ) {\n\t\ta = arr[ i ];\n\t\tif ( a < 0 ) {\n\t\t\tarr[ i ] = -a;\n\t\t}\n\t}\n\t// Exploit the fact that the gcd is an associative function...\n\ta = arr[ 0 ];\n\tfor ( i = 1; i < len; i++ ) {\n\t\tb = arr[ i ];\n\t\tif ( b <= MAXINT && a <= MAXINT ) {\n\t\t\ta = bitwise( a, b );\n\t\t} else {\n\t\t\ta = gcd( a, b );\n\t\t}\n\t}\n\treturn a;\n} // end FUNCTION compute()\n\n\n// EXPORTS //\n\nmodule.exports = compute;\n","'use strict';\n\n// MODULES //\n\nvar gcd = require( 'compute-gcd' ),\n\tisArray = require( 'validate.io-array' ),\n\tisIntegerArray = require( 'validate.io-integer-array' ),\n\tisFunction = require( 'validate.io-function' );\n\n\n// LEAST COMMON MULTIPLE //\n\n/**\n* FUNCTION: lcm( arr[, clbk] )\n*\tComputes the least common multiple (lcm).\n*\n* @param {Number[]|Number} arr - input array of integers\n* @param {Function|Number} [accessor] - accessor function for accessing array values\n* @returns {Number|Null} least common multiple or null\n*/\nfunction lcm() {\n\tvar nargs = arguments.length,\n\t\targs,\n\t\tclbk,\n\t\tarr,\n\t\tlen,\n\t\ta, b,\n\t\ti;\n\n\t// Copy the input arguments to an array...\n\targs = new Array( nargs );\n\tfor ( i = 0; i < nargs; i++ ) {\n\t\targs[ i ] = arguments[ i ];\n\t}\n\t// Have we been provided with integer arguments?\n\tif ( isIntegerArray( args ) ) {\n\t\tif ( nargs === 2 ) {\n\t\t\ta = args[ 0 ];\n\t\t\tb = args[ 1 ];\n\t\t\tif ( a < 0 ) {\n\t\t\t\ta = -a;\n\t\t\t}\n\t\t\tif ( b < 0 ) {\n\t\t\t\tb = -b;\n\t\t\t}\n\t\t\tif ( a === 0 || b === 0 ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn ( a/gcd(a,b) ) * b;\n\t\t}\n\t\tarr = args;\n\t}\n\t// If not integers, ensure that the first argument is an array...\n\telse if ( !isArray( args[ 0 ] ) ) {\n\t\tthrow new TypeError( 'lcm()::invalid input argument. Must provide an array of integers. Value: `' + args[ 0 ] + '`.' );\n\t}\n\t// Have we been provided with more than one argument? If so, ensure that the accessor argument is a function...\n\telse if ( nargs > 1 ) {\n\t\tarr = args[ 0 ];\n\t\tclbk = args[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( 'lcm()::invalid input argument. Accessor must be a function. Value: `' + clbk + '`.' );\n\t\t}\n\t}\n\t// We have been provided an array...\n\telse {\n\t\tarr = args[ 0 ];\n\t}\n\tlen = arr.length;\n\n\t// Check if a sufficient number of values have been provided...\n\tif ( len < 2 ) {\n\t\treturn null;\n\t}\n\t// If an accessor is provided, extract the array values...\n\tif ( clbk ) {\n\t\ta = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\ta[ i ] = clbk( arr[ i ], i );\n\t\t}\n\t\tarr = a;\n\t}\n\t// Given an input array, ensure all array values are integers...\n\tif ( nargs < 3 ) {\n\t\tif ( !isIntegerArray( arr ) ) {\n\t\t\tthrow new TypeError( 'lcm()::invalid input argument. Accessed array values must be integers. Value: `' + arr + '`.' );\n\t\t}\n\t}\n\t// Convert any negative integers to positive integers...\n\tfor ( i = 0; i < len; i++ ) {\n\t\ta = arr[ i ];\n\t\tif ( a < 0 ) {\n\t\t\tarr[ i ] = -a;\n\t\t}\n\t}\n\t// Exploit the fact that the lcm is an associative function...\n\ta = arr[ 0 ];\n\tfor ( i = 1; i < len; i++ ) {\n\t\tb = arr[ i ];\n\t\tif ( a === 0 || b === 0 ) {\n\t\t\treturn 0;\n\t\t}\n\t\ta = ( a/gcd(a,b) ) * b;\n\t}\n\treturn a;\n} // end FUNCTION lcm()\n\n\n// EXPORTS //\n\nmodule.exports = lcm;\n","var baseMerge = require('./_baseMerge'),\n isObject = require('./isObject');\n\n/**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n}\n\nmodule.exports = customDefaultsMerge;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nmodule.exports = mergeWith;\n","var apply = require('./_apply'),\n baseRest = require('./_baseRest'),\n customDefaultsMerge = require('./_customDefaultsMerge'),\n mergeWith = require('./mergeWith');\n\n/**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\nvar defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n});\n\nmodule.exports = defaultsDeep;\n","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n","/**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseIndexOfWith;\n","var arrayMap = require('./_arrayMap'),\n baseIndexOf = require('./_baseIndexOf'),\n baseIndexOfWith = require('./_baseIndexOfWith'),\n baseUnary = require('./_baseUnary'),\n copyArray = require('./_copyArray');\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 * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n}\n\nmodule.exports = basePullAll;\n","var basePullAll = require('./_basePullAll');\n\n/**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\nfunction pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n}\n\nmodule.exports = pullAll;\n","var arrayEach = require('./_arrayEach'),\n baseEach = require('./_baseEach'),\n castFunction = require('./_castFunction'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nmodule.exports = forEach;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","var baseDifference = require('./_baseDifference'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\nvar without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n});\n\nmodule.exports = without;\n","const flatten = require('lodash/flatten')\nconst flattenDeep = require('lodash/flattenDeep')\nconst isPlainObject = require('lodash/isPlainObject')\nconst uniq = require('lodash/uniq')\nconst uniqWith = require('lodash/uniqWith')\nconst without = require('lodash/without')\n\nfunction deleteUndefinedProps(returnObject) {\n // cleanup empty\n for (const prop in returnObject) {\n if (has(returnObject, prop) && isEmptySchema(returnObject[prop])) {\n delete returnObject[prop]\n }\n }\n return returnObject\n}\n\nconst allUniqueKeys = (arr) => uniq(flattenDeep(arr.map(keys)))\nconst getValues = (schemas, key) => schemas.map(schema => schema && schema[key])\nconst has = (obj, propName) => Object.prototype.hasOwnProperty.call(obj, propName)\nconst keys = obj => {\n if (isPlainObject(obj) || Array.isArray(obj)) {\n return Object.keys(obj)\n } else {\n return []\n }\n}\n\nconst notUndefined = (val) => val !== undefined\nconst isSchema = (val) => isPlainObject(val) || val === true || val === false\nconst isEmptySchema = (obj) => (!keys(obj).length) && obj !== false && obj !== true\nconst withoutArr = (arr, ...rest) => without.apply(null, [arr].concat(flatten(rest)))\n\nmodule.exports = {\n allUniqueKeys,\n deleteUndefinedProps,\n getValues,\n has,\n isEmptySchema,\n isSchema,\n keys,\n notUndefined,\n uniqWith,\n withoutArr\n}\n","\nconst compare = require('json-schema-compare')\nconst forEach = require('lodash/forEach')\nconst {\n allUniqueKeys,\n deleteUndefinedProps,\n getValues,\n keys,\n notUndefined,\n uniqWith,\n withoutArr\n} = require('../common')\n\nfunction removeFalseSchemas(target) {\n forEach(target, function(schema, prop) {\n if (schema === false) {\n delete target[prop]\n }\n })\n}\n\nfunction mergeSchemaGroup(group, mergeSchemas) {\n const allKeys = allUniqueKeys(group)\n return allKeys.reduce(function(all, key) {\n const schemas = getValues(group, key)\n const compacted = uniqWith(schemas.filter(notUndefined), compare)\n all[key] = mergeSchemas(compacted, key)\n return all\n }, {})\n}\n\nmodule.exports = {\n keywords: ['properties', 'patternProperties', 'additionalProperties'],\n resolver(values, parents, mergers, options) {\n // first get rid of all non permitted properties\n if (!options.ignoreAdditionalProperties) {\n values.forEach(function(subSchema) {\n const otherSubSchemas = values.filter(s => s !== subSchema)\n const ownKeys = keys(subSchema.properties)\n const ownPatternKeys = keys(subSchema.patternProperties)\n const ownPatterns = ownPatternKeys.map(k => new RegExp(k))\n otherSubSchemas.forEach(function(other) {\n const allOtherKeys = keys(other.properties)\n const keysMatchingPattern = allOtherKeys.filter(k => ownPatterns.some(pk => pk.test(k)))\n const additionalKeys = withoutArr(allOtherKeys, ownKeys, keysMatchingPattern)\n additionalKeys.forEach(function(key) {\n other.properties[key] = mergers.properties([\n other.properties[key], subSchema.additionalProperties\n ], key)\n })\n })\n })\n\n // remove disallowed patternProperties\n values.forEach(function(subSchema) {\n const otherSubSchemas = values.filter(s => s !== subSchema)\n const ownPatternKeys = keys(subSchema.patternProperties)\n if (subSchema.additionalProperties === false) {\n otherSubSchemas.forEach(function(other) {\n const allOtherPatterns = keys(other.patternProperties)\n const additionalPatternKeys = withoutArr(allOtherPatterns, ownPatternKeys)\n additionalPatternKeys.forEach(key => delete other.patternProperties[key])\n })\n }\n })\n }\n\n const returnObject = {\n additionalProperties: mergers.additionalProperties(values.map(s => s.additionalProperties)),\n patternProperties: mergeSchemaGroup(values.map(s => s.patternProperties), mergers.patternProperties),\n properties: mergeSchemaGroup(values.map(s => s.properties), mergers.properties)\n }\n\n if (returnObject.additionalProperties === false) {\n removeFalseSchemas(returnObject.properties)\n }\n\n return deleteUndefinedProps(returnObject)\n }\n}\n","\nconst compare = require('json-schema-compare')\nconst forEach = require('lodash/forEach')\nconst {\n allUniqueKeys,\n deleteUndefinedProps,\n has,\n isSchema,\n notUndefined,\n uniqWith\n} = require('../common')\n\nfunction removeFalseSchemasFromArray(target) {\n forEach(target, function(schema, index) {\n if (schema === false) {\n target.splice(index, 1)\n }\n })\n}\n\nfunction getItemSchemas(subSchemas, key) {\n return subSchemas.map(function(sub) {\n if (!sub) {\n return undefined\n }\n\n if (Array.isArray(sub.items)) {\n const schemaAtPos = sub.items[key]\n if (isSchema(schemaAtPos)) {\n return schemaAtPos\n } else if (has(sub, 'additionalItems')) {\n return sub.additionalItems\n }\n } else {\n return sub.items\n }\n\n return undefined\n })\n}\n\nfunction getAdditionalSchemas(subSchemas) {\n return subSchemas.map(function(sub) {\n if (!sub) {\n return undefined\n }\n if (Array.isArray(sub.items)) {\n return sub.additionalItems\n }\n return sub.items\n })\n}\n\n// Provide source when array\nfunction mergeItems(group, mergeSchemas, items) {\n const allKeys = allUniqueKeys(items)\n return allKeys.reduce(function(all, key) {\n const schemas = getItemSchemas(group, key)\n const compacted = uniqWith(schemas.filter(notUndefined), compare)\n all[key] = mergeSchemas(compacted, key)\n return all\n }, [])\n}\n\nmodule.exports = {\n keywords: ['items', 'additionalItems'],\n resolver(values, parents, mergers) {\n // const createSubMerger = groupKey => (schemas, key) => mergeSchemas(schemas, parents.concat(groupKey, key))\n const items = values.map(s => s.items)\n const itemsCompacted = items.filter(notUndefined)\n const returnObject = {}\n\n // if all items keyword values are schemas, we can merge them as simple schemas\n // if not we need to merge them as mixed\n if (itemsCompacted.every(isSchema)) {\n returnObject.items = mergers.items(items)\n } else {\n returnObject.items = mergeItems(values, mergers.items, items)\n }\n\n let schemasAtLastPos\n if (itemsCompacted.every(Array.isArray)) {\n schemasAtLastPos = values.map(s => s.additionalItems)\n } else if (itemsCompacted.some(Array.isArray)) {\n schemasAtLastPos = getAdditionalSchemas(values)\n }\n\n if (schemasAtLastPos) {\n returnObject.additionalItems = mergers.additionalItems(schemasAtLastPos)\n }\n\n if (returnObject.additionalItems === false && Array.isArray(returnObject.items)) {\n removeFalseSchemasFromArray(returnObject.items)\n }\n\n return deleteUndefinedProps(returnObject)\n }\n}\n","const cloneDeep = require('lodash/cloneDeep')\nconst compare = require('json-schema-compare')\nconst computeLcm = require('compute-lcm')\nconst defaultsDeep = require('lodash/defaultsDeep')\nconst flatten = require('lodash/flatten')\nconst flattenDeep = require('lodash/flattenDeep')\nconst intersection = require('lodash/intersection')\nconst intersectionWith = require('lodash/intersectionWith')\nconst isEqual = require('lodash/isEqual')\nconst isPlainObject = require('lodash/isPlainObject')\nconst pullAll = require('lodash/pullAll')\nconst sortBy = require('lodash/sortBy')\nconst uniq = require('lodash/uniq')\nconst uniqWith = require('lodash/uniqWith')\n\nconst propertiesResolver = require('./complex-resolvers/properties')\nconst itemsResolver = require('./complex-resolvers/items')\n\nconst contains = (arr, val) => arr.indexOf(val) !== -1\nconst isSchema = (val) => isPlainObject(val) || val === true || val === false\nconst isFalse = (val) => val === false\nconst isTrue = (val) => val === true\nconst schemaResolver = (compacted, key, mergeSchemas) => mergeSchemas(compacted)\nconst stringArray = (values) => sortBy(uniq(flattenDeep(values)))\nconst notUndefined = (val) => val !== undefined\nconst allUniqueKeys = (arr) => uniq(flattenDeep(arr.map(keys)))\n\n// resolvers\nconst first = compacted => compacted[0]\nconst required = compacted => stringArray(compacted)\nconst maximumValue = compacted => Math.max.apply(Math, compacted)\nconst minimumValue = compacted => Math.min.apply(Math, compacted)\nconst uniqueItems = compacted => compacted.some(isTrue)\nconst examples = compacted => uniqWith(flatten(compacted), isEqual)\n\nfunction compareProp(key) {\n return function(a, b) {\n return compare({\n [key]: a\n }, { [key]: b })\n }\n}\n\nfunction getAllOf(schema) {\n let { allOf = [], ...copy } = schema\n copy = isPlainObject(schema) ? copy : schema // if schema is boolean\n return [copy, ...allOf.map(getAllOf)]\n}\n\nfunction getValues(schemas, key) {\n return schemas.map(schema => schema && schema[key])\n}\n\nfunction tryMergeSchemaGroups(schemaGroups, mergeSchemas) {\n return schemaGroups.map(function(schemas, index) {\n try {\n return mergeSchemas(schemas, index)\n } catch (e) {\n return undefined\n }\n }).filter(notUndefined)\n}\n\nfunction keys(obj) {\n if (isPlainObject(obj) || Array.isArray(obj)) {\n return Object.keys(obj)\n } else {\n return []\n }\n}\n\nfunction getAnyOfCombinations(arrOfArrays, combinations) {\n combinations = combinations || []\n if (!arrOfArrays.length) {\n return combinations\n }\n\n const values = arrOfArrays.slice(0).shift()\n const rest = arrOfArrays.slice(1)\n if (combinations.length) {\n return getAnyOfCombinations(rest, flatten(combinations.map(combination => values.map(item => ([item].concat(combination))))))\n }\n return getAnyOfCombinations(rest, values.map(item => (item)))\n}\n\nfunction throwIncompatible(values, paths) {\n let asJSON\n try {\n asJSON = values.map(function(val) {\n return JSON.stringify(val, null, 2)\n }).join('\\n')\n } catch (variable) {\n asJSON = values.join(', ')\n }\n throw new Error('Could not resolve values for path:\"' + paths.join('.') + '\". They are probably incompatible. Values: \\n' + asJSON)\n}\n\nfunction callGroupResolver(complexKeywords, resolverName, schemas, mergeSchemas, options, parents) {\n if (complexKeywords.length) {\n const resolverConfig = options.complexResolvers[resolverName]\n if (!resolverConfig || !resolverConfig.resolver) {\n throw new Error('No resolver found for ' + resolverName)\n }\n\n // extract all keywords from all the schemas that have one or more\n // then remove all undefined ones and not unique\n const extractedKeywordsOnly = schemas.map(schema => complexKeywords.reduce((all, key) => {\n if (schema[key] !== undefined) all[key] = schema[key]\n return all\n }, {}))\n const unique = uniqWith(extractedKeywordsOnly, compare)\n\n // create mergers that automatically add the path of the keyword for use in the complex resolver\n const mergers = resolverConfig.keywords.reduce((all, key) => ({\n ...all,\n [key]: (schemas, extraKey = []) => mergeSchemas(schemas, null, parents.concat(key, extraKey))\n }), {})\n\n const result = resolverConfig.resolver(unique, parents.concat(resolverName), mergers, options)\n\n if (!isPlainObject(result)) {\n throwIncompatible(unique, parents.concat(resolverName))\n }\n\n return result\n }\n}\n\nfunction createRequiredMetaArray(arr) {\n return { required: arr }\n}\n\nconst schemaGroupProps = ['properties', 'patternProperties', 'definitions', 'dependencies']\nconst schemaArrays = ['anyOf', 'oneOf']\nconst schemaProps = [\n 'additionalProperties',\n 'additionalItems',\n 'contains',\n 'propertyNames',\n 'not',\n 'items'\n]\n\nconst defaultResolvers = {\n type(compacted) {\n if (compacted.some(Array.isArray)) {\n const normalized = compacted.map(function(val) {\n return Array.isArray(val)\n ? val\n : [val]\n })\n const common = intersection.apply(null, normalized)\n\n if (common.length === 1) {\n return common[0]\n } else if (common.length > 1) {\n return uniq(common)\n }\n }\n },\n dependencies(compacted, paths, mergeSchemas) {\n const allChildren = allUniqueKeys(compacted)\n\n return allChildren.reduce(function(all, childKey) {\n const childSchemas = getValues(compacted, childKey)\n let innerCompacted = uniqWith(childSchemas.filter(notUndefined), isEqual)\n\n // to support dependencies\n const innerArrays = innerCompacted.filter(Array.isArray)\n\n if (innerArrays.length) {\n if (innerArrays.length === innerCompacted.length) {\n all[childKey] = stringArray(innerCompacted)\n } else {\n const innerSchemas = innerCompacted.filter(isSchema)\n const arrayMetaScheams = innerArrays.map(createRequiredMetaArray)\n all[childKey] = mergeSchemas(innerSchemas.concat(arrayMetaScheams), childKey)\n }\n return all\n }\n\n innerCompacted = uniqWith(innerCompacted, compare)\n\n all[childKey] = mergeSchemas(innerCompacted, childKey)\n return all\n }, {})\n },\n oneOf(compacted, paths, mergeSchemas) {\n const combinations = getAnyOfCombinations(cloneDeep(compacted))\n const result = tryMergeSchemaGroups(combinations, mergeSchemas)\n const unique = uniqWith(result, compare)\n\n if (unique.length) {\n return unique\n }\n },\n not(compacted) {\n return { anyOf: compacted }\n },\n pattern(compacted) {\n return compacted.map(r => '(?=' + r + ')').join('')\n },\n multipleOf(compacted) {\n let integers = compacted.slice(0)\n let factor = 1\n while (integers.some(n => !Number.isInteger(n))) {\n integers = integers.map(n => n * 10)\n factor = factor * 10\n }\n return computeLcm(integers) / factor\n },\n enum(compacted) {\n const enums = intersectionWith.apply(null, compacted.concat(isEqual))\n if (enums.length) {\n return sortBy(enums)\n }\n }\n}\n\ndefaultResolvers.$id = first\ndefaultResolvers.$ref = first\ndefaultResolvers.$schema = first\ndefaultResolvers.additionalItems = schemaResolver\ndefaultResolvers.additionalProperties = schemaResolver\ndefaultResolvers.anyOf = defaultResolvers.oneOf\ndefaultResolvers.contains = schemaResolver\ndefaultResolvers.default = first\ndefaultResolvers.definitions = defaultResolvers.dependencies\ndefaultResolvers.description = first\ndefaultResolvers.examples = examples\ndefaultResolvers.exclusiveMaximum = minimumValue\ndefaultResolvers.exclusiveMinimum = maximumValue\ndefaultResolvers.items = itemsResolver\ndefaultResolvers.maximum = minimumValue\ndefaultResolvers.maxItems = minimumValue\ndefaultResolvers.maxLength = minimumValue\ndefaultResolvers.maxProperties = minimumValue\ndefaultResolvers.minimum = maximumValue\ndefaultResolvers.minItems = maximumValue\ndefaultResolvers.minLength = maximumValue\ndefaultResolvers.minProperties = maximumValue\ndefaultResolvers.properties = propertiesResolver\ndefaultResolvers.propertyNames = schemaResolver\ndefaultResolvers.required = required\ndefaultResolvers.title = first\ndefaultResolvers.uniqueItems = uniqueItems\n\nconst defaultComplexResolvers = {\n properties: propertiesResolver,\n items: itemsResolver\n}\n\nfunction merger(rootSchema, options, totalSchemas) {\n totalSchemas = totalSchemas || []\n options = defaultsDeep(options, {\n ignoreAdditionalProperties: false,\n resolvers: defaultResolvers,\n complexResolvers: defaultComplexResolvers,\n deep: true\n })\n\n const complexResolvers = Object.entries(options.complexResolvers)\n\n function mergeSchemas(schemas, base, parents) {\n schemas = cloneDeep(schemas.filter(notUndefined))\n parents = parents || []\n const merged = isPlainObject(base)\n ? base\n : {}\n\n // return undefined, an empty schema\n if (!schemas.length) {\n return\n }\n\n if (schemas.some(isFalse)) {\n return false\n }\n\n if (schemas.every(isTrue)) {\n return true\n }\n\n // there are no false and we don't need the true ones as they accept everything\n schemas = schemas.filter(isPlainObject)\n\n const allKeys = allUniqueKeys(schemas)\n if (options.deep && contains(allKeys, 'allOf')) {\n return merger({\n allOf: schemas\n }, options, totalSchemas)\n }\n\n const complexKeysArr = complexResolvers.map(([mainKeyWord, resolverConf]) =>\n allKeys.filter(k => resolverConf.keywords.includes(k)))\n\n // remove all complex keys before simple resolvers\n complexKeysArr.forEach(keys => pullAll(allKeys, keys))\n\n // call all simple resolvers for relevant keywords\n allKeys.forEach(function(key) {\n const values = getValues(schemas, key)\n const compacted = uniqWith(values.filter(notUndefined), compareProp(key))\n\n // arrayprops like anyOf and oneOf must be merged first, as they contains schemas\n // allOf is treated differently alltogether\n if (compacted.length === 1 && contains(schemaArrays, key)) {\n merged[key] = compacted[0].map(schema => mergeSchemas([schema], schema))\n // prop groups must always be resolved\n } else if (compacted.length === 1 && !contains(schemaGroupProps, key) && !contains(schemaProps, key)) {\n merged[key] = compacted[0]\n } else {\n const resolver = options.resolvers[key] || options.resolvers.defaultResolver\n if (!resolver) throw new Error('No resolver found for key ' + key + '. You can provide a resolver for this keyword in the options, or provide a default resolver.')\n\n const merger = (schemas, extraKey = []) => mergeSchemas(schemas, null, parents.concat(key, extraKey))\n merged[key] = resolver(compacted, parents.concat(key), merger, options)\n\n if (merged[key] === undefined) {\n throwIncompatible(compacted, parents.concat(key))\n } else if (merged[key] === undefined) {\n delete merged[key]\n }\n }\n })\n\n return complexResolvers.reduce((all, [resolverKeyword, config], index) => ({\n ...all,\n ...callGroupResolver(complexKeysArr[index], resolverKeyword, schemas, mergeSchemas, options, parents)\n }), merged)\n }\n\n const allSchemas = flattenDeep(getAllOf(rootSchema))\n const merged = mergeSchemas(allSchemas)\n\n return merged\n}\n\nmerger.options = {\n resolvers: defaultResolvers\n}\n\nmodule.exports = merger\n","import get from 'lodash/get';\nimport isString from 'lodash/isString';\n/** Returns the `discriminator.propertyName` when defined in the `schema` if it is a string. A warning is generated when\n * it is not a string. Returns `undefined` when a valid discriminator is not present.\n *\n * @param schema - The schema from which the discriminator is potentially obtained\n * @returns - The `discriminator.propertyName` if it exists in the schema, otherwise `undefined`\n */\nexport default function getDiscriminatorFieldFromSchema(schema) {\n let discriminator;\n const maybeString = get(schema, 'discriminator.propertyName', undefined);\n if (isString(maybeString)) {\n discriminator = maybeString;\n }\n else if (maybeString !== undefined) {\n console.warn(`Expecting discriminator to be a string, got \"${typeof maybeString}\" instead`);\n }\n return discriminator;\n}\n//# sourceMappingURL=getDiscriminatorFieldFromSchema.js.map","/** Given a specific `value` attempts to guess the type of a schema element. In the case where we have to implicitly\n * create a schema, it is useful to know what type to use based on the data we are defining.\n *\n * @param value - The value from which to guess the type\n * @returns - The best guess for the object type\n */\nexport default function guessType(value) {\n if (Array.isArray(value)) {\n return 'array';\n }\n if (typeof value === 'string') {\n return 'string';\n }\n if (value == null) {\n return 'null';\n }\n if (typeof value === 'boolean') {\n return 'boolean';\n }\n if (!isNaN(value)) {\n return 'number';\n }\n if (typeof value === 'object') {\n return 'object';\n }\n // Default to string if we can't figure it out\n return 'string';\n}\n//# sourceMappingURL=guessType.js.map","var baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n baseUniq = require('./_baseUniq'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nmodule.exports = union;\n","import guessType from './guessType';\n/** Gets the type of a given `schema`. If the type is not explicitly defined, then an attempt is made to infer it from\n * other elements of the schema as follows:\n * - schema.const: Returns the `guessType()` of that value\n * - schema.enum: Returns `string`\n * - schema.properties: Returns `object`\n * - schema.additionalProperties: Returns `object`\n * - type is an array with a length of 2 and one type is 'null': Returns the other type\n *\n * @param schema - The schema for which to get the type\n * @returns - The type of the schema\n */\nexport default function getSchemaType(schema) {\n let { type } = schema;\n if (!type && schema.const) {\n return guessType(schema.const);\n }\n if (!type && schema.enum) {\n return 'string';\n }\n if (!type && (schema.properties || schema.additionalProperties)) {\n return 'object';\n }\n if (Array.isArray(type)) {\n if (type.length === 2 && type.includes('null')) {\n type = type.find((type) => type !== 'null');\n }\n else {\n type = type[0];\n }\n }\n return type;\n}\n//# sourceMappingURL=getSchemaType.js.map","import union from 'lodash/union';\nimport { REQUIRED_KEY } from './constants';\nimport getSchemaType from './getSchemaType';\nimport isObject from './isObject';\n/** Recursively merge deeply nested schemas. The difference between `mergeSchemas` and `mergeObjects` is that\n * `mergeSchemas` only concats arrays for values under the 'required' keyword, and when it does, it doesn't include\n * duplicate values.\n *\n * @param obj1 - The first schema object to merge\n * @param obj2 - The second schema object to merge\n * @returns - The merged schema object\n */\nexport default function mergeSchemas(obj1, obj2) {\n const acc = Object.assign({}, obj1); // Prevent mutation of source object.\n return Object.keys(obj2).reduce((acc, key) => {\n const left = obj1 ? obj1[key] : {}, right = obj2[key];\n if (obj1 && key in obj1 && isObject(right)) {\n acc[key] = mergeSchemas(left, right);\n }\n else if (obj1 &&\n obj2 &&\n (getSchemaType(obj1) === 'object' || getSchemaType(obj2) === 'object') &&\n key === REQUIRED_KEY &&\n Array.isArray(left) &&\n Array.isArray(right)) {\n // Don't include duplicate values when merging 'required' fields.\n acc[key] = union(left, right);\n }\n else {\n acc[key] = right;\n }\n return acc;\n }, acc);\n}\n//# sourceMappingURL=mergeSchemas.js.map","import get from 'lodash/get';\nimport isEqual from 'lodash/isEqual';\nimport set from 'lodash/set';\nimport times from 'lodash/times';\nimport transform from 'lodash/transform';\nimport merge from 'lodash/merge';\nimport flattenDeep from 'lodash/flattenDeep';\nimport uniq from 'lodash/uniq';\nimport mergeAllOf from 'json-schema-merge-allof';\nimport { ADDITIONAL_PROPERTIES_KEY, ADDITIONAL_PROPERTY_FLAG, ALL_OF_KEY, ANY_OF_KEY, DEPENDENCIES_KEY, IF_KEY, ONE_OF_KEY, REF_KEY, PROPERTIES_KEY, ITEMS_KEY, } from '../constants';\nimport findSchemaDefinition, { splitKeyElementFromObject } from '../findSchemaDefinition';\nimport getDiscriminatorFieldFromSchema from '../getDiscriminatorFieldFromSchema';\nimport guessType from '../guessType';\nimport isObject from '../isObject';\nimport mergeSchemas from '../mergeSchemas';\nimport getFirstMatchingOption from './getFirstMatchingOption';\n/** Retrieves an expanded schema that has had all of its conditions, additional properties, references and dependencies\n * resolved and merged into the `schema` given a `validator`, `rootSchema` and `rawFormData` that is used to do the\n * potentially recursive resolution.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which retrieving a schema is desired\n * @param [rootSchema={}] - The root schema that will be forwarded to all the APIs\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema\n * @returns - The schema having its conditions, additional properties, references and dependencies resolved\n */\nexport default function retrieveSchema(validator, schema, rootSchema = {}, rawFormData) {\n return retrieveSchemaInternal(validator, schema, rootSchema, rawFormData)[0];\n}\n/** Resolves a conditional block (if/else/then) by removing the condition and merging the appropriate conditional branch\n * with the rest of the schema. If `expandAllBranches` is true, then the `retrieveSchemaInteral()` results for both\n * conditions will be returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that is used to detect valid schema conditions\n * @param schema - The schema for which resolving a condition is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and\n * dependencies as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData to assist retrieving a schema\n * @returns - A list of schemas with the appropriate conditions resolved, possibly with all branches expanded\n */\nexport function resolveCondition(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {\n const { if: expression, then, else: otherwise, ...resolvedSchemaLessConditional } = schema;\n const conditionValue = validator.isValid(expression, formData || {}, rootSchema);\n let resolvedSchemas = [resolvedSchemaLessConditional];\n let schemas = [];\n if (expandAllBranches) {\n if (then && typeof then !== 'boolean') {\n schemas = schemas.concat(retrieveSchemaInternal(validator, then, rootSchema, formData, expandAllBranches, recurseList));\n }\n if (otherwise && typeof otherwise !== 'boolean') {\n schemas = schemas.concat(retrieveSchemaInternal(validator, otherwise, rootSchema, formData, expandAllBranches, recurseList));\n }\n }\n else {\n const conditionalSchema = conditionValue ? then : otherwise;\n if (conditionalSchema && typeof conditionalSchema !== 'boolean') {\n schemas = schemas.concat(retrieveSchemaInternal(validator, conditionalSchema, rootSchema, formData, expandAllBranches, recurseList));\n }\n }\n if (schemas.length) {\n resolvedSchemas = schemas.map((s) => mergeSchemas(resolvedSchemaLessConditional, s));\n }\n return resolvedSchemas.flatMap((s) => retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList));\n}\n/** Given a list of lists of allOf, anyOf or oneOf values, create a list of lists of all permutations of the values. The\n * `listOfLists` is expected to be all resolved values of the 1st...nth schemas within an `allOf`, `anyOf` or `oneOf`.\n * From those lists, build a matrix for each `xxxOf` where there is more than one schema for a row in the list of lists.\n *\n * For example:\n * - If there are three xxxOf rows (A, B, C) and they have been resolved such that there is only one A, two B and three\n * C schemas then:\n * - The permutation for the first row is `[[A]]`\n * - The permutations for the second row are `[[A,B1], [A,B2]]`\n * - The permutations for the third row are `[[A,B1,C1], [A,B1,C2], [A,B1,C3], [A,B2,C1], [A,B2,C2], [A,B2,C3]]`\n *\n * @param listOfLists - The list of lists of elements that represent the allOf, anyOf or oneOf resolved values in order\n * @returns - The list of all permutations of schemas for a set of `xxxOf`s\n */\nexport function getAllPermutationsOfXxxOf(listOfLists) {\n const allPermutations = listOfLists.reduce((permutations, list) => {\n // When there are more than one set of schemas for a row, duplicate the set of permutations and add in the values\n if (list.length > 1) {\n return list.flatMap((element) => times(permutations.length, (i) => [...permutations[i]].concat(element)));\n }\n // Otherwise just push in the single value into the current set of permutations\n permutations.forEach((permutation) => permutation.push(list[0]));\n return permutations;\n }, [[]] // Start with an empty list\n );\n return allPermutations;\n}\n/** Resolves references and dependencies within a schema and its 'allOf' children. Passes the `expandAllBranches` flag\n * down to the `retrieveSchemaInternal()`, `resolveReference()` and `resolveDependencies()` helper calls. If\n * `expandAllBranches` is true, then all possible dependencies and/or allOf branches are returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @returns - The list of schemas having its references, dependencies and allOf schemas resolved\n */\nexport function resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {\n const updatedSchemas = resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData);\n if (updatedSchemas.length > 1 || updatedSchemas[0] !== schema) {\n // return the updatedSchemas array if it has either multiple schemas within it\n // OR the first schema is not the same as the original schema\n return updatedSchemas;\n }\n if (DEPENDENCIES_KEY in schema) {\n const resolvedSchemas = resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData);\n return resolvedSchemas.flatMap((s) => {\n return retrieveSchemaInternal(validator, s, rootSchema, formData, expandAllBranches, recurseList);\n });\n }\n if (ALL_OF_KEY in schema && Array.isArray(schema.allOf)) {\n const allOfSchemaElements = schema.allOf.map((allOfSubschema) => retrieveSchemaInternal(validator, allOfSubschema, rootSchema, formData, expandAllBranches, recurseList));\n const allPermutations = getAllPermutationsOfXxxOf(allOfSchemaElements);\n return allPermutations.map((permutation) => ({ ...schema, allOf: permutation }));\n }\n // No $ref or dependencies or allOf attribute was found, returning the original schema.\n return [schema];\n}\n/** Resolves all references within a schema and then returns the `retrieveSchemaInternal()` if the resolved schema is\n * actually different than the original. Passes the `expandAllBranches` flag down to the `retrieveSchemaInternal()`\n * helper call.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a reference is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @returns - The list schemas retrieved after having all references resolved\n */\nexport function resolveReference(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {\n const updatedSchema = resolveAllReferences(schema, rootSchema, recurseList);\n if (updatedSchema !== schema) {\n // Only call this if the schema was actually changed by the `resolveAllReferences()` function\n return retrieveSchemaInternal(validator, updatedSchema, rootSchema, formData, expandAllBranches, recurseList);\n }\n return [schema];\n}\n/** Resolves all references within the schema itself as well as any of its properties and array items.\n *\n * @param schema - The schema for which resolving all references is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param recurseList - List of $refs already resolved to prevent recursion\n * @returns - given schema will all references resolved or the original schema if no internal `$refs` were resolved\n */\nexport function resolveAllReferences(schema, rootSchema, recurseList) {\n if (!isObject(schema)) {\n return schema;\n }\n let resolvedSchema = schema;\n // resolve top level ref\n if (REF_KEY in resolvedSchema) {\n const { $ref, ...localSchema } = resolvedSchema;\n // Check for a recursive reference and stop the loop\n if (recurseList.includes($ref)) {\n return resolvedSchema;\n }\n recurseList.push($ref);\n // Retrieve the referenced schema definition.\n const refSchema = findSchemaDefinition($ref, rootSchema);\n resolvedSchema = { ...refSchema, ...localSchema };\n }\n if (PROPERTIES_KEY in resolvedSchema) {\n const childrenLists = [];\n const updatedProps = transform(resolvedSchema[PROPERTIES_KEY], (result, value, key) => {\n const childList = [...recurseList];\n result[key] = resolveAllReferences(value, rootSchema, childList);\n childrenLists.push(childList);\n }, {});\n merge(recurseList, uniq(flattenDeep(childrenLists)));\n resolvedSchema = { ...resolvedSchema, [PROPERTIES_KEY]: updatedProps };\n }\n if (ITEMS_KEY in resolvedSchema &&\n !Array.isArray(resolvedSchema.items) &&\n typeof resolvedSchema.items !== 'boolean') {\n resolvedSchema = {\n ...resolvedSchema,\n items: resolveAllReferences(resolvedSchema.items, rootSchema, recurseList),\n };\n }\n return isEqual(schema, resolvedSchema) ? schema : resolvedSchema;\n}\n/** Creates new 'properties' items for each key in the `formData`\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param theSchema - The schema for which the existing additional properties is desired\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s * @param validator\n * @param [aFormData] - The current formData, if any, to assist retrieving a schema\n * @returns - The updated schema with additional properties stubbed\n */\nexport function stubExistingAdditionalProperties(validator, theSchema, rootSchema, aFormData) {\n // Clone the schema so that we don't ruin the consumer's original\n const schema = {\n ...theSchema,\n properties: { ...theSchema.properties },\n };\n // make sure formData is an object\n const formData = aFormData && isObject(aFormData) ? aFormData : {};\n Object.keys(formData).forEach((key) => {\n if (key in schema.properties) {\n // No need to stub, our schema already has the property\n return;\n }\n let additionalProperties = {};\n if (typeof schema.additionalProperties !== 'boolean') {\n if (REF_KEY in schema.additionalProperties) {\n additionalProperties = retrieveSchema(validator, { $ref: get(schema.additionalProperties, [REF_KEY]) }, rootSchema, formData);\n }\n else if ('type' in schema.additionalProperties) {\n additionalProperties = { ...schema.additionalProperties };\n }\n else if (ANY_OF_KEY in schema.additionalProperties || ONE_OF_KEY in schema.additionalProperties) {\n additionalProperties = {\n type: 'object',\n ...schema.additionalProperties,\n };\n }\n else {\n additionalProperties = { type: guessType(get(formData, [key])) };\n }\n }\n else {\n additionalProperties = { type: guessType(get(formData, [key])) };\n }\n // The type of our new key should match the additionalProperties value;\n schema.properties[key] = additionalProperties;\n // Set our additional property flag so we know it was dynamically added\n set(schema.properties, [key, ADDITIONAL_PROPERTY_FLAG], true);\n });\n return schema;\n}\n/** Internal handler that retrieves an expanded schema that has had all of its conditions, additional properties,\n * references and dependencies resolved and merged into the `schema` given a `validator`, `rootSchema` and `rawFormData`\n * that is used to do the potentially recursive resolution. If `expandAllBranches` is true, then all possible branches\n * of the schema and its references, conditions and dependencies are returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which retrieving a schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema\n * @param [expandAllBranches=false] - Flag, if true, will return all possible branches of conditions, any/oneOf and\n * dependencies as a list of schemas\n * @param [recurseList=[]] - The optional, list of recursive references already processed\n * @returns - The schema(s) resulting from having its conditions, additional properties, references and dependencies\n * resolved. Multiple schemas may be returned if `expandAllBranches` is true.\n */\nexport function retrieveSchemaInternal(validator, schema, rootSchema, rawFormData, expandAllBranches = false, recurseList = []) {\n if (!isObject(schema)) {\n return [{}];\n }\n const resolvedSchemas = resolveSchema(validator, schema, rootSchema, expandAllBranches, recurseList, rawFormData);\n return resolvedSchemas.flatMap((s) => {\n let resolvedSchema = s;\n if (IF_KEY in resolvedSchema) {\n return resolveCondition(validator, resolvedSchema, rootSchema, expandAllBranches, recurseList, rawFormData);\n }\n if (ALL_OF_KEY in resolvedSchema) {\n // resolve allOf schemas\n if (expandAllBranches) {\n const { allOf, ...restOfSchema } = resolvedSchema;\n return [...allOf, restOfSchema];\n }\n try {\n resolvedSchema = mergeAllOf(resolvedSchema, {\n deep: false,\n });\n }\n catch (e) {\n console.warn('could not merge subschemas in allOf:\\n', e);\n const { allOf, ...resolvedSchemaWithoutAllOf } = resolvedSchema;\n return resolvedSchemaWithoutAllOf;\n }\n }\n const hasAdditionalProperties = ADDITIONAL_PROPERTIES_KEY in resolvedSchema && resolvedSchema.additionalProperties !== false;\n if (hasAdditionalProperties) {\n return stubExistingAdditionalProperties(validator, resolvedSchema, rootSchema, rawFormData);\n }\n return resolvedSchema;\n });\n}\n/** Resolves an `anyOf` or `oneOf` within a schema (if present) to the list of schemas returned from\n * `retrieveSchemaInternal()` for the best matching option. If `expandAllBranches` is true, then a list of schemas for ALL\n * options are retrieved and returned.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which retrieving a schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema, defaults to an empty object\n * @returns - Either an array containing the best matching option or all options if `expandAllBranches` is true\n */\nexport function resolveAnyOrOneOfSchemas(validator, schema, rootSchema, expandAllBranches, rawFormData) {\n let anyOrOneOf;\n const { oneOf, anyOf, ...remaining } = schema;\n if (Array.isArray(oneOf)) {\n anyOrOneOf = oneOf;\n }\n else if (Array.isArray(anyOf)) {\n anyOrOneOf = anyOf;\n }\n if (anyOrOneOf) {\n // Ensure that during expand all branches we pass an object rather than undefined so that all options are interrogated\n const formData = rawFormData === undefined && expandAllBranches ? {} : rawFormData;\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n anyOrOneOf = anyOrOneOf.map((s) => {\n // Due to anyOf/oneOf possibly using the same $ref we always pass a fresh recurse list array so that each option\n // can resolve recursive references independently\n return resolveAllReferences(s, rootSchema, []);\n });\n // Call this to trigger the set of isValid() calls that the schema parser will need\n const option = getFirstMatchingOption(validator, formData, anyOrOneOf, rootSchema, discriminator);\n if (expandAllBranches) {\n return anyOrOneOf.map((item) => mergeSchemas(remaining, item));\n }\n schema = mergeSchemas(remaining, anyOrOneOf[option]);\n }\n return [schema];\n}\n/** Resolves dependencies within a schema and its 'anyOf/oneOf' children. Passes the `expandAllBranches` flag down to\n * the `resolveAnyOrOneOfSchema()` and `processDependencies()` helper calls.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a dependency is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @returns - The list of schemas with their dependencies resolved\n */\nexport function resolveDependencies(validator, schema, rootSchema, expandAllBranches, recurseList, formData) {\n // Drop the dependencies from the source schema.\n const { dependencies, ...remainingSchema } = schema;\n const resolvedSchemas = resolveAnyOrOneOfSchemas(validator, remainingSchema, rootSchema, expandAllBranches, formData);\n return resolvedSchemas.flatMap((resolvedSchema) => processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData));\n}\n/** Processes all the `dependencies` recursively into the list of `resolvedSchema`s as needed. Passes the\n * `expandAllBranches` flag down to the `withDependentSchema()` and the recursive `processDependencies()` helper calls.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param dependencies - The set of dependencies that needs to be processed\n * @param resolvedSchema - The schema for which processing dependencies is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @returns - The schema with the `dependencies` resolved into it\n */\nexport function processDependencies(validator, dependencies, resolvedSchema, rootSchema, expandAllBranches, recurseList, formData) {\n let schemas = [resolvedSchema];\n // Process dependencies updating the local schema properties as appropriate.\n for (const dependencyKey in dependencies) {\n // Skip this dependency if its trigger property is not present.\n if (!expandAllBranches && get(formData, [dependencyKey]) === undefined) {\n continue;\n }\n // Skip this dependency if it is not included in the schema (such as when dependencyKey is itself a hidden dependency.)\n if (resolvedSchema.properties && !(dependencyKey in resolvedSchema.properties)) {\n continue;\n }\n const [remainingDependencies, dependencyValue] = splitKeyElementFromObject(dependencyKey, dependencies);\n if (Array.isArray(dependencyValue)) {\n schemas[0] = withDependentProperties(resolvedSchema, dependencyValue);\n }\n else if (isObject(dependencyValue)) {\n schemas = withDependentSchema(validator, resolvedSchema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData);\n }\n return schemas.flatMap((schema) => processDependencies(validator, remainingDependencies, schema, rootSchema, expandAllBranches, recurseList, formData));\n }\n return schemas;\n}\n/** Updates a schema with additionally required properties added\n *\n * @param schema - The schema for which resolving a dependent properties is desired\n * @param [additionallyRequired] - An optional array of additionally required names\n * @returns - The schema with the additional required values merged in\n */\nexport function withDependentProperties(schema, additionallyRequired) {\n if (!additionallyRequired) {\n return schema;\n }\n const required = Array.isArray(schema.required)\n ? Array.from(new Set([...schema.required, ...additionallyRequired]))\n : additionallyRequired;\n return { ...schema, required: required };\n}\n/** Merges a dependent schema into the `schema` dealing with oneOfs and references. Passes the `expandAllBranches` flag\n * down to the `retrieveSchemaInternal()`, `resolveReference()` and `withExactlyOneSubschema()` helper calls.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param schema - The schema for which resolving a dependent schema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param dependencyKey - The key name of the dependency\n * @param dependencyValue - The potentially dependent schema\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData]- The current formData to assist retrieving a schema\n * @returns - The list of schemas with the dependent schema resolved into them\n */\nexport function withDependentSchema(validator, schema, rootSchema, dependencyKey, dependencyValue, expandAllBranches, recurseList, formData) {\n const dependentSchemas = retrieveSchemaInternal(validator, dependencyValue, rootSchema, formData, expandAllBranches, recurseList);\n return dependentSchemas.flatMap((dependent) => {\n const { oneOf, ...dependentSchema } = dependent;\n schema = mergeSchemas(schema, dependentSchema);\n // Since it does not contain oneOf, we return the original schema.\n if (oneOf === undefined) {\n return schema;\n }\n // Resolve $refs inside oneOf.\n const resolvedOneOfs = oneOf.map((subschema) => {\n if (typeof subschema === 'boolean' || !(REF_KEY in subschema)) {\n return [subschema];\n }\n return resolveReference(validator, subschema, rootSchema, expandAllBranches, recurseList, formData);\n });\n const allPermutations = getAllPermutationsOfXxxOf(resolvedOneOfs);\n return allPermutations.flatMap((resolvedOneOf) => withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, resolvedOneOf, expandAllBranches, recurseList, formData));\n });\n}\n/** Returns a list of `schema`s with the best choice from the `oneOf` options merged into it. If `expandAllBranches` is\n * true, then a list of schemas for ALL options are retrieved and returned. Passes the `expandAllBranches` flag down to\n * the `retrieveSchemaInternal()` helper call.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used to validate oneOf options\n * @param schema - The schema for which resolving a oneOf subschema is desired\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param dependencyKey - The key name of the oneOf dependency\n * @param oneOf - The list of schemas representing the oneOf options\n * @param expandAllBranches - Flag, if true, will return all possible branches of conditions, any/oneOf and dependencies\n * as a list of schemas\n * @param recurseList - The list of recursive references already processed\n * @param [formData] - The current formData to assist retrieving a schema\n * @returns - Either an array containing the best matching option or all options if `expandAllBranches` is true\n */\nexport function withExactlyOneSubschema(validator, schema, rootSchema, dependencyKey, oneOf, expandAllBranches, recurseList, formData) {\n const validSubschemas = oneOf.filter((subschema) => {\n if (typeof subschema === 'boolean' || !subschema || !subschema.properties) {\n return false;\n }\n const { [dependencyKey]: conditionPropertySchema } = subschema.properties;\n if (conditionPropertySchema) {\n const conditionSchema = {\n type: 'object',\n properties: {\n [dependencyKey]: conditionPropertySchema,\n },\n };\n return validator.isValid(conditionSchema, formData, rootSchema) || expandAllBranches;\n }\n return false;\n });\n if (!expandAllBranches && validSubschemas.length !== 1) {\n console.warn(\"ignoring oneOf in dependencies because there isn't exactly one subschema that is valid\");\n return [schema];\n }\n return validSubschemas.flatMap((s) => {\n const subschema = s;\n const [dependentSubschema] = splitKeyElementFromObject(dependencyKey, subschema.properties);\n const dependentSchema = { ...subschema, properties: dependentSubschema };\n const schemas = retrieveSchemaInternal(validator, dependentSchema, rootSchema, formData, expandAllBranches, recurseList);\n return schemas.map((s) => mergeSchemas(schema, s));\n });\n}\n//# sourceMappingURL=retrieveSchema.js.map","import get from 'lodash/get';\nimport has from 'lodash/has';\nimport isNumber from 'lodash/isNumber';\nimport isObject from 'lodash/isObject';\nimport isString from 'lodash/isString';\nimport reduce from 'lodash/reduce';\nimport times from 'lodash/times';\nimport getFirstMatchingOption from './getFirstMatchingOption';\nimport retrieveSchema, { resolveAllReferences } from './retrieveSchema';\nimport { ONE_OF_KEY, REF_KEY, JUNK_OPTION_ID, ANY_OF_KEY } from '../constants';\nimport guessType from '../guessType';\nimport getDiscriminatorFieldFromSchema from '../getDiscriminatorFieldFromSchema';\nimport getOptionMatchingSimpleDiscriminator from '../getOptionMatchingSimpleDiscriminator';\n/** A junk option used to determine when the getFirstMatchingOption call really matches an option rather than returning\n * the first item\n */\nexport const JUNK_OPTION = {\n type: 'object',\n $id: JUNK_OPTION_ID,\n properties: {\n __not_really_there__: {\n type: 'number',\n },\n },\n};\n/** Recursive function that calculates the score of a `formData` against the given `schema`. The computation is fairly\n * simple. Initially the total score is 0. When `schema.properties` object exists, then all the `key/value` pairs within\n * the object are processed as follows after obtaining the formValue from `formData` using the `key`:\n * - If the `value` contains a `$ref`, `calculateIndexScore()` is called recursively with the formValue and the new\n * schema that is the result of the ref in the schema being resolved and that sub-schema's resulting score is added to\n * the total.\n * - If the `value` contains a `oneOf` and there is a formValue, then score based on the index returned from calling\n * `getClosestMatchingOption()` of that oneOf.\n * - If the type of the `value` is 'object', `calculateIndexScore()` is called recursively with the formValue and the\n * `value` itself as the sub-schema, and the score is added to the total.\n * - If the type of the `value` matches the guessed-type of the `formValue`, the score is incremented by 1, UNLESS the\n * value has a `default` or `const`. In those case, if the `default` or `const` and the `formValue` match, the score\n * is incremented by another 1 otherwise it is decremented by 1.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param rootSchema - The root JSON schema of the entire form\n * @param schema - The schema for which the score is being calculated\n * @param formData - The form data associated with the schema, used to calculate the score\n * @returns - The score a schema against the formData\n */\nexport function calculateIndexScore(validator, rootSchema, schema, formData = {}) {\n let totalScore = 0;\n if (schema) {\n if (isObject(schema.properties)) {\n totalScore += reduce(schema.properties, (score, value, key) => {\n const formValue = get(formData, key);\n if (typeof value === 'boolean') {\n return score;\n }\n if (has(value, REF_KEY)) {\n const newSchema = retrieveSchema(validator, value, rootSchema, formValue);\n return score + calculateIndexScore(validator, rootSchema, newSchema, formValue || {});\n }\n if ((has(value, ONE_OF_KEY) || has(value, ANY_OF_KEY)) && formValue) {\n const key = has(value, ONE_OF_KEY) ? ONE_OF_KEY : ANY_OF_KEY;\n const discriminator = getDiscriminatorFieldFromSchema(value);\n return (score +\n getClosestMatchingOption(validator, rootSchema, formValue, get(value, key), -1, discriminator));\n }\n if (value.type === 'object') {\n return score + calculateIndexScore(validator, rootSchema, value, formValue || {});\n }\n if (value.type === guessType(formValue)) {\n // If the types match, then we bump the score by one\n let newScore = score + 1;\n if (value.default) {\n // If the schema contains a readonly default value score the value that matches the default higher and\n // any non-matching value lower\n newScore += formValue === value.default ? 1 : -1;\n }\n else if (value.const) {\n // If the schema contains a const value score the value that matches the default higher and\n // any non-matching value lower\n newScore += formValue === value.const ? 1 : -1;\n }\n // TODO eventually, deal with enums/arrays\n return newScore;\n }\n return score;\n }, 0);\n }\n else if (isString(schema.type) && schema.type === guessType(formData)) {\n totalScore += 1;\n }\n }\n return totalScore;\n}\n/** Determines which of the given `options` provided most closely matches the `formData`. Using\n * `getFirstMatchingOption()` to match two schemas that differ only by the readOnly, default or const value of a field\n * based on the `formData` and returns 0 when there is no match. Rather than passing in all the `options` at once to\n * this utility, instead an array of valid option indexes is created by iterating over the list of options, call\n * `getFirstMatchingOptions` with a list of one junk option and one good option, seeing if the good option is considered\n * matched.\n *\n * Once the list of valid indexes is created, if there is only one valid index, just return it. Otherwise, if there are\n * no valid indexes, then fill the valid indexes array with the indexes of all the options. Next, the index of the\n * option with the highest score is determined by iterating over the list of valid options, calling\n * `calculateIndexScore()` on each, comparing it against the current best score, and returning the index of the one that\n * eventually has the best score.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param rootSchema - The root JSON schema of the entire form\n * @param formData - The form data associated with the schema\n * @param options - The list of options that can be selected from\n * @param [selectedOption=-1] - The index of the currently selected option, defaulted to -1 if not specified\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the option that is the closest match to the `formData` or the `selectedOption` if no match\n */\nexport default function getClosestMatchingOption(validator, rootSchema, formData, options, selectedOption = -1, discriminatorField) {\n // First resolve any refs in the options\n const resolvedOptions = options.map((option) => {\n return resolveAllReferences(option, rootSchema, []);\n });\n const simpleDiscriminatorMatch = getOptionMatchingSimpleDiscriminator(formData, options, discriminatorField);\n if (isNumber(simpleDiscriminatorMatch)) {\n return simpleDiscriminatorMatch;\n }\n // Reduce the array of options down to a list of the indexes that are considered matching options\n const allValidIndexes = resolvedOptions.reduce((validList, option, index) => {\n const testOptions = [JUNK_OPTION, option];\n const match = getFirstMatchingOption(validator, formData, testOptions, rootSchema, discriminatorField);\n // The match is the real option, so add its index to list of valid indexes\n if (match === 1) {\n validList.push(index);\n }\n return validList;\n }, []);\n // There is only one valid index, so return it!\n if (allValidIndexes.length === 1) {\n return allValidIndexes[0];\n }\n if (!allValidIndexes.length) {\n // No indexes were valid, so we'll score all the options, add all the indexes\n times(resolvedOptions.length, (i) => allValidIndexes.push(i));\n }\n const scoreCount = new Set();\n // Score all the options in the list of valid indexes and return the index with the best score\n const { bestIndex } = allValidIndexes.reduce((scoreData, index) => {\n const { bestScore } = scoreData;\n const option = resolvedOptions[index];\n const score = calculateIndexScore(validator, rootSchema, option, formData);\n scoreCount.add(score);\n if (score > bestScore) {\n return { bestIndex: index, bestScore: score };\n }\n return scoreData;\n }, { bestIndex: selectedOption, bestScore: 0 });\n // if all scores are the same go with selectedOption\n if (scoreCount.size === 1 && selectedOption >= 0) {\n return selectedOption;\n }\n return bestIndex;\n}\n//# sourceMappingURL=getClosestMatchingOption.js.map","import isObject from './isObject';\n/** Detects whether the given `schema` contains fixed items. This is the case when `schema.items` is a non-empty array\n * that only contains objects.\n *\n * @param schema - The schema in which to check for fixed items\n * @returns - True if there are fixed items in the schema, false otherwise\n */\nexport default function isFixedItems(schema) {\n return Array.isArray(schema.items) && schema.items.length > 0 && schema.items.every((item) => isObject(item));\n}\n//# sourceMappingURL=isFixedItems.js.map","import get from 'lodash/get';\nimport isObject from './isObject';\n/** Merges the `defaults` object of type `T` into the `formData` of type `T`\n *\n * When merging defaults and form data, we want to merge in this specific way:\n * - objects are deeply merged\n * - arrays are merged in such a way that:\n * - when the array is set in form data, only array entries set in form data\n * are deeply merged; additional entries from the defaults are ignored unless `mergeExtraArrayDefaults` is true, in\n * which case the extras are appended onto the end of the form data\n * - when the array is not set in form data, the default is copied over\n * - scalars are overwritten/set by form data\n *\n * @param [defaults] - The defaults to merge\n * @param [formData] - The form data into which the defaults will be merged\n * @param [mergeExtraArrayDefaults=false] - If true, any additional default array entries are appended onto the formData\n * @returns - The resulting merged form data with defaults\n */\nexport default function mergeDefaultsWithFormData(defaults, formData, mergeExtraArrayDefaults = false) {\n if (Array.isArray(formData)) {\n const defaultsArray = Array.isArray(defaults) ? defaults : [];\n const mapped = formData.map((value, idx) => {\n if (defaultsArray[idx]) {\n return mergeDefaultsWithFormData(defaultsArray[idx], value, mergeExtraArrayDefaults);\n }\n return value;\n });\n // Merge any extra defaults when mergeExtraArrayDefaults is true\n if (mergeExtraArrayDefaults && mapped.length < defaultsArray.length) {\n mapped.push(...defaultsArray.slice(mapped.length));\n }\n return mapped;\n }\n if (isObject(formData)) {\n const acc = Object.assign({}, defaults); // Prevent mutation of source object.\n return Object.keys(formData).reduce((acc, key) => {\n acc[key] = mergeDefaultsWithFormData(defaults ? get(defaults, key) : {}, get(formData, key), mergeExtraArrayDefaults);\n return acc;\n }, acc);\n }\n return formData;\n}\n//# sourceMappingURL=mergeDefaultsWithFormData.js.map","import isObject from './isObject';\n/** Recursively merge deeply nested objects.\n *\n * @param obj1 - The first object to merge\n * @param obj2 - The second object to merge\n * @param [concatArrays=false] - Optional flag that, when true, will cause arrays to be concatenated. Use\n * \"preventDuplicates\" to merge arrays in a manner that prevents any duplicate entries from being merged.\n * NOTE: Uses shallow comparison for the duplicate checking.\n * @returns - A new object that is the merge of the two given objects\n */\nexport default function mergeObjects(obj1, obj2, concatArrays = false) {\n return Object.keys(obj2).reduce((acc, key) => {\n const left = obj1 ? obj1[key] : {}, right = obj2[key];\n if (obj1 && key in obj1 && isObject(right)) {\n acc[key] = mergeObjects(left, right, concatArrays);\n }\n else if (concatArrays && Array.isArray(left) && Array.isArray(right)) {\n let toMerge = right;\n if (concatArrays === 'preventDuplicates') {\n toMerge = right.reduce((result, value) => {\n if (!left.includes(value)) {\n result.push(value);\n }\n return result;\n }, []);\n }\n acc[key] = left.concat(toMerge);\n }\n else {\n acc[key] = right;\n }\n return acc;\n }, Object.assign({}, obj1)); // Prevent mutation of source object.\n}\n//# sourceMappingURL=mergeObjects.js.map","import { CONST_KEY } from './constants';\n/** This function checks if the given `schema` matches a single constant value. This happens when either the schema has\n * an `enum` array with a single value or there is a `const` defined.\n *\n * @param schema - The schema for a field\n * @returns - True if the `schema` has a single constant value, false otherwise\n */\nexport default function isConstant(schema) {\n return (Array.isArray(schema.enum) && schema.enum.length === 1) || CONST_KEY in schema;\n}\n//# sourceMappingURL=isConstant.js.map","import isConstant from '../isConstant';\nimport retrieveSchema from './retrieveSchema';\n/** Checks to see if the `schema` combination represents a select\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param theSchema - The schema for which check for a select flag is desired\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @returns - True if schema contains a select, otherwise false\n */\nexport default function isSelect(validator, theSchema, rootSchema = {}) {\n const schema = retrieveSchema(validator, theSchema, rootSchema, undefined);\n const altSchemas = schema.oneOf || schema.anyOf;\n if (Array.isArray(schema.enum)) {\n return true;\n }\n if (Array.isArray(altSchemas)) {\n return altSchemas.every((altSchemas) => typeof altSchemas !== 'boolean' && isConstant(altSchemas));\n }\n return false;\n}\n//# sourceMappingURL=isSelect.js.map","import isSelect from './isSelect';\n/** Checks to see if the `schema` combination represents a multi-select\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which check for a multi-select flag is desired\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @returns - True if schema contains a multi-select, otherwise false\n */\nexport default function isMultiSelect(validator, schema, rootSchema) {\n if (!schema.uniqueItems || !schema.items || typeof schema.items === 'boolean') {\n return false;\n }\n return isSelect(validator, schema.items, rootSchema);\n}\n//# sourceMappingURL=isMultiSelect.js.map","import get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport { ANY_OF_KEY, DEFAULT_KEY, DEPENDENCIES_KEY, PROPERTIES_KEY, ONE_OF_KEY, REF_KEY, ALL_OF_KEY, } from '../constants';\nimport findSchemaDefinition from '../findSchemaDefinition';\nimport getClosestMatchingOption from './getClosestMatchingOption';\nimport getDiscriminatorFieldFromSchema from '../getDiscriminatorFieldFromSchema';\nimport getSchemaType from '../getSchemaType';\nimport isObject from '../isObject';\nimport isFixedItems from '../isFixedItems';\nimport mergeDefaultsWithFormData from '../mergeDefaultsWithFormData';\nimport mergeObjects from '../mergeObjects';\nimport mergeSchemas from '../mergeSchemas';\nimport isMultiSelect from './isMultiSelect';\nimport retrieveSchema, { resolveDependencies } from './retrieveSchema';\n/** Enum that indicates how `schema.additionalItems` should be handled by the `getInnerSchemaForArrayItem()` function.\n */\nexport var AdditionalItemsHandling;\n(function (AdditionalItemsHandling) {\n AdditionalItemsHandling[AdditionalItemsHandling[\"Ignore\"] = 0] = \"Ignore\";\n AdditionalItemsHandling[AdditionalItemsHandling[\"Invert\"] = 1] = \"Invert\";\n AdditionalItemsHandling[AdditionalItemsHandling[\"Fallback\"] = 2] = \"Fallback\";\n})(AdditionalItemsHandling || (AdditionalItemsHandling = {}));\n/** Given a `schema` will return an inner schema that for an array item. This is computed differently based on the\n * `additionalItems` enum and the value of `idx`. There are four possible returns:\n * 1. If `idx` is >= 0, then if `schema.items` is an array the `idx`th element of the array is returned if it is a valid\n * index and not a boolean, otherwise it falls through to 3.\n * 2. If `schema.items` is not an array AND truthy and not a boolean, then `schema.items` is returned since it actually\n * is a schema, otherwise it falls through to 3.\n * 3. If `additionalItems` is not `AdditionalItemsHandling.Ignore` and `schema.additionalItems` is an object, then\n * `schema.additionalItems` is returned since it actually is a schema, otherwise it falls through to 4.\n * 4. {} is returned representing an empty schema\n *\n * @param schema - The schema from which to get the particular item\n * @param [additionalItems=AdditionalItemsHandling.Ignore] - How do we want to handle additional items?\n * @param [idx=-1] - Index, if non-negative, will be used to return the idx-th element in a `schema.items` array\n * @returns - The best fit schema object from the `schema` given the `additionalItems` and `idx` modifiers\n */\nexport function getInnerSchemaForArrayItem(schema, additionalItems = AdditionalItemsHandling.Ignore, idx = -1) {\n if (idx >= 0) {\n if (Array.isArray(schema.items) && idx < schema.items.length) {\n const item = schema.items[idx];\n if (typeof item !== 'boolean') {\n return item;\n }\n }\n }\n else if (schema.items && !Array.isArray(schema.items) && typeof schema.items !== 'boolean') {\n return schema.items;\n }\n if (additionalItems !== AdditionalItemsHandling.Ignore && isObject(schema.additionalItems)) {\n return schema.additionalItems;\n }\n return {};\n}\n/** Either add `computedDefault` at `key` into `obj` or not add it based on its value, the value of\n * `includeUndefinedValues`, the value of `emptyObjectFields` and if its parent field is required. Generally undefined\n * `computedDefault` values are added only when `includeUndefinedValues` is either true/\"excludeObjectChildren\". If `\n * includeUndefinedValues` is false and `emptyObjectFields` is not \"skipDefaults\", then non-undefined and non-empty-object\n * values will be added based on certain conditions.\n *\n * @param obj - The object into which the computed default may be added\n * @param key - The key into the object at which the computed default may be added\n * @param computedDefault - The computed default value that maybe should be added to the obj\n * @param includeUndefinedValues - Optional flag, if true, cause undefined values to be added as defaults.\n * If \"excludeObjectChildren\", cause undefined values for this object and pass `includeUndefinedValues` as\n * false when computing defaults for any nested object properties. If \"allowEmptyObject\", prevents undefined\n * values in this object while allow the object itself to be empty and passing `includeUndefinedValues` as\n * false when computing defaults for any nested object properties.\n * @param isParentRequired - The optional boolean that indicates whether the parent field is required\n * @param requiredFields - The list of fields that are required\n * @param experimental_defaultFormStateBehavior - Optional configuration object, if provided, allows users to override\n * default form state behavior\n */\nfunction maybeAddDefaultToObject(obj, key, computedDefault, includeUndefinedValues, isParentRequired, requiredFields = [], experimental_defaultFormStateBehavior = {}) {\n const { emptyObjectFields = 'populateAllDefaults' } = experimental_defaultFormStateBehavior;\n if (includeUndefinedValues) {\n obj[key] = computedDefault;\n }\n else if (emptyObjectFields !== 'skipDefaults') {\n if (isObject(computedDefault)) {\n // If isParentRequired is undefined, then we are at the root level of the schema so defer to the requiredness of\n // the field key itself in the `requiredField` list\n const isSelfOrParentRequired = isParentRequired === undefined ? requiredFields.includes(key) : isParentRequired;\n // If emptyObjectFields 'skipEmptyDefaults' store computedDefault if it's a non-empty object(e.g. not {})\n if (emptyObjectFields === 'skipEmptyDefaults') {\n if (!isEmpty(computedDefault)) {\n obj[key] = computedDefault;\n }\n }\n // Else store computedDefault if it's a non-empty object(e.g. not {}) and satisfies certain conditions\n // Condition 1: If computedDefault is not empty or if the key is a required field\n // Condition 2: If the parent object is required or emptyObjectFields is not 'populateRequiredDefaults'\n else if ((!isEmpty(computedDefault) || requiredFields.includes(key)) &&\n (isSelfOrParentRequired || emptyObjectFields !== 'populateRequiredDefaults')) {\n obj[key] = computedDefault;\n }\n }\n else if (\n // Store computedDefault if it's a defined primitive (e.g., true) and satisfies certain conditions\n // Condition 1: computedDefault is not undefined\n // Condition 2: If emptyObjectFields is 'populateAllDefaults' or 'skipEmptyDefaults) or if the key is a required field\n computedDefault !== undefined &&\n (emptyObjectFields === 'populateAllDefaults' ||\n emptyObjectFields === 'skipEmptyDefaults' ||\n requiredFields.includes(key))) {\n obj[key] = computedDefault;\n }\n }\n}\n/** Computes the defaults for the current `schema` given the `rawFormData` and `parentDefaults` if any. This drills into\n * each level of the schema, recursively, to fill out every level of defaults provided by the schema.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be used when necessary\n * @param rawSchema - The schema for which the default state is desired\n * @param [props] - Optional props for this function\n * @param [props.parentDefaults] - Any defaults provided by the parent field in the schema\n * @param [props.rootSchema] - The options root schema, used to primarily to look up `$ref`s\n * @param [props.rawFormData] - The current formData, if any, onto which to provide any missing defaults\n * @param [props.includeUndefinedValues=false] - Optional flag, if true, cause undefined values to be added as defaults.\n * If \"excludeObjectChildren\", cause undefined values for this object and pass `includeUndefinedValues` as\n * false when computing defaults for any nested object properties.\n * @param [props._recurseList=[]] - The list of ref names currently being recursed, used to prevent infinite recursion\n * @param [props.experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n * @param [props.required] - Optional flag, if true, indicates this schema was required in the parent schema.\n * @returns - The resulting `formData` with all the defaults provided\n */\nexport function computeDefaults(validator, rawSchema, { parentDefaults, rawFormData, rootSchema = {}, includeUndefinedValues = false, _recurseList = [], experimental_defaultFormStateBehavior = undefined, required, } = {}) {\n var _a, _b, _c, _d;\n const formData = (isObject(rawFormData) ? rawFormData : {});\n const schema = isObject(rawSchema) ? rawSchema : {};\n // Compute the defaults recursively: give highest priority to deepest nodes.\n let defaults = parentDefaults;\n // If we get a new schema, then we need to recompute defaults again for the new schema found.\n let schemaToCompute = null;\n let updatedRecurseList = _recurseList;\n if (isObject(defaults) && isObject(schema.default)) {\n // For object defaults, only override parent defaults that are defined in\n // schema.default.\n defaults = mergeObjects(defaults, schema.default);\n }\n else if (DEFAULT_KEY in schema) {\n defaults = schema.default;\n }\n else if (REF_KEY in schema) {\n const refName = schema[REF_KEY];\n // Use referenced schema defaults for this node.\n if (!_recurseList.includes(refName)) {\n updatedRecurseList = _recurseList.concat(refName);\n schemaToCompute = findSchemaDefinition(refName, rootSchema);\n }\n }\n else if (DEPENDENCIES_KEY in schema) {\n const resolvedSchema = resolveDependencies(validator, schema, rootSchema, false, [], formData);\n schemaToCompute = resolvedSchema[0]; // pick the first element from resolve dependencies\n }\n else if (isFixedItems(schema)) {\n defaults = schema.items.map((itemSchema, idx) => computeDefaults(validator, itemSchema, {\n rootSchema,\n includeUndefinedValues,\n _recurseList,\n experimental_defaultFormStateBehavior,\n parentDefaults: Array.isArray(parentDefaults) ? parentDefaults[idx] : undefined,\n rawFormData: formData,\n required,\n }));\n }\n else if (ONE_OF_KEY in schema) {\n const { oneOf, ...remaining } = schema;\n if (oneOf.length === 0) {\n return undefined;\n }\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n schemaToCompute = oneOf[getClosestMatchingOption(validator, rootSchema, isEmpty(formData) ? undefined : formData, oneOf, 0, discriminator)];\n schemaToCompute = mergeSchemas(remaining, schemaToCompute);\n }\n else if (ANY_OF_KEY in schema) {\n const { anyOf, ...remaining } = schema;\n if (anyOf.length === 0) {\n return undefined;\n }\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n schemaToCompute = anyOf[getClosestMatchingOption(validator, rootSchema, isEmpty(formData) ? undefined : formData, anyOf, 0, discriminator)];\n schemaToCompute = mergeSchemas(remaining, schemaToCompute);\n }\n if (schemaToCompute) {\n return computeDefaults(validator, schemaToCompute, {\n rootSchema,\n includeUndefinedValues,\n _recurseList: updatedRecurseList,\n experimental_defaultFormStateBehavior,\n parentDefaults: defaults,\n rawFormData: formData,\n required,\n });\n }\n // No defaults defined for this node, fallback to generic typed ones.\n if (defaults === undefined) {\n defaults = schema.default;\n }\n switch (getSchemaType(schema)) {\n // We need to recurse for object schema inner default values.\n case 'object': {\n // This is a custom addition that fixes this issue:\n // https://github.com/rjsf-team/react-jsonschema-form/issues/3832\n const retrievedSchema = (experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.allOf) === 'populateDefaults' && ALL_OF_KEY in schema\n ? retrieveSchema(validator, schema, rootSchema, formData)\n : schema;\n const objectDefaults = Object.keys(retrievedSchema.properties || {}).reduce((acc, key) => {\n var _a;\n // Compute the defaults for this node, with the parent defaults we might\n // have from a previous run: defaults[key].\n const computedDefault = computeDefaults(validator, get(retrievedSchema, [PROPERTIES_KEY, key]), {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n includeUndefinedValues: includeUndefinedValues === true,\n parentDefaults: get(defaults, [key]),\n rawFormData: get(formData, [key]),\n required: (_a = retrievedSchema.required) === null || _a === void 0 ? void 0 : _a.includes(key),\n });\n maybeAddDefaultToObject(acc, key, computedDefault, includeUndefinedValues, required, retrievedSchema.required, experimental_defaultFormStateBehavior);\n return acc;\n }, {});\n if (retrievedSchema.additionalProperties) {\n // as per spec additionalProperties may be either schema or boolean\n const additionalPropertiesSchema = isObject(retrievedSchema.additionalProperties)\n ? retrievedSchema.additionalProperties\n : {};\n const keys = new Set();\n if (isObject(defaults)) {\n Object.keys(defaults)\n .filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key])\n .forEach((key) => keys.add(key));\n }\n const formDataRequired = [];\n Object.keys(formData)\n .filter((key) => !retrievedSchema.properties || !retrievedSchema.properties[key])\n .forEach((key) => {\n keys.add(key);\n formDataRequired.push(key);\n });\n keys.forEach((key) => {\n var _a;\n const computedDefault = computeDefaults(validator, additionalPropertiesSchema, {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n includeUndefinedValues: includeUndefinedValues === true,\n parentDefaults: get(defaults, [key]),\n rawFormData: get(formData, [key]),\n required: (_a = retrievedSchema.required) === null || _a === void 0 ? void 0 : _a.includes(key),\n });\n // Since these are additional properties we don't need to add the `experimental_defaultFormStateBehavior` prop\n maybeAddDefaultToObject(objectDefaults, key, computedDefault, includeUndefinedValues, required, formDataRequired);\n });\n }\n return objectDefaults;\n }\n case 'array': {\n const neverPopulate = ((_a = experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.arrayMinItems) === null || _a === void 0 ? void 0 : _a.populate) === 'never';\n const ignoreMinItemsFlagSet = ((_b = experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.arrayMinItems) === null || _b === void 0 ? void 0 : _b.populate) === 'requiredOnly';\n const isSkipEmptyDefaults = (experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.emptyObjectFields) === 'skipEmptyDefaults';\n const computeSkipPopulate = (_d = (_c = experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.arrayMinItems) === null || _c === void 0 ? void 0 : _c.computeSkipPopulate) !== null && _d !== void 0 ? _d : (() => false);\n const emptyDefault = isSkipEmptyDefaults ? undefined : [];\n // Inject defaults into existing array defaults\n if (Array.isArray(defaults)) {\n defaults = defaults.map((item, idx) => {\n const schemaItem = getInnerSchemaForArrayItem(schema, AdditionalItemsHandling.Fallback, idx);\n return computeDefaults(validator, schemaItem, {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n parentDefaults: item,\n required,\n });\n });\n }\n // Deeply inject defaults into already existing form data\n if (Array.isArray(rawFormData)) {\n const schemaItem = getInnerSchemaForArrayItem(schema);\n if (neverPopulate) {\n defaults = rawFormData;\n }\n else {\n defaults = rawFormData.map((item, idx) => {\n return computeDefaults(validator, schemaItem, {\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n rawFormData: item,\n parentDefaults: get(defaults, [idx]),\n required,\n });\n });\n }\n }\n if (neverPopulate) {\n return defaults !== null && defaults !== void 0 ? defaults : emptyDefault;\n }\n if (ignoreMinItemsFlagSet && !required) {\n // If no form data exists or defaults are set leave the field empty/non-existent, otherwise\n // return form data/defaults\n return defaults ? defaults : undefined;\n }\n const defaultsLength = Array.isArray(defaults) ? defaults.length : 0;\n if (!schema.minItems ||\n isMultiSelect(validator, schema, rootSchema) ||\n computeSkipPopulate(validator, schema, rootSchema) ||\n schema.minItems <= defaultsLength) {\n return defaults ? defaults : emptyDefault;\n }\n const defaultEntries = (defaults || []);\n const fillerSchema = getInnerSchemaForArrayItem(schema, AdditionalItemsHandling.Invert);\n const fillerDefault = fillerSchema.default;\n // Calculate filler entries for remaining items (minItems - existing raw data/defaults)\n const fillerEntries = new Array(schema.minItems - defaultsLength).fill(computeDefaults(validator, fillerSchema, {\n parentDefaults: fillerDefault,\n rootSchema,\n _recurseList,\n experimental_defaultFormStateBehavior,\n required,\n }));\n // then fill up the rest with either the item default or empty, up to minItems\n return defaultEntries.concat(fillerEntries);\n }\n }\n return defaults;\n}\n/** Returns the superset of `formData` that includes the given set updated to include any missing fields that have\n * computed to have defaults provided in the `schema`.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param theSchema - The schema for which the default state is desired\n * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [includeUndefinedValues=false] - Optional flag, if true, cause undefined values to be added as defaults.\n * If \"excludeObjectChildren\", cause undefined values for this object and pass `includeUndefinedValues` as\n * false when computing defaults for any nested object properties.\n * @param [experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n * @returns - The resulting `formData` with all the defaults provided\n */\nexport default function getDefaultFormState(validator, theSchema, formData, rootSchema, includeUndefinedValues = false, experimental_defaultFormStateBehavior) {\n if (!isObject(theSchema)) {\n throw new Error('Invalid schema: ' + theSchema);\n }\n const schema = retrieveSchema(validator, theSchema, rootSchema, formData);\n const defaults = computeDefaults(validator, schema, {\n rootSchema,\n includeUndefinedValues,\n experimental_defaultFormStateBehavior,\n rawFormData: formData,\n });\n if (formData === undefined || formData === null || (typeof formData === 'number' && isNaN(formData))) {\n // No form data? Use schema defaults.\n return defaults;\n }\n const { mergeExtraDefaults } = (experimental_defaultFormStateBehavior === null || experimental_defaultFormStateBehavior === void 0 ? void 0 : experimental_defaultFormStateBehavior.arrayMinItems) || {};\n if (isObject(formData)) {\n return mergeDefaultsWithFormData(defaults, formData, mergeExtraDefaults);\n }\n if (Array.isArray(formData)) {\n return mergeDefaultsWithFormData(defaults, formData, mergeExtraDefaults);\n }\n return formData;\n}\n//# sourceMappingURL=getDefaultFormState.js.map","import getUiOptions from './getUiOptions';\n/** Checks to see if the `uiSchema` contains the `widget` field and that the widget is not `hidden`\n *\n * @param uiSchema - The UI Schema from which to detect if it is customized\n * @returns - True if the `uiSchema` describes a custom widget, false otherwise\n */\nexport default function isCustomWidget(uiSchema = {}) {\n return (\n // TODO: Remove the `&& uiSchema['ui:widget'] !== 'hidden'` once we support hidden widgets for arrays.\n // https://rjsf-team.github.io/react-jsonschema-form/docs/usage/widgets/#hidden-widgets\n 'widget' in getUiOptions(uiSchema) && getUiOptions(uiSchema)['widget'] !== 'hidden');\n}\n//# sourceMappingURL=isCustomWidget.js.map","import { UI_WIDGET_KEY } from '../constants';\nimport retrieveSchema from './retrieveSchema';\n/** Checks to see if the `schema` and `uiSchema` combination represents an array of files\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which check for array of files flag is desired\n * @param [uiSchema={}] - The UI schema from which to check the widget\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @returns - True if schema/uiSchema contains an array of files, otherwise false\n */\nexport default function isFilesArray(validator, schema, uiSchema = {}, rootSchema) {\n if (uiSchema[UI_WIDGET_KEY] === 'files') {\n return true;\n }\n if (schema.items) {\n const itemsSchema = retrieveSchema(validator, schema.items, rootSchema);\n return itemsSchema.type === 'string' && itemsSchema.format === 'data-url';\n }\n return false;\n}\n//# sourceMappingURL=isFilesArray.js.map","import { UI_FIELD_KEY, UI_WIDGET_KEY } from '../constants';\nimport getSchemaType from '../getSchemaType';\nimport getUiOptions from '../getUiOptions';\nimport isCustomWidget from '../isCustomWidget';\nimport isFilesArray from './isFilesArray';\nimport isMultiSelect from './isMultiSelect';\n/** Determines whether the combination of `schema` and `uiSchema` properties indicates that the label for the `schema`\n * should be displayed in a UI.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the display label flag is desired\n * @param [uiSchema={}] - The UI schema from which to derive potentially displayable information\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [globalOptions={}] - The optional Global UI Schema from which to get any fallback `xxx` options\n * @returns - True if the label should be displayed or false if it should not\n */\nexport default function getDisplayLabel(validator, schema, uiSchema = {}, rootSchema, globalOptions) {\n const uiOptions = getUiOptions(uiSchema, globalOptions);\n const { label = true } = uiOptions;\n let displayLabel = !!label;\n const schemaType = getSchemaType(schema);\n if (schemaType === 'array') {\n displayLabel =\n isMultiSelect(validator, schema, rootSchema) ||\n isFilesArray(validator, schema, uiSchema, rootSchema) ||\n isCustomWidget(uiSchema);\n }\n if (schemaType === 'object') {\n displayLabel = false;\n }\n if (schemaType === 'boolean' && !uiSchema[UI_WIDGET_KEY]) {\n displayLabel = false;\n }\n if (uiSchema[UI_FIELD_KEY]) {\n displayLabel = false;\n }\n return displayLabel;\n}\n//# sourceMappingURL=getDisplayLabel.js.map","import isEmpty from 'lodash/isEmpty';\nimport mergeObjects from '../mergeObjects';\n/** Merges the errors in `additionalErrorSchema` into the existing `validationData` by combining the hierarchies in the\n * two `ErrorSchema`s and then appending the error list from the `additionalErrorSchema` obtained by calling\n * `validator.toErrorList()` onto the `errors` in the `validationData`. If no `additionalErrorSchema` is passed, then\n * `validationData` is returned.\n *\n * @param validator - The validator used to convert an ErrorSchema to a list of errors\n * @param validationData - The current `ValidationData` into which to merge the additional errors\n * @param [additionalErrorSchema] - The additional set of errors in an `ErrorSchema`\n * @returns - The `validationData` with the additional errors from `additionalErrorSchema` merged into it, if provided.\n * @deprecated - Use the `validationDataMerge()` function exported from `@rjsf/utils` instead. This function will be\n * removed in the next major release.\n */\nexport default function mergeValidationData(validator, validationData, additionalErrorSchema) {\n if (!additionalErrorSchema) {\n return validationData;\n }\n const { errors: oldErrors, errorSchema: oldErrorSchema } = validationData;\n let errors = validator.toErrorList(additionalErrorSchema);\n let errorSchema = additionalErrorSchema;\n if (!isEmpty(oldErrorSchema)) {\n errorSchema = mergeObjects(oldErrorSchema, additionalErrorSchema, true);\n errors = [...oldErrors].concat(errors);\n }\n return { errorSchema, errors };\n}\n//# sourceMappingURL=mergeValidationData.js.map","import get from 'lodash/get';\nimport has from 'lodash/has';\nimport { PROPERTIES_KEY, REF_KEY } from '../constants';\nimport retrieveSchema from './retrieveSchema';\nconst NO_VALUE = Symbol('no Value');\n/** Sanitize the `data` associated with the `oldSchema` so it is considered appropriate for the `newSchema`. If the new\n * schema does not contain any properties, then `undefined` is returned to clear all the form data. Due to the nature\n * of schemas, this sanitization happens recursively for nested objects of data. Also, any properties in the old schema\n * that are non-existent in the new schema are set to `undefined`. The data sanitization process has the following flow:\n *\n * - If the new schema is an object that contains a `properties` object then:\n * - Create a `removeOldSchemaData` object, setting each key in the `oldSchema.properties` having `data` to undefined\n * - Create an empty `nestedData` object for use in the key filtering below:\n * - Iterate over each key in the `newSchema.properties` as follows:\n * - Get the `formValue` of the key from the `data`\n * - Get the `oldKeySchema` and `newKeyedSchema` for the key, defaulting to `{}` when it doesn't exist\n * - Retrieve the schema for any refs within each `oldKeySchema` and/or `newKeySchema`\n * - Get the types of the old and new keyed schemas and if the old doesn't exist or the old & new are the same then:\n * - If `removeOldSchemaData` has an entry for the key, delete it since the new schema has the same property\n * - If type of the key in the new schema is `object`:\n * - Store the value from the recursive `sanitizeDataForNewSchema` call in `nestedData[key]`\n * - Otherwise, check for default or const values:\n * - Get the old and new `default` values from the schema and check:\n * - If the new `default` value does not match the form value:\n * - If the old `default` value DOES match the form value, then:\n * - Replace `removeOldSchemaData[key]` with the new `default`\n * - Otherwise, if the new schema is `readOnly` then replace `removeOldSchemaData[key]` with undefined\n * - Get the old and new `const` values from the schema and check:\n * - If the new `const` value does not match the form value:\n * - If the old `const` value DOES match the form value, then:\n * - Replace `removeOldSchemaData[key]` with the new `const`\n * - Otherwise, replace `removeOldSchemaData[key]` with undefined\n * - Once all keys have been processed, return an object built as follows:\n * - `{ ...removeOldSchemaData, ...nestedData, ...pick(data, keysToKeep) }`\n * - If the new and old schema types are array and the `data` is an array then:\n * - If the type of the old and new schema `items` are a non-array objects:\n * - Retrieve the schema for any refs within each `oldKeySchema.items` and/or `newKeySchema.items`\n * - If the `type`s of both items are the same (or the old does not have a type):\n * - If the type is \"object\", then:\n * - For each element in the `data` recursively sanitize the data, stopping at `maxItems` if specified\n * - Otherwise, just return the `data` removing any values after `maxItems` if it is set\n * - If the type of the old and new schema `items` are booleans of the same value, return `data` as is\n * - Otherwise return `undefined`\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param rootSchema - The root JSON schema of the entire form\n * @param [newSchema] - The new schema for which the data is being sanitized\n * @param [oldSchema] - The old schema from which the data originated\n * @param [data={}] - The form data associated with the schema, defaulting to an empty object when undefined\n * @returns - The new form data, with all the fields uniquely associated with the old schema set\n * to `undefined`. Will return `undefined` if the new schema is not an object containing properties.\n */\nexport default function sanitizeDataForNewSchema(validator, rootSchema, newSchema, oldSchema, data = {}) {\n // By default, we will clear the form data\n let newFormData;\n // If the new schema is of type object and that object contains a list of properties\n if (has(newSchema, PROPERTIES_KEY)) {\n // Create an object containing root-level keys in the old schema, setting each key to undefined to remove the data\n const removeOldSchemaData = {};\n if (has(oldSchema, PROPERTIES_KEY)) {\n const properties = get(oldSchema, PROPERTIES_KEY, {});\n Object.keys(properties).forEach((key) => {\n if (has(data, key)) {\n removeOldSchemaData[key] = undefined;\n }\n });\n }\n const keys = Object.keys(get(newSchema, PROPERTIES_KEY, {}));\n // Create a place to store nested data that will be a side-effect of the filter\n const nestedData = {};\n keys.forEach((key) => {\n const formValue = get(data, key);\n let oldKeyedSchema = get(oldSchema, [PROPERTIES_KEY, key], {});\n let newKeyedSchema = get(newSchema, [PROPERTIES_KEY, key], {});\n // Resolve the refs if they exist\n if (has(oldKeyedSchema, REF_KEY)) {\n oldKeyedSchema = retrieveSchema(validator, oldKeyedSchema, rootSchema, formValue);\n }\n if (has(newKeyedSchema, REF_KEY)) {\n newKeyedSchema = retrieveSchema(validator, newKeyedSchema, rootSchema, formValue);\n }\n // Now get types and see if they are the same\n const oldSchemaTypeForKey = get(oldKeyedSchema, 'type');\n const newSchemaTypeForKey = get(newKeyedSchema, 'type');\n // Check if the old option has the same key with the same type\n if (!oldSchemaTypeForKey || oldSchemaTypeForKey === newSchemaTypeForKey) {\n if (has(removeOldSchemaData, key)) {\n // SIDE-EFFECT: remove the undefined value for a key that has the same type between the old and new schemas\n delete removeOldSchemaData[key];\n }\n // If it is an object, we'll recurse and store the resulting sanitized data for the key\n if (newSchemaTypeForKey === 'object' || (newSchemaTypeForKey === 'array' && Array.isArray(formValue))) {\n // SIDE-EFFECT: process the new schema type of object recursively to save iterations\n const itemData = sanitizeDataForNewSchema(validator, rootSchema, newKeyedSchema, oldKeyedSchema, formValue);\n if (itemData !== undefined || newSchemaTypeForKey === 'array') {\n // only put undefined values for the array type and not the object type\n nestedData[key] = itemData;\n }\n }\n else {\n // Ok, the non-object types match, let's make sure that a default or a const of a different value is replaced\n // with the new default or const. This allows the case where two schemas differ that only by the default/const\n // value to be properly selected\n const newOptionDefault = get(newKeyedSchema, 'default', NO_VALUE);\n const oldOptionDefault = get(oldKeyedSchema, 'default', NO_VALUE);\n if (newOptionDefault !== NO_VALUE && newOptionDefault !== formValue) {\n if (oldOptionDefault === formValue) {\n // If the old default matches the formValue, we'll update the new value to match the new default\n removeOldSchemaData[key] = newOptionDefault;\n }\n else if (get(newKeyedSchema, 'readOnly') === true) {\n // If the new schema has the default set to read-only, treat it like a const and remove the value\n removeOldSchemaData[key] = undefined;\n }\n }\n const newOptionConst = get(newKeyedSchema, 'const', NO_VALUE);\n const oldOptionConst = get(oldKeyedSchema, 'const', NO_VALUE);\n if (newOptionConst !== NO_VALUE && newOptionConst !== formValue) {\n // Since this is a const, if the old value matches, replace the value with the new const otherwise clear it\n removeOldSchemaData[key] = oldOptionConst === formValue ? newOptionConst : undefined;\n }\n }\n }\n });\n newFormData = {\n ...(typeof data == 'string' || Array.isArray(data) ? undefined : data),\n ...removeOldSchemaData,\n ...nestedData,\n };\n // First apply removing the old schema data, then apply the nested data, then apply the old data keys to keep\n }\n else if (get(oldSchema, 'type') === 'array' && get(newSchema, 'type') === 'array' && Array.isArray(data)) {\n let oldSchemaItems = get(oldSchema, 'items');\n let newSchemaItems = get(newSchema, 'items');\n // If any of the array types `items` are arrays (remember arrays are objects) then we'll just drop the data\n // Eventually, we may want to deal with when either of the `items` are arrays since those tuple validations\n if (typeof oldSchemaItems === 'object' &&\n typeof newSchemaItems === 'object' &&\n !Array.isArray(oldSchemaItems) &&\n !Array.isArray(newSchemaItems)) {\n if (has(oldSchemaItems, REF_KEY)) {\n oldSchemaItems = retrieveSchema(validator, oldSchemaItems, rootSchema, data);\n }\n if (has(newSchemaItems, REF_KEY)) {\n newSchemaItems = retrieveSchema(validator, newSchemaItems, rootSchema, data);\n }\n // Now get types and see if they are the same\n const oldSchemaType = get(oldSchemaItems, 'type');\n const newSchemaType = get(newSchemaItems, 'type');\n // Check if the old option has the same key with the same type\n if (!oldSchemaType || oldSchemaType === newSchemaType) {\n const maxItems = get(newSchema, 'maxItems', -1);\n if (newSchemaType === 'object') {\n newFormData = data.reduce((newValue, aValue) => {\n const itemValue = sanitizeDataForNewSchema(validator, rootSchema, newSchemaItems, oldSchemaItems, aValue);\n if (itemValue !== undefined && (maxItems < 0 || newValue.length < maxItems)) {\n newValue.push(itemValue);\n }\n return newValue;\n }, []);\n }\n else {\n newFormData = maxItems > 0 && data.length > maxItems ? data.slice(0, maxItems) : data;\n }\n }\n }\n else if (typeof oldSchemaItems === 'boolean' &&\n typeof newSchemaItems === 'boolean' &&\n oldSchemaItems === newSchemaItems) {\n // If they are both booleans and have the same value just return the data as is otherwise fall-thru to undefined\n newFormData = data;\n }\n // Also probably want to deal with `prefixItems` as tuples with the latest 2020 draft\n }\n return newFormData;\n}\n//# sourceMappingURL=sanitizeDataForNewSchema.js.map","import get from 'lodash/get';\nimport isEqual from 'lodash/isEqual';\nimport { ALL_OF_KEY, DEPENDENCIES_KEY, ID_KEY, ITEMS_KEY, PROPERTIES_KEY, REF_KEY } from '../constants';\nimport isObject from '../isObject';\nimport retrieveSchema from './retrieveSchema';\nimport getSchemaType from '../getSchemaType';\n/** An internal helper that generates an `IdSchema` object for the `schema`, recursively with protection against\n * infinite recursion\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the `IdSchema` is desired\n * @param idPrefix - The prefix to use for the id\n * @param idSeparator - The separator to use for the path segments in the id\n * @param [id] - The base id for the schema\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [_recurseList=[]] - The list of retrieved schemas currently being recursed, used to prevent infinite recursion\n * @returns - The `IdSchema` object for the `schema`\n */\nfunction toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSchema, formData, _recurseList = []) {\n if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema) {\n const _schema = retrieveSchema(validator, schema, rootSchema, formData);\n const sameSchemaIndex = _recurseList.findIndex((item) => isEqual(item, _schema));\n if (sameSchemaIndex === -1) {\n return toIdSchemaInternal(validator, _schema, idPrefix, idSeparator, id, rootSchema, formData, _recurseList.concat(_schema));\n }\n }\n if (ITEMS_KEY in schema && !get(schema, [ITEMS_KEY, REF_KEY])) {\n return toIdSchemaInternal(validator, get(schema, ITEMS_KEY), idPrefix, idSeparator, id, rootSchema, formData, _recurseList);\n }\n const $id = id || idPrefix;\n const idSchema = { $id };\n if (getSchemaType(schema) === 'object' && PROPERTIES_KEY in schema) {\n for (const name in schema.properties) {\n const field = get(schema, [PROPERTIES_KEY, name]);\n const fieldId = idSchema[ID_KEY] + idSeparator + name;\n idSchema[name] = toIdSchemaInternal(validator, isObject(field) ? field : {}, idPrefix, idSeparator, fieldId, rootSchema, \n // It's possible that formData is not an object -- this can happen if an\n // array item has just been added, but not populated with data yet\n get(formData, [name]), _recurseList);\n }\n }\n return idSchema;\n}\n/** Generates an `IdSchema` object for the `schema`, recursively\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the `IdSchema` is desired\n * @param [id] - The base id for the schema\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [idPrefix='root'] - The prefix to use for the id\n * @param [idSeparator='_'] - The separator to use for the path segments in the id\n * @returns - The `IdSchema` object for the `schema`\n */\nexport default function toIdSchema(validator, schema, id, rootSchema, formData, idPrefix = 'root', idSeparator = '_') {\n return toIdSchemaInternal(validator, schema, idPrefix, idSeparator, id, rootSchema, formData);\n}\n//# sourceMappingURL=toIdSchema.js.map","import get from 'lodash/get';\nimport isEqual from 'lodash/isEqual';\nimport set from 'lodash/set';\nimport { ALL_OF_KEY, ANY_OF_KEY, ADDITIONAL_PROPERTIES_KEY, DEPENDENCIES_KEY, ITEMS_KEY, NAME_KEY, ONE_OF_KEY, PROPERTIES_KEY, REF_KEY, RJSF_ADDITONAL_PROPERTIES_FLAG, } from '../constants';\nimport getDiscriminatorFieldFromSchema from '../getDiscriminatorFieldFromSchema';\nimport getClosestMatchingOption from './getClosestMatchingOption';\nimport retrieveSchema from './retrieveSchema';\n/** An internal helper that generates an `PathSchema` object for the `schema`, recursively with protection against\n * infinite recursion\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the `PathSchema` is desired\n * @param [name=''] - The base name for the schema\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @param [_recurseList=[]] - The list of retrieved schemas currently being recursed, used to prevent infinite recursion\n * @returns - The `PathSchema` object for the `schema`\n */\nfunction toPathSchemaInternal(validator, schema, name, rootSchema, formData, _recurseList = []) {\n if (REF_KEY in schema || DEPENDENCIES_KEY in schema || ALL_OF_KEY in schema) {\n const _schema = retrieveSchema(validator, schema, rootSchema, formData);\n const sameSchemaIndex = _recurseList.findIndex((item) => isEqual(item, _schema));\n if (sameSchemaIndex === -1) {\n return toPathSchemaInternal(validator, _schema, name, rootSchema, formData, _recurseList.concat(_schema));\n }\n }\n let pathSchema = {\n [NAME_KEY]: name.replace(/^\\./, ''),\n };\n if (ONE_OF_KEY in schema || ANY_OF_KEY in schema) {\n const xxxOf = ONE_OF_KEY in schema ? schema.oneOf : schema.anyOf;\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const index = getClosestMatchingOption(validator, rootSchema, formData, xxxOf, 0, discriminator);\n const _schema = xxxOf[index];\n pathSchema = {\n ...pathSchema,\n ...toPathSchemaInternal(validator, _schema, name, rootSchema, formData, _recurseList),\n };\n }\n if (ADDITIONAL_PROPERTIES_KEY in schema && schema[ADDITIONAL_PROPERTIES_KEY] !== false) {\n set(pathSchema, RJSF_ADDITONAL_PROPERTIES_FLAG, true);\n }\n if (ITEMS_KEY in schema && Array.isArray(formData)) {\n const { items: schemaItems, additionalItems: schemaAdditionalItems } = schema;\n if (Array.isArray(schemaItems)) {\n formData.forEach((element, i) => {\n if (schemaItems[i]) {\n pathSchema[i] = toPathSchemaInternal(validator, schemaItems[i], `${name}.${i}`, rootSchema, element, _recurseList);\n }\n else if (schemaAdditionalItems) {\n pathSchema[i] = toPathSchemaInternal(validator, schemaAdditionalItems, `${name}.${i}`, rootSchema, element, _recurseList);\n }\n else {\n console.warn(`Unable to generate path schema for \"${name}.${i}\". No schema defined for it`);\n }\n });\n }\n else {\n formData.forEach((element, i) => {\n pathSchema[i] = toPathSchemaInternal(validator, schemaItems, `${name}.${i}`, rootSchema, element, _recurseList);\n });\n }\n }\n else if (PROPERTIES_KEY in schema) {\n for (const property in schema.properties) {\n const field = get(schema, [PROPERTIES_KEY, property]);\n pathSchema[property] = toPathSchemaInternal(validator, field, `${name}.${property}`, rootSchema, \n // It's possible that formData is not an object -- this can happen if an\n // array item has just been added, but not populated with data yet\n get(formData, [property]), _recurseList);\n }\n }\n return pathSchema;\n}\n/** Generates an `PathSchema` object for the `schema`, recursively\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be used when necessary\n * @param schema - The schema for which the `PathSchema` is desired\n * @param [name=''] - The base name for the schema\n * @param [rootSchema] - The root schema, used to primarily to look up `$ref`s\n * @param [formData] - The current formData, if any, to assist retrieving a schema\n * @returns - The `PathSchema` object for the `schema`\n */\nexport default function toPathSchema(validator, schema, name = '', rootSchema, formData) {\n return toPathSchemaInternal(validator, schema, name, rootSchema, formData);\n}\n//# sourceMappingURL=toPathSchema.js.map","import deepEquals from './deepEquals';\nimport { getDefaultFormState, getDisplayLabel, getClosestMatchingOption, getFirstMatchingOption, getMatchingOption, isFilesArray, isMultiSelect, isSelect, mergeValidationData, retrieveSchema, sanitizeDataForNewSchema, toIdSchema, toPathSchema, } from './schema';\n/** The `SchemaUtils` class provides a wrapper around the publicly exported APIs in the `utils/schema` directory such\n * that one does not have to explicitly pass the `validator`, `rootSchema`, or `experimental_defaultFormStateBehavior` to each method.\n * Since these generally do not change across a `Form`, this allows for providing a simplified set of APIs to the\n * `@rjsf/core` components and the various themes as well. This class implements the `SchemaUtilsType` interface.\n */\nclass SchemaUtils {\n /** Constructs the `SchemaUtils` instance with the given `validator` and `rootSchema` stored as instance variables\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param experimental_defaultFormStateBehavior - Configuration flags to allow users to override default form state behavior\n */\n constructor(validator, rootSchema, experimental_defaultFormStateBehavior) {\n this.rootSchema = rootSchema;\n this.validator = validator;\n this.experimental_defaultFormStateBehavior = experimental_defaultFormStateBehavior;\n }\n /** Returns the `ValidatorType` in the `SchemaUtilsType`\n *\n * @returns - The `ValidatorType`\n */\n getValidator() {\n return this.validator;\n }\n /** Determines whether either the `validator` and `rootSchema` differ from the ones associated with this instance of\n * the `SchemaUtilsType`. If either `validator` or `rootSchema` are falsy, then return false to prevent the creation\n * of a new `SchemaUtilsType` with incomplete properties.\n *\n * @param validator - An implementation of the `ValidatorType` interface that will be compared against the current one\n * @param rootSchema - The root schema that will be compared against the current one\n * @param [experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n * @returns - True if the `SchemaUtilsType` differs from the given `validator` or `rootSchema`\n */\n doesSchemaUtilsDiffer(validator, rootSchema, experimental_defaultFormStateBehavior = {}) {\n if (!validator || !rootSchema) {\n return false;\n }\n return (this.validator !== validator ||\n !deepEquals(this.rootSchema, rootSchema) ||\n !deepEquals(this.experimental_defaultFormStateBehavior, experimental_defaultFormStateBehavior));\n }\n /** Returns the superset of `formData` that includes the given set updated to include any missing fields that have\n * computed to have defaults provided in the `schema`.\n *\n * @param schema - The schema for which the default state is desired\n * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n * @param [includeUndefinedValues=false] - Optional flag, if true, cause undefined values to be added as defaults.\n * If \"excludeObjectChildren\", pass `includeUndefinedValues` as false when computing defaults for any nested\n * object properties.\n * @returns - The resulting `formData` with all the defaults provided\n */\n getDefaultFormState(schema, formData, includeUndefinedValues = false) {\n return getDefaultFormState(this.validator, schema, formData, this.rootSchema, includeUndefinedValues, this.experimental_defaultFormStateBehavior);\n }\n /** Determines whether the combination of `schema` and `uiSchema` properties indicates that the label for the `schema`\n * should be displayed in a UI.\n *\n * @param schema - The schema for which the display label flag is desired\n * @param [uiSchema] - The UI schema from which to derive potentially displayable information\n * @param [globalOptions={}] - The optional Global UI Schema from which to get any fallback `xxx` options\n * @returns - True if the label should be displayed or false if it should not\n */\n getDisplayLabel(schema, uiSchema, globalOptions) {\n return getDisplayLabel(this.validator, schema, uiSchema, this.rootSchema, globalOptions);\n }\n /** Determines which of the given `options` provided most closely matches the `formData`.\n * Returns the index of the option that is valid and is the closest match, or 0 if there is no match.\n *\n * The closest match is determined using the number of matching properties, and more heavily favors options with\n * matching readOnly, default, or const values.\n *\n * @param formData - The form data associated with the schema\n * @param options - The list of options that can be selected from\n * @param [selectedOption] - The index of the currently selected option, defaulted to -1 if not specified\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the option that is the closest match to the `formData` or the `selectedOption` if no match\n */\n getClosestMatchingOption(formData, options, selectedOption, discriminatorField) {\n return getClosestMatchingOption(this.validator, this.rootSchema, formData, options, selectedOption, discriminatorField);\n }\n /** Given the `formData` and list of `options`, attempts to find the index of the first option that matches the data.\n * Always returns the first option if there is nothing that matches.\n *\n * @param formData - The current formData, if any, used to figure out a match\n * @param options - The list of options to find a matching options from\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The firstindex of the matched option or 0 if none is available\n */\n getFirstMatchingOption(formData, options, discriminatorField) {\n return getFirstMatchingOption(this.validator, formData, options, this.rootSchema, discriminatorField);\n }\n /** Given the `formData` and list of `options`, attempts to find the index of the option that best matches the data.\n * Deprecated, use `getFirstMatchingOption()` instead.\n *\n * @param formData - The current formData, if any, onto which to provide any missing defaults\n * @param options - The list of options to find a matching options from\n * @param [discriminatorField] - The optional name of the field within the options object whose value is used to\n * determine which option is selected\n * @returns - The index of the matched option or 0 if none is available\n * @deprecated\n */\n getMatchingOption(formData, options, discriminatorField) {\n return getMatchingOption(this.validator, formData, options, this.rootSchema, discriminatorField);\n }\n /** Checks to see if the `schema` and `uiSchema` combination represents an array of files\n *\n * @param schema - The schema for which check for array of files flag is desired\n * @param [uiSchema] - The UI schema from which to check the widget\n * @returns - True if schema/uiSchema contains an array of files, otherwise false\n */\n isFilesArray(schema, uiSchema) {\n return isFilesArray(this.validator, schema, uiSchema, this.rootSchema);\n }\n /** Checks to see if the `schema` combination represents a multi-select\n *\n * @param schema - The schema for which check for a multi-select flag is desired\n * @returns - True if schema contains a multi-select, otherwise false\n */\n isMultiSelect(schema) {\n return isMultiSelect(this.validator, schema, this.rootSchema);\n }\n /** Checks to see if the `schema` combination represents a select\n *\n * @param schema - The schema for which check for a select flag is desired\n * @returns - True if schema contains a select, otherwise false\n */\n isSelect(schema) {\n return isSelect(this.validator, schema, this.rootSchema);\n }\n /** Merges the errors in `additionalErrorSchema` into the existing `validationData` by combining the hierarchies in\n * the two `ErrorSchema`s and then appending the error list from the `additionalErrorSchema` obtained by calling\n * `getValidator().toErrorList()` onto the `errors` in the `validationData`. If no `additionalErrorSchema` is passed,\n * then `validationData` is returned.\n *\n * @param validationData - The current `ValidationData` into which to merge the additional errors\n * @param [additionalErrorSchema] - The additional set of errors\n * @returns - The `validationData` with the additional errors from `additionalErrorSchema` merged into it, if provided.\n * @deprecated - Use the `validationDataMerge()` function exported from `@rjsf/utils` instead. This function will be\n * removed in the next major release.\n */\n mergeValidationData(validationData, additionalErrorSchema) {\n return mergeValidationData(this.validator, validationData, additionalErrorSchema);\n }\n /** Retrieves an expanded schema that has had all of its conditions, additional properties, references and\n * dependencies resolved and merged into the `schema` given a `rawFormData` that is used to do the potentially\n * recursive resolution.\n *\n * @param schema - The schema for which retrieving a schema is desired\n * @param [rawFormData] - The current formData, if any, to assist retrieving a schema\n * @returns - The schema having its conditions, additional properties, references and dependencies resolved\n */\n retrieveSchema(schema, rawFormData) {\n return retrieveSchema(this.validator, schema, this.rootSchema, rawFormData);\n }\n /** Sanitize the `data` associated with the `oldSchema` so it is considered appropriate for the `newSchema`. If the\n * new schema does not contain any properties, then `undefined` is returned to clear all the form data. Due to the\n * nature of schemas, this sanitization happens recursively for nested objects of data. Also, any properties in the\n * old schemas that are non-existent in the new schema are set to `undefined`.\n *\n * @param [newSchema] - The new schema for which the data is being sanitized\n * @param [oldSchema] - The old schema from which the data originated\n * @param [data={}] - The form data associated with the schema, defaulting to an empty object when undefined\n * @returns - The new form data, with all the fields uniquely associated with the old schema set\n * to `undefined`. Will return `undefined` if the new schema is not an object containing properties.\n */\n sanitizeDataForNewSchema(newSchema, oldSchema, data) {\n return sanitizeDataForNewSchema(this.validator, this.rootSchema, newSchema, oldSchema, data);\n }\n /** Generates an `IdSchema` object for the `schema`, recursively\n *\n * @param schema - The schema for which the display label flag is desired\n * @param [id] - The base id for the schema\n * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n * @param [idPrefix='root'] - The prefix to use for the id\n * @param [idSeparator='_'] - The separator to use for the path segments in the id\n * @returns - The `IdSchema` object for the `schema`\n */\n toIdSchema(schema, id, formData, idPrefix = 'root', idSeparator = '_') {\n return toIdSchema(this.validator, schema, id, this.rootSchema, formData, idPrefix, idSeparator);\n }\n /** Generates an `PathSchema` object for the `schema`, recursively\n *\n * @param schema - The schema for which the display label flag is desired\n * @param [name] - The base name for the schema\n * @param [formData] - The current formData, if any, onto which to provide any missing defaults\n * @returns - The `PathSchema` object for the `schema`\n */\n toPathSchema(schema, name, formData) {\n return toPathSchema(this.validator, schema, name, this.rootSchema, formData);\n }\n}\n/** Creates a `SchemaUtilsType` interface that is based around the given `validator` and `rootSchema` parameters. The\n * resulting interface implementation will forward the `validator` and `rootSchema` to all the wrapped APIs.\n *\n * @param validator - an implementation of the `ValidatorType` interface that will be forwarded to all the APIs\n * @param rootSchema - The root schema that will be forwarded to all the APIs\n * @param [experimental_defaultFormStateBehavior] Optional configuration object, if provided, allows users to override default form state behavior\n * @returns - An implementation of a `SchemaUtilsType` interface\n */\nexport default function createSchemaUtils(validator, rootSchema, experimental_defaultFormStateBehavior = {}) {\n return new SchemaUtils(validator, rootSchema, experimental_defaultFormStateBehavior);\n}\n//# sourceMappingURL=createSchemaUtils.js.map","/** Given the `FileReader.readAsDataURL()` based `dataURI` extracts that data into an actual Blob along with the name\n * of that Blob if provided in the URL. If no name is provided, then the name falls back to `unknown`.\n *\n * @param dataURI - The `DataUrl` potentially containing name and raw data to be converted to a Blob\n * @returns - an object containing a Blob and its name, extracted from the URI\n */\nexport default function dataURItoBlob(dataURILike) {\n var _a;\n // check if is dataURI\n if (dataURILike.indexOf('data:') === -1) {\n throw new Error('File is invalid: URI must be a dataURI');\n }\n const dataURI = dataURILike.slice(5);\n // split the dataURI into media and base64, with the base64 signature\n const splitted = dataURI.split(';base64,');\n // if the base64 signature is not present, the latter part will become empty\n if (splitted.length !== 2) {\n throw new Error('File is invalid: dataURI must be base64');\n }\n // extract the mime type, media parameters including the name, and the base64 string\n const [media, base64] = splitted;\n const [mime, ...mediaparams] = media.split(';');\n const type = mime || '';\n // extract the name from the parameters\n const name = decodeURI(\n // parse the parameters into key-value pairs, find a key, and extract a value\n // if no key is found, then the name is unknown\n ((_a = mediaparams.map((param) => param.split('=')).find(([key]) => key === 'name')) === null || _a === void 0 ? void 0 : _a[1]) || 'unknown');\n // Built the Uint8Array Blob parameter from the base64 string.\n try {\n const binary = atob(base64);\n const array = new Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n array[i] = binary.charCodeAt(i);\n }\n // Create the blob object\n const blob = new window.Blob([new Uint8Array(array)], { type });\n return { blob, name };\n }\n catch (error) {\n throw new Error('File is invalid: ' + error.message);\n }\n}\n//# sourceMappingURL=dataURItoBlob.js.map","/** Potentially substitutes all replaceable parameters with the associated value(s) from the `params` if available. When\n * a `params` array is provided, each value in the array is used to replace any of the replaceable parameters in the\n * `inputString` using the `%1`, `%2`, etc. replacement specifiers.\n *\n * @param inputString - The string which will be potentially updated with replacement parameters\n * @param params - The optional list of replaceable parameter values to substitute into the english string\n * @returns - The updated string with any replacement specifiers replaced\n */\nexport default function replaceStringParameters(inputString, params) {\n let output = inputString;\n if (Array.isArray(params)) {\n const parts = output.split(/(%\\d)/);\n params.forEach((param, index) => {\n const partIndex = parts.findIndex((part) => part === `%${index + 1}`);\n if (partIndex >= 0) {\n parts[partIndex] = param;\n }\n });\n output = parts.join('');\n }\n return output;\n}\n//# sourceMappingURL=replaceStringParameters.js.map","import replaceStringParameters from './replaceStringParameters';\n/** Translates a `TranslatableString` value `stringToTranslate` into english. When a `params` array is provided, each\n * value in the array is used to replace any of the replaceable parameters in the `stringToTranslate` using the `%1`,\n * `%2`, etc. replacement specifiers.\n *\n * @param stringToTranslate - The `TranslatableString` value to convert to english\n * @param params - The optional list of replaceable parameter values to substitute into the english string\n * @returns - The `stringToTranslate` itself with any replaceable parameter values substituted\n */\nexport default function englishStringTranslator(stringToTranslate, params) {\n return replaceStringParameters(stringToTranslate, params);\n}\n//# sourceMappingURL=englishStringTranslator.js.map","/** Returns the value(s) from `allEnumOptions` at the index(es) provided by `valueIndex`. If `valueIndex` is not an\n * array AND the index is not valid for `allEnumOptions`, `emptyValue` is returned. If `valueIndex` is an array, AND it\n * contains an invalid index, the returned array will have the resulting undefined values filtered out, leaving only\n * valid values or in the worst case, an empty array.\n *\n * @param valueIndex - The index(es) of the value(s) that should be returned\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @param [emptyValue] - The value to return when the non-array `valueIndex` does not refer to a real option\n * @returns - The single or list of values specified by the single or list of indexes if they are valid. Otherwise,\n * `emptyValue` or an empty list.\n */\nexport default function enumOptionsValueForIndex(valueIndex, allEnumOptions = [], emptyValue) {\n if (Array.isArray(valueIndex)) {\n return (valueIndex\n .map((index) => enumOptionsValueForIndex(index, allEnumOptions))\n // Since the recursive call returns `emptyValue` when we get a bad option, only filter those out\n .filter((val) => val !== emptyValue));\n }\n // So Number(null) and Number('') both return 0, so use emptyValue for those two values\n const index = valueIndex === '' || valueIndex === null ? -1 : Number(valueIndex);\n const option = allEnumOptions[index];\n return option ? option.value : emptyValue;\n}\n//# sourceMappingURL=enumOptionsValueForIndex.js.map","import isEqual from 'lodash/isEqual';\nimport enumOptionsValueForIndex from './enumOptionsValueForIndex';\n/** Removes the enum option value at the `valueIndex` from the currently `selected` (list of) value(s). If `selected` is\n * a list, then that list is updated to remove the enum option value with the `valueIndex` in `allEnumOptions`. If it is\n * a single value, then if the enum option value with the `valueIndex` in `allEnumOptions` matches `selected`, undefined\n * is returned, otherwise the `selected` value is returned.\n *\n * @param valueIndex - The index of the value to be removed from the selected list or single value\n * @param selected - The current (list of) selected value(s)\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @returns - The updated `selected` with the enum option value at `valueIndex` in `allEnumOptions` removed from it,\n * unless `selected` is a single value. In that case, if the `valueIndex` value matches `selected`, returns\n * undefined, otherwise `selected`.\n */\nexport default function enumOptionsDeselectValue(valueIndex, selected, allEnumOptions = []) {\n const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);\n if (Array.isArray(selected)) {\n return selected.filter((v) => !isEqual(v, value));\n }\n return isEqual(value, selected) ? undefined : selected;\n}\n//# sourceMappingURL=enumOptionsDeselectValue.js.map","import isEqual from 'lodash/isEqual';\n/** Determines whether the given `value` is (one of) the `selected` value(s).\n *\n * @param value - The value being checked to see if it is selected\n * @param selected - The current selected value or list of values\n * @returns - true if the `value` is one of the `selected` ones, false otherwise\n */\nexport default function enumOptionsIsSelected(value, selected) {\n if (Array.isArray(selected)) {\n return selected.some((sel) => isEqual(sel, value));\n }\n return isEqual(selected, value);\n}\n//# sourceMappingURL=enumOptionsIsSelected.js.map","import enumOptionsIsSelected from './enumOptionsIsSelected';\n/** Returns the index(es) of the options in `allEnumOptions` whose value(s) match the ones in `value`. All the\n * `enumOptions` are filtered based on whether they are a \"selected\" `value` and the index of each selected one is then\n * stored in an array. If `multiple` is true, that array is returned, otherwise the first element in the array is\n * returned.\n *\n * @param value - The single value or list of values for which indexes are desired\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @param [multiple=false] - Optional flag, if true will return a list of index, otherwise a single one\n * @returns - A single string index for the first `value` in `allEnumOptions`, if not `multiple`. Otherwise, the list\n * of indexes for (each of) the value(s) in `value`.\n */\nexport default function enumOptionsIndexForValue(value, allEnumOptions = [], multiple = false) {\n const selectedIndexes = allEnumOptions\n .map((opt, index) => (enumOptionsIsSelected(opt.value, value) ? String(index) : undefined))\n .filter((opt) => typeof opt !== 'undefined');\n if (!multiple) {\n return selectedIndexes[0];\n }\n return selectedIndexes;\n}\n//# sourceMappingURL=enumOptionsIndexForValue.js.map","/**\n * Checks if `value` is `null` or `undefined`.\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 nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","import enumOptionsValueForIndex from './enumOptionsValueForIndex';\nimport isNil from 'lodash/isNil';\n/** Add the enum option value at the `valueIndex` to the list of `selected` values in the proper order as defined by\n * `allEnumOptions`\n *\n * @param valueIndex - The index of the value that should be selected\n * @param selected - The current list of selected values\n * @param [allEnumOptions=[]] - The list of all the known enumOptions\n * @returns - The updated list of selected enum values with enum value at the `valueIndex` added to it\n */\nexport default function enumOptionsSelectValue(valueIndex, selected, allEnumOptions = []) {\n const value = enumOptionsValueForIndex(valueIndex, allEnumOptions);\n if (!isNil(value)) {\n const index = allEnumOptions.findIndex((opt) => value === opt.value);\n const all = allEnumOptions.map(({ value: val }) => val);\n const updated = selected.slice(0, index).concat(value, selected.slice(index));\n // As inserting values at predefined index positions doesn't work with empty\n // arrays, we need to reorder the updated selection to match the initial order\n return updated.sort((a, b) => Number(all.indexOf(a) > all.indexOf(b)));\n }\n return selected;\n}\n//# sourceMappingURL=enumOptionsSelectValue.js.map","import cloneDeep from 'lodash/cloneDeep';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport { ERRORS_KEY } from './constants';\n/** The `ErrorSchemaBuilder` is used to build an `ErrorSchema` since the definition of the `ErrorSchema` type is\n * designed for reading information rather than writing it. Use this class to add, replace or clear errors in an error\n * schema by using either dotted path or an array of path names. Once you are done building the `ErrorSchema`, you can\n * get the result and/or reset all the errors back to an initial set and start again.\n */\nexport default class ErrorSchemaBuilder {\n /** Construct an `ErrorSchemaBuilder` with an optional initial set of errors in an `ErrorSchema`.\n *\n * @param [initialSchema] - The optional set of initial errors, that will be cloned into the class\n */\n constructor(initialSchema) {\n /** The error schema being built\n *\n * @private\n */\n this.errorSchema = {};\n this.resetAllErrors(initialSchema);\n }\n /** Returns the `ErrorSchema` that has been updated by the methods of the `ErrorSchemaBuilder`\n */\n get ErrorSchema() {\n return this.errorSchema;\n }\n /** Will get an existing `ErrorSchema` at the specified `pathOfError` or create and return one.\n *\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to add the error(s)\n * @returns - The error block for the given `pathOfError` or the root if not provided\n * @private\n */\n getOrCreateErrorBlock(pathOfError) {\n const hasPath = (Array.isArray(pathOfError) && pathOfError.length > 0) || typeof pathOfError === 'string';\n let errorBlock = hasPath ? get(this.errorSchema, pathOfError) : this.errorSchema;\n if (!errorBlock && pathOfError) {\n errorBlock = {};\n set(this.errorSchema, pathOfError, errorBlock);\n }\n return errorBlock;\n }\n /** Resets all errors in the `ErrorSchemaBuilder` back to the `initialSchema` if provided, otherwise an empty set.\n *\n * @param [initialSchema] - The optional set of initial errors, that will be cloned into the class\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n resetAllErrors(initialSchema) {\n this.errorSchema = initialSchema ? cloneDeep(initialSchema) : {};\n return this;\n }\n /** Adds the `errorOrList` to the list of errors in the `ErrorSchema` at either the root level or the location within\n * the schema described by the `pathOfError`. For more information about how to specify the path see the\n * [eslint lodash plugin docs](https://github.com/wix/eslint-plugin-lodash/blob/master/docs/rules/path-style.md).\n *\n * @param errorOrList - The error or list of errors to add into the `ErrorSchema`\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to add the error(s)\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n addErrors(errorOrList, pathOfError) {\n const errorBlock = this.getOrCreateErrorBlock(pathOfError);\n let errorsList = get(errorBlock, ERRORS_KEY);\n if (!Array.isArray(errorsList)) {\n errorsList = [];\n errorBlock[ERRORS_KEY] = errorsList;\n }\n if (Array.isArray(errorOrList)) {\n errorsList.push(...errorOrList);\n }\n else {\n errorsList.push(errorOrList);\n }\n return this;\n }\n /** Sets/replaces the `errorOrList` as the error(s) in the `ErrorSchema` at either the root level or the location\n * within the schema described by the `pathOfError`. For more information about how to specify the path see the\n * [eslint lodash plugin docs](https://github.com/wix/eslint-plugin-lodash/blob/master/docs/rules/path-style.md).\n *\n * @param errorOrList - The error or list of errors to set into the `ErrorSchema`\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to set the error(s)\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n setErrors(errorOrList, pathOfError) {\n const errorBlock = this.getOrCreateErrorBlock(pathOfError);\n // Effectively clone the array being given to prevent accidental outside manipulation of the given list\n const listToAdd = Array.isArray(errorOrList) ? [...errorOrList] : [errorOrList];\n set(errorBlock, ERRORS_KEY, listToAdd);\n return this;\n }\n /** Clears the error(s) in the `ErrorSchema` at either the root level or the location within the schema described by\n * the `pathOfError`. For more information about how to specify the path see the\n * [eslint lodash plugin docs](https://github.com/wix/eslint-plugin-lodash/blob/master/docs/rules/path-style.md).\n *\n * @param [pathOfError] - The optional path into the `ErrorSchema` at which to clear the error(s)\n * @returns - The `ErrorSchemaBuilder` object for chaining purposes\n */\n clearErrors(pathOfError) {\n const errorBlock = this.getOrCreateErrorBlock(pathOfError);\n set(errorBlock, ERRORS_KEY, []);\n return this;\n }\n}\n//# sourceMappingURL=ErrorSchemaBuilder.js.map","/** Given date & time information with optional yearRange & format, returns props for DateElement\n *\n * @param date - Object containing date with optional time information\n * @param time - Determines whether to include time or not\n * @param [yearRange=[1900, new Date().getFullYear() + 2]] - Controls the list of years to be displayed\n * @param [format='YMD'] - Controls the order in which day, month and year input element will be displayed\n * @returns Array of props for DateElement\n */\nexport default function getDateElementProps(date, time, yearRange = [1900, new Date().getFullYear() + 2], format = 'YMD') {\n const { day, month, year, hour, minute, second } = date;\n const dayObj = { type: 'day', range: [1, 31], value: day };\n const monthObj = { type: 'month', range: [1, 12], value: month };\n const yearObj = { type: 'year', range: yearRange, value: year };\n const dateElementProp = [];\n switch (format) {\n case 'MDY':\n dateElementProp.push(monthObj, dayObj, yearObj);\n break;\n case 'DMY':\n dateElementProp.push(dayObj, monthObj, yearObj);\n break;\n case 'YMD':\n default:\n dateElementProp.push(yearObj, monthObj, dayObj);\n }\n if (time) {\n dateElementProp.push({ type: 'hour', range: [0, 23], value: hour }, { type: 'minute', range: [0, 59], value: minute }, { type: 'second', range: [0, 59], value: second });\n }\n return dateElementProp;\n}\n//# sourceMappingURL=getDateElementProps.js.map","/** Extracts the range spec information `{ step?: number, min?: number, max?: number }` that can be spread onto an HTML\n * input from the range analog in the schema `{ multipleOf?: number, minimum?: number, maximum?: number }`.\n *\n * @param schema - The schema from which to extract the range spec\n * @returns - A range specification from the schema\n */\nexport default function rangeSpec(schema) {\n const spec = {};\n if (schema.multipleOf) {\n spec.step = schema.multipleOf;\n }\n if (schema.minimum || schema.minimum === 0) {\n spec.min = schema.minimum;\n }\n if (schema.maximum || schema.maximum === 0) {\n spec.max = schema.maximum;\n }\n return spec;\n}\n//# sourceMappingURL=rangeSpec.js.map","import rangeSpec from './rangeSpec';\n/** Using the `schema`, `defaultType` and `options`, extract out the props for the element that make sense.\n *\n * @param schema - The schema for the field provided by the widget\n * @param [defaultType] - The default type, if any, for the field provided by the widget\n * @param [options={}] - The UI Options for the field provided by the widget\n * @param [autoDefaultStepAny=true] - Determines whether to auto-default step=any when the type is number and no step\n * @returns - The extracted `InputPropsType` object\n */\nexport default function getInputProps(schema, defaultType, options = {}, autoDefaultStepAny = true) {\n const inputProps = {\n type: defaultType || 'text',\n ...rangeSpec(schema),\n };\n // If options.inputType is set use that as the input type\n if (options.inputType) {\n inputProps.type = options.inputType;\n }\n else if (!defaultType) {\n // If the schema is of type number or integer, set the input type to number\n if (schema.type === 'number') {\n inputProps.type = 'number';\n // Only add step if one isn't already defined and we are auto-defaulting the \"any\" step\n if (autoDefaultStepAny && inputProps.step === undefined) {\n // Setting step to 'any' fixes a bug in Safari where decimals are not\n // allowed in number inputs\n inputProps.step = 'any';\n }\n }\n else if (schema.type === 'integer') {\n inputProps.type = 'number';\n // Only add step if one isn't already defined\n if (inputProps.step === undefined) {\n // Since this is integer, you always want to step up or down in multiples of 1\n inputProps.step = 1;\n }\n }\n }\n if (options.autocomplete) {\n inputProps.autoComplete = options.autocomplete;\n }\n return inputProps;\n}\n//# sourceMappingURL=getInputProps.js.map","import { SUBMIT_BTN_OPTIONS_KEY } from './constants';\nimport getUiOptions from './getUiOptions';\n/** The default submit button options, exported for testing purposes\n */\nexport const DEFAULT_OPTIONS = {\n props: {\n disabled: false,\n },\n submitText: 'Submit',\n norender: false,\n};\n/** Extracts any `ui:submitButtonOptions` from the `uiSchema` and merges them onto the `DEFAULT_OPTIONS`\n *\n * @param [uiSchema={}] - the UI Schema from which to extract submit button props\n * @returns - The merging of the `DEFAULT_OPTIONS` with any custom ones\n */\nexport default function getSubmitButtonOptions(uiSchema = {}) {\n const uiOptions = getUiOptions(uiSchema);\n if (uiOptions && uiOptions[SUBMIT_BTN_OPTIONS_KEY]) {\n const options = uiOptions[SUBMIT_BTN_OPTIONS_KEY];\n return { ...DEFAULT_OPTIONS, ...options };\n }\n return DEFAULT_OPTIONS;\n}\n//# sourceMappingURL=getSubmitButtonOptions.js.map","/** Returns the template with the given `name` from either the `uiSchema` if it is defined or from the `registry`\n * otherwise. NOTE, since `ButtonTemplates` are not overridden in `uiSchema` only those in the `registry` are returned.\n *\n * @param name - The name of the template to fetch, restricted to the keys of `TemplatesType`\n * @param registry - The `Registry` from which to read the template\n * @param [uiOptions={}] - The `UIOptionsType` from which to read an alternate template\n * @returns - The template from either the `uiSchema` or `registry` for the `name`\n */\nexport default function getTemplate(name, registry, uiOptions = {}) {\n const { templates } = registry;\n if (name === 'ButtonTemplates') {\n return templates[name];\n }\n return (\n // Evaluating uiOptions[name] results in TS2590: Expression produces a union type that is too complex to represent\n // To avoid that, we cast uiOptions to `any` before accessing the name field\n uiOptions[name] || templates[name]);\n}\n//# sourceMappingURL=getTemplate.js.map","/**\n * @license React\n * react-is.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'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement } from 'react';\nimport ReactIs from 'react-is';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\nimport getSchemaType from './getSchemaType';\n/** The map of schema types to widget type to widget name\n */\nconst widgetMap = {\n boolean: {\n checkbox: 'CheckboxWidget',\n radio: 'RadioWidget',\n select: 'SelectWidget',\n hidden: 'HiddenWidget',\n },\n string: {\n text: 'TextWidget',\n password: 'PasswordWidget',\n email: 'EmailWidget',\n hostname: 'TextWidget',\n ipv4: 'TextWidget',\n ipv6: 'TextWidget',\n uri: 'URLWidget',\n 'data-url': 'FileWidget',\n radio: 'RadioWidget',\n select: 'SelectWidget',\n textarea: 'TextareaWidget',\n hidden: 'HiddenWidget',\n date: 'DateWidget',\n datetime: 'DateTimeWidget',\n 'date-time': 'DateTimeWidget',\n 'alt-date': 'AltDateWidget',\n 'alt-datetime': 'AltDateTimeWidget',\n time: 'TimeWidget',\n color: 'ColorWidget',\n file: 'FileWidget',\n },\n number: {\n text: 'TextWidget',\n select: 'SelectWidget',\n updown: 'UpDownWidget',\n range: 'RangeWidget',\n radio: 'RadioWidget',\n hidden: 'HiddenWidget',\n },\n integer: {\n text: 'TextWidget',\n select: 'SelectWidget',\n updown: 'UpDownWidget',\n range: 'RangeWidget',\n radio: 'RadioWidget',\n hidden: 'HiddenWidget',\n },\n array: {\n select: 'SelectWidget',\n checkboxes: 'CheckboxesWidget',\n files: 'FileWidget',\n hidden: 'HiddenWidget',\n },\n};\n/** Wraps the given widget with stateless functional component that will merge any `defaultProps.options` with the\n * `options` that are provided in the props. It will add the wrapper component as a `MergedWidget` property onto the\n * `Widget` so that future attempts to wrap `AWidget` will return the already existing wrapper.\n *\n * @param AWidget - A widget that will be wrapped or one that is already wrapped\n * @returns - The wrapper widget\n */\nfunction mergeWidgetOptions(AWidget) {\n let MergedWidget = get(AWidget, 'MergedWidget');\n // cache return value as property of widget for proper react reconciliation\n if (!MergedWidget) {\n const defaultOptions = (AWidget.defaultProps && AWidget.defaultProps.options) || {};\n MergedWidget = ({ options, ...props }) => {\n return _jsx(AWidget, { options: { ...defaultOptions, ...options }, ...props });\n };\n set(AWidget, 'MergedWidget', MergedWidget);\n }\n return MergedWidget;\n}\n/** Given a schema representing a field to render and either the name or actual `Widget` implementation, returns the\n * React component that is used to render the widget. If the `widget` is already a React component, then it is wrapped\n * with a `MergedWidget`. Otherwise an attempt is made to look up the widget inside of the `registeredWidgets` map based\n * on the schema type and `widget` name. If no widget component can be found an `Error` is thrown.\n *\n * @param schema - The schema for the field\n * @param [widget] - Either the name of the widget OR a `Widget` implementation to use\n * @param [registeredWidgets={}] - A registry of widget name to `Widget` implementation\n * @returns - The `Widget` component to use\n * @throws - An error if there is no `Widget` component that can be returned\n */\nexport default function getWidget(schema, widget, registeredWidgets = {}) {\n const type = getSchemaType(schema);\n if (typeof widget === 'function' ||\n (widget && ReactIs.isForwardRef(createElement(widget))) ||\n ReactIs.isMemo(widget)) {\n return mergeWidgetOptions(widget);\n }\n if (typeof widget !== 'string') {\n throw new Error(`Unsupported widget definition: ${typeof widget}`);\n }\n if (widget in registeredWidgets) {\n const registeredWidget = registeredWidgets[widget];\n return getWidget(schema, registeredWidget, registeredWidgets);\n }\n if (typeof type === 'string') {\n if (!(type in widgetMap)) {\n throw new Error(`No widget for type '${type}'`);\n }\n if (widget in widgetMap[type]) {\n const registeredWidget = registeredWidgets[widgetMap[type][widget]];\n return getWidget(schema, registeredWidget, registeredWidgets);\n }\n }\n throw new Error(`No widget '${widget}' for type '${type}'`);\n}\n//# sourceMappingURL=getWidget.js.map","/** JS has no built-in hashing function, so rolling our own\n * based on Java's hashing fn:\n * http://www.java2s.com/example/nodejs-utility-method/string-hash/hashcode-4dc2b.html\n *\n * @param string - The string for which to get the hash\n * @returns - The resulting hash of the string in hex format\n */\nfunction hashString(string) {\n let hash = 0;\n for (let i = 0; i < string.length; i += 1) {\n const chr = string.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash = hash & hash; // Convert to 32bit integer\n }\n return hash.toString(16);\n}\n/** Stringifies the schema and returns the hash of the resulting string. Sorts schema fields\n * in consistent order before stringify to prevent different hash ids for the same schema.\n *\n * @param schema - The schema for which the hash is desired\n * @returns - The string obtained from the hash of the stringified schema\n */\nexport default function hashForSchema(schema) {\n const allKeys = new Set();\n // solution source: https://stackoverflow.com/questions/16167581/sort-object-properties-and-json-stringify/53593328#53593328\n JSON.stringify(schema, (key, value) => (allKeys.add(key), value));\n return hashString(JSON.stringify(schema, Array.from(allKeys).sort()));\n}\n//# sourceMappingURL=hashForSchema.js.map","import getWidget from './getWidget';\n/** Detects whether the `widget` exists for the `schema` with the associated `registryWidgets` and returns true if it\n * does, or false if it doesn't.\n *\n * @param schema - The schema for the field\n * @param widget - Either the name of the widget OR a `Widget` implementation to use\n * @param [registeredWidgets={}] - A registry of widget name to `Widget` implementation\n * @returns - True if the widget exists, false otherwise\n */\nexport default function hasWidget(schema, widget, registeredWidgets = {}) {\n try {\n getWidget(schema, widget, registeredWidgets);\n return true;\n }\n catch (e) {\n const err = e;\n if (err.message && (err.message.startsWith('No widget') || err.message.startsWith('Unsupported widget'))) {\n return false;\n }\n throw e;\n }\n}\n//# sourceMappingURL=hasWidget.js.map","import isString from 'lodash/isString';\nimport { ID_KEY } from './constants';\n/** Generates a consistent `id` pattern for a given `id` and a `suffix`\n *\n * @param id - Either simple string id or an IdSchema from which to extract it\n * @param suffix - The suffix to append to the id\n */\nfunction idGenerator(id, suffix) {\n const theId = isString(id) ? id : id[ID_KEY];\n return `${theId}__${suffix}`;\n}\n/** Return a consistent `id` for the field description element\n *\n * @param id - Either simple string id or an IdSchema from which to extract it\n * @returns - The consistent id for the field description element from the given `id`\n */\nexport function descriptionId(id) {\n return idGenerator(id, 'description');\n}\n/** Return a consistent `id` for the field error element\n *\n * @param id - Either simple string id or an IdSchema from which to extract it\n * @returns - The consistent id for the field error element from the given `id`\n */\nexport function errorId(id) {\n return idGenerator(id, 'error');\n}\n/** Return a consistent `id` for the field examples element\n *\n * @param id - Either simple string id or an IdSchema from which to extract it\n * @returns - The consistent id for the field examples element from the given `id`\n */\nexport function examplesId(id) {\n return idGenerator(id, 'examples');\n}\n/** Return a consistent `id` for the field help element\n *\n * @param id - Either simple string id or an IdSchema from which to extract it\n * @returns - The consistent id for the field help element from the given `id`\n */\nexport function helpId(id) {\n return idGenerator(id, 'help');\n}\n/** Return a consistent `id` for the field title element\n *\n * @param id - Either simple string id or an IdSchema from which to extract it\n * @returns - The consistent id for the field title element from the given `id`\n */\nexport function titleId(id) {\n return idGenerator(id, 'title');\n}\n/** Return a list of element ids that contain additional information about the field that can be used to as the aria\n * description of the field. This is correctly omitting `titleId` which would be \"labeling\" rather than \"describing\" the\n * element.\n *\n * @param id - Either simple string id or an IdSchema from which to extract it\n * @param [includeExamples=false] - Optional flag, if true, will add the `examplesId` into the list\n * @returns - The string containing the list of ids for use in an `aria-describedBy` attribute\n */\nexport function ariaDescribedByIds(id, includeExamples = false) {\n const examples = includeExamples ? ` ${examplesId(id)}` : '';\n return `${errorId(id)} ${descriptionId(id)} ${helpId(id)}${examples}`;\n}\n/** Return a consistent `id` for the `optionIndex`s of a `Radio` or `Checkboxes` widget\n *\n * @param id - The id of the parent component for the option\n * @param optionIndex - The index of the option for which the id is desired\n * @returns - An id for the option index based on the parent `id`\n */\nexport function optionId(id, optionIndex) {\n return `${id}-${optionIndex}`;\n}\n//# sourceMappingURL=idGenerators.js.map","export default function labelValue(label, hideLabel, fallback) {\n return hideLabel ? fallback : label;\n}\n//# sourceMappingURL=labelValue.js.map","/** Converts a local Date string into a UTC date string\n *\n * @param dateString - The string representation of a date as accepted by the `Date()` constructor\n * @returns - A UTC date string if `dateString` is truthy, otherwise undefined\n */\nexport default function localToUTC(dateString) {\n return dateString ? new Date(dateString).toJSON() : undefined;\n}\n//# sourceMappingURL=localToUTC.js.map","import { CONST_KEY, ENUM_KEY } from './constants';\n/** Returns the constant value from the schema when it is either a single value enum or has a const key. Otherwise\n * throws an error.\n *\n * @param schema - The schema from which to obtain the constant value\n * @returns - The constant value for the schema\n * @throws - Error when the schema does not have a constant value\n */\nexport default function toConstant(schema) {\n if (ENUM_KEY in schema && Array.isArray(schema.enum) && schema.enum.length === 1) {\n return schema.enum[0];\n }\n if (CONST_KEY in schema) {\n return schema.const;\n }\n throw new Error('schema cannot be inferred as a constant');\n}\n//# sourceMappingURL=toConstant.js.map","import toConstant from './toConstant';\n/** Gets the list of options from the schema. If the schema has an enum list, then those enum values are returned. The\n * labels for the options will be extracted from the non-standard, RJSF-deprecated `enumNames` if it exists, otherwise\n * the label will be the same as the `value`. If the schema has a `oneOf` or `anyOf`, then the value is the list of\n * `const` values from the schema and the label is either the `schema.title` or the value.\n *\n * @param schema - The schema from which to extract the options list\n * @returns - The list of options from the schema\n */\nexport default function optionsList(schema) {\n // enumNames was deprecated in v5 and is intentionally omitted from the RJSFSchema type.\n // Cast the type to include enumNames so the feature still works.\n const schemaWithEnumNames = schema;\n if (schemaWithEnumNames.enumNames && process.env.NODE_ENV !== 'production') {\n console.warn('The enumNames property is deprecated and may be removed in a future major release.');\n }\n if (schema.enum) {\n return schema.enum.map((value, i) => {\n const label = (schemaWithEnumNames.enumNames && schemaWithEnumNames.enumNames[i]) || String(value);\n return { label, value };\n });\n }\n const altSchemas = schema.oneOf || schema.anyOf;\n return (altSchemas &&\n altSchemas.map((aSchemaDef) => {\n const aSchema = aSchemaDef;\n const value = toConstant(aSchema);\n const label = aSchema.title || String(value);\n return {\n schema: aSchema,\n label,\n value,\n };\n }));\n}\n//# sourceMappingURL=optionsList.js.map","/** Given a list of `properties` and an `order` list, returns a list that contains the `properties` ordered correctly.\n * If `order` is not an array, then the untouched `properties` list is returned. Otherwise `properties` is ordered per\n * the `order` list. If `order` contains a '*' then any `properties` that are not mentioned explicity in `order` will be\n * places in the location of the `*`.\n *\n * @param properties - The list of property keys to be ordered\n * @param order - An array of property keys to be ordered first, with an optional '*' property\n * @returns - A list with the `properties` ordered\n * @throws - Error when the properties cannot be ordered correctly\n */\nexport default function orderProperties(properties, order) {\n if (!Array.isArray(order)) {\n return properties;\n }\n const arrayToHash = (arr) => arr.reduce((prev, curr) => {\n prev[curr] = true;\n return prev;\n }, {});\n const errorPropList = (arr) => arr.length > 1 ? `properties '${arr.join(\"', '\")}'` : `property '${arr[0]}'`;\n const propertyHash = arrayToHash(properties);\n const orderFiltered = order.filter((prop) => prop === '*' || propertyHash[prop]);\n const orderHash = arrayToHash(orderFiltered);\n const rest = properties.filter((prop) => !orderHash[prop]);\n const restIndex = orderFiltered.indexOf('*');\n if (restIndex === -1) {\n if (rest.length) {\n throw new Error(`uiSchema order list does not contain ${errorPropList(rest)}`);\n }\n return orderFiltered;\n }\n if (restIndex !== orderFiltered.lastIndexOf('*')) {\n throw new Error('uiSchema order list contains more than one wildcard item');\n }\n const complete = [...orderFiltered];\n complete.splice(restIndex, 1, ...rest);\n return complete;\n}\n//# sourceMappingURL=orderProperties.js.map","/** Returns a string representation of the `num` that is padded with leading \"0\"s if necessary\n *\n * @param num - The number to pad\n * @param width - The width of the string at which no lead padding is necessary\n * @returns - The number converted to a string with leading zero padding if the number of digits is less than `width`\n */\nexport default function pad(num, width) {\n let s = String(num);\n while (s.length < width) {\n s = '0' + s;\n }\n return s;\n}\n//# sourceMappingURL=pad.js.map","/** Parses the `dateString` into a `DateObject`, including the time information when `includeTime` is true\n *\n * @param dateString - The date string to parse into a DateObject\n * @param [includeTime=true] - Optional flag, if false, will not include the time data into the object\n * @returns - The date string converted to a `DateObject`\n * @throws - Error when the date cannot be parsed from the string\n */\nexport default function parseDateString(dateString, includeTime = true) {\n if (!dateString) {\n return {\n year: -1,\n month: -1,\n day: -1,\n hour: includeTime ? -1 : 0,\n minute: includeTime ? -1 : 0,\n second: includeTime ? -1 : 0,\n };\n }\n const date = new Date(dateString);\n if (Number.isNaN(date.getTime())) {\n throw new Error('Unable to parse date ' + dateString);\n }\n return {\n year: date.getUTCFullYear(),\n month: date.getUTCMonth() + 1,\n day: date.getUTCDate(),\n hour: includeTime ? date.getUTCHours() : 0,\n minute: includeTime ? date.getUTCMinutes() : 0,\n second: includeTime ? date.getUTCSeconds() : 0,\n };\n}\n//# sourceMappingURL=parseDateString.js.map","/** Check to see if a `schema` specifies that a value must be true. This happens when:\n * - `schema.const` is truthy\n * - `schema.enum` == `[true]`\n * - `schema.anyOf` or `schema.oneOf` has a single value which recursively returns true\n * - `schema.allOf` has at least one value which recursively returns true\n *\n * @param schema - The schema to check\n * @returns - True if the schema specifies a value that must be true, false otherwise\n */\nexport default function schemaRequiresTrueValue(schema) {\n // Check if const is a truthy value\n if (schema.const) {\n return true;\n }\n // Check if an enum has a single value of true\n if (schema.enum && schema.enum.length === 1 && schema.enum[0] === true) {\n return true;\n }\n // If anyOf has a single value, evaluate the subschema\n if (schema.anyOf && schema.anyOf.length === 1) {\n return schemaRequiresTrueValue(schema.anyOf[0]);\n }\n // If oneOf has a single value, evaluate the subschema\n if (schema.oneOf && schema.oneOf.length === 1) {\n return schemaRequiresTrueValue(schema.oneOf[0]);\n }\n // Evaluate each subschema in allOf, to see if one of them requires a true value\n if (schema.allOf) {\n const schemaSome = (subSchema) => schemaRequiresTrueValue(subSchema);\n return schema.allOf.some(schemaSome);\n }\n return false;\n}\n//# sourceMappingURL=schemaRequiresTrueValue.js.map","import deepEquals from './deepEquals';\n/** Determines whether the given `component` should be rerendered by comparing its current set of props and state\n * against the next set. If either of those two sets are not the same, then the component should be rerendered.\n *\n * @param component - A React component being checked\n * @param nextProps - The next set of props against which to check\n * @param nextState - The next set of state against which to check\n * @returns - True if the component should be re-rendered, false otherwise\n */\nexport default function shouldRender(component, nextProps, nextState) {\n const { props, state } = component;\n return !deepEquals(props, nextProps) || !deepEquals(state, nextState);\n}\n//# sourceMappingURL=shouldRender.js.map","/** Returns a UTC date string for the given `dateObject`. If `time` is false, then the time portion of the string is\n * removed.\n *\n * @param dateObject - The `DateObject` to convert to a date string\n * @param [time=true] - Optional flag used to remove the time portion of the date string if false\n * @returns - The UTC date string\n */\nexport default function toDateString(dateObject, time = true) {\n const { year, month, day, hour = 0, minute = 0, second = 0 } = dateObject;\n const utcTime = Date.UTC(year, month - 1, day, hour, minute, second);\n const datetime = new Date(utcTime).toJSON();\n return time ? datetime : datetime.slice(0, 10);\n}\n//# sourceMappingURL=toDateString.js.map","import isPlainObject from 'lodash/isPlainObject';\nimport { ERRORS_KEY } from './constants';\n/** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n * @returns - The list of `RJSFValidationErrors` extracted from the `errorSchema`\n */\nexport default function toErrorList(errorSchema, fieldPath = []) {\n if (!errorSchema) {\n return [];\n }\n let errorList = [];\n if (ERRORS_KEY in errorSchema) {\n errorList = errorList.concat(errorSchema[ERRORS_KEY].map((message) => {\n const property = `.${fieldPath.join('.')}`;\n return {\n property,\n message,\n stack: `${property} ${message}`,\n };\n }));\n }\n return Object.keys(errorSchema).reduce((acc, key) => {\n if (key !== ERRORS_KEY) {\n const childSchema = errorSchema[key];\n if (isPlainObject(childSchema)) {\n acc = acc.concat(toErrorList(childSchema, [...fieldPath, key]));\n }\n }\n return acc;\n }, errorList);\n}\n//# sourceMappingURL=toErrorList.js.map","var arrayMap = require('./_arrayMap'),\n copyArray = require('./_copyArray'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol'),\n stringToPath = require('./_stringToPath'),\n toKey = require('./_toKey'),\n toString = require('./toString');\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nmodule.exports = toPath;\n","import toPath from 'lodash/toPath';\nimport ErrorSchemaBuilder from './ErrorSchemaBuilder';\n/** Transforms a rjsf validation errors list:\n * [\n * {property: '.level1.level2[2].level3', message: 'err a'},\n * {property: '.level1.level2[2].level3', message: 'err b'},\n * {property: '.level1.level2[4].level3', message: 'err b'},\n * ]\n * Into an error tree:\n * {\n * level1: {\n * level2: {\n * 2: {level3: {errors: ['err a', 'err b']}},\n * 4: {level3: {errors: ['err b']}},\n * }\n * }\n * };\n *\n * @param errors - The list of RJSFValidationError objects\n * @returns - The `ErrorSchema` built from the list of `RJSFValidationErrors`\n */\nexport default function toErrorSchema(errors) {\n const builder = new ErrorSchemaBuilder();\n if (errors.length) {\n errors.forEach((error) => {\n const { property, message } = error;\n // When the property is the root element, just use an empty array for the path\n const path = property === '.' ? [] : toPath(property);\n // If the property is at the root (.level1) then toPath creates\n // an empty array element at the first index. Remove it.\n if (path.length > 0 && path[0] === '') {\n path.splice(0, 1);\n }\n if (message) {\n builder.addErrors(message, path);\n }\n });\n }\n return builder.ErrorSchema;\n}\n//# sourceMappingURL=toErrorSchema.js.map","import isPlainObject from 'lodash/isPlainObject';\n/** Unwraps the `errorHandler` structure into the associated `ErrorSchema`, stripping the `addError()` functions from it\n *\n * @param errorHandler - The `FormValidation` error handling structure\n * @returns - The `ErrorSchema` resulting from the stripping of the `addError()` function\n */\nexport default function unwrapErrorHandler(errorHandler) {\n return Object.keys(errorHandler).reduce((acc, key) => {\n if (key === 'addError') {\n return acc;\n }\n else {\n const childSchema = errorHandler[key];\n if (isPlainObject(childSchema)) {\n return {\n ...acc,\n [key]: unwrapErrorHandler(childSchema),\n };\n }\n return { ...acc, [key]: childSchema };\n }\n }, {});\n}\n//# sourceMappingURL=unwrapErrorHandler.js.map","import pad from './pad';\n/** Converts a UTC date string into a local Date format\n *\n * @param jsonDate - A UTC date string\n * @returns - An empty string when `jsonDate` is falsey, otherwise a date string in local format\n */\nexport default function utcToLocal(jsonDate) {\n if (!jsonDate) {\n return '';\n }\n // required format of `'yyyy-MM-ddThh:mm' followed by optional ':ss' or ':ss.SSS'\n // https://html.spec.whatwg.org/multipage/input.html#local-date-and-time-state-(type%3Ddatetime-local)\n // > should be a _valid local date and time string_ (not GMT)\n // Note - date constructor passed local ISO-8601 does not correctly\n // change time to UTC in node pre-8\n const date = new Date(jsonDate);\n const yyyy = pad(date.getFullYear(), 4);\n const MM = pad(date.getMonth() + 1, 2);\n const dd = pad(date.getDate(), 2);\n const hh = pad(date.getHours(), 2);\n const mm = pad(date.getMinutes(), 2);\n const ss = pad(date.getSeconds(), 2);\n const SSS = pad(date.getMilliseconds(), 3);\n return `${yyyy}-${MM}-${dd}T${hh}:${mm}:${ss}.${SSS}`;\n}\n//# sourceMappingURL=utcToLocal.js.map","import isEmpty from 'lodash/isEmpty';\nimport mergeObjects from './mergeObjects';\nimport toErrorList from './toErrorList';\n/** Merges the errors in `additionalErrorSchema` into the existing `validationData` by combining the hierarchies in the\n * two `ErrorSchema`s and then appending the error list from the `additionalErrorSchema` obtained by calling\n * `toErrorList()` on the `errors` in the `validationData`. If no `additionalErrorSchema` is passed, then\n * `validationData` is returned.\n *\n * @param validationData - The current `ValidationData` into which to merge the additional errors\n * @param [additionalErrorSchema] - The optional additional set of errors in an `ErrorSchema`\n * @returns - The `validationData` with the additional errors from `additionalErrorSchema` merged into it, if provided.\n */\nexport default function validationDataMerge(validationData, additionalErrorSchema) {\n if (!additionalErrorSchema) {\n return validationData;\n }\n const { errors: oldErrors, errorSchema: oldErrorSchema } = validationData;\n let errors = toErrorList(additionalErrorSchema);\n let errorSchema = additionalErrorSchema;\n if (!isEmpty(oldErrorSchema)) {\n errorSchema = mergeObjects(oldErrorSchema, additionalErrorSchema, true);\n errors = [...oldErrors].concat(errors);\n }\n return { errorSchema, errors };\n}\n//# sourceMappingURL=validationDataMerge.js.map","import { REF_KEY, ROOT_SCHEMA_PREFIX } from './constants';\nimport isObject from 'lodash/isObject';\n/** Takes a `node` object and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n */\nfunction withIdRefPrefixObject(node) {\n for (const key in node) {\n const realObj = node;\n const value = realObj[key];\n if (key === REF_KEY && typeof value === 'string' && value.startsWith('#')) {\n realObj[key] = ROOT_SCHEMA_PREFIX + value;\n }\n else {\n realObj[key] = withIdRefPrefix(value);\n }\n }\n return node;\n}\n/** Takes a `node` object list and transforms any contained `$ref` node variables with a prefix, recursively calling\n * `withIdRefPrefix` for any other elements.\n *\n * @param node - The list of object nodes to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n */\nfunction withIdRefPrefixArray(node) {\n for (let i = 0; i < node.length; i++) {\n node[i] = withIdRefPrefix(node[i]);\n }\n return node;\n}\n/** Recursively prefixes all `$ref`s in a schema with the value of the `ROOT_SCHEMA_PREFIX` constant.\n * This is used in isValid to make references to the rootSchema\n *\n * @param schemaNode - The object node to which a ROOT_SCHEMA_PREFIX is added when a REF_KEY is part of it\n * @returns - A copy of the `schemaNode` with updated `$ref`s\n */\nexport default function withIdRefPrefix(schemaNode) {\n if (Array.isArray(schemaNode)) {\n return withIdRefPrefixArray([...schemaNode]);\n }\n if (isObject(schemaNode)) {\n return withIdRefPrefixObject({ ...schemaNode });\n }\n return schemaNode;\n}\n//# sourceMappingURL=withIdRefPrefix.js.map","/** An enumeration of all the translatable strings used by `@rjsf/core` and its themes. The value of each of the\n * enumeration keys is expected to be the actual english string. Some strings contain replaceable parameter values\n * as indicated by `%1`, `%2`, etc. The number after the `%` indicates the order of the parameter. The ordering of\n * parameters is important because some languages may choose to put the second parameter before the first in its\n * translation. Also, some strings are rendered using `markdown-to-jsx` and thus support markdown and inline html.\n */\nexport var TranslatableString;\n(function (TranslatableString) {\n /** Fallback title of an array item, used by ArrayField */\n TranslatableString[\"ArrayItemTitle\"] = \"Item\";\n /** Missing items reason, used by ArrayField */\n TranslatableString[\"MissingItems\"] = \"Missing items definition\";\n /** Yes label, used by BooleanField */\n TranslatableString[\"YesLabel\"] = \"Yes\";\n /** No label, used by BooleanField */\n TranslatableString[\"NoLabel\"] = \"No\";\n /** Close label, used by ErrorList */\n TranslatableString[\"CloseLabel\"] = \"Close\";\n /** Errors label, used by ErrorList */\n TranslatableString[\"ErrorsLabel\"] = \"Errors\";\n /** New additionalProperties string default value, used by ObjectField */\n TranslatableString[\"NewStringDefault\"] = \"New Value\";\n /** Add button title, used by AddButton */\n TranslatableString[\"AddButton\"] = \"Add\";\n /** Add button title, used by AddButton */\n TranslatableString[\"AddItemButton\"] = \"Add Item\";\n /** Copy button title, used by IconButton */\n TranslatableString[\"CopyButton\"] = \"Copy\";\n /** Move down button title, used by IconButton */\n TranslatableString[\"MoveDownButton\"] = \"Move down\";\n /** Move up button title, used by IconButton */\n TranslatableString[\"MoveUpButton\"] = \"Move up\";\n /** Remove button title, used by IconButton */\n TranslatableString[\"RemoveButton\"] = \"Remove\";\n /** Now label, used by AltDateWidget */\n TranslatableString[\"NowLabel\"] = \"Now\";\n /** Clear label, used by AltDateWidget */\n TranslatableString[\"ClearLabel\"] = \"Clear\";\n /** Aria date label, used by DateWidget */\n TranslatableString[\"AriaDateLabel\"] = \"Select a date\";\n /** File preview label, used by FileWidget */\n TranslatableString[\"PreviewLabel\"] = \"Preview\";\n /** Decrement button aria label, used by UpDownWidget */\n TranslatableString[\"DecrementAriaLabel\"] = \"Decrease value by 1\";\n /** Increment button aria label, used by UpDownWidget */\n TranslatableString[\"IncrementAriaLabel\"] = \"Increase value by 1\";\n // Strings with replaceable parameters\n /** Unknown field type reason, where %1 will be replaced with the type as provided by SchemaField */\n TranslatableString[\"UnknownFieldType\"] = \"Unknown field type %1\";\n /** Option prefix, where %1 will be replaced with the option index as provided by MultiSchemaField */\n TranslatableString[\"OptionPrefix\"] = \"Option %1\";\n /** Option prefix, where %1 and %2 will be replaced by the schema title and option index, respectively as provided by\n * MultiSchemaField\n */\n TranslatableString[\"TitleOptionPrefix\"] = \"%1 option %2\";\n /** Key label, where %1 will be replaced by the label as provided by WrapIfAdditionalTemplate */\n TranslatableString[\"KeyLabel\"] = \"%1 Key\";\n // Strings with replaceable parameters AND/OR that support markdown and html\n /** Invalid object field configuration as provided by the ObjectField */\n TranslatableString[\"InvalidObjectField\"] = \"Invalid \\\"%1\\\" object field configuration: %2.\";\n /** Unsupported field schema, used by UnsupportedField */\n TranslatableString[\"UnsupportedField\"] = \"Unsupported field schema.\";\n /** Unsupported field schema, where %1 will be replaced by the idSchema.$id as provided by UnsupportedField */\n TranslatableString[\"UnsupportedFieldWithId\"] = \"Unsupported field schema for field %1.\";\n /** Unsupported field schema, where %1 will be replaced by the reason string as provided by UnsupportedField */\n TranslatableString[\"UnsupportedFieldWithReason\"] = \"Unsupported field schema: %1.\";\n /** Unsupported field schema, where %1 and %2 will be replaced by the idSchema.$id and reason strings, respectively,\n * as provided by UnsupportedField\n */\n TranslatableString[\"UnsupportedFieldWithIdAndReason\"] = \"Unsupported field schema for field %1: %2.\";\n /** File name, type and size info, where %1, %2 and %3 will be replaced by the file name, file type and file size as\n * provided by FileWidget\n */\n TranslatableString[\"FilesInfo\"] = \"**%1** (%2, %3 bytes)\";\n})(TranslatableString || (TranslatableString = {}));\n//# sourceMappingURL=enums.js.map","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","var basePickBy = require('./_basePickBy'),\n hasIn = require('./hasIn');\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nmodule.exports = basePick;\n","var basePick = require('./_basePick'),\n flatRest = require('./_flatRest');\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Component } from 'react';\nimport { getTemplate, getWidget, getUiOptions, isFixedItems, allowAdditionalItems, isCustomWidget, optionsList, TranslatableString, ITEMS_KEY, } from '@rjsf/utils';\nimport cloneDeep from 'lodash/cloneDeep';\nimport get from 'lodash/get';\nimport isObject from 'lodash/isObject';\nimport set from 'lodash/set';\nimport { nanoid } from 'nanoid';\n/** Used to generate a unique ID for an element in a row */\nfunction generateRowId() {\n return nanoid();\n}\n/** Converts the `formData` into `KeyedFormDataType` data, using the `generateRowId()` function to create the key\n *\n * @param formData - The data for the form\n * @returns - The `formData` converted into a `KeyedFormDataType` element\n */\nfunction generateKeyedFormData(formData) {\n return !Array.isArray(formData)\n ? []\n : formData.map((item) => {\n return {\n key: generateRowId(),\n item,\n };\n });\n}\n/** Converts `KeyedFormDataType` data into the inner `formData`\n *\n * @param keyedFormData - The `KeyedFormDataType` to be converted\n * @returns - The inner `formData` item(s) in the `keyedFormData`\n */\nfunction keyedToPlainFormData(keyedFormData) {\n if (Array.isArray(keyedFormData)) {\n return keyedFormData.map((keyedItem) => keyedItem.item);\n }\n return [];\n}\n/** The `ArrayField` component is used to render a field in the schema that is of type `array`. It supports both normal\n * and fixed array, allowing user to add and remove elements from the array data.\n */\nclass ArrayField extends Component {\n /** Constructs an `ArrayField` from the `props`, generating the initial keyed data from the `formData`\n *\n * @param props - The `FieldProps` for this template\n */\n constructor(props) {\n super(props);\n /** Returns the default form information for an item based on the schema for that item. Deals with the possibility\n * that the schema is fixed and allows additional items.\n */\n this._getNewFormDataRow = () => {\n const { schema, registry } = this.props;\n const { schemaUtils } = registry;\n let itemSchema = schema.items;\n if (isFixedItems(schema) && allowAdditionalItems(schema)) {\n itemSchema = schema.additionalItems;\n }\n // Cast this as a T to work around schema utils being for T[] caused by the FieldProps call on the class\n return schemaUtils.getDefaultFormState(itemSchema);\n };\n /** Callback handler for when the user clicks on the add button. Creates a new row of keyed form data at the end of\n * the list, adding it into the state, and then returning `onChange()` with the plain form data converted from the\n * keyed data\n *\n * @param event - The event for the click\n */\n this.onAddClick = (event) => {\n this._handleAddClick(event);\n };\n /** Callback handler for when the user clicks on the add button on an existing array element. Creates a new row of\n * keyed form data inserted at the `index`, adding it into the state, and then returning `onChange()` with the plain\n * form data converted from the keyed data\n *\n * @param index - The index at which the add button is clicked\n */\n this.onAddIndexClick = (index) => {\n return (event) => {\n this._handleAddClick(event, index);\n };\n };\n /** Callback handler for when the user clicks on the copy button on an existing array element. Clones the row of\n * keyed form data at the `index` into the next position in the state, and then returning `onChange()` with the plain\n * form data converted from the keyed data\n *\n * @param index - The index at which the copy button is clicked\n */\n this.onCopyIndexClick = (index) => {\n return (event) => {\n if (event) {\n event.preventDefault();\n }\n const { onChange, errorSchema } = this.props;\n const { keyedFormData } = this.state;\n // refs #195: revalidate to ensure properly reindexing errors\n let newErrorSchema;\n if (errorSchema) {\n newErrorSchema = {};\n for (const idx in errorSchema) {\n const i = parseInt(idx);\n if (i <= index) {\n set(newErrorSchema, [i], errorSchema[idx]);\n }\n else if (i > index) {\n set(newErrorSchema, [i + 1], errorSchema[idx]);\n }\n }\n }\n const newKeyedFormDataRow = {\n key: generateRowId(),\n item: cloneDeep(keyedFormData[index].item),\n };\n const newKeyedFormData = [...keyedFormData];\n if (index !== undefined) {\n newKeyedFormData.splice(index + 1, 0, newKeyedFormDataRow);\n }\n else {\n newKeyedFormData.push(newKeyedFormDataRow);\n }\n this.setState({\n keyedFormData: newKeyedFormData,\n updatedKeyedFormData: true,\n }, () => onChange(keyedToPlainFormData(newKeyedFormData), newErrorSchema));\n };\n };\n /** Callback handler for when the user clicks on the remove button on an existing array element. Removes the row of\n * keyed form data at the `index` in the state, and then returning `onChange()` with the plain form data converted\n * from the keyed data\n *\n * @param index - The index at which the remove button is clicked\n */\n this.onDropIndexClick = (index) => {\n return (event) => {\n if (event) {\n event.preventDefault();\n }\n const { onChange, errorSchema } = this.props;\n const { keyedFormData } = this.state;\n // refs #195: revalidate to ensure properly reindexing errors\n let newErrorSchema;\n if (errorSchema) {\n newErrorSchema = {};\n for (const idx in errorSchema) {\n const i = parseInt(idx);\n if (i < index) {\n set(newErrorSchema, [i], errorSchema[idx]);\n }\n else if (i > index) {\n set(newErrorSchema, [i - 1], errorSchema[idx]);\n }\n }\n }\n const newKeyedFormData = keyedFormData.filter((_, i) => i !== index);\n this.setState({\n keyedFormData: newKeyedFormData,\n updatedKeyedFormData: true,\n }, () => onChange(keyedToPlainFormData(newKeyedFormData), newErrorSchema));\n };\n };\n /** Callback handler for when the user clicks on one of the move item buttons on an existing array element. Moves the\n * row of keyed form data at the `index` to the `newIndex` in the state, and then returning `onChange()` with the\n * plain form data converted from the keyed data\n *\n * @param index - The index of the item to move\n * @param newIndex - The index to where the item is to be moved\n */\n this.onReorderClick = (index, newIndex) => {\n return (event) => {\n if (event) {\n event.preventDefault();\n event.currentTarget.blur();\n }\n const { onChange, errorSchema } = this.props;\n let newErrorSchema;\n if (errorSchema) {\n newErrorSchema = {};\n for (const idx in errorSchema) {\n const i = parseInt(idx);\n if (i == index) {\n set(newErrorSchema, [newIndex], errorSchema[index]);\n }\n else if (i == newIndex) {\n set(newErrorSchema, [index], errorSchema[newIndex]);\n }\n else {\n set(newErrorSchema, [idx], errorSchema[i]);\n }\n }\n }\n const { keyedFormData } = this.state;\n function reOrderArray() {\n // Copy item\n const _newKeyedFormData = keyedFormData.slice();\n // Moves item from index to newIndex\n _newKeyedFormData.splice(index, 1);\n _newKeyedFormData.splice(newIndex, 0, keyedFormData[index]);\n return _newKeyedFormData;\n }\n const newKeyedFormData = reOrderArray();\n this.setState({\n keyedFormData: newKeyedFormData,\n }, () => onChange(keyedToPlainFormData(newKeyedFormData), newErrorSchema));\n };\n };\n /** Callback handler used to deal with changing the value of the data in the array at the `index`. Calls the\n * `onChange` callback with the updated form data\n *\n * @param index - The index of the item being changed\n */\n this.onChangeForIndex = (index) => {\n return (value, newErrorSchema, id) => {\n const { formData, onChange, errorSchema } = this.props;\n const arrayData = Array.isArray(formData) ? formData : [];\n const newFormData = arrayData.map((item, i) => {\n // We need to treat undefined items as nulls to have validation.\n // See https://github.com/tdegrunt/jsonschema/issues/206\n const jsonValue = typeof value === 'undefined' ? null : value;\n return index === i ? jsonValue : item;\n });\n onChange(newFormData, errorSchema &&\n errorSchema && {\n ...errorSchema,\n [index]: newErrorSchema,\n }, id);\n };\n };\n /** Callback handler used to change the value for a checkbox */\n this.onSelectChange = (value) => {\n const { onChange, idSchema } = this.props;\n onChange(value, undefined, idSchema && idSchema.$id);\n };\n const { formData = [] } = props;\n const keyedFormData = generateKeyedFormData(formData);\n this.state = {\n keyedFormData,\n updatedKeyedFormData: false,\n };\n }\n /** React lifecycle method that is called when the props are about to change allowing the state to be updated. It\n * regenerates the keyed form data and returns it\n *\n * @param nextProps - The next set of props data\n * @param prevState - The previous set of state data\n */\n static getDerivedStateFromProps(nextProps, prevState) {\n // Don't call getDerivedStateFromProps if keyed formdata was just updated.\n if (prevState.updatedKeyedFormData) {\n return {\n updatedKeyedFormData: false,\n };\n }\n const nextFormData = Array.isArray(nextProps.formData) ? nextProps.formData : [];\n const previousKeyedFormData = prevState.keyedFormData || [];\n const newKeyedFormData = nextFormData.length === previousKeyedFormData.length\n ? previousKeyedFormData.map((previousKeyedFormDatum, index) => {\n return {\n key: previousKeyedFormDatum.key,\n item: nextFormData[index],\n };\n })\n : generateKeyedFormData(nextFormData);\n return {\n keyedFormData: newKeyedFormData,\n };\n }\n /** Returns the appropriate title for an item by getting first the title from the schema.items, then falling back to\n * the description from the schema.items, and finally the string \"Item\"\n */\n get itemTitle() {\n const { schema, registry } = this.props;\n const { translateString } = registry;\n return get(schema, [ITEMS_KEY, 'title'], get(schema, [ITEMS_KEY, 'description'], translateString(TranslatableString.ArrayItemTitle)));\n }\n /** Determines whether the item described in the schema is always required, which is determined by whether any item\n * may be null.\n *\n * @param itemSchema - The schema for the item\n * @return - True if the item schema type does not contain the \"null\" type\n */\n isItemRequired(itemSchema) {\n if (Array.isArray(itemSchema.type)) {\n // While we don't yet support composite/nullable jsonschema types, it's\n // future-proof to check for requirement against these.\n return !itemSchema.type.includes('null');\n }\n // All non-null array item types are inherently required by design\n return itemSchema.type !== 'null';\n }\n /** Determines whether more items can be added to the array. If the uiSchema indicates the array doesn't allow adding\n * then false is returned. Otherwise, if the schema indicates that there are a maximum number of items and the\n * `formData` matches that value, then false is returned, otherwise true is returned.\n *\n * @param formItems - The list of items in the form\n * @returns - True if the item is addable otherwise false\n */\n canAddItem(formItems) {\n const { schema, uiSchema, registry } = this.props;\n let { addable } = getUiOptions(uiSchema, registry.globalUiOptions);\n if (addable !== false) {\n // if ui:options.addable was not explicitly set to false, we can add\n // another item if we have not exceeded maxItems yet\n if (schema.maxItems !== undefined) {\n addable = formItems.length < schema.maxItems;\n }\n else {\n addable = true;\n }\n }\n return addable;\n }\n /** Callback handler for when the user clicks on the add or add at index buttons. Creates a new row of keyed form data\n * either at the end of the list (when index is not specified) or inserted at the `index` when it is, adding it into\n * the state, and then returning `onChange()` with the plain form data converted from the keyed data\n *\n * @param event - The event for the click\n * @param [index] - The optional index at which to add the new data\n */\n _handleAddClick(event, index) {\n if (event) {\n event.preventDefault();\n }\n const { onChange, errorSchema } = this.props;\n const { keyedFormData } = this.state;\n // refs #195: revalidate to ensure properly reindexing errors\n let newErrorSchema;\n if (errorSchema) {\n newErrorSchema = {};\n for (const idx in errorSchema) {\n const i = parseInt(idx);\n if (index === undefined || i < index) {\n set(newErrorSchema, [i], errorSchema[idx]);\n }\n else if (i >= index) {\n set(newErrorSchema, [i + 1], errorSchema[idx]);\n }\n }\n }\n const newKeyedFormDataRow = {\n key: generateRowId(),\n item: this._getNewFormDataRow(),\n };\n const newKeyedFormData = [...keyedFormData];\n if (index !== undefined) {\n newKeyedFormData.splice(index, 0, newKeyedFormDataRow);\n }\n else {\n newKeyedFormData.push(newKeyedFormDataRow);\n }\n this.setState({\n keyedFormData: newKeyedFormData,\n updatedKeyedFormData: true,\n }, () => onChange(keyedToPlainFormData(newKeyedFormData), newErrorSchema));\n }\n /** Renders the `ArrayField` depending on the specific needs of the schema and uischema elements\n */\n render() {\n const { schema, uiSchema, idSchema, registry } = this.props;\n const { schemaUtils, translateString } = registry;\n if (!(ITEMS_KEY in schema)) {\n const uiOptions = getUiOptions(uiSchema);\n const UnsupportedFieldTemplate = getTemplate('UnsupportedFieldTemplate', registry, uiOptions);\n return (_jsx(UnsupportedFieldTemplate, { schema: schema, idSchema: idSchema, reason: translateString(TranslatableString.MissingItems), registry: registry }));\n }\n if (schemaUtils.isMultiSelect(schema)) {\n // If array has enum or uniqueItems set to true, call renderMultiSelect() to render the default multiselect widget or a custom widget, if specified.\n return this.renderMultiSelect();\n }\n if (isCustomWidget(uiSchema)) {\n return this.renderCustomWidget();\n }\n if (isFixedItems(schema)) {\n return this.renderFixedArray();\n }\n if (schemaUtils.isFilesArray(schema, uiSchema)) {\n return this.renderFiles();\n }\n return this.renderNormalArray();\n }\n /** Renders a normal array without any limitations of length\n */\n renderNormalArray() {\n const { schema, uiSchema = {}, errorSchema, idSchema, name, title, disabled = false, readonly = false, autofocus = false, required = false, registry, onBlur, onFocus, idPrefix, idSeparator = '_', rawErrors, } = this.props;\n const { keyedFormData } = this.state;\n const fieldTitle = schema.title || title || name;\n const { schemaUtils, formContext } = registry;\n const uiOptions = getUiOptions(uiSchema);\n const _schemaItems = isObject(schema.items) ? schema.items : {};\n const itemsSchema = schemaUtils.retrieveSchema(_schemaItems);\n const formData = keyedToPlainFormData(this.state.keyedFormData);\n const canAdd = this.canAddItem(formData);\n const arrayProps = {\n canAdd,\n items: keyedFormData.map((keyedItem, index) => {\n const { key, item } = keyedItem;\n // While we are actually dealing with a single item of type T, the types require a T[], so cast\n const itemCast = item;\n const itemSchema = schemaUtils.retrieveSchema(_schemaItems, itemCast);\n const itemErrorSchema = errorSchema ? errorSchema[index] : undefined;\n const itemIdPrefix = idSchema.$id + idSeparator + index;\n const itemIdSchema = schemaUtils.toIdSchema(itemSchema, itemIdPrefix, itemCast, idPrefix, idSeparator);\n return this.renderArrayFieldItem({\n key,\n index,\n name: name && `${name}-${index}`,\n title: fieldTitle ? `${fieldTitle}-${index + 1}` : undefined,\n canAdd,\n canMoveUp: index > 0,\n canMoveDown: index < formData.length - 1,\n itemSchema,\n itemIdSchema,\n itemErrorSchema,\n itemData: itemCast,\n itemUiSchema: uiSchema.items,\n autofocus: autofocus && index === 0,\n onBlur,\n onFocus,\n rawErrors,\n totalItems: keyedFormData.length,\n });\n }),\n className: `field field-array field-array-of-${itemsSchema.type}`,\n disabled,\n idSchema,\n uiSchema,\n onAddClick: this.onAddClick,\n readonly,\n required,\n schema,\n title: fieldTitle,\n formContext,\n formData,\n rawErrors,\n registry,\n };\n const Template = getTemplate('ArrayFieldTemplate', registry, uiOptions);\n return _jsx(Template, { ...arrayProps });\n }\n /** Renders an array using the custom widget provided by the user in the `uiSchema`\n */\n renderCustomWidget() {\n var _a;\n const { schema, idSchema, uiSchema, disabled = false, readonly = false, autofocus = false, required = false, hideError, placeholder, onBlur, onFocus, formData: items = [], registry, rawErrors, name, } = this.props;\n const { widgets, formContext, globalUiOptions, schemaUtils } = registry;\n const { widget, title: uiTitle, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const label = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a !== void 0 ? _a : name;\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n return (_jsx(Widget, { id: idSchema.$id, name: name, multiple: true, onChange: this.onSelectChange, onBlur: onBlur, onFocus: onFocus, options: options, schema: schema, uiSchema: uiSchema, registry: registry, value: items, disabled: disabled, readonly: readonly, hideError: hideError, required: required, label: label, hideLabel: !displayLabel, placeholder: placeholder, formContext: formContext, autofocus: autofocus, rawErrors: rawErrors }));\n }\n /** Renders an array as a set of checkboxes\n */\n renderMultiSelect() {\n var _a;\n const { schema, idSchema, uiSchema, formData: items = [], disabled = false, readonly = false, autofocus = false, required = false, placeholder, onBlur, onFocus, registry, rawErrors, name, } = this.props;\n const { widgets, schemaUtils, formContext, globalUiOptions } = registry;\n const itemsSchema = schemaUtils.retrieveSchema(schema.items, items);\n const enumOptions = optionsList(itemsSchema);\n const { widget = 'select', title: uiTitle, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const label = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a !== void 0 ? _a : name;\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n return (_jsx(Widget, { id: idSchema.$id, name: name, multiple: true, onChange: this.onSelectChange, onBlur: onBlur, onFocus: onFocus, options: { ...options, enumOptions }, schema: schema, uiSchema: uiSchema, registry: registry, value: items, disabled: disabled, readonly: readonly, required: required, label: label, hideLabel: !displayLabel, placeholder: placeholder, formContext: formContext, autofocus: autofocus, rawErrors: rawErrors }));\n }\n /** Renders an array of files using the `FileWidget`\n */\n renderFiles() {\n var _a;\n const { schema, uiSchema, idSchema, name, disabled = false, readonly = false, autofocus = false, required = false, onBlur, onFocus, registry, formData: items = [], rawErrors, } = this.props;\n const { widgets, formContext, globalUiOptions, schemaUtils } = registry;\n const { widget = 'files', title: uiTitle, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const label = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schema.title) !== null && _a !== void 0 ? _a : name;\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n return (_jsx(Widget, { options: options, id: idSchema.$id, name: name, multiple: true, onChange: this.onSelectChange, onBlur: onBlur, onFocus: onFocus, schema: schema, uiSchema: uiSchema, value: items, disabled: disabled, readonly: readonly, required: required, registry: registry, formContext: formContext, autofocus: autofocus, rawErrors: rawErrors, label: label, hideLabel: !displayLabel }));\n }\n /** Renders an array that has a maximum limit of items\n */\n renderFixedArray() {\n const { schema, uiSchema = {}, formData = [], errorSchema, idPrefix, idSeparator = '_', idSchema, name, title, disabled = false, readonly = false, autofocus = false, required = false, registry, onBlur, onFocus, rawErrors, } = this.props;\n const { keyedFormData } = this.state;\n let { formData: items = [] } = this.props;\n const fieldTitle = schema.title || title || name;\n const uiOptions = getUiOptions(uiSchema);\n const { schemaUtils, formContext } = registry;\n const _schemaItems = isObject(schema.items) ? schema.items : [];\n const itemSchemas = _schemaItems.map((item, index) => schemaUtils.retrieveSchema(item, formData[index]));\n const additionalSchema = isObject(schema.additionalItems)\n ? schemaUtils.retrieveSchema(schema.additionalItems, formData)\n : null;\n if (!items || items.length < itemSchemas.length) {\n // to make sure at least all fixed items are generated\n items = items || [];\n items = items.concat(new Array(itemSchemas.length - items.length));\n }\n // These are the props passed into the render function\n const canAdd = this.canAddItem(items) && !!additionalSchema;\n const arrayProps = {\n canAdd,\n className: 'field field-array field-array-fixed-items',\n disabled,\n idSchema,\n formData,\n items: keyedFormData.map((keyedItem, index) => {\n const { key, item } = keyedItem;\n // While we are actually dealing with a single item of type T, the types require a T[], so cast\n const itemCast = item;\n const additional = index >= itemSchemas.length;\n const itemSchema = (additional && isObject(schema.additionalItems)\n ? schemaUtils.retrieveSchema(schema.additionalItems, itemCast)\n : itemSchemas[index]) || {};\n const itemIdPrefix = idSchema.$id + idSeparator + index;\n const itemIdSchema = schemaUtils.toIdSchema(itemSchema, itemIdPrefix, itemCast, idPrefix, idSeparator);\n const itemUiSchema = additional\n ? uiSchema.additionalItems || {}\n : Array.isArray(uiSchema.items)\n ? uiSchema.items[index]\n : uiSchema.items || {};\n const itemErrorSchema = errorSchema ? errorSchema[index] : undefined;\n return this.renderArrayFieldItem({\n key,\n index,\n name: name && `${name}-${index}`,\n title: fieldTitle ? `${fieldTitle}-${index + 1}` : undefined,\n canAdd,\n canRemove: additional,\n canMoveUp: index >= itemSchemas.length + 1,\n canMoveDown: additional && index < items.length - 1,\n itemSchema,\n itemData: itemCast,\n itemUiSchema,\n itemIdSchema,\n itemErrorSchema,\n autofocus: autofocus && index === 0,\n onBlur,\n onFocus,\n rawErrors,\n totalItems: keyedFormData.length,\n });\n }),\n onAddClick: this.onAddClick,\n readonly,\n required,\n registry,\n schema,\n uiSchema,\n title: fieldTitle,\n formContext,\n errorSchema,\n rawErrors,\n };\n const Template = getTemplate('ArrayFieldTemplate', registry, uiOptions);\n return _jsx(Template, { ...arrayProps });\n }\n /** Renders the individual array item using a `SchemaField` along with the additional properties required to be send\n * back to the `ArrayFieldItemTemplate`.\n *\n * @param props - The props for the individual array item to be rendered\n */\n renderArrayFieldItem(props) {\n const { key, index, name, canAdd, canRemove = true, canMoveUp, canMoveDown, itemSchema, itemData, itemUiSchema, itemIdSchema, itemErrorSchema, autofocus, onBlur, onFocus, rawErrors, totalItems, title, } = props;\n const { disabled, hideError, idPrefix, idSeparator, readonly, uiSchema, registry, formContext } = this.props;\n const { fields: { ArraySchemaField, SchemaField }, globalUiOptions, } = registry;\n const ItemSchemaField = ArraySchemaField || SchemaField;\n const { orderable = true, removable = true, copyable = false } = getUiOptions(uiSchema, globalUiOptions);\n const has = {\n moveUp: orderable && canMoveUp,\n moveDown: orderable && canMoveDown,\n copy: copyable && canAdd,\n remove: removable && canRemove,\n toolbar: false,\n };\n has.toolbar = Object.keys(has).some((key) => has[key]);\n return {\n children: (_jsx(ItemSchemaField, { name: name, title: title, index: index, schema: itemSchema, uiSchema: itemUiSchema, formData: itemData, formContext: formContext, errorSchema: itemErrorSchema, idPrefix: idPrefix, idSeparator: idSeparator, idSchema: itemIdSchema, required: this.isItemRequired(itemSchema), onChange: this.onChangeForIndex(index), onBlur: onBlur, onFocus: onFocus, registry: registry, disabled: disabled, readonly: readonly, hideError: hideError, autofocus: autofocus, rawErrors: rawErrors })),\n className: 'array-item',\n disabled,\n canAdd,\n hasCopy: has.copy,\n hasToolbar: has.toolbar,\n hasMoveUp: has.moveUp,\n hasMoveDown: has.moveDown,\n hasRemove: has.remove,\n index,\n totalItems,\n key,\n onAddIndexClick: this.onAddIndexClick,\n onCopyIndexClick: this.onCopyIndexClick,\n onDropIndexClick: this.onDropIndexClick,\n onReorderClick: this.onReorderClick,\n readonly,\n registry,\n schema: itemSchema,\n uiSchema: itemUiSchema,\n };\n }\n}\n/** `ArrayField` is `React.ComponentType>` (necessarily) but the `registry` requires things to be a\n * `Field` which is defined as `React.ComponentType>`, so cast it to make `registry` happy.\n */\nexport default ArrayField;\n//# sourceMappingURL=ArrayField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getWidget, getUiOptions, optionsList, TranslatableString, } from '@rjsf/utils';\nimport isObject from 'lodash/isObject';\n/** The `BooleanField` component is used to render a field in the schema is boolean. It constructs `enumOptions` for the\n * two boolean values based on the various alternatives in the schema.\n *\n * @param props - The `FieldProps` for this template\n */\nfunction BooleanField(props) {\n var _a, _b, _c;\n const { schema, name, uiSchema, idSchema, formData, registry, required, disabled, readonly, hideError, autofocus, title, onChange, onFocus, onBlur, rawErrors, } = props;\n const { title: schemaTitle } = schema;\n const { widgets, formContext, translateString, globalUiOptions } = registry;\n const { widget = 'checkbox', title: uiTitle, \n // Unlike the other fields, don't use `getDisplayLabel()` since it always returns false for the boolean type\n label: displayLabel = true, ...options } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget(schema, widget, widgets);\n const yes = translateString(TranslatableString.YesLabel);\n const no = translateString(TranslatableString.NoLabel);\n let enumOptions;\n const label = (_b = (_a = uiTitle !== null && uiTitle !== void 0 ? uiTitle : schemaTitle) !== null && _a !== void 0 ? _a : title) !== null && _b !== void 0 ? _b : name;\n if (Array.isArray(schema.oneOf)) {\n enumOptions = optionsList({\n oneOf: schema.oneOf\n .map((option) => {\n if (isObject(option)) {\n return {\n ...option,\n title: option.title || (option.const === true ? yes : no),\n };\n }\n return undefined;\n })\n .filter((o) => o), // cast away the error that typescript can't grok is fixed\n });\n }\n else {\n // We deprecated enumNames in v5. It's intentionally omitted from RSJFSchema type, so we need to cast here.\n const schemaWithEnumNames = schema;\n const enums = (_c = schema.enum) !== null && _c !== void 0 ? _c : [true, false];\n if (!schemaWithEnumNames.enumNames && enums.length === 2 && enums.every((v) => typeof v === 'boolean')) {\n enumOptions = [\n {\n value: enums[0],\n label: enums[0] ? yes : no,\n },\n {\n value: enums[1],\n label: enums[1] ? yes : no,\n },\n ];\n }\n else {\n enumOptions = optionsList({\n enum: enums,\n // NOTE: enumNames is deprecated, but still supported for now.\n enumNames: schemaWithEnumNames.enumNames,\n });\n }\n }\n return (_jsx(Widget, { options: { ...options, enumOptions }, schema: schema, uiSchema: uiSchema, id: idSchema.$id, name: name, onChange: onChange, onFocus: onFocus, onBlur: onBlur, label: label, hideLabel: !displayLabel, value: formData, required: required, disabled: disabled, readonly: readonly, hideError: hideError, registry: registry, formContext: formContext, autofocus: autofocus, rawErrors: rawErrors }));\n}\nexport default BooleanField;\n//# sourceMappingURL=BooleanField.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Component } from 'react';\nimport get from 'lodash/get';\nimport isEmpty from 'lodash/isEmpty';\nimport omit from 'lodash/omit';\nimport { ANY_OF_KEY, deepEquals, ERRORS_KEY, getDiscriminatorFieldFromSchema, getUiOptions, getWidget, mergeSchemas, ONE_OF_KEY, TranslatableString, } from '@rjsf/utils';\n/** The `AnyOfField` component is used to render a field in the schema that is an `anyOf`, `allOf` or `oneOf`. It tracks\n * the currently selected option and cleans up any irrelevant data in `formData`.\n *\n * @param props - The `FieldProps` for this template\n */\nclass AnyOfField extends Component {\n /** Constructs an `AnyOfField` with the given `props` to initialize the initially selected option in state\n *\n * @param props - The `FieldProps` for this template\n */\n constructor(props) {\n super(props);\n /** Callback handler to remember what the currently selected option is. In addition to that the `formData` is updated\n * to remove properties that are not part of the newly selected option schema, and then the updated data is passed to\n * the `onChange` handler.\n *\n * @param option - The new option value being selected\n */\n this.onOptionChange = (option) => {\n const { selectedOption, retrievedOptions } = this.state;\n const { formData, onChange, registry } = this.props;\n const { schemaUtils } = registry;\n const intOption = option !== undefined ? parseInt(option, 10) : -1;\n if (intOption === selectedOption) {\n return;\n }\n const newOption = intOption >= 0 ? retrievedOptions[intOption] : undefined;\n const oldOption = selectedOption >= 0 ? retrievedOptions[selectedOption] : undefined;\n let newFormData = schemaUtils.sanitizeDataForNewSchema(newOption, oldOption, formData);\n if (newFormData && newOption) {\n // Call getDefaultFormState to make sure defaults are populated on change. Pass \"excludeObjectChildren\"\n // so that only the root objects themselves are created without adding undefined children properties\n newFormData = schemaUtils.getDefaultFormState(newOption, newFormData, 'excludeObjectChildren');\n }\n onChange(newFormData, undefined, this.getFieldId());\n this.setState({ selectedOption: intOption });\n };\n const { formData, options, registry: { schemaUtils }, } = this.props;\n // cache the retrieved options in state in case they have $refs to save doing it later\n const retrievedOptions = options.map((opt) => schemaUtils.retrieveSchema(opt, formData));\n this.state = {\n retrievedOptions,\n selectedOption: this.getMatchingOption(0, formData, retrievedOptions),\n };\n }\n /** React lifecycle method that is called when the props and/or state for this component is updated. It recomputes the\n * currently selected option based on the overall `formData`\n *\n * @param prevProps - The previous `FieldProps` for this template\n * @param prevState - The previous `AnyOfFieldState` for this template\n */\n componentDidUpdate(prevProps, prevState) {\n const { formData, options, idSchema } = this.props;\n const { selectedOption } = this.state;\n let newState = this.state;\n if (!deepEquals(prevProps.options, options)) {\n const { registry: { schemaUtils }, } = this.props;\n // re-cache the retrieved options in state in case they have $refs to save doing it later\n const retrievedOptions = options.map((opt) => schemaUtils.retrieveSchema(opt, formData));\n newState = { selectedOption, retrievedOptions };\n }\n if (!deepEquals(formData, prevProps.formData) && idSchema.$id === prevProps.idSchema.$id) {\n const { retrievedOptions } = newState;\n const matchingOption = this.getMatchingOption(selectedOption, formData, retrievedOptions);\n if (prevState && matchingOption !== selectedOption) {\n newState = { selectedOption: matchingOption, retrievedOptions };\n }\n }\n if (newState !== this.state) {\n this.setState(newState);\n }\n }\n /** Determines the best matching option for the given `formData` and `options`.\n *\n * @param formData - The new formData\n * @param options - The list of options to choose from\n * @return - The index of the `option` that best matches the `formData`\n */\n getMatchingOption(selectedOption, formData, options) {\n const { schema, registry: { schemaUtils }, } = this.props;\n const discriminator = getDiscriminatorFieldFromSchema(schema);\n const option = schemaUtils.getClosestMatchingOption(formData, options, selectedOption, discriminator);\n return option;\n }\n getFieldId() {\n const { idSchema, schema } = this.props;\n return `${idSchema.$id}${schema.oneOf ? '__oneof_select' : '__anyof_select'}`;\n }\n /** Renders the `AnyOfField` selector along with a `SchemaField` for the value of the `formData`\n */\n render() {\n const { name, disabled = false, errorSchema = {}, formContext, onBlur, onFocus, registry, schema, uiSchema, } = this.props;\n const { widgets, fields, translateString, globalUiOptions, schemaUtils } = registry;\n const { SchemaField: _SchemaField } = fields;\n const { selectedOption, retrievedOptions } = this.state;\n const { widget = 'select', placeholder, autofocus, autocomplete, title = schema.title, ...uiOptions } = getUiOptions(uiSchema, globalUiOptions);\n const Widget = getWidget({ type: 'number' }, widget, widgets);\n const rawErrors = get(errorSchema, ERRORS_KEY, []);\n const fieldErrorSchema = omit(errorSchema, [ERRORS_KEY]);\n const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema, globalUiOptions);\n const option = selectedOption >= 0 ? retrievedOptions[selectedOption] || null : null;\n let optionSchema;\n if (option) {\n // merge top level required field\n const { required } = schema;\n // Merge in all the non-oneOf/anyOf properties and also skip the special ADDITIONAL_PROPERTY_FLAG property\n optionSchema = required ? mergeSchemas({ required }, option) : option;\n }\n // First we will check to see if there is an anyOf/oneOf override for the UI schema\n let optionsUiSchema = [];\n if (ONE_OF_KEY in schema && uiSchema && ONE_OF_KEY in uiSchema) {\n if (Array.isArray(uiSchema[ONE_OF_KEY])) {\n optionsUiSchema = uiSchema[ONE_OF_KEY];\n }\n else {\n console.warn(`uiSchema.oneOf is not an array for \"${title || name}\"`);\n }\n }\n else if (ANY_OF_KEY in schema && uiSchema && ANY_OF_KEY in uiSchema) {\n if (Array.isArray(uiSchema[ANY_OF_KEY])) {\n optionsUiSchema = uiSchema[ANY_OF_KEY];\n }\n else {\n console.warn(`uiSchema.anyOf is not an array for \"${title || name}\"`);\n }\n }\n // Then we pick the one that matches the selected option index, if one exists otherwise default to the main uiSchema\n let optionUiSchema = uiSchema;\n if (selectedOption >= 0 && optionsUiSchema.length > selectedOption) {\n optionUiSchema = optionsUiSchema[selectedOption];\n }\n const translateEnum = title\n ? TranslatableString.TitleOptionPrefix\n : TranslatableString.OptionPrefix;\n const translateParams = title ? [title] : [];\n const enumOptions = retrievedOptions.map((opt, index) => {\n // Also see if there is an override title in the uiSchema for each option, otherwise use the title from the option\n const { title: uiTitle = opt.title } = getUiOptions(optionsUiSchema[index]);\n return {\n label: uiTitle || translateString(translateEnum, translateParams.concat(String(index + 1))),\n value: index,\n };\n });\n return (_jsxs(\"div\", { className: 'panel panel-default panel-body', children: [_jsx(\"div\", { className: 'form-group', children: _jsx(Widget, { id: this.getFieldId(), name: `${name}${schema.oneOf ? '__oneof_select' : '__anyof_select'}`, schema: { type: 'number', default: 0 }, onChange: this.onOptionChange, onBlur: onBlur, onFocus: onFocus, disabled: disabled || isEmpty(enumOptions), multiple: false, rawErrors: rawErrors, errorSchema: fieldErrorSchema, value: selectedOption >= 0 ? selectedOption : undefined, options: { enumOptions, ...uiOptions }, registry: registry, formContext: formContext, placeholder: placeholder, autocomplete: autocomplete, autofocus: autofocus, label: title !== null && title !== void 0 ? title : name, hideLabel: !displayLabel }) }), optionSchema && _jsx(_SchemaField, { ...this.props, schema: optionSchema, uiSchema: optionUiSchema })] }));\n }\n}\nexport default AnyOfField;\n//# sourceMappingURL=MultiSchemaField.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useState, useCallback } from 'react';\nimport { asNumber } from '@rjsf/utils';\n// Matches a string that ends in a . character, optionally followed by a sequence of\n// digits followed by any number of 0 characters up until the end of the line.\n// Ensuring that there is at least one prefixed character is important so that\n// you don't incorrectly match against \"0\".\nconst trailingCharMatcherWithPrefix = /\\.([0-9]*0)*$/;\n// This is used for trimming the trailing 0 and . characters without affecting\n// the rest of the string. Its possible to use one RegEx with groups for this\n// functionality, but it is fairly complex compared to simply defining two\n// different matchers.\nconst trailingCharMatcher = /[0.]0*$/;\n/**\n * The NumberField class has some special handling for dealing with trailing\n * decimal points and/or zeroes. This logic is designed to allow trailing values\n * to be visible in the input element, but not be represented in the\n * corresponding form data.\n *\n * The algorithm is as follows:\n *\n * 1. When the input value changes the value is cached in the component state\n *\n * 2. The value is then normalized, removing trailing decimal points and zeros,\n * then passed to the \"onChange\" callback\n *\n * 3. When the component is rendered, the formData value is checked against the\n * value cached in the state. If it matches the cached value, the cached\n * value is passed to the input instead of the formData value\n */\nfunction NumberField(props) {\n const { registry, onChange, formData, value: initialValue } = props;\n const [lastValue, setLastValue] = useState(initialValue);\n const { StringField } = registry.fields;\n let value = formData;\n /** Handle the change from the `StringField` to properly convert to a number\n *\n * @param value - The current value for the change occurring\n */\n const handleChange = useCallback((value) => {\n // Cache the original value in component state\n setLastValue(value);\n // Normalize decimals that don't start with a zero character in advance so\n // that the rest of the normalization logic is simpler\n if (`${value}`.charAt(0) === '.') {\n value = `0${value}`;\n }\n // Check that the value is a string (this can happen if the widget used is a\n // ` component for the `core` theme.\n * It is used as the template for rendering many of the based widgets that differ by `type` and callbacks only.\n * It can be customized/overridden for other themes or individual implementations as needed.\n *\n * @param props - The `WidgetProps` for this template\n */\nexport default function BaseInputTemplate(props) {\n const { id, name, // remove this from ...rest\n value, readonly, disabled, autofocus, onBlur, onFocus, onChange, onChangeOverride, options, schema, uiSchema, formContext, registry, rawErrors, type, hideLabel, // remove this from ...rest\n hideError, // remove this from ...rest\n ...rest } = props;\n // Note: since React 15.2.0 we can't forward unknown element attributes, so we\n // exclude the \"options\" and \"schema\" ones here.\n if (!id) {\n console.log('No id for', props);\n throw new Error(`no id for props ${JSON.stringify(props)}`);\n }\n const inputProps = {\n ...rest,\n ...getInputProps(schema, type, options),\n };\n let inputValue;\n if (inputProps.type === 'number' || inputProps.type === 'integer') {\n inputValue = value || value === 0 ? value : '';\n }\n else {\n inputValue = value == null ? '' : value;\n }\n const _onChange = useCallback(({ target: { value } }) => onChange(value === '' ? options.emptyValue : value), [onChange, options]);\n const _onBlur = useCallback(({ target: { value } }) => onBlur(id, value), [onBlur, id]);\n const _onFocus = useCallback(({ target: { value } }) => onFocus(id, value), [onFocus, id]);\n return (_jsxs(_Fragment, { children: [_jsx(\"input\", { id: id, name: id, className: 'form-control', readOnly: readonly, disabled: disabled, autoFocus: autofocus, value: inputValue, ...inputProps, list: schema.examples ? examplesId(id) : undefined, onChange: onChangeOverride || _onChange, onBlur: _onBlur, onFocus: _onFocus, \"aria-describedby\": ariaDescribedByIds(id, !!schema.examples) }), Array.isArray(schema.examples) && (_jsx(\"datalist\", { id: examplesId(id), children: schema.examples\n .concat(schema.default && !schema.examples.includes(schema.default) ? [schema.default] : [])\n .map((example) => {\n return _jsx(\"option\", { value: example }, example);\n }) }, `datalist_${id}`))] }));\n}\n//# sourceMappingURL=BaseInputTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getSubmitButtonOptions } from '@rjsf/utils';\n/** The `SubmitButton` renders a button that represent the `Submit` action on a form\n */\nexport default function SubmitButton({ uiSchema }) {\n const { submitText, norender, props: submitButtonProps = {} } = getSubmitButtonOptions(uiSchema);\n if (norender) {\n return null;\n }\n return (_jsx(\"div\", { children: _jsx(\"button\", { type: 'submit', ...submitButtonProps, className: `btn btn-info ${submitButtonProps.className || ''}`, children: submitText }) }));\n}\n//# sourceMappingURL=SubmitButton.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { TranslatableString } from '@rjsf/utils';\nexport default function IconButton(props) {\n const { iconType = 'default', icon, className, uiSchema, registry, ...otherProps } = props;\n return (_jsx(\"button\", { type: 'button', className: `btn btn-${iconType} ${className}`, ...otherProps, children: _jsx(\"i\", { className: `glyphicon glyphicon-${icon}` }) }));\n}\nexport function CopyButton(props) {\n const { registry: { translateString }, } = props;\n return (_jsx(IconButton, { title: translateString(TranslatableString.CopyButton), className: 'array-item-copy', ...props, icon: 'copy' }));\n}\nexport function MoveDownButton(props) {\n const { registry: { translateString }, } = props;\n return (_jsx(IconButton, { title: translateString(TranslatableString.MoveDownButton), className: 'array-item-move-down', ...props, icon: 'arrow-down' }));\n}\nexport function MoveUpButton(props) {\n const { registry: { translateString }, } = props;\n return (_jsx(IconButton, { title: translateString(TranslatableString.MoveUpButton), className: 'array-item-move-up', ...props, icon: 'arrow-up' }));\n}\nexport function RemoveButton(props) {\n const { registry: { translateString }, } = props;\n return (_jsx(IconButton, { title: translateString(TranslatableString.RemoveButton), className: 'array-item-remove', ...props, iconType: 'danger', icon: 'remove' }));\n}\n//# sourceMappingURL=IconButton.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { TranslatableString } from '@rjsf/utils';\nimport IconButton from './IconButton';\n/** The `AddButton` renders a button that represent the `Add` action on a form\n */\nexport default function AddButton({ className, onClick, disabled, registry, }) {\n const { translateString } = registry;\n return (_jsx(\"div\", { className: 'row', children: _jsx(\"p\", { className: `col-xs-3 col-xs-offset-9 text-right ${className}`, children: _jsx(IconButton, { iconType: 'info', icon: 'plus', className: 'btn-add col-xs-12', title: translateString(TranslatableString.AddButton), onClick: onClick, disabled: disabled, registry: registry }) }) }));\n}\n//# sourceMappingURL=AddButton.js.map","import SubmitButton from './SubmitButton';\nimport AddButton from './AddButton';\nimport { CopyButton, MoveDownButton, MoveUpButton, RemoveButton } from './IconButton';\nfunction buttonTemplates() {\n return {\n SubmitButton,\n AddButton,\n CopyButton,\n MoveDownButton,\n MoveUpButton,\n RemoveButton,\n };\n}\nexport default buttonTemplates;\n//# sourceMappingURL=index.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/** The `DescriptionField` is the template to use to render the description of a field\n *\n * @param props - The `DescriptionFieldProps` for this component\n */\nexport default function DescriptionField(props) {\n const { id, description } = props;\n if (!description) {\n return null;\n }\n if (typeof description === 'string') {\n return (_jsx(\"p\", { id: id, className: 'field-description', children: description }));\n }\n else {\n return (_jsx(\"div\", { id: id, className: 'field-description', children: description }));\n }\n}\n//# sourceMappingURL=DescriptionField.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { TranslatableString, } from '@rjsf/utils';\n/** The `ErrorList` component is the template that renders the all the errors associated with the fields in the `Form`\n *\n * @param props - The `ErrorListProps` for this component\n */\nexport default function ErrorList({ errors, registry, }) {\n const { translateString } = registry;\n return (_jsxs(\"div\", { className: 'panel panel-danger errors', children: [_jsx(\"div\", { className: 'panel-heading', children: _jsx(\"h3\", { className: 'panel-title', children: translateString(TranslatableString.ErrorsLabel) }) }), _jsx(\"ul\", { className: 'list-group', children: errors.map((error, i) => {\n return (_jsx(\"li\", { className: 'list-group-item text-danger', children: error.stack }, i));\n }) })] }));\n}\n//# sourceMappingURL=ErrorList.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst REQUIRED_FIELD_SYMBOL = '*';\n/** Renders a label for a field\n *\n * @param props - The `LabelProps` for this component\n */\nexport default function Label(props) {\n const { label, required, id } = props;\n if (!label) {\n return null;\n }\n return (_jsxs(\"label\", { className: 'control-label', htmlFor: id, children: [label, required && _jsx(\"span\", { className: 'required', children: REQUIRED_FIELD_SYMBOL })] }));\n}\n//# sourceMappingURL=Label.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { getTemplate, getUiOptions, } from '@rjsf/utils';\nimport Label from './Label';\n/** The `FieldTemplate` component is the template used by `SchemaField` to render any field. It renders the field\n * content, (label, description, children, errors and help) inside of a `WrapIfAdditional` component.\n *\n * @param props - The `FieldTemplateProps` for this component\n */\nexport default function FieldTemplate(props) {\n const { id, label, children, errors, help, description, hidden, required, displayLabel, registry, uiSchema } = props;\n const uiOptions = getUiOptions(uiSchema);\n const WrapIfAdditionalTemplate = getTemplate('WrapIfAdditionalTemplate', registry, uiOptions);\n if (hidden) {\n return _jsx(\"div\", { className: 'hidden', children: children });\n }\n return (_jsxs(WrapIfAdditionalTemplate, { ...props, children: [displayLabel && _jsx(Label, { label: label, required: required, id: id }), displayLabel && description ? description : null, children, errors, help] }));\n}\n//# sourceMappingURL=FieldTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { errorId } from '@rjsf/utils';\n/** The `FieldErrorTemplate` component renders the errors local to the particular field\n *\n * @param props - The `FieldErrorProps` for the errors being rendered\n */\nexport default function FieldErrorTemplate(props) {\n const { errors = [], idSchema } = props;\n if (errors.length === 0) {\n return null;\n }\n const id = errorId(idSchema);\n return (_jsx(\"div\", { children: _jsx(\"ul\", { id: id, className: 'error-detail bs-callout bs-callout-info', children: errors\n .filter((elem) => !!elem)\n .map((error, index) => {\n return (_jsx(\"li\", { className: 'text-danger', children: error }, index));\n }) }) }));\n}\n//# sourceMappingURL=FieldErrorTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { helpId } from '@rjsf/utils';\n/** The `FieldHelpTemplate` component renders any help desired for a field\n *\n * @param props - The `FieldHelpProps` to be rendered\n */\nexport default function FieldHelpTemplate(props) {\n const { idSchema, help } = props;\n if (!help) {\n return null;\n }\n const id = helpId(idSchema);\n if (typeof help === 'string') {\n return (_jsx(\"p\", { id: id, className: 'help-block', children: help }));\n }\n return (_jsx(\"div\", { id: id, className: 'help-block', children: help }));\n}\n//# sourceMappingURL=FieldHelpTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { canExpand, descriptionId, getTemplate, getUiOptions, titleId, } from '@rjsf/utils';\n/** The `ObjectFieldTemplate` is the template to use to render all the inner properties of an object along with the\n * title and description if available. If the object is expandable, then an `AddButton` is also rendered after all\n * the properties.\n *\n * @param props - The `ObjectFieldTemplateProps` for this component\n */\nexport default function ObjectFieldTemplate(props) {\n const { description, disabled, formData, idSchema, onAddClick, properties, readonly, registry, required, schema, title, uiSchema, } = props;\n const options = getUiOptions(uiSchema);\n const TitleFieldTemplate = getTemplate('TitleFieldTemplate', registry, options);\n const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, options);\n // Button templates are not overridden in the uiSchema\n const { ButtonTemplates: { AddButton }, } = registry.templates;\n return (_jsxs(\"fieldset\", { id: idSchema.$id, children: [title && (_jsx(TitleFieldTemplate, { id: titleId(idSchema), title: title, required: required, schema: schema, uiSchema: uiSchema, registry: registry })), description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(idSchema), description: description, schema: schema, uiSchema: uiSchema, registry: registry })), properties.map((prop) => prop.content), canExpand(schema, uiSchema, formData) && (_jsx(AddButton, { className: 'object-property-expand', onClick: onAddClick(schema), disabled: disabled || readonly, uiSchema: uiSchema, registry: registry }))] }));\n}\n//# sourceMappingURL=ObjectFieldTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst REQUIRED_FIELD_SYMBOL = '*';\n/** The `TitleField` is the template to use to render the title of a field\n *\n * @param props - The `TitleFieldProps` for this component\n */\nexport default function TitleField(props) {\n const { id, title, required } = props;\n return (_jsxs(\"legend\", { id: id, children: [title, required && _jsx(\"span\", { className: 'required', children: REQUIRED_FIELD_SYMBOL })] }));\n}\n//# sourceMappingURL=TitleField.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { TranslatableString } from '@rjsf/utils';\nimport Markdown from 'markdown-to-jsx';\n/** The `UnsupportedField` component is used to render a field in the schema is one that is not supported by\n * react-jsonschema-form.\n *\n * @param props - The `FieldProps` for this template\n */\nfunction UnsupportedField(props) {\n const { schema, idSchema, reason, registry } = props;\n const { translateString } = registry;\n let translateEnum = TranslatableString.UnsupportedField;\n const translateParams = [];\n if (idSchema && idSchema.$id) {\n translateEnum = TranslatableString.UnsupportedFieldWithId;\n translateParams.push(idSchema.$id);\n }\n if (reason) {\n translateEnum =\n translateEnum === TranslatableString.UnsupportedField\n ? TranslatableString.UnsupportedFieldWithReason\n : TranslatableString.UnsupportedFieldWithIdAndReason;\n translateParams.push(reason);\n }\n return (_jsxs(\"div\", { className: 'unsupported-field', children: [_jsx(\"p\", { children: _jsx(Markdown, { children: translateString(translateEnum, translateParams) }) }), schema && _jsx(\"pre\", { children: JSON.stringify(schema, null, 2) })] }));\n}\nexport default UnsupportedField;\n//# sourceMappingURL=UnsupportedField.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ADDITIONAL_PROPERTY_FLAG, TranslatableString, } from '@rjsf/utils';\nimport Label from './FieldTemplate/Label';\n/** The `WrapIfAdditional` component is used by the `FieldTemplate` to rename, or remove properties that are\n * part of an `additionalProperties` part of a schema.\n *\n * @param props - The `WrapIfAdditionalProps` for this component\n */\nexport default function WrapIfAdditionalTemplate(props) {\n const { id, classNames, style, disabled, label, onKeyChange, onDropPropertyClick, readonly, required, schema, children, uiSchema, registry, } = props;\n const { templates, translateString } = registry;\n // Button templates are not overridden in the uiSchema\n const { RemoveButton } = templates.ButtonTemplates;\n const keyLabel = translateString(TranslatableString.KeyLabel, [label]);\n const additional = ADDITIONAL_PROPERTY_FLAG in schema;\n if (!additional) {\n return (_jsx(\"div\", { className: classNames, style: style, children: children }));\n }\n return (_jsx(\"div\", { className: classNames, style: style, children: _jsxs(\"div\", { className: 'row', children: [_jsx(\"div\", { className: 'col-xs-5 form-additional', children: _jsxs(\"div\", { className: 'form-group', children: [_jsx(Label, { label: keyLabel, required: required, id: `${id}-key` }), _jsx(\"input\", { className: 'form-control', type: 'text', id: `${id}-key`, onBlur: (event) => onKeyChange(event.target.value), defaultValue: label })] }) }), _jsx(\"div\", { className: 'form-additional form-group col-xs-5', children: children }), _jsx(\"div\", { className: 'col-xs-2', children: _jsx(RemoveButton, { className: 'array-item-remove btn-block', style: { border: '0' }, disabled: disabled || readonly, onClick: onDropPropertyClick(label), uiSchema: uiSchema, registry: registry }) })] }) }));\n}\n//# sourceMappingURL=WrapIfAdditionalTemplate.js.map","import ArrayFieldDescriptionTemplate from './ArrayFieldDescriptionTemplate';\nimport ArrayFieldItemTemplate from './ArrayFieldItemTemplate';\nimport ArrayFieldTemplate from './ArrayFieldTemplate';\nimport ArrayFieldTitleTemplate from './ArrayFieldTitleTemplate';\nimport BaseInputTemplate from './BaseInputTemplate';\nimport ButtonTemplates from './ButtonTemplates';\nimport DescriptionField from './DescriptionField';\nimport ErrorList from './ErrorList';\nimport FieldTemplate from './FieldTemplate';\nimport FieldErrorTemplate from './FieldErrorTemplate';\nimport FieldHelpTemplate from './FieldHelpTemplate';\nimport ObjectFieldTemplate from './ObjectFieldTemplate';\nimport TitleField from './TitleField';\nimport UnsupportedField from './UnsupportedField';\nimport WrapIfAdditionalTemplate from './WrapIfAdditionalTemplate';\nfunction templates() {\n return {\n ArrayFieldDescriptionTemplate,\n ArrayFieldItemTemplate,\n ArrayFieldTemplate,\n ArrayFieldTitleTemplate,\n ButtonTemplates: ButtonTemplates(),\n BaseInputTemplate,\n DescriptionFieldTemplate: DescriptionField,\n ErrorListTemplate: ErrorList,\n FieldTemplate,\n FieldErrorTemplate,\n FieldHelpTemplate,\n ObjectFieldTemplate,\n TitleFieldTemplate: TitleField,\n UnsupportedFieldTemplate: UnsupportedField,\n WrapIfAdditionalTemplate,\n };\n}\nexport default templates;\n//# sourceMappingURL=index.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useReducer, useState } from 'react';\nimport { ariaDescribedByIds, parseDateString, toDateString, pad, TranslatableString, getDateElementProps, } from '@rjsf/utils';\nfunction rangeOptions(start, stop) {\n const options = [];\n for (let i = start; i <= stop; i++) {\n options.push({ value: i, label: pad(i, 2) });\n }\n return options;\n}\nfunction readyForChange(state) {\n return Object.values(state).every((value) => value !== -1);\n}\nfunction DateElement({ type, range, value, select, rootId, name, disabled, readonly, autofocus, registry, onBlur, onFocus, }) {\n const id = rootId + '_' + type;\n const { SelectWidget } = registry.widgets;\n return (_jsx(SelectWidget, { schema: { type: 'integer' }, id: id, name: name, className: 'form-control', options: { enumOptions: rangeOptions(range[0], range[1]) }, placeholder: type, value: value, disabled: disabled, readonly: readonly, autofocus: autofocus, onChange: (value) => select(type, value), onBlur: onBlur, onFocus: onFocus, registry: registry, label: '', \"aria-describedby\": ariaDescribedByIds(rootId) }));\n}\n/** The `AltDateWidget` is an alternative widget for rendering date properties.\n * @param props - The `WidgetProps` for this component\n */\nfunction AltDateWidget({ time = false, disabled = false, readonly = false, autofocus = false, options, id, name, registry, onBlur, onFocus, onChange, value, }) {\n const { translateString } = registry;\n const [lastValue, setLastValue] = useState(value);\n const [state, setState] = useReducer((state, action) => {\n return { ...state, ...action };\n }, parseDateString(value, time));\n useEffect(() => {\n const stateValue = toDateString(state, time);\n if (readyForChange(state) && stateValue !== value) {\n // The user changed the date to a new valid data via the comboboxes, so call onChange\n onChange(stateValue);\n }\n else if (lastValue !== value) {\n // We got a new value in the props\n setLastValue(value);\n setState(parseDateString(value, time));\n }\n }, [time, value, onChange, state, lastValue]);\n const handleChange = useCallback((property, value) => {\n setState({ [property]: value });\n }, []);\n const handleSetNow = useCallback((event) => {\n event.preventDefault();\n if (disabled || readonly) {\n return;\n }\n const nextState = parseDateString(new Date().toJSON(), time);\n onChange(toDateString(nextState, time));\n }, [disabled, readonly, time]);\n const handleClear = useCallback((event) => {\n event.preventDefault();\n if (disabled || readonly) {\n return;\n }\n onChange(undefined);\n }, [disabled, readonly, onChange]);\n return (_jsxs(\"ul\", { className: 'list-inline', children: [getDateElementProps(state, time, options.yearsRange, options.format).map((elemProps, i) => (_jsx(\"li\", { className: 'list-inline-item', children: _jsx(DateElement, { rootId: id, name: name, select: handleChange, ...elemProps, disabled: disabled, readonly: readonly, registry: registry, onBlur: onBlur, onFocus: onFocus, autofocus: autofocus && i === 0 }) }, i))), (options.hideNowButton !== 'undefined' ? !options.hideNowButton : true) && (_jsx(\"li\", { className: 'list-inline-item', children: _jsx(\"a\", { href: '#', className: 'btn btn-info btn-now', onClick: handleSetNow, children: translateString(TranslatableString.NowLabel) }) })), (options.hideClearButton !== 'undefined' ? !options.hideClearButton : true) && (_jsx(\"li\", { className: 'list-inline-item', children: _jsx(\"a\", { href: '#', className: 'btn btn-warning btn-clear', onClick: handleClear, children: translateString(TranslatableString.ClearLabel) }) }))] }));\n}\nexport default AltDateWidget;\n//# sourceMappingURL=AltDateWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/** The `AltDateTimeWidget` is an alternative widget for rendering datetime properties.\n * It uses the AltDateWidget for rendering, with the `time` prop set to true by default.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction AltDateTimeWidget({ time = true, ...props }) {\n const { AltDateWidget } = props.registry.widgets;\n return _jsx(AltDateWidget, { time: time, ...props });\n}\nexport default AltDateTimeWidget;\n//# sourceMappingURL=AltDateTimeWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, descriptionId, getTemplate, labelValue, schemaRequiresTrueValue, } from '@rjsf/utils';\n/** The `CheckBoxWidget` is a widget for rendering boolean properties.\n * It is typically used to represent a boolean.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction CheckboxWidget({ schema, uiSchema, options, id, value, disabled, readonly, label, hideLabel, autofocus = false, onBlur, onFocus, onChange, registry, }) {\n var _a;\n const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, options);\n // Because an unchecked checkbox will cause html5 validation to fail, only add\n // the \"required\" attribute if the field value must be \"true\", due to the\n // \"const\" or \"enum\" keywords\n const required = schemaRequiresTrueValue(schema);\n const handleChange = useCallback((event) => onChange(event.target.checked), [onChange]);\n const handleBlur = useCallback((event) => onBlur(id, event.target.checked), [onBlur, id]);\n const handleFocus = useCallback((event) => onFocus(id, event.target.checked), [onFocus, id]);\n const description = (_a = options.description) !== null && _a !== void 0 ? _a : schema.description;\n return (_jsxs(\"div\", { className: `checkbox ${disabled || readonly ? 'disabled' : ''}`, children: [!hideLabel && !!description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(id), description: description, schema: schema, uiSchema: uiSchema, registry: registry })), _jsxs(\"label\", { children: [_jsx(\"input\", { type: 'checkbox', id: id, name: id, checked: typeof value === 'undefined' ? false : value, required: required, disabled: disabled || readonly, autoFocus: autofocus, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, \"aria-describedby\": ariaDescribedByIds(id) }), labelValue(_jsx(\"span\", { children: label }), hideLabel)] })] }));\n}\nexport default CheckboxWidget;\n//# sourceMappingURL=CheckboxWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, enumOptionsDeselectValue, enumOptionsIsSelected, enumOptionsSelectValue, enumOptionsValueForIndex, optionId, } from '@rjsf/utils';\n/** The `CheckboxesWidget` is a widget for rendering checkbox groups.\n * It is typically used to represent an array of enums.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction CheckboxesWidget({ id, disabled, options: { inline = false, enumOptions, enumDisabled, emptyValue }, value, autofocus = false, readonly, onChange, onBlur, onFocus, }) {\n const checkboxesValues = Array.isArray(value) ? value : [value];\n const handleBlur = useCallback(({ target: { value } }) => onBlur(id, enumOptionsValueForIndex(value, enumOptions, emptyValue)), [onBlur, id]);\n const handleFocus = useCallback(({ target: { value } }) => onFocus(id, enumOptionsValueForIndex(value, enumOptions, emptyValue)), [onFocus, id]);\n return (_jsx(\"div\", { className: 'checkboxes', id: id, children: Array.isArray(enumOptions) &&\n enumOptions.map((option, index) => {\n const checked = enumOptionsIsSelected(option.value, checkboxesValues);\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;\n const disabledCls = disabled || itemDisabled || readonly ? 'disabled' : '';\n const handleChange = (event) => {\n if (event.target.checked) {\n onChange(enumOptionsSelectValue(index, checkboxesValues, enumOptions));\n }\n else {\n onChange(enumOptionsDeselectValue(index, checkboxesValues, enumOptions));\n }\n };\n const checkbox = (_jsxs(\"span\", { children: [_jsx(\"input\", { type: 'checkbox', id: optionId(id, index), name: id, checked: checked, value: String(index), disabled: disabled || itemDisabled || readonly, autoFocus: autofocus && index === 0, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, \"aria-describedby\": ariaDescribedByIds(id) }), _jsx(\"span\", { children: option.label })] }));\n return inline ? (_jsx(\"label\", { className: `checkbox-inline ${disabledCls}`, children: checkbox }, index)) : (_jsx(\"div\", { className: `checkbox ${disabledCls}`, children: _jsx(\"label\", { children: checkbox }) }, index));\n }) }));\n}\nexport default CheckboxesWidget;\n//# sourceMappingURL=CheckboxesWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `ColorWidget` component uses the `BaseInputTemplate` changing the type to `color` and disables it when it is\n * either disabled or readonly.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function ColorWidget(props) {\n const { disabled, readonly, options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'color', ...props, disabled: disabled || readonly });\n}\n//# sourceMappingURL=ColorWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { getTemplate } from '@rjsf/utils';\n/** The `DateWidget` component uses the `BaseInputTemplate` changing the type to `date` and transforms\n * the value to undefined when it is falsy during the `onChange` handling.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function DateWidget(props) {\n const { onChange, options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n const handleChange = useCallback((value) => onChange(value || undefined), [onChange]);\n return _jsx(BaseInputTemplate, { type: 'date', ...props, onChange: handleChange });\n}\n//# sourceMappingURL=DateWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate, localToUTC, utcToLocal, } from '@rjsf/utils';\n/** The `DateTimeWidget` component uses the `BaseInputTemplate` changing the type to `datetime-local` and transforms\n * the value to/from utc using the appropriate utility functions.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function DateTimeWidget(props) {\n const { onChange, value, options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return (_jsx(BaseInputTemplate, { type: 'datetime-local', ...props, value: utcToLocal(value), onChange: (value) => onChange(localToUTC(value)) }));\n}\n//# sourceMappingURL=DateTimeWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `EmailWidget` component uses the `BaseInputTemplate` changing the type to `email`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function EmailWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'email', ...props });\n}\n//# sourceMappingURL=EmailWidget.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback, useMemo } from 'react';\nimport { dataURItoBlob, getTemplate, TranslatableString, } from '@rjsf/utils';\nimport Markdown from 'markdown-to-jsx';\nfunction addNameToDataURL(dataURL, name) {\n if (dataURL === null) {\n return null;\n }\n return dataURL.replace(';base64', `;name=${encodeURIComponent(name)};base64`);\n}\nfunction processFile(file) {\n const { name, size, type } = file;\n return new Promise((resolve, reject) => {\n const reader = new window.FileReader();\n reader.onerror = reject;\n reader.onload = (event) => {\n var _a;\n if (typeof ((_a = event.target) === null || _a === void 0 ? void 0 : _a.result) === 'string') {\n resolve({\n dataURL: addNameToDataURL(event.target.result, name),\n name,\n size,\n type,\n });\n }\n else {\n resolve({\n dataURL: null,\n name,\n size,\n type,\n });\n }\n };\n reader.readAsDataURL(file);\n });\n}\nfunction processFiles(files) {\n return Promise.all(Array.from(files).map(processFile));\n}\nfunction FileInfoPreview({ fileInfo, registry, }) {\n const { translateString } = registry;\n const { dataURL, type, name } = fileInfo;\n if (!dataURL) {\n return null;\n }\n // If type is JPEG or PNG then show image preview.\n // Originally, any type of image was supported, but this was changed into a whitelist\n // since SVGs and animated GIFs are also images, which are generally considered a security risk.\n if (['image/jpeg', 'image/png'].includes(type)) {\n return _jsx(\"img\", { src: dataURL, style: { maxWidth: '100%' }, className: 'file-preview' });\n }\n // otherwise, let users download file\n return (_jsxs(_Fragment, { children: [' ', _jsx(\"a\", { download: `preview-${name}`, href: dataURL, className: 'file-download', children: translateString(TranslatableString.PreviewLabel) })] }));\n}\nfunction FilesInfo({ filesInfo, registry, preview, onRemove, options, }) {\n if (filesInfo.length === 0) {\n return null;\n }\n const { translateString } = registry;\n const { RemoveButton } = getTemplate('ButtonTemplates', registry, options);\n return (_jsx(\"ul\", { className: 'file-info', children: filesInfo.map((fileInfo, key) => {\n const { name, size, type } = fileInfo;\n const handleRemove = () => onRemove(key);\n return (_jsxs(\"li\", { children: [_jsx(Markdown, { children: translateString(TranslatableString.FilesInfo, [name, type, String(size)]) }), preview && _jsx(FileInfoPreview, { fileInfo: fileInfo, registry: registry }), _jsx(RemoveButton, { onClick: handleRemove, registry: registry })] }, key));\n }) }));\n}\nfunction extractFileInfo(dataURLs) {\n return dataURLs.reduce((acc, dataURL) => {\n if (!dataURL) {\n return acc;\n }\n try {\n const { blob, name } = dataURItoBlob(dataURL);\n return [\n ...acc,\n {\n dataURL,\n name: name,\n size: blob.size,\n type: blob.type,\n },\n ];\n }\n catch (e) {\n // Invalid dataURI, so just ignore it.\n return acc;\n }\n }, []);\n}\n/**\n * The `FileWidget` is a widget for rendering file upload fields.\n * It is typically used with a string property with data-url format.\n */\nfunction FileWidget(props) {\n const { disabled, readonly, required, multiple, onChange, value, options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n const handleChange = useCallback((event) => {\n if (!event.target.files) {\n return;\n }\n // Due to variances in themes, dealing with multiple files for the array case now happens one file at a time.\n // This is because we don't pass `multiple` into the `BaseInputTemplate` anymore. Instead, we deal with the single\n // file in each event and concatenate them together ourselves\n processFiles(event.target.files).then((filesInfoEvent) => {\n const newValue = filesInfoEvent.map((fileInfo) => fileInfo.dataURL);\n if (multiple) {\n onChange(value.concat(newValue[0]));\n }\n else {\n onChange(newValue[0]);\n }\n });\n }, [multiple, value, onChange]);\n const filesInfo = useMemo(() => extractFileInfo(Array.isArray(value) ? value : [value]), [value]);\n const rmFile = useCallback((index) => {\n if (multiple) {\n const newValue = value.filter((_, i) => i !== index);\n onChange(newValue);\n }\n else {\n onChange(undefined);\n }\n }, [multiple, value, onChange]);\n return (_jsxs(\"div\", { children: [_jsx(BaseInputTemplate, { ...props, disabled: disabled || readonly, type: 'file', required: value ? false : required, onChangeOverride: handleChange, value: '', accept: options.accept ? String(options.accept) : undefined }), _jsx(FilesInfo, { filesInfo: filesInfo, onRemove: rmFile, registry: registry, preview: options.filePreview, options: options })] }));\n}\nexport default FileWidget;\n//# sourceMappingURL=FileWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\n/** The `HiddenWidget` is a widget for rendering a hidden input field.\n * It is typically used by setting type to \"hidden\".\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction HiddenWidget({ id, value, }) {\n return _jsx(\"input\", { type: 'hidden', id: id, name: id, value: typeof value === 'undefined' ? '' : value });\n}\nexport default HiddenWidget;\n//# sourceMappingURL=HiddenWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `PasswordWidget` component uses the `BaseInputTemplate` changing the type to `password`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function PasswordWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'password', ...props });\n}\n//# sourceMappingURL=PasswordWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, enumOptionsIsSelected, enumOptionsValueForIndex, optionId, } from '@rjsf/utils';\n/** The `RadioWidget` is a widget for rendering a radio group.\n * It is typically used with a string property constrained with enum options.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction RadioWidget({ options, value, required, disabled, readonly, autofocus = false, onBlur, onFocus, onChange, id, }) {\n const { enumOptions, enumDisabled, inline, emptyValue } = options;\n const handleBlur = useCallback(({ target: { value } }) => onBlur(id, enumOptionsValueForIndex(value, enumOptions, emptyValue)), [onBlur, id]);\n const handleFocus = useCallback(({ target: { value } }) => onFocus(id, enumOptionsValueForIndex(value, enumOptions, emptyValue)), [onFocus, id]);\n return (_jsx(\"div\", { className: 'field-radio-group', id: id, children: Array.isArray(enumOptions) &&\n enumOptions.map((option, i) => {\n const checked = enumOptionsIsSelected(option.value, value);\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;\n const disabledCls = disabled || itemDisabled || readonly ? 'disabled' : '';\n const handleChange = () => onChange(option.value);\n const radio = (_jsxs(\"span\", { children: [_jsx(\"input\", { type: 'radio', id: optionId(id, i), checked: checked, name: id, required: required, value: String(i), disabled: disabled || itemDisabled || readonly, autoFocus: autofocus && i === 0, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, \"aria-describedby\": ariaDescribedByIds(id) }), _jsx(\"span\", { children: option.label })] }));\n return inline ? (_jsx(\"label\", { className: `radio-inline ${disabledCls}`, children: radio }, i)) : (_jsx(\"div\", { className: `radio ${disabledCls}`, children: _jsx(\"label\", { children: radio }) }, i));\n }) }));\n}\nexport default RadioWidget;\n//# sourceMappingURL=RadioWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/** The `RangeWidget` component uses the `BaseInputTemplate` changing the type to `range` and wrapping the result\n * in a div, with the value along side it.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function RangeWidget(props) {\n const { value, registry: { templates: { BaseInputTemplate }, }, } = props;\n return (_jsxs(\"div\", { className: 'field-range-wrapper', children: [_jsx(BaseInputTemplate, { type: 'range', ...props }), _jsx(\"span\", { className: 'range-view', children: value })] }));\n}\n//# sourceMappingURL=RangeWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds, enumOptionsIndexForValue, enumOptionsValueForIndex, } from '@rjsf/utils';\nfunction getValue(event, multiple) {\n if (multiple) {\n return Array.from(event.target.options)\n .slice()\n .filter((o) => o.selected)\n .map((o) => o.value);\n }\n return event.target.value;\n}\n/** The `SelectWidget` is a widget for rendering dropdowns.\n * It is typically used with string properties constrained with enum options.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction SelectWidget({ schema, id, options, value, required, disabled, readonly, multiple = false, autofocus = false, onChange, onBlur, onFocus, placeholder, }) {\n const { enumOptions, enumDisabled, emptyValue: optEmptyVal } = options;\n const emptyValue = multiple ? [] : '';\n const handleFocus = useCallback((event) => {\n const newValue = getValue(event, multiple);\n return onFocus(id, enumOptionsValueForIndex(newValue, enumOptions, optEmptyVal));\n }, [onFocus, id, schema, multiple, options]);\n const handleBlur = useCallback((event) => {\n const newValue = getValue(event, multiple);\n return onBlur(id, enumOptionsValueForIndex(newValue, enumOptions, optEmptyVal));\n }, [onBlur, id, schema, multiple, options]);\n const handleChange = useCallback((event) => {\n const newValue = getValue(event, multiple);\n return onChange(enumOptionsValueForIndex(newValue, enumOptions, optEmptyVal));\n }, [onChange, schema, multiple, options]);\n const selectedIndexes = enumOptionsIndexForValue(value, enumOptions, multiple);\n return (_jsxs(\"select\", { id: id, name: id, multiple: multiple, className: 'form-control', value: typeof selectedIndexes === 'undefined' ? emptyValue : selectedIndexes, required: required, disabled: disabled || readonly, autoFocus: autofocus, onBlur: handleBlur, onFocus: handleFocus, onChange: handleChange, \"aria-describedby\": ariaDescribedByIds(id), children: [!multiple && schema.default === undefined && _jsx(\"option\", { value: '', children: placeholder }), Array.isArray(enumOptions) &&\n enumOptions.map(({ value, label }, i) => {\n const disabled = enumDisabled && enumDisabled.indexOf(value) !== -1;\n return (_jsx(\"option\", { value: String(i), disabled: disabled, children: label }, i));\n })] }));\n}\nexport default SelectWidget;\n//# sourceMappingURL=SelectWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { ariaDescribedByIds } from '@rjsf/utils';\n/** The `TextareaWidget` is a widget for rendering input fields as textarea.\n *\n * @param props - The `WidgetProps` for this component\n */\nfunction TextareaWidget({ id, options = {}, placeholder, value, required, disabled, readonly, autofocus = false, onChange, onBlur, onFocus, }) {\n const handleChange = useCallback(({ target: { value } }) => onChange(value === '' ? options.emptyValue : value), [onChange, options.emptyValue]);\n const handleBlur = useCallback(({ target: { value } }) => onBlur(id, value), [onBlur, id]);\n const handleFocus = useCallback(({ target: { value } }) => onFocus(id, value), [id, onFocus]);\n return (_jsx(\"textarea\", { id: id, name: id, className: 'form-control', value: value ? value : '', placeholder: placeholder, required: required, disabled: disabled, readOnly: readonly, autoFocus: autofocus, rows: options.rows, onBlur: handleBlur, onFocus: handleFocus, onChange: handleChange, \"aria-describedby\": ariaDescribedByIds(id) }));\n}\nTextareaWidget.defaultProps = {\n autofocus: false,\n options: {},\n};\nexport default TextareaWidget;\n//# sourceMappingURL=TextareaWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `TextWidget` component uses the `BaseInputTemplate`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function TextWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { ...props });\n}\n//# sourceMappingURL=TextWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { getTemplate } from '@rjsf/utils';\n/** The `TimeWidget` component uses the `BaseInputTemplate` changing the type to `time` and transforms\n * the value to undefined when it is falsy during the `onChange` handling.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function TimeWidget(props) {\n const { onChange, options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n const handleChange = useCallback((value) => onChange(value ? `${value}:00` : undefined), [onChange]);\n return _jsx(BaseInputTemplate, { type: 'time', ...props, onChange: handleChange });\n}\n//# sourceMappingURL=TimeWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `URLWidget` component uses the `BaseInputTemplate` changing the type to `url`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function URLWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'url', ...props });\n}\n//# sourceMappingURL=URLWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate } from '@rjsf/utils';\n/** The `UpDownWidget` component uses the `BaseInputTemplate` changing the type to `number`.\n *\n * @param props - The `WidgetProps` for this component\n */\nexport default function UpDownWidget(props) {\n const { options, registry } = props;\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n return _jsx(BaseInputTemplate, { type: 'number', ...props });\n}\n//# sourceMappingURL=UpDownWidget.js.map","import AltDateWidget from './AltDateWidget';\nimport AltDateTimeWidget from './AltDateTimeWidget';\nimport CheckboxWidget from './CheckboxWidget';\nimport CheckboxesWidget from './CheckboxesWidget';\nimport ColorWidget from './ColorWidget';\nimport DateWidget from './DateWidget';\nimport DateTimeWidget from './DateTimeWidget';\nimport EmailWidget from './EmailWidget';\nimport FileWidget from './FileWidget';\nimport HiddenWidget from './HiddenWidget';\nimport PasswordWidget from './PasswordWidget';\nimport RadioWidget from './RadioWidget';\nimport RangeWidget from './RangeWidget';\nimport SelectWidget from './SelectWidget';\nimport TextareaWidget from './TextareaWidget';\nimport TextWidget from './TextWidget';\nimport TimeWidget from './TimeWidget';\nimport URLWidget from './URLWidget';\nimport UpDownWidget from './UpDownWidget';\nfunction widgets() {\n return {\n AltDateWidget,\n AltDateTimeWidget,\n CheckboxWidget,\n CheckboxesWidget,\n ColorWidget,\n DateWidget,\n DateTimeWidget,\n EmailWidget,\n FileWidget,\n HiddenWidget,\n PasswordWidget,\n RadioWidget,\n RangeWidget,\n SelectWidget,\n TextWidget,\n TextareaWidget,\n TimeWidget,\n UpDownWidget,\n URLWidget,\n };\n}\nexport default widgets;\n//# sourceMappingURL=index.js.map","import { englishStringTranslator } from '@rjsf/utils';\nimport fields from './components/fields';\nimport templates from './components/templates';\nimport widgets from './components/widgets';\n/** The default registry consists of all the fields, templates and widgets provided in the core implementation,\n * plus an empty `rootSchema` and `formContext. We omit schemaUtils here because it cannot be defaulted without a\n * rootSchema and validator. It will be added into the computed registry later in the Form.\n */\nexport default function getDefaultRegistry() {\n return {\n fields: fields(),\n templates: templates(),\n widgets: widgets(),\n rootSchema: {},\n formContext: {},\n translateString: englishStringTranslator,\n };\n}\n//# sourceMappingURL=getDefaultRegistry.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Component, createRef } from 'react';\nimport { createSchemaUtils, deepEquals, getTemplate, getUiOptions, isObject, mergeObjects, NAME_KEY, RJSF_ADDITONAL_PROPERTIES_FLAG, shouldRender, SUBMIT_BTN_OPTIONS_KEY, toErrorList, UI_GLOBAL_OPTIONS_KEY, UI_OPTIONS_KEY, validationDataMerge, } from '@rjsf/utils';\nimport _get from 'lodash/get';\nimport _isEmpty from 'lodash/isEmpty';\nimport _pick from 'lodash/pick';\nimport _toPath from 'lodash/toPath';\nimport getDefaultRegistry from '../getDefaultRegistry';\n/** The `Form` component renders the outer form and all the fields defined in the `schema` */\nexport default class Form extends Component {\n /** Constructs the `Form` from the `props`. Will setup the initial state from the props. It will also call the\n * `onChange` handler if the initially provided `formData` is modified to add missing default values as part of the\n * state construction.\n *\n * @param props - The initial props for the `Form`\n */\n constructor(props) {\n super(props);\n /** Returns the `formData` with only the elements specified in the `fields` list\n *\n * @param formData - The data for the `Form`\n * @param fields - The fields to keep while filtering\n */\n this.getUsedFormData = (formData, fields) => {\n // For the case of a single input form\n if (fields.length === 0 && typeof formData !== 'object') {\n return formData;\n }\n // _pick has incorrect type definition, it works with string[][], because lodash/hasIn supports it\n const data = _pick(formData, fields);\n if (Array.isArray(formData)) {\n return Object.keys(data).map((key) => data[key]);\n }\n return data;\n };\n /** Returns the list of field names from inspecting the `pathSchema` as well as using the `formData`\n *\n * @param pathSchema - The `PathSchema` object for the form\n * @param [formData] - The form data to use while checking for empty objects/arrays\n */\n this.getFieldNames = (pathSchema, formData) => {\n const getAllPaths = (_obj, acc = [], paths = [[]]) => {\n Object.keys(_obj).forEach((key) => {\n if (typeof _obj[key] === 'object') {\n const newPaths = paths.map((path) => [...path, key]);\n // If an object is marked with additionalProperties, all its keys are valid\n if (_obj[key][RJSF_ADDITONAL_PROPERTIES_FLAG] && _obj[key][NAME_KEY] !== '') {\n acc.push(_obj[key][NAME_KEY]);\n }\n else {\n getAllPaths(_obj[key], acc, newPaths);\n }\n }\n else if (key === NAME_KEY && _obj[key] !== '') {\n paths.forEach((path) => {\n const formValue = _get(formData, path);\n // adds path to fieldNames if it points to a value\n // or an empty object/array\n if (typeof formValue !== 'object' ||\n _isEmpty(formValue) ||\n (Array.isArray(formValue) && formValue.every((val) => typeof val !== 'object'))) {\n acc.push(path);\n }\n });\n }\n });\n return acc;\n };\n return getAllPaths(pathSchema);\n };\n /** Function to handle changes made to a field in the `Form`. This handler receives an entirely new copy of the\n * `formData` along with a new `ErrorSchema`. It will first update the `formData` with any missing default fields and\n * then, if `omitExtraData` and `liveOmit` are turned on, the `formData` will be filterer to remove any extra data not\n * in a form field. Then, the resulting formData will be validated if required. The state will be updated with the new\n * updated (potentially filtered) `formData`, any errors that resulted from validation. Finally the `onChange`\n * callback will be called if specified with the updated state.\n *\n * @param formData - The new form data from a change to a field\n * @param newErrorSchema - The new `ErrorSchema` based on the field change\n * @param id - The id of the field that caused the change\n */\n this.onChange = (formData, newErrorSchema, id) => {\n const { extraErrors, omitExtraData, liveOmit, noValidate, liveValidate, onChange } = this.props;\n const { schemaUtils, schema, retrievedSchema } = this.state;\n if (isObject(formData) || Array.isArray(formData)) {\n const newState = this.getStateFromProps(this.props, formData, retrievedSchema);\n formData = newState.formData;\n }\n const mustValidate = !noValidate && liveValidate;\n let state = { formData, schema };\n let newFormData = formData;\n let _retrievedSchema;\n if (omitExtraData === true && liveOmit === true) {\n _retrievedSchema = schemaUtils.retrieveSchema(schema, formData);\n const pathSchema = schemaUtils.toPathSchema(_retrievedSchema, '', formData);\n const fieldNames = this.getFieldNames(pathSchema, formData);\n newFormData = this.getUsedFormData(formData, fieldNames);\n state = {\n formData: newFormData,\n };\n }\n if (mustValidate) {\n const schemaValidation = this.validate(newFormData, schema, schemaUtils, retrievedSchema);\n let errors = schemaValidation.errors;\n let errorSchema = schemaValidation.errorSchema;\n const schemaValidationErrors = errors;\n const schemaValidationErrorSchema = errorSchema;\n if (extraErrors) {\n const merged = validationDataMerge(schemaValidation, extraErrors);\n errorSchema = merged.errorSchema;\n errors = merged.errors;\n }\n state = {\n formData: newFormData,\n errors,\n errorSchema,\n schemaValidationErrors,\n schemaValidationErrorSchema,\n };\n }\n else if (!noValidate && newErrorSchema) {\n const errorSchema = extraErrors\n ? mergeObjects(newErrorSchema, extraErrors, 'preventDuplicates')\n : newErrorSchema;\n state = {\n formData: newFormData,\n errorSchema: errorSchema,\n errors: toErrorList(errorSchema),\n };\n }\n if (_retrievedSchema) {\n state.retrievedSchema = _retrievedSchema;\n }\n this.setState(state, () => onChange && onChange({ ...this.state, ...state }, id));\n };\n /**\n * Callback function to handle reset form data.\n * - Reset all fields with default values.\n * - Reset validations and errors\n *\n */\n this.reset = () => {\n const { onChange } = this.props;\n const newState = this.getStateFromProps(this.props, undefined);\n const newFormData = newState.formData;\n const state = {\n formData: newFormData,\n errorSchema: {},\n errors: [],\n schemaValidationErrors: [],\n schemaValidationErrorSchema: {},\n };\n this.setState(state, () => onChange && onChange({ ...this.state, ...state }));\n };\n /** Callback function to handle when a field on the form is blurred. Calls the `onBlur` callback for the `Form` if it\n * was provided.\n *\n * @param id - The unique `id` of the field that was blurred\n * @param data - The data associated with the field that was blurred\n */\n this.onBlur = (id, data) => {\n const { onBlur } = this.props;\n if (onBlur) {\n onBlur(id, data);\n }\n };\n /** Callback function to handle when a field on the form is focused. Calls the `onFocus` callback for the `Form` if it\n * was provided.\n *\n * @param id - The unique `id` of the field that was focused\n * @param data - The data associated with the field that was focused\n */\n this.onFocus = (id, data) => {\n const { onFocus } = this.props;\n if (onFocus) {\n onFocus(id, data);\n }\n };\n /** Callback function to handle when the form is submitted. First, it prevents the default event behavior. Nothing\n * happens if the target and currentTarget of the event are not the same. It will omit any extra data in the\n * `formData` in the state if `omitExtraData` is true. It will validate the resulting `formData`, reporting errors\n * via the `onError()` callback unless validation is disabled. Finally, it will add in any `extraErrors` and then call\n * back the `onSubmit` callback if it was provided.\n *\n * @param event - The submit HTML form event\n */\n this.onSubmit = (event) => {\n event.preventDefault();\n if (event.target !== event.currentTarget) {\n return;\n }\n event.persist();\n const { omitExtraData, extraErrors, noValidate, onSubmit } = this.props;\n let { formData: newFormData } = this.state;\n const { schema, schemaUtils } = this.state;\n if (omitExtraData === true) {\n const retrievedSchema = schemaUtils.retrieveSchema(schema, newFormData);\n const pathSchema = schemaUtils.toPathSchema(retrievedSchema, '', newFormData);\n const fieldNames = this.getFieldNames(pathSchema, newFormData);\n newFormData = this.getUsedFormData(newFormData, fieldNames);\n }\n if (noValidate || this.validateForm()) {\n // There are no errors generated through schema validation.\n // Check for user provided errors and update state accordingly.\n const errorSchema = extraErrors || {};\n const errors = extraErrors ? toErrorList(extraErrors) : [];\n this.setState({\n formData: newFormData,\n errors,\n errorSchema,\n schemaValidationErrors: [],\n schemaValidationErrorSchema: {},\n }, () => {\n if (onSubmit) {\n onSubmit({ ...this.state, formData: newFormData, status: 'submitted' }, event);\n }\n });\n }\n };\n /** Provides a function that can be used to programmatically submit the `Form` */\n this.submit = () => {\n if (this.formElement.current) {\n const submitCustomEvent = new CustomEvent('submit', {\n cancelable: true,\n });\n submitCustomEvent.preventDefault();\n this.formElement.current.dispatchEvent(submitCustomEvent);\n this.formElement.current.requestSubmit();\n }\n };\n if (!props.validator) {\n throw new Error('A validator is required for Form functionality to work');\n }\n this.state = this.getStateFromProps(props, props.formData);\n if (this.props.onChange && !deepEquals(this.state.formData, this.props.formData)) {\n this.props.onChange(this.state);\n }\n this.formElement = createRef();\n }\n /**\n * `getSnapshotBeforeUpdate` is a React lifecycle method that is invoked right before the most recently rendered\n * output is committed to the DOM. It enables your component to capture current values (e.g., scroll position) before\n * they are potentially changed.\n *\n * In this case, it checks if the props have changed since the last render. If they have, it computes the next state\n * of the component using `getStateFromProps` method and returns it along with a `shouldUpdate` flag set to `true` IF\n * the `nextState` and `prevState` are different, otherwise `false`. This ensures that we have the most up-to-date\n * state ready to be applied in `componentDidUpdate`.\n *\n * If `formData` hasn't changed, it simply returns an object with `shouldUpdate` set to `false`, indicating that a\n * state update is not necessary.\n *\n * @param prevProps - The previous set of props before the update.\n * @param prevState - The previous state before the update.\n * @returns Either an object containing the next state and a flag indicating that an update should occur, or an object\n * with a flag indicating that an update is not necessary.\n */\n getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!deepEquals(this.props, prevProps)) {\n const isSchemaChanged = !deepEquals(prevProps.schema, this.props.schema);\n const isFormDataChanged = !deepEquals(prevProps.formData, this.props.formData);\n const nextState = this.getStateFromProps(this.props, this.props.formData, \n // If the `schema` has changed, we need to update the retrieved schema.\n // Or if the `formData` changes, for example in the case of a schema with dependencies that need to\n // match one of the subSchemas, the retrieved schema must be updated.\n isSchemaChanged || isFormDataChanged ? undefined : this.state.retrievedSchema, isSchemaChanged);\n const shouldUpdate = !deepEquals(nextState, prevState);\n return { nextState, shouldUpdate };\n }\n return { shouldUpdate: false };\n }\n /**\n * `componentDidUpdate` is a React lifecycle method that is invoked immediately after updating occurs. This method is\n * not called for the initial render.\n *\n * Here, it checks if an update is necessary based on the `shouldUpdate` flag received from `getSnapshotBeforeUpdate`.\n * If an update is required, it applies the next state and, if needed, triggers the `onChange` handler to inform about\n * changes.\n *\n * This method effectively replaces the deprecated `UNSAFE_componentWillReceiveProps`, providing a safer alternative\n * to handle prop changes and state updates.\n *\n * @param _ - The previous set of props.\n * @param prevState - The previous state of the component before the update.\n * @param snapshot - The value returned from `getSnapshotBeforeUpdate`.\n */\n componentDidUpdate(_, prevState, snapshot) {\n if (snapshot.shouldUpdate) {\n const { nextState } = snapshot;\n if (!deepEquals(nextState.formData, this.props.formData) &&\n !deepEquals(nextState.formData, prevState.formData) &&\n this.props.onChange) {\n this.props.onChange(nextState);\n }\n this.setState(nextState);\n }\n }\n /** Extracts the updated state from the given `props` and `inputFormData`. As part of this process, the\n * `inputFormData` is first processed to add any missing required defaults. After that, the data is run through the\n * validation process IF required by the `props`.\n *\n * @param props - The props passed to the `Form`\n * @param inputFormData - The new or current data for the `Form`\n * @param retrievedSchema - An expanded schema, if not provided, it will be retrieved from the `schema` and `formData`.\n * @param isSchemaChanged - A flag indicating whether the schema has changed.\n * @returns - The new state for the `Form`\n */\n getStateFromProps(props, inputFormData, retrievedSchema, isSchemaChanged = false) {\n const state = this.state || {};\n const schema = 'schema' in props ? props.schema : this.props.schema;\n const uiSchema = ('uiSchema' in props ? props.uiSchema : this.props.uiSchema) || {};\n const edit = typeof inputFormData !== 'undefined';\n const liveValidate = 'liveValidate' in props ? props.liveValidate : this.props.liveValidate;\n const mustValidate = edit && !props.noValidate && liveValidate;\n const rootSchema = schema;\n const experimental_defaultFormStateBehavior = 'experimental_defaultFormStateBehavior' in props\n ? props.experimental_defaultFormStateBehavior\n : this.props.experimental_defaultFormStateBehavior;\n let schemaUtils = state.schemaUtils;\n if (!schemaUtils ||\n schemaUtils.doesSchemaUtilsDiffer(props.validator, rootSchema, experimental_defaultFormStateBehavior)) {\n schemaUtils = createSchemaUtils(props.validator, rootSchema, experimental_defaultFormStateBehavior);\n }\n const formData = schemaUtils.getDefaultFormState(schema, inputFormData);\n const _retrievedSchema = retrievedSchema !== null && retrievedSchema !== void 0 ? retrievedSchema : schemaUtils.retrieveSchema(schema, formData);\n const getCurrentErrors = () => {\n // If the `props.noValidate` option is set or the schema has changed, we reset the error state.\n if (props.noValidate || isSchemaChanged) {\n return { errors: [], errorSchema: {} };\n }\n else if (!props.liveValidate) {\n return {\n errors: state.schemaValidationErrors || [],\n errorSchema: state.schemaValidationErrorSchema || {},\n };\n }\n return {\n errors: state.errors || [],\n errorSchema: state.errorSchema || {},\n };\n };\n let errors;\n let errorSchema;\n let schemaValidationErrors = state.schemaValidationErrors;\n let schemaValidationErrorSchema = state.schemaValidationErrorSchema;\n if (mustValidate) {\n const schemaValidation = this.validate(formData, schema, schemaUtils, _retrievedSchema);\n errors = schemaValidation.errors;\n errorSchema = schemaValidation.errorSchema;\n schemaValidationErrors = errors;\n schemaValidationErrorSchema = errorSchema;\n }\n else {\n const currentErrors = getCurrentErrors();\n errors = currentErrors.errors;\n errorSchema = currentErrors.errorSchema;\n }\n if (props.extraErrors) {\n const merged = validationDataMerge({ errorSchema, errors }, props.extraErrors);\n errorSchema = merged.errorSchema;\n errors = merged.errors;\n }\n const idSchema = schemaUtils.toIdSchema(_retrievedSchema, uiSchema['ui:rootFieldId'], formData, props.idPrefix, props.idSeparator);\n const nextState = {\n schemaUtils,\n schema,\n uiSchema,\n idSchema,\n formData,\n edit,\n errors,\n errorSchema,\n schemaValidationErrors,\n schemaValidationErrorSchema,\n retrievedSchema: _retrievedSchema,\n };\n return nextState;\n }\n /** React lifecycle method that is used to determine whether component should be updated.\n *\n * @param nextProps - The next version of the props\n * @param nextState - The next version of the state\n * @returns - True if the component should be updated, false otherwise\n */\n shouldComponentUpdate(nextProps, nextState) {\n return shouldRender(this, nextProps, nextState);\n }\n /** Validates the `formData` against the `schema` using the `altSchemaUtils` (if provided otherwise it uses the\n * `schemaUtils` in the state), returning the results.\n *\n * @param formData - The new form data to validate\n * @param schema - The schema used to validate against\n * @param altSchemaUtils - The alternate schemaUtils to use for validation\n */\n validate(formData, schema = this.props.schema, altSchemaUtils, retrievedSchema) {\n const schemaUtils = altSchemaUtils ? altSchemaUtils : this.state.schemaUtils;\n const { customValidate, transformErrors, uiSchema } = this.props;\n const resolvedSchema = retrievedSchema !== null && retrievedSchema !== void 0 ? retrievedSchema : schemaUtils.retrieveSchema(schema, formData);\n return schemaUtils\n .getValidator()\n .validateFormData(formData, resolvedSchema, customValidate, transformErrors, uiSchema);\n }\n /** Renders any errors contained in the `state` in using the `ErrorList`, if not disabled by `showErrorList`. */\n renderErrors(registry) {\n const { errors, errorSchema, schema, uiSchema } = this.state;\n const { formContext } = this.props;\n const options = getUiOptions(uiSchema);\n const ErrorListTemplate = getTemplate('ErrorListTemplate', registry, options);\n if (errors && errors.length) {\n return (_jsx(ErrorListTemplate, { errors: errors, errorSchema: errorSchema || {}, schema: schema, uiSchema: uiSchema, formContext: formContext, registry: registry }));\n }\n return null;\n }\n /** Returns the registry for the form */\n getRegistry() {\n var _a;\n const { translateString: customTranslateString, uiSchema = {} } = this.props;\n const { schemaUtils } = this.state;\n const { fields, templates, widgets, formContext, translateString } = getDefaultRegistry();\n return {\n fields: { ...fields, ...this.props.fields },\n templates: {\n ...templates,\n ...this.props.templates,\n ButtonTemplates: {\n ...templates.ButtonTemplates,\n ...(_a = this.props.templates) === null || _a === void 0 ? void 0 : _a.ButtonTemplates,\n },\n },\n widgets: { ...widgets, ...this.props.widgets },\n rootSchema: this.props.schema,\n formContext: this.props.formContext || formContext,\n schemaUtils,\n translateString: customTranslateString || translateString,\n globalUiOptions: uiSchema[UI_GLOBAL_OPTIONS_KEY],\n };\n }\n /** Attempts to focus on the field associated with the `error`. Uses the `property` field to compute path of the error\n * field, then, using the `idPrefix` and `idSeparator` converts that path into an id. Then the input element with that\n * id is attempted to be found using the `formElement` ref. If it is located, then it is focused.\n *\n * @param error - The error on which to focus\n */\n focusOnError(error) {\n const { idPrefix = 'root', idSeparator = '_' } = this.props;\n const { property } = error;\n const path = _toPath(property);\n if (path[0] === '') {\n // Most of the time the `.foo` property results in the first element being empty, so replace it with the idPrefix\n path[0] = idPrefix;\n }\n else {\n // Otherwise insert the idPrefix into the first location using unshift\n path.unshift(idPrefix);\n }\n const elementId = path.join(idSeparator);\n let field = this.formElement.current.elements[elementId];\n if (!field) {\n // if not an exact match, try finding an input starting with the element id (like radio buttons or checkboxes)\n field = this.formElement.current.querySelector(`input[id^=${elementId}`);\n }\n if (field && field.length) {\n // If we got a list with length > 0\n field = field[0];\n }\n if (field) {\n field.focus();\n }\n }\n /** Programmatically validate the form. If `onError` is provided, then it will be called with the list of errors the\n * same way as would happen on form submission.\n *\n * @returns - True if the form is valid, false otherwise.\n */\n validateForm() {\n const { extraErrors, extraErrorsBlockSubmit, focusOnFirstError, onError } = this.props;\n const { formData, errors: prevErrors } = this.state;\n const schemaValidation = this.validate(formData);\n let errors = schemaValidation.errors;\n let errorSchema = schemaValidation.errorSchema;\n const schemaValidationErrors = errors;\n const schemaValidationErrorSchema = errorSchema;\n const hasError = errors.length > 0 || (extraErrors && extraErrorsBlockSubmit);\n if (hasError) {\n if (extraErrors) {\n const merged = validationDataMerge(schemaValidation, extraErrors);\n errorSchema = merged.errorSchema;\n errors = merged.errors;\n }\n if (focusOnFirstError) {\n if (typeof focusOnFirstError === 'function') {\n focusOnFirstError(errors[0]);\n }\n else {\n this.focusOnError(errors[0]);\n }\n }\n this.setState({\n errors,\n errorSchema,\n schemaValidationErrors,\n schemaValidationErrorSchema,\n }, () => {\n if (onError) {\n onError(errors);\n }\n else {\n console.error('Form validation failed', errors);\n }\n });\n }\n else if (prevErrors.length > 0) {\n this.setState({\n errors: [],\n errorSchema: {},\n schemaValidationErrors: [],\n schemaValidationErrorSchema: {},\n });\n }\n return !hasError;\n }\n /** Renders the `Form` fields inside the
| `tagName` or `_internalFormWrapper`, rendering any errors if\n * needed along with the submit button or any children of the form.\n */\n render() {\n const { children, id, idPrefix, idSeparator, className = '', tagName, name, method, target, action, autoComplete, enctype, acceptcharset, noHtml5Validate = false, disabled = false, readonly = false, formContext, showErrorList = 'top', _internalFormWrapper, } = this.props;\n const { schema, uiSchema, formData, errorSchema, idSchema } = this.state;\n const registry = this.getRegistry();\n const { SchemaField: _SchemaField } = registry.fields;\n const { SubmitButton } = registry.templates.ButtonTemplates;\n // The `semantic-ui` and `material-ui` themes have `_internalFormWrapper`s that take an `as` prop that is the\n // PropTypes.elementType to use for the inner tag, so we'll need to pass `tagName` along if it is provided.\n // NOTE, the `as` prop is native to `semantic-ui` and is emulated in the `material-ui` theme\n const as = _internalFormWrapper ? tagName : undefined;\n const FormTag = _internalFormWrapper || tagName || 'form';\n let { [SUBMIT_BTN_OPTIONS_KEY]: submitOptions = {} } = getUiOptions(uiSchema);\n if (disabled) {\n submitOptions = { ...submitOptions, props: { ...submitOptions.props, disabled: true } };\n }\n const submitUiSchema = { [UI_OPTIONS_KEY]: { [SUBMIT_BTN_OPTIONS_KEY]: submitOptions } };\n return (_jsxs(FormTag, { className: className ? className : 'rjsf', id: id, name: name, method: method, target: target, action: action, autoComplete: autoComplete, encType: enctype, acceptCharset: acceptcharset, noValidate: noHtml5Validate, onSubmit: this.onSubmit, as: as, ref: this.formElement, children: [showErrorList === 'top' && this.renderErrors(registry), _jsx(_SchemaField, { name: '', schema: schema, uiSchema: uiSchema, errorSchema: errorSchema, idSchema: idSchema, idPrefix: idPrefix, idSeparator: idSeparator, formContext: formContext, formData: formData, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, registry: registry, disabled: disabled, readonly: readonly }), children ? children : _jsx(SubmitButton, { uiSchema: submitUiSchema, registry: registry }), showErrorList === 'bottom' && this.renderErrors(registry)] }));\n }\n}\n//# sourceMappingURL=Form.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from 'react';\nimport Form from './components/Form';\n/** A Higher-Order component that creates a wrapper around a `Form` with the overrides from the `WithThemeProps` */\nexport default function withTheme(themeProps) {\n return forwardRef(({ fields, widgets, templates, ...directProps }, ref) => {\n var _a;\n fields = { ...themeProps === null || themeProps === void 0 ? void 0 : themeProps.fields, ...fields };\n widgets = { ...themeProps === null || themeProps === void 0 ? void 0 : themeProps.widgets, ...widgets };\n templates = {\n ...themeProps === null || themeProps === void 0 ? void 0 : themeProps.templates,\n ...templates,\n ButtonTemplates: {\n ...(_a = themeProps === null || themeProps === void 0 ? void 0 : themeProps.templates) === null || _a === void 0 ? void 0 : _a.ButtonTemplates,\n ...templates === null || templates === void 0 ? void 0 : templates.ButtonTemplates,\n },\n };\n return (_jsx(Form, { ...themeProps, ...directProps, fields: fields, widgets: widgets, templates: templates, ref: ref }));\n });\n}\n//# sourceMappingURL=withTheme.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport default function ArrayFieldItemTemplate(props) {\n const { children, disabled, hasToolbar, hasCopy, hasMoveDown, hasMoveUp, hasRemove, index, onCopyIndexClick, onDropIndexClick, onReorderClick, readonly, uiSchema, registry, } = props;\n const { CopyButton, MoveDownButton, MoveUpButton, RemoveButton } = registry.templates.ButtonTemplates;\n return (_jsx(\"div\", { className: 'ms-Grid', dir: 'ltr', children: _jsxs(\"div\", { className: 'ms-Grid-row', children: [_jsx(\"div\", { className: 'ms-Grid-col ms-sm6 ms-md8 ms-lg9', children: _jsx(\"div\", { className: 'ms-Grid-row', children: children }) }), hasToolbar && (_jsxs(\"div\", { className: 'ms-Grid-col ms-sm6 ms-md4 ms-lg3', style: { textAlign: 'right' }, children: [(hasMoveUp || hasMoveDown) && (_jsx(MoveUpButton, { disabled: disabled || readonly || !hasMoveUp, onClick: onReorderClick(index, index - 1), uiSchema: uiSchema, registry: registry })), (hasMoveUp || hasMoveDown) && (_jsx(MoveDownButton, { disabled: disabled || readonly || !hasMoveDown, onClick: onReorderClick(index, index + 1), uiSchema: uiSchema, registry: registry })), hasCopy && (_jsx(CopyButton, { disabled: disabled || readonly, onClick: onCopyIndexClick(index), uiSchema: uiSchema, registry: registry })), hasRemove && (_jsx(RemoveButton, { disabled: disabled || readonly, onClick: onDropIndexClick(index), uiSchema: uiSchema, registry: registry }))] }))] }) }));\n}\n//# sourceMappingURL=ArrayFieldItemTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { TranslatableString } from '@rjsf/utils';\nimport { CommandBarButton } from '@fluentui/react';\nconst addIcon = { iconName: 'Add' };\nexport default function AddButton(props) {\n const { registry: { translateString }, } = props;\n return (_jsx(CommandBarButton, { style: { height: '32px' }, iconProps: addIcon, text: translateString(TranslatableString.AddItemButton), className: props.className, onClick: props.onClick, disabled: props.disabled }));\n}\n//# sourceMappingURL=AddButton.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { getTemplate, getUiOptions, } from '@rjsf/utils';\nconst rightJustify = {\n float: 'right',\n};\nexport default function ArrayFieldTemplate(props) {\n const { canAdd, disabled, idSchema, uiSchema, items, onAddClick, readonly, registry, required, schema, title } = props;\n const uiOptions = getUiOptions(uiSchema);\n const ArrayFieldDescriptionTemplate = getTemplate('ArrayFieldDescriptionTemplate', registry, uiOptions);\n const ArrayFieldItemTemplate = getTemplate('ArrayFieldItemTemplate', registry, uiOptions);\n const ArrayFieldTitleTemplate = getTemplate('ArrayFieldTitleTemplate', registry, uiOptions);\n // Button templates are not overridden in the uiSchema\n const { ButtonTemplates: { AddButton }, } = registry.templates;\n return (_jsxs(_Fragment, { children: [_jsx(ArrayFieldTitleTemplate, { idSchema: idSchema, title: uiOptions.title || title, schema: schema, uiSchema: uiSchema, required: required, registry: registry }), _jsx(ArrayFieldDescriptionTemplate, { idSchema: idSchema, description: uiOptions.description || schema.description, schema: schema, uiSchema: uiSchema, registry: registry }), items.length > 0 &&\n items.map(({ key, ...itemProps }) => (_jsx(ArrayFieldItemTemplate, { ...itemProps }, key))), canAdd && (_jsx(\"span\", { style: rightJustify, children: _jsx(AddButton, { className: 'array-item-add', onClick: onAddClick, disabled: disabled || readonly, uiSchema: uiSchema, registry: registry }) }))] }));\n}\n//# sourceMappingURL=ArrayFieldTemplate.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { TextField } from '@fluentui/react';\nimport { ariaDescribedByIds, examplesId, labelValue, getInputProps, } from '@rjsf/utils';\nimport _pick from 'lodash/pick';\n// Keys of ITextFieldProps from @fluentui/react\nconst allowedProps = [\n 'multiline',\n 'resizable',\n 'autoAdjustHeight',\n 'underlined',\n 'borderless',\n 'label',\n 'onRenderLabel',\n 'description',\n 'onRenderDescription',\n 'prefix',\n 'suffix',\n 'onRenderPrefix',\n 'onRenderSuffix',\n 'iconProps',\n 'defaultValue',\n 'value',\n 'disabled',\n 'readOnly',\n 'errorMessage',\n 'onChange',\n 'onNotifyValidationResult',\n 'onGetErrorMessage',\n 'deferredValidationTime',\n 'className',\n 'inputClassName',\n 'ariaLabel',\n 'validateOnFocusIn',\n 'validateOnFocusOut',\n 'validateOnLoad',\n 'theme',\n 'styles',\n 'autoComplete',\n 'mask',\n 'maskChar',\n 'maskFormat',\n 'type',\n 'list',\n];\nexport default function BaseInputTemplate({ id, placeholder, required, readonly, disabled, label, hideLabel, value, onChange, onChangeOverride, onBlur, onFocus, autofocus, options, schema, type, rawErrors, multiline, }) {\n const inputProps = getInputProps(schema, type, options);\n const _onChange = ({ target: { value } }) => onChange(value === '' ? options.emptyValue : value);\n const _onBlur = ({ target: { value } }) => onBlur(id, value);\n const _onFocus = ({ target: { value } }) => onFocus(id, value);\n const uiProps = _pick(options.props || {}, allowedProps);\n return (_jsxs(_Fragment, { children: [_jsx(TextField, { id: id, name: id, placeholder: placeholder, label: labelValue(label, hideLabel), autoFocus: autofocus, required: required, disabled: disabled, readOnly: readonly, multiline: multiline, ...inputProps, value: value || value === 0 ? value : '', onChange: onChangeOverride || _onChange, onBlur: _onBlur, onFocus: _onFocus, errorMessage: (rawErrors || []).join('\\n'), list: schema.examples ? examplesId(id) : undefined, ...uiProps, \"aria-describedby\": ariaDescribedByIds(id, !!schema.examples) }), Array.isArray(schema.examples) && (_jsx(\"datalist\", { id: examplesId(id), children: schema.examples\n .concat(schema.default && !schema.examples.includes(schema.default) ? [schema.default] : [])\n .map((example) => {\n return _jsx(\"option\", { value: example }, example);\n }) }))] }));\n}\n//# sourceMappingURL=BaseInputTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Text } from '@fluentui/react';\nexport default function DescriptionField({ description, id }) {\n if (description) {\n return _jsx(Text, { id: id, children: description });\n }\n return null;\n}\n//# sourceMappingURL=DescriptionField.js.map","import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { MessageBar, MessageBarType } from '@fluentui/react';\nimport { TranslatableString } from '@rjsf/utils';\nexport default function ErrorList({ errors, registry, }) {\n const { translateString } = registry;\n return (_jsx(_Fragment, { children: errors.map((error, i) => {\n return (_jsx(MessageBar, { messageBarType: MessageBarType.error, isMultiline: false, dismissButtonAriaLabel: translateString(TranslatableString.CloseLabel), children: error.stack }, i));\n }) }));\n}\n//# sourceMappingURL=ErrorList.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { IconButton } from '@fluentui/react';\nimport { TranslatableString } from '@rjsf/utils';\nexport default function FluentIconButton(props) {\n const iconProps = {\n iconName: props.icon,\n };\n return _jsx(IconButton, { disabled: props.disabled, onClick: props.onClick, iconProps: iconProps, color: 'secondary' });\n}\nexport function CopyButton(props) {\n const { registry: { translateString }, } = props;\n return _jsx(FluentIconButton, { title: translateString(TranslatableString.CopyButton), ...props, icon: 'Copy' });\n}\nexport function MoveDownButton(props) {\n const { registry: { translateString }, } = props;\n return (_jsx(FluentIconButton, { title: translateString(TranslatableString.MoveDownButton), ...props, icon: 'Down' }));\n}\nexport function MoveUpButton(props) {\n const { registry: { translateString }, } = props;\n return _jsx(FluentIconButton, { title: translateString(TranslatableString.MoveUpButton), ...props, icon: 'Up' });\n}\nexport function RemoveButton(props) {\n const { registry: { translateString }, } = props;\n return (_jsx(FluentIconButton, { title: translateString(TranslatableString.RemoveButton), ...props, icon: 'Delete' }));\n}\n//# sourceMappingURL=IconButton.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { errorId } from '@rjsf/utils';\nimport { List } from '@fluentui/react';\n/** The `FieldErrorTemplate` component renders the errors local to the particular field\n *\n * @param props - The `FieldErrorProps` for the errors being rendered\n */\nexport default function FieldErrorTemplate(props) {\n const { errors = [], idSchema } = props;\n if (errors.length === 0) {\n return null;\n }\n const id = errorId(idSchema);\n return _jsx(List, { id: id, items: errors });\n}\n//# sourceMappingURL=FieldErrorTemplate.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { helpId } from '@rjsf/utils';\nimport { Text } from '@fluentui/react';\n/** The `FieldHelpTemplate` component renders any help desired for a field\n *\n * @param props - The `FieldHelpProps` to be rendered\n */\nexport default function FieldHelpTemplate(props) {\n const { idSchema, help } = props;\n if (!help) {\n return null;\n }\n const id = helpId(idSchema);\n return _jsx(Text, { id: id, children: help });\n}\n//# sourceMappingURL=FieldHelpTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { getTemplate, getUiOptions, } from '@rjsf/utils';\nimport { Text } from '@fluentui/react';\nexport default function FieldTemplate(props) {\n const { children, errors, help, displayLabel, description, rawDescription, hidden, uiSchema, registry } = props;\n const uiOptions = getUiOptions(uiSchema);\n const WrapIfAdditionalTemplate = getTemplate('WrapIfAdditionalTemplate', registry, uiOptions);\n if (hidden) {\n return _jsx(\"div\", { style: { display: 'none' }, children: children });\n }\n return (_jsxs(WrapIfAdditionalTemplate, { ...props, children: [children, displayLabel && rawDescription && _jsx(Text, { children: description }), errors, help] }));\n}\n//# sourceMappingURL=FieldTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { canExpand, descriptionId, getTemplate, getUiOptions, titleId, } from '@rjsf/utils';\nconst rightJustify = {\n float: 'right',\n};\nexport default function ObjectFieldTemplate({ description, title, properties, required, disabled, readonly, schema, uiSchema, idSchema, formData, onAddClick, registry, }) {\n const uiOptions = getUiOptions(uiSchema);\n const TitleFieldTemplate = getTemplate('TitleFieldTemplate', registry, uiOptions);\n const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, uiOptions);\n // Button templates are not overridden in the uiSchema\n const { ButtonTemplates: { AddButton }, } = registry.templates;\n return (_jsxs(_Fragment, { children: [title && (_jsx(TitleFieldTemplate, { id: titleId(idSchema), title: title, required: required, schema: schema, uiSchema: uiSchema, registry: registry })), description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(idSchema), schema: schema, uiSchema: uiSchema, description: description, registry: registry })), _jsxs(\"div\", { className: 'ms-Grid', dir: 'ltr', children: [_jsx(\"div\", { className: 'ms-Grid-row', children: properties.map((element) => element.content) }), canExpand(schema, uiSchema, formData) && (_jsx(\"span\", { style: rightJustify, children: _jsx(AddButton, { className: 'object-property-expand', onClick: onAddClick(schema), disabled: disabled || readonly, uiSchema: uiSchema, registry: registry }) }))] })] }));\n}\n//# sourceMappingURL=ObjectFieldTemplate.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { getSubmitButtonOptions } from '@rjsf/utils';\nimport { PrimaryButton } from '@fluentui/react';\nexport default function SubmitButton({ uiSchema }) {\n const { submitText, norender, props: submitButtonProps } = getSubmitButtonOptions(uiSchema);\n if (norender) {\n return null;\n }\n return (_jsxs(\"div\", { children: [_jsx(\"br\", {}), _jsx(\"div\", { className: 'ms-Grid-col ms-sm12', children: _jsx(PrimaryButton, { text: submitText, type: 'submit', ...submitButtonProps }) })] }));\n}\n//# sourceMappingURL=SubmitButton.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Label } from '@fluentui/react';\nconst styles = {\n root: [\n {\n fontSize: 24,\n marginBottom: 20,\n paddingBottom: 0,\n },\n ],\n};\nexport default function TitleField({ id, title, }) {\n return (_jsx(Label, { id: id, styles: styles, children: title }));\n}\n//# sourceMappingURL=TitleField.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { TextField } from '@fluentui/react';\nimport { ADDITIONAL_PROPERTY_FLAG, TranslatableString, } from '@rjsf/utils';\nexport default function WrapIfAdditionalTemplate(props) {\n const { children, disabled, id, label, onDropPropertyClick, onKeyChange, readonly, registry, required, schema, style, uiSchema, } = props;\n const { templates, translateString } = registry;\n // TODO: do this better by not returning the form-group class from master.\n let { classNames = '' } = props;\n classNames = 'ms-Grid-col ms-sm12 ' + classNames.replace('form-group', '');\n // Button templates are not overridden in the uiSchema\n const { RemoveButton } = templates.ButtonTemplates;\n const keyLabel = translateString(TranslatableString.KeyLabel, [label]);\n const additional = ADDITIONAL_PROPERTY_FLAG in schema;\n if (!additional) {\n return (_jsx(\"div\", { className: classNames, style: { ...style, marginBottom: 15 }, children: children }));\n }\n const handleBlur = ({ target }) => onKeyChange(target.value);\n return (_jsx(\"div\", { className: classNames, style: { ...style, marginBottom: 15 }, dir: 'ltr', children: _jsxs(\"div\", { className: 'ms-Grid-row', children: [_jsx(\"div\", { className: 'ms-Grid-col ms-sm4 ms-md4 ms-lg5', children: _jsx(TextField, { required: required, label: keyLabel, defaultValue: label, disabled: disabled || readonly, id: `${id}-key`, name: `${id}-key`, onBlur: !readonly ? handleBlur : undefined, type: 'text' }) }), _jsx(\"div\", { className: 'ms-Grid-col ms-sm4 ms-md4 ms-lg5', children: children }), _jsx(\"div\", { className: 'ms-Grid-col ms-sm4 ms-md4 ms-lg2', style: { textAlign: 'right' }, children: _jsx(RemoveButton, { disabled: disabled || readonly, onClick: onDropPropertyClick(label), uiSchema: uiSchema, registry: registry }) })] }, `${id}-key`) }));\n}\n//# sourceMappingURL=WrapIfAdditionalTemplate.js.map","import ArrayFieldItemTemplate from '../ArrayFieldItemTemplate';\nimport AddButton from '../AddButton';\nimport ArrayFieldTemplate from '../ArrayFieldTemplate';\nimport BaseInputTemplate from '../BaseInputTemplate/BaseInputTemplate';\nimport DescriptionField from '../DescriptionField';\nimport ErrorList from '../ErrorList';\nimport { CopyButton, MoveDownButton, MoveUpButton, RemoveButton } from '../IconButton';\nimport FieldErrorTemplate from '../FieldErrorTemplate';\nimport FieldHelpTemplate from '../FieldHelpTemplate';\nimport FieldTemplate from '../FieldTemplate';\nimport ObjectFieldTemplate from '../ObjectFieldTemplate';\nimport SubmitButton from '../SubmitButton';\nimport TitleField from '../TitleField';\nimport WrapIfAdditionalTemplate from '../WrapIfAdditionalTemplate';\nexport function generateTemplates() {\n return {\n ArrayFieldItemTemplate,\n ArrayFieldTemplate,\n BaseInputTemplate,\n ButtonTemplates: {\n CopyButton,\n AddButton,\n MoveDownButton,\n MoveUpButton,\n RemoveButton,\n SubmitButton,\n },\n DescriptionFieldTemplate: DescriptionField,\n ErrorListTemplate: ErrorList,\n FieldErrorTemplate,\n FieldHelpTemplate,\n FieldTemplate,\n ObjectFieldTemplate,\n TitleFieldTemplate: TitleField,\n WrapIfAdditionalTemplate,\n };\n}\nexport default generateTemplates();\n//# sourceMappingURL=Templates.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback } from 'react';\nimport { Checkbox } from '@fluentui/react';\nimport { ariaDescribedByIds, descriptionId, getTemplate, labelValue, } from '@rjsf/utils';\nimport _pick from 'lodash/pick';\n// Keys of ICheckboxProps from @fluentui/react\nexport const allowedProps = [\n 'ariaDescribedBy',\n 'ariaLabel',\n 'ariaPositionInSet',\n 'ariaSetSize',\n 'boxSide',\n 'checked',\n 'checkmarkIconProps',\n 'className',\n 'componentRef',\n 'defaultChecked',\n 'defaultIndeterminate',\n 'disabled',\n 'indeterminate',\n 'inputProps',\n /* Backward compatibility with fluentui v7 */\n 'keytipProps',\n 'label',\n 'onChange',\n 'onRenderLabel',\n 'styles',\n 'theme',\n];\nexport default function CheckboxWidget(props) {\n var _a;\n const { id, value, \n // required,\n disabled, readonly, label, hideLabel, schema, autofocus, onChange, onBlur, onFocus, options, registry, uiSchema, } = props;\n const DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, options);\n const _onChange = useCallback((_, checked) => {\n onChange(checked);\n }, [onChange]);\n const _onBlur = ({ target: { value } }) => onBlur(id, value);\n const _onFocus = ({ target: { value } }) => onFocus(id, value);\n const uiProps = _pick(options.props || {}, allowedProps);\n const description = (_a = options.description) !== null && _a !== void 0 ? _a : schema.description;\n return (_jsxs(_Fragment, { children: [!hideLabel && !!description && (_jsx(DescriptionFieldTemplate, { id: descriptionId(id), description: description, schema: schema, uiSchema: uiSchema, registry: registry })), _jsx(Checkbox, { id: id, name: id, label: labelValue(label || undefined, hideLabel), disabled: disabled || readonly, inputProps: {\n autoFocus: autofocus,\n onBlur: _onBlur,\n onFocus: _onFocus,\n }, checked: typeof value === 'undefined' ? false : value, onChange: _onChange, ...uiProps, \"aria-describedby\": ariaDescribedByIds(id), ...{\n autoFocus: autofocus,\n onBlur: _onBlur,\n onFocus: _onFocus,\n } })] }));\n}\n//# sourceMappingURL=CheckboxWidget.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Label } from '@fluentui/react';\nexport const styles_red = {\n // TODO: get this color from theme.\n color: 'rgb(164, 38, 44)',\n fontSize: 12,\n fontWeight: 'normal',\n fontFamily: `\"Segoe UI\", \"Segoe UI Web (West European)\", \"Segoe UI\", -apple-system, BlinkMacSystemFont, Roboto, \"Helvetica Neue\", sans-serif`,\n};\nexport default function FluentLabel({ label, required, id }) {\n return (_jsxs(Label, { htmlFor: id, children: [label, required && _jsx(\"span\", { style: styles_red, children: \"\\u00A0*\" })] }));\n}\n//# sourceMappingURL=FluentLabel.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Checkbox } from '@fluentui/react';\nimport { ariaDescribedByIds, enumOptionsDeselectValue, enumOptionsIsSelected, enumOptionsSelectValue, enumOptionsValueForIndex, labelValue, optionId, } from '@rjsf/utils';\nimport _pick from 'lodash/pick';\nimport FluentLabel, { styles_red } from '../FluentLabel/FluentLabel';\nimport { allowedProps } from '../CheckboxWidget';\nexport default function CheckboxesWidget({ label, hideLabel, id, disabled, options, value, autofocus, readonly, required, onChange, onBlur, onFocus, rawErrors = [], }) {\n const { enumOptions, enumDisabled, emptyValue } = options;\n const checkboxesValues = Array.isArray(value) ? value : [value];\n const _onChange = (index) => (_ev, checked) => {\n if (checked) {\n onChange(enumOptionsSelectValue(index, checkboxesValues, enumOptions));\n }\n else {\n onChange(enumOptionsDeselectValue(index, checkboxesValues, enumOptions));\n }\n };\n const _onBlur = ({ target: { value } }) => onBlur(id, enumOptionsValueForIndex(value, enumOptions, emptyValue));\n const _onFocus = ({ target: { value } }) => onFocus(id, enumOptionsValueForIndex(value, enumOptions, emptyValue));\n const uiProps = _pick(options.props || {}, allowedProps);\n return (_jsxs(_Fragment, { children: [labelValue(_jsx(FluentLabel, { label: label || undefined, required: required }), hideLabel), Array.isArray(enumOptions) &&\n enumOptions.map((option, index) => {\n const checked = enumOptionsIsSelected(option.value, checkboxesValues);\n const itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;\n return (_jsx(Checkbox, { id: optionId(id, index), name: id, checked: checked, label: option.label, disabled: disabled || itemDisabled || readonly, inputProps: {\n autoFocus: autofocus && index === 0,\n onBlur: _onBlur,\n onFocus: _onFocus,\n }, onChange: _onChange(index), ...uiProps, \"aria-describedby\": ariaDescribedByIds(id), ...{\n autoFocus: autofocus && index === 0,\n onBlur: _onBlur,\n onFocus: _onFocus,\n } }, index));\n }), _jsx(\"span\", { style: styles_red, children: (rawErrors || []).join('\\n') })] }));\n}\n//# sourceMappingURL=CheckboxesWidget.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ColorPicker, getColorFromString } from '@fluentui/react';\nimport { ariaDescribedByIds, labelValue, } from '@rjsf/utils';\nimport _pick from 'lodash/pick';\nimport FluentLabel from '../FluentLabel/FluentLabel';\nconst allowedProps = [\n 'componentRef',\n 'color',\n 'strings',\n 'onChange',\n 'alphaType',\n 'alphaSliderHidden',\n 'hexLabel',\n 'redLabel',\n 'greenLabel',\n 'blueLabel',\n 'alphaLabel',\n 'className',\n 'theme',\n 'styles',\n 'showPreview',\n];\nexport default function ColorWidget({ id, options, value, required, label, hideLabel, onChange, }) {\n const updateColor = (_ev, colorObj) => {\n onChange(colorObj.hex);\n };\n const uiProps = { id, ..._pick(options.props || {}, allowedProps) };\n return (_jsxs(_Fragment, { children: [labelValue(_jsx(FluentLabel, { label: label || undefined, required: required, id: id }), hideLabel), _jsx(ColorPicker, { color: getColorFromString(value), onChange: updateColor, alphaType: 'alpha', showPreview: true, ...uiProps, \"aria-describedby\": ariaDescribedByIds(id) })] }));\n}\n//# sourceMappingURL=ColorWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { ariaDescribedByIds, labelValue, pad, TranslatableString, } from '@rjsf/utils';\nimport { DatePicker, DayOfWeek, mergeStyleSets } from '@fluentui/react';\nimport _pick from 'lodash/pick';\n// Keys of IDropdownProps from @fluentui/react\nconst allowedProps = [\n 'componentRef',\n 'styles',\n 'theme',\n 'calloutProps',\n 'calendarProps',\n 'textField',\n 'calendarAs',\n 'onSelectDate',\n 'label',\n 'isRequired',\n 'disabled',\n 'ariaLabel',\n 'underlined',\n 'pickerAriaLabel',\n 'isMonthPickerVisible',\n 'showMonthPickerAsOverlay',\n 'allowTextInput',\n 'disableAutoFocus',\n 'placeholder',\n 'today',\n 'value',\n 'formatDate',\n 'parseDateFromString',\n 'firstDayOfWeek',\n 'strings',\n 'highlightCurrentMonth',\n 'highlightSelectedMonth',\n 'showWeekNumbers',\n 'firstWeekOfYear',\n 'showGoToToday',\n 'borderless',\n 'className',\n 'dateTimeFormatter',\n 'minDate',\n 'maxDate',\n 'initialPickerDate',\n 'allFocusable',\n 'onAfterMenuDismiss',\n 'showCloseButton',\n 'tabIndex',\n];\nconst controlClass = mergeStyleSets({\n control: {\n margin: '0 0 15px 0',\n },\n});\n// TODO: move to utils.\n// TODO: figure out a standard format for this, as well as\n// how we can get this to work with locales.\nconst formatDate = (date) => {\n if (!date) {\n return '';\n }\n const yyyy = pad(date.getFullYear(), 4);\n const MM = pad(date.getMonth() + 1, 2);\n const dd = pad(date.getDate(), 2);\n return `${yyyy}-${MM}-${dd}`;\n};\nconst parseDate = (dateStr) => {\n if (!dateStr) {\n return undefined;\n }\n const [year, month, day] = dateStr.split('-').map((e) => parseInt(e));\n const dt = new Date(year, month - 1, day);\n return dt;\n};\nexport default function DateWidget({ id, required, label, hideLabel, value, onChange, onBlur, onFocus, options, placeholder, registry, }) {\n const { translateString } = registry;\n const _onSelectDate = (date) => {\n if (date) {\n const formatted = formatDate(date);\n formatted && onChange(formatted);\n }\n };\n const _onBlur = ({ target: { value } }) => onBlur(id, value);\n const _onFocus = ({ target: { value } }) => onFocus(id, value);\n const uiProps = _pick(options.props || {}, allowedProps);\n return (_jsx(DatePicker, { id: id, className: controlClass.control, firstDayOfWeek: DayOfWeek.Sunday, placeholder: placeholder, ariaLabel: translateString(TranslatableString.AriaDateLabel), isRequired: required, label: labelValue(label, hideLabel), onSelectDate: _onSelectDate, onBlur: _onBlur, onFocus: _onFocus, value: parseDate(value), ...uiProps, \"aria-describedby\": ariaDescribedByIds(id) }));\n}\n//# sourceMappingURL=DateWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate, localToUTC, utcToLocal, } from '@rjsf/utils';\nexport default function DateTimeWidget(props) {\n const { registry } = props;\n const uiProps = props.options['props'] || {};\n const options = {\n ...props.options,\n props: {\n type: 'datetime-local',\n ...uiProps,\n },\n };\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n const value = utcToLocal(props.value);\n const onChange = (value) => {\n props.onChange(localToUTC(value));\n };\n // TODO: rows and columns.\n return _jsx(BaseInputTemplate, { ...props, options: options, value: value, onChange: onChange });\n}\n//# sourceMappingURL=DateTimeWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { ChoiceGroup } from '@fluentui/react';\nimport { ariaDescribedByIds, enumOptionsIndexForValue, enumOptionsValueForIndex, labelValue, optionId, } from '@rjsf/utils';\nimport _pick from 'lodash/pick';\nconst allowedProps = [\n 'componentRef',\n 'options',\n 'defaultSelectedKey',\n 'selectedKey',\n 'onChange',\n 'label',\n /* Backward compatibility with fluentui v7 */\n 'onChanged',\n 'theme',\n 'styles',\n 'ariaLabelledBy',\n];\nexport default function RadioWidget({ id, options, value, required, label, hideLabel, onChange, onBlur, onFocus, disabled, readonly, }) {\n const { enumOptions, enumDisabled, emptyValue } = options;\n function _onChange(_ev, option) {\n if (option) {\n onChange(enumOptionsValueForIndex(option.key, enumOptions, emptyValue));\n }\n }\n const _onBlur = ({ target: { value } }) => onBlur(id, enumOptionsValueForIndex(value, enumOptions, emptyValue));\n const _onFocus = ({ target: { value } }) => onFocus(id, enumOptionsValueForIndex(value, enumOptions, emptyValue));\n const newOptions = Array.isArray(enumOptions)\n ? enumOptions.map((option, index) => ({\n key: String(index),\n name: id,\n id: optionId(id, index),\n text: option.label,\n disabled: Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1,\n 'aria-describedby': ariaDescribedByIds(id),\n }))\n : [];\n const selectedIndex = enumOptionsIndexForValue(value, enumOptions);\n const uiProps = _pick(options.props || {}, allowedProps);\n return (_jsx(ChoiceGroup, { id: id, name: id, options: newOptions, disabled: disabled || readonly, onChange: _onChange, onFocus: _onFocus, onBlur: _onBlur, label: labelValue(label, hideLabel || !label), required: required, selectedKey: selectedIndex, ...uiProps }));\n}\n//# sourceMappingURL=RadioWidget.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Slider } from '@fluentui/react';\nimport { ariaDescribedByIds, labelValue, rangeSpec, } from '@rjsf/utils';\nimport _pick from 'lodash/pick';\nimport FluentLabel from '../FluentLabel/FluentLabel';\n// Keys of ISliderProps from @fluentui/react\nconst allowedProps = [\n 'componentRef',\n 'styles?',\n 'theme',\n 'label',\n 'defaultValue',\n 'value',\n 'min',\n 'max',\n 'step',\n 'showValue',\n 'onChange',\n 'ariaLabel',\n 'ariaValueText',\n 'vertical',\n 'disabled',\n 'snapToStep',\n 'className',\n 'buttonProps',\n 'valueFormat',\n 'originFromZero',\n];\nexport default function RangeWidget({ value, readonly, disabled, options, schema, onChange, required, label, hideLabel, id, }) {\n const sliderProps = { value, label, id, ...rangeSpec(schema) };\n const _onChange = (value) => onChange(value);\n const uiProps = { id, ..._pick(options.props || {}, allowedProps) };\n return (_jsxs(_Fragment, { children: [labelValue(_jsx(FluentLabel, { label: label || undefined, required: required, id: id }), hideLabel), _jsx(Slider, { disabled: disabled || readonly, min: sliderProps.min, max: sliderProps.max, step: sliderProps.step, onChange: _onChange, snapToStep: true, ...uiProps, \"aria-describedby\": ariaDescribedByIds(id) })] }));\n}\n//# sourceMappingURL=RangeWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Dropdown } from '@fluentui/react';\nimport { ariaDescribedByIds, enumOptionsDeselectValue, enumOptionsIndexForValue, enumOptionsSelectValue, enumOptionsValueForIndex, labelValue, } from '@rjsf/utils';\nimport _pick from 'lodash/pick';\n// Keys of IDropdownProps from @fluentui/react\nconst allowedProps = [\n 'placeHolder',\n 'options',\n 'onChange',\n 'onChanged',\n 'onRenderLabel',\n 'onRenderPlaceholder',\n 'onRenderPlaceHolder',\n 'onRenderTitle',\n 'onRenderCaretDown',\n 'dropdownWidth',\n 'responsiveMode',\n 'defaultSelectedKeys',\n 'selectedKeys',\n 'multiselectDelimiter',\n 'notifyOnReselect',\n 'isDisabled',\n 'keytipProps',\n 'theme',\n 'styles',\n // ISelectableDroppableTextProps\n 'componentRef',\n 'label',\n 'ariaLabel',\n 'id',\n 'className',\n 'defaultSelectedKey',\n 'selectedKey',\n 'multiSelect',\n 'options',\n 'onRenderContainer',\n 'onRenderList',\n 'onRenderItem',\n 'onRenderOption',\n 'onDismiss',\n 'disabled',\n 'required',\n 'calloutProps',\n 'panelProps',\n 'errorMessage',\n 'placeholder',\n 'openOnKeyboardFocus',\n];\nexport default function SelectWidget({ id, options, label, hideLabel, required, disabled, readonly, value, multiple, onChange, onBlur, onFocus, }) {\n const { enumOptions, enumDisabled, emptyValue } = options;\n const _onChange = (_ev, item) => {\n if (!item) {\n return;\n }\n if (multiple) {\n const valueOrDefault = value || [];\n if (item.selected) {\n onChange(enumOptionsSelectValue(item.key, valueOrDefault, enumOptions));\n }\n else {\n onChange(enumOptionsDeselectValue(item.key, valueOrDefault, enumOptions));\n }\n }\n else {\n onChange(enumOptionsValueForIndex(item.key, enumOptions, emptyValue));\n }\n };\n const _onBlur = (e) => onBlur(id, enumOptionsValueForIndex(e.target.value, enumOptions, emptyValue));\n const _onFocus = (e) => onFocus(id, enumOptionsValueForIndex(e.target.value, enumOptions, emptyValue));\n const newOptions = Array.isArray(enumOptions)\n ? enumOptions.map((option, index) => ({\n key: String(index),\n text: option.label,\n disabled: Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1,\n }))\n : [];\n const uiProps = _pick(options.props || {}, allowedProps);\n const selectedIndexes = enumOptionsIndexForValue(value, enumOptions, multiple);\n return (_jsx(Dropdown, { id: id, label: labelValue(label, hideLabel), multiSelect: multiple, defaultSelectedKey: multiple ? undefined : selectedIndexes, defaultSelectedKeys: multiple ? selectedIndexes : undefined, required: required, options: newOptions, disabled: disabled || readonly, onChange: _onChange, onBlur: _onBlur, onFocus: _onFocus, ...uiProps, \"aria-describedby\": ariaDescribedByIds(id) }));\n}\n//# sourceMappingURL=SelectWidget.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getTemplate, getUiOptions } from '@rjsf/utils';\nexport default function TextareaWidget(props) {\n const { uiSchema, registry } = props;\n const options = getUiOptions(uiSchema);\n const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);\n // TODO: rows and columns.\n return _jsx(BaseInputTemplate, { ...props, multiline: true });\n}\n//# sourceMappingURL=TextareaWidget.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { SpinButton } from '@fluentui/react';\nimport { ariaDescribedByIds, labelValue, rangeSpec, TranslatableString, } from '@rjsf/utils';\nimport _pick from 'lodash/pick';\nimport FluentLabel from '../FluentLabel/FluentLabel';\n// Keys of ISpinButtonProps from @fluentui/react\nconst allowedProps = [\n 'ariaDescribedBy',\n 'ariaLabel',\n 'ariaPositionInSet',\n 'ariaSetSize',\n 'ariaValueNow',\n 'ariaValueText',\n 'className',\n 'componentRef',\n 'decrementButtonAriaLabel',\n 'decrementButtonIcon',\n 'defaultValue',\n 'disabled',\n 'downArrowButtonStyles',\n /* Backward compatibility with fluentui v7 */\n 'getClassNames',\n 'iconButtonProps',\n 'iconProps',\n 'incrementButtonAriaLabel',\n 'incrementButtonIcon',\n 'inputProps',\n 'keytipProps',\n 'label',\n 'labelPosition',\n 'max',\n 'min',\n 'onBlur',\n 'onDecrement',\n 'onFocus',\n 'onIncrement',\n 'onValidate',\n 'precision',\n 'step',\n 'styles',\n 'theme',\n 'title',\n 'upArrowButtonStyles',\n 'value',\n];\nexport default function UpDownWidget({ id, required, readonly, disabled, label, hideLabel, value, onChange, onBlur, onFocus, options, schema, registry, }) {\n const { translateString } = registry;\n const _onChange = (ev, newValue) => {\n if (newValue) {\n onChange(Number(newValue));\n }\n else if ('value' in ev.target) {\n /* Backward compatibility with fluentui v7 */\n onChange(Number(ev.target.value));\n }\n };\n let { min, max, step } = rangeSpec(schema);\n if (min === undefined) {\n min = -1 * Infinity;\n }\n if (max === undefined) {\n max = Infinity;\n }\n if (step === undefined) {\n step = 1;\n }\n const _onIncrement = (value) => {\n if (Number(value) + step <= max) {\n onChange(Number(value) + step);\n }\n };\n const _onDecrement = (value) => {\n if (Number(value) - step >= min) {\n onChange(Number(value) - step);\n }\n };\n const _onBlur = ({ target: { value } }) => onBlur(id, value);\n const _onFocus = ({ target: { value } }) => onFocus(id, value);\n const uiProps = _pick(options.props || {}, allowedProps);\n return (_jsxs(_Fragment, { children: [labelValue(_jsx(FluentLabel, { label: label || undefined, required: required, id: id }), hideLabel), _jsx(SpinButton, { id: id, min: min, max: max, step: step, incrementButtonAriaLabel: translateString(TranslatableString.IncrementAriaLabel), decrementButtonAriaLabel: translateString(TranslatableString.DecrementAriaLabel), disabled: disabled || readonly, value: value || value === 0 ? value : '', onBlur: _onBlur, onFocus: _onFocus, onChange: _onChange, onIncrement: _onIncrement, onDecrement: _onDecrement, ...uiProps, \"aria-describedby\": ariaDescribedByIds(id) })] }));\n}\n//# sourceMappingURL=UpDownWidget.js.map","import CheckboxWidget from '../CheckboxWidget/CheckboxWidget';\nimport CheckboxesWidget from '../CheckboxesWidget/CheckboxesWidget';\nimport ColorWidget from '../ColorWidget/ColorWidget';\nimport DateWidget from '../DateWidget/DateWidget';\nimport DateTimeWidget from '../DateTimeWidget/DateTimeWidget';\nimport RadioWidget from '../RadioWidget/RadioWidget';\nimport RangeWidget from '../RangeWidget/RangeWidget';\nimport SelectWidget from '../SelectWidget/SelectWidget';\nimport TextareaWidget from '../TextareaWidget/TextareaWidget';\nimport UpDownWidget from '../UpDownWidget/UpDownWidget';\nexport function generateWidgets() {\n return {\n CheckboxWidget,\n CheckboxesWidget,\n ColorWidget,\n DateWidget,\n DateTimeWidget,\n RadioWidget,\n RangeWidget,\n SelectWidget,\n TextareaWidget,\n UpDownWidget,\n };\n}\nexport default generateWidgets();\n//# sourceMappingURL=Widgets.js.map","import { generateTemplates } from '../Templates';\nimport { generateWidgets } from '../Widgets';\nexport function generateTheme() {\n return {\n templates: generateTemplates(),\n widgets: generateWidgets(),\n };\n}\nexport default generateTheme();\n//# sourceMappingURL=Theme.js.map","import { withTheme } from '@rjsf/core';\nimport { generateTheme } from '../Theme';\nexport function generateForm() {\n return withTheme(generateTheme());\n}\nexport default generateForm();\n//# sourceMappingURL=FuiForm.js.map","import { initializeIcons } from '@fluentui/react';\nimport FuiForm from './FuiForm/';\nexport { default as Form, generateForm } from './FuiForm';\nexport { default as Templates, generateTemplates } from './Templates';\nexport { default as Theme, generateTheme } from './Theme';\nexport { default as Widgets, generateWidgets } from './Widgets';\ninitializeIcons();\nexport default FuiForm;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst id_1 = require(\"./id\");\nconst ref_1 = require(\"./ref\");\nconst core = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n { keyword: \"$comment\" },\n \"definitions\",\n id_1.default,\n ref_1.default,\n];\nexports.default = core;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatNames = exports.fastFormats = exports.fullFormats = void 0;\nfunction fmtDef(validate, compare) {\n return { validate, compare };\n}\nexports.fullFormats = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: fmtDef(date, compareDate),\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: fmtDef(time, compareTime),\n \"date-time\": fmtDef(date_time, compareDateTime),\n // duration: https://tools.ietf.org/html/rfc3339#appendix-A\n duration: /^P(?!$)((\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+S)?)?|(\\d+W)?)$/,\n uri,\n \"uri-reference\": /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,\n // uri-template: https://tools.ietf.org/html/rfc6570\n \"uri-template\": /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i,\n // For the source: https://gist.github.com/dperini/729294\n // For test cases: https://mathiasbynens.be/demo/url-regex\n url: /^(?:https?|ftp):\\/\\/(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)(?:\\.(?:[a-z0-9\\u{00a1}-\\u{ffff}]+-)*[a-z0-9\\u{00a1}-\\u{ffff}]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))$/i,\n regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n \"json-pointer\": /^(?:\\/(?:[^~/]|~0|~1)*)*$/,\n \"json-pointer-uri-fragment\": /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n \"relative-json-pointer\": /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/,\n // the following formats are used by the openapi specification: https://spec.openapis.org/oas/v3.0.0#data-types\n // byte: https://github.com/miguelmota/is-base64\n byte,\n // signed 32 bit integer\n int32: { type: \"number\", validate: validateInt32 },\n // signed 64 bit integer\n int64: { type: \"number\", validate: validateInt64 },\n // C-type float\n float: { type: \"number\", validate: validateNumber },\n // C-type double\n double: { type: \"number\", validate: validateNumber },\n // hint to the UI to hide input strings\n password: true,\n // unchecked string payload\n binary: true,\n};\nexports.fastFormats = {\n ...exports.fullFormats,\n date: fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/, compareDate),\n time: fmtDef(/^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i, compareTime),\n \"date-time\": fmtDef(/^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i, compareDateTime),\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n \"uri-reference\": /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'wilful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n};\nexports.formatNames = Object.keys(exports.fullFormats);\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\nconst DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nconst DAYS = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n const matches = DATE.exec(str);\n if (!matches)\n return false;\n const year = +matches[1];\n const month = +matches[2];\n const day = +matches[3];\n return (month >= 1 &&\n month <= 12 &&\n day >= 1 &&\n day <= (month === 2 && isLeapYear(year) ? 29 : DAYS[month]));\n}\nfunction compareDate(d1, d2) {\n if (!(d1 && d2))\n return undefined;\n if (d1 > d2)\n return 1;\n if (d1 < d2)\n return -1;\n return 0;\n}\nconst TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nfunction time(str, withTimeZone) {\n const matches = TIME.exec(str);\n if (!matches)\n return false;\n const hour = +matches[1];\n const minute = +matches[2];\n const second = +matches[3];\n const timeZone = matches[5];\n return (((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour === 23 && minute === 59 && second === 60)) &&\n (!withTimeZone || timeZone !== \"\"));\n}\nfunction compareTime(t1, t2) {\n if (!(t1 && t2))\n return undefined;\n const a1 = TIME.exec(t1);\n const a2 = TIME.exec(t2);\n if (!(a1 && a2))\n return undefined;\n t1 = a1[1] + a1[2] + a1[3] + (a1[4] || \"\");\n t2 = a2[1] + a2[2] + a2[3] + (a2[4] || \"\");\n if (t1 > t2)\n return 1;\n if (t1 < t2)\n return -1;\n return 0;\n}\nconst DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n const dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length === 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\nfunction compareDateTime(dt1, dt2) {\n if (!(dt1 && dt2))\n return undefined;\n const [d1, t1] = dt1.split(DATE_TIME_SEPARATOR);\n const [d2, t2] = dt2.split(DATE_TIME_SEPARATOR);\n const res = compareDate(d1, d2);\n if (res === undefined)\n return undefined;\n return res || compareTime(t1, t2);\n}\nconst NOT_URI_FRAGMENT = /\\/|:/;\nconst URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\nconst BYTE = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;\nfunction byte(str) {\n BYTE.lastIndex = 0;\n return BYTE.test(str);\n}\nconst MIN_INT32 = -(2 ** 31);\nconst MAX_INT32 = 2 ** 31 - 1;\nfunction validateInt32(value) {\n return Number.isInteger(value) && value <= MAX_INT32 && value >= MIN_INT32;\n}\nfunction validateInt64(value) {\n // JSON and javascript max Int is 2**53, so any int that passes isInteger is valid for Int64\n return Number.isInteger(value);\n}\nfunction validateNumber() {\n return true;\n}\nconst Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str))\n return false;\n try {\n new RegExp(str);\n return true;\n }\n catch (e) {\n return false;\n }\n}\n//# sourceMappingURL=formats.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatLimitDefinition = void 0;\nconst ajv_1 = require(\"ajv\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n formatMaximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n formatMinimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n formatExclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n formatExclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => codegen_1.str `should be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => codegen_1._ `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nexports.formatLimitDefinition = {\n keyword: Object.keys(KWDs),\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, keyword, it } = cxt;\n const { opts, self } = it;\n if (!opts.validateFormats)\n return;\n const fCxt = new ajv_1.KeywordCxt(it, self.RULES.all.format.definition, \"format\");\n if (fCxt.$data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fmt = gen.const(\"fmt\", codegen_1._ `${fmts}[${fCxt.schemaCode}]`);\n cxt.fail$data(codegen_1.or(codegen_1._ `typeof ${fmt} != \"object\"`, codegen_1._ `${fmt} instanceof RegExp`, codegen_1._ `typeof ${fmt}.compare != \"function\"`, compareCode(fmt)));\n }\n function validateFormat() {\n const format = fCxt.schema;\n const fmtDef = self.formats[format];\n if (!fmtDef || fmtDef === true)\n return;\n if (typeof fmtDef != \"object\" ||\n fmtDef instanceof RegExp ||\n typeof fmtDef.compare != \"function\") {\n throw new Error(`\"${keyword}\": format \"${format}\" does not define \"compare\" function`);\n }\n const fmt = gen.scopeValue(\"formats\", {\n key: format,\n ref: fmtDef,\n code: opts.code.formats ? codegen_1._ `${opts.code.formats}${codegen_1.getProperty(format)}` : undefined,\n });\n cxt.fail$data(compareCode(fmt));\n }\n function compareCode(fmt) {\n return codegen_1._ `${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;\n }\n },\n dependencies: [\"format\"],\n};\nconst formatLimitPlugin = (ajv) => {\n ajv.addKeyword(exports.formatLimitDefinition);\n return ajv;\n};\nexports.default = formatLimitPlugin;\n//# sourceMappingURL=limit.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst formats_1 = require(\"./formats\");\nconst limit_1 = require(\"./limit\");\nconst codegen_1 = require(\"ajv/dist/compile/codegen\");\nconst fullName = new codegen_1.Name(\"fullFormats\");\nconst fastName = new codegen_1.Name(\"fastFormats\");\nconst formatsPlugin = (ajv, opts = { keywords: true }) => {\n if (Array.isArray(opts)) {\n addFormats(ajv, opts, formats_1.fullFormats, fullName);\n return ajv;\n }\n const [formats, exportName] = opts.mode === \"fast\" ? [formats_1.fastFormats, fastName] : [formats_1.fullFormats, fullName];\n const list = opts.formats || formats_1.formatNames;\n addFormats(ajv, list, formats, exportName);\n if (opts.keywords)\n limit_1.default(ajv);\n return ajv;\n};\nformatsPlugin.get = (name, mode = \"full\") => {\n const formats = mode === \"fast\" ? formats_1.fastFormats : formats_1.fullFormats;\n const f = formats[name];\n if (!f)\n throw new Error(`Unknown format \"${name}\"`);\n return f;\n};\nfunction addFormats(ajv, list, fs, exportName) {\n var _a;\n var _b;\n (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : (_b.formats = codegen_1._ `require(\"ajv-formats/dist/formats\").${exportName}`);\n for (const f of list)\n ajv.addFormat(f, fs[f]);\n}\nmodule.exports = exports = formatsPlugin;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = formatsPlugin;\n//# sourceMappingURL=index.js.map","import Ajv from 'ajv';\nimport addFormats from 'ajv-formats';\nimport isObject from 'lodash/isObject';\nimport { ADDITIONAL_PROPERTY_FLAG, RJSF_ADDITONAL_PROPERTIES_FLAG } from '@rjsf/utils';\nexport const AJV_CONFIG = {\n allErrors: true,\n multipleOfPrecision: 8,\n strict: false,\n verbose: true,\n};\nexport const COLOR_FORMAT_REGEX = /^(#?([0-9A-Fa-f]{3}){1,2}\\b|aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow|(rgb\\(\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*,\\s*\\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\b\\s*\\))|(rgb\\(\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*,\\s*(\\d?\\d%|100%)+\\s*\\)))$/;\nexport const DATA_URL_FORMAT_REGEX = /^data:([a-z]+\\/[a-z0-9-+.]+)?;(?:name=(.*);)?base64,(.*)$/;\n/** Creates an Ajv version 8 implementation object with standard support for the 'color` and `data-url` custom formats.\n * If `additionalMetaSchemas` are provided then the Ajv instance is modified to add each of the meta schemas in the\n * list. If `customFormats` are provided then those additional formats are added to the list of supported formats. If\n * `ajvOptionsOverrides` are provided then they are spread on top of the default `AJV_CONFIG` options when constructing\n * the `Ajv` instance. With Ajv v8, the JSON Schema formats are not provided by default, but can be plugged in. By\n * default, all formats from the `ajv-formats` library are added. To disable this capability, set the `ajvFormatOptions`\n * parameter to `false`. Additionally, you can configure the `ajv-formats` by providing a custom set of\n * [format options](https://github.com/ajv-validator/ajv-formats) to the `ajvFormatOptions` parameter.\n *\n * @param [additionalMetaSchemas] - The list of additional meta schemas that the validator can access\n * @param [customFormats] - The set of additional custom formats that the validator will support\n * @param [ajvOptionsOverrides={}] - The set of validator config override options\n * @param [ajvFormatOptions] - The `ajv-format` options to use when adding formats to `ajv`; pass `false` to disable it\n * @param [AjvClass] - The `Ajv` class to use when creating the validator instance\n */\nexport default function createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides = {}, ajvFormatOptions, AjvClass = Ajv) {\n const ajv = new AjvClass({ ...AJV_CONFIG, ...ajvOptionsOverrides });\n if (ajvFormatOptions) {\n addFormats(ajv, ajvFormatOptions);\n }\n else if (ajvFormatOptions !== false) {\n addFormats(ajv);\n }\n // add custom formats\n ajv.addFormat('data-url', DATA_URL_FORMAT_REGEX);\n ajv.addFormat('color', COLOR_FORMAT_REGEX);\n // Add RJSF-specific additional properties keywords so Ajv doesn't report errors if strict is enabled.\n ajv.addKeyword(ADDITIONAL_PROPERTY_FLAG);\n ajv.addKeyword(RJSF_ADDITONAL_PROPERTIES_FLAG);\n // add more schemas to validate against\n if (Array.isArray(additionalMetaSchemas)) {\n ajv.addMetaSchema(additionalMetaSchemas);\n }\n // add more custom formats to validate against\n if (isObject(customFormats)) {\n Object.keys(customFormats).forEach((formatName) => {\n ajv.addFormat(formatName, customFormats[formatName]);\n });\n }\n return ajv;\n}\n//# sourceMappingURL=createAjvInstance.js.map","import get from 'lodash/get';\nimport { createErrorHandler, getDefaultFormState, getUiOptions, PROPERTIES_KEY, toErrorSchema, unwrapErrorHandler, validationDataMerge, } from '@rjsf/utils';\n/** Transforming the error output from ajv to format used by @rjsf/utils.\n * At some point, components should be updated to support ajv.\n *\n * @param errors - The list of AJV errors to convert to `RJSFValidationErrors`\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\nexport function transformRJSFValidationErrors(errors = [], uiSchema) {\n return errors.map((e) => {\n const { instancePath, keyword, params, schemaPath, parentSchema, ...rest } = e;\n let { message = '' } = rest;\n let property = instancePath.replace(/\\//g, '.');\n let stack = `${property} ${message}`.trim();\n if ('missingProperty' in params) {\n property = property ? `${property}.${params.missingProperty}` : params.missingProperty;\n const currentProperty = params.missingProperty;\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n if (uiSchemaTitle) {\n message = message.replace(currentProperty, uiSchemaTitle);\n }\n else {\n const parentSchemaTitle = get(parentSchema, [PROPERTIES_KEY, currentProperty, 'title']);\n if (parentSchemaTitle) {\n message = message.replace(currentProperty, parentSchemaTitle);\n }\n }\n stack = message;\n }\n else {\n const uiSchemaTitle = getUiOptions(get(uiSchema, `${property.replace(/^\\./, '')}`)).title;\n if (uiSchemaTitle) {\n stack = `'${uiSchemaTitle}' ${message}`.trim();\n }\n else {\n const parentSchemaTitle = parentSchema === null || parentSchema === void 0 ? void 0 : parentSchema.title;\n if (parentSchemaTitle) {\n stack = `'${parentSchemaTitle}' ${message}`.trim();\n }\n }\n }\n // put data in expected format\n return {\n name: keyword,\n property,\n message,\n params,\n stack,\n schemaPath,\n };\n });\n}\n/** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param validator - The `ValidatorType` implementation used for the `getDefaultFormState()` call\n * @param rawErrors - The list of raw `ErrorObject`s to process\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\nexport default function processRawValidationErrors(validator, rawErrors, formData, schema, customValidate, transformErrors, uiSchema) {\n const { validationError: invalidSchemaError } = rawErrors;\n let errors = transformRJSFValidationErrors(rawErrors.errors, uiSchema);\n if (invalidSchemaError) {\n errors = [...errors, { stack: invalidSchemaError.message }];\n }\n if (typeof transformErrors === 'function') {\n errors = transformErrors(errors, uiSchema);\n }\n let errorSchema = toErrorSchema(errors);\n if (invalidSchemaError) {\n errorSchema = {\n ...errorSchema,\n $schema: {\n __errors: [invalidSchemaError.message],\n },\n };\n }\n if (typeof customValidate !== 'function') {\n return { errors, errorSchema };\n }\n // Include form data with undefined values, which is required for custom validation.\n const newFormData = getDefaultFormState(validator, schema, formData, schema, true);\n const errorHandler = customValidate(newFormData, createErrorHandler(newFormData), uiSchema);\n const userErrorSchema = unwrapErrorHandler(errorHandler);\n return validationDataMerge({ errors, errorSchema }, userErrorSchema);\n}\n//# sourceMappingURL=processRawValidationErrors.js.map","import { ID_KEY, ROOT_SCHEMA_PREFIX, toErrorList, withIdRefPrefix, hashForSchema, } from '@rjsf/utils';\nimport createAjvInstance from './createAjvInstance';\nimport processRawValidationErrors from './processRawValidationErrors';\n/** `ValidatorType` implementation that uses the AJV 8 validation mechanism.\n */\nexport default class AJV8Validator {\n /** Constructs an `AJV8Validator` instance using the `options`\n *\n * @param options - The `CustomValidatorOptionsType` options that are used to create the AJV instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n */\n constructor(options, localizer) {\n const { additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass } = options;\n this.ajv = createAjvInstance(additionalMetaSchemas, customFormats, ajvOptionsOverrides, ajvFormatOptions, AjvClass);\n this.localizer = localizer;\n }\n /** Converts an `errorSchema` into a list of `RJSFValidationErrors`\n *\n * @param errorSchema - The `ErrorSchema` instance to convert\n * @param [fieldPath=[]] - The current field path, defaults to [] if not specified\n * @deprecated - Use the `toErrorList()` function provided by `@rjsf/utils` instead. This function will be removed in\n * the next major release.\n */\n toErrorList(errorSchema, fieldPath = []) {\n return toErrorList(errorSchema, fieldPath);\n }\n /** Runs the pure validation of the `schema` and `formData` without any of the RJSF functionality. Provided for use\n * by the playground. Returns the `errors` from the validation\n *\n * @param schema - The schema against which to validate the form data * @param schema\n * @param formData - The form data to validate\n */\n rawValidation(schema, formData) {\n let compilationError = undefined;\n let compiledValidator;\n if (schema[ID_KEY]) {\n compiledValidator = this.ajv.getSchema(schema[ID_KEY]);\n }\n try {\n if (compiledValidator === undefined) {\n compiledValidator = this.ajv.compile(schema);\n }\n compiledValidator(formData);\n }\n catch (err) {\n compilationError = err;\n }\n let errors;\n if (compiledValidator) {\n if (typeof this.localizer === 'function') {\n this.localizer(compiledValidator.errors);\n }\n errors = compiledValidator.errors || undefined;\n // Clear errors to prevent persistent errors, see #1104\n compiledValidator.errors = null;\n }\n return {\n errors: errors,\n validationError: compilationError,\n };\n }\n /** This function processes the `formData` with an optional user contributed `customValidate` function, which receives\n * the form data and a `errorHandler` function that will be used to add custom validation errors for each field. Also\n * supports a `transformErrors` function that will take the raw AJV validation errors, prior to custom validation and\n * transform them in what ever way it chooses.\n *\n * @param formData - The form data to validate\n * @param schema - The schema against which to validate the form data\n * @param [customValidate] - An optional function that is used to perform custom validation\n * @param [transformErrors] - An optional function that is used to transform errors after AJV validation\n * @param [uiSchema] - An optional uiSchema that is passed to `transformErrors` and `customValidate`\n */\n validateFormData(formData, schema, customValidate, transformErrors, uiSchema) {\n const rawErrors = this.rawValidation(schema, formData);\n return processRawValidationErrors(this, rawErrors, formData, schema, customValidate, transformErrors, uiSchema);\n }\n /** Validates data against a schema, returning true if the data is valid, or\n * false otherwise. If the schema is invalid, then this function will return\n * false.\n *\n * @param schema - The schema against which to validate the form data\n * @param formData - The form data to validate\n * @param rootSchema - The root schema used to provide $ref resolutions\n */\n isValid(schema, formData, rootSchema) {\n var _a, _b;\n const rootSchemaId = (_a = rootSchema[ID_KEY]) !== null && _a !== void 0 ? _a : ROOT_SCHEMA_PREFIX;\n try {\n // add the rootSchema ROOT_SCHEMA_PREFIX as id.\n // then rewrite the schema ref's to point to the rootSchema\n // this accounts for the case where schema have references to models\n // that lives in the rootSchema but not in the schema in question.\n // if (this.ajv.getSchema(rootSchemaId) === undefined) {\n // TODO restore the commented out `if` above when the TODO in the `finally` is completed\n this.ajv.addSchema(rootSchema, rootSchemaId);\n // }\n const schemaWithIdRefPrefix = withIdRefPrefix(schema);\n const schemaId = (_b = schemaWithIdRefPrefix[ID_KEY]) !== null && _b !== void 0 ? _b : hashForSchema(schemaWithIdRefPrefix);\n let compiledValidator;\n compiledValidator = this.ajv.getSchema(schemaId);\n if (compiledValidator === undefined) {\n // Add schema by an explicit ID so it can be fetched later\n // Fall back to using compile if necessary\n // https://ajv.js.org/guide/managing-schemas.html#pre-adding-all-schemas-vs-adding-on-demand\n compiledValidator =\n this.ajv.addSchema(schemaWithIdRefPrefix, schemaId).getSchema(schemaId) ||\n this.ajv.compile(schemaWithIdRefPrefix);\n }\n const result = compiledValidator(formData);\n return result;\n }\n catch (e) {\n console.warn('Error encountered compiling schema:', e);\n return false;\n }\n finally {\n // TODO: A function should be called if the root schema changes so we don't have to remove and recompile the schema every run.\n // make sure we remove the rootSchema from the global ajv instance\n this.ajv.removeSchema(rootSchemaId);\n }\n }\n}\n//# sourceMappingURL=validator.js.map","import AJV8Validator from './validator';\n/** Creates and returns a customized implementation of the `ValidatorType` with the given customization `options` if\n * provided. If a `localizer` is provided, it is used to translate the messages generated by the underlying AJV\n * validation.\n *\n * @param [options={}] - The `CustomValidatorOptionsType` options that are used to create the `ValidatorType` instance\n * @param [localizer] - If provided, is used to localize a list of Ajv `ErrorObject`s\n * @returns - The custom validator implementation resulting from the set of parameters provided\n */\nexport default function customizeValidator(options = {}, localizer) {\n return new AJV8Validator(options, localizer);\n}\n//# sourceMappingURL=customizeValidator.js.map","import customizeValidator from './customizeValidator';\nimport createPrecompiledValidator from './createPrecompiledValidator';\nexport { customizeValidator, createPrecompiledValidator };\nexport * from './types';\nexport default customizeValidator();\n//# sourceMappingURL=index.js.map"],"names":["getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","i","order2","n","test3","letter","objectAssign","target","source","from","to","symbols","s","key","l","require$$0","p","react_production_min","q","r","t","u","v","w","x","y","a","z","b","c","A","B","C","D","E","F","G","H","I","J","e","d","k","h","g","f","m","K","L","escape","M","N","O","P","Q","R","S","T","reactModule","require$$1","reactJsxRuntime_production_min","jsxRuntimeModule","luxon","LuxonError","InvalidDateTimeError","reason","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","DATE_SHORT","DATE_MED","DATE_MED_WITH_WEEKDAY","DATE_FULL","DATE_HUGE","TIME_SIMPLE","TIME_WITH_SECONDS","TIME_WITH_SHORT_OFFSET","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","Zone","ts","opts","format","otherZone","singleton$1","SystemZone","locale","parseZoneInfo","formatOffset","dtfCache","makeDTF","zone","typeToPos","hackyOffset","dtf","date","formatted","parsed","fMonth","fDay","fYear","fadOrBc","fHour","fMinute","fSecond","partsOffset","filled","type","value","pos","isUndefined","ianaZoneCache","IANAZone","name","year","month","day","adOrBc","hour","minute","second","asUTC","objToLocalTS","asTS","over","intlLFCache","getCachedLF","locString","intlDTCache","getCachedDTF","intlNumCache","getCachedINF","inf","intlRelCache","getCachedRTF","base","cacheKeyOpts","sysLocaleCache","systemLocale","weekInfoCache","getCachedWeekInfo","data","parseLocaleString","localeStr","xIndex","uIndex","options","selectedStr","smaller","numberingSystem","calendar","intlConfigString","outputCalendar","mapMonths","ms","dt","DateTime","mapWeekdays","listStuff","loc","length","englishFn","intlFn","mode","supportsFastNumbers","PolyNumberFormatter","intl","forceSimple","padTo","floor","otherOpts","intlOpts","fixed","roundTo","padStart","PolyDateFormatter","gmtOffset","offsetZ","parts","part","offsetName","PolyRelFormatter","isEnglish","hasRelative","count","formatRelativeTime","fallbackWeekSettings","Locale","weekSettings","defaultToEN","specifiedLocale","Settings","localeR","numberingSystemR","outputCalendarR","weekSettingsR","validateWeekSettings","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","isActuallyEn","hasNoWeirdness","alts","months","formatStr","weekdays","meridiems","eras","field","df","results","matching","hasLocaleWeekInfo","other","singleton","FixedOffsetZone","offset","signedOffset","InvalidZone","zoneName","normalizeZone","input","defaultZone","isString","lowered","isNumber","numberingSystems","numberingSystemsUTF16","hanidecChars","parseDigits","str","code","min","max","digitRegexCache","resetDigitRegexCache","digitRegex","append","ns","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","twoDigitCutoffYear","throwOnInvalid","defaultWeekSettings","cutoffYear","Invalid","explanation","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","computeOrdinal","isLeapYear","uncomputeOrdinal","ordinal","table","month0","isoWeekdayToLocal","isoWeekday","startOfWeek","gregorianToWeek","gregObj","minDaysInFirstWeek","weekday","weekNumber","weekYear","weeksInWeekYear","timeObject","weekToGregorian","weekData","weekdayOfJan4","yearInDays","daysInYear","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","usesLocalWeekValues","obj","hasInvalidWeekData","validYear","isInteger","validWeek","integerBetween","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","daysInMonth","hasInvalidTimeData","millisecond","validHour","validMinute","validSecond","validMillisecond","o","isDate","maybeArray","thing","bestBy","arr","by","compare","best","next","pair","pick","keys","prop","settings","bottom","top","floorMod","isNeg","padded","parseInteger","string","parseFloating","parseMillis","fraction","number","digits","towardZero","factor","modMonth","modYear","firstWeekOffset","weekOffset","weekOffsetNext","untruncateYear","offsetFormat","timeZone","modified","offHourStr","offMinuteStr","offHour","offMin","offMinSigned","asNumber","numericValue","normalizeObject","normalizer","normalized","hours","minutes","sign","monthsLong","monthsShort","monthsNarrow","weekdaysLong","weekdaysShort","weekdaysNarrow","erasLong","erasShort","erasNarrow","meridiemForDateTime","weekdayForDateTime","monthForDateTime","eraForDateTime","numeric","narrow","units","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","stringifyTokens","splits","tokenToString","token","macroTokenToFormatOpts","Formatter","fmt","current","currentFull","bracketed","formatOpts","interval","knownEnglish","useDateTimeFormatter","extract","meridiem","standalone","maybeMacro","era","dur","tokenToField","lildur","mapped","tokens","realTokens","found","literal","collapsed","ianaRegex","combineRegexes","regexes","full","combineExtractors","extractors","mergedVals","mergedZone","cursor","ex","parse","patterns","regex","extractor","simpleParse","match","ret","offsetRegex","isoExtendedZone","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoTimeOnly","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","negativeSeconds","maybeNegate","num","force","obsOffsets","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDateAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","extractISOTimeOnly","parseISOTimeOnly","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID$2","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits$1","reverseUnits","clone$1","clear","conf","Duration","durationToMillis","matrix","vals","_vals$milliseconds","sum","normalizeValues","previous","previousVal","conv","rollUp","removeZeroes","newVals","config","accurate","durationLike","text","invalid","fmtOpts","millis","duration","fn","values","mixed","conversionAccuracy","built","accumulated","lastUnit","own","ak","negated","eq","v1","v2","INVALID$1","validateStartEnd","start","end","Interval","Interval$2","builtStart","friendlyDateTime","builtEnd","validateError","startIsValid","endIsValid","dateTime","dateTimes","sorted","added","idx","numberOfParts","intervals","final","sofar","item","currentCount","ends","flattened","dateFormat","separator","mapFn","Info","proto","locObj","dayDiff","earlier","later","utcDayStart","highOrderDiffs","differs","days","lowestOrder","highWater","differ","diff","remainingMillis","lowerOrderUnits","MISSING_FTP","intUnit","post","NBSP","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","groups","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","partTypeStyleToTokenVal","tokenForPart","resolvedOpts","isSpace","style","actualType","buildRegex","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","specificOffset","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatOptsToTokens","expandMacroTokens","TokenParser","regexString","rawMatches","explainFromTokens","parseFromTokens","invalidReason","INVALID","MAX_DATE","unsupportedZone","possiblyCachedWeekData","possiblyCachedLocalWeekData","clone","inst","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","setZone","interpretationZone","toTechFormat","allowZ","toISODate","extended","longFormat","toISOTime","suppressSeconds","suppressMilliseconds","includeOffset","extendedZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedUnits","orderedWeekUnits","orderedOrdinalUnits","normalizeUnit","normalizeUnitWithLocalWeeks","guessOffsetForZone","zoneOffsetGuessCache","zoneOffsetTs","quickDT","offsetProvis","diffRelative","round","lastOpts","argList","args","DateTime$2","ot","zoneToUse","milliseconds","seconds","tsNow","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","localeToUse","localeOpts","tokenList","dayMs","minuteMs","oEarlier","oLater","o1","ts1","ts2","c1","c2","keepLocalTime","keepCalendarTime","newTS","offsetGuess","asObj","settingWeekStuff","useLocaleWeeks","normalizedUnit","ext","includePrefix","includeZone","includeOffsetSpace","otherDateTime","durOpts","otherIsLater","diffed","inputMs","adjustedToZone","padding","formatParser","dateTimeish","VERSION","DateSettings","exports","dateTime_constants","_","Y","dateTime_formats","common_utils","require$$4","require$$5","__publicField","require$$2","require$$3","require$$6","dateTime_utils","DateInfo","useMountedState","useAsyncFn","useAsync","module","$","j","validator_constants","joi","validationHelper_utils","_a","parseSchemaArray_util","parseValidationErrors_utils","validate","custom_validator","i$w","array_validator","boolean_validator","require$$7","require$$9","require$$11","bpDateTimeValidator_extension","dateTime_validator","number_validator","stringPatterns_constants","Validator","require$$8","require$$10","require$$12","require$$13","require$$14","require$$15","require$$16","die","error","_len","_key","mockGlobal","getGlobal","assign","getDescriptor","defineProperty","objectPrototype","EMPTY_ARRAY","EMPTY_OBJECT","hasProxy","plainObjectString","assertProxies","once","func","invoked","noop","isFunction","isStringish","isObject","isPlainObject","protoConstructor","isGenerator","constructor","addHiddenProp","object","propName","addHiddenFinalProp","createInstanceofPredicate","theClass","isES6Map","isES6Set","hasGetOwnPropertySymbols","getPlainObjectKeys","ownKeys","toPrimitive","hasProp","getOwnPropertyDescriptors","res","_defineProperties","props","descriptor","_createClass","Constructor","protoProps","staticProps","_extends","_inheritsLoose","subClass","superClass","_setPrototypeOf","_assertThisInitialized","self","_unsupportedIterableToArray","minLen","_arrayLikeToArray","len","arr2","_createForOfIteratorHelperLoose","allowArrayLike","it","storedAnnotationsSymbol","createDecoratorAnnotation","annotation","decorator","property","storeAnnotation","prototype","isOverride","collectStoredAnnotations","$mobx","Atom","name_","IDerivationState_","_proto","listener","reportObserved","startBatch","propagateChanged","endBatch","isAtom","createAtom","onBecomeObservedHandler","onBecomeUnobservedHandler","atom","onBecomeObserved","onBecomeUnobserved","identityComparer","structuralComparer","deepEqual","shallowComparer","defaultComparer","comparer","deepEnhancer","isObservable","observable","isAction","isFlow","flow","autoAction","shallowEnhancer","isObservableObject","isObservableArray","isObservableMap","isObservableSet","referenceEnhancer","newValue","refStructEnhancer","oldValue","OVERRIDE","createActionAnnotation","make_$1","extend_$1","adm","_this$options_","actionDescriptor","createActionDescriptor","proxyTrap","assertActionDescriptor","_ref","_ref2","safeDescriptors","_annotation$options_","_annotation$options_$","_annotation$options_2","_annotation$options_$2","_annotation$options_3","_annotation$options_4","_adm$proxy_2","globalState","_adm$proxy_","createAction","createFlowAnnotation","make_$2","extend_$2","flowDescriptor","createFlowDescriptor","_this$options_2","assertFlowDescriptor","bound","createComputedAnnotation","make_$3","extend_$3","assertComputedDescriptor","createObservableAnnotation","make_$4","extend_$4","_this$options_$enhanc","assertObservableDescriptor","AUTO","autoAnnotation","createAutoAnnotation","make_$5","extend_$5","_this$options_3","_this$options_4","computed","set","flowAnnotation","actionAnnotation","observableAnnotation","_this$options_5","_this$options_6","OBSERVABLE","OBSERVABLE_REF","OBSERVABLE_SHALLOW","OBSERVABLE_STRUCT","defaultCreateObservableOptions","asCreateObservableOptions","observableRefAnnotation","observableShallowAnnotation","observableStructAnnotation","observableDecoratorAnnotation","getEnhancerFromOptions","getEnhancerFromAnnotation","getAnnotationFromOptions","_options$defaultDecor","createObservable","arg2","arg3","observableFactories","ObservableValue","initialValues","createLegacyArray","createObservableArray","ObservableMap","ObservableSet","decorators","extendObservable","asObservableObject","asDynamicObservableObject","COMPUTED","COMPUTED_STRUCT","computedAnnotation","computedStructAnnotation","arg1","ComputedValue","_getDescriptor$config","_getDescriptor","currentActionId","nextActionId","isFunctionNameConfigurable","tmpNameDescriptor","actionName","ref","executeAction","canRunAsDerivation","scope","runInfo","_startAction","err","_endAction","notifySpy_","startTime_","prevDerivation_","runAsAction","prevAllowStateChanges_","untrackedStart","allowStateChangesStart","prevAllowStateReads_","allowStateReadsStart","allowStateChangesEnd","allowStateReadsEnd","untrackedEnd","allowStateChanges","prev","_Symbol$toPrimitive","_Atom","_Symbol$toPrimitive2","enhancer","notifySpy","equals","_this","hasInterceptors","change","interceptChange","UPDATE","hasListeners","notifyListeners","handler","registerInterceptor","fireImmediately","registerListener","_Symbol$toPrimitive$1","CaughtException","TraceMode","propagateMaybeChanged","shouldCompute","prevTrackingContext","propagateChangeConfirmed","isCaughtException","wasSuspended","changed","track","trackDerivedFunction","clearObserving","firstTime","prevValue","autorun","prevU","isComputedValue","cause","derivation","prevAllowStateReads","prevUntracked","obs","changeDependenciesStateTo0","context","prevTracking","bindDependencies","prevObserving","observing","lowestNewObservingDerivationState","i0","dep","_dep","removeObserver","_dep2","addObserver","untracked","action","allowStateReads","MobXGlobals","canMergeGlobalState","isolateCalled","global","isolateGlobalState","node","queueForUnobservation","runReactions","list","Reaction","onInvalidate_","errorHandler_","requiresObservable_","prevReaction","message","enterBreakPoint","trace","MAX_REACTION_ITERATIONS","reactionScheduler","runReactionsHelper","allReactions","iterations","remainingReactions","isReaction","setReactionScheduler","baseScheduler","isSpyEnabled","spy","ACTION","ACTION_BOUND","AUTOACTION","AUTOACTION_BOUND","DEFAULT_ACTION_NAME","actionBoundAnnotation","autoActionAnnotation","autoActionBoundAnnotation","createActionFactory","runInAction","view","_opts$name","_opts","runSync","reaction","reactionRunner","scheduler","createSchedulerFromOptions","isScheduled","run","ON_BECOME_OBSERVED","ON_BECOME_UNOBSERVED","interceptHook","hook","getAtom","cb","listenersKey","hookListeners","NEVER","ALWAYS","OBSERVED","configure","useProxies","enforceActions","ea","properties","annotations","descriptors","getDependencyTree","nodeToDependencyTree","unique","generatorId","FlowCancellationError","flowBoundAnnotation","generator","ctx","runId","gen","rejector","pendingPromise","promise","resolve","reject","stepId","onFulfilled","onRejected","cancelPromise","_res","yieldedPromise","_isObservable","getAtomFromArgs","transaction","thisArg","getAdm","objectProxyTraps","_getAdm$set_","_getAdm$delete_","_getAdm$definePropert","_target$$mobx","_target$$mobx$proxy_","interceptable","interceptors","listenable","listeners","makeObservable","_annotations","SPLICE","MAX_SPLICE_SIZE","arrayTraps","arrayExtensions","ObservableArrayAdministration","owned_","legacyMode_","newV","oldV","newLength","currentLength","newItems","oldLength","delta","reserveArrayBuffer","index","deleteCount","lengthDelta","_this$values_","oldItems","_i","notify","removed","owned","proxy","_len2","items","_key2","_len3","_key3","copy","addArrayExtension","simpleFunc","mapLikeFunc","reduceLikeFunc","funcName","funcFactory","dehancedValues","callback","_this2","element","_this3","accumulator","currentValue","isObservableArrayAdministration","_Symbol$iterator","_Symbol$toStringTag","ObservableMapMarker","ADD","DELETE","_Symbol$iterator2","_Symbol$toStringTag2","initialData","enhancer_","entry","newEntry","hasKey","_change","_this3$hasMap_$get","_this4","_this4$hasMap_$get","makeIterable","_keys$next","done","_keys$next2","_iterator","_step","_step$value","_this5","_this6","_iterator2","_step2","_this7","replacementMap","convertToMap","orderedData","keysReportChangedCalled","_iterator3","_step3","deleted","_iterator4","_step4","_step4$value","_value","keyExisted","_value2","iter1","iter2","next1","next2","dataStructure","map","_Symbol$iterator$1","_Symbol$toStringTag$1","ObservableSetMarker","callbackFn","_change2","nextIndex","observableValues","descriptorCache","REMOVE","ObservableObjectAdministration","target_","values_","defaultAnnotation_","_this$target_$storedA","outcome","recordAnnotationApplied","deleteOutcome","cachedDescriptor","getCachedObservablePropDescriptor","_this$pendingKeys_","_this$pendingKeys_$ge","_this$pendingKeys_2","_this$pendingKeys_2$g","_options$name","isObservableObjectAdministration","_adm$target_$storedAn","OBSERVABLE_ARRAY_BUFFER_SIZE","StubArray","inherit","ctor","LegacyObservableArray","_StubArray","arrays","createArrayEntryDescriptor","createArrayBufferItem","getDebugName","_observable","getAdministration","named","toString","depth","aStack","bStack","className","unwrap","areArrays","aCtor","bCtor","iterator","getSelf","extendStatics","__extends","__","__assign","__rest","__awaiter","_arguments","adopt","fulfilled","step","rejected","__generator","body","verb","op","__read","ar","__spread","__spreadArrays","il","jl","Constants","OIDC_DEFAULT_SCOPES","OIDC_SCOPES","HeaderNames","PersistentCacheKeys","AADAuthorityConstants","AADServerParamKeys","ClaimsRequestKeys","PromptValue","SSOTypes","CodeChallengeMethodValues","ResponseMode","GrantType","CacheAccountType","Separators","CredentialType","CacheType","APP_METADATA","CLIENT_INFO","THE_FAMILY_ID","AUTHORITY_METADATA_CONSTANTS","AuthorityMetadataSource","SERVER_TELEM_CONSTANTS","AuthenticationScheme","ThrottlingConstants","Errors","PasswordGrantConstants","ResponseCodes","RegionDiscoverySources","RegionDiscoveryOutcomes","CacheOutcome","JsonTypes","AuthErrorMessage","AuthError","_super","errorCode","errorMessage","suberror","errorString","correlationId","errDesc","DEFAULT_CRYPTO_IMPLEMENTATION","notImplErr","ClientAuthErrorMessage","ClientAuthError","caughtError","caughtExtractionError","invalidRawTokenString","errDetail","endpoint","hashParamObj","invalidState","missingState","missingNonce","givenScope","appendError","operationName","StringUtils","authToken","tokenPartsRegex","crackedToken","strObj","search","query","params","decode","pattern","LogLevel","Logger","loggerOptions","packageName","packageVersion","defaultLoggerCallback","setLoggerOptions","logMessage","timestamp","logHeader","log","level","containsPii","version","AzureCloudInstance","ClientConfigurationErrorMessage","ClientConfigurationError","claimsRequestParseError","urlString","urlParseError","inputScopes","promptValue","invalidHeaderName","details","ScopeSet","scopeArr","filteredInput","inputScopeString","scopeString","scopeSet","lowerCaseScopes","lowerCaseScopesSet","defaultScopeCount","defaultScope","newScope","newScopes","otherScopes","unionScopes","sizeOtherScopes","sizeThisScopes","sizeUnionScopes","array","buildClientInfo","rawClientInfo","crypto","decodedClientInfo","buildClientInfoFromHomeAccountId","homeAccountId","clientInfoParts","AuthorityType","AccountEntity","accountId","accountInterface","accountKey","clientInfo","idToken","authority","cloudGraphHostName","msGraphHost","environment","nativeAccountId","_b","_c","_d","_e","_f","account","env","preferredUsername","email","serverClientInfo","authType","logger","cryptoObj","entity","accountA","accountB","compareClaims","claimsMatch","accountAClaims","accountBClaims","AuthToken","rawToken","encodedToken","decodedToken","base64TokenPayload","base64Decoded","authTime","maxAge","fiveMinuteSkew","CacheManager","clientId","cryptoImpl","allAccountKeys","accountEntities","accounts","allAccounts","accountEntity","accountFilter","accountInfo","cacheRecord","credential","accessTokenFilter","tokenKeys","currentScopes","removedAccessTokens","tokenEntity","tokenScopeSet","matchingAccounts","cacheKey","tenantId","lowerCaseKey","clientIdValidation","familyIdValidation","filter","allCacheKeys","matchingAppMetadata","host","matchedEntity","removedAccounts","allTokenKeys","removedCredentials","accessTokenWithAuthSchemeEntity","kid","request","cachedAccount","cachedIdToken","cachedAccessToken","cachedRefreshToken","cachedAppMetadata","idTokenFilter","idTokens","numIdTokens","idTokenKeys","inputKey","scopes","authScheme","credentialType","accessTokenKeys","accessTokens","accessToken","numAccessTokens","keyMustContainAllScopes","familyRT","id","refreshTokenFilter","refreshTokenKeys","refreshTokens","refreshToken","numRefreshTokens","appMetadataFilter","appMetadata","appMetadataEntries","numAppMetadata","localAccountId","username","userAssertionHash","cloudMetadata","familyId","realm","isNotAccessTokenCredential","entityScopeSet","tokenType","keyId","json","propertyName","DefaultStorageClass","DEFAULT_TOKEN_RENEWAL_OFFSET_SEC","DEFAULT_SYSTEM_OPTIONS","DEFAULT_LOGGER_IMPLEMENTATION","DEFAULT_NETWORK_IMPLEMENTATION","DEFAULT_LIBRARY_INFO","DEFAULT_CLIENT_CREDENTIALS","DEFAULT_AZURE_CLOUD_OPTIONS","DEFAULT_TELEMETRY_OPTIONS","buildClientConfiguration","userAuthOptions","userSystemOptions","userLoggerOption","storageImplementation","networkImplementation","cryptoImplementation","clientCredentials","libraryInfo","telemetry","serverTelemetryManager","persistencePlugin","serializableCache","buildAuthOptions","authOptions","ServerError","subError","ThrottlingUtils","thumbprint","cacheManager","response","thumbprintValue","throttleTime","time","currentSeconds","homeAccountIdentifier","NetworkManager","networkClient","tokenEndpoint","e_1","CcsCredentialType","RequestValidator","redirectUri","prompt","promptValues","claims","codeChallenge","codeChallengeMethod","eQParams","queryParams","RequestParameterBuilder","responseMode","addOidcScopes","requestScopes","idTokenHint","domainHint","loginHint","sid","clientCapabilities","mergedClaims","appTelemetry","state","nonce","codeVerifier","clientSecret","clientAssertion","clientAssertionType","oboAssertion","tokenUse","grantType","sanitizedEQParams","password","cnfString","sshJwkString","logoutHint","queryParameterArray","BaseClient","configuration","performanceClient","ccsCred","headers","queryString","updatedAuthority","parameterBuilder","CredentialEntity","requestedClaimsHash","credentialKey","clientOrFamilyId","credentialId","IdTokenEntity","idTokenEntity","TimeUtils","expiresOn","expirationSec","offsetCurrentTimeSec","cachedAt","cachedAtSec","AccessTokenEntity","extExpiresOn","cryptoUtils","refreshOn","requestedClaims","atEntity","currentTime","tokenClaims","RefreshTokenEntity","rtEntity","InteractionRequiredServerErrorMessage","InteractionRequiredAuthSubErrorMessage","InteractionRequiredAuthErrorMessage","InteractionRequiredAuthError","traceId","isInteractionRequiredErrorCode","isInteractionRequiredSubError","isInteractionRequiredErrorDesc","irErrorCode","CacheRecord","accessTokenEntity","refreshTokenEntity","appMetadataEntity","ProtocolUtils","userState","meta","libraryState","stateObj","stateString","splitState","libraryStateString","libraryStateObj","UrlString","url","lowerCaseUrl","components","urlObject","pathArray","regEx","urlComponents","pathSegments","relativeUrl","baseUrl","baseComponents","hashString","hashIndex1","hashIndex2","queryIndex1","queryIndex2","hash","parsedHash","deserializedHash","parsedQueryString","deserializedQueryString","parameters","PerformanceEvents","PerformanceEventStatus","IntFields","KeyLocation","PopTokenGenerator","reqCnf","reqCnfString","kidThumbprint","payload","resourceRequestMethod","resourceRequestUri","shrClaims","shrNonce","resourceUrlString","resourceUrlComponents","AppMetadataEntity","appMetaDataKeyArray","TokenCacheContext","tokenCache","hasChanged","ResponseHandler","cacheStorage","serverResponseHash","cachedState","serverResponse","errString","serverTokenResponse","reqTimestamp","authCodePayload","handlingRefreshTokenResponse","forceCacheRefreshTokenResponse","serverRequestId","idTokenObj","requestStateObj","cacheContext","responseScopes","expiresIn","extExpiresIn","refreshIn","tokenExpirationSeconds","extendedTokenExpirationSeconds","refreshOnSeconds","authorityType","msGraphhost","fromTokenCache","requestState","requestId","popTokenGenerator","secret","uid","tid","AuthorizationCodeClient","atsMeasurement","httpVerAuthority","responseHandler","_g","hashFragment","hashUrlString","serverParams","logoutRequest","queryParametersString","requestBody","ccsCredential","reqCnfData","accountSid","accountLoginHintClaim","RefreshTokenClient","httpVerToken","_h","isFOCI","noFamilyRTInCache","clientMismatchErrorWithFamilyRT","foci","refreshTokenRequest","acquireTokenMeasurement","SilentFlowClient","refreshTokenClient","isOpenIdConfigResponse","rawMetdataJSON","EndpointMetadata","InstanceDiscoveryMetadata","ProtocolMode","AuthorityMetadataEntity","metadata","fromNetwork","isCloudInstanceDiscoveryResponse","isCloudInstanceDiscoveryErrorResponse","RegionDiscovery","networkInterface","environmentRegion","regionDiscoveryMetadata","autodetectedRegionName","localIMDSVersionResponse","currentIMDSVersion","currentIMDSVersionResponse","Authority","authorityOptions","cachedAuthorityUrl","cachedAuthorityParts","currentAuthorityParts","currentPart","cachedPart","metadataEntity","cloudDiscoverySource","endpointSource","harcodedMetadata","cachedParts","azureRegion","metadataEntityExpired","parsedResponse","instanceDiscoveryEndpoint","typedResponseBody","error_1","typedError","authorityString","azureCloudOptions","authorityAzureCloudInstance","tenant","region","authorityUrlInstance","authorityUrlParts","hostNameAndPort","ciamAuthority","authorityUrl","authorityUrlComponents","tenantIdOrDomain","AuthorityFactory","authorityUri","authorityUriFinal","acquireTokenAuthority","ServerTelemetryEntity","validateKey","validateEntity","ThrottlingEntity","StubbedNetworkModule","JoseHeaderErrorMessage","JoseHeaderError","JoseHeader","shrHeaderOptions","shrHeader","AuthenticationHeaderParser","authenticationInfo","authenticationInfoChallenges","wwwAuthenticate","wwwAuthenticateChallenges","header","schemeSeparator","challenges","challengeMap","challenge","ServerTelemetryManager","telemetryRequest","platformFields","regionDiscoveryFields","requestWithRegionDiscoveryFields","lastRequests","maxErrors","failedRequests","errors","errorCount","overflow","initialValue","numErrorsFlushed","serverTelemEntity","serverTelemetryEntity","dataSize","apiId","cacheOutcome","PerformanceClient","libraryName","libraryVersion","applicationTelemetry","measureName","eventName","preQueueEvent","preQueueTime","queueTime","manuallyCompleted","queueMeasurement","existingMeasurements","measurementArray","eventCorrelationId","performanceMeasurement","inProgressEvent","event","fields","counters","measurement","rootEvent","isRoot","queueInfo","durationMs","finalEvent","incompleteSubsCount","subMeasurement","counter","queueMeasurementForCorrelationId","totalQueueTime","totalQueueCount","manuallyCompletedCount","callbackId","events","intFields","StubPerformanceMeasurement","StubPerformanceClient","BrowserAuthErrorMessage","BrowserAuthError","method","hashValue","windowParentCheck","givenPrompt","errorDesc","errorDetail","BrowserConstants","NativeConstants","NativeExtensionMethod","BrowserCacheLocation","HTTP_REQUEST_TYPE","TemporaryCacheKeys","StaticCacheKeys","InMemoryCacheKeys","ApiId","InteractionType","InteractionStatus","DEFAULT_REQUEST","KEY_FORMAT_JWK","WrapperSKU","DB_NAME","DB_VERSION","DB_TABLE_NAME","CacheLookupPolicy","BrowserConfigurationAuthErrorMessage","BrowserConfigurationAuthError","givenStorageLocation","BrowserStorage","cacheLocation","storageSupported","MemoryStorage","cacheKeys","BrowserProtocolUtils","browserCrypto","locationHash","BrowserCacheManager","cacheConfig","temporaryCacheLocation","idTokenKey","clientInfoKey","errorKey","errorDescKey","idTokenValue","clientInfoValue","errorValue","errorDescValue","keysToMigrate","newKey","accountKeys","allKeys","credObj","accountObj","jsonValue","parsedJson","parsedAccount","removalIndex","idRemoval","accessRemoval","refreshRemoval","parsedIdToken","accessTokenKey","parsedAccessToken","refreshTokenKey","parsedRefreshToken","appMetadataKey","parsedMetadata","serverTelemetryKey","serverTelemetry","wrapperSKU","wrapperVersion","sku","activeAccountKeyFilters","activeAccountValueFilters","activeAccountKeyLocal","activeAccountValueLocal","activeAccount","activeAccountValueObj","activeAccountKey","activeAccountValue","throttlingCacheKey","parsedThrottlingCache","throttlingCache","generateKey","itemCookie","cookieName","cookieValue","expires","cookieStr","expireTime","cookieList","cookie","cookiePrefix","cookieKey","cookieLifeDays","today","expr","generatedKey","stateId","stateCacheKey","authorityCacheKey","authorityInstance","nonceCacheKey","stateKey","interactionType","stateValue","parsedState","authCodeRequest","encodedValue","encodedTokenRequest","parsedRequest","cachedAuthority","cachedRequest","matchClientId","inProgress","adalIdTokenString","msalIdTokenString","cachedIdTokenString","IdToken","currentCacheKey","updatedCacheKey","cacheItem","DEFAULT_BROWSER_CACHE_MANAGER","cacheOptions","FetchClient","reqBody","e_3","optionsHeaders","headerDict","XhrClient","xhr","jsonResponse","networkResponse","headers_1","headerString","headerArr","headerName","headerVal","BrowserUtils","contentWindow","urlParts","currentUrl","isResponseHash","allowRedirectInIframe","isIframedApp","isBrowserEnvironment","allowNativeBroker","initialized","ua","msie","msie11","msedge","isIE","isEdge","BaseInteractionClient","storageImpl","eventHandler","navigationClient","nativeMessageHandler","validatedRequest","requestRedirectUri","forceRefresh","telemetryPayload","requestAuthority","StandardInteractionClient","generatedPkceParams","validLogoutRequest","idTokenClaims","requestAzureCloudOptions","clientConfig","discoveredAuthority","requestCorrelationId","platformStateObj","getAuthorityMeasurement","userAuthority","builtAuthority","browserState","legacyLoginHint","InteractionHandler","authCodeModule","networkModule","authCodeResponse","validateNonce","nonceKey","cachedNonce","cachedCcsCred","tokenResponse","cloudInstanceHostname","cloudInstanceAuthorityUri","cloudInstanceAuthority","RedirectHandler","requestUrl","navigationOptions","navigate","EventType","NativeStatusCode","NativeAuthErrorMessage","NativeAuthError","description","SilentCacheClient","silentRequest","silentAuthClient","cachedToken","NativeInteractionClient","browserStorage","provider","nativeStorageImpl","nativeATMeasurement","nativeRequest","messageBody","validatedResponse","e_2","e_4","authorityPreferredCache","shrParameters","mats","accountProperties","responseAccessToken","canonicalAuthority","remainingProperties","getPrompt","NativeMessageHandler","handshakeTimeoutMs","extensionId","req","preferredProvider","backupProvider","handshakeResolver","resolver","nativeExtensionProvider","authenticationScheme","RedirectClient","validRequest","handleBackButton","authClient","interactionHandler","navigateUrl","redirectStartPage","responseHash","loginRequestUrl","loginRequestUrlNormalized","currentUrlNormalized","handleHashResult","processHashOnRedirect","homepage","cachedHash","nativeInteractionClient","userRequestState","currentAuthority","logoutUri","requestStartPage","PopupClient","popupName","popupWindowAttributes","popup","mainWindowRedirectUri","isNativeBroker","fetchNativeAccountIdMeasurement","popupParameters","popupWindow","state_1","absoluteUrl","maxTicks","ticks","intervalId","href","urlNavigate","popupParams","winLeft","winTop","winWidth","winHeight","width","height","left","NavigationClient","DEFAULT_POPUP_TIMEOUT_MS","DEFAULT_IFRAME_TIMEOUT_MS","DEFAULT_REDIRECT_TIMEOUT_MS","DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS","buildConfiguration","userInputAuth","userInputCache","userInputSystem","userInputTelemetry","DEFAULT_AUTH_OPTIONS","DEFAULT_CACHE_OPTIONS","DEFAULT_LOGGER_OPTIONS","DEFAULT_BROWSER_SYSTEM_OPTIONS","providedSystemOptions","overlayedConfig","SilentHandler","systemOptions","iframe","timeout","nowMark","timeoutMark","contentHash","frameHandle","authFrame","SilentIframeClient","silentHandler","msalFrame","SilentRefreshClient","EventHandler","eventType","message_1","cacheValue","parsedValue","MathUtils","hex","GuidGenerator","buffer","guidHolder","guidResponse","guid","regexGuid","BrowserStringUtils","sDOMStr","nChr","nArrLen","nStrLen","nMapIdx","aBytes","nIdx","nChrIdx","dataString","dataView","sView","nPart","nLen","Base64Encode","inputArr","inputUtf8Arr","eqLen","sB64Enc","nMod3","nUint24","nUint6","Base64Decode","encodedString","base64String","nBlockSize","nInLen","nOutLen","nMod4","nOutIdx","nInIdx","charNum","RANDOM_BYTE_ARR_LENGTH","PkceGenerator","pkceCodeVerifierB64","pkceCodeVerifier","pkceHashedCodeVerifier","ModernBrowserCrypto","dataBuffer","algorithm","extractable","keyUsages","keyData","MsrBrowserCrypto","entropy","MsBrowserCrypto","msGenerateKey","msExportKey","resultBuffer","resultString","keyString","keyBuffer","msImportKey","msSign","digestOperation","PKCS1_V15_KEYGEN_ALG","S256_HASH_ALG","MODULUS_LENGTH","PUBLIC_EXPONENT","BrowserCrypto","cryptoOptions","usages","DatabaseStorage","openDB","db","objectStore","dbGet","dbPut","dbDelete","dbGetKeys","dbContainsKey","deleteDbRequest","AsyncMemoryStorage","storeName","containsKey","e_5","dbDeleted","e_6","CryptoKeyStoreNames","CryptoKeyStore","CryptoOps","cryptoConfig","publicKeyThumbMeasurement","keyPair","publicKeyJwk","pubKeyThumprintObj","publicJwkString","publicJwkHash","privateKeyJwk","unextractablePrivateKey","keyFound","signJwtMeasurement","cachedKeyPair","publicKeyJwkString","encodedKeyIdThumbprint","encodedShrHeader","encodedPayload","tokenString","tokenBuffer","signatureBuffer","encodedSignature","signedJwt","plainText","hashBuffer","hashBytes","BrowserPerformanceMeasurement","measurements","entriesForMeasurement","BrowserPerformanceClient","isRootEvent","incompleteMeasurements","startPageVisibility","resQueueTime","TokenCache","storage","cacheRecordAccount","requestHomeAccountId","extendedExpiresOn","HybridSpaAuthorizationCodeClient","SilentAuthCodeClient","ClientApplication","nativeCacheOptions","initMeasurement","loggedInAccounts","redirectResponseKey","redirectResponse","nativeClient","redirectClient","isLoggingIn","isLoggedIn","atPopupMeasurement","popupClient","silentIframeClient","atbcMeasurement","hybridAuthCode_1","silentAuthCodeClient","silentTokenResult","tokenRenewalError","silentCacheClient","commonRequest","silentRefreshClient","setInteractionInProgress","PublicClientApplication","silentRequestKey","cachedResponse","silentRequest_1","requestWithCLP_1","cacheError","refreshTokenError","isServerError","isInteractionRequiredError","isInvalidGrantError","stubbedPublicClientApplication","EventMessageUtils","currentStatus","SignedHttpRequest","shrOptions","publicKeyThumbprint","defaultMsalContext","MsalContext","createContext","MsalConsumer","getChildrenOrFunction","children","accountArraysAreEqual","arrayA","arrayB","comparisonArray","elementA","elementB","getAccountByIdentifiers","accountIdentifiers","MsalProviderActionType","reducer","previousState","newInProgress","status","currentAccounts","MsalProvider","instance","useEffect","useMemo","updateState","useReducer","contextValue","React__default","useMsal","useContext","isAuthenticated","matchAccount","useIsAuthenticated","hasAuthenticated","setHasAuthenticated","useState","AuthenticatedTemplate","accountIdentifier","UnauthenticatedTemplate","getAccount","useAccount","setAccount","currentAccount","nextAccount","ReactAuthErrorMessage","ReactAuthError","useMsalAuthentication","authenticationRequest","setResponse","mounted","useRef","interactionInProgress","shouldAcquireToken","login","useCallback","callbackInteractionType","callbackRequest","loginType","loginRequest","acquireToken","fallbackInteractionType","tokenRequest","MsalAuthenticationTemplate","LoadingComponent","ErrorComponent","msalAuthResult","withMsal","Component","ComponentWithMsal","msal","componentName","authenticator","AuthenticationProvider","utils","bind","getPrototypeOf","kindOf","cache","kindOfTest","typeOfTest","isArray","isBuffer","isArrayBuffer","isArrayBufferView","isBoolean","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","trim","forEach","allOwnKeys","findKey","_global","isContextDefined","merge","caseless","assignValue","targetKey","extend","stripBOM","content","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","position","lastIndex","toArray","isTypedArray","TypedArray","forEachEntry","matchAll","regExp","isHTMLForm","toCamelCase","p1","p2","isRegExp","reduceDescriptors","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toFiniteNumber","defaultValue","ALPHA","DIGIT","ALPHABET","generateString","size","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","utils$1","AxiosError","prototype$1","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","path","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","el","exposedHelpers","build","encode$1","charMap","AxiosURLSearchParams","encoder","_encode","encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","InterceptorManager$1","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","defaults","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","line","$internals","normalizeHeader","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","char","buildAccessors","accessorName","methodName","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","matcher","deleteHeader","targets","asStrings","first","accessors","defineAccessor","headerValue","AxiosHeaders$1","transformData","fns","isCancel","CanceledError","settle","validateStatus","cookies","domain","secure","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","isURLSameOrigin","urlParsingNode","originURL","resolveURL","requestURL","parseProtocol","speedometer","samplesCount","bytes","timestamps","head","tail","firstSampleTS","chunkLength","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","isXHRAdapterSupported","xhrAdapter","requestData","requestHeaders","responseType","withXSRFToken","onCanceled","fullPath","onloadend","responseHeaders","timeoutErrorMessage","xsrfValue","cancel","protocol","knownAdapters","renderReason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","validators$1","deprecatedWarnings","validator","formatMessage","opt","desc","assertOptions","schema","allowUnknown","validators","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","CancelToken$1","spread","isAxiosError","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","axios","promises","axios_1","HttpError","r$G","RequestError","t$K","e$G","NotFoundError","t$J","AuthorisationError","t$I","defaultExceptionFilter_middleware","_j","_k","axiosHelper_constants","axiosHelperBase","axiosHelper","ConflictError","e$B","require$$17","setPrototypeOf","Subscribable","isServer","functionalUpdate","updater","isValidTimeout","ensureQueryKeyArray","timeUntilStale","updatedAt","staleTime","parseQueryArgs","isQueryKey","parseMutationArgs","parseFilterArgs","mapQueryStatusFilter","active","inactive","isActive","matchQuery","filters","exact","fetching","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","queryStatusFilter","matchMutation","mutation","mutationKey","hashQueryKey","hashFn","asArray","stableValueHash","partialDeepEqual","replaceEqualDeep","aSize","bItems","bSize","equalItems","shallowEqualObjects","hasObjectPrototype","prot","sleep","scheduleMicrotask","getAbortController","FocusManager","_Subscribable","onFocus","_window","_this$cleanup","setup","_this$cleanup2","focused","focusManager","OnlineManager","onOnline","online","onlineManager","defaultRetryDelay","failureCount","isCancelable","CancelledError","isCancelledError","Retryer","cancelRetry","cancelFn","continueFn","promiseResolve","promiseReject","cancelOptions","outerResolve","outerReject","pause","continueResolve","promiseOrValue","_config$retry","_config$retryDelay","retry","retryDelay","delay","shouldRetry","NotifyManager","queue","notifyManager","getLogger","setLogger","newLogger","Query","_this$options$cacheTi","_this$options$isDataE","_this$options","prevData","setStateOptions","_this$retryer","observer","_this$retryer2","_this$retryer3","fetchOptions","_this$options$behavio","_context$fetchOptions","_abortController$abor","_this$retryer4","abortController","queryFnContext","fetchFn","_this$options$behavio2","_context$fetchOptions2","hasInitialData","initialDataUpdatedAt","hasData","_action$meta","_action$dataUpdatedAt","QueryCache","client","_options$queryHash","queryHash","queryInMap","_parseFilterArgs","_parseFilterArgs2","Mutation","getDefaultState","restored","_this$options$retry","MutationCache","pausedMutations","infiniteQueryBehavior","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","refetchPage","fetchMore","pageParam","isFetchingNextPage","isFetchingPreviousPage","oldPages","oldPageParams","abortSignal","newPageParams","cancelled","queryFn","buildNewPages","pages","param","page","fetchPage","manual","queryFnResult","promiseAsAny","getNextPageParam","_manual","_param","getPreviousPageParam","shouldFetchFirstPage","_loop","shouldFetchNextPage","_param2","finalPromise","finalPromiseAsAny","hasNextPage","nextPageParam","hasPreviousPage","previousPageParam","QueryClient","_this$unsubscribeFocu","_this$unsubscribeOnli","_this$queryCache$find","queryKeyOrFilters","parsedOptions","defaultedOptions","_this$queryCache$find2","queryCache","_parseFilterArgs3","refetchFilters","_parseFilterArgs4","_parseFilterArgs4$","_ref3","_filters$refetchActiv","_filters$refetchInact","_parseFilterArgs5","_parseFilterArgs6","_this$queryDefaults$f","_this$mutationDefault","QueryObserver","shouldFetchOnMount","shouldFetchOn","notifyOptions","prevOptions","prevQuery","shouldFetchOptionally","nextRefetchInterval","trackedResult","trackProp","unsubscribe","_this$options$refetch","nextInterval","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","prevQueryResult","dataUpdatedAt","errorUpdatedAt","isFetching","isPreviousData","isPlaceholderData","fetchOnMount","fetchOptionally","selectError","placeholderData","isStale","notifyOnChangeProps","notifyOnChangePropsExclusions","includedProps","typedKey","isIncluded","isExcluded","defaultNotifyOptions","_this8","shouldLoadOnMount","InfiniteQueryObserver","_QueryObserver","_options$cancelRefetc","_options$cancelRefetc2","_state$data","_state$data2","_state$fetchMeta","_state$fetchMeta$fetc","_state$fetchMeta2","_state$fetchMeta2$fet","MutationObserver","_this$currentMutation","variables","U","V","W","schedulerModule","aa","ba","ca","da","fa","ha","ia","ja","ka","la","ma","na","oa","pa","qa","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","$a","ab","bb","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","If","Jf","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","Hg","Ig","Jg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","X","qj","rj","sj","tj","uj","vj","wj","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","Yj","Zj","va","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","reactDom_production_min","checkDCE","reactDomModule","unstable_batchedUpdates","ReactDOM","defaultContext","React","QueryClientSharingContext","getQueryClientContext","contextSharing","useQueryClient","queryClient","QueryClientProvider","_ref$contextSharing","Context","createValue","_isReset","QueryErrorResetBoundaryContext","useQueryErrorResetBoundary","shouldThrowError","suspense","_useErrorBoundary","useMutation","mountedRef","_React$useState","forceUpdate","obsRef","currentResult","mutate","mutateOptions","useBaseQuery","Observer","errorResetBoundary","_React$useState2","useQuery","useInfiniteQuery","strictUriEncode","singleMatcher","multiMatcher","decodeComponents","split","right","customDecodeURIComponent","replaceMap","entries","decodeUriComponent","encodedURI","splitOnFirst","separatorIndex","filterObj","isArr","decodeComponent","filterObject","isNullOrUndefined","encodeFragmentIdentifier","encoderForArrayFormat","keyValueSep","parserForArrayFormat","isEncodedArray","arrayValue","validateArrayFormatSeparator","keysSorter","removeHash","hashStart","getHash","queryStart","parseValue","formatter","shouldFilter","objectCopy","url_","queryFromUrl","parsedQueryFromUrl","fragmentIdentifier","exclusionFilter","Action","readOnly","BeforeUnloadEventType","PopStateEventType","createBrowserHistory","_options","_options$window","window","globalHistory","getIndexAndLocation","_window$location","pathname","blockedPopTx","handlePop","blockers","nextAction","_getIndexAndLocation","nextLocation","go","applyTx","_getIndexAndLocation2","location","createEvents","createHref","createPath","getNextLocation","parsePath","createKey","getHistoryStateAndUrl","allowTx","_getIndexAndLocation3","push","_getHistoryStateAndUr","historyState","replace","_getHistoryStateAndUr2","history","blocker","unblock","promptBeforeUnload","arg","_ref$pathname","_ref$search","_ref$hash","parsedPath","hashIndex","searchIndex","NavigationContext","LocationContext","RouteContext","invariant","cond","generatePath","matchRoutes","routes","locationArg","basename","stripBasename","branches","flattenRoutes","rankRouteBranches","matchRouteBranch","parentsMeta","parentPath","route","joinPaths","routesMeta","computeScore","compareIndexes","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","segments","initialScore","score","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","normalizePathname","paramNames","compilePath","pathnameBase","captureGroups","memo","paramName","splatValue","safelyDecodeURIComponent","caseSensitive","regexpSource","resolvePath","fromPathname","toPathname","resolvePathname","normalizeSearch","normalizeHash","relativePath","resolveTo","toArg","routePathnames","locationPathname","routePathnameIndex","toSegments","nextChar","paths","useInRouterContext","useLocation","useNavigate","navigator","routePathnamesJson","activeRef","OutletContext","useOutlet","outlet","createElement","useParams","routeMatch","useRoutes","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","_renderMatches","Navigate","Outlet","Route","_props","Router","basenameProp","locationProp","navigationType","staticProp","navigationContext","trailingPathname","Routes","_ref4","createRoutesFromChildren","Children","isValidElement","Fragment","BrowserRouter","historyRef","setState","useLayoutEffect","useSearchParams","defaultInit","defaultSearchParamsRef","createSearchParams","searchParams","setSearchParams","nextInit","navigateOptions","init","__decorate","__spreadArray","pack","packagesCache","_win","setVersion","packages","versions","GLOBAL_STYLESHEET_KEY","SHADOW_DOM_STYLESHEET_SETTING","DEFAULT_SHADOW_CONFIG","makeShadowConfig","stylesheetKey","inShadow","isShadowConfig","isRecord","extractStyleParts","sheet","classes","objects","stylesheet","_processArgs","argsList","argsList_1","translatedArgs","setRTL","isRTL","_rtl","getRTL","getStyleOptions","InjectionMode","STYLESHEET_SETTING","REUSE_STYLE_NODE","_stylesheet","Stylesheet","serializedStylesheet","shadowConfig","fabricConfig","displayName","namespace","prefix","rules","rule","preserve","injectionMode","includePreservedRules","doc","styleElement","nodeToInsertBefore","cspSettings","placeholderStyleTag","win","kebabRules","rulePairs","_vendorSettings","getVendorSettings","nav","userAgent","autoPrefixNames","prefixRules","vendorSettings","NON_PIXEL_NUMBER_PROPS","provideUnits","isNonPixelProp","isVariableOrPrefixed","LEFT","RIGHT","NO_FLIP","NAME_REPLACEMENTS","VALUE_REPLACEMENTS","rtlifyRules","name_1","flipQuad","negateNum","partIndex","numberVal","tokenizeWithParentheses","partStart","parens","DISPLAY_NAME","getDisplayName","rootStyle","globalSelectorRegExp","expandCommaSeparatedGlobals","selectorWithGlobals","replacementInfo","findGlobal","selector","matchEndIndex","replacement","suffix","isSelector","potentialSelector","expandSelector","newSelector","currentSelector","extractSelector","extractRules","separatedSelector","currentRules","args_1","expandedRules","propValue","selectors","expandQuads","getKeyForRules","serialized","hasProps","rulesForSelector","repeatString","serializeRuleEntries","ruleEntries","allEntries","styleToRegistration","registration","rulesToInsert","applyRegistration","specificityMultiplier","processedRule","styleToClassName","mergeStyles","mergeCss","styleArgs","hasShadowConfig","concatStyleSets","styleSets","mergedSet","workingSubcomponentStyles","styleSets_1","currentSet","currentComponentStyles","subCompProp","mergedValue","mergedSubStyles","_loop_1","workingSet_1","styleProps","styleFunctionOrObject","mergeStyleSets","mergeCssSets","classNameSet","styleSet","concatenatedStyleSet","registrations","styleSetArea","styles","registrations_1","concatStyleSetsWithProps","allStyles","allStyles_1","fontFace","font","keyframes","timeline","rulesArray","buildClassMap","styleName","className_1","canUseDOM","getWindow","rootElement","Async","parent","onError","timeoutId","targetElement","immediateId","setImmediateCallback","wait","waitMS","leading","trailing","lastExecuteTime","lastResult","lastArgs","userCall","waitLength","resultFunction","noOpFunction","maxWait","lastCallTime","markExecuted","invokeFunction","executeImmediately","maxWaitDelta","maxWaitExpired","pending","flush","animationFrameId","animationFrameCallback","isVirtualElement","getVirtualParent","child","getParent","allowVirtualParents","elementContains","isContained","nextParent","findElementRecursive","matchFunction","elementContainsAttribute","attribute","elementMatch","testElement","getActiveElement","getChildren","allowVirtualChildren","getEventTarget","DATA_PORTAL_ATTRIBUTE","setPortalAttribute","portalContainsElement","setVirtualParent","virtualChild","virtualParent","oldParent","getDocument","IS_FOCUSABLE_ATTRIBUTE","IS_VISIBLE_ATTRIBUTE","FOCUSZONE_ID_ATTRIBUTE","FOCUSZONE_SUB_ATTRIBUTE","getFirstFocusable","currentElement","includeElementsInFocusZones","includeShadowRoots","getNextElement","getLastFocusable","getPreviousElement","getFirstTabbable","checkNode","getLastTabbable","focusFirstChild","bypassHiddenElements","focusAsync","suppressParentTraversal","traverseChildren","allowFocusRoot","tabbable","isCurrentElementVisible","isElementVisible","isElementFocusZone","isElementFocusSubZone","lastElementChild","childMatch","isElementTabbable","childMatchSiblingMatch","childMatchParent","childMatchParentMatch","siblingMatch","suppressChildTraversal","checkElementVisibility","isElementVisibleAndNotHidden","firstElementchild","visibilityAttribute","theWin","checkTabIndex","checkShadowRoot","tabIndex","tabIndexAttributeValue","isFocusableAttribute","isTabIndexSet","delegatesFocus","doesElementContainFocus","currentActiveElement","shouldWrapFocus","noWrapDataAttribute","theDoc","animationId","getFocusableByIndexPath","path_1","nextChild","getElementIndexPath","fromElement","toElement","parent_1","getRect","rect","on","shallowCompare","filteredAssign","isAllowed","sourceObject","omit","exclusions","EventGroup","eventArgs","bubbleEvent","retVal","ev","evObj","eventRecords","eventRecordList","listIndex","record","declaredEvents","useCapture","eventRecord","processElementEvent","processObjectEvent","targetArrayLookup","targetArray","_scrollbarWidth","_bodyScrollDisabledCount","DisabledScrollClassName","DATA_IS_SCROLLABLE_ATTRIBUTE","allowScrollOnElement","_previousClientY","_element","computedStyles","_saveClientY","_preventOverscrolling","clientY","scrollableParent","findScrollableParent","scrollTop","isColumnReverse","allowOverscrollOnElement","_allowElementScroll","_disableIosBodyScroll","disableBodyScroll","enableBodyScroll","getScrollbarWidth","scrollDiv","startingElement","overflowY","warn","warnConditionallyRequiredProps","requiredProps","conditionalPropName","condition","requiredProps_1","requiredPropName","BaseComponent","_makeAllSafe","prevProps","prevState","disposable","funcNameRegex","refName","currentProps","newProps","deprecationMap","mutuallyExclusiveMap","React.Component","methodNames","_makeSafe","classMethod","prototypeMethod","nullRender","DelayedRender","React.Children","GLOBAL_SETTINGS_PROP_NAME","CALLBACK_STATE_PROP_NAME","_counter","GlobalSettings","globalSettings","_getGlobalSettings","callbacks","changeDescription","_getCallbacks","globalObj","KeyCodes","Rectangle","appendFunction","functions","mergeAriaAttributeValues","ariaAttributes","mergedAttribute","findIndex","fromIndex","find","addElementAtIndex","itemToAdd","flatten","arraysEqual","array1","array2","getItem","setItem","RTL_LOCAL_STORAGE_KEY","_isRTL","theme","savedRTL","mergeStylesSetRTL","persistSetting","getRTLSafeKeyCode","MAX_CACHE_COUNT","DEFAULT_SPECIFICITY_MULTIPLIER","_memoizedClassNames","classNamesFunction","windowMap","styleCalcCount","getClassNamesCount","currentMemoizedClassNames","getClassNames","rtl","disableCaching","_traverseMap","_traverseEdge","_normalizeValue","inputs","cachedInputsFromStyled","_initializedStylesheetResets","_resetCounter","_emptyObject","_dictionary","_weakMap","resetMemoizations","memoizeFunction","maxCacheSize","ignoreNullOrUndefinedResult","rootNode","cacheSize","localResetCounter","currentNode","_createNode","_normalizeArg","createMemoizer","getValue","memoizedGetValue","createComposedComponent","outer","Outer","outerMemoizer","inner","Inner","innerMemoizer","defaultRender","InnerWithDefaultRender","innerProps","React.createElement","OuterWithDefaultRender","outerProps","componentAsMemoizer","composeComponentAs","isControlled","valueProp","css","CustomizationsGlobalKey","NO_CUSTOMIZATIONS","_allSettings","_events","Customizations","scopeName","localSettings","localScopedSettings","globalScopedSettings","properties_1","suppressUpdate","onChange","CustomizerContext","React.createContext","mergeSettings","oldSettings","newSettings","mergeSettingsWith","_isSettingsFunction","_settingsMergeWith","mergeScopedSettings","_scopedSettingsMergeWith","scopedSettingsFromProps","oldScopedSettings","newScopedSettings","mergeCustomizations","parentContext","customizations","Customizer","contextTransform","newContext","hoistStatics","dest","noopShadow","noopRootStylesheets","noopUndefined","getNewContext","MergeStylesDefaultContext","useMergeStylesHooks","React.useContext","MergeStylesShadowRootContext","useHasMergeStylesShadowRootContext","useMergeStylesShadowRootContext","MergeStylesShadowRootConsumer","useAdoptedStylesheetEx","useMergeStylesRootStylesheets","useWindow","shadowCtx","rootMergeStyles","WindowContext","useDocument","memoizedMakeShadowConfig","mergeComponentStyles","defaultStyles","componentStyles","customizable","concatStyles","ComposedComponent","resultClass","ComponentWithInjectedProps","defaultProps","componentProps","mergedStyles","useCustomizationSettings","useForceUpdate","inCustomizerContext","React.useEffect","React.useState","setValue","extendComponent","methods","CURRENT_ID_PROPERTY","DEFAULT_ID_STRING","getId","resetIds","toObjectMap","items_1","keys_1","baseElementEvents","baseElementProperties","htmlElementProperties","labelProperties","audioProperties","videoProperties","olProperties","liProperties","anchorProperties","buttonProperties","inputProperties","textAreaProperties","selectProperties","optionProperties","tableProperties","trProperties","thProperties","tdProperties","colGroupProperties","colProperties","formProperties","iframeProperties","imgProperties","divProperties","getNativeProps","allowedPropNames","excludedPropNames","keys_2","isNativeProp","nativeElementMap","getNativeElementProps","tagName","REACT_LIFECYCLE_EXCLUSIONS","hoistMethods","destination","hoisted","unhoistMethods","initializeComponentRef","_onMount","_onUpdate","_onUnmount","_setComponentRef","componentRef","DirectionalKeyCodes","isDirectionalKeyCode","which","IsFocusVisibleClassName","IsFocusHiddenClassName","updateClassList","enabled","setFocusVisibility","registeredProviders","mountCounters","callbackMap","setMountCounters","currValue","setCallbackMap","onMouseDown","_onMouseDown","onPointerDown","_onPointerDown","onKeyDown","_onKeyDown","onKeyUp","_onKeyUp","FocusRectsContext","useFocusRects","rootRef","FocusRects","FocusRectsProvider","providerRef","layerRoot","inheritParentContext","React.useMemo","React.Fragment","UNWANTED_ENCLOSURES_REGEX","UNWANTED_CHARS_REGEX","PHONENUMBER_REGEX","MULTIPLE_WHITESPACES_REGEX","UNSUPPORTED_TEXT_REGEX","getInitialsLatin","isRtl","initials","cleanupDisplayName","getInitials","allowPhoneInitials","_language","STORAGE_KEY","getLanguage","persistenceType","savedLanguage","localStorage.getItem","sessionStorage.getItem","calculatePrecision","precisionRound","precision","exp","_merge","circularReferences","isCircularReference","isIOS","tagsToIgnore","modalize","targetDocument","affectedNodes","sibling","ariaHidden","unmodalize","originalValue","isMacResult","isMac","reset","hasHorizontalOverflow","hasVerticalOverflow","hasOverflow","createComposedRenderFunction","memoizer","composeRenderFunction","safeRequestAnimationFrame","component","activeTimeouts","SELECTION_CHANGE","SELECTION_ITEMS_CHANGE","SelectionMode","SelectionDirection","Selection","onSelectionChanged","onItemsChanged","getKey","canSelectItem","selectionMode","defaultGetKey","isEnabled","suppressChange","isModal","shouldClear","newKeyToIndexMap","newUnselectableIndices","hasSelectionChanged","haveItemsChanged","newExemptedIndicies","newExemptedCount","indexProperty","exemptKey","newIndex","endIndex","selectableCount","isAllSelected","isSelected","shouldAnchor","isExempt","canSelect","anchorIndex","newAnchorIndex","clearSelection","isRangeSelected","preserveModalState","FORMAT_ARGS_REGEX","FORMAT_REGEX","replaceFunc","DefaultFields","styled","baseStyles","getProps","pure","Wrapped","React.forwardRef","forwardedRef","React.useRef","customizedStyles","rest","additionalProps","useStyled","propStyles","concatenatedStyles","pureComponent","React.memo","isIE11","getPropsWithDefaults","propsWithoutDefaults","createResolver","createMergedRef","newRefs","useIsomorphicLayoutEffect","React.useLayoutEffect","ICON_SETTING_NAME","_iconSettings","normalizeIconName","registerIcons","iconSubset","subset","icons","iconName","normalizedIconName","_warnDuplicateIcon","registerIconAlias","mappedToName","getIcon","icon","_missingIcons","_missingIconsTimer","warningDelay","maxIconsInMessage","makeSemanticColors","isInverted","depComments","semanticColors","fullSemanticColors","getSemanticColors","_fixDeprecatedSlots","white","black","themePrimary","themeDark","themeDarker","themeDarkAlt","themeLighter","neutralLight","neutralLighter","neutralDark","neutralQuaternary","neutralQuaternaryAlt","neutralPrimary","neutralSecondary","neutralSecondaryAlt","neutralTertiary","neutralTertiaryAlt","neutralLighterAlt","accent","mergeThemes","partialTheme","mergedTheme","fontStyle","DefaultPalette","Depths","DefaultEffects","DefaultSpacing","EASING_FUNCTION_1","EASING_FUNCTION_2","DURATION_1","DURATION_2","DURATION_3","DURATION_4","FADE_IN","FADE_OUT","SLIDE_RIGHT_IN10","_createSlideInX","SLIDE_RIGHT_IN20","SLIDE_RIGHT_IN40","SLIDE_RIGHT_IN400","SLIDE_LEFT_IN10","SLIDE_LEFT_IN20","SLIDE_LEFT_IN40","SLIDE_LEFT_IN400","SLIDE_UP_IN10","_createSlideInY","SLIDE_UP_IN20","SLIDE_DOWN_IN10","SLIDE_DOWN_IN20","SLIDE_RIGHT_OUT10","_createSlideOutX","SLIDE_RIGHT_OUT20","SLIDE_RIGHT_OUT40","SLIDE_RIGHT_OUT400","SLIDE_LEFT_OUT10","SLIDE_LEFT_OUT20","SLIDE_LEFT_OUT40","SLIDE_LEFT_OUT400","SLIDE_UP_OUT10","_createSlideOutY","SLIDE_UP_OUT20","SLIDE_DOWN_OUT10","SLIDE_DOWN_OUT20","SCALE_UP100","SCALE_DOWN98","SCALE_DOWN100","SCALE_UP103","ROTATE90","ROTATE_N90","AnimationVariables","AnimationStyles","_createAnimation","animationName","animationDuration","animationTimingFunction","fromX","fromY","toX","toY","LocalizedFontNames","LocalizedFontFamilies","FontSizes","FontWeights","IconFontSizes","FontFamilyFallbacks","defaultFontFamily","LanguageToFontMap","_fontFamilyWithFallbacks","fontFamily","_getLocalizedFontFamily","language","lang","_createFont","weight","createFontStyles","localeCode","localizedFont","fontFamilyWithFallback","fontStyles","DefaultBaseUrl","DefaultFontStyles","_registerFontFace","fontWeight","localFontName","localFontSrc","_registerFontFaceSet","cdnFolder","cdnFontName","urlBase","registerDefaultFontFaces","fontUrl","_getFontBaseUrl","createTheme","baseTheme","HighContrastSelector","HighContrastSelectorWhite","ScreenWidthMinSmall","ScreenWidthMinMedium","ScreenWidthMinLarge","ScreenWidthMinXLarge","ScreenWidthMinXXLarge","ScreenWidthMaxSmall","ScreenWidthMaxMedium","ScreenWidthMinUhfMobile","getScreenSelector","minSelector","maxSelector","getHighContrastNoAdjustStyle","ZIndexes","getFocusStyle","insetOrOptions","highContrastStyle","borderColor","outlineColor","isFocusedOnly","borderRadius","_getFocusStyleInternal","inset","pointerEvents","focusClear","getInputFocusStyle","borderType","borderPosition","isBorderBottom","hiddenContentStyle","DEFAULT_DURATION","DEFAULT_DELAY","DEFAULT_ITERATION_COUNT","_continuousPulseStepOne","beaconColorOne","innerDimension","_continuousPulseStepTwo","borderWidth","_continuousPulseStepThree","_continuousPulseStepFour","beaconColorTwo","outerDimension","_continuousPulseStepFive","_continuousPulseAnimationDouble","_continuousPulseAnimationSingle","_createDefaultAnimation","delayLength","PulsingBeaconAnimationStyles","_getGlobalClassNames","classNames","disableGlobalClassNames","styleSheet","acc","getGlobalClassNames","_root","_styleNonce","_themeState","initializeThemeState","_themeTokenRegex","measure","loadStyles","loadAsync","styleParts","splitStyles","flushTimer","asyncLoadStyles","applyThemableStyles","styleArrays","mergedStyleArray","stylesArray","styleRecord","resolveThemableArray","registerStyles","loadTheme","reloadStyles","clearStyles","clearStylesInternal","records","themableStyles","splitStyleArray","themable","resolvedArray","themeSlot","themedValue","tokenMatch","styleArray","styleString","_theme","_onThemeChangeCallbacks","ThemeSettingName","initializeThemeInCustomizations","getTheme","legacyLoadTheme","_loadFonts","lines","fontName","normalize","noWrap","getPlaceholderStyles","AnimationClassNames","FLUENT_CDN_BASE_URL","DEFAULT_PERSONA_SIZE","COMPACT_PERSONA_SIZE","DEFAULT_ICON_SIZE","COMPACT_ICON_SIZE","ANIMATION_INNER_DIMENSION","ANIMATION_OUTER_DIMENSION","ANIMATION_BORDER_WIDTH","fadeIn","slideIn","getStyles","customStyles","animateBeaconSignal","isCompact","continuousPulse","continuousPulseAnimation","slideInAnimation","fadeInAnimation","ActivityItemStyles","__shadowConfig__","restStyles","activityPersonas","DirectionalHint","RectangleEdge","Position","_createPositionData","targetEdge","alignmentEdge","isAuto","DirectionalDictionary","_isRectangleWithinBounds","boundingRect","_getOutOfBoundsEdges","outOfBounds","_getEdgeValue","edge","_setEdgeValue","_getCenterValue","edges","_getFlankingEdges","_getRelativeEdgeValue","_getRelativeRectEdgeValue","_getRelativeEdgeDifference","hostRect","edgeDifference","_moveEdge","maintainSize","difference","returnRect","_alignEdges","gap","_alignOppositeEdges","oppositeEdge","adjustedGap","_isEdgeInBounds","bounds","adjustedRectValue","_getOutOfBoundsDegree","breakingEdges","breakingEdges_1","_canScrollResizeToFitEdge","bounding","minimumScrollResizeHeight","_flipToFit","positionData","shouldScroll","directions","currentEstimate","currentEdge","currentAlignment","oobDegree","bestEdge","bestAlignment","currentOOBDegree","_estimatePosition","_flipAlignmentEdge","elementEstimate","coverTarget","elementRectangle","newEstimate","_adjustFitWithinBounds","directionalHintFixed","alignTargetEdge","fixedEdge","flippedElementEstimate","_alignOutOfBoundsEdges","outOfBoundsEdges","preserveEdge","outOfBoundsEdges_1","direction","edgeAttempt","inBounds","_centerEdgeToPoint","point","positiveEdge","elementMiddle","distanceToMiddle","elementToPosition","estimatedElementPosition","elementEdge","targetMiddlePoint","_finalizeReturnEdge","returnEdge","_isEdgeOnBounds","_finalizeElementPosition","hostElement","doNotFinalizeReturnEdge","forceWithinBounds","returnValue","_getRectangleFromElement","getOppositeEdge","_calculateActualBeakWidthInPixels","beakWidth","_getPositionData","directionalHint","directionalHintForRTL","previousPositions","positionInformation","_getAlignmentData","getClosestEdge","targetCenter","boundingCenter","negativeEdge","_positionElementWithinBounds","_finalizeBeakPosition","elementPosition","positionedBeak","actualElement","beakEdgeDifference","showBeak","_positionBeak","beakTargetPoint","elementBounds","beakPosition","clientRect","_getRectangleFromIRect","_getTargetRect","targetRectangle","rectOrPoint","top_1","outOfBounds_1","_positionElementRelative","targetRect","positionedElement","_finalizePositionData","finalizedElement","_calculateGapSpace","isBeakVisible","gapSpace","_positionCallout","callout","positionProps","beakPositioned","finalizedBeakPosition","_positionCard","_getRectangleFromTarget","mouseTarget","elementTarget","rectOrPointTarget","positionCallout","positionCard","_getBoundsFromTargetWindow","targetWindow","segments_1","getBoundsFromTargetWindow","calculateGapSpace","getRectangleFromTarget","asyncRef","useConst","useBoolean","initialState","setTrue","setFalse","toggle","useControllableValue","controlledValue","defaultUncontrolledValue","valueRef","onChangeRef","setValueOrCallOnChange","update","useEventCallback","callbackRef","useId","providedId","useMergedRefs","refs","mergedCallback","React.useCallback","refs_1","useOnEvent","dispose","usePrevious","useRefEffect","initial","createRefCallback","refCallback","useSetTimeout","timeoutIds","useTarget","previousTargetProp","targetRef","currentDoc","useUnmount","unmountRef","useScrollbarAsync","root","async","needsVerticalScrollBarState","setNeedsVerticalScrollBar","needsVerticalScrollBar","rootHeight","firstChildHeight","defaultFocusRestorer","originalElement","containsFocus","useRestoreFocus","onRestoreFocus","originalFocusedElement","useHideSiblingNodes","shouldHideSiblings","Popup","mergedRootRef","role","ariaLabel","ariaLabelledBy","ariaDescribedBy","onDismiss","useDocumentEx","useWindowEx","getDocumentEx","getWindowEx","COMPONENT_NAME","ANIMATIONS","BEAK_ORIGIN_POSITION","OFF_SCREEN_STYLE","ARIA_ROLE_ATTRIBUTES","DEFAULT_PROPS","useBounds","minPagePadding","targetWindowResized","setTargetWindowResized","cachedBounds","getBounds","currentBounds","useMaxHeight","positions","calloutMaxHeight","finalHeight","hidden","maxHeight","setMaxHeight","topBounds","bottomBounds","calculatedHeight","usePositions","calloutElement","popupRef","setPositions","positionAttempts","previousTarget","onPositioned","hideOverflow","preferScrollResizePositioning","localRef","popupStyles","popupOverflowY","timerId_1","dupeCalloutElement","isOverflowYHidden","newPositions","arePositionsEqual","useAutoFocus","setInitialFocus","hasPositions","timerId_2","useDismissHandlers","preventDismissOnScroll","preventDismissOnResize","preventDismissOnLostFocus","dismissOnTargetClick","shouldDismissOnWindowFocus","preventDismissOnEvent","isMouseDownOnPopup","mouseDownHandlers","positionsExists","dismissOnScroll","dismissOnClickOrScroll","dismissOnResize","dismissOnLostFocus","eventPaths","isEventTargetOutsideCallout","dismissOnTargetWindowBlur","disposablesPromise","disposables_1","CalloutContentBase","calloutWidth","calloutMaxWidth","calloutMinWidth","doNotLayer","backgroundColor","onScroll","shouldRestoreFocus","onLayerMounted","popupProps","mergedPopupRefs","setCalloutElement","calloutCallback","calloutEl","mouseDownOnPopup","mouseUpOnPopup","isForcedInBounds","cssPositions","overflowYHidden","beakVisible","overflowStyle","visibilityStyle","getBeakPosition","previousProps","nextProps","beakPositionStyle","prevElementPositions","newElementPosition","comparePositions","newElementPositions","oldPositionEdge","newPositionEdge","getBeakStyle","GlobalClassNames","effects","CalloutContent","PortalCompatContext","portalCompatContextDefaultValue","usePortalCompat","_React_useContext","getFabricTheme","getDir","dir","contextDir","pageDir","componentDir","FabricBase","applyTheme","applyThemeToBody","useApplyThemeToBody","useRenderedContent","Root","divProps","rootDir","needsTheme","renderedContent","bodyThemed","currentDoc_1","inheritFont","preventBlanketFontInheritance","Fabric","_layersByHostId","_layerHostsById","defaultHostId","_defaultHostSelector","registerLayer","hostId","layerHosts","layerHosts_1","layerHost","unregisterLayer","layers","layerHosts_2","getLayerHost","createDefaultLayerHost","shadowRoot","getDefaultTarget","getFocusVisibility","LayerBase","registerPortalEl","mergedRef","layerRef","fabricElementRef","focusContext","needRaiseLayerMount","setNeedRaiseLayerMount","focusRectsRef","isFocusVisible","eventBubblingEnabled","fabricProps","insertFirst","onLayerDidMount","onLayerWillUnmount","fabricRef","getHost","defaultHostSelector","removeLayerElement","elem","createLayerElement","unregisterPortalEl","ReactDOM.createPortal","getFilteredEvents","filteredEventProps","onFilterEvent","isNotHost","Layer","Callout","layerProps","useComponentRef","previouslyFocusedElement","focusFTZ","React.useImperativeHandle","FocusTrapZone","firstBumper","lastBumper","isFirstRender","internalState","disabled","disableFirstFocus","forceFocusInsideTrap","focusPreviouslyFocusedInnerElement","firstFocusableSelector","firstFocusableTarget","disableRestoreFocus","isClickableOutsideFocusTrap","enableAriaHiddenSiblings","bumperProps","focusElementAsync","previouslyFocusedElementInTrapZone","firstFocusableChild","focusSelector","focusBumper","isFirstBumper","nextFocusable","onRootBlurCapture","relatedTarget","onRootFocusCapture","returnFocusToInitiator","elementToFocusOnDismiss","activeElement","forceFocusOrClickInTrap","disposables","TooltipBase","calloutProps","maxWidth","onRenderContent","fonts","tooltipGapSpace","Tooltip","TooltipDelay","TooltipOverflowMode","TooltipHostBase","React.createRef","overflowMode","overflowElement","delayTime","closeDelay","isTooltipVisible","setAriaDescribedBy","tooltipProps","tooltipId","tooltipRenderProps","tooltipContent","showTooltip","TooltipHost","IconType","ImageFit","ImageCoverStyle","ImageLoadState","SVG_REGEX","KEY_PREFIX","useLoadState","imageElement","onLoadingStateChange","onLoad","src","loadState","setLoadState","isLoaded","onImageLoaded","onImageError","ImageBase","frameElement","imageProps","alt","shouldFadeIn","shouldStartVisible","imageFit","maximizeFrame","loading","coverStyle","useCoverStyle","previousLoadState","computeCoverStyle","desiredRatio","naturalRatio","isLandscape","isCenter","isContain","isCover","isCenterContain","isCenterCover","isNone","isError","isNotImageFit","ImageFitStyles","supportsObjectFit","fallbackObjectFitStyles","Image","MS_ICON","iconClassName","isPlaceholder","isImage","getIconContent","FontIcon","iconContent","mergeImageProps","nativeProps","accessibleName","containerProps","finalChildren","React.cloneElement","IconBase","imageErrorAs","iconContentChildren","RootType","imageLoadError","ImageType","hasName","finalIconContentChildren","Icon","ImageIcon","altText","imageNameProps","PersonaSize","PersonaPresence","PersonaInitialsColor","personaSize","personaPresenceSize","sizeBoolean","sizeToPixels","presenceBoolean","presence","coinSizeFontScaleFactor","coinSizePresenceScaleFactor","presenceMaxSize","presenceFontMaxSize","PersonaPresenceBase","coinSize","isOutOfOffice","presenceTitle","presenceColors","renderIcon","presenceHeightWidth","presenceFontSize","coinSizeWithPresenceIconStyle","coinSizeWithPresenceStyle","PersonaPresenceEnum","determineIcon","oofIcon","presenceColorAvailable","presenceColorAway","presenceColorBusy","presenceColorDnd","presenceColorOffline","presenceColorOof","presenceColorBackground","isOpenCirclePresence","borderSizeForSmallPersonas","borderSizeForLargePersonas","borderSize","makeSizeStyle","makeBeforeBorderStyle","makeOpenCircleIconStyle","color","COLOR_SWATCHES_LOOKUP","COLOR_SWATCHES_NUM_ENTRIES","getInitialsColorFromName","hashCode","iLen","shift","personaInitialsColorToHexCode","personaInitialsColor","getPersonaInitialsColor","primaryText","initialsColor","initialsColorCode","getInitialsStyles","initialsTextColor","showUnknownPersonaCoin","useImageLoadState","onPhotoLoadingStateChange","imageUrl","imageLoadState","setImageLoadstate","PersonaCoinBase","renderCoin","getCoinRenderer","coinProps","onRenderCoin","onRenderPersonaCoin","onRenderInitials","renderPersonaCoinInitials","showInitialsUntilImageLoads","divCoinProps","coinSizeStyle","hideImage","personaPresenceProps","shouldRenderInitials","imageAlt","imageShouldFadeIn","imageShouldStartVisible","dimension","imageInitials","palette","unknownPersonaBackgroundColor","unknownPersonaFontColor","PersonaCoin","PersonaBase","getText","renderElement","elementClassNames","renderFunction","defaultRenderFunction","onRenderText","tooltip","onInternalRenderPersonaCoin","providedCoinProps","onInternalRenderPrimaryText","onInternalRenderSecondaryText","onInternalRenderTertiaryText","onInternalRenderOptionalText","hidePersonaDetails","onRenderOptionalText","onRenderPrimaryText","onRenderSecondaryText","onRenderTertiaryText","showSecondaryText","personaCoinProps","personaDetails","showSecondaryTextDefaultHeight","sharedTextStyles","Persona","ActivityItem","activityDescription","comments","personaElement","personaList_1","showSize16Personas_1","personaLimit_1","style_1","person","onRenderIcon","onRenderActivityDescription","onRenderComments","onRenderTimeStamp","SELECTION_FORWARD","SELECTION_BACKWARD","Autofill","inputValue","nativeEventComposing","isComposing","composing","onInputChange","onInputValueChange","updatedInputValue","inputElement","_1","suggestedDisplayValue","shouldSelectFullInputValueInComponentDidUpdate","preventValueSelection","differenceIndex","document","isFocused","_doesTextStartWith","shouldSelectFullRange","inel","isComposed","_getDisplayValue","displayValue","startWith","FocusZoneTabbableElements","FocusZoneDirection","IS_ENTER_DISABLED_ATTRIBUTE","TABINDEX","NO_VERTICAL_WRAP","NO_HORIZONTAL_WRAP","LARGE_DISTANCE_FROM_CENTER","LARGE_NEGATIVE_DISTANCE_FROM_CENTER","focusZoneStyles","focusZoneClass","raiseClickFromKeyboardEvent","getRootClass","_allInstances","_outerZones","ALLOWED_INPUT_TYPES","ALLOW_VIRTUAL_ELEMENTS","FocusZone","onActiveElementChanged","doNotAllowFocusEventToPropagate","stopFocusPropagation","onFocusNotification","shouldFocusInnerElementWhenReceivedFocus","defaultTabbableElement","isImmediateDescendant","newActiveElement","parentElement","maybeElementToFocus","initialElementFocused","isInnerZoneKeystroke","pagingSupportDisabled","shouldEnterInnerZone","innerZone","focusChanged","tabWithDirection","firstChild","lastChild","isForward","activeRect","leftAlignment","targetRectTop","activeRectBottom","targetRectBottom","activeRectTop","isValidCandidateOnpagingDown","isValidCandidateOnpagingUp","shouldRaiseClicksFallback","elementToFocus","tag","elementType","rootProps","Tag","forceIntoFirstElement","ownerZoneElement","ownerZone","forceAlignment","onBeforeFocus","shouldReceiveFocus","focusedElement","isParked","previousActiveElement","getDistanceFromCenter","useDefaultWrap","candidateDistance","candidateElement","changedFocus","isBidirectional","elementDistance","targetTop","distance","shouldWrap","topBottomComparison","targetBottom","pagesize","isElementPassedPageSizeOnPagingDown","isElementPassedPageSizeOnPagingUp","isHorizontal","isVertical","childNodes","childIndex","selectionStart","selectionEnd","isReadonly","useLink","as","onClick","underline","mergedRootRefs","_onClick","rootType","slots","slotProps","adjustPropsForRootType","link","restProps","LinkBase","isButton","isDisabled","isUnderlined","linkColor","linkInteractedColor","linkDisabledColor","focusBorderColor","Link","ContextualMenuItemType","getIsChecked","hasSubmenu","isItemDisabled","getMenuItemAriaRole","isChecked","canCheck","defaultIconRenderer","iconProps","renderItemIcon","hasIcons","renderCheckMarkIcon","onCheckmarkClick","isItemChecked","renderItemName","renderSecondaryText","renderSubMenuIcon","ContextualMenuItemBase","openSubMenu","getSubmenuTarget","submenuTarget","dismissSubMenu","dismissAll","dismissMenu","renderContent","defaultRenders","getDividerClassNames","CONTEXTUAL_MENU_ITEM_HEIGHT","MediumScreenSelector","getMenuItemStyles","ContextualMenuItemBackgroundHoverColor","ContextualMenuItemTextHoverColor","ContextualMenuItemBackgroundSelectedColor","ContextualMenuItemDividerColor","menuItemStyles","CONTEXTUAL_SPLIT_MENU_MINWIDTH","getSplitButtonVerticalDividerClassNames","getItemClassNames","expanded","checked","isAnchorLink","knownIcon","itemClassName","dividerClassName","subMenuClassName","primaryDisabled","getItemStyles","ContextualMenuItem","ContextualMenuItemWrapper","onItemMouseEnter","onItemClickBase","onItemMouseLeave","onItemKeyDown","onItemMouseMove","KTP_PREFIX","KTP_SEPARATOR","DATAKTP_TARGET","DATAKTP_EXECUTE_TARGET","KTP_LAYER_ID","KeytipEvents","KeytipManager","delayUpdatingKeytipChange","keytipProps","persisted","uniqueKeytip","event_1","uniqueID","newKeytipProps","oldKeyTip","keytipToRemove","fullSequence","parentKeytip","overflowButtonSequences","keytipSequences","sequencesToID","keySequences","keySequence","mergeOverflows","overflowKeySequences","overflowSequenceLen","overflowSequence","newKeySequences","getAriaDescribedBy","describedby","useKeytipData","uniqueId","keytipManager","nativeKeytipProps","getKeytipData","describedByPrepend","keytipId","KeytipData","keytipDataProps","ContextualMenuAnchor","onItemClick","ariaDescription","focusableElementIndex","totalItemCount","hasCheckmarks","expandedMenuItemKey","ChildrenRenderer","anchorRel","itemHasSubmenu","itemProps","ariaDescribedByIds","additionalItemProperties","keytipAttributes","ContextualMenuButton","contextualMenuItemAs","onItemMouseDown","defaultRole","buttonNativeProperties","itemRole","itemButtonProperties","names","VerticalDividerBase","deprecatedGetClassNames","VerticalDivider","TouchIdleDelay","ContextualMenuSplitButton","executeItemClick","ariaChecked","splitButton","itemComponentProps","buttonProps","onTap","BaseDecorator","composedComponentInstance","ResponsiveMode","RESPONSIVE_MAX_CONSTRAINT","_lastMode","getInitialResponsiveMode","withResponsiveMode","WithResponsiveMode","responsiveMode","getResponsiveMode","getWidthOfCurrentWindow","currentWindow","useResponsiveMode","elementRef","overrideResponsiveMode","lastResponsiveMode","setLastResponsiveMode","onResize","newResponsiveMode","MenuContext","getContextualMenuItemClassNames","getItemCount","itemCount","getSubmenuItems","overrideItems","items_2","subItem","contextItem","getOnClickWithOverrideTarget","canAnyMenuItemsCheck","submenuItem","NavigationIdleDelay","_getMenuItemStylesFunction","useVisibility","onMenuDismissed","onMenuOpened","previousHidden","onMenuOpenedRef","onMenuClosedRef","propsRef","useSubMenuState","dismiss","menuTarget","setExpandedMenuItemKey","setSubmenuTarget","shouldFocusOnContainer","setShouldFocusOnContainer","subMenuId","closeSubMenu","focusContainer","submenuItemKey","onSubMenuDismiss","useOnSubmenuDismiss","getSubmenuProps","findItemByKeyFromItems","submenuProps","useShouldUpdateFocusOnMouseMove","delayUpdateFocusOnHover","shouldUpdateFocusOnMouseEvent","gotMouseMove","onMenuFocusCapture","usePreviousActiveElement","tryFocusPreviousActiveElement","newElement","useKeyHandlers","isSubMenu","checkForNoWrap","focusZoneDirection","lastKeyDownWasAltOrMeta","keyHandler","shouldHandleKey","dismissAllMenus","handled","shouldCloseSubMenu","submenuCloseKey","shouldHandleKeyDown","isAltOrMeta","shouldHandleKeyUp","keyPressIsAltOrMetaAlone","onMenuKeyDown","hasModifier","isUp","isDown","openKey","useScrollHandler","asyncTracker","isScrollIdle","scrollIdleTimeoutId","isMountedRef","useSubmenuEnterTimer","subMenuHoverDelay","enterTimerRef","cancelSubMenuTimer","startSubmenuTimer","onTimerExpired","useMouseHandlers","subMenuEntryTimer","onItemMouseEnterBase","shouldIgnoreMouseEvent","updateFocusOnMouseEvent","onItemMouseMoveBase","onMouseItemLeave","onAnchorClick","overrideTarget","shouldDismiss","ContextualMenuBase","menuId","onDefaultRenderMenuList","menuListProps","menuClassNames","indexCorrection","menuItem","renderMenuItem","indexIncrease","renderFocusZone","adjustedFocusZoneProps","renderedItems","subMenuIconClassName","itemClassNames","itemStyleProps","renderSeparator","headerItem","renderHeaderMenuItem","renderListItem","renderSectionItem","defaultRenderNormalItem","renderNormalItem","defaultMenuItemRenderer","sectionItem","sectionProps","groupProps","headerContextualMenuItem","ariaLabelledby","id_1","id_2","correctedIndex_1","contextualMenuItem","itemsIndex","title","fromSection","commonProps","ContextualMenuAnchorAs","ContextualMenuSplitButtonAs","ContextualMenuButtonAs","divHtmlProperties","labelElementId","useTargetWidth","useTargetAsMinWidth","shouldFocusOnMount","onRenderSubMenu","onDefaultRenderSubMenu","_l","onRenderMenuList","focusZoneProps","getMenuClassNames","itemsHaveIcons","contextualMenuItems","contextualMenuItems_1","contextMenuStyle","targetAsHtmlElement","targetBoundingRect","targetWidth","totalItemCount_1","calloutStyles_1","menuContext","subMenuProps","items_3","LocalContextualMenu","ContextualMenu","ButtonGlobalClassNames","getBaseButtonClassNames","variantClassName","menuIconClassName","hasMenu","isSplit","isExpanded","SplitButtonGlobalClassNames","getSplitButtonClassNames","BaseButton","secondaryText","onRenderDescription","menuIconProps","menuProps","MenuType","container","singleTouchTarget","onMenuClick","currentShouldFocusOnMount","allowDisabledFocus","menuHidden","isPrimaryButtonDisabled","_ariaDescriptionId","_labelId","_descriptionId","renderAsAnchor","resolvedAriaLabel","dataIsFocusable","isCheckboxTypeRole","checkedOrPressedValue","onRenderAriaDescription","onRenderChildren","onRenderMenu","onRenderMenuIcon","Button","Content","persistMenu","renderPersistedMenuHiddenOnMount","primaryActionButtonProps","getBaseSplitButtonClassNames","SplitButton","splitButtonMenuProps","splitButtonAriaLabel","splitButtonProps","noOutline","iconStyle","fontSize","border","disabledBackground","disabledText","buttonHighContrastFocus","_m","_o","_p","_q","_r","_s","splitButtonDividerBaseStyles","splitButtonStyles","standardStyles","buttonBackground","buttonBackgroundPressed","buttonBackgroundHovered","buttonBackgroundDisabled","buttonText","buttonTextHovered","buttonTextDisabled","buttonTextChecked","buttonTextCheckedHovered","primaryStyles","DEFAULT_BUTTON_MIN_HEIGHT","DEFAULT_BUTTON_MIN_WIDTH","primary","baseButtonStyles","getBaseButtonStyles","getSplitButtonStyles","defaultButtonStyles","DefaultButton","DEFAULT_BUTTON_HEIGHT","DEFAULT_PADDING","actionButtonStyles","ActionButton","compoundButtonStyles","standardCompoundTheme","primaryCompoundTheme","CompoundButton","iconButtonStyles","IconButton","PrimaryButton","focusInset","focusColor","baseSplitButtonStyles","commandButtonHighContrastFocus","commandButtonStyles","CommandBarButton","CommandButton","ResizeGroupDirection","RESIZE_DELAY","getMeasurementCache","measurementsCache","getNextResizeGroupStateProvider","measurementCache","_measurementCache","_containerDimension","_getMeasuredDimension","measuredData","getElementToMeasureDimension","cachedDimension","measuredDimension","_shrinkContentsUntilTheyFit","onReduceData","dataToMeasure","nextMeasuredData","_growDataUntilItDoesNotFit","onGrowData","_updateContainerDimension","newDimension","fullDimensionData","renderedData","nextState","getNextState","currentState","newContainerDimension","shouldRenderDataForMeasurement","getInitialResizeGroupState","MeasuredContext","hiddenDivStyles","hiddenParentStyles","resizeDataReducer","useResizeState","nextResizeGroupStateProvider","initialStateData","React.useReducer","resizeData","dispatchResizeDataAction","stateRef","updateResizeState","remeasure","useResizingBehavior","initialHiddenDiv","updateHiddenDiv","hasRenderedContent","containerDimension","refToMeasure","measuredBoundingRect","dataNeedsMeasuring","isInitialMeasure","measuredContextValue","ResizeGroupBase","onRenderData","ResizeGroup","OVERFLOW_KEY","nullFunction","nonActionableItemProps","BreadcrumbBase","renderedOverflowItems","overflowIndex","movedItem","maxDisplayedItems","DividerType","onRenderItem","overflowAriaLabel","onRenderOverflowIcon","overflowButtonAs","contextualItems","isActionable","lastItemIndex","hasOverflowItems","itemElements","finalOnRenderItem","OverflowButton","isCurrentItem","finalOnRenderContent","defaultOnRenderCrumbContent","breadcrumbData","SingleLineTextStyle","overflowButtonFontSize","chevronSmallFontSize","itemLineHeight","itemFontSize","MinimumScreenSelector","itemBackgroundHoveredColor","itemBackgroundPressedColor","itemTextColor","itemTextFontWeight","itemTextHoveredOrPressedColor","itemLastChildTextColor","itemLastChildTextFontWeight","chevronButtonColor","overflowButtonColor","lastChildItemStyles","itemStateSelectors","commonItemStyles","overflowButtonHighContrastFocus","Breadcrumb","DayOfWeek","MonthOfYear","FirstWeekOfYear","DateRangeType","DAYS_IN_WEEK","TimeConstants","addDays","addWeeks","weeks","addMonths","newMonth","addYears","years","getMonthStart","getMonthEnd","getYearStart","getYearEnd","setMonth","compareDates","date1","date2","compareDatePart","getDatePartHashValue","getDateRangeArray","dateRangeType","firstDayOfWeek","workWeekDays","daysToSelectInDayView","datesArray","startDate","endDate","getDatePart","getStartDateOfWeek","nextDate","isInDateRangeArray","dateRange","dateRange_1","dateInRange","getWeekNumbersInMonth","weeksInMonth","firstWeekOfYear","navigatedDate","selectedYear","selectedMonth","dayOfMonth","fistDayOfMonth","endOfFirstWeek","adjustWeekDay","endOfWeekRange","weeksArray","getWeekNumber","fourDayWeek","getWeekOfYearFullDays","getFirstDayWeekOfYear","daysOffset","numberOfFullDays","dayOfYear","getDayOfYear","lastDayOfPrevYear","num2","num3","dateWeekDay","daysUntilDate","formatDay","formatMonthDayYear","formatMonthYear","formatMonth","formatYear","DEFAULT_DATE_GRID_STRINGS","DEFAULT_DATE_FORMATTING","DEFAULT_CALENDAR_STRINGS","isBeforeMinDate","minDate","isAfterMaxDate","maxDate","isRestrictedDate","restrictedDates","inRestrictedDates","findAvailableDate","targetDate","initialDate","restrictedDateOptions","availableDate","getBoundedDateRange","boundedDateRange","isContiguous","isSingleWeek","daySet","amountOfNoNeighbors","days_1","nextDay","getDateRangeTypeToUse","getDayGrid","selectedDate","weeksToShow","markedDays","todaysDate","isAllDaysOfWeekOutOfMonth","selectedDateRangeType","selectedDates","shouldGetWeeks","weekIndex","week","dayIndex","originalDate","dayInfo","markedDay","CalendarMonthHeaderRow","showWeekNumbers","allFocusable","dayLabels","firstOfMonthIndex","firstOfMonthIndexOffset","label","CalendarGridDayCell","dateTimeFormatter","activeDescendantId","navigatedDayRef","calculateRoundedStyles","weekCorners","customDayCellRef","onSelectDate","onNavigateDate","getDayInfosInRangeOfDay","getRefsFromDayInfos","cornerStyle","isNavigatedDate","navigateMonthEdge","findAvailableDateOptions","isInCurrentView","dayToCompare","onMouseOverDay","dayInfos","dayRefs","dayRef","classNamesToAdd","onMouseDownDay","onMouseUpDay","onMouseOutDay","onDayKeyDown","CalendarGridRow","rowClassName","ariaRole","weekNumbers","titleString","useDayRefs","daysRef","getSetRefCallback","dayKey","useWeeks","weeksGrid","firstVisibleDay","lastVisibleDay","useAnimateBackwards","previousNavigatedDate","useWeekCornerStyles","getWeekCornerStyles","initialWeeks","weekCornersStyled","above","isInSameHoverRange","below","calculateBorderStyles","roundedTopLeft","roundedTopRight","roundedBottomLeft","roundedBottomRight","date1Selected","date2Selected","dateRangeHoverType","CalendarDayGridBase","restrictedDatesOptions","animateBackwards","dayInfosInRange","accumulatedValue","currentWeek","weekDay","labelledBy","lightenDaysOutsideNavigatedMonth","animationDirection","partialWeekProps","sortedWWDays","AnimationDirection","transitionRowDisappearance","rowAnimationStyle","firstTransitionRowAnimationStyle","lastTransitionRowAnimationStyle","disabledStyle","CalendarDayGrid","CalendarDayBase","dayGrid","onHeaderSelect","showSixWeeksByDefault","monthAndYearId","monthAndYear","HeaderButtonComponentType","headerAriaLabel","onButtonKeyDown","CalendarDayNavigationButtons","navigationIcons","showCloseButton","onSelectNextMonth","onSelectPrevMonth","leftNavigationIcon","rightNavigationIcon","closeNavigationIcon","prevMonthInBounds","nextMonthInBounds","headerIsClickable","CalendarDay","hasHeaderClickCallback","highlightCurrent","highlightSelected","animationStyle","headerAnimationStyle","getPickerStyles","defaultCalendarStrings","defaultCalendarNavigationIcons","CELL_COUNT","CELLS_PER_ROW","DefaultCalendarYearStrings","CalendarYearGridCell","highlightCurrentYear","highlightSelectedYear","selected","onSelectYear","onRenderYear","buttonRef","CalendarYearGrid","fromYear","toYear","minYear","maxYear","selectedCellRef","currentCellRef","renderCell","yearToRender","gridAriaLabel","cells","cellRow","CalendarYearNavDirection","CalendarYearNavArrow","onSelectPrev","onSelectNext","newRangeOffset","newRange","ariaLabelString","onNavigate","isLeftNavigation","CalendarYearNav","CalendarYearTitle","onHeaderKeyDown","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","CalendarYearHeader","onRenderTitle","navigatedYear","rangeYear","previousFromYear","useYearRangeState","setFromYear","onNavNext","onNavPrevious","CalendarYearBase","gridRef","CalendarYear","MONTHS_PER_ROW","currentYear","previousYear","useFocusLogic","navigatedMonthRef","calendarYearRef","focusOnUpdate","focus","focusOnNextUpdate","CalendarMonthBase","isYearPickerVisible","setIsYearPickerVisible","highlightCurrentMonth","highlightSelectedMonth","yearPickerHidden","selectMonthCallback","onSelectMonth","onSelectNextYear","onSelectPrevYear","navYear","newNavigationDate","onYearPickerHeaderSelect","dateFormatter","isPrevYearInBounds","isNextYearInBounds","getYearStrings","yearStrings","rowIndexes","yearString","rowNum","monthsForRow","monthIndex","indexedMonth","isNavigatedMonth","isSelectedMonth","isSelectedYear","isInBounds","isCurrentMonth","yearToString","yearFormattingDate","yearRangeToString","yearRange","yearRangeToNextDecadeLabel","yearRangeToPrevDecadeLabel","CalendarMonth","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","useDateState","todayProp","setSelectedDate","navigatedDay","setNavigatedDay","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","navigateMonth","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","getShowMonthPickerAsOverlay","isMonthPickerVisible","setIsMonthPickerVisible","isDayPickerVisible","setIsDayPickerVisible","toggleDayMonthPickerVisibility","dayPicker","monthPicker","CalendarBase","renderGoToTodayButton","goTodayEnabled","showGoToToday","onGotoToday","onNavigateDayDate","focusOnNavigatedDay","onNavigateMonthDate","monthPickerOnly","onDatePickerPopupKeyDown","rootClass","calendarDayProps","calendarMonthProps","showMonthPickerAsOverlay","overlaidWithButton","todayDateString","selectedDateString","dateStringFormatter","selectionAndTodayString","totalWidth","Calendar","CheckBase","useFastIcons","IconComponent","CheckGlobalClassNames","sharedCircleCheck","Check","MAX_COLOR_SATURATION","MAX_COLOR_HUE","MAX_COLOR_VALUE","MAX_COLOR_RGB","MAX_COLOR_ALPHA","MIN_HEX_LENGTH","MAX_HEX_LENGTH","MIN_RGBA_LENGTH","MAX_RGBA_LENGTH","HEX_REGEX","RGBA_REGEX","hsl2hsv","hsv2rgb","rgb","hsl2rgb","hsv","cssColor","easyColor","_rgba","_hex6","_hex3","_hsla","_browserCompute","eComputedStyle","computedColor","hasAlpha","expectedPartCount","rgba","clamp","rgb2hex","_rgbToPaddedHex","hsv2hex","rgb2hsv","_rgbaOrHexString","getColorFromRGBA","getColorFromString","inputColor","getFullColorString","updateSV","updateH","updateA","correctRGB","correctHex","updateT","LabelBase","required","labelFontWeight","labelColor","labelDisabledColor","labelRequiredStarColor","Label","DEFAULT_STATE_VALUE","REVEAL_ICON_NAME","HIDE_ICON_NAME","TextFieldBase","labelStyles","previousValue","_getValue","snapshot","selection","_shouldValidateAllChanges","borderless","inputClassName","multiline","underlined","resizable","autoAdjustHeight","canRevealPassword","revealPasswordAriaLabel","onRenderPrefix","onRenderSuffix","onRenderLabel","isRevealingPassword","isInvalid","hasRevealButton","_browserNeedsRevealButton","textAreaProps","labelIds","inputProps","updatedInputProps","onRenderInput","onGetErrorMessage","currentValidation_1","textField","__browserNeedsRevealButton","globalClassNames","getLabelStyles","hasLabel","hasIcon","hasErrorMessage","fieldPrefixSuffix","placeholderStyles","disabledPlaceholderStyles","TextField","DEFAULT_MASK_FORMAT_CHARS","parseMask","mask","formatChars","maskCharData","escapedChars","maskChar","maskFormat","getMaskDisplay","maskDisplay","lastDisplayIndex","maskCharData_1","charData","getRightFormatIndex","getLeftFormatIndex","clearRange","selectionCount","clearNext","clearPrev","insertString","newString","stringIndex","isStringInserted","DEFAULT_MASK_CHAR","MaskedTextField","onBlur","onMouseUp","onPaste","maskCursorPosition","setMaskCursorPosition","setDisplayValue","valueIndex","charDataIndex","testVal","handleFocus","handleBlur","handleMouseDown","handleMouseUp","handleInputChange","cursorPos","changeType","charsSelected","charCount","startPos","pastedString","isDel","enteredString","selectCount","handleKeyDown","keyCode","ctrlKey","metaKey","handlePaste","ColorRectangleBase","increment","newColor","_getNewColor","minSize","ariaValueFormat","valueText","oldColor","prevColor","rectSize","coords","touchEvent","lastTouch","mouseEvent","sPercentage","vPercentage","ColorRectangle","ColorSliderBase","maxValue","currentPercentage","overlayStyle","overlayColor","isAlpha","hueStyle","alphaStyle","useAlphaBackground","ColorSlider","allColorComponents","errorKeys","ColorPickerBase","editingColor","isHex","isTransparency","minLength","_getColorFromProps","allColorComponents_1","defaultStrings","textLabels","alphaType","alphaSliderHidden","useTransparency","colorComponents","atValue","atLabel","selectedColorAriaParts","comp","validCharsRegex","isValid","isDifferentColor","ColorPicker","DialogType","containerClassName","scrollableContentClassName","isOpen","isVisible","hasBeenOpened","modalRectangleTop","topOffsetFixed","isModeless","layerClassName","isDefaultDragHandle","windowInnerHeight","OverlayBase","allowTouchBodyScroll","isDark","Overlay","isDragging","eventMapping","DraggableZone","onTouchStart","onTouchEnd","dragData","updatedData","updatedPosition","baseDragData","statePosition","touchObj","eventToGetOffset","touch","matchesSelectorFn","touchList","lastPosition","ZERO","getMoveDelta","focusTrapZone","ModalBase","focusTrapZoneProps","isBlocking","isAlert","isDarkOverlay","overlay","titleAriaId","subtitleAriaId","dragOptions","onDismissed","focusTrapZoneRef","focusTrapZoneElm","modalResponsiveMode","focusTrapZoneId","setTimeout","clearTimeout","isModalOpen","setIsModalOpen","setIsVisible","coordinates","setCoordinates","setModalRectangleTop","isModalMenuOpen","toggleModalMenuOpen","setModalMenuClose","keepInBounds","isAlertRole","mergedLayerProps","allowScrollOnModal","elt","registerInitialModalPosition","dialogMain","modalRectangle","getClampedAxis","axis","minPosition","maxPosition","handleModalClose","handleDragStart","handleDrag","handleDragStop","handleEnterKeyboardMoveMode","newLocal","handledEvent","delta_1","handleExitKeyboardMoveMode","registerForKeyUp","handleKeyUp","modalContent","Modal","DialogFooterBase","DialogFooter","DialogFooterType","DialogContentBase","closeButtonAriaLabel","subTextId","subText","titleProps","titleId","draggableHeaderClassName","groupings","subTextContent","isLargeHeader","isClose","isMultiline","DialogContent","DefaultModalProps","DefaultDialogContentProps","DialogBase","ariaDescribedById","modalProps","dialogContentProps","ariaLabelledById","contentClassName","topButtonsProps","minWidth","dialogDraggableClassName","mergedModalProps","dialogDefaultMinWidth","dialogDefaultMaxWidth","Dialog","MOUSEDOWN_PRIMARY_BUTTON","MOUSEMOVE_PRIMARY_BUTTON","DragDropHelper","dragDropOptions","onDragStart","onDragLeave","onDragEnter","onDragEnd","onDrop","onDragOver","isDraggable","isDroppable","activeTarget","eventMap","updateDropState_1","dragDropTarget","eventMap_1","handlers_1","buttons","childElement","dragContext","SELECTION_DISABLED_ATTRIBUTE_NAME","SELECTION_INDEX_ATTRIBUTE_NAME","SELECTION_SPAN_ATTRIBUTE_NAME","SELECTION_TOGGLE_ATTRIBUTE_NAME","SELECTION_INVOKE_ATTRIBUTE_NAME","SELECTION_INVOKE_TOUCH_ATTRIBUTE_NAME","SELECTALL_TOGGLE_ALL_ATTRIBUTE_NAME","SELECTION_SELECT_ATTRIBUTE_NAME","SelectionZone","isToggleModifierPressed","isToggle","itemRoot","span","toggleWithoutModifierPressed","enableTouchInvocationTarget","isSelectionDisabled","onItemContextMenu","skipPreventDefault","onItemInvoked","selectionClearedOnEscapePress","isSelectAllKey","isClearSelectionKey","scrollParent","selectionClearedOnSurfaceClick","isAlreadySingleSelected","indexValue","spanValue","attributeName","isTouch","initializeIcons","registerIconAliases","DEFAULT_BASE_URL","i1","i2","i3","i4","i5","i6","i7","i8","i9","i10","i11","i12","i13","i14","i15","i16","i17","initialize","MessageBarType","ICON_MAP","getAnnouncementPriority","messageBarType","getRole","MessageBarBase","expandSingleLine","toggleExpandSingleLine","labelId","actions","overflowButtonAriaLabel","dismissIconProps","truncated","dismissButtonAriaLabel","messageBarIconProps","delayedRender","expandButtonProps","onExpandButtonToggled","showExpandButton","handleToggleExpandSingleLine","expandIconProps","regionProps","actionsDiv","dismissButton","iconColor","highContrastBorderColor","highContrastWhiteBorderColor","SmallScreenSelector","dismissalAndExpandIconStyle","dismissalAndExpandStyle","MessageBar","buttonStyles","isOnTop","isGroup","isLink","isButtonEntry","navHeight","leftPadding","leftPaddingExpanded","rightPadding","_indentationSize","_baseIndent","_urlResolver","isRelativeUrl","NavBase","group","groupIndex","onRenderGroupHeader","finalOnHeaderClick","isCollapsing","expandButtonAriaLabel","collapseAriaLabel","onHeaderClick","groupElements","linkIndex","nestingLevel","isLinkWithIcon","isSelectedLink","ariaCurrent","rel","LinkAs","onRenderLink","finalExpandBtnAriaLabel","links","linkElements","onLinkExpandClick","newGroupCollapsed","Nav","PanelType","PanelVisibilityState","PanelBase","onRenderNavigationContent","hasCloseButton","onRenderHeader","headerTextId","headerText","headerTextProps","onRenderFooterContent","newVisibilityState","shouldListenOnOuterClick","previousShouldListenOnOuterClick","headerClassName","ignoreExternalFocusing","isFooterAtBottom","isLightDismiss","isHiddenOnDismiss","overlayProps","customWidth","onLightDismissClick","onRenderNavigation","onRenderBody","onRenderFooter","isFooterSticky","visibility","isLeft","isOnRightSide","customWidthStyles","isAnimating","_classNames","_allowTouchBodyScroll","scrollableContent","innerHeight_1","panel","panelWidth","panelMargin","smallPanelSelectors","mediumPanelSelectors","largePanelSelectors","largeFixedPanelSelectors","extraLargePanelSelectors","getPanelBreakpoints","commandBarHeight","sharedPaddingStyles","focusTrapZoneClassName","hasCustomNavigation","isCustomPanel","Panel","observeResize","observer_1","onResizeWrapper_1","win_1","animationFrameId_1","useOverflow","onOverflowItemsChanged","pinnedIndex","updateOverflowRef","containerWidthRef","containerRef","cleanupObserver","menuButtonRef","menuButton","minContainerWidth","extraWidth","containerWidth","itemOffsetEnd","setOverflowIndex","prevOverflowIndex","ele","cancelAnimationFrame","PivotItem","getTabId","pivotId","itemKey","getLinkItems","isPivotItem","linkText","pivotItemProps","React.isValidElement","PivotBase","focusZoneRef","overflowMenuButtonComponentRef","selectedKey","setSelectedKey","linkSize","linkFormat","overflowBehavior","nameProps","linkCollection","renderLinkContent","itemIcon","renderPivotLink","renderLinkCollection","renderPivotLinkSelectedKey","headerButtonProps","onRenderItemLink","tabId","linkContent","contentString","itemSemantics","onLinkClick","updateSelectedItem","selectedIndex","renderPivotItem","selectedTabId","isKeyValid","getSelectedKey","renderedSelectedKey","renderedSelectedIndex","overflowMenuProps","overflowMenuButtonRef","elements","isOverflowing","getLinkStyles","isLinkInOverflowMenu","rootIsLarge","rootIsTabs","Pivot","AboveAndBelowStyles","positioningStyle","ScrollbarVisibility","ScrollablePaneContext","ScrollablePaneBase","sticky","sortAgain","stickyItems","stickyTopHeight","stickyBottomHeight","isStickyTop","isStickyBottom","handle","stickyContainer","stickyContentToAdd","stickyChildrenElements_1","stickyList_1","stickyItem","stickyListSorted","stickyContent","targetStickyToAppendBefore","stickyListSorted_1","stickyListItem","targetContainer","scrollbarWidth","scrollbarHeight","isTop","contentContainer","initialScrollPosition","checkIfMutationIsSticky","mutationRecord","stickyList_2","scrollContainerFocus","scrollContainerAriaLabel","scrollContainerProps","ScrollablePane","getAllSelectedOptions","selectedIndices","selectedOptions","selectedIndices_1","SelectableOptionMenuItemType","SeparatorBase","vertical","alignContent","alignStart","alignCenter","alignEnd","Separator","BACKGROUND_OFF_SCREEN_POSITION","shimmerAnimation","shimmerAnimationRTL","isDataLoaded","transitionAnimationInterval","shimmerColor","shimmerWaveColor","improveCSSPerformance","ShimmerElementType","ShimmerElementsDefaultHeights","ShimmerLineBase","borderStyle","borderStyles","sharedCornerStyles","ShimmerLine","ShimmerGapBase","ShimmerGap","ShimmerCircleBase","ShimmerCircle","ShimmerElementsGroupBase","shimmerElements","rowHeight","findMaxElementHeight","flexWrap","getRenderedElements","renderedElements","filteredElem","verticalAlign","getElementStyles","elementHeight","dif","shimmerElementsDefaulted","ShimmerElementsGroup","TRANSITION_ANIMATION_INTERVAL","ShimmerBase","customElementsGroup","shimmerColors","contentLoaded","setContentLoaded","divStyleProp","Shimmer","ARROW_BUTTON_WIDTH","ARROW_BUTTON_ICON_SIZE","DEFAULT_HEIGHT","DEFAULT_MIN_WIDTH","LABEL_MARGIN","getDisabledStyles","SpinButtonTextColorDisabled","SpinButtonBackgroundColorDisabled","getArrowButtonStyles","isUpArrow","customSpecificArrowStyles","ArrowButtonTextColor","ArrowButtonTextColorHovered","ArrowButtonTextColorPressed","ArrowButtonBackgroundHovered","ArrowButtonBackgroundPressed","defaultArrowButtonStyles","defaultUpArrowButtonStyles","defaultDownArrowButtonStyles","labelPosition","SpinButtonRootBorderColor","SpinButtonRootBackgroundColor","SpinButtonRootBorderColorHovered","SpinButtonRootBorderColorFocused","SpinButtonInputTextColor","SpinButtonInputTextColorSelected","SpinButtonInputBackgroundColorSelected","SpinButtonIconDisabledColor","KeyboardSpinDirection","INITIAL_STEP_DELAY","STEP_DELAY","noOp","clampValue","SpinButtonBase","valueFromProps","precisionFromProps","incrementButtonIcon","incrementButtonAriaLabel","decrementButtonIcon","decrementButtonAriaLabel","customUpArrowButtonStyles","customDownArrowButtonStyles","ariaPositionInSet","ariaSetSize","ariaValueNow","ariaValueText","onDecrement","onIncrement","iconButtonProps","onValidate","inputId","setIsFocused","keyboardSpinDirection","setKeyboardSpinDirection","intermediateValue","setIntermediateValue","previousValueFromProps","enteredValue","stop","updateValue","stepFunction","wasSpinning","handleIncrement","handleDecrement","spinDirection","handleIncrementMouseDown","handleDecrementMouseDown","useDebugWarnings","valueIsNumber","labelContent","SpinButton","SpinnerSize","SpinnerType","SpinnerBase","ariaLive","statusMessage","styleSize","spinAnimation","Spinner","withSlots","slotType","createFactory","DefaultComponent","defaultProp","userProps","userSlotOptions","flattenedUserProps","_translateShorthand","finalProps","_constructFinalProps","UserComponent","defaultFactory","getSlots","mixedProps","slot","_renderSlot","transformedProps","allProps","allProps_1","ComponentType","slotOptions","createComponent","factoryOptions","ResultComponent","_getCustomizations","stateReducer","_resolveTokens","_resolveStyles","viewProps","allTokens","allTokens_1","currentTokens","alignMap","StackItemStyles","grow","shrink","disableShrink","align","verticalFill","order","basis","StackItemView","Slots","StackItem","_getThemedSpacing","space","_getValueUnitGap","numericalPart","numericalValue","numericalString","unitPart","parseGap","splitGap","calculatedGap","parsePadding","paddingValues","padding1","padding2","nameMap","enableScopedSelectors","horizontal","horizontalAlign","reversed","wrap","childrenGap","rowGap","columnGap","horizontalMargin","verticalMargin","childStyles","childSelector","disableShrinkStyles","StackItemGlobalClassNames","StackView","doNotRenderFalsyValues","stackChildren","_processStackChildren","childrenArray","childAsReactElement","defaultItemProps","_isStackItem","childClassName","StackGlobalClassNames","StackStatics","Stack","StickyPositionType","getScrollUtils","scrollTopElements","getScrollTopInRange","range","currentScrollTop","prevScrollTop","isLessThanInRange","COMPARISON_RANGE","Sticky","nonStickyContent","footerStickyContainer","distanceFromTop","distanceToStickTop","containerScrollTop","footerStickyVisibleContainer","currElem","scrollablePane","syncScroll","_isOffsetHeightDifferent","stickyClassName","isSticky","curr","ThemeContext","useCompatTheme","useTheme","legacyTheme","_seed","mergeStylesRenderer","mergeFontFace","mergeKeyframes","graphGet","graphNode","windowId","graphSet","classMap","windowNode","idNode","graphRef","graphDeref","makeStyles","styleOrFunction","graph","allWindows","cleanupMapEntries","winId","contextualTheme","renderer","isStyleFunction","useThemeProviderStyles","useApplyClassToBody","classesToApply","applyTo","applyToBody","classesToApply_1","classToApply","classesToApply_2","useThemeProviderClasses","renderThemeProvider","customizerContext","themeToIdMap","getThemeId","themes","ids","themes_1","useThemeProviderState","draftState","userTheme","parentTheme","useThemeProvider","render","ThemeProvider","AnnouncedBase","Announced","SuggestionActionType","suggestionsItem","closeButton","suggestionsItemIsSuggested","itemButton","actionButton","buttonSelected","suggestionsTitle","suggestionsContainer","suggestionsNone","suggestionsSpinner","suggestionsAvailable","legacyStyles","stylesImport","SuggestionsItem","suggestionModel","RenderSuggestion","onRemoveItem","isSelectedOverride","removeButtonAriaLabel","removeButtonIconProps","SuggestionsItemGlobalClassNames","suggested","StyledSuggestionsItem","suggestionsItemStyles","Suggestions","suggestionsProps","currentSuggestionIndex","isEventHandled","newSelectedActionType","currentSelectedAction","suggestionLength","isLoading","isSearching","suggestions","suggestionsAvailableAlertText","noResultsFoundText","isExtendedLoading","loadingText","onSuggestionRemove","forceResolveText","mostRecentlyUsedHeaderText","searchForMoreIcon","searchForMoreText","moreSuggestionsAvailable","onRenderNoResultFound","searchingText","isMostRecentlyUsedVisible","resultsMaximumNumber","resultsFooterFull","resultsFooter","isResultsFooterVisible","suggestionsHeaderText","suggestionsClassName","suggestionsListId","suggestionsContainerAriaLabel","spinnerStyles","spinnerClassNameOrStyles","noResults","footerTitle","hasNoSuggestions","forceResolveId","searchForMoreId","offsetHeight","offsetTop","parentOffsetHeight","isAbove","isBelow","onRenderSuggestion","removeSuggestionAriaLabel","suggestionsItemClassName","showRemoveButtons","StyledTypedSuggestionsItem","suggestion","forceResolveButtonSelected","searchForMoreButtonSelected","actionButtonSelectedStyles","SuggestionsController","newSuggestions","maxCount","itemToConvert","ValidationState","picker","pickerText","inputFocused","inputDisabled","pickerInput","pickerItems","screenReaderOnly","EXTENDED_LOAD_TIME","getStyledSuggestions","suggestionsType","suggestionsStyles","BasePicker","basePickerProps","selectItemFunction","addItemOnDismiss","changedItem","suggestionsArray","suggestionsPromiseLike","processedItem","processedItemObject","processedItemPromiseLike","resolvedProcessedItem","itemsToRemove","updatedValue","oldProps","oldState","currentSelectedIndex","forceComplete","selectionAriaLabel","selectionRole","suggestionsVisible","comboLabel","itemLimit","StyledTypedSuggestions","newEl","itemValue","maxSuggestionsCount","emptyResolveSuggestions","currentIndex","suggestionAlertClassName","selectedSuggestion","selectedSuggestionAlertText","alertClassName","suggestionRemovedText","removedItemText","itemName","areSuggestionsVisible","BasePickerListBelow","inputBorder","inputBorderHovered","inputFocusBorderAlt","disabledOverlayColor","TAG_HEIGHT","TagItemBase","enableTagFocusInDisabledPicker","handleClick","itemId","disabledAttrs","TagItem","TagItemSuggestionBase","TagItemSuggestion","TagPickerBase","TagPicker","ScrollToMode","getScrollHeight","scrollHeight","getScrollYPosition","scrollPos","setScrollYPosition","MIN_SCROLL_UPDATE_DELAY","MAX_SCROLL_UPDATE_DELAY","IDLE_DEBOUNCE_DELAY","DONE_SCROLLING_WAIT","DEFAULT_ITEMS_PER_PAGE","DEFAULT_PAGE_HEIGHT","DEFAULT_RENDERED_WINDOWS_BEHIND","DEFAULT_RENDERED_WINDOWS_AHEAD","PAGE_KEY_PREFIX","SPACER_KEY_PREFIX","SCROLL_RATIO","EMPTY_RECT","_measurePageRect","_measureSurfaceRect","_measureScrollRect","List","surfaceElement","surfaceRef","pageElements","pageProps","onRenderCell","onRenderCellConditional","cellRole","cell","measureItem","scrollToMode","renderCount","allowedRect","itemsPerPage","itemIndex","pageSpecification","pageHeight","requestedIndexIsInPage","scrollRect","scrollPosition","scrollWindow","itemPositionWithinPage","itemIndexInPage","scrollBottom","itemIsFullyVisible","itemIsPartiallyAbove","itemIsPartiallyBelow","pages_1","isPageVisible","totalRowHeight","finalState","heightsChanged","newState","newPages","shouldComponentUpdate","oldPage","newPage","onRenderSurface","onRenderRoot","pages_2","finalOnRenderSurface","finalOnRenderRoot","onShouldVirtualize","usePageCache","cachedPage","pageStyle","onRenderPage","pageElement","newRef","getPageStyle","indexString","_isContainedWithin","renderedWindowsAhead","renderedWindowsBehind","requiredWindowsAhead","requiredWindowsBehind","windowsAhead","windowsBehind","newListState","oldListPages","onPageAdded","onPageRemoved","renderedIndexes","oldPages_1","newPages_1","heightChanged","hasChangedHeight","cachedHeight","newClientRect","getPageHeight","materializedRect","pageTop","currentSpacer","focusedIndex","shouldVirtualize","this_1","pageData","pageBottom","isPageRendered","isPageInAllowedRange","isPageInRequiredRange","isPageFocused","isFirstPage","itemsInPage","_mergeRect","visibleRect","getPageSpecification","visibileRect","pageKey","isSpacer","surfaceRect","visibleTop","_expandRect","pagesBefore","pagesAfter","innerRect","outerRect","newRect","CheckboxBase","checkmarkIconProps","boxSide","inputRef","setIsChecked","isIndeterminate","setIsIndeterminate","defaultLabelRenderer","checkboxProps","setNativeIndeterminate","indeterminate","mergedInputProps","setIndeterminate","checkBoxRef","MS_CHECKBOX_LABEL_SIZE","MS_CHECKBOX_TRANSITION_DURATION","MS_CHECKBOX_TRANSITION_TIMING","_t","isUsingCustomLabelRender","checkmarkFontColor","checkmarkFontColorHovered","checkboxBorderColor","checkboxBorderIndeterminateColor","checkboxBorderColorChecked","checkboxBorderColorDisabled","checkboxBorderHoveredColor","checkboxBorderIndeterminateHoveredColor","checkboxBackgroundChecked","checkboxBackgroundCheckedHovered","checkboxBorderColorCheckedHovered","checkboxHoveredTextColor","checkboxBackgroundDisabledChecked","checkboxTextColor","checkboxTextColorDisabled","indeterminateDotStyles","Checkbox","LARGE_IMAGE_SIZE","ChoiceGroupOptionBase","imageSrc","imageSize","defaultOnRenderLabel","defaultOnRenderField","selectedImageSrc","onRenderField","evt","labelWrapperLineHeight","labelWrapperHeight","iconSize","choiceFieldSize","choiceFieldTransitionDuration","choiceFieldTransitionTiming","radioButtonSpacing","radioButtonInnerSize","getChoiceGroupFocusStyle","hasIconOrImage","getImageWrapperStyle","isSelectedImageWrapper","hasImage","imageIsLarge","circleBorderColor","circleHoveredBorderColor","circleCheckedBorderColor","circleCheckedHoveredBorderColor","circleDisabledBorderColor","circleBackgroundColor","dotUncheckedHoveredColor","dotCheckedColor","dotCheckedHoveredColor","dotDisabledColor","labelHoverFocusColor","iconOrImageChoiceBorderUncheckedHoveredColor","iconOrImageChoiceBorderCheckedColor","iconOrImageChoiceBorderCheckedHoveredColor","iconOrImageChoiceBackgroundColor","fieldHoverOrFocusProperties","enabledFieldWithImageHoverOrFocusProperties","circleAreaProperties","dotAreaProperties","ChoiceGroupOption","getOptionId","findOption","focusSelectedOption","keyChecked","focusProviders","optionToFocus","focusFromFocusTrapZone","ChoiceGroupBase","defaultSelectedKey","setKeyChecked","keyFocused","setKeyFocused","onOptionChange","onRadioFocus","optionsContainIconOrImage","ChoiceGroup","ComboBoxHeight","ComboBoxLineHeight","ComboBoxCaretDownWidth","ComboBoxOptionHeight","listOptionHighContrastStyles","inputHighContrastStyles","getOptionStyles","customStylesForAllOptions","customOptionStylesForCurrentOption","isPending","isHidden","optionStyles","getCaretDownButtonStyles","caret","buttonHighContrastStyles","comboBoxOptionWidth","placeholderHighContrastStyles","placeholderStylesHovered","ComboBoxRootHighContrastFocused","focusBorderStyles","allowFreeForm","getComboBoxOptionClassNames","SearchDirection","HoverStatus","ScrollIdleDelay","ReadOnlyPendingAutoCompleteTimeout","ComboBoxOptionWrapper","useOptionsState","getSelectedIndices","buildDefaultSelectedKeys","setSelectedIndices","currentOptions","setCurrentOptions","setSuggestedDisplayValue","selectedKeys","buildSelectedKeys","indices","ComboBox","ComboBoxInternal","findFirstDescendant","candidate","shouldOpenOnFocus","useFocusAsync","comboBox","normalizeToString","multiselectAccessibleText","errorMessageId","buttonIconProps","isButtonAriaHidden","placeholderProp","autofill","ariaActiveDescendantValue","placeholder","labelProps","allowFreeform","allowFreeInput","autoComplete","currentPendingValueValidIndex","currentPendingValue","currentPendingIndexValid","indexWithinBounds","getPreviewText","newOptions_1","newOptionsFromPromise","isBlurFromComboBoxTitle","isBlurFromComboBoxMenu","isBlurFromComboBoxMenuAncestor","onRenderList","dropdownWidth","dropdownMaxWidth","onRenderUpperContent","onRenderLowerContent","useComboBoxAsMenuWidth","comboBoxMenuWidth","onRenderLabelProps","multiSelect","renderedList","emptyQueue","newGroup","placeRenderedOptionIntoQueue","onRenderOption","optionClassNames","getOptionComponent","onMenuDismiss","allowParentArrowNavigation","currentPendingValueValidIndexOnHover","directionToSearch","onMenuOpen","newCurrentPendingValueValidIndex","descendantText","onRenderContainer","comboBoxWrapper","displayValues","multiSelectDelimiter","isNormalOption","originalUpdatedValue","newSuggestedDisplayValue","matchingIndex","searchDirection","isSelectableOption","submitPendingValueEvent","onPendingValueChanged","initialIndices","changedOptions","currentOption","selectAllOption","selectAllState","selectAllIndex_1","pendingOptionText","adjustedCurrentPendingValue","newOption","newOptions","idxOfSelectedIndex","testIndices","selectAllIndex","compareSelectedIndices","selectableOptions","includeCurrentPendingValue","onScrollToItem","scrollSelectedToTop","currentPendingSelectedIndex","scrollToElement","alignToTop","selectedElement","indexUpdate","newPendingIndex","newPendingValue","focusInputAfterClose","customCaretDownButtonStyles","customStylesForCurrentOption","selectedKeys_1","defaultDatePickerStrings","dateStr","textFieldRef","preventFocusOpeningPicker","preventNextFocusOpeningPicker","useCalendarVisibility","allowTextInput","onAfterMenuDismiss","isCalendarShown","setIsCalendarShown","isMounted","useSelectedDate","formatDate","setSelectedDateState","formattedDate","setFormattedDate","newDate","useErrorMessage","isRequired","parseDateFromString","setErrorMessage","setStatusMessage","isFirstLoadRef","validateOnLoad","validateTextInput","selectedText","statusText","isDateOutOfBounds","DatePickerBase","initialPickerDate","pickerAriaLabel","calendarProps","textFieldProps","CalendarType","disableAutoFocus","calloutId","datePickerDiv","showDatePickerPopup","onTextFieldFocus","calendarDismissed","onCalloutPositioned","shouldFocus","onTextFieldBlur","onTextFieldChanged","dismissDatePickerPopup","onTextFieldKeyDown","handleEscKey","onTextFieldClick","openOnClick","onIconClick","newlySelectedDate","renderTextfieldDescription","renderReadOnlyInput","readOnlyTextFieldClassName","calloutDismissed","onCalendarDismissed","textFieldId","iconA11yProps","TEXTFIELD_HEIGHT","isDatePickerShown","DatePickerIcon","DatePicker","CollapseAllVisibility","ColumnActionsMode","ConstrainMode","ColumnDragEndLocation","DetailsListLayoutMode","CheckboxVisibility","SPACER_WIDTH","GroupSpacer","indentWidth","beziers","compact","DetailsRowGlobalClassNames","IsFocusableSelector","DEFAULT_CELL_STYLE_PROPS","DEFAULT_ROW_HEIGHTS","getDetailsRowStyles","droppingClassName","isCheckVisible","checkboxCellClassName","cellStyleProps","enableUpdateAnimations","focusBorder","focusedLinkColor","colors","rowHighContrastFocus","selectedStyles","LinkGlobalClassNames","cannotSelectStyles","rootCompactStyles","cellCompactStyles","defaultCellStyles","HEADER_HEIGHT","getCellStyles","getDetailsHeaderStyles","isResizingColumn","isSizing","isAllCollapsed","cellSizerFadeInStyles","cellStyles","GROUP_EXPANDER_WIDTH","CHECK_CELL_WIDTH","getDetailsRowCheckStyles","isHeader","anySelected","compactRowHeight","DEFAULT_GROUP_HEADER_HEIGHT","COMPACT_GROUP_HEADER_HEIGHT","isCollapsed","cellLeftPadding","finalRowHeight","checkExpandResetStyles","EXPAND_BUTTON_WIDTH","GroupHeaderBase","onToggleCollapse","isGroupLoading","newCollapsed","newLoadingVisible","onGroupHeaderKeyUp","shouldOpen","shouldClose","onGroupHeaderClick","onRenderName","groupLevel","viewport","onRenderGroupHeaderCheckbox","isCollapsedGroupSelectVisible","expandButtonIcon","selectAllButtonProps","ariaLevel","ariaPosInSet","ariaRowIndex","defaultCheckboxRender","onRenderCheckbox","isLoadingVisible","canSelectGroup","isSelectionCheckVisible","currentlySelected","FastCheck","GroupHeader","GroupShowAllBase","showAllLinkText","onToggleSummarize","memoizedOnClick","GroupShowAll","GroupFooterBase","footerText","GroupFooter","DEFAULT_DROPPING_CSS_CLASS","GroupedListSection","subGroup","subGroupIndex","dragDropEvents","dragDropHelper","eventsToRegister","getGroupItemLimit","groupNestingDepth","headerProps","showAllProps","footerProps","listProps","onRenderGroupShowAll","onRenderGroupFooter","nestingDepth","newIsDropping","isDropping","groupedListClassNames","isShowAllVisible","hasNestedGroups","dividerProps","ariaControlsProps","groupHeaderProps","groupShowAllProps","groupFooterProps","subGroupCount","ROW_HEIGHT","COMPACT_ROW_HEIGHT","GroupedListBase","finalListProps","getGroupHeight","pageGroup","listVersion","shouldForceUpdates","previousListVersion","rootListProps","allCollapsed","onToggleCollapseAll","groupsInLevel","onGroupExpandStateChanged","newIsSomeGroupExpanded","GroupedList","GetGroupCount","remainingGroups","currentGroup","DetailsRowCheckBase","onRenderDetailsCheckbox","_fastDefaultCheckboxRender","_defaultCheckboxRender","detailsCheckboxProps","checkRole","DetailsRowCheck","TRANSITION_DURATION_DRAG","TRANSITION_DURATION_DROP","CLASSNAME_ADD_INTERVAL","defaultOnRenderHeader","DetailsColumnBase","columnProps","tooltipHostProps","onColumnClick","column","onColumnKeyDown","selectedItems","onColumnContextMenu","parentId","onRenderColumnHeaderTooltip","onRenderFilterIcon","hasInnerButton","shouldAssociateTooltip","accNameDescription","columnIndex","getDetailsColumnStyles","isEmpty","isIconVisible","isPadded","isIconOnly","transitionDurationDrag","transitionDurationDrop","nearIconStyle","borderWhileDragging","borderAfterDragOrDrop","DetailsColumn","SelectAllVisibility","NO_COLUMNS","DetailsHeaderBase","columnReorderProps","targetIndex","isValidDrop","dragDropDetails","showCheckbox","hasGroupExpander","columnDragEndLocation","columns","prevX","prevMid","prevRef","frozenColumnCountFromStart","frozenColumnCountFromEnd","dropHintElement","newMid","clientX","headerOriginX","eventXRelativePosition","currentDropHintIndex","_liesBetween","lastValidColumn","indexToUpdate","_isBefore","_isAfter","middleIndex","columnResizeDetails","_stopPropagation","columnIndexAttr","onColumnResized","onColumnIsSizingChanged","movement","previousColumns","ariaLabelForToggleAllGroupsButton","ariaLabelForSelectAllCheckbox","selectAllVisibility","ariaLabelForSelectionColumn","checkboxVisibility","isCheckboxHidden","isCheckboxAlwaysVisible","showGroupExpander","columnIndexOffset","_isDraggable","columnReorderOptions","displayProperty","onRenderDivider","dropHintIndex","onColumnAutoResized","DetailsHeader","getCellText","DetailsRowFields","rowClassNames","onRenderItemColumn","getCellValueKey","propsOnRenderField","cellsByColumn","rowHeaderId","cellValueKeysRef","cellValueKeys","fieldProps","cellValueKey","onRender","fieldItem","fieldItemIndex","getValueKey","defaultOnRender","previousValueKey","showAnimation","DetailsRowBase","selectionState","getSelectionState","onDidMount","columnMeasureInfo","newWidth","onWillUnmount","newSelectionState","flatIndexOffset","onRenderCheck","getRowAriaLabel","getRowAriaDescription","getRowAriaDescribedBy","isGridRow","checkButtonAriaLabel","rowFieldsAs","isSelectionModal","ariaRowDescription","isContentUnselectable","ariaSelected","RowFields","rowFields","hasRowHeader","groupedListRowProps","onMeasureDone","DetailsRow","MAX_RESIZE_ATTEMPTS","withViewport","WithViewportComponent","withForceUpdate","viewportElement","scrollElement","updateComponent","isSizeChanged","delayFirstMeasure","disableResizeObserver","skipViewportMeasures","previousSkipViewportMeasures","newViewport","MIN_COLUMN_WIDTH","rowFocusZoneAddTabIndexProps","rowFocusZoneNoTabIndexProps","DetailsListInner","ariaLabelForListHeader","constrainMode","isHeaderVisible","layoutMode","onColumnHeaderClick","onColumnHeaderContextMenu","selectionPreservedOnEmptyClick","selectionZoneProps","ariaLabelForGrid","rowElementEventMap","shouldApplyApplicationRole","minimumPixelsForDrag","adjustedColumns","isSomeGroupExpanded","listRef","groupedListRef","headerRef","onRowDidMount","onRowWillUnmount","disableSelectionZone","isSelectedOnFocus","onActiveRowChanged","onRenderMissingItem","checkButtonGroupAriaLabel","useReducedRowRenderer","enterModalSelectionOnTouch","onRenderDefaultRow","selectionZoneRef","rowId","getGroupNestingDepth","groupedDetailsListIndexMap","useGroupedDetailsListIndexMap","additionalListProps","isSelectAllVisible","defaultOnRenderDetailsHeader","detailsHeaderProps","defaultOnRenderDetailsFooter","propsOnRenderDetailsHeader","onRenderDetailsHeader","propsOnRenderDetailsFooter","onRenderDetailsFooter","detailsFooterProps","columnReorderOnDragEnd","onColumnDragEnd","dropLocation","finalDropLocation","rowCount","colCount","onRenderDetailsGroupFooter","finalOnRenderDetailsGroupFooter","onRenderDetailsGroupHeader","finalOnRenderDetailsGroupHeader","groupKey","totalRowCount","finalGroupProps","sumColumnWidths","collapseAllVisibility","rowWidth","finalOnRenderRow","numOfGroupHeadersBeforeItem","rowRole","rowFocusZoneProps","rowProps","onRenderListCell","isRightArrow","focusZoneInnerProps","FinalGroupedList","onContentKeyDown","DetailsListBase","setKey","isAllGroupsCollapsed","newViewportWidth","oldViewportWidth","shouldResetSelection","row","resizingColumn","resizingColumnIndex","newCalculatedWidth","totalCount","currentRow","onActiveItemChanged","newColumnIndex","col","isCheckboxColumnHidden","draggedIndex","isValidTargetIndex","viewportWidth","newColumns","lastWidth","lastSelectionMode","buildColumns","flexMargin","remainingWidth","sumProportionalWidth","getPaddedWidth","rowCheckWidth","CHECKBOX_WIDTH","groupExpandWidth","GROUP_EXPAND_WIDTH","widthFraction","newColumn","fullWidth","shrinkWidth","minimumWidth","availableWidth","baseColumn","overflowWidth","originalWidth","overrides","spaceLeft","canResizeColumns","sortedColumnKey","isSortedDescending","groupedColumnKey","columnActionsMode","firstItem","paddingOnly","indexMap","numGroupHeaders","groups_1","getDetailsListStyles","isHorizontalConstrained","isFixed","DetailsList","DropdownSizePosCache","displayOnlyOptionsCache","notSelectableOptionsCache","itemType","DropdownMenuItemType","useSelectedItemsState","defaultSelectedKeys","oldOptions","selectedKeyPropToUse","didOptionsChange","oldSelectedKeyProp","getSelectedIndexes","getAllSelectedIndices","getSelectedIndex","selectedKeyPropToUse_1","searchKey","DropdownBase","DropdownInternal","onChanged","changedOpt","_unused","panelProps","isSmall","panelStyles","isItemSelected","multiSelectItemStyles","containsExpandCollapseModifier","document_1","onRenderCaretDown","calloutRenderEdge","hasFocus","onRenderPlaceholder","notifyOnReselect","newIndexes","newArray","array_1","stepValue","stepCounter","separatorClassName","openOnKeyboardFocus","DROPDOWN_HEIGHT","DROPDOWN_ITEM_HEIGHT","highContrastAdjustMixin","highContrastItemAndTitleStateMixin","highContrastBorderState","hasError","isRenderingPlaceholder","panelClassName","calloutClassName","globalClassnames","rootHoverFocusActiveSelectorNeutralDarkMixin","rootHoverFocusActiveSelectorNeutralPrimaryMixin","borderColorError","dropdownItemStyle","dropdownHeaderStyle","selectedItemBackgroundColor","itemSelectors","dropdownItemSelected","dropdownItemDisabled","titleOpenBorderRadius","calloutOpenBorderRadius","Dropdown","ZERO_THRESHOLD","ProgressIndicatorBase","barHeight","percentComplete","progressBarStyles","ariaValueMin","ariaValueMax","progressHidden","onRenderProgress","IndeterminateProgress","IndeterminateProgressRTL","marginBetweenText","textHeight","progressTrackColor","ProgressIndicator","defaultClearButtonProps","inputElementRef","SearchBoxBase","labelText","clearButtonProps","disableAnimation","showIcon","customOnClear","customOnBlur","customOnEscape","customOnSearch","customOnKeyDown","setHasFocus","prevChangeTimestamp","uncastValue","rootElementRef","customOnClearClick","onClear","onClearClick","onFocusCapture","onClickFocus","hasInput","inputIconAlt","inputIconAltHovered","inputBorderDisabled","inputBackgroundHovered","inputBackgroundDisabled","SearchBox","SHIMMER_INITIAL_ITEMS","DEFAULT_SHIMMER_HEIGHT","SHIMMER_LINE_VS_CELL_WIDTH_RATIO","ShimmeredDetailsListBase","onRenderCustomPlaceholder","placeholderElements","gapHeight","shimmerElementsRow","columnIdx","groupWidth","detailsListStyles","enableShimmer","removeFadingOverlay","ariaLabelForShimmer","listClassName","newListProps","getShimmeredDetailsListStyles","ShimmeredDetailsList","ONKEYDOWN_TIMEOUT_DURATION","getSlotStyleFn","sty","getPercent","sliderMin","sliderMax","sliderBoxRef","useSlider","showValue","snapToStep","valueFormat","originFromZero","ranged","sliderLine","unclampedValue","lv","unclampedLowerValue","setLowerValue","lowerValue","steps","clearOnKeyDownTimer","setOnKeyDownTimer","getAriaValueText","valueProps","newUnroundedValue","numDec","roundedValue","newCurrentValue","getPosition","verticalProp","currentPosition","calculateCurrentSteps","sliderPositionRect","sliderLength","stepLength","currentSteps","onMouseMoveOrTouchMove","suppressEventCancelation","onMouseDownOrTouchStart","onMouseUpOrTouchEnd","disposeListeners","onThumbFocus","lowerValueThumbRef","thumbRef","getPositionStyles","getTrackStyles","originValue","valuePercent","lowerValuePercent","originPercentOfLine","activeSectionWidth","topSectionWidth","bottomSectionWidth","valueLabelProps","lowerValueLabelProps","zeroTickProps","trackActiveProps","trackTopInactiveProps","trackBottomInactiveProps","sliderProps","sliderBoxProps","onFocusProp","thumbProps","lowerValueThumbProps","sliderLineProps","SliderBase","titleLabelClassName","showTransitions","pressedActiveSectionColor","hoveredActiveSectionColor","hoveredPressedinactiveSectionColor","restActiveSectionColor","restInactiveSectionColor","disabledActiveSectionColor","disabledInactiveSectionColor","thumbBackgroundColor","thumbBorderColor","thumbDisabledBorderColor","slideBoxActiveSectionStyles","slideBoxInactiveSectionStyles","slideHoverSectionStyles","slideBoxActiveThumbStyles","slideBoxActiveZeroTickStyles","Slider","TextView","TextStyles","block","nowrap","variant","variantObject","Text","ToggleBase","controlledChecked","defaultChecked","inlineLabel","offAriaLabel","offText","onAriaLabel","onToggleClick","onText","setChecked","badAriaLabel","stateTextId","stateText","toggleNativeProps","labelledById","toggleButton","toggleButtonRef","DEFAULT_PILL_WIDTH","DEFAULT_PILL_HEIGHT","DEFAULT_THUMB_SIZE","onOffMissing","pillUncheckedBackground","pillCheckedBackground","pillCheckedHoveredBackground","thumbUncheckedHoveredBackground","pillCheckedDisabledBackground","thumbBackground","thumbCheckedBackground","thumbDisabledBackground","thumbCheckedDisabledBackground","pillBorderColor","pillBorderHoveredColor","pillBorderDisabledColor","textDisabledColor","Toggle","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectProto","objectToString","nativeMax","nativeMin","debounce","lastThis","timerId","lastInvokeTime","maxing","toNumber","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","debounced","isInvoking","isObjectLike","isSymbol","isBinary","lodash_debounce","_mergeNamespaces","UZIP","pushV","UPNG","decodeImage","_getBPP","_decompress","_inflate","_filterZero","_paeth","_IHDR","_copyTile","addErr","dither","_main","compressPNG","compress","_prepareDiff","_updateFrame","quantize","_filterLine","getKDtree","getNearest","planeDst","stats","estats","splitPixels","vecDot","_objectWithoutPropertiesLoose","excluded","sourceKeys","ReactPropTypesSecret","ReactPropTypesSecret_1","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","propFullName","getShim","ReactPropTypes","propTypesModule","hasClass","addClass","replaceClassName","origClass","classToRemove","removeClass","TransitionGroupContext","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","parentGroup","appear","initialStatus","nextIn","nextStatus","exit","enter","mounting","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","doesNotHaveTimeoutOrListener","maybeNextCallback","_this$props","childProps","Transition$1","_addClass","addOneClass","removeOneClass","CSSTransition","_this$resolveArgument","_this$resolveArgument2","_this$resolveArgument3","_this$resolveArgument4","_this$resolveArgument5","_this$resolveArgument6","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","_this$getClassNames","_this$appliedClasses$","n$f","COMMON_MIME_TYPES","toFileWithPath","file","withMimeType","webkitRelativePath","hasExtension","FILES_TO_IGNORE","fromEvent","isDataTransfer","getDataTransferFiles","isChangeEvt","getInputFiles","getFsHandleFiles","fromList","handles","files","toFilePromises","noIgnoredFiles","fromDataTransferItem","fromDirEntry","fwp","fromEntry","fromFileEntry","reader","readEntries","batch","err_1","_default","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","validType","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","_defineProperty","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","_arr","_n","FILE_INVALID_TYPE","FILE_TOO_LARGE","FILE_TOO_SMALL","TOO_MANY_FILES","getInvalidTypeRejectionErr","accept","messageSuffix","getTooLargeRejectionErr","maxSize","getTooSmallRejectionErr","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","accepts","fileMatchSize","isDefined","allFilesAccepted","multiple","maxFiles","_fileAccepted","_fileAccepted2","accepted","_fileMatchSize","_fileMatchSize2","sizeMatch","customErrors","isPropagationStopped","isEvtWithFiles","onDocumentDragOver","isIe","isIeOrEdge","composeEventHandlers","canUseFileSystemAccessAPI","pickerOptionsFromAccept","isMIMEType","isExt","_ref5","acceptPropAsAcceptAttr","_ref6","_ref7","isAbort","isSecurityError","_excluded","_excluded2","_excluded3","_excluded4","enumerableOnly","sym","_objectSpread","_objectWithoutProperties","sourceSymbolKeys","Dropzone","forwardRef","_useDropzone","useDropzone","open","useImperativeHandle","PropTypes","_defaultProps$props","getFilesFromEvent","onDropAccepted","onDropRejected","onFileDialogCancel","onFileDialogOpen","useFsAccessApi","autoFocus","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","acceptAttr","pickerTypes","onFileDialogOpenCb","onFileDialogCancelCb","_useReducer","_useReducer2","dispatch","isFileDialogActive","fsAccessApiWorksRef","onWindowFocus","dragTargetsRef","onDocumentDrop","onErrCb","onDragEnterCb","stopPropagation","fileCount","isDragAccept","isDragReject","onDragOverCb","hasFiles","onDragLeaveCb","targetIdx","setFiles","fileRejections","acceptError","sizeError","onDropCb","openFileDialog","onKeyDownCb","onFocusCb","onBlurCb","onClickCb","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2$refKey","refKey","onInputElementClick","getInputProps","_ref3$refKey","i.Component","e.Component","isObject_1","_freeGlobal","now_1","reWhitespace","trimmedEndIndex","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","Symbol","_Symbol","nativeObjectToString","symToStringTag","getRawTag","isOwn","unmasked","_getRawTag","_objectToString","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike_1","isSymbol_1","toNumber_1","timeWaiting","debounce_1","throttle","throttle_1","patchResizeHandler","resizeCallback","refreshMode","refreshRate","refreshOptions","isSSR","isDOMElement","createNotifier","setSize","handleWidth","handleHeight","ResizeDetector","observerOptions","querySelector","targetDomEl","findDOMNode","renderType","notifyResize","shouldSetSize","skipOnMount","createRef","WrapperTag","childFunction","cloneElement","childArray","PureComponent","useEnhancedEffect","useResizeDetector","skipResize","resizeHandler","resizeObserver","o.render","o.unmountComponentAtNode","undefined","LARGE_ARRAY_SIZE","CORE_ERROR_TEXT","INVALID_TEMPL_VAR_ERROR_TEXT","HASH_UNDEFINED","MAX_MEMOIZE_SIZE","PLACEHOLDER","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","WRAP_BIND_FLAG","WRAP_BIND_KEY_FLAG","WRAP_CURRY_BOUND_FLAG","WRAP_CURRY_FLAG","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","WRAP_FLIP_FLAG","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","HOT_COUNT","HOT_SPAN","LAZY_FILTER_FLAG","LAZY_MAP_FLAG","LAZY_WHILE_FLAG","INFINITY","MAX_SAFE_INTEGER","MAX_INTEGER","MAX_ARRAY_LENGTH","MAX_ARRAY_INDEX","HALF_MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","asyncTag","boolTag","dateTag","domExcTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","proxyTag","regexpTag","setTag","stringTag","weakMapTag","weakSetTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsHostCtor","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","deburredLetters","htmlEscapes","htmlUnescapes","stringEscapes","freeParseFloat","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","types","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","nodeIsRegExp","nodeIsSet","nodeIsTypedArray","apply","arrayAggregator","setter","iteratee","arrayEach","arrayEachRight","arrayEvery","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","asciiToArray","asciiWords","baseFindKey","collection","eachFunc","baseFindIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseSortBy","baseTimes","baseToPairs","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","countHolders","deburrLetter","escapeHtmlChar","escapeStringChar","chr","hasUnicode","hasUnicodeWord","iteratorToArray","mapToArray","overArg","transform","replaceHolders","setToArray","setToPairs","strictLastIndexOf","stringSize","unicodeSize","stringToArray","unicodeToArray","unescapeHtmlChar","unicodeWords","runInContext","Array","Date","Error","Function","Math","Object","RegExp","String","TypeError","arrayProto","funcProto","coreJsData","funcToString","idCounter","maskSrcKey","objectCtorString","oldDash","reIsNative","Buffer","Uint8Array","allocUnsafe","getPrototype","objectCreate","propertyIsEnumerable","splice","spreadableSymbol","symIterator","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeNow","nativeParseInt","nativeRandom","nativeReverse","DataView","Map","Promise","Set","WeakMap","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","lazyClone","copyArray","lazyReverse","lazyValue","isRight","arrLength","getView","iteratees","iterLength","takeCount","baseWrapperValue","iterIndex","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","SetCache","setCacheAdd","setCacheHas","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","baseClamp","arrayShuffle","assignMergeValue","baseAssignValue","objValue","baseAggregator","baseEach","baseAssign","copyObject","baseAssignIn","keysIn","baseAt","skip","get","lower","upper","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","getTag","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","copySymbols","initCloneByTag","stacked","isSet","subValue","isMap","keysFunc","getAllKeysIn","getAllKeys","baseConforms","baseConformsTo","baseDelay","baseDifference","includes","isCommon","valuesLength","valuesIndex","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","baseFill","toInteger","toLength","baseFilter","baseFlatten","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","symbolsFunc","baseGt","baseHas","baseHasIn","baseInRange","baseIntersection","othLength","othIndex","caches","maxLength","seen","baseInverter","baseInvoke","last","baseIsArguments","baseIsArrayBuffer","baseIsDate","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsMap","baseIsMatch","matchData","noCustomizer","srcValue","baseIsNative","isMasked","baseIsRegExp","baseIsSet","baseIsTypedArray","isLength","baseIteratee","identity","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","baseMergeDeep","safeGet","mergeFunc","isTyped","isArrayLikeObject","cloneTypedArray","toPlainObject","baseNth","baseOrderBy","orders","getIteratee","criteria","compareMultiple","basePick","basePickBy","baseSet","basePropertyDeep","basePullAll","indexOf","basePullAt","baseUnset","baseRange","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","low","high","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","baseWhile","isDrop","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","cloneArrayBuffer","arrayBuffer","cloneDataView","cloneRegExp","regexp","cloneSymbol","symbol","typedArray","compareAscending","valIsDefined","valIsReflexive","objCriteria","othCriteria","ordersLength","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","getSymbols","getSymbolsIn","createAggregator","initializer","createAssigner","assigner","sources","guard","isIterateeCall","iterable","createBind","isBind","Ctor","createCtor","wrapper","createCaseFirst","createCompounder","words","deburr","thisBinding","createCurry","arity","getHolder","createRecurry","createHybrid","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","getFuncName","getData","isLaziable","partialsRight","holdersRight","argPos","ary","isAry","isBindKey","isFlip","holdersCount","newHolders","reorder","createInverter","toIteratee","createMathOperation","operator","createOver","arrayFunc","createPadding","chars","charsLength","createPartial","createRange","toFinite","createRelationalOperation","wrapFunc","isCurry","newHoldersRight","newPartials","newPartialsRight","newData","setData","setWrapToString","createRound","createToPairs","createWrap","mergeData","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","isPartial","arrStacked","othStacked","arrValue","othValue","compared","convert","objProps","objLength","othProps","objStacked","skipCtor","objCtor","othCtor","otherFunc","isKeyable","stubArray","ctorString","transforms","getWrapDetails","hasPath","hasFunc","insertWrapDetails","isMaskable","stubFalse","memoizeCapped","memoize","srcBitmask","newBitmask","isCombo","otherArgs","oldArray","shortOut","reference","updateWrapDetails","lastCalled","stamp","remaining","rand","quote","subString","chunk","concat","differenceBy","differenceWith","drop","dropRight","dropRightWhile","dropWhile","fill","findLastIndex","flattenDeep","flattenDepth","fromPairs","intersection","intersectionBy","intersectionWith","join","lastIndexOf","nth","pull","pullAll","pullAllBy","pullAllWith","pullAt","remove","reverse","slice","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sortedUniq","sortedUniqBy","take","takeRight","takeRightWhile","takeWhile","union","unionBy","unionWith","uniq","uniqBy","uniqWith","unzip","unzipWith","without","xor","xorBy","xorWith","zip","zipObject","zipObjectDeep","zipWith","tap","thru","wrapperAt","wrapperChain","wrapperCommit","wrapperNext","wrapperToIterator","wrapperPlant","wrapperReverse","wrapped","wrapperValue","countBy","every","findLast","flatMap","flatMapDeep","flatMapDepth","forEachRight","groupBy","invokeMap","keyBy","orderBy","partition","reduce","reduceRight","negate","sample","sampleSize","shuffle","some","sortBy","after","before","bindKey","curry","curryRight","defer","flip","memoized","overArgs","funcsLength","partial","partialRight","rearg","unary","castArray","cloneWith","cloneDeep","cloneDeepWith","conformsTo","gt","gte","isElement","isEqual","isEqualWith","isFinite","isMatch","isMatchWith","isNaN","isNative","isNull","isNil","isSafeInteger","isWeakMap","isWeakSet","lt","lte","remainder","toSafeInteger","assignIn","assignInWith","assignWith","at","create","propsIndex","propsLength","defaultsDeep","mergeWith","findLastKey","forIn","forInRight","forOwn","forOwnRight","functionsIn","has","invert","invertBy","invoke","mapKeys","mapValues","omitBy","pickBy","setWith","toPairs","toPairsIn","isArrLike","unset","updateWith","valuesIn","random","floating","temp","camelCase","word","capitalize","upperFirst","escapeRegExp","kebabCase","lowerCase","lowerFirst","pad","strLength","padEnd","parseInt","radix","repeat","snakeCase","limit","startCase","startsWith","template","imports","importsKeys","importsValues","isEscaping","isEvaluating","interpolate","reDelimiters","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","variable","attempt","toLower","toUpper","trimEnd","trimStart","truncate","omission","substring","newEnd","unescape","upperCase","bindAll","conforms","defaultTo","flowRight","matchesProperty","methodOf","mixin","noConflict","nthArg","overEvery","overSome","propertyOf","rangeRight","stubObject","stubString","stubTrue","times","toPath","add","augend","addend","ceil","divide","dividend","divisor","maxBy","mean","meanBy","minBy","multiply","multiplier","multiplicand","subtract","minuend","subtrahend","sumBy","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","this","devtoolsModule","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","ObjClass","ObjProto","UNDEF_VALUE","NULL_VALUE","EMPTY","BOOLEAN","FUNCTION","NUMBER","OBJECT","PROTOTYPE","__PROTO__","STRING","UNDEFINED","CONSTRUCTOR","SYMBOL","POLYFILL_TAG","INDEX_OF","LENGTH","DONE","VALUE","NAME","SLICE","CALL","TO_STRING","StrCls","StrProto","MathCls","ArrCls","ArrProto","safe","argArray","defValue","PRIMITIVE_TYPES","_createIs","theType","_createObjIs","theName","objToString","isStrictNullOrUndefined","isPrimitiveType","isPromiseLike","isTruthy","objGetOwnPropertyDescriptor","objHasOwnProperty","objHasOwn","polyObjHasOwn","objForEachKey","theObject","callbackfn","_createKeyValueMap","keyType","valueType","completeFn","theMap","throwError","throwTypeError","_objFreeze","_doNothing","_getProto","objAssign","objKeys","objDeepFreeze","objFreeze","objGetPrototypeOf","createEnum","createEnumKeyMap","createSimpleMap","mapClass","createTypeMap","_wellKnownSymbolMap","asString","GLOBAL_CONFIG_KEY","_globalCfg","_getGlobalValue","_getGlobalConfig","gbl","ERROR_TYPE","dumpObj","propertyValueDump","objType","_slice","_unwrapInstFunction","_unwrapFunctionWithPoly","_unwrapFunction","clsProto","polyFunc","clsFn","theFunc","theArgs","_unwrapProp","mathMax","strSlice","strSubstring","strSubstr","polyStrSubstr","strLeft","UNIQUE_REGISTRY_ID","_polySymbols","_globalSymbolRegistry","gblCfg","_wellKnownSymbolCache","polyNewSymbol","theSymbol","polySymbolFor","registry","newSymbol_1","regId_1","polyGetKnownSymbol","knownName","propMap","_createProp","objDefineProp","objDefineAccessors","getProp","setProp","configurable","enumerable","objDefine","propDesc","_globalLazyTestHooks","_initTestHooks","getLazy","safeGetLazy","createCachedValue","WINDOW","_cachedGlobal","_cachedWindow","_cachedDocument","_cachedNavigator","_cachedHistory","_isWebWorker","_isNode","lazySafeGetInst","getInst","useCached","hasDocument","hasWindow","hasNavigator","getNavigator","hasHistory","getHistory","isNode","isWebWorker","_symbol","_symbolFor","_initSymbol","hasSymbol","getSymbol","getKnownSymbol","noPoly","newSymbol","symbolFor","isIterator","isIterable","_iterSymbol","iterForOf","iterResult","failed","fnApply","arrAppend","elms","elm","arrForEach","theArray","arrIndexOf","arrMap","arrSlice","arrReduce","objCreate","polyObjCreate","tempFunc","_isProtoArray","objSetPrototypeOf","_createCustomError","_setName","baseClass","createCustomError","constructCb","errorBase","theBaseClass","orgName","captureFn","_self","orgProto","_unsupportedError","throwUnsupported","utcNow","polyUtcNow","_createTrimFn","polyStrTrim","strTrim","_fnToString","_objCtrFnString","_gblWindow","_defaultDeepCopyHandler","plainObjDeepCopyHandler","defaultDeepCopyHandlers","arrayDeepCopyHandler","functionDeepCopyHandler","dateDeepCopyHandler","_getSetVisited","visitMap","newPath","theEntry","_deepCopy","userHandler","newCtx","isPlain","isPrim","_copyProps","objCopyProps","objDeepCopy","_doExtend","theArg","deepExtend","obj1","obj2","obj3","obj4","obj5","obj6","objExtend","getLength","_perf","getPerformance","strSplit","setValueByKey","lastKey","strEndsWith","polyStrEndsWith","searchValue","strIndexOf","REF","UNREF","HAS_REF","ENABLED","_createTimerHandler","startTimer","refreshFn","theTimerHandler","_unref","_hasRef","_refresh","_cancel","_setEnabled","_createTimeoutWith","overrideFn","setFn","clearFn","timerFn","scheduleTimeout","createTimeout","strHasOwnProperty","__objAssignFnImpl","__assignFn","extendStaticsFn","__extendsFn","__spreadArrayFn","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynClassNamePrefix","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","_objGetOwnProps","_gbl","_gblInst","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","_getObjProto","newProto","curProto","_forEachProp","lp","_isDynamicCandidate","skipOwn","_throwTypeError","_getInstanceFuncs","thisTarget","instFuncs","_hasVisited","_getBaseFuncs","classProto","useBaseInst","_instFuncProxy","funcHost","instFuncTable","baseFuncs","baseProto","visited","_getInstFunc","currentDynProtoProxy","instFunc","canAddInst","objProto","protoFunc","_getProtoFunc","_populatePrototype","baseInstFuncs","setInstanceFunc","_createDynamicPrototype","dynProtoProxy","instFuncs_1","_checkPrototype","thisProto","_getObjName","unknownValue","dynamicProto","delegateFunc","perfOptions","createEnumStyle","createValueMap","_DYN_TO_LOWER_CASE","_DYN_BLK_VAL","_DYN_LENGTH","_DYN_RD_ONLY","_DYN_NOTIFY","_DYN_WARN_TO_CONSOLE","_DYN_THROW_INTERNAL","_DYN_SET_DF","_DYN_WATCH","_DYN_LOGGER","_DYN_APPLY","_DYN_PUSH","_DYN_SPLICE","_DYN_HDLR","_DYN_CANCEL","_DYN_INITIALIZE","_DYN_IDENTIFIER","_DYN_IS_INITIALIZED","_DYN_GET_PLUGIN","_DYN_POLL_INTERNAL_LOGS","_DYN_NAME","_DYN_TIME","_DYN_PROCESS_NEXT","_DYN_GET_PROCESS_TEL_CONT0","_DYN_GET_NOTIFY_MGR","_DYN_ADD_NOTIFICATION_LIS1","_DYN_REMOVE_NOTIFICATION_2","_DYN_ENABLED","_DYN_STOP_POLLING_INTERNA3","_DYN_UNLOAD","_DYN_ON_COMPLETE","_DYN_VERSION","_DYN_LOGGING_LEVEL_CONSOL4","_DYN_CREATE_NEW","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_MESSAGE","_DYN_IS_ASYNC","_DYN_DIAG_LOG","_DYN__DO_TEARDOWN","_DYN_UPDATE","_DYN_GET_NEXT","_DYN_SET_NEXT_PLUGIN","_DYN_USER_AGENT","_DYN_SPLIT","_DYN_NODE_TYPE","_DYN_REPLACE","_DYN_LOG_INTERNAL_MESSAGE","_DYN_TYPE","_DYN_HANDLER","_DYN_IS_CHILD_EVT","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_COMPLETE","_DYN_TRACE_ID","_DYN_SPAN_ID","_DYN_TRACE_FLAGS","aggregationErrorType","throwAggregationError","sourceErrors","theMessage","srcError","doAwaitResponse","doAwait","resolveFn","rejectFn","finallyFn","doFinally","STRING_STATES","DISPATCH_EVENT","_hasInitEvent","emitEvent","evtName","populateEvent","useNewEvent","theEvt","theConsole","STR_PROMISE","NODE_UNHANDLED_REJECTION","UNHANDLED_REJECTION","_currentPromiseId","_uniquePromiseId","_unhandledRejectionTimeout","_hasPromiseRejectionEvent","dumpFnObj","_createPromise","newPromise","processor","additionalArgs","_state","_hasResolved","_settledValue","_queue","_id","_handled","_unHandledRejectionHandler","_thePromise","_then","onResolved","thenPromise","_processQueue","_catch","_finally","onFinally","thenFinally","catchFinally","_strState","_createSettleIfFn","allowState","theValue","_notifyUnhandledRejection","_toString","_rejectFn","_createAllPromise","values_1","pending_1","_processPendingItems","timeoutItemProcessor","callbackTimeout","createAsyncPromise","_isPromiseSupported","createNativePromise","PrmCls","thePromise","_reject","_promiseCreator","createPromise","createAllPromise","UNDEFINED_VALUE","STR_EMPTY","STR_CHANNELS","STR_CORE","STR_CREATE_PERF_MGR","STR_DISABLED","STR_EXTENSION_CONFIG","STR_EXTENSIONS","STR_PROCESS_TELEMETRY","STR_PRIORITY","STR_EVENTS_SENT","STR_EVENTS_DISCARDED","STR_EVENTS_SEND_REQUEST","STR_PERF_EVENT","STR_GET_PERF_MGR","STR_DOMAIN","STR_PATH","STR_NOT_DYNAMIC_ERROR","strGetPrototypeOf","rCamelCase","rNormalizeInvalid","rLeadingNumeric","isNotNullOrUndefined","normalizeJsName","_all","strContains","toISOString","getExceptionName","valChk","srcChk","getSetValue","_createProxyFunction","srcFunc","originalArguments","proxyAssign","chkSet","proxyFunctionAs","overwriteTarget","proxyFunctions","functionsToProxy","theFuncName","createClassFromInterface","class_1","optimizeObject","ObjAssign","argLen","deep","isArgArray","isArgObj","propOk","isNewArray","isFeatureEnabled","feature","cfg","rlt","ft","strDocumentMode","strLocation","strConsole","strJSON","strCrypto","strMsCrypto","strReactNative","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","supported","tmp","getLocation","checkForMock","mockLocation","getConsole","hasJSON","getJSON","getCrypto","getMsCrypto","isReactNative","getIEVersion","userAgentStr","navigator_1","tridentVer","isBeaconsSupported","isFetchSupported","withKeepAlive","isSupported","useXDomainRequest","isXhrSupported","xmlHttpRequest","dispatchEvent","evnt","createCustomDomEvent","detail","sendCustomEvent","customDetails","UInt32Mask","MaxUInt32","SEED1","SEED2","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","randomValue","random32","signed","mwcRandom32","newId","base64chars","instanceName","_dataUid","_canAcceptData","_getCache","theCache","createUniqueNamespace","includeVersion","createElmNodeData","addDefault","_isConfigDefaults","_getDefault","dynamicHandler","theConfig","cfgDefaults","isDefaultValid","fallbacks","fbValue","_resolveDefaultValue","newValue_1","_applyDefaultValue","mergeDf","blkDynamicValue","usingDefault","cfgValue","dfName","dfValue","CFG_HANDLER_LINK","BLOCK_DYNAMIC","FORCE_DYNAMIC","_cfgDeepCopy","target_1","getDynamicConfigHandler","blockDynamicConversion","_canMakeDynamic","getFunc","throwInvalidAccess","arrayMethodsToPatch","_throwDynamicError","_patchArray","orgMethod","_makeDynamicObject","_getOwnPropGetter","_createDynamicProperty","checkDynamic","isObjectOrArray","_getProperty","activeHandler","_setProperty","isReferenced","_setDynamicProperty","getter","valueState","newIsObjectOrArray","isDynamic","_setDynamicPropertyState","flags","inPlace","rdOnly","blkProp","symPrefix","symPostfix","_createState","cfgHandler","dynamicPropertySymbol","dynamicPropertyReadOnly","dynamicPropertyReferenced","dynamicPropertyBlockValue","dynamicPropertyDetail","_waitingHandlers","_watcherTimer","theState","_useHandler","prevWatcher","_notifyWatchers","notifyHandlers","watcherFailures_1","_addWatcher","_trackHandler","_createAndUseHandler","configHandler","_createDynamicHandler","newTarget","_setValue","_watch","_block","allowUpdate","prevUpd","_rdOnly","_blkPropValue","_applyDefaults","_logInvalidAccess","createDynamicConfig","onConfigChange","runTargetUnload","isAsync","doUnloadAll","resolved","ChannelControllerPriority","_stringToBoolOrDefault","cfgDfMerge","cfgDfSet","cfgDfValidate","fallBackName","cfgDfBoolean","cfgDfString","listenerFuncs","_aiNamespace","_debugListener","_listenerProxyFunc","dbgExt","getDebugExt","_getExtensionNamespace","getDebugListener","STR_WARN_TO_CONSOLE","AiNonUserActionablePrefix","AiUserActionablePrefix","AIInternalMessagePrefix","_logFuncs","_sanitizeDiagnosticText","_logToConsole","logFunc","_InternalLogMessage","msgId","msg","isUserAct","strProps","diagnosticText","safeGetLogger","core","DiagnosticLogger","_messageCount","_messageLogged","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebug","_unloadHandler","_setDefaultsFromConfig","severity","_debugExtMsg","messageKey","_logInternalMessage","_areInternalMessagesThrottled","throttleLimitMessage","throttleMessage","_getLogger","_throwInternal","_warnToConsole","strToGMTString","strToUTCString","strCookie","strExpires","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_doc","_cookieCache","_globalCookieConfig","rootDefaultConfig","_getDoc","_gblCookieMgr","createCookieMgr","_isMgrEnabled","cookieMgr","_isIgnoredCookie","cookieMgrCfg","_isBlockedCookie","_isCfgEnabled","rootConfig","cookieMgrConfig","isCfgEnabled","cookieEnabled","safeGetCookieMgr","cookieCfg","_path","_domain","unloadHandler","_enabled","_getCookieFn","_setCookieFn","_delCookieFn","_getCookieValue","_setCookieValue","areCookiesSupported","gblManager","maxAgeSec","_extractParts","_isIE","nowMs","expireMs","expiry","_formatDate","location_1","uaDisallowsSameSiteNone","_formatCookieValue","thePart","theDate","theCookie","_runListeners","NotificationManager","perfEvtsSendAll","_listeners","sendReason","perfEvent","_finishUnload","waiting","asyncUnload","strExecutionContextKey","strParentContextKey","strChildrenContextKey","_defaultPerfManager","PerfEvent","payloadDetails","theDetails_1","childTime","childEvts","childEvt","PerfManager","manager","doPerfActiveKey","doPerf","mgrSource","getSource","perfMgr","perfEvt","currentActive","getGblPerfMgr","generateW3CId","hexValues","oct","clockSequenceHi","DEFAULT_VERSION","INVALID_VERSION","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","invalidValue","_formatValue","_formatFlags","createTraceParent","spanId","isValidTraceId","isValidSpanId","formatTraceParent","pluginStateData","_getPluginState","plugin","initializePlugins","processContext","extensions","initPlugins","lastPlugin","pluginState","thePlugin","isInitialized","sortPlugins","plugins","extA","extB","bHasProcess","createDistributedTraceContext","parentCtx","newTraceFlags","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_getNextProxyStart","startAt","createTelemetryProxyChain","_createInternalContext","telemetryChain","_nextProxy","_onComplete","_moveNext","_resolveExtCfg","_getConfig","nextPlugin","_iterateChain","_addOnComplete","onComplete","that","nextProxy","completeDetails","_getExtCfg","identifier","createIfMissing","idCfg","extCfg","extConfig","createProcessTelemetryContext","internalContext","_processNext","_createNew","createProcessTelemetryUnloadContext","unloadState","createProcessTelemetryUpdateContext","firstProxy","lastProxy_1","newProxy","createTelemetryPluginProxy","hasProcessTelemetry","hasSetNext","chainId","proxyChain","_processTelemetry","_unloadPlugin","_updatePlugin","_getTelCtx","itemCtx","_processChain","processPluginFn","hasRun","hasRunContext","nextId","hasNextRun","_callProcessTelemetry","unloadCtx","_callTeardown","pluginCore","updateCtx","_callUpdate","createUnloadHandlerContainer","_addHandler","_runHandlers","createUnloadHookContainer","_hooks","_doUnload","oldHooks","_addHook","hooks","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hookContainer","_initDefaults","pluginChain","_setDefaults","unloadDone","theUnloadCtx","theUnloadState","_unloadCallback","updateDone","theUpdateCtx","theUpdateState","_updateCallback","currentCtx","rootCtx","_addInitializer","_initializers","telemetryInitializer","theInitializer","_runInitializers","doNotSendItem","telemetryInitializersCount","TelemetryInitializerPlugin","_base","strValidationError","strNotificationManager","strSdkUnloadingError","strSdkNotInitialized","_createPerfManager","notificationMgr","_validateExtensions","channelPriority","allExtensions","coreExtensions","channels","extPriorities","extPriority","_isPluginPresent","exists","_deepMergeConfig","newValues","_findWatcher","newWatcher","theListener","_addDelayedCfgListener","fnd","_registerDelayedCfgListener","unloadHdl","AppInsightsCore","_configHandler","_isInitialized","_logger","_eventQueue","_notificationManager","_perfManager","_cfgPerfManager","_cookieManager","_pluginChain","_configExtensions","_channelConfig","_channels","_isUnloading","_telemetryInitializerPlugin","_internalLogsEventName","_evtNamespace","_unloadHandlers","_traceCtx","_instrumentationKey","_cfgListeners","_extensions","_pluginVersionStringArr","_pluginVersionString","_internalLogPoller","_internalLogPollerListening","_forceStopInternalLogPoller","notificationManager","_addUnloadHook","_initDebugListener","_initPerfManager","cfgExtensions","_initPluginChain","teeController","controls","channel","telemetryItem","_notifyInvalidEvent","_createTelCtx","createPerfMgr","eventQueue","_startLogPoller","alwaysStart","shouldStart","isRunning","_flushInternalLogs","unloadComplete","cbTimeout","processUnloadCtx","_getPluginChain","flushComplete","_flushChannels","_getPlugin","replaceExisting","addCb","_logOrThrowError","existingPlugin","_addPlugin","removedPlugins_1","_removePlugins","mergeExisting","_doUpdate","createNew","traceCtx","unloadHook","_setPluginVersions","thePlugins","_addPluginVersions","ver","theCtx","theExtensions","pluginIdentifier","theExt","channelHosts","removeCb","pluginsToRemove","removeComplete","unloadChain","newConfigExtensions","newChannelConfig","newQueue","callBack","doneIterating","cbTimer","doCallback","flushCtx","handled_1","disableDbgExt","enablePerfMgr","strOnPrefix","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","strEvents","strVisibilityChangeEvt","strPageHide","strUnload","strBeforeUnload","strPageHideNamespace","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","evtNamespace","theNamespace_1","parsedEvent","_getRegisteredEvents","aiEvts","registeredEvents","_doDetach","handlerRef","_doAttach","_doUnregister","unRegFn","theEvent","_unregisterEvents","eventCache","evtType","mergeEvtNamespace","theNamespace","namespaces","newNamespaces","eventOn","registeredEvent","eventOff","evtName_1","found_1","regEvent","addEventHandler","removeEventHandler","_addEventListeners","excludeEvents","addEventListeners","removeEventListeners","addPageUnloadEventListener","removePageUnloadEventListener","addPageHideEventListener","_handlePageVisibility","pageUnloadAdded","removePageHideEventListener","aiInstrumentHooks","cbNames","_arrLoop","_doCallbacks","callDetails","cbArgs","hookCtx","cbks","orgEx","hookErrorCb","_createFunctionHook","aiHook","funcThis","orgArgs","funcArgs","_replaceArg","_createArgs","_getOwner","checkPrototype","checkParentProto","owner","InstrumentProto","InstrumentFunc","_createInstrumentHook","newFunc","theHook","InstrumentEvent","DisabledPropertyName","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","DEFAULT_BREEZE_PATH","strNotSpecified","strIkey","RequestHeaders","_DYN_INGESTIONENDPOINT","_DYN_TO_STRING","_DYN_REMOVE_ITEM","_DYN_COUNT","_DYN_PRE_TRIGGER_DATE","_DYN_DISABLED","_DYN_INTERVAL","_DYN_DAYS_OF_MONTH","_DYN_DATE","_DYN_GET_UTCDATE","_DYN_STRINGIFY","_DYN_PATHNAME","_DYN_CORRELATION_HEADER_E0","_DYN_EXCEPTIONS","_DYN_PARSED_STACK","_DYN_PROPERTIES","_DYN_MEASUREMENTS","_DYN_SIZE_IN_BYTES","_DYN_TYPE_NAME","_DYN_SEVERITY_LEVEL","_DYN_PROBLEM_GROUP","_DYN_IS_MANUAL","_DYN__CREATE_FROM_INTERFA1","_DYN_ASSEMBLY","_DYN_FILE_NAME","_DYN_HAS_FULL_STACK","_DYN_LEVEL","_DYN_METHOD","_DYN_LINE","_DYN_DURATION","_DYN_RECEIVED_RESPONSE","dataSanitizeKeyAndAddUniqueness","origLength","dataSanitizeKey","uniqueField","dsPadNumber","nameTrunc","dataSanitizeString","valueTrunc","dataSanitizeUrl","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeException","exception","exceptionTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","tempMeasurements_1","dataSanitizeId","_msgId","inputTrunc","_document","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","urlParseHost","urlGetAbsoluteUrl","urlGetCompleteUrl","inclPort","fullHost","urlParseFullHost","port","_internalEndpoints","_correlationIdPrefix","isInternalApplicationInsightsEndpoint","endpointUrl","correlationIdCanIncludeCorrelationHeader","currentHost","requestHost","includedDomains","matchExists_1","excludedDomains","correlationIdGetCorrelationContext","responseHeader","correlationIdGetCorrelationContextValue","keyValues","keyValue","AjaxHelperParseDependencyPath","commandName","parsedUrl","pathName","dateTimeUtilsNow","perf","dateNow","dateTimeUtilsDuration","createDistributedTraceContextFromTrace","telemetryTrace","StorageType","_canUseLocalStorage","_canUseSessionStorage","_storagePrefix","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","getGlobalInst","fail","_getSessionStorageObject","utlCanUseSessionStorage","utlDisableStorage","utlSetStoragePrefix","storagePrefix","utlEnableStorage","utlGetLocalStorage","utlSetLocalStorage","utlRemoveStorage","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","THROTTLE_STORAGE_PREFIX","ThrottleMgr","namePrefix","_config","_localStorageObj","_isTriggered","_namePrefix","_isReady","_isSpecificDaysGiven","_initConfig","localObj","_getLocalStorageObjByKey","_getCfgByKey","_canThrottle","_isTrigger","_getQueueByKey","_flushMessage","result_1","isFlushed","isReady","flushAll","msgID","saveUnsentMsg","isSampledIn","_canSampledIn","localStorageObj","canThrottle","throttled","isTriggered","localStorageName","_getLocalStorageName","_resetLocalStorage","_sendMessage","_setCfgByKey","coreConfig","configMgr","curCfg","configInterval","_getIntervalConfig","monthInterval","dayInterval","canUseLocalStorage","curDate","_getThrottleDate","monthCheck","monthExpand","_checkInterval","dayCheck","daySpan","msgKey","fix","_isTriggeredOnCurDate","preTriggerDate","_getLocalStorageObj","storageName","storageObj","curObj","isTrigger","_FIELDS_SEPARATOR","_FIELD_KEY_VALUE_SEPARATOR","parseConnectionString","connectionString","kvPairs","kv","kvParts","locationPrefix","Envelope","Event","NoMethod","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_stringify","convertToString","_formatMessage","errorType","evtMessage","_isExceptionDetailsInternal","_isExceptionInternal","_isStackDetails","_convertStackObj","errorStack","_getOperaStack","_getStackFromErrorObj","errorObj","_formatStackTrace","stackDetails","_parseStack","parsedStack","frames","level_1","totalSizeInBytes_1","frame","theFrame","_StackFrame","parsedFrame","exceptionParsedStackThreshold","acceptedLeft","acceptedRight","lSize","rSize","howMany","_getErrorType","typeName","_formatErrorCode","Exception","severityLevel","_ExceptionDetails","lineNumber","columnNumber","errorSrc","exceptions","exceptionData","problemGroup","isManual","exceptionDetailsInterface","assembly","exceptionDetails","sourceFrame","DataPoint","Metric","stdDev","dataPoint","strEmpty","msToTimeSpan","totalms","sec","isCrossOriginError","PageView","RemoteDependencyData","success","resultCode","requestAPI","correlationContext","dependencyFields","Trace","PageViewPerformance","unused","cs4BaseData","Data","baseType","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","createTelemetryItem","envelopeName","customProperties","systemProperties","iKey","Extensions","CtxTagKeys","createDomEvent","_disableEvents","createOfflineListener","parentEvtNamespace","_navigator","_isListening","listenerList","rState","uState","_currentState","calCurrentState","_enableEvents","_setOnline","_setOffline","_isOnline","listnerNoticeCheck","offlineState","setOnlineState","_unload","addListener","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","defaultReactExtensionConfig","ReactPlugin","_analyticsPlugin","_extensionConfig","_unlisten","_pageViewTimer","_pageViewTracked","_addHistoryListener","pageViewTelemetry","_getAnalytics","asyncCallback","locationListener","locn","ReactPlugin$1","_DYN_IS_STORAGE_USE_DISAB0","_DYN__ADD_HOOK","_DYN_CORE","_DYN_DATA_TYPE","_DYN_ENVELOPE_TYPE","_DYN_TRACK","_DYN_TRACK_PAGE_VIEW","_DYN_TRACK_PREVIOUS_PAGE_1","_DYN_SEND_PAGE_VIEW_INTER2","_DYN_START_TIME","_DYN_SEND_PAGE_VIEW_PERFO3","_DYN_POPULATE_PAGE_VIEW_P4","_DYN_HREF","_DYN_SEND_EXCEPTION_INTER5","_DYN_EXCEPTION","_DYN_ERROR","_DYN__ONERROR","_DYN_ERROR_SRC","_DYN_LINE_NUMBER","_DYN_COLUMN_NUMBER","_DYN__CREATE_AUTO_EXCEPTI6","_DYN_ADD_TELEMETRY_INITIA7","_DYN_OVERRIDE_PAGE_VIEW_D8","_DYN_AUTO_TRACK_PAGE_VISI9","_DYN_IS_BROWSER_LINK_TRAC10","_DYN_ENABLE_AUTO_ROUTE_TR11","_DYN_ENABLE_UNHANDLED_PRO12","_DYN_AUTO_UNHANDLED_PROMI13","_DYN_GET_ENTRIES_BY_TYPE","_DYN_IS_PERFORMANCE_TIMIN14","_DYN_GET_PERFORMANCE_TIMI15","_DYN_NAVIGATION_START","_DYN_SHOULD_COLLECT_DURAT16","_DYN_IS_PERFORMANCE_TIMIN17","_DYN_RESPONSE_START","_DYN_REQUEST_START","_DYN_LOAD_EVENT_END","_DYN_RESPONSE_END","_DYN_CONNECT_END","_DYN_PAGE_VISIT_START_TIM18","PageViewManager","appInsights","overridePageViewDuration","pageViewPerformanceManager","queueTimer","itemQueue","pageViewPerformanceSent","firstPageViewSent","_startTimer","allItems","doFlush","_addQueue","pageView","uri","navigationEntries","loadEventStart","duration_1","pageViewSent","customDuration","maxDurationLimit","processed","pageViewPerformance","MAX_DURATION_ALLOWED","botAgentNames","_isPerformanceTimingSupported","_isPerformanceNavigationTimingSupported","_isPerformanceTimingDataReady","timing","_getPerformanceTiming","_getPerformanceNavigationTiming","_shouldCollectDuration","durations","isGoogleBot","PageViewPerformanceManager","navigationTiming","network","dom","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","prevPageVisitData","stopPageVisitTimer","currPageVisitDataStr","PageVisitData","pageVisitEndTime","pageVisitDataJsonStr","Timing","strEvent","_dispatchEvent","_getReason","MinMilliSeconds","_chkConfigMilliseconds","_chkSampling","_updateStorageUsage","AnalyticsPlugin","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_extConfig","_autoTrackPageVisitTime","_prevUri","_currUri","EventTelemetry","metric","inPv","inPvp","theError","exceptionPartB","_sendCORSException","_populateDefaults","pageVisitTime","trackPageVisitTime","pageViewItem","_updateExceptionTracking","_updateLocationChange","_addDefaultTelemetryInitializers","browserLinkPaths_1","dropBrowserLinkRequests","envelope","remoteData","_addUnhandledPromiseRejectionTracking","_history","strUndefined","_getDistributedTraceCtx","distributedTraceCtx","_popstateHandler","_locationChangeHandler","traceLocationName","_location","_DYN_FEATURE_OPT_IN","_DYN_ON_CFG_CHANGE_RECEIV0","_DYN_NON_OVERRIDE_CONFIGS","_DYN_SCHEDULE_FETCH_TIMEO1","replaceByNonOverrideCfg","nonOverrideConfigs","curLevel","maxLevel","exceedMaxLevel","curCfg_1","nonOverrideVal","ON","OFF","resolveCdnFeatureCfg","cdnCfg","userOptInDetails","cdnFt","cdnM","cdnOnV","cdnOffV","userFt","userM","userOnV","userOffV","blockCdn","mFld","onFld","offFld","onV","offV","applyCdnfeatureCfg","optInMap","cdnConfig_1","featureVal","_overrideCdnCfgByFeature","ftVal","dVal","EVENT_NAME","STR_GET_METHOD","FETCH_TIMEOUT","udfVal","defaultNonOverrideCfg","_defaultConfig","CfgSyncPlugin","_mainConfig","_evtName","_cfgUrl","_timeoutHandle","_receiveChanges","_broadcastChanges","_blkCdnCfg","_fetchTimeout","_retryCnt","_onCfgChangeReceive","_nonOverrideConfigs","_fetchFn","_overrideFetchFn","_overrideSyncFn","_paused","_clearScheduledTimer","_setupTimer","_setCfg","_sendCfgsyncEvents","_updateEventListenerName","_eventOff","preBlkCdn","_onFetchComplete","newEvtName","_getFetchFnInterface","isAutoSync","global_1","_addEventListener","_fetchSender","_xhrSender","oncomplete","_doOnComplete","xhr_1","JSON_1","global_2","cfgEvent","newCfg","_replaceTartgetByKeys","_cfg","STR_DURATION","_DYN_TAGS","_DYN_DEVICE_TYPE","_DYN_DATA","_DYN__GET","_DYN_ENQUEUE","_DYN_EVENTS_LIMIT_IN_MEM","_DYN_EMIT_LINE_DELIMITED_0","_DYN_CLEAR","_DYN_BATCH_PAYLOADS","_DYN_MARK_AS_SENT","_DYN_CLEAR_SENT","_DYN_BUFFER_OVERRIDE","_DYN__BUFFER__KEY","_DYN__SENT__BUFFER__KEY","_DYN_CONCAT","_DYN__MAX__BUFFER__SIZE","_DYN_SEND_POST","_DYN_TRIGGER_SEND","_DYN__SENDER","_DYN_CUSTOM_HEADERS","_DYN_MAX_BATCH_SIZE_IN_BY1","_DYN_ONUNLOAD_DISABLE_BEA2","_DYN_IS_BEACON_API_DISABL3","_DYN_ALWAYS_USE_XHR_OVERR4","_DYN_ENABLE_SESSION_STORA5","_DYN__BUFFER","_DYN_ONUNLOAD_DISABLE_FET6","_DYN_DISABLE_SEND_BEACON_7","_DYN_INSTRUMENTATION_KEY","_DYN_UNLOAD_TRANSPORTS","_DYN_CONVERT_UNDEFINED","_DYN_MAX_BATCH_INTERVAL","_DYN_SERIALIZE","_DYN__XHR_READY_STATE_CHA8","_DYN__ON_ERROR","_DYN__ON_PARTIAL_SUCCESS","_DYN__ON_SUCCESS","_DYN_ITEMS_ACCEPTED","_DYN_ITEMS_RECEIVED","_DYN_BASE_TYPE","_DYN_SAMPLE_RATE","_DYN_ORI_PAYLOAD","_DYN_SET_REQUEST_HEADER","_DYN_EVENTS_SEND_REQUEST","_DYN_GET_SAMPLING_SCORE","_DYN_GET_HASH_CODE_SCORE","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","_extractPartAExtensions","envTags","itmExt","itmTags","extUser","extApp","extDevice","web","envData","envBaseData","envProps","extOs","extTrace","tgs","theTags","EnvelopeCreator","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","envelopeType","iKeyNoDashes","EnvelopeCreatorInit","DependencyEnvelopeCreator","customMeasurements","remoteDepData","EventEnvelopeCreator","eventData","ExceptionEnvelopeCreator","exData","MetricEnvelopeCreator","baseData","baseMetricData","PageViewEnvelopeCreator","currentContextId","pageTags","pageViewData","PageViewPerformanceEnvelopeCreator","TraceEnvelopeCreator","BaseSendBuffer","_buffer","_bufferFullMessageSent","canUseSessionStorage","newBuffer","SessionStorageSendBuffer","ArraySendBuffer","bufferItems","_getBuffer","notDeliveredItems","_setBuffer","_removePayloadsFromBuffer","sentElements","unsentItems","sentItems","payloads","prefixedKey","bufferJson","buffer_1","Serializer","output","_serializeObject","circularReferenceCheck","_serializeStringMap","_serializeArray","contract","isPresent","isObj","expectedType","MIN_INPUT_LENGTH","HashCodeScoreGenerator","SamplingScoreGenerator","hashCodeGenerator","Sample","sampleRate","samplingPercentage","EMPTY_STR","FetchSyncRequestSizeLimitBytes","_getResponseText","isOverrideFn","httpXHROverride","_prependTransports","theTransports","newTransports","defaultAppInsightsChannelConfig","EnvelopeTypeCreator","Sender","_consecutiveErrors","_retryAt","_lastSend","_serializer","_stamp_specific_redirects","_headers","_syncFetchPayload","_syncUnloadSender","_offlineListener","_endpointUrl","_orgEndpointUrl","_maxBatchSizeInBytes","_beaconSupported","_beaconOnUnloadSupported","_beaconNormalSupported","_customHeaders","_disableTelemetry","_convertUndefined","_isRetryDisabled","_maxBatchInterval","_sessionStorageUsed","_bufferOverrideUsed","_enableSendPromise","_alwaysUseCustomSend","_disableXhr","_fetchKeepAlive","_xhrSend","_fallbackSend","_disableBeaconSplit","_checkMaxSize","_doUnloadSend","diagLog","senderConfig","customHeader","bufferOverride","shouldUpdate","_validateInstrumentationKey","customInterface","httpInterface","syncInterface","_getSenderInterface","xhrInterface","_doSend","_fetchKeepAliveSender","syncTransports","transport","diagLogger","isValidate","_validate","aiEnvelope","_getEnvelope","countOfItemsInPayload","_checkResponsStatus","_formatErrorMessageXhr","forcedSender","_notifySendRequest","ieVer","_createPayload","_serialize","_batch","errors_1","extracted","_isRetriable","_resendPayload","xdr","responseText","_parseResponse","_formatErrorMessageXdr","_isSampledIn","defaultEnvelopeIkey","valid","transports","syncSupport","transportType","sendPostFunc","_xdrSender","_beaconSender","_getOnComplete","sendInterface","markAsSent","payloadData","_getPayload","sync","_doFetchSender","incomingPayload","incomingSize","responseUrl","_checkAndUpdateEndPointUrl","offlineBackOffMultiplier","_doBeaconSend","plainTextBatch","queued","internalPayload","droppedPayload","thePayload","resolveFunc","rejectFunc","endPointUrl","oriPayload","payloadSize","batchLength","ignoreResponse","responseHandled","response_1","resp","linearFactor","payload_1","_setRetryTime","SlotDelayInSeconds","delayInSeconds","backOffSlot","backOffDelay","retryAfterTimeSpan","retryInterval","timerValue","statusCode","hostingProtocol","_getNotifyMgr","sendRequest","instrumentationKey","disableValidation","disableIKeyValidationFlag","UUID_Regex","orig","convertUndefined","creator","STR_PROPERTIES","_DYN_REQUEST_URL","_DYN_INST","_DYN_CONTEXT","_DYN_ABORTED","_DYN_TRACE_ID0","_DYN_SPAN_ID1","_DYN_INCLUDE_CORRELATION_2","_DYN_GET_ABSOLUTE_URL","_DYN_HEADERS","_DYN_REQUEST_HEADERS","_DYN_TRACK_DEPENDENCY_DAT3","_DYN_ENABLE_REQUEST_HEADE4","_DYN_ENABLE_AJAX_ERROR_ST5","_DYN_ENABLE_AJAX_PERF_TRA6","_DYN_MAX_AJAX_CALLS_PER_V7","_DYN_EXCLUDE_REQUEST_FROM8","_DYN_ADD_REQUEST_CONTEXT","_DYN_DISABLE_AJAX_TRACKIN9","_DYN_AJAX_PERF_LOOKUP_DEL10","_DYN_DISABLE_FETCH_TRACKI11","_DYN_ENABLE_RESPONSE_HEAD12","_DYN_STATUS","_DYN_STATUS_TEXT","_DYN_HEADER_MAP","_DYN_OPEN_DONE","_DYN_SEND_DONE","_DYN_REQUEST_SENT_TIME","_DYN_ABORT_DONE","_DYN_GET_TRACE_ID","_DYN_GET_TRACE_FLAGS","_DYN_ERROR_STATUS_TEXT","_DYN_STATE_CHANGE_ATTACHE13","_DYN_RESPONSE_TEXT","_DYN_RESPONSE_FINISHED_TI14","_DYN__CREATE_TRACK_ITEM","_DYN_RESPONSE","_DYN_GET_ALL_RESPONSE_HEA15","_DYN_GET_PART_APROPS","_DYN_PERF_MARK","_DYN_PERF_TIMING","_DYN_AJAX_DIAGNOSTICS_MES16","_DYN_CORRELATION_CONTEXT","_DYN_AJAX_TOTAL_DURATION","_DYN_EVENT_TRACE_CTX","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","strPerf","perfData","_populatePerfData","ajaxData","dependency","propsSet","strName","strStart","strEnd","strDomainLookup","strConnect","strRedirect","strRequest","strResponse","strStartTime","strDomainLookupStart","strDomainLookupEnd","strConnectStart","strConnectEnd","strRequestStart","strRequestEnd","strResponseStart","strResponseEnd","strRedirectStart","strRedirectEnd","strTransferSize","strEncodedBodySize","strDecodedBodySize","strServerTiming","serverTiming","server_1","XHRMonitoringState","ajaxRecord","strResponseText","ajaxType","enableRequestHeaderTracking","getResponse","partA","traceExt","AJAX_MONITOR_PREFIX","strDiagLog","AJAX_DATA_CONTAINER","STR_FETCH","ERROR_HEADER","ERROR_PREFIX","ERROR_POSTFIX","ERROR_NOT_SENT","CORRELATION_HEADER_ERROR","CUSTOM_REQUEST_CONTEXT_ERROR","FAILED_TO_CALCULATE_DURATION_ERROR","_markCount","_supportsFetch","strPrototype","_supportsAjaxMonitoring","ajaxMonitorInstance","ajaxDataId","xhrData","theOpen","_throwInternalCritical","_getAjaxData","_addSharedXhrHeaders","_isHeaderSet","_getFailedAjaxDiagnosticsMessage","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","_indexOf","theHandler","_processDependencyContainer","_processDependencyListeners","initializersCount","BLOB_CORE","DfltAjaxCorrelationHeaderExDomains","_internalExcludeEndpoints","AjaxMonitor","_fetchInitialized","_xhrInitialized","_currentWindowHost","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_context","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_disabledUrls","_disableAjaxTracking","_disableFetchTracking","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","_ajaxDataId","_dependencyHandlerId","_dependencyListeners","_dependencyInitializers","_ignoreHeaders","_maxAjaxPerfLookupAttempts","_ajaxPerfLookupDelay","_distributedTracingMode","_appId","_polyfillInitialized","_instrumentXhr","_instrumentFetch","_populateContext","_reportDependencyInternal","currentWindowHost","appId","traceFlags","traceParent","dependencyListener","dependencyInitializer","propExt","_canIncludeHeaders","fetch","isPolyfill","fetchData","_isDisabledRequest","_createFetchRecord","newInit","fetchData_1","_reportFetchMetrics","ajaxResponse","_getFetchCorrelationContext","responseHeaderMap_1","_hookProto","_isMonitoredXhrInstance","_openHandler","_attachToOnReadyStateChange","_createMarkId","theUrl","theRegex","idx2","excludeAjaxDataValidation","ajaxValidation","traceID","spanID","xhrRequestData","ajaxDataCntr","_onAjaxComplete","exceptionText","_reportXhrError","failedProps","errorProps","_findPerfResourceEntry","_getAjaxCorrelationContext","responseHeaderMap_2","sysProperties","responseHeadersString","performance_1","markId","initiatorType","trackCallback","reportError","perfMark","performance","maxAttempts","locateResourceTiming","perfTiming","_getFailedFetchDiagnosticsMessage","_reportFetchError","initializers","Application","Device","Version","Internal","unloadHookContainer","Location","_DYN_SESSION_MANAGER","_DYN_IS_USER_COOKIE_SET","_DYN_IS_NEW_USER","_DYN_GET_TRACE_CTX","_DYN_TELEMETRY_TRACE","_DYN_APPLY_SESSION_CONTEX0","_DYN_APPLY_APPLICATION_CO1","_DYN_APPLY_DEVICE_CONTEXT","_DYN_APPLY_OPERATION_CONT2","_DYN_APPLY_USER_CONTEXT","_DYN_APPLY_OPERATING_SYST3","_DYN_APPLY_LOCATION_CONTE4","_DYN_APPLY_INTERNAL_CONTE5","_DYN_ACCOUNT_ID","_DYN_GET_SESSION_ID","_DYN_NAME_PREFIX","_DYN_SESSION_COOKIE_POSTF6","_DYN_USER_COOKIE_POSTFIX","_DYN_ID_LENGTH","_DYN_GET_NEW_ID","_DYN_AUTOMATIC_SESSION","_DYN_AUTHENTICATED_ID","_DYN_ACQUISITION_DATE","_DYN_RENEWAL_DATE","_DYN_JOIN","_DYN_COOKIE_SEPARATOR","_DYN_AUTH_USER_COOKIE_NAM7","SESSION_COOKIE_NAME","ACQUISITION_SPAN","RENEWAL_SPAN","COOKIE_UPDATE_INTERVAL","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","_sessionExpirationMs","_sessionRenewalMs","sessionCookiePostfix","isExpired","session","_initializeAutomaticSession","timeSinceAcqMs","timeSinceRenewalMs","_renew","_setCookie","_setStorage","_initializeAutomaticSessionWithData","storageValue","sessionData","sessionReset","acqMs","renewalMs","getNewId","acq","renewalPeriodMs","acqTimeLeftMs","cookieDomain","renewal","TelemetryTrace","_validateUserInput","User","userCookiePostfix","_generateNewId","newCookie","_generateNewCookie","_setUserCookie","authCookie","authCookieString","userId","acqStr","oneYear","authenticatedUserId","storeInCookie","isInvalidInput","user_id","user_cookie","strExt","strTags","_removeEmpty","_nullResult","TelemetryContext","previousTraceCtx","sesId","autoSession","application","tags","device","internal","user","undefString","nullValue","PropertiesPlugin","_distributedTraceCtx","_previousTraceCtx","_disableUserInitMessage","theContext","userCtx","_processTelemetryInternal","breezeChannel","_AUTHENTICATED_USER_CONTEXT","_TRACK","STR_SNIPPET","STR_GET_COOKIE_MGR","STR_START_TRACK_PAGE","STR_STOP_TRACK_PAGE","STR_FLUSH","STR_START_TRACK_EVENT","STR_STOP_TRACK_EVENT","STR_ADD_TELEMETRY_INITIALIZER","STR_POLL_INTERNAL_LOGS","STR_GET_PLUGIN","STR_EVT_NAMESPACE","STR_TRACK_EVENT","STR_TRACK_TRACE","STR_TRACK_METRIC","STR_TRACK_PAGE_VIEW","STR_TRACK_EXCEPTION","STR_TRACK_DEPENDENCY_DATA","STR_SET_AUTHENTICATED_USER_CONTEXT","STR_CLEAR_AUTHENTICATED_USER_CONTEXT","_DYN_QUEUE","_DYN_CONNECTION_STRING","_DYN_ENDPOINT_URL","_DYN_ONUNLOAD_FLUSH","_DYN_ADD_HOUSEKEEPING_BEF0","_DYN_SEND_MESSAGE","_DYN_UPDATE_SNIPPET_DEFIN1","_internalSdkSrc","_ignoreUpdateSnippetProperties","IKEY_USAGE","CDN_USAGE","SDK_LOADER_VER","default_limit","default_interval","default_throttle_config","defaultConfigValues","_chkDiagLevel","AppInsightsSku","snippet","dependencies","_sender","_snippetVersion","_houseKeepingNamespace","_core","_cfgSyncPlugin","_throttleMgr","_iKeySentMessage","_cdnSentMessage","_sdkVerSentMessage","DependenciesPlugin","cs","ingest","flushDone","legacyMode","_updateSnippetProperties","snippetVer","sdkSrc","_findSdkSourceFile","defaultEnable","length_1","call","appInsightsInstance","performHousekeeping_1","loadedPlugin","propertiesPlugin","added_1","analyticsPlugin","_removePageEventHandlers","excludePageUnloadEvents","_getCurrentDependencies","isModule","cdns","scrpt","url_1","src_1","defaultNoopBatch","observerBatching","printDebugValue","FinalizationRegistryLocal","createTrackingData","trackingData","CLEANUP_LEAKED_REACTIONS_AFTER_MILLIS","CLEANUP_TIMER_LOOP_MILLIS","createReactionCleanupTrackingUsingFinalizationRegister","FinalizationRegistry","cleanupTokenToReactionTrackingMap","globalCleanupTokensCounter","trackedReaction","reactionTrackingRef","objectRetainedByReact","reactionRef","__values","createTimerBasedReactionCleanupTracking","uncommittedReactionRefs","reactionCleanupHandle","forceCleanupTimerToRunNowForTests","cleanUncommittedReactions","resetCleanupScheduleForTests","uncommittedReactionRefs_1","uncommittedReactionRefs_1_1","tracking","e_1_1","ensureCleanupTimerRunning","scheduleCleanupOfReactionIfLeaked","recordReactionAsCommitted","FinalizationRegistryMaybeUndefined","addReactionToTrack","observerComponentNameFor","baseComponentName","ObjectToBeRetainedByReact","objectToBeRetainedByReactFactory","useObserver","newReaction","trackingData_1","rendering","ReactForwardRefSymbol","ReactMemoSymbol","baseComponent","useForwardRef","observerComponent","copyStaticProperties","hoistBlackList","useLocalObservable","symbolId","createSymbol","createdSymbols","shallowEqual","objA","objB","is","keysA","keysB","setHiddenProp","mobxMixins","mobxPatchedDefinition","getMixins","mixins","methodMixins","realMethod","mx","wrapFunction","patch","mixinMethod","oldDefinition","originalMethod","newDefinition","createDefinition","wrappedFunc","mobxAdminProperty","mobxObserverProperty","mobxIsUnmounted","skipRenderKey","isForcingUpdateKey","makeClassComponentObserver","componentClass","observerSCU","makeObservableProp","baseRender","_displayName","makeComponentReactive","_this$render$mobxAdmi","_displayName2","initialName","isRenderingPending","reactiveRender","_allowStateChanges","valueHolderKey","atomHolderKey","prevReadState","_allowStateReadsStart","_allowStateReadsEnd","observer$1","isBrowser","toggleReducer","nextValue","useToggle","useTimeoutFn","ready","useDebounce","deps","useEffectOnce","effect","useLocalStorage","deserializer","serializer","localStorageValue","valOrFunc","useMount","isCheckBoxInput","isDateObject","isObjectType","getEventValue","getNodeParentName","isNameInFieldArray","tempObject","prototypeCopy","isWeb","cloneObject","tempPath","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","FormProvider","getProxyFormState","formState","control","localProxyFormState","isEmptyObject","shouldRenderFormState","formStateData","_proxyFormState","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","currentName","useSubscribe","subscription","useFormState","_mounted","_localProxyFormState","_name","generateWatchOutput","_names","formValues","isGlobal","fieldName","useWatch","useController","shouldUnregister","isArrayField","_registerProps","_shouldUnregisterField","updateMounted","Controller","appendErrors","validateAllFieldCriteria","generateId","getFocusFieldName","getValidationModes","isWatched","isBlurEvent","watchName","iterateFieldsByAction","fieldsNames","abortEarly","currentField","updateFieldArrayRootError","fieldArrayErrors","isFileInput","isHTMLElement","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","defaultReturn","getRadioValue","getValidateError","getValueAndMessage","validationData","validateField","shouldUseNativeValidation","isFieldArray","valueAsNumber","mount","setCustomValidity","isRadio","isCheckBox","isRadioOrCheckbox","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueNumber","valueDate","convertTimeToDate","isTime","isWeek","maxLengthOutput","minLengthOutput","patternValue","validationResult","appendAt","fillEmptyArray","insert","moveArrayAt","prependAt","removeAtIndexes","removeArrayAt","swapArrayAt","indexA","indexB","updatePath","isEmptyArray","childObject","updateAt","fieldValues","useFieldArray","keyName","setFields","_fieldIds","_actioned","fieldArrayName","updateValues","updatedFieldArrayValues","appendValue","prepend","prependValue","insert$1","insertValue","swap","move","existingError","createSubject","_observers","isPrimitive","object1","object2","keys1","keys2","val1","val2","isMultipleSelect","live","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","valueAsDate","setValueAs","getFieldValue","getResolverOptions","_fields","criteriaMode","getRuleValue","ASYNC_FUNCTION","hasPromiseValidation","fieldReference","validateFunction","hasValidation","schemaErrorLookup","foundError","skipValidation","isTouched","isSubmitted","reValidateMode","unsetEmptyArray","defaultOptions","createFormControl","_formState","_defaultValues","_formValues","delayErrorCallback","timer","_subjects","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","_updateValid","shouldUpdateValid","_executeSchema","executeBuiltInValidation","_updateIsValidating","isValidating","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","touchedFields","_getDirty","updateErrors","_setErrors","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","disabledField","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","fieldState","previousFieldError","updatedFormState","executeSchemaAndUpdateState","shouldOnlyCheckValid","isFieldArrayRoot","isPromiseFunction","fieldError","_removeUnmounted","unregister","getValues","_getWatch","_getFieldArray","optionRef","checkboxRef","radioRef","trigger","setValues","fieldKey","cloneValue","isFieldValueUpdated","getCurrentFieldValue","_updateIsFieldValueUpdated","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","getFieldState","clearErrors","inputName","setError","currentError","currentRef","restOfErrorTree","watch","_updateDisabledField","register","disabledIsDefined","fieldRef","radioOrCheckbox","_focusError","_disableForm","handleSubmit","onValid","onInvalid","onValidError","resetField","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","fieldsToCheck","form","useForm","_formControl","_values","isDirty","e.createContext","e.useState","e.useEffect","e.createElement","e.useContext","e.useRef","e.useCallback","getRandomValues","rnds8","rng","REGEX","uuid","byteToHex","stringify","v4","buf","rnds","dist","_interopNamespace","React__namespace","DEFAULT_EASE_TYPE","DEFAULT_DIRECTION","DEFAULT_FILLMODE","RUNNING","PAUSED","ALL","calculateTotalDuration","getSequenceId","sequenceIndex","sequenceId","AnimateContext","AnimateGroup","play","sequences","animationStates","setAnimationStates","animationsRef","sequencesToAnimate","localAnimationState","totalDuration","secToMs","Animate","complete","easeType","onCompleteTimeRef","setStyle","animationState","camelCaseToDash","generateKeyframes","animationLength","keyframe","keyframePercentage","keyframeContent","createStyle","createTag","styleTag","deleteRules","deleteName","createRandomName","getPlayState","AnimateKeyframes","fillMode","iterationCount","pauseValue","animationNameRef","controlled","styleTagRef","animateState","useAnimate","transition","animate","setAnimate","isPlaying","useAnimateKeyframes","setIsPlaying","isPaused","setIsPaused","createArrayWithNumbers","useAnimateGroup","defaultArray","setStyles","setPlaying","animationNamesRef","styleTags","animationNames","forward","isPlay","animationRefWithOrder","delayDuration","Animate_1","reactPropsRegex","isPropValid","sheetForTag","createStyleElement","StyleSheet","nodes","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","charat","indexof","substr","begin","strlen","sizeof","combine","character","characters","peek","alloc","dealloc","delimit","whitespace","escaping","commenter","compile","rulesets","pseudo","points","declarations","atrule","scanning","ampersand","comment","declaration","ruleset","serialize","middleware","rulesheet","identifierWithPointTracking","toRules","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","prefixer","defaultStylisPlugins","createCache","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","stylis","shouldCache","getRegisteredStyles","registered","registeredStyles","rawClassName","isStringTag","insertStyles","murmur2","unitlessKeys","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","processStyleValue","unitless","handleInterpolation","mergedProps","interpolation","createStringFromObject","previousCursor","cached","interpolated","labelPattern","serializeStyles","stringMode","identifierName","syncFallback","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","EmotionCacheContext","withEmotionCache","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","Insertion","createStyled","baseTag","targetClassName","defaultShouldForwardProp","shouldUseAs","Styled","FinalTag","classInterpolations","finalShouldForwardProp","nextTag","nextOptions","newStyled","isUndefined_1","isArray_1","_isKey","isFunction_1","_coreJsData","_isMasked","_toSource","_baseIsNative","_getNative","_nativeCreate","_hashClear","_hashDelete","_hashGet","_hashHas","_hashSet","_Hash","_listCacheClear","eq_1","_assocIndexOf","_listCacheDelete","_listCacheGet","_listCacheHas","_listCacheSet","_ListCache","_Map","_mapCacheClear","_isKeyable","_getMapData","_mapCacheDelete","_mapCacheGet","_mapCacheHas","_mapCacheSet","_MapCache","memoize_1","_memoizeCapped","_stringToPath","_arrayMap","_baseToString","toString_1","_castPath","_toKey","_baseGet","get_1","tar","dequal","foo","bar","useDeepCompareMemoize","signalRef","useDeepCompareEffect","focusFieldBy","flushRootRender","shouldCaptureDirtyFields","setFocus","_updateFormState","paraGraphDefaultStyle","CircleButton","Input","Table","Header","setVisible","PanelTable","refObject","fieldsValues","collapseAll","collapse","setCollapse","isValueWrappedInPre","isUndefined$1","isObject$1","FormStateTable","showFormState","setShowFormState","PanelChildren","searchTerm","dirtyFields","useStateMachine","Logo","getPositionByPlacement","placement","defaultX","defaultY","DevToolUI","proxyToObject","nestToFlat","flatKeys","get$1","useExportControlToExtension","nestedFormValues","isExtensionEnabled","setIsExtensionEnabled","handleInitMessage","nestedErrors","nestedDirtyFields","nestedTouchedFields","formStatus","flatFieldNames","flatErrors","nativeFields","updateMessagePayload","createStore","DevTool","StateMachineProvider","objectWithoutPropertiesLoose","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","_typeof","toPropertyKey","powerSetPermutations","classNameCombinations","getClassNameCombinations","createStyleObject","elementStyle","nonTokenClassNames","classNamesCombinations","styleObject","createClassNameString","createChildren","useInlineStyles","childrenCount","_ref$style","TagName","childrenCreator","allStylesheetSelectors","startingClassName","checkForListedLanguage","astGenerator","langs","newLineRegex","getNewLines","getAllLineNumbers","startingLineNumber","AllLineNumbers","codeString","codeStyle","_ref2$containerStyle","containerStyle","_ref2$numberStyle","numberStyle","getEmWidthOfNumber","getInlineLineNumber","inlineLineNumberStyle","assembleLineNumberStyles","lineNumberStyle","largestLineNumber","defaultLineNumberStyle","customLineNumberStyle","assembledStyle","createLineElement","showInlineLineNumbers","_ref3$lineProps","lineProps","_ref3$className","showLineNumbers","wrapLongLines","_ref3$wrapLines","wrapLines","flattenCodeTree","tree","newTree","processLines","codeTree","lastLineBreakIndex","createWrappedLine","createUnwrappedLine","createLine","newLines","splitValue","newChild","_children","_line","stringChild","lastLineInPreviousSpan","newElem","_children2","_line2","_children3","_line3","defaultRenderer","rows","isHighlightJs","getCodeTree","defaultCodeValue","hasLanguage","highlight$2","defaultAstGenerator","defaultStyle","_ref7$style","_ref7$customStyle","customStyle","_ref7$codeTagProps","codeTagProps","_ref7$useInlineStyles","_ref7$showLineNumbers","_ref7$showInlineLineN","_ref7$startingLineNum","lineNumberContainerStyle","_ref7$lineNumberStyle","_ref7$wrapLongLines","_ref7$lineProps","_ref7$PreTag","PreTag","_ref7$CodeTag","CodeTag","_ref7$code","allLineNumbers","defaultPreStyle","generatorClassName","preProps","lineCount","deepFreeze","deepFreezeEs6","Response","escapeHTML","original","SPAN_CLOSE","emitsWrappingTags","HTMLRenderer","parseTree","TokenTree","builder","TokenTreeEmitter","emitter","either","countMatchGroups","lexeme","BACKREF_RE","regexps","numCaptures","out","MATCH_NOTHING_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","RE_STARTERS_RE","SHEBANG","beginShebang","BACKSLASH_ESCAPE","APOS_STRING_MODE","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","modeOptions","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","CSS_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","END_SAME_AS_BEGIN","MODES","skipIfhasPrecedingDot","beginKeywords","compileIllegal","_parent","compileMatch","compileRelevance","COMMON_KEYWORDS","DEFAULT_KEYWORD_CLASSNAME","compileKeywords","rawKeywords","caseInsensitive","compiledKeywords","compileList","keywordList","keyword","scoreForKeyword","providedScore","commonKeyword","compileLanguage","langRe","MultiRegex","terminators","ResumableMultiRegex","m2","buildModeRegex","mm","term","compileMode","cmode","keywordPattern","expandOrCloneMode","dependencyOnParent","hasValueOrEmptyAttribute","BuildVuePlugin","hljs","Vue","mergeHTMLPlugin","originalStream","nodeStream","resultNode","mergeStreams","_nodeStream","highlighted","nodeStack","selectStream","attributeString","attr","close","stream","seenDeprecations","deprecated","escape$1","inherit$1","NO_MATCH","HLJS","languages","aliases","SAFE_MODE","fixMarkupRe","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","shouldNotHighlight","languageName","blockLanguage","_class","highlight","codeOrlanguageName","optionsOrCode","ignoreIllegals","continuation","fire","_highlight","codeToHighlight","keywordData","matchText","processKeywords","modeBuffer","keywordRelevance","relevance","cssClass","processSubLanguage","continuations","highlightAuto","processBuffer","startNewMode","endOfMode","matchPlusRemainder","matched","doIgnore","resumeScanAtSamePosition","doBeginMatch","newMode","beforeCallbacks","doEndMatch","endMode","origin","processContinuations","lastMatch","processLexeme","textBeforeMatch","beforeMatch","processedCount","justTextHighlightResult","languageSubset","plaintext","autoDetection","secondBest","fixMarkup","html","updateClassName","currentLang","resultLang","brPlugin","TAB_REPLACE_RE","tabReplacePlugin","highlightElement","userOptions","initHighlighting","initHighlightingOnLoad","wantsHighlight","highlightAll","boot","registerLanguage","languageDefinition","error$1","registerAliases","unregisterLanguage","alias","listLanguages","requireLanguage","aliasList","upgradePluginAPI","addPlugin","deprecateFixMarkup","deprecateHighlightBlock","vsprintf","printf","replacements","argIndex","escaped","leadingZero","nextArg","slurpNumber","fault","fault_1","EConstructor","FormattedError","registerAlias","Emitter","addKeyword","addSublanguage","toHtmlNoop","defaultPrefix","syntax","_1c","v7_keywords","v8_keywords","KEYWORD","v7_meta_keywords","v8_meta_keywords","METAKEYWORD","v7_system_constants","v7_global_context_methods","v8_global_context_methods","v8_global_context_property","BUILTIN","v8_system_sets_of_values","v8_system_enums_interface","v8_system_enums_objects_properties","v8_system_enums_exchange_plans","v8_system_enums_tabular_document","v8_system_enums_sheduler","v8_system_enums_formatted_document","v8_system_enums_query","v8_system_enums_report_builder","v8_system_enums_files","v8_system_enums_query_builder","v8_system_enums_data_analysis","v8_system_enums_xml_json_xs_dom_xdto_ws","v8_system_enums_data_composition_system","v8_system_enums_email","v8_system_enums_logbook","v8_system_enums_cryptography","v8_system_enums_zip","v8_system_enums_other","v8_system_enums_request_schema","v8_system_enums_properties_of_metadata_objects","v8_system_enums_differents","CLASS","v8_shared_object","v8_universal_collection","TYPE","LITERAL","NUMBERS","STRINGS","DATE","COMMENTS","META","_1c_1","abnf","keywords","commentMode","terminalBinaryMode","terminalDecimalMode","terminalHexadecimalMode","caseSensitivityIndicatorMode","ruleDeclarationMode","abnf_1","accesslog","_hljs","HTTP_VERBS","accesslog_1","actionscript","IDENT_FUNC_RETURN_TYPE_RE","AS3_REST_ARG_MODE","actionscript_1","ada","INTEGER_RE","EXPONENT_RE","DECIMAL_LITERAL_RE","BASED_INTEGER_RE","ID_REGEX","BAD_CHARS","VAR_DECLS","ada_1","angelscript","builtInTypeMode","objectHandleMode","genericMode","angelscript_1","apache","NUMBER_REF","IP_ADDRESS","PORT_NUMBER","apache_1","applescript","PARAMS","COMMENT_MODE_1","COMMENT_MODE_2","KEYWORD_PATTERNS","BUILT_IN_PATTERNS","applescript_1","arcade","KEYWORDS","SUBST","TEMPLATE_STRING","PARAMS_CONTAINS","arcade_1","lookahead","optional","cPlusPlus","DECLTYPE_AUTO_RE","NAMESPACE_RE","FUNCTION_TYPE_RE","CPP_PRIMITIVE_TYPES","PREPROCESSOR","FUNCTION_TITLE","CPP_KEYWORDS","FUNCTION_DISPATCH","EXPRESSION_CONTAINS","EXPRESSION_CONTEXT","FUNCTION_DECLARATION","arduino","ARDUINO_KW","ARDUINO","kws","arduino_1","armasm","armasm_1","xml","TAG_NAME_RE","XML_IDENT_RE","XML_ENTITIES","XML_META_KEYWORDS","XML_META_PAR_KEYWORDS","APOS_META_STRING_MODE","QUOTE_META_STRING_MODE","TAG_INTERNALS","xml_1","asciidoc","HORIZONTAL_RULE","ESCAPED_FORMATTING","STRONG","EMPHASIS","ADMONITION","BULLET_LIST","asciidoc_1","aspectj","SHORTKEYS","aspectj_1","autohotkey","BACKTICK_ESCAPE","autohotkey_1","autoit","DIRECTIVES","BUILT_IN","VARIABLE","CONSTANT","autoit_1","avrasm","avrasm_1","awk","awk_1","axapta","axapta_1","bash","VAR","BRACED_VAR","HERE_DOC","QUOTE_STRING","ESCAPED_QUOTE","APOS_STRING","ARITHMETIC","SH_LIKE_SHELLS","KNOWN_SHEBANG","bash_1","basic","basic_1","bnf","bnf_1","brainfuck","brainfuck_1","cLike","C_ALIASES","CPP_ALIASES","cLike_1","c_1","cal","LITERALS","COMMENT_MODES","CHAR_STRING","DBL_QUOTED_VARIABLE","PROCEDURE","cal_1","capnproto","capnproto_1","ceylon","DECLARATION_MODIFIERS","DOCUMENTATION","EXPRESSIONS","ceylon_1","clean","clean_1","clojure","SYMBOLSTART","SYMBOL_RE","globals","SIMPLE_NUMBER_RE","COLLECTION","HINT","HINT_COL","KEY","LIST","BODY","DEFAULT_CONTAINS","GLOBAL","clojure_1","clojureRepl","clojureRepl_1","cmake","cmake_1","TYPES","ERROR_TYPES","BUILT_IN_GLOBALS","BUILT_IN_VARIABLES","BUILT_INS","coffeescript","COFFEE_BUILT_INS","COFFEE_LITERALS","COFFEE_KEYWORDS","NOT_VALID_KEYWORDS","excluding","kw","KEYWORDS$1","JS_IDENT_RE","TITLE","POSSIBLE_PARAMS_RE","coffeescript_1","coq","coq_1","cos","cos_1","cpp","cpp_1","crmsh","RESOURCES","COMMANDS","crmsh_1","crystal","INT_SUFFIX","FLOAT_SUFFIX","CRYSTAL_IDENT_RE","CRYSTAL_METHOD_RE","CRYSTAL_PATH_RE","CRYSTAL_KEYWORDS","EXPANSION","recursiveParen","contains","Q_STRING","REGEXP","REGEXP2","ATTRIBUTE","CRYSTAL_DEFAULT_CONTAINS","crystal_1","csharp","BUILT_IN_KEYWORDS","FUNCTION_MODIFIERS","LITERAL_KEYWORDS","NORMAL_KEYWORDS","CONTEXTUAL_KEYWORDS","VERBATIM_STRING","VERBATIM_STRING_NO_LF","SUBST_NO_LF","INTERPOLATED_STRING","INTERPOLATED_VERBATIM_STRING","INTERPOLATED_VERBATIM_STRING_NO_LF","GENERIC_MODIFIER","TYPE_IDENT_RE","AT_IDENTIFIER","csharp_1","csp","csp_1","TAGS","MEDIA_FEATURES","PSEUDO_CLASSES","PSEUDO_ELEMENTS","ATTRIBUTES","modes","VENDOR_PREFIX","AT_MODIFIERS","AT_PROPERTY_RE","css_1","D_KEYWORDS","decimal_integer_re","decimal_integer_nosus_re","binary_integer_re","hexadecimal_digits_re","hexadecimal_integer_re","decimal_exponent_re","decimal_float_re","hexadecimal_float_re","integer_re","float_re","escape_sequence_re","D_INTEGER_MODE","D_FLOAT_MODE","D_CHARACTER_MODE","D_STRING_MODE","D_WYSIWYG_DELIMITED_STRING_MODE","D_ALTERNATE_WYSIWYG_STRING_MODE","D_HEX_STRING_MODE","D_TOKEN_STRING_MODE","D_HASHBANG_MODE","D_SPECIAL_TOKEN_SEQUENCE_MODE","D_ATTRIBUTE_MODE","D_NESTING_COMMENT_MODE","d_1","markdown","INLINE_HTML","CODE","LINK_REFERENCE","LINK","BOLD","ITALIC","CONTAINABLE","markdown_1","dart","BRACED_SUBST","BUILT_IN_TYPES","NULLABLE_BUILT_IN_TYPES","dart_1","delphi","DIRECTIVE","delphi_1","diff_1","django","FILTER","django_1","dns","dns_1","dockerfile","dockerfile_1","dos","dos_1","dsconfig","dsconfig_1","dts","DTS_REFERENCE","DTS_KEYWORD","DTS_LABEL","DTS_CELL_PROPERTY","DTS_NODE","dts_1","dust","dust_1","ebnf","nonTerminalMode","ruleBodyMode","ebnf_1","elixir","ELIXIR_IDENT_RE","ELIXIR_METHOD_RE","ELIXIR_KEYWORDS","SIGIL_DELIMITERS","LOWERCASE_SIGIL","UPCASE_SIGIL","ELIXIR_DEFAULT_CONTAINS","elixir_1","RECORD","CHARACTER","elm_1","ruby","RUBY_METHOD_RE","RUBY_KEYWORDS","YARDOCTAG","IRB_OBJECT","decimal","RUBY_DEFAULT_CONTAINS","IRB_DEFAULT","ruby_1","erb","erb_1","erlangRepl","erlangRepl_1","erlang","BASIC_ATOM_RE","FUNCTION_NAME_RE","ERLANG_RESERVED","NAMED_FUN","FUNCTION_CALL","TUPLE","VAR1","VAR2","RECORD_ACCESS","BLOCK_STATEMENTS","BASIC_MODES","erlang_1","excel","excel_1","fix_1","flix","CHAR","METHOD","flix_1","fortran","OPTIONAL_NUMBER_SUFFIX","OPTIONAL_NUMBER_EXP","FUNCTION_DEF","fortran_1","fsharp","TYPEPARAM","fsharp_1","anyNumberOfTimes","gams","SYMBOLS","QSTR","ASSIGNMENT","COMMENT_WORD","DESCTEXT","gams_1","gauss","AT_COMMENT_MODE","STRUCT_TYPE","PARSE_PARAMS","DEFINITION","BUILT_IN_REF","STRING_REF","FUNCTION_REF","FUNCTION_REF_PARAMS","gauss_1","gcode","GCODE_IDENT_RE","GCODE_CLOSE_RE","GCODE_KEYWORDS","GCODE_START","GCODE_CODE","gcode_1","gherkin","gherkin_1","glsl","glsl_1","gml","gml_1","GO_KEYWORDS","go_1","golo","golo_1","gradle","gradle_1","variants","groovy","groovy_1","haml","haml_1","handlebars","DOUBLE_QUOTED_ID_REGEX","SINGLE_QUOTED_ID_REGEX","BRACKET_QUOTED_ID_REGEX","PLAIN_ID_REGEX","PATH_DELIMITER_REGEX","ANY_ID","IDENTIFIER_REGEX","HASH_PARAM_REGEX","HELPER_NAME_OR_PATH_EXPRESSION","HELPER_PARAMETER","SUB_EXPRESSION","HASH","BLOCK_PARAMS","HELPER_PARAMETERS","SUB_EXPRESSION_CONTENTS","OPENING_BLOCK_MUSTACHE_CONTENTS","CLOSING_BLOCK_MUSTACHE_CONTENTS","BASIC_MUSTACHE_CONTENTS","handlebars_1","haskell","PRAGMA","haskell_1","haxe","haxe_1","hsp","hsp_1","htmlbars","definition","htmlbars_1","http","HEADER","HEADERS_AND_BODY","http_1","hy","hy_1","inform7","START_BRACKET","END_BRACKET","inform7_1","ini","VARIABLES","ARRAY","ANY_KEY","DOTTED_KEY","ini_1","irpf90","irpf90_1","isbl","FUNCTION_NAME_IDENT_RE","CONSTANTS","ENUMS","system_functions","predefined_variables","interfaces","DOCTAGS","ISBL_LINE_COMMENT_MODE","ISBL_BLOCK_COMMENT_MODE","METHODS","isbl_1","decimalDigits","frac","hexDigits","NUMERIC","java","JAVA_IDENT_RE","GENERIC_IDENT_RE","ANNOTATION","java_1","javascript","hasClosingTag","IDENT_RE$1","FRAGMENT","XML_TAG","afterMatchIndex","decimalInteger","HTML_TEMPLATE","CSS_TEMPLATE","SUBST_INTERNALS","SUBST_AND_COMMENTS","javascript_1","jbossCli","PARAMSBLOCK","OPERATION","PATH","COMMAND_PARAMS","jbossCli_1","ALLOWED_COMMENTS","VALUE_CONTAINER","json_1","julia","VARIABLE_NAME_RE","KEYWORD_LIST","LITERAL_LIST","BUILT_IN_LIST","DEFAULT","INTERPOLATION","INTERPOLATED_VARIABLE","COMMAND","MACROCALL","julia_1","juliaRepl","juliaRepl_1","kotlin","KEYWORDS_WITH_LABEL","LABEL","ANNOTATION_USE_SITE","KOTLIN_NUMBER_MODE","KOTLIN_NESTED_COMMENT","KOTLIN_PAREN_TYPE","KOTLIN_PAREN_TYPE2","kotlin_1","lasso","LASSO_IDENT_RE","LASSO_ANGLE_RE","LASSO_CLOSE_RE","LASSO_KEYWORDS","HTML_COMMENT","LASSO_NOPROCESS","LASSO_START","LASSO_DATAMEMBER","LASSO_CODE","lasso_1","latex","KNOWN_CONTROL_WORDS","L3_REGEX","L2_VARIANTS","DOUBLE_CARET_VARIANTS","CONTROL_SEQUENCE","MACRO_PARAM","DOUBLE_CARET_CHAR","SPECIAL_CATCODE","MAGIC_COMMENT","EVERYTHING_BUT_VERBATIM","BRACE_GROUP_NO_VERBATIM","ARGUMENT_BRACES","ARGUMENT_BRACKETS","SPACE_GOBBLER","ARGUMENT_M","ARGUMENT_O","ARGUMENT_AND_THEN","starts_mode","CSNAME","csname","BEGIN_ENV","envname","VERBATIM_DELIMITED_EQUAL","innerName","VERBATIM_DELIMITED_ENV","VERBATIM_DELIMITED_BRACES","VERBATIM","latex_1","ldif","ldif_1","leaf","leaf_1","PSEUDO_SELECTORS","less","PSEUDO_SELECTORS$1","INTERP_IDENT_RE","RULES","VALUE_MODES","STRING_MODE","IDENT_MODE","AT_KEYWORDS","PARENS_MODE","VALUE_WITH_RULESETS","MIXIN_GUARD_MODE","RULE_MODE","AT_RULE_MODE","VAR_RULE_MODE","SELECTOR_MODE","PSEUDO_SELECTOR_MODE","less_1","lisp","LISP_IDENT_RE","MEC_RE","LISP_SIMPLE_NUMBER_RE","IDENT","MEC","QUOTED_LIST","QUOTED","QUOTED_ATOM","lisp_1","livecodeserver","TITLE1","TITLE2","livecodeserver_1","livescript","LIVESCRIPT_BUILT_INS","LIVESCRIPT_LITERALS","LIVESCRIPT_KEYWORDS","SUBST_SIMPLE","livescript_1","llvm","OPERATOR","PUNCTUATION","llvm_1","lsl","LSL_STRING_ESCAPE_CHARS","LSL_STRINGS","LSL_NUMBERS","LSL_CONSTANTS","LSL_FUNCTIONS","lsl_1","lua","OPENING_LONG_BRACKET","CLOSING_LONG_BRACKET","LONG_BRACKETS","lua_1","makefile","FUNC","TARGET","makefile_1","SYSTEM_SYMBOLS","mathematica","BASE_RE","BASE_DIGITS_RE","BASE_NUMBER_RE","APPROXIMATE_NUMBER_RE","SCIENTIFIC_NOTATION_RE","SYSTEM_SYMBOLS_SET","NAMED_CHARACTER","OPERATORS","PATTERNS","SLOTS","BRACES","MESSAGES","mathematica_1","matlab","TRANSPOSE_RE","TRANSPOSE","matlab_1","maxima","maxima_1","mel","mel_1","mercury","NUMCODE","ATOM","STRING_FMT","mercury_1","mipsasm","mipsasm_1","mizar","mizar_1","perl","REGEX_MODIFIERS","PERL_KEYWORDS","STRING_CONTAINS","REGEX_DELIMS","PAIRED_DOUBLE_RE","middle","PAIRED_RE","PERL_DEFAULT_CONTAINS","perl_1","mojolicious","mojolicious_1","monkey","monkey_1","moonscript","moonscript_1","n1ql","n1ql_1","nginx","nginx_1","nim","nim_1","nix","NIX_KEYWORDS","ANTIQUOTE","ATTRS","nix_1","nodeRepl","nodeRepl_1","nsis","DEFINES","LANGUAGES","PARAMETERS","COMPILER","METACHARS","PLUGINS","nsis_1","objectivec","API_CLASS","IDENTIFIER_RE","OBJC_KEYWORDS","CLASS_KEYWORDS","objectivec_1","ocaml","ocaml_1","openscad","SPECIAL_VARS","PREPRO","MODIFIERS","FUNCTIONS","openscad_1","oxygene","OXYGENE_KEYWORDS","CURLY_COMMENT","PAREN_COMMENT","oxygene_1","parser3","CURLY_SUBCOMMENT","parser3_1","MACRO","TABLE","pf_1","pgsql","COMMENT_MODE","UNQUOTED_IDENT","DOLLAR_STRING","SQL_KW","ROLE_ATTRS","PLPGSQL_KW","TYPES_RE","SQL_BI","PLPGSQL_BI","PLPGSQL_EXCEPTIONS","FUNCTIONS_RE","pgsql_1","php","SINGLE_QUOTED","DOUBLE_QUOTED","HEREDOC","php_1","phpTemplate","phpTemplate_1","plaintext_1","pony","TRIPLE_QUOTE_STRING_MODE","SINGLE_QUOTE_CHAR_MODE","TYPE_NAME","PRIMED_NAME","pony_1","powershell","VALID_VERBS","COMPARISON_OPERATORS","TITLE_NAME_RE","PS_HELPTAGS","PS_COMMENT","CMDLETS","PS_CLASS","PS_FUNCTION","PS_USING","PS_ARGUMENTS","HASH_SIGNS","PS_METHODS","GENTLEMANS_SET","PS_TYPE","powershell_1","processing","processing_1","profile","profile_1","prolog","PARENTED","LINE_COMMENT","BACKTICK_STRING","CHAR_CODE","SPACE_CODE","prolog_1","WS0","WS1","EQUAL_DELIM","WS_DELIM","DELIM","KEY_ALPHANUM","KEY_OTHER","DELIM_AND_VALUE","protobuf","protobuf_1","puppet","PUPPET_KEYWORDS","puppet_1","purebasic","purebasic_1","python","PROMPT","LITERAL_BRACKET","digitpart","pointfloat","COMMENT_TYPE","python_1","pythonRepl","pythonRepl_1","q_1","qml","QML_IDENT_RE","PROPERTY","SIGNAL","ID_ID","QML_ATTRIBUTE","QML_OBJECT","qml_1","SIMPLE_IDENT","originalMode","r_1","reasonml","orReValues","ops","RE_IDENT","RE_MODULE_IDENT","RE_PARAM_TYPEPARAM","RE_PARAM_TYPE","RE_PARAM","RE_OPERATOR","RE_OPERATOR_SPACED","RE_NUMBER","OPERATOR_MODE","LIST_CONTENTS_MODES","MODULE_ACCESS_CONTENTS","PARAMS_CONTENTS","PARAMS_MODE","FUNCTION_BLOCK_MODE","CONSTRUCTOR_MODE","PATTERN_MATCH_BLOCK_MODE","MODULE_ACCESS_MODE","reasonml_1","rib","rib_1","roboconf","IDENTIFIER","roboconf_1","routeros","STATEMENTS","GLOBAL_COMMANDS","COMMON_COMMANDS","OBJECTS","routeros_1","rsl","rsl_1","ruleslanguage","ruleslanguage_1","rust","NUM_SUFFIX","BUILTINS","rust_1","sas","sas_1","scala","scala_1","scheme","SCHEME_IDENT_RE","SCHEME_SIMPLE_NUMBER_RE","SCHEME_COMPLEX_NUMBER_RE","QUOTED_IDENT","scheme_1","scilab","COMMON_CONTAINS","scilab_1","scss","PSEUDO_ELEMENTS$1","PSEUDO_CLASSES$1","scss_1","shell","shell_1","smali","smali_instr_low_prio","smali_instr_high_prio","smali_keywords","smali_1","smalltalk","VAR_IDENT_RE","smalltalk_1","sml","sml_1","sqf","sqf_1","sql_more","sql_more_1","sql","QUOTED_IDENTIFIER","MULTI_WORD_TYPES","NON_RESERVED_WORDS","RESERVED_WORDS","RESERVED_FUNCTIONS","POSSIBLE_WITHOUT_PARENS","COMBOS","reduceRelevancy","when","qualifyFn","sql_1","stan","BLOCKS","SPECIAL_FUNCTIONS","VAR_TYPES","DISTRIBUTIONS","stan_1","stata","stata_1","step21","step21_1","stylus","LOOKAHEAD_TAG_END","stylus_1","subunit","subunit_1","keywordWrapper","dotKeywords","optionalDotKeywords","keywordTypes","literals","precedencegroupKeywords","numberSignKeywords","builtIns","operatorHead","operatorCharacter","identifierHead","identifierCharacter","typeIdentifier","keywordAttributes","availabilityKeywords","swift","WHITESPACE","BLOCK_COMMENT","DOT_KEYWORD","KEYWORD_GUARD","PLAIN_KEYWORDS","REGEX_KEYWORDS","KEYWORD_MODES","BUILT_IN_GUARD","OPERATOR_GUARD","ESCAPED_CHARACTER","rawDelimiter","ESCAPED_NEWLINE","MULTILINE_STRING","SINGLE_LINE_STRING","IMPLICIT_PARAMETER","PROPERTY_WRAPPER_PROJECTION","IDENTIFIERS","AVAILABLE_ATTRIBUTE","KEYWORD_ATTRIBUTE","USER_DEFINED_ATTRIBUTE","GENERIC_ARGUMENTS","TUPLE_ELEMENT_NAME","FUNC_PLUS_TITLE","GENERIC_PARAMETERS","FUNCTION_PARAMETER_NAME","FUNCTION_PARAMETERS","INIT_SUBSCRIPT","OPERATOR_DECLARATION","PRECEDENCEGROUP","submodes","swift_1","taggerscript","taggerscript_1","yaml","URI_CHARACTERS","TEMPLATE_VARIABLES","CONTAINER_STRING","DATE_RE","TIME_RE","FRACTION_RE","ZONE_RE","TIMESTAMP","yaml_1","tap_1","tcl","TCL_IDENT","tcl_1","thrift","thrift_1","tp","TPID","TPLABEL","TPDATA","TPIO","tp_1","twig","FUNCTION_NAMES","twig_1","typescript","NAMESPACE","INTERFACE","USE_STRICT","TS_SPECIFIC_KEYWORDS","DECORATOR","swapMode","indx","tsLanguage","functionDeclaration","typescript_1","vala","vala_1","vbnet","MM_DD_YYYY","YYYY_MM_DD","TIME_12H","TIME_24H","DOC_COMMENT","vbnet_1","vbscript","BUILT_IN_FUNCTIONS","BUILT_IN_OBJECTS","BUILT_IN_CALL","vbscript_1","vbscriptHtml","vbscriptHtml_1","verilog","verilog_1","vhdl","vhdl_1","vim","vim_1","x86asm","x86asm_1","xl","XL_KEYWORDS","DOUBLE_QUOTE_TEXT","SINGLE_QUOTE_TEXT","LONG_TEXT","BASED_NUMBER","FUNCTION_DEFINITION","xl_1","xquery","xquery_1","zephir","zephir_1","lowlight","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","require$$37","require$$38","require$$39","require$$40","require$$41","require$$42","require$$43","require$$44","require$$45","require$$46","require$$47","require$$48","require$$49","require$$50","require$$51","require$$52","require$$53","require$$54","require$$55","require$$56","require$$57","require$$58","require$$59","require$$60","require$$61","require$$62","require$$63","require$$64","require$$65","require$$66","require$$67","require$$68","require$$69","require$$70","require$$71","require$$72","require$$73","require$$74","require$$75","require$$76","require$$77","require$$78","require$$79","require$$80","require$$81","require$$82","require$$83","require$$84","require$$85","require$$86","require$$87","require$$88","require$$89","require$$90","require$$91","require$$92","require$$93","require$$94","require$$95","require$$96","require$$97","require$$98","require$$99","require$$100","require$$101","require$$102","require$$103","require$$104","require$$105","require$$106","require$$107","require$$108","require$$109","require$$110","require$$111","require$$112","require$$113","require$$114","require$$115","require$$116","require$$117","require$$118","require$$119","require$$120","require$$121","require$$122","require$$123","require$$124","require$$125","require$$126","require$$127","require$$128","require$$129","require$$130","require$$131","require$$132","require$$133","require$$134","require$$135","require$$136","require$$137","require$$138","require$$139","require$$140","require$$141","require$$142","require$$143","require$$144","require$$145","require$$146","require$$147","require$$148","require$$149","require$$150","require$$151","require$$152","require$$153","require$$154","require$$155","require$$156","require$$157","require$$158","require$$159","require$$160","require$$161","require$$162","require$$163","require$$164","require$$165","require$$166","require$$167","require$$168","require$$169","require$$170","require$$171","require$$172","require$$173","require$$174","require$$175","require$$176","require$$177","require$$178","require$$179","require$$180","require$$181","require$$182","require$$183","require$$184","require$$185","require$$186","require$$187","require$$188","require$$189","require$$190","require$$191","supportedLanguages","highlighter","SyntaxHighlighter","a11yDark","stackoverflowLight","isBlazorPlatform","classFunction","arrayParam","setImmediate","unbind","intCrypto","combineArray","messageHandler","nameSpace","fromObj","deleteObject","containerObject","objCon","temrObj","tempProp","deepmerge","copied","arguments_1","blazorEventExtend","getUniqueID","definedName","eventFunction","compareElementParent","formatUnit","isBlazor","defaultNumberSymbols","latnNumberSystem","ParserBase","cName","propKeys","propKeys_1","regexStr","matchKeys","matchKeys_1","numberSystem","needSymbols","blazorMode","cur","latnNumberSystem_1","blazorCurrencyData","getBlazorCurrencySymbol","currencyCode","HijriParser","dateCorrection","getHijriDate","gDate","tMonth","tYear","yPrefix","julilanOffset","julianNumber","tempMonth","modifiedJulianDate","iyear","cyc","iy","im","tempDay","iln","hYear","hmonth","hDate","toGregorian","mcjdn","julianDate","gDay","gMonth","gYear","abbreviateRegexGlobal","weekdayKey","timeSetter","timeSeparator","DateFormat","culture","cldr","dependable","dateObject","formatOptions","resPattern","patternMatch","patternMatch_1","eText","dObject","matches_1","curval","curvalstr","processNumber","curstr","curlength","desig","dec","retu","timezone","pattern_1","isIslamic","tVal","splt","curPattern","no","ishour","errorText","percentSign","minusSign","mapper","NumberFormat","fOptions","cOptions","dOptions","symbolPattern","defaultCurrencyCode","minFrac","mval","mfrac","lfrac","checkbothExist","isFraction","decide","dint","str1","str2","curData","fValue","decimalPart","tn","level1","sep","decimalSymbol","level2","flag","lead","cntxt","curObject","indexLocation","argument","successHandler","errorHandler","blazor","curObject_1","objs","obj_1","dPattern","boundedEvents","boundedEvents_1","onIntlChange","rightToLeft","defaultCulture","blazorCultureFormats","IntlBase","fractionRegex","patternRegex","defaultFirstDay","firstDayMapper","typeMapper","getResultantPattern","skeleton","blazorCulture","iType","compareBlazorDateFormats","tPattern","getDependables","calendartype","dateString","getSymbolPattern","numSystem","isAccount","ConvertDateToWeekFormat","convertMapper","tempString","curFormatMapper","getProperNumericSkeleton","getFormatData","needFraction","cSymbol","fractionOnly","nData","changeCurrencySymbol","fmatch","getCurrencySymbol","numericObject","altSymbol","getCurrency","customFormat","formatSplit","customNumberFormat","numObject","integerPart","spaceCapture","spaceGrouping","fractionPart","isCurrencyPercent","actual","getDateSeparator","dateObj","getActualDateTimeFormat","isExcelFormat","actualPattern","tLength","timeZonePattern","options_1","processSymbol","getActualNumberFormat","isExcel","parseOptions","curMatch","curCode","defaultMinimum","fractionDigitsPattern","minimumIntegerPattern","groupingPattern","cPattern","minDigits","maxDigits","integer","getWeekData","firstDay","iCulture","replaceBlazorCurrency","pData","aCurrency","rCurrency","iCurrency","pData_1","getWeekOfYear","newYear","weeknum","daynum","nYear","nday","headerRegex","defaultType","Ajax","Fetch","isNOU","contentTypes","returnVal","REGX_MOBILE","REGX_IE","REGX_IE11","REGX_IOS","REGX_IOS7","REGX_ANDROID","REGX_WINDOWS","REGX_VERSION","REGX_BROWSER","Browser","browserInfo","regX","browserDetails","uA","bindTo","intDebounce","debounceListener","copyData","eventProp","eventData_1","SVG_REG","attributes","classList","getClassList","classList_1","curClass","canRemove","classList_2","classes_1","classArr","fromElements","isEval","docFrag","executeScript","eleArray","script","detach","parentNode","select","needsVDOM","querySelectId","selectAll","nodeList","charRegex","idList","splitId","setId","closest","setStyleAttribute","attrs","isColEName","Base","muteOnChange","prevDetection","newChanges","oldChanges","moduleClass","getObject","curKey","getObjectArray","isSetter","isFactory","curType","propertyGetter","propertySetter","oldVal","complexGetter","complexSetter","complexFactoryGetter","complexFactorySetter","complexArrayGetter","defCollection","ignore","extendFunc","complexArrayDefinedCallback","complexArraySetter","oldValueCollection","newValCollection","complexArrayFactorySetter","complexArrayFactoryGetter","dFunc","model_1","getArrayModel","model","isControlParent","arrayFunction","modelObject","Property","propertyDescriptor","addPropertyCollection","Complex","ComplexFactory","Collection","CollectionFactory","eventDescriptor","finalContext","getParentContext","NotifyPropertyChanges","classConstructor","propertyType","curText","Animation","Animation_1","elements_1","element_1","frameId","animationMode","prevTimeStamp","startAnimation","timeStamp","avg","newProp","oldProp","rippleEffect","rippleOptions","rippleModel","getRippleModel","isRippleEnabled","rippleHandler","rippleUpHandler","rippleLeaveHandler","offsetX","offsetY","pageX","pageY","radius","diameter","rippleElement","removeRipple","rippleElements","MODULE_SUFFIX","ModuleLoader","requiredModules","moduleList","reqLength","modl","moduleList_1","modName","moduleObject","memberName","loadedModule","modules","usedModules","removableModule","removableModule_1","mod","ChildProperty","changeTime_1","clearUpdate","curIndex","restrictServerDataBind","isSaveChanges","valueLength","componentList","bypassKey","accountURL","LicenseValidator","licKey","npxLicKey","contentKey","URLKey","convertToChar","validateMsg","validateURL","expDate","currDate","licenseContent","errorDiv","pkey","decryptedStr","resultArray","invalidPlatform","isNpxKey","licKeySplit","licKeySplit_1","lKey","decodeStr","buffr","charKey","decryptedKey","licenseValidator","cArr","cArr_1","registerLicense","validateLicense","createLicenseOverlay","bannerTemplate","errorBackground","componentCount","lastPageID","lastHistoryLen","instancecount","isvalid","isBannerAdded","eleId","wrapperElement","event_2","isVDOM","templateName","persistObj","ignoreList","newObj","newList","defaultPosition","isDraggedObject","Draggable","Draggable_1","isUnWire","scroll","curTarget","abortSelectors","intCoord","isChangeTouch","intCordinate","styleProp","intClosest","dragTargetElement","marginTop","posValue","docHeight","docWidth","eleObj","helperElement","tLeft","tTop","pagex","pagey","dLeft","dTop","helperWidth","helperHeight","iTop","iLeft","draEleTop","draEleLeft","isDialogEle","tempDraEleTop","dragValue","nodeEl","hasScroll","nodeEle","elementTop","elementLeft","docBody","docEle","eleWidthBound","eleHeightBound","elementArea","tborder","tpadding","lowerKey","prevStyle","isPointer","oldEle","isdragscroll","dragEle","isOffsetParent","isVerticalScroll","isHorrizontalScroll","drag","helper","dropIns","eleInst","eleInst_1","Droppable","isDrag","area","coord","KeyboardEvents","isAltKey","isCtrlKey","isShiftKey","curkeyCode","configCollection","configCollection_1","rconfig","rKeyObj","KeyboardEvents_1","keyVal","L10n","controlName","localeStrings","intLocale","localeObject","SwipeSettings","swipeRegex","Touch","eScrollArgs","scrollArg","diffX","diffY","isFirefox","swipeArgs","eSwipeArgs","tDistance","canTrigger","scrollBool","moved","eleStyle","eTapArgs","pnt","newX","newY","newT","xDist","yDist","LINES","QUOTES","IF_STMT","ELSEIF_STMT","ELSE_STMT","FOR_STMT","IF_OR_FOR","CALL_FUNCTION","NOT_NUMBER","WORD","DBL_QUOTED_STR","WORDIF","ARR_OBJ","SINGLE_SLASH","DOUBLE_SLASH","WORDFUNC","WINDOWFUNC","ignorePrefix","argName","evalExpResult","evalExp","condtion","fnCode","varCOunt","localKeys","isClass","singleSpace","cnt","matchStr","SPECIAL_CHAR","rlStr","addNameSpace","strs","HandleSpecialCharArrObj","rlStr_1","mtc","fnStr","fNameSpace","ftArray","splRegexp","arrObj","splArrRegexp","SlashReplace","NameSpaceForspecialChar","addNS","NameSpaceArrObj","arrObjReg","tempStr","double","nameSpaceNew","windowFunc","quotes","HAS_ROW","HAS_SVG","templateString","compiler","engineObj","templateId","isStringTemplate","resetBlazorTemplate","templateDiv","innerTemplates","tempId","tempElement","setTemplateEngine","classObj","getTemplateEngine","initializeCSPTemplate","boundFunc","Engine","removeTags","removeAttrs","jsEvents","SanitizeHtmlHelper","tempEleValue","dataManager","always","DataUtil","cloned","tableName","tables","ignoreCase","ignoreAccent","matchCase","Predicate","isFromGroup","sorts","pageIndex","pageSize","nos","selectorFn","queries","singles","filtered","pred","isAnd","preds","consts","asteriskSplit","optionalSplit","regexPattern","jsonArray","aggregates","groupDs","isLazyLoad","jsonData","grouped","groupedArray","_loop_2","this_2","tempObj","_loop_3","aggs","fKey","lookup","pKey","grp","fKeyData","copyObj","lowerCaseNameSpace","upperCaseNameSpace","casing","ds","adaptor","fnName","param1","param2","adp","dm","hexs","castRequired","requiresCompleteRecord","sampledata","DataManager","where","predicateList","mainPred","childPred","cpre","expected","jsonText","offSet","isUTC","secondsMs","utcFormat","hrs","mins","keys_3","utc","unix","datefn","differenceString","localtimefn","norm","Adaptor","JsonAdaptor","countFlg","lazyLoad","keyCount","agg","lazyLoadData","childLevel","aggQuery","changes","deletedRecordsLen","fnCompare","keyField","UrlAdaptor","hierarchyFilters","request1","handleTimeZone","requests","pvt","isExpand","childLvl","lvl","hasRecords","childGroupedRecords","predicats","aggregateData","isServerGrouping","groupQuery","ODataAdaptor","requiresCast","splittedStringValue","splittedValue","metaCheck","dataUrls","pvtData","dataCopy","metaData","emptyAndBatch","versionCheck","oDataCount","keys_4","convertObj","initialGuid","stat","org","cIdx","jsonObj","exVal","changeGuid","ODataV4Adaptor","expands","exArr","selects","sel","close_1","combineVal","expand","distinctFields","metaName","metaV4Name","dataUrl","dataCount","dataV4Count","WebApiAdaptor","datTime","WebMethodAdaptor","RemoteSaveAdaptor","urlParams","CustomDataAdaptor","GraphQLAdaptor","datamanager","urlQuery","vars","resData","bData","crudData","CacheAdaptor","forDel","requestTime","currentFilter","newQuery","cachedItems","dataSource","persistedData","persistData","persistedQuery","allPredicates","predicateObj","nestedPredicates","nestedPredicate","makeRequest","deffered","Deferred","fnSuccess","fnFail","process","virtualSelectRecords","fnQueryChild","subDeffer","childArgs","subUrl","childReq","subData","virtualRecords","ajax_1","pResult","cResult","doAjaxRequest","deff_1","ajax_2","ajaxFunc","ajax_3","defaulthtmlkeys","delayUpdate","ComponentBase","silent","dProps","statelessTemplates","propkey","isClassName","propsClsName","dpropsClsName","compTemplate","PropVal","keycompoentns","clsList","value1","value2","typeVal","typeVal2","tempVal","tempVal2","lenSimilarity","diffArray","templateProps","prevModule","curModule","curModule_1","changedProps","directiveValue","dKeys","compareOutput","_c1","allColumns","compareField1","compareField2","propInstance","changedProps_1","propInstance_1","modulesName","portal","templateNames","childCache","childs","childs_1","ifield","subChild","subChild_1","accessProp","cacheVal","cachedValue","childs_2","applyMixins","derivedClass","ComplexBase","React.PureComponent","Inject","stringCompiler","templateElement","actTemplate","actData","cEle","rele","LayerDirective","LayersDirective","CustomCursorDirective","CustomCursorsDirective","ConnectorDirective","ConnectorsDirective","ConnectorFixedUserHandleDirective","ConnectorFixedUserHandlesDirective","ConnectorAnnotationDirective","ConnectorAnnotationsDirective","NodeDirective","NodesDirective","NodeFixedUserHandleDirective","NodeFixedUserHandlesDirective","NodeAnnotationDirective","NodeAnnotationsDirective","PortDirective","PortsDirective","Size","Point","point1","point2","angle","pt","pt1","pt2","isStart","processPathData","arrayCollection","parsePathData","tokenizer","commands","isExponential","getRectanglePath","cornerRadius","corners","corner","getPolygonPath","seg","getFreeHandPath","pathSegmentCollection","x0","y0","x1","y1","x2","y2","ctrl","cpt2","newSeg","transformPath","sX","sY","bX","bY","iX","iY","scalePathData","scaledPath","updatedSegment","pathData","getPathString","isScale","r1","r2","scaleFactor","oldOffset","newOffset","splitArrayCollection","getNewString","getString","cmd","ang","Rect","rect1","rect2","points_1","MatrixTypes","Matrix","m11","m12","m21","m22","identityMatrix","transformPointByMatrix","multiplyPoint","transformPointsByMatrix","transformedPoints","rotateMatrix","centerX","centerY","multiplyMatrix","createRotationRadians","scaleMatrix","scaleX","scaleY","createScaling","translateMatrix","setMatrix","matrix1","matrix2","type2","assignMatrix","m11New","m12New","m21New","m22New","offsetX_1","offsetY_1","mat","getGradientType","LinearGradient","RadialGradient","Thickness","Margin","Shadow","Stop","Gradient","DiagramGradient","ShapeStyle","StrokeStyle","TextStyle","DiagramShapeStyle","BlazorAction","PortVisibility","SnapConstraints","SelectorConstraints","ConnectionPointOrigin","ChildArrangement","ConnectorConstraints","AnnotationConstraints","NodeConstraints","ElementAction","ThumbsConstraints","DiagramConstraints","DiagramTools","Transform","RenderMode","KeyModifiers","Keys","DiagramAction","RendererAction","RealAction","ScrollActions","NoOfSegments","DiagramEvent","PortConstraints","ControlPointsVisibility","BezierSmoothness","DiagramElement","availableSize","desiredSize","Container","desired","childBounds","offsetPt","newPoint","rotatePoint","arrange","center","topLeft","getOffset","childSize","refPoint","topRight","bottomLeft","bottomRight","TextElement","measureText","Canvas","desiredBounds","rotateSize","leftMargin","topMargin","isStack","childX","childY","parentSize","getBasicShape","shape","basicShapes","PathElement","findSegmentPoints","translatePoints","measurePath","actualSize","newPathString","ImageElement","measureImage","DiagramNativeElement","nodeId","diagramId","getContent","measureNativeContent","getAvailableSize","measureNativeSvg","elementRect","popupRect","parentDocument","fixedParent","calculateRelativeBasedPosition","anchor","fixedElement","anchorPos","calculatePosition","positionX","positionY","targetValues","updatePosition","setPosx","setPosy","posX","posY","getElementHCenter","getElementTop","getElementRight","getElementVCenter","getElementLeft","getElementBottom","getBodyScrollTop","getBodyScrollLeft","popupWidth","fit","viewPortElement","elemData","getTargetContainerWidth","getViewPortWidth","containerLeft","ContainerLeft","containerRight","ContainerRight","overLeft","overRight","containerHeight","getTargetContainerHeight","getViewPortHeight","containerTop","ContainerTop","containerBottom","ContainerBottom","overTop","overBottom","isCollide","elemOffset","yAxis","topCollideCheck","xAxis","leftCollideCheck","tEdge","eEdge","oldVisibility","updateElementData","setPosition","leftFlip","topFlip","setPopup","transformStyle","eStatus","leftSide","rightSide","deepCheck","collideSide","topSide","bottomSide","getTargetContainerLeft","getTargetContainerTop","windowWidth","documentReact","offsetWidth","PositionData","CLASSNAMES","parent_2","relateToElement","targetVisible","scrollParents","parent_3","windowView","off","elementView","parent_4","relateToElem","collision","parentDisplay","display","eleRect","anchorEle","anchorRect","viewPortRect","horz","vert","animationOptions","relativeElement","zIndexElement","getZindexPartial","getScrollableParent","parentStyle","overflowRegex","parentZindex","childrenZindex","siblingsZindex","finalValue","currentZindexValue","TOUCHEND_HIDE_DELAY","TAPHOLD_THRESHOLD","SHOW_POINTER_TIP_GAP","HIDE_POINTER_TIP_GAP","MOUSE_TRAIL_GAP","POINTER_ADJUST","ROOT","RTL","DEVICE","ICON","CLOSE","TOOLTIP_WRAP","CONTENT","ARROW_TIP","ARROW_TIP_OUTER","ARROW_TIP_INNER","TIP_BOTTOM","TIP_TOP","TIP_LEFT","TIP_RIGHT","POPUP_ROOT","POPUP_OPEN","POPUP_CLOSE","POPUP_LIB","HIDE_POPUP","POPUP_CONTAINER","tip","elePos","xScalingFactor","yScalingFactor","parentWithZoomStyle","scalingFactors","offsetPos","collisionPosition","collisionLeft","collisionTop","tipWidth","tipHeight","tooltipEleWidth","tooltipEleHeight","arrowEle","tipAdjust","tipHeightAdjust","tipWidthAdjust","tooltipEleRect","arrowEleRect","selEle","removeList","tooltipPositionX","tooltipPositionY","leftValue","topValue","tooltipWidth","tooltipHeight","arrowInnerELe","tipPosExclude","tempFunction","tempArr","templateFunction","tipClose","targetList","targetList_1","observeCallback","beforeRenderArgs","PopupAnimation","ctrlObj","observedArgs","openAnimation_1","show","affectedPos","newpos","elePosVertical","elePosHorizontal","elePosition","eleOffset","arrowleft","positionString","newPos","offsetType","hideAnimation","hide","closeAnimation","enteredElement","checkForTooltipElement","eventPageX","eventPageY","colpos","triggerList","triggerList_1","opensOn","targetList_2","triggerList_2","targetList_3","triggerList_3","animation","currentTarget","currentTarget_1","BlazorAnimation","DiagramTooltip","initTooltip","diagram","tooltipOption","updateTooltipContent","beforeCollision","beforeOpen","updateTooltip","tooltipObject","contentTemp","Port","PointPort","Hyperlink","Annotation","randomId","ShapeAnnotation","PathAnnotation","getPortShape","portShapes","getDecoratorShape","decoratorShapes","getSegmentThumbShapeHorizontal","shapes","segmentThumbShapeHorizontal","getSegmentThumbShapeVertical","segmentThumbShapeVertical","getIconShape","getFlowShape","flowShapes","findConnectorPoints","layoutOrientation","lineDistribution","sourcePoint","getSourcePoint","intermeditatePoints","terminateConnection","setLineEndPoint","srcPoint","srcPort","sPoint","tPoint","getIntersection","getDirection","tarPoint","sourceNode","targetNode","sourcePort","targetPort","srcCorner","tarCorner","srcDir","tarDir","minSpace","findMargin","sourceMargin","targetMargin","sourceCorners","targetCorners","cornersPointsBeforeRotation","getPortDirection","tarPortPt","defaultOrthoConnection","checkLastSegmentasTerminal","connectToOneEnd","intermeditatePointsForStraight","findPointToPointOrtho","extra","adjustSegmentLength","getOppositeDirection","orthoConnection3Segment","updateSegmentPoints","segPoint","addLineSegment","pointToPoint","portdirection","findSourceDirection","orthoConnection2Segment","pointToNode","findDirection","source1","addPoints","findSegmentDirection","portDir","pointToPort","removeSegment","checkConsectiveSegmentAsSame","lastSegment","checkSourcePointInTarget","checkPreviousSegment","checkPortdirection","returnIntermeditatePoints","pointsFromNodeToPoint","tPoints","connector","actualSegment","actualLastPoint","fixedPoint","nodeMargin","nodeConnectingPoint","nodeDirection","findPoint","source_1","segmentPoint","addPaddingToConnector","isTarget","paddingPort","segmentPoints","thisSegment","getIntersectionPoints","checkSourceAndTargetIntersect","sourceWrapper","targetWrapper","sourceSegment","createSegmentsCollection","targetSegment","srcSegment","tarSegmet","intersect3","getPoints","createLineSegment","sPt","tPt","swapBounds","outerBounds","rectBounds","rotateAngle","sourceEle","targetEle","tarPort","srcCor","tarCor","srcBounds","tarBounds","isInterSect","findOrthoSegments","findIntermeditatePoints","OrthogonalSegment","BezierSegment","StraightSegment","nodeOrPortToNode","length_2","length_3","lastPoint","nodeCorners","shortes","getSwapping","swapPoints","getRightToLeftSegmentCount","getRightToRightSegmentCount","getRightToTopSegmentCount","getRightToBottomSegmentCount","getBottomToTopSegmentCount","margin","getBottomToBottomSegmentCount","getBottomToLeftSegmentCount","getLeftToLeftSegmentCount","getLeftToTopSegmentCount","getTopToTopSegmentCount","addOrthoSegments","convertPointToBezierSegment","findAngle","es","cor","endPoint","straight","segEnd","isTar","sPt1","tPt1","constValue","pts","minimal","intersectSegment","intersect","segment1","segment2","x3","y3","x4","y4","a1","a2","b1","b2","r3","r4","sameSign","denom","targetObj","difX","sourceEnd","targetEnd","segLength","isBezier","prevDir","orthoConnection4Segment","orthoConnection5Segment","allow","segmentValue","diffx","diffy","sLeft","sRight","sBottom","sTop","tRight","tBottom","newExtra","interPt","getLeftLength","getRightLength","getTopLength","getBottomLength","getOrtho3Seg","orientation","point3","preDir","segCount","vector1","vector2","ori","mid1","mid2","dir1","ori1","vector3","vector4","dir2","ori2","mid3","center1","center2","vector5","vector6","dir3","ori3","segment3","mid4","center3","vector7","vector8","dir4","ori4","segment4","closeEdge","boundsValue","fourty5","one35","two25","three15","getOuterBounds","SymbolSize","SymbolPaletteInfo","NodeBase","DiagramHtmlElement","annotationId","nodeTemplate","templateCompiler","FixedUserHandle","NodeFixedUserHandle","ConnectorFixedUserHandle","Connector","canMove","Selector","canEnablePointerEvents","canDelete","canDragSourceEnd","canDragTargetEnd","canDragSegmentThumb","canRotate","canShadow","canInConnect","Node","canPortInConnect","canOutConnect","canPortOutConnect","canResize","canAllowDrop","canVitualize","canEnableToolTip","canSingleSelect","canMultiSelect","canZoomPan","canContinuousDraw","canDrawOnce","defaultTool","canZoom","canPan","canUserInteract","canApiInteract","canPanX","canPanY","canZoomTextEdit","canPageEditable","enableReadOnly","enumValue","canDraw","canDrag","canPreventClearSelection","diagramActions","canDrawThumbs","rendererActions","avoidDrawSelector","GridPanel","columnId","rowSpan","columnSpan","GridCellItem","rowDefn","GridRow","defaultCell","ColumnDefinition","columns_1","colDefn","GridCell","calculateHeight","calculateWidth","isConsiderChild","minHeight","canvas","colId","colIndex","rowIndex","maxBounds","isMeasure","removeRow","tempRow","startRowIndex","tempCol","tempSize","cellIndex","isChange","cellX","cellWidth","cellHeight","removeCell","RowDefinition","initSwimLane","grid","createRow","initGridRow","initGridColumns","headerDefine","phaseDefine","laneCollection","addObjectToGrid","isPhase","isLane","phaseIndex","rowValue","colValue","phaseObject","laneIndex","laneNode","parentWrapper","gridCell","childWrapper","phaseCount","createColumn","cols","totalHeight","phaseHeight","phaseOffset","getConnectors","isRowUpdate","connectors","conn","childNode","i_1","swimLaneMeasureAndArrange","ChangeLaneIndex","arrangeChildNodesInSwimLane","lanes","rowvalue","columnValue","addChildToLane","k_1","updateChildOuterBounds","updateHeaderMaxWidth","checkLaneChildrenOffset","checkPhaseOffset","checkLaneSize","columnDefinitions","rowDefinitions","findStartLaneIndex","lane","phases","phaseRow","gridRowIndex","updateConnectorsProperties","laneInterChanged","undoElement","redoElement","sourceIndex","sourceLaneIndex","targetLaneIndex","swimLane","changeHeaderIndex","updateSwimLaneChildPosition","updateSwimLaneObject","helperObject","objWidth","objHeight","findLaneIndex","laneObj","findPhaseIndex","updatePhaseMaxWidth","headerNode","addLane","redoObj","orientation_1","Lane","rowDef","colDef","addChildNodeToNewLane","addPhase","newPhase","phaseNode","previousPhase","nextPhase","phasesCollection","orientation_2","laneHeaderSize","nextCol","addPhase_1","nextRow","addPhase_2","addLastPhase","phaseObj","Phase","fristRow","i_2","addHorizontalPhase","nextPhaseNode","addVerticalPhase","prevPhase","prevOffset","addPhase_3","addPhase_4","nextCell","prevCell","addSwimlanePhases","prevRow","arrangeChildInGrid","changeCell","swimLaneSelection","pasteSwimLane","clipboardData","isUndo","ranId","cloneLane","nodeX","nodeY","newShape","i_3","gridSelection","selectorModel","isSymbolDrag","checkParentAsContainer","targetnode","swimLaneId","findBounds","removeLaneChildNode","swimLaneNode","currentObj","isChildNode","preventHistory","lanenode","getGridChildren","removeSwimLane","removeNode","deleteNode","removeChildInContainer","removeLane","undoObj","removeChildren","removePhase","swimLanePhases","isLastPhase","phaseLength","removeHorizontalPhase","removeVerticalPhase","actualChild","prevCanvas","prevChild","prevNode","object_1","prevWidth","phaseRowIndex","prevHeight","considerSwimLanePadding","laneHeader","findLane","canLaneInterchange","resize","updateCanvasBounds","isBoundsUpdate","connectorList","groupAction","updateLaneBoundsAfterAddChild","shape_1","isProtectedOnChange","propertyChangeValue","removeChildrenInLane","moveSwinLaneChild","createHelper","getObjectType","renderContainerHelper","isChild","checkChildNodeInContainer","prevParentNode","swimlane","canvasId","prevParentId","addChildToContainer","historyAction","swimLaneBounds","parentBounds","laneHeaderId","currentParentId","Diagram","getDiagramElement","targetId","undoObject","isUpdateRow","isGroupAction","containerBounds","containerOuterBounds","nodeBounds","renderStackHighlighter","isUml","isSwimlane","adornerSvg","getAdornerLayerSvg","moveChildInStack","sourceParent","findToolToActivate","touchStart","touchMove","hasSelection","canShowCorner","paddedBounds","getUserHandlePosition","selectorBnds","hasSingleConnection","sourcePaddingValue","targetPaddingValue","checkForConnectorSegment","ten","tenRotate","rotateThumb","labelSelection","labelRotate","checkResizeHandles","findPortToolToActivate","userid","checkResizeHandleForContainer","checkForResizeHandles","canShowControlPoints","checkPortRestriction","forty","canResizeCorner","mousePosition","firstLevel","getCursor","cursors","DeepDiffMapper","oldObject","newObject","newSegments","newSegObject","selectedObject","labelDrag","diffValue","oldDiagram","getIndex","objectValue","arrayName","ss","ToolBase","command","protectChange","startPoint","initialBounds","horizontalsnap","verticalsnap","difx","dify","snapEnabled","snapLine","deltaWidth","deltaHeight","objectType","isMouseDownAction","SelectTool","commandHandler","arrayNodes","FixedUserHandleTool","fixedUserHandle","iconId","ConnectTool","segmentpoint1","segmentpoint2","ConnectorDrawingTool","temparg","nodeEndId","portEndId","oldValues","targetPortName","targetNodeNode","tempArgs","BpmnSubEvent","inPort","outPort","targetPortId","targetNodeId","getInOutConnectPorts","isConnect","content_1","MoveTool","isPreventHistory","blazorArgs","tx","ty","historyAdded","redoObject","canAddHistory","entry_1","isEndGroup","snappedPoint","isSame","oldValues_1","arg_1","blocked","content_2","prevPosition","RotateTool","oldValue_1","arg_2","snapAngle","content_3","ResizeTool","scaleWidth","scaleHeight","deltaValues","entry_2","content_4","NodeDrawingTool","checkBoundaryConstraints","checkPort","TextDrawingTool","ZoomPanTool","zoom","difY","startTouch0","startTouch1","moveTouch0","moveTouch1","scale","focusPoint","touch1","touch2","startTouch","moveTouch","ExpandTool","LabelTool","tab","windowOption","windowHeight","screenTop","screenLeft","PolygonDrawingTool","dblClickArgs","PolyLineDrawingTool","drawObject","LabelDragTool","redoValue","entryValue","LabelResizeTool","textElement","trans","pivot","pivotPoint","LabelRotateTool","redoEntry","entryObject","FreeHandTool","tolerance","smoothValue","prevId","prevObj","firstPoint","pointIndex","returnedPoints","maxDistance","largestPointIndex","drawingObject","pointx1","pointy1","pointx2","pointy2","pointx0","pointy0","previousPoint","pointx3","pointy3","nextPoint","xc1","yc1","xc2","yc2","xc3","yc3","point0","len1","len2","len3","k1","k2","xm1","ym1","xm2","ym2","Controlpointx1","Controlpointy1","Controlpointx2","Controlpointy2","cnPt1","cnPt2","segSourcePoint","segTargetPoint","getConnectorType","BpmnFlow","ActivityFlow","RelationShip","ConnectorShape","getSegmentType","Decorator","Vector","BezierSettings","ConnectorSegment","st","bezier","bezSeg","pt0","pt3","ptStart","ptCtrl1","ptCtrl2","ptEnd","DiagramConnectorSegment","excludeBounds","isEmptyVector","getBezierPoints","targetPoint","getBezierBounds","controlPoint1","controlPoint2","minx","miny","maxx","maxy","tolerancevalue","bezierPoints","MultiplicityLabel","ClassifierMultiplicity","DiagramConnectorShape","setUMLActivityDefaults","setConnectorDefaults","ports","bpmnElement","srcDecorator","targetDecorator","activityFlow","anglePoints","firstSegment","accessContent","getDescription","wrapperContent","text1","sourceText","targetText","pathseq","updatePathElement","midPt","fractionOfTotal","midPt2","midPt1","fixedUserHandleContainer","symbolIcon","initfixedUserHandlesSymbol","segmentMessage","findDistance","sourcePt","targetPt","findPath","annotationTemplate","textele","diagramElement","baseTemplateCompiler","getTemplateContent","getFunction","canRefresh","getPointloop","getAnnotationPosition","offsetPoint","alignLabelOnSegments","hAlign","vAlign","horizor","verzor","newPoints","isSource","diagramAction","strokeWidth","segmentPath","connectorSegment","segmentElement","flipConnector","adjacentPoint","decEle","bridge","getPath","getPt","j_1","isrezise","isDrawing","j_2","j_3","segmentOffset","offsetLength","sw","connWidth","connHeight","updateConnector","Ruler","keyEntity","rulerGeometry","div","createHtmlElement","rulerSize","svg","unitLength","unitOffset","rulerSegment","segWidth","translate","bBox","isRightOrBottom","setAttributeSvg","tick","tickInterval","segmentWidth","createSvgElement","ruler","linePoint","arrangeTick","five","multiples","fifty","scaleRound","rulerSvg","rulerObj","currentPoint","rulerSvgElements","rulerSpace","renderOverlapElement","getRulerSize","overlap","renderRuler","getRulerGeometry","diagramRuler","updateRuler","hOffset","vOffset","updateRulerDimension","removeRulerElements","removeElement","removeRulerMarkers","markers","marker","drawRulerMarkers","updateRulerDiv","updateRulerSpace","UserHandle","getUMLActivityShape","umlActivityShapes","KeyGesture","Command","CommandManager","ContextMenuSettings","completeRegion","selectedObjects","findNodeByName","findObjectType","setSwimLaneDefaults","getSpaceValue","isLine","getInterval","newInterval","setPortsEdges","bpmnFlow","hasRelation","findNearestPoint","shortestPoint","shortest","shortest1","angleBWStAndEnd","angleBWStAndRef","vaAngle","pointsForBezier","isDiagramChild","htmlLayer","groupHasType","nameTable","updateDefaultValues","actualNode","plainValue","oldKey","keyObj","createObject","isPointOverConnector","intermediatePoints","intersectinPt","intersectDetails","rect_1","lineUtil1","lineUtil2","l1","l2","intersect2","start1","end1","start2","end2","getLineSegment","line3","getTooltipOffset","inheritTooltip","objectTooltip","isMouseBased","tooltipOffset","portElement","horizontalOffset","verticalOffset","fixedUserHandleContent","sort","getloop","getOffsetOfConnector","alignednumber","getAlignedPosition","lengths","prevLength","kCount","cnst","getBezierDirection","removeChildNodes","getChild","getSwimLaneChildren","childTable","gridChild","removeUnnecessaryNodes","removeNodes","clonedObject","preventDefaults","defaultObject","isNodeShape","getConstructor","preventArrayDefaults","SwimLane","isSameArray","getClassName","Path","Native","Html","BasicShape","FlowShape","BpmnShape","UmlActivityShape","UmlClassifierShape","BpmnGateway","BpmnDataObject","BpmnEvent","BpmnActivity","BpmnAnnotation","MethodArguments","UmlClassAttribute","UmlClassMethod","UmlClass","UmlInterface","UmlEnumerationMember","UmlEnumeration","ChildContainer","deserialize","blazorAction","nodeTemp","getCustomProperty","arrangeTickHorizontal","arrangeTickVertical","getLayoutInfo","getBranch","nodeDefaults","connectorDefaults","dataObj","upgrade","sortLayerObjects","nodes_1","updateStyle","changedObject","updateGradient","changedGradient","targetGradient","updateHyperlink","actualAnnotation","hyperlink","labelStyle","updateShapeContent","actualObject","elementId","updateShape","pathContent","imageContent","textContent","flowShapeElement","nativeContent","htmlContent","updateContent","nativeElement","htmlElement","flowshapedata","updateUmlActivityNode","basicshape","basicshapedata","basicShapeData","umlActivityShapeData","getUMLFinalNode","finalNodeShape","innerFinalNode","outerFinalNode","getUMLActivityShapes","umlActivityShape","removeGradient","svgId","removeItem","anglePoint","tarDecorator","selectorItem","connectorOffset","selectorConstraints","thumbsConstraints","bezierControlPoints","portVisibility","findAnnotation","findPort","portId","isInConnect","findObjectIndex","getObjectFromCollection","scaleElement","newPosition","arrangeChild","insertObject","getElement","getPaletteSymbols","getAnnotation","enterObject","symbolPalette","getPoint","cornerPoint","updatePortEdges","portContent","alignElement","cloneSelectedObjects","isEnableServerDatabind","isProtectedOnChangeValue","clonedSelectedItems","pathElement","pathseqData","beginningpoint","transferpt","startpoint","getConnectorDirection","checkBrowserInfo","canMeasureDecoratorPath","getPreviewSize","sourceElement","previewWidth","getSymbolSize","previewHeight","previewSize","findParentInSwimlane","selectionHasConnector","IconShape","StackPanel","updateSize","rotatedSize","parenBounds","parentBottom","parentRight","getULMClassifierShapes","classifier","textWrap","getClassNodes","getClassMembers","member","addSeparator","memberText","members","getStyle","attributeText","argumentText","methodText","lineObject","newStyle","LayoutInfo","getShapeType","Shape","BpmnTask","BpmnTransactionSubProcess","BpmnSubProcess","DiagramShape","nodeDefault","textStyle","changedProperties","oldProperties","flowshape","umlactivityshape","subProcess","children_1","accessibilityContent","portWrapper","contentAccessibility","layout","iconContainer","virtualize","pathdata","annotationcontent","iconContentBounds","diagramProtectPropertyChange","removeElementsByClass","sampleLength","measureWindowElement","pathNode","getChildNode","pathBounds","pathLength","translatedPts","svgBounds","getTextOptions","whiteSpaceToString","wordBreakToString","textAlignToString","wrapSvgText","textValue","laneWidth","txtValue","bounds1","bBoxText","wordWrapping","eachLine","newText","existingWidth","existingText","wrapSvgTextAlign","wrapBounds","txtWidth","measureHtmlText","contentSize","setAttributeHtml","loadedImage","nativeSVG","initX","initY","getDiagramLayerSvg","elementcoll","diagramLayerSvg","contentId","getDomIndex","viewId","layer","postId","getNativeLayer","getHTMLLayer","getDiagramLayer","adornerLayerSvg","getSelectorElement","adornerLayer","getAdornerLayer","diagramAdornerSvg","getUserHandleLayer","diagramUserHandleLayer","diagramLayer","getPortLayerSvg","getNativeLayerSvg","nativeLayerSvg","getGridLayerSvg","gridLayerSvg","getBackgroundLayerSvg","getBackgroundImageLayer","imageLayer","getBackgroundLayer","getGridLayer","domTable","expandCollapse","diagramGridSvg","nativeLayer","parentsUntil","isID","eClassName","getScrollerWidth","widthNoScroll","widthWithScroll","addTouchPointer","touches","isHtml","nodeObject","sentNode","svgContent","div_1","compiledString","templateFn","applyStyleAgainstCsp","createMeasureElements","divElement","tSpan","measureElementCount","setChildPosition","createUserHandleTemplates","userHandleTemplate","diagramID","userHandleFn","baseTemplateComplier","middleLeft","topCenter","bottomCenter","middleRight","updateCloneProp","additionalProp","cloneBlazorProp","propAdditional","internalProp","getInternalProperties","isEventEmmitter","cloneArray","sourceArray","clonedArray","extendObject","extendeArray","extendArray","extendedObject","middleElement","overFlow","minX","minY","maxX","maxY","pivotX","pivotY","offX","offY","CanvasRenderer","grd","linear","radial","stop_1","ptModel","transX","transY","canvasObj","dashArray","dashes","splittedDashes","splittedDashes_1","my","isExport","segs","rx","ry","xAxisRotation","largeArc","sweep","cp","currp","centp","sx","sy","parentSvg","scaleValue","startPointX","startPointY","textlength","endPointX","endPointY","image","fromPalette","ctx_1","pivotX_1","pivotY_1","imageObj","alignOptions","srcWidth","srcHeight","destinationW","destinationH","resultWidth","resultHeight","xalign","yalign","sWidth","sHeight","dWidth","dHeight","canvas1","ctx1","srcRatio","destRatio","labelX","labelY","offsetx","offsety","pointx","pointy","SvgRenderer","pointModel","shadowElement","svgContainer","onlyRect","isCircularHandle","enableSelector","classval","poiterEvents","gElement","circle","textNode","tspanElement","nodeContent","textTag","childNodesHeight","imgAlign","aspectRatio","parentHtmlElement","attr_1","isOverviewLayer","clipPath","svgContentTag","contentWidth","contentHeight","clipWidth","clipHeight","defs","stopElement","lineargradient","radialgradient","canvasRenderer","wrapBound","pointX","pointY","DiagramRenderer","svgRender","isSvgMode","defaultParent","svgElement","layerGElement","groupElement","nativeSvg","createParent","isPreviewNode","centerPoint","isFirst","umlData","constraints","currentZoom","canMask","enableNode","nodeConstraints","handleSize","nodeWidth","nodeHeight","connectedSource","connectedTarget","isSegmentEditing","canShowBezierPoints","segmentCount","controlPointsVisibility","segment_1","bezierPoint","visible","cx","cy","connected","isBorderTickness","diagramUserHandlelayer","pathPading","pathSize","handleContent","templateContent","snapSettings","gridSvg","rulerSettings","hRuler","vRuler","hWidth","hHeight","hSegmentwidth","vSegmentwidth","isRulerGrid","verticalLineIntervals","horizontalLineIntervals","hLine","spaceY","spacey","dy","vLine","svgGrid","gridlines","templateWidth","templateHeight","imageWidth","imageHeight","sourceWidth","sourceHeight","widthRatio","heightRatio","ratio","svgParent","svgNativeParent","parentG","svgParent_1","selectedNode","innerNodeContent","innerLabelContent","isNodeSelected","Node_1","background","backgroundLayer","bgimageLayer","svgMode","gridLayer","portsLayer","expandLayer","diagramElementsLayer","insertIndex","Background","FitOptions","PageSettings","ScrollSettings","ServiceLocator","Gridlines","SnapSettings","DiagramRuler","RulerSettings","DataMappingItems","CrudAction","ConnectionDataSource","DataSource","Layout","ConnectorEditing","edit","removeSegments","updateSeg","segmentIndex","newseg","intersectingSegs","coll","segmentDirection","segValues","insertseg","nextseg","isNextUpdate","nextSegment","lastseg","args1","isSourceNode","selectedSegment","insertfirst","removeCurrentPrev","nextNext","line1Start","line1End","line2Start","line2End","firstSegPoint","lastSegPoint","line1","line2","DiagramEventHandler","ObjectFinder","touchArg","isTextBox","foreignobject","diagramCanvas","removeObjectInterval","currentAction","isSymblDragging","targetObject","info","tooltipTarget","canResetElement","portTarget","isPrivateTooltip","autoScrollPosition","diagram_1","delay_1","oldSelectedValue","avoidDropChildren","history_1","disbleRenderSelector","selectedConnector","swimlaneNode","canInsert","actualShape","ind","swimLaneobj","up","zoomFactor","canMouseWheel","isTrackpadScroll","inAction","keycode","canExecute","selectedSymbols","intDestroy","execute","movingPosition","autoScrollBorder","autoScroll","canAutoScroll","canUpdate","elementOver","idName","keyModifier","actualTarget","fontsize","textWrapper","textBounds","editTextBox","editTextBoxDiv","focusOut","currentConnector","nearNode","isAfterMouseUp","boundsUpdate","isChangeProperties","hasStack","hasGroup","laneId","firstlane","swimlaneBounds","innerNode","endPadding","objArray","layerObjTable","layerTarger","objArray_1","pointInBounds","actualTarget_1","parentObj","parent1","parent2","parentNode1","parentNode2","eventArg","tool","objj1","CommandHandler","toolName","setTooltipTemplate","droppedObject","targetConnector","droppedNodeId","existingConnector","connectorIndex","nodeIndex","droppedNode","connectorOldChanges","nodeOldChanges","nodeOldProperty","connectorOldProperty","connectorNewChanges","nodeNewChanges","nodeNewProperty","connectorNewProperty","newConnector","entry1","propertyChangeArg","nodeNewOffset","connectionEnd","dragOverArg","canCancel","returnargs","connectedNode","argsTarget","connection","connect","nodeEnd","portEnd","clonedNode","annotationNode","annotationObj","oldNodeId","oldPortId","isRemove","blazorInterop","updatedModel","isServerUpdate","objectName","objIndex","layerName","layerId","layerObject","targetLayer","targerNodes","objects_1","layer_1","cloneObject_1","newlayer","tempNode","connectorsList","selectedItems_1","processes","processes_1","protectedChange","childCollection","isInEdges","copiedItems","objectTable","keyTable","copiedItems_1","copiedObject","clonedObj","newNode","edges_1","edges_2","newobjs","groupnodeID","connectorsTable","checkAnnotation","currentAnnotation","innerChild","connector_1","node_1","newChildren","sourceId","connectorObj","oldID","objectCollection","childObj","enable","argValue","multipleSelection","oldSelectedItems","canDoMultipleSelection","canDoSingleSelection","eventObj","preventUpdate","hasLayer","oldItemsCollection","selectormodel","targetID","diagramDiv","backNode","currentLayerObject","currentLayerObject_1","targetLayerObjects","targetLayerObjects_1","objectId","layerNum","zIndexTable","tempTable","tempIndex","i_4","childCount","diagramobject","connectorObject","elementObject","objBehind","objectName_1","tabelLength","oldzIndexTable","i_5","i_6","i_7","i_8","tempIndex_1","cloneTable","i_9","i_10","swimlaneObject","i_11","i_12","i_13","lastChildNode","zIndexValue","objectNode","zIndexNode","oldObj","selectedNodeName","nodeArray","sortID","isRedo","startZIndex","endZIndex","layerIndex","undoObject_1","layer_2","layer_3","clonedObjects","intersectArray","temp_1","currentLayer","obj_2","overlapObject","currentObject","temp_2","redo","historyEntry","temp_3","obj_3","temp_4","node_2","selArray","rubberArray","checkBezierThumb","isObjectInteraction","newDiagram","previousObject","changedNodes","mouseDownElement","triggerAction","enableServerDataBinding","blazarArgs","selectNodes","selectedNodes","selectedConnectors","symbolDrag","node_3","hasEnds","canDragPoints","existingInnerBounds","isRotate","segmentChange","secondSegment","cornerPoints","isDragSource","canChangeSegment","secPoint","nextDirection","segValues1","changeTerminal","sourcePoint2","prevSegment","oldDistance","oldAngle","deltaLength","deltaAngle","isSourceEnd","newDistance","newAngle","boundaryConstraints","segmentNumber","isInternalSegment","pivotValue","includeParent","objects_2","protect","innerParents","isOutsideBoundary","refWrapper","innerParent","parentNodes","isResize","oldleft","oldtop","parent_5","parent_6","nodeModel","matrix_1","selectorEle","changedvalues","pointLength","totalLength","intersectingOffset","intersetingPts","minDistance","tempPt","contentDimension","curZoomfactor","dragLimit","annotationWrtapper","draggableBounds","lineIntersects","lineIntersects_1","ptt","cursorLimit","polyLine","intersects","polyLine2","polyLine1","pre","deg","conPoints","intercepts","imgLine","segemnt","tarAngle","srcAngle","angleAdd","labelWrapper","newMat","pageSettings","scroller","selectorBounds","top_2","canLayout","preventNodesUpdate","fixedNode","boolean","previousNode","Connectorlength1","Connectorlength2","oldTarget","nodeCollection","targetNodes","connectHighlighter","tgt","tgtWrap","parent_8","towardsLeft","towardsTop","hasTarget","sourcenode","objectBounds","top_3","btt","undoSelectorObj","redoSelectorObj","selectorObject","eventCheck","diagramScrollSettings","Values","scrollX","scrollY","panx","pany","lowerIndexobject","layerZIndexTable","DiagramScroller","pageBounds","postion","viewWidth","viewHeight","actualRight","currentRight","actualBottom","currentBottom","coll1","coll2","isExist","oObjects","oObjectsID","renderOrder","bpmnShape","zindexOrder","newObjects","removeObjects","hScrollSize","vScrollSize","oldWidth","oldHeight","hasPadding","isnegativeRegion","negwidth","negheight","origin_1","scrollpadding","widthCount","heightCount","deltaX","deltaY","isInteractiveZoomPan","isBringIntoView","targetMatrix","canZoomIn","customBounds","hoffset","voffset","actualbounds","scrollableBounds","allowedRight","allowed","allowedBottom","Quad","spatialSearching","currentViewPort","quads","quadSet","halfWidth","halfHeight","xCenter","yCenter","newQuad","quadAddition","quad","newParent","isempty","newHeight","SpatialSearch","nodBounds","quads_1","originX","originY","SerializationSettings","CustomCursorAction","DiagramSettings","ConnectorProperties","convertedData","connectorShape","decoratorShape","connectorSegments","segmentProp","pointsCollection","connectorConstraints","LabelProperties","modelProperties","oldLabels","labelCollection","newLabel","annotationConstraints","NodeProperties","portProperties","processCollection","processName","basicShape","flowShape","gradient","newGradient","gradientStops","stopsCollection","newStop","subProcessEvents","eventsCollection","newEvent","eventObject","processesCollection","processObject","PortProperties","oldPorts","portCollection","newPort","portConstraints","EJ1SerializationModule","newLayer","rulerProperties","snapConstraints","gridLinesProperties","contextMenuItems","oldMenuItem","diagramConstraints","diagramTool","defaultConnector","mId","outEdge","isOutEdge","isAdding","remove_1","isConnector","isPropertyChanged","refreshLayout","refereshColelction","changedProp","sourcePortid","propertyObjects","nodeObjects","connObjects","connIndex","scrollAlone","nodeObj","linearNode","radialNode","linearProp","radialProp","stops","loadEventData","collapsedNode","hiddenUserHandleTemplate","pathAnnotation","htmlNode","templateAnnotation","tooltipelement","startEvent","stopEvent","moveEvent","cancelEvent","isIE11Pointer","wheelEvent","negativeDirection","updated","disable","getCustomTool","getCustomCursor","currentSymbol","check","undoObjects","nodeSourceId","connectorSourceId","undoIndex","canCall","focusedPoint","severDataBind","propChange","isHistoryAdded","isUndoStack","multiSelectDelete","isBlazorGroupUpdate","connectorModelCollection","updatedModelCollection","objectTypeCollection","removalIndexCollection","updatedModel_1","dgmObj","annotationNodeIndex","nodeIndexCollection","nodesCollection","connectorCollection","isOutEdges","sourceNodee","isOutEdgee","processes_2","nodeParent","isInEdge","removeElement_1","removePort","parentnode","isstack","bpmnAnnotation","textEditing","textArea","getCenterPoint","fixedUserHandleWrapper","annotationWrapper","processId","canDoOverlap","canEnableRouting","viewPort","updatedNodes","updatedNodes_1","isEJ1Data","ejDiagram","styleSheets","stackLimit","constraintsType","constraintsValue","labels","real","commonStyle","bgLayer","backgroundImage","svgGridSvg","diagramSvg","transformationLayer","scrollerSize","measureElements","svgAdornerSvg","svgSelector","svgPortsSvg","svgPortsLayer","svgExpandLayer","htmlLayerDiv","svgObj","isLoad","hasLayers","tempTabel","bpmnTable","alignedGroups","alignedGroups_1","connectors_1","parents","parentist","zIndex","childzIndex","layerObject_1","hPan","vPan","panStatus","dataSourceSettings","independentObj","defaultLayer","getDefaults","isWidth","iconWrapper","isUpdateSize","node1","portContainer","checkPorts","setNodeTemplate","fixedUserHandles","newCommands","newCommand","portEdges","canIgnoreIndex","isUpdateObject","finalPoint","totalPoints","absoluteLength","objectArray","objectArray_1","view_1","inverse","clearIntervalVal","tCollection","fromExport","isOverView","renderNode","transformValue","verticalValue","status_1","pathSegment","adornerSVG","overview","canInitialize","hideRotate","hideResize","thumbConstraints","isSwimLane","selectorElement","canRender","rotate","isSelect","canHideResizers","stackPanel","symbolBorder","selectionRect","templates","annotation_1","changesAnnotation","oldnodes","newnodes","phaseHeader","childernCollection","beforeElement","tempNode_1","oldNode","oldConnector","actualSourcePoint","actualTargetPoint","oldShape","oldObjects","newLane","childNodeIndex","oldSelectConstraints","newSelectConstraints","oldNodeObject","isLayout","propertyChange","existingBounds","updateNode","actualPort","actualfixedUserHandle","sizeChanged","updateSelector","disableBridging","oldSource","portEdge","isInconnect","lineDistributionModule","opacity","selItems","canUpdateSize","fixedUserHandleAnnotation","iconRect","iconShape","nodeShadow","changedShadow","preview","previewChildId","previewIndex_1","previewIndex","selectedSymbol","entryTable","dragDataHelper","paletteId","nodeDragSize","nodePreviewSize","paletteDragSize","newObjBounds","childtable","palettePreview","swimLaneObj","child1","child2","draggableElement","selectedSymbols_1","crud","getNodesCollection","nodeCrudAction","connectorCrudAction","mappingObj","hiddenItems","newItem","DataBinding","dataProp","jsonProp","firstNode","rootNodes","nextLevel","doBinding","arrayProperty","innerProperty","rtNodes","canBreak","sNode","tNode","connModel","CLS_ACRDN_ROOT","CLS_ROOT","CLS_ITEM","CLS_ITEMFOCUS","CLS_ITEMHIDE","CLS_HEADER","CLS_HEADERICN","CLS_HEADERCTN","CLS_CONTENT","CLS_CTENT","CLS_TOOGLEICN","CLS_COLLAPSEICN","CLS_EXPANDICN","CLS_RTL","CLS_CTNHIDE","CLS_SLCT","CLS_SLCTED","CLS_ACTIVE","CLS_ANIMATE","CLS_DISABLE","CLS_TOGANIMATE","CLS_NEST","CLS_EXPANDSTATE","CLS_CONTAINER","AccordionActionSettings","AccordionAnimationSettings","AccordionItem","Accordion","acrdItem","acrdItem_1","headerEle","innerEles","rootEle","tglIcon","hdrColIcon","innerItem","innerDataSourceItem","trgt","acrdEle","acrdnItem","acrdnHdr","acrdnCtn","acrdnCtnItem","ctnCheck","acrdActive","cntclkCheck","inlineAcrdnSel","inlineEleAcrdn","nestContCheck","acrdcontainer","acrdnchild","acrdAniEle","acrdAniEle_1","sameContentCheck","sameHeader","acrdnCtn_1","acrdnRoot","expandState","clst","clstItem","ariaAttr","innerEle","ctnEle","hdrEle","hdr","hdrIcnEle","hdrIcon","parseddata","temString","eleVal","tempArray","itemEle","itemcnt","ctn","trgtItemEle","expandArgs","icn","progress","itemCollection","trgtItEl","trgtHeight","itemHeight","remain","addItems","addItem","innerItemEle","isEnable","eleHeader","expandedItem","ctnElePos","eleStr","itemObj","tempEle","childEle","templateEle","registeredTemplates","registeredItem","closestItem","portals","portalItem","acrdn","isRefresh","newVal","activeContent","BpmnDiagrams","key_1","bpmnShapeData","getBpmnShapePathData","gatewayshape","gatewayNode","gatewayTypeNode","shapeType","gatewayTypeNodeShapeData","getBpmnGatewayShapePathData","dataObjectshape","dataobjNode","dataobjTypeNode","dataobjCollectionNode","task","taskShapes","taskNode","childSpace","taskTypeNode","taskTypeNodeData","getBpmnTaskShapePathData","taskTypeNodeService","loopType","taskLoopNode","childNode2data","getBpmnLoopShapePathData","taskCompNode","subEvent","sub","eventshape","shapeEvent","shapeActivity","innerEvtNode","outerEvtNode","triggerNode","triggerNodeData","getBpmnTriggerShapePathData","eventLength","elementWrapper","subProcessShapes","subprocessAdhoc","subProcessLoopShapes","subChildCount","subprocessNode","iconSpace","subChildSpace","collapsedShape","subprocessComp","eventContainer","shapeWidth","shapeHeight","transactionEvents","subprocessLoop","subprocessLoopData","processNode","nodeindex","processTable","processTable_1","processIndex","excludeChild","compensationNode","subProcessEventsShapes","annot","adhocNode","annotationContainer","annotationPath","annotationConnector","nodeKey","connKey","annotationsContainer","textObject","annotationObject","bpmnShapeContent","activeLabel","parentNodeId","elementWrapperChild1","elementWrapperChild2","child0","elementWrapperChild0","bpmnshapeTriggerdata","actualObjectProp","bpmnshapeTaskdata","activity","loop","bpmnshapeLoopdata","eventIndex","eventWrapper","actualEvent","wrapperChild","flowType","offLength","eventNode","bpmnShapes","bpmnTriggerShapes","bpmnGatewayShapes","bpmnTaskShapes","bpmnLoopShapes","LineDistribution","srcDirection","tarDirection","graphnodes","inversespacing","srcdecoratorSize","obstacleCollection","tardecoratorSize","avaibaleSpace","connectorObstacles","globalConnectors","obssegments","obstacle","connectorObstacle","obstacleSegment","modifiedgrap","sortedrow","groupby","maxEnd","sortedGroup","comparingDir","directed","reversedirected","mutual","mutualRow","directedRow","subrow","descAdding","directionModifier","startCoord","newcoord","index_1","keyCheck","connectorPoints","startSegmentSize","intermediatePoint","layoutBounds","newPt","nextPt","ptsCount","newPt1","edgePt","intercepts1","intercepts2","tempSegment","obstacleSegments","segmentRow","sourceDirection","targetDirection","outConnectors","inConnectors","internalConnector","internalConnector2","childNode2","startingCell","shiftChildren","parentCell","matrixModel","matrixRow","nextSibilingwithChild","layoutSettings","spacing","matrixIndex","matrixCellChild","newoffset","validOffset","absolutePoints","opposite","newBounds","orthogonal","dx","alpha","pi2","beta","terminal","orth","p0","geometry","temppoints","segements","matrixKey","matrixrow","firstParent","lastParent","firstVertexParent","lastVertexParent","availOffsetMin","availOffsetMax","matrixrow1","matrixCell","internalVertex","internalEdges","cell_1","type_1","lineWidth","edgeSpacing","cellVisitedChild","ranks","vertices","rank","vertex1","parentset1","childset1","vertex2","parentset2","childset2","parentequals","childequals","internalEdge","parentset","childset","groupedges","internalEdgese","returnIds","list1","list2","newList1","newList2","spacingInverse","matrixCellMapper","rowoffset","maxDimension","tempMatrixRow","layoutCell","type_2","type_3","parentcellValue","parentMartixCell","type1","cellSize","parentcell","modelBounds","layoutProp","nodeWithMultiEdges","trnsX","trnsY","modifiedConnectors","transModelBounds","segmentsize","edgeMapper","edgePoint","dxValue1","dyValue1","dx1","dy1","ComplexHierarchicalTree","HierarchicalLayoutUtil","CrossReduction","vertex","roots","maxDiff","conns","outEdges","inEdges","terminalCache","currentComp","hierarchyVertices","filledVertices","vertexID","edgeIsSource","netCount","isSource2","otherTerm","filledVertexSet","candidateRoots","vertexSet","checkLinear","MultiParentModel","clnode","dnode","targetValue","sourceValue","rankOffsetValue","offsetValue","maxRank","minRank","parallelEdgeCount","jettys","layoutReversed","realEdge","realSource","arrayOffset","jetty","loopStart","loopLimit","loopDelta","currentRank","topChannelY","bottomChannelY","rankY","rankIndex","currentCells","sortedCells","sorter","leftLimit","rightLimit","connectedEdgeCount","connectedEdges","innerCell","connections","requiredWidth","currentX","currentYOffset","numActualEdges","connector1","connector2","geometryValue","rankValue","localOffset","cellGeomtry","nodeRect","tempnode1","viewPortBounds","marginX","marginY","placementStage","plalementChange","lastRankMaxCellSize","maxCellSize","numEdges","distanceToNextRank","isY","stage","maxOffset","facade","otherNode","weightedValue","weightedCellSorter","nodeWrapper","maxTries","cellWrapper","nextLayerConnectedCells","previousLayerConnectedCells","nextConnectedCount","prevConnectedCount","medianNextLevel","medianPreviousLevel","numConnectedNeighbours","cellMedian","positionChanged","tempValue","leftCell","rankSize","rightCell","connectedCell","connectedCellWrapper","connectedCells","medianValues","medianPoint","leftMedian","rightMedian","bestOffsetDelta","realCell","startNodes","internalNodes","startNodesCopy","internalNode","layerDeterminingEdges","edgesToBeMarked","allEdgesScanned","minimumLayer","removedCell","currentMaxLayer","seenNodes","unseenNodesArray","unseenNodes","rootsArray","modelRoots","seenNodesCopy","connectingEdge","trg","dlayout","internalVertices","realEdges","targetCell","internalTargetCell","geo","undirectedEdges","directedEdges","rankList","oldRootsArray","parentToCellRankDifference","dic","edgeId","dfsRoots","trackAncestors","rootId","outgoingEdges","traversedList","cHash","hashCodeLength","transients","shallow","numRanks","totalCrossings","previousRank","tmpIndices","rankPosition","nodeIndices","otherCellRankPosition","firstIndex","treeSize","treeIndex","iterationsWithoutImprovement","currentBestCrossings","candidateCrossings","iteration","downwardSweep","isPrevious","connectedlayer","connectedAs","arrayCount","numCellsForRank","reservedPositions","sorterEntry","nextLevelConnectedCells","nextRankValue","Palette","SymbolDragSize","SymbolPreview","SymbolPalette","clonedElement","refresh","paletteDiv","paletteElement","palObj","accordionDiv","isAllowDatabind","diagramArgs","measureElemnt","palettes","symbolGroup","laneHeight","swimLaneShape","laneStyle","headerStyle","headerObj","getNodeDefaults","getConnectorDefaults","group_1","paletteName","paletteSymbol","symbolPaletteGroup","isEnableServerDatabind_1","symbolContainer","getSymbolTemplate","symbolInfo","getSymbolInfo","actualWidth","actualHeight","shapeSymbolInfo","parentDiv","symbolPreviewWidth","symbolPreviewHeight","symbolPreview","symbolWidth","symbolHeight","previewContainer","isPreview","palette_1","oldSymbol","e2eInstance","childContainer","symGroup","searchDiv","textBox","filterSymbols","symbolGroup_1","emptyDiv","searchPalette","paletteCollection","keyEvent","keyDownEvent","Overview","oldparent","ovw","eWidth","eHeight","bRect","screenX","screenY","widthValue","heightValue","htmlDiv","innerrect","transrect","difx_1","dify_1","transattr","rectname","offwidth","offheight","viewwidth","viewheight","svgRect","scaled","scalex","scaley","delx","dely","canOverview","diagramBoundsWidth","diagramBoundsHeight","transformWidth","transformHeight","widthratio","heightratio","overViewHandle","overviewLayer","DiagramComponent","PaletteDirective","PalettesDirective","SymbolPaletteComponent","OverviewComponent","_objectSpread2","isUnknownObject","raw","isPromise","isStripe","PLAIN_OBJECT_STR","leftArray","rightArray","leftPlainObject","rightPlainObject","leftKeys","rightKeys","keySet","extractAllowedOptionsUpdates","immutableKeys","isUpdated","INVALID_STRIPE_ERROR","validateStripe","maybeStripe","parseStripeProp","stripe","ElementsContext","parseElementsContext","useCase","CartElementContext","parseCartElementContext","Elements","rawStripeProp","cart","setCart","_React$useState3","_React$useState4","cartState","setCartState","_React$useState5","_React$useState6","setContext","safeSetContext","prevStripe","updates","anyStripe","useElementsContextWithUseCase","useCaseMessage","useCartElementContextWithUseCase","useElements","_useElementsContextWi","useStripe","_useElementsContextWi2","useAttachEvent","cbDefined","cbRef","decoratedCb","capitalized","createElementComponent","ClientElement","_ref$options","onReady","onEscape","onLoadError","onLoaderStart","onNetworksChange","onCheckout","onLineItemClick","onConfirm","onCancel","onShippingAddressChange","onShippingRateChange","setElement","domNode","_useCartElementContex","readyCallback","changeCallback","checkoutCallback","ServerElement","Element","AuBankAccountElement","CardElement","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","findScript","scripts","injectScript","headOrBody","registerWrapper","startTime","stripePromise","loadScript","initStripe","stripePromise$1","loadCalled","loadStripe","semver","validateAndParse","isWildcard","tryParse","forceType","compareStrings","ap","bp","compareSegments","compareVersions","n1","n2","requiredArgs","toDate","argStr","addLeadingZeros","targetLength","formatISO","_options$format","_options$representati","representation","tzOffset","dateDelimiter","timeDelimiter","absoluteOffset","hourOffset","minuteOffset","cleanFields","cleaned","prependEach","lenA","lenB","detectCircular","replacer","undefinedBehavior","UndefinedBehavior","stringifyInvalidValue","formatValue","pretty","getOrderByType","cmp","_options_keyOrdersMap","_options_keyOrdersMap1","orderByMapA","orderByMapB","orderByTypeA","orderByTypeB","getType","prettyAppendLines","linesLeft","linesRight","keyLeft","keyRight","valueLeft","valueRight","valueCmpOptions","_resultLeft","_resultRight","maxLines","_resultLeft_i_match","_resultLeft_i_match_","_resultRight_i_match","_resultRight_i_match_","_resultLeft_i_match1","_resultLeft_i_match_1","_resultRight_i_match1","_resultRight_i_match_1","_resultLeft_i_match2","_resultLeft_i_match_2","_resultRight_i_match2","_resultRight_i_match_2","sortKeys","diffObject","lhs","rhs","arrayDiffFunc","addedLines","_addedLines_i_match","_addedLines_i_match_","_addedLines_i_match1","_addedLines_i_match_1","keysLeft","keysRight","keyOrdersMap","keysCmpOptions","keyCmpResult","arrLeft","arrRight","resLeft","resRight","_addedLines_i_match2","_addedLines_i_match_2","_addedLines_i_match3","_addedLines_i_match_3","_addedLines_i_match4","_addedLines_i_match_4","_addedLines_i_match5","_addedLines_i_match_5","listCacheClear$1","eq$2","eq$1","assocIndexOf$4","assocIndexOf$3","listCacheDelete$1","assocIndexOf$2","listCacheGet$1","assocIndexOf$1","listCacheHas$1","listCacheSet$1","ListCache$4","ListCache$3","stackClear$1","_stackClear","stackDelete$1","_stackDelete","stackGet$1","_stackGet","stackHas$1","_stackHas","commonjsGlobal","freeGlobal$1","root$8","root$7","Symbol$3","Symbol$2","objectProto$b","hasOwnProperty$8","nativeObjectToString$1","symToStringTag$1","getRawTag$1","objectProto$a","objectToString$1","Symbol$1","baseGetTag$4","isObject$2","baseGetTag$3","funcTag$1","isFunction$2","root$6","coreJsData$1","isMasked$1","funcProto$1","funcToString$1","toSource$2","isFunction$1","toSource$1","objectProto$9","hasOwnProperty$7","baseIsNative$1","getValue$1","getNative$6","getNative$5","root$5","Map$4","getNative$4","nativeCreate$4","nativeCreate$3","hashClear$1","hashDelete$1","nativeCreate$2","HASH_UNDEFINED$2","objectProto$8","hasOwnProperty$6","hashGet$1","nativeCreate$1","objectProto$7","hasOwnProperty$5","hashHas$1","HASH_UNDEFINED$1","hashSet$1","Hash$1","ListCache$2","Map$3","mapCacheClear$1","isKeyable$1","getMapData$4","getMapData$3","mapCacheDelete$1","getMapData$2","mapCacheGet$1","getMapData$1","mapCacheHas$1","mapCacheSet$1","MapCache$2","ListCache$1","Map$2","MapCache$1","stackSet$1","_stackSet","Stack$1","_Stack","setCacheAdd$1","_setCacheAdd","setCacheHas$1","_setCacheHas","SetCache$1","_SetCache","arraySome$1","_arraySome","cacheHas$1","_cacheHas","COMPARE_PARTIAL_FLAG$3","COMPARE_UNORDERED_FLAG$1","equalArrays$2","_equalArrays","root$4","Uint8Array$1","_Uint8Array","mapToArray$1","_mapToArray","setToArray$1","_setToArray","equalArrays$1","COMPARE_PARTIAL_FLAG$2","boolTag$1","dateTag$1","errorTag$1","mapTag$2","numberTag$1","regexpTag$1","setTag$2","stringTag$1","arrayBufferTag$1","dataViewTag$2","equalByTag$1","_equalByTag","arrayPush$1","_arrayPush","isArray$3","isArray$2","baseGetAllKeys$1","_baseGetAllKeys","arrayFilter$1","_arrayFilter","stubArray$1","stubArray_1","objectProto$6","propertyIsEnumerable$1","getSymbols$1","_getSymbols","baseTimes$1","_baseTimes","isObjectLike$4","baseGetTag$2","isObjectLike$3","argsTag$2","baseIsArguments$1","_baseIsArguments","isObjectLike$2","objectProto$5","hasOwnProperty$4","isArguments$1","isArguments_1","isBuffer$2","stubFalse_1","MAX_SAFE_INTEGER$1","isIndex$1","_isIndex","isLength$2","isLength_1","baseGetTag$1","isLength$1","isObjectLike$1","argsTag$1","arrayTag$1","mapTag$1","objectTag$2","setTag$1","weakMapTag$1","dataViewTag$1","baseIsTypedArray$1","_baseIsTypedArray","baseUnary$1","_baseUnary","_nodeUtil","isTypedArray$2","isTypedArray_1","isArray$1","isBuffer$1","isTypedArray$1","objectProto$4","hasOwnProperty$3","arrayLikeKeys$1","_arrayLikeKeys","objectProto$3","isPrototype$1","_isPrototype","overArg$1","_overArg","nativeKeys$1","_nativeKeys","objectProto$2","hasOwnProperty$2","baseKeys$1","_baseKeys","isArrayLike$1","isArrayLike_1","keys$1","getAllKeys$1","_getAllKeys","COMPARE_PARTIAL_FLAG$1","objectProto$1","hasOwnProperty$1","equalObjects$1","_equalObjects","getNative$3","root$3","DataView$1","_DataView","getNative$2","root$2","Promise$2","_Promise","getNative$1","root$1","Set$2","_Set","WeakMap$1","_WeakMap","Map$1","Promise$1","Set$1","objectTag$1","getTag$1","_getTag","baseIsEqualDeep$1","_baseIsEqualDeep","baseIsEqual$1","_baseIsEqual","isEqualWith_1","shallowSimilarity","leftKeysLength","rightKeysLength","leftKeysSet","rightKeysSet","lcs","backtrack","typeI","typeJ","reversedLeft","reversedRight","diffArrayLCS","typeLeft","typeRight","removedLines","_removedLines_i_match","_removedLines_i_match_","tLeftReverse","tRightReverse","diffArrayNormal","itemLeft","itemRight","leftType","rightType","leftLines","rightLines","_extends$1","sortInnerArrays","EQUAL_EMPTY_LINE","EQUAL_LEFT_BRACKET_LINE","EQUAL_RIGHT_BRACKET_LINE","Differ","t1","t2","nextLine","sourceLeft","sourceRight","_cleanFields","_cleanFields1","resultLeft","resultRight","_line_match","_line_match_","lLength","rLength","maxDepth","showModifications","arrayDiffMethod","ignoreCaseForKey","recursiveEqual","preserveKeyOrder","isExpandLine","getSegmentHeight","expandLineHeight","mergeSegments","diffs","calculatePlaceholderHeight","accTop","startSegment","startLine","endSegment","endLine","topHeight","bottomHeight","startSegmentItem","endSegmentItem","findVisibleLines","viewportTop","viewportBottom","bin","lcs_1","diff_internal","stack_base","stack_top","Z_block","parity","hmax","h_loop","kmin","kmax","gkm","gkp","pkm","pkp","DiffGen","diff_core","xs","ys","LCSGen","rec","ey","calcPatch","applyPatch","dels","dele","ins","getOriginalIndices","separatorLength","filterEmptyParts","getInlineDiff","resultL","resultR","lastL","lastR","wordSeparator","lArr","rArr","indicesL","indicesR","sl","sr","syntaxHighlightLine","pairedQuoteIndex","getSegments","jsonsAreEqual","threshold","DEFAULT_INDENT","DEFAULT_EXPAND_MORE_LINES_LIMIT","DEFAULT_TEXTS","Viewer","_props_inlineDiffOptions","_props_inlineDiffOptions1","mergedTexts","lineNumberWidth","_props_indent","indent","indentChar","indentSize","inlineDiffOptions","_props_hideUnchangedLines","hideUnchangedLines","_scrollContainer","scrollContainer","linesLeftRef","linesRightRef","segmentsRef","accTopRef","totalHeightRef","tbodyRef","updateViewer","onExpandBefore","newSegment","onExpandAfter","onExpandAll","renderInlineResult","comma","syntaxHighlightEnabled","frag","renderLine","_props_bgColour","_props_bgColour1","lDiff","rDiff","lTokens","rTokens","lResult","rResult","_props_bgColour_l_type","bgLeft","_props_bgColour_r_type","bgRight","renderExpandLine","hasLinesBefore","hasLinesAfter","expandMoreLinesLimit","renderSegment","renderStart","renderEnd","renderTbody","_scrollContainer_clientHeight","_scrollContainer_scrollTop","_t_offsetTop","firstElementTop","visibleSegments","renderMeasureLine","HumanizeDurationLanguage","mod10","HumanizeDuration","languageUtil","tempOptions","passedOptions","piece","dictionary","pieces","unitName","unitMS","unitCount","firstOccupiedUnitIndex","ratioToLargerUnit","previousPiece","countStr","override","_CodeOrName","Name","_Code","addCodeArg","plus","safeStringify","optimize","mergeExprItems","strConcat","getProperty","getEsmExportName","regexpCode","code_1","ValueError","UsedValueState","Scope","prefixes","nameOrPrefix","ValueScopeName","nameStr","ValueScope","valueKey","vs","keyOrRef","usedValues","getCode","valueCode","nameSet","def","scope_1","code_2","scope_2","_constants","Def","varKind","es5","constants","optimizeExpr","Assign","sideEffects","addExprNames","AssignOp","Break","Throw","AnyCode","ParentNode","subtractNames","addNames","BlockNode","Else","not","For","ForLoop","ForRange","ForIter","Func","Return","Try","Catch","Finally","CodeGen","extScope","prefixOrName","_constant","thenBody","elseBody","forBody","tryBody","catchCode","finallyCode","nodeCount","toClose","funcBody","N1","N2","replaceName","canOptimize","par","andCode","mappend","and","orCode","or","util","codegen_1","toHash","alwaysValidSchema","checkUnknownRules","schemaHasRules","checkStrictMode","schemaHasRulesButRef","schemaRefOrVal","topSchemaRef","schemaPath","$data","unescapeFragment","unescapeJsonPointer","escapeFragment","escapeJsonPointer","eachItem","makeMergeEvaluated","mergeNames","mergeToName","mergeValues","resultToName","toName","setEvaluated","evaluatedPropsToName","ps","snippets","useFunc","Type","getErrorPath","dataPropType","jsPropertySyntax","names_1","util_1","schemaType","cxt","errorPaths","overrideAllErrors","compositeRule","allErrors","errObj","errorObjectCode","addError","returnErrors","reportExtraError","resetErrorsCount","errsCount","extendErrors","schemaValue","errs","validateName","schemaEnv","createErrors","errorObject","errorInstancePath","errorSchemaPath","extraErrorProps","errorPath","instancePath","instPath","errSchemaPath","parentSchema","schPath","boolSchema","boolError","topBoolOrEmptySchema","falseSchemaError","boolOrEmptySchema","_jsonTypes","jsonTypes","isJSONType","applicability","schemaHasRulesForType","shouldUseGroup","shouldUseRule","kwd","dataType","rules_1","applicability_1","DataType","getSchemaTypes","getJSONTypes","coerceAndCheckDataType","coerceTo","coerceToTypes","checkTypes","wrongType","checkDataTypes","coerceData","reportTypeError","COERCIBLE","coerceTypes","coerced","coerceSpecificType","assignParentData","parentData","parentDataProperty","checkDataType","strictNums","correct","EQ","numCond","_cond","dataTypes","notObj","typeError","getTypeErrorContext","schemaCode","assignDefaults","assignDefault","sch","childData","util_2","checkReportMissingProp","noPropertyInData","checkMissingProp","missing","reportMissingProp","hasPropFunc","isOwnProperty","propertyInData","ownProperties","allSchemaProperties","schemaMap","schemaProperties","callValidateCode","passSchema","dataAndSchema","valCxt","newRegExp","usePattern","validateArray","validArr","validateItems","notValid","validateUnion","schValid","_sch","schCxt","macroKeywordCode","macroSchema","schemaRef","useKeyword","funcKeywordCode","checkAsyncKeyword","validateRef","validateKeyword","assignValid","modifyData","reportErrs","ruleErrs","validateAsync","validateSync","addErrs","validateErrs","_await","passCxt","validSchemaType","allowUndefined","validateKeywordUsage","subschema","getSubschema","schemaProp","extendSubschemaData","dpType","dataPathArr","nextData","dataContextProps","_nextData","extendSubschemaMode","jtdDiscriminator","jtdMetadata","fastDeepEqual","equal","traverse","jsonSchemaTraverseModule","_traverse","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeJsonPtr","SIMPLE_INLINED","inlineRef","hasRef","countKeys","REF_KEYWORDS","getFullPath","normalizeId","_getFullPath","TRAILING_SLASH_HASH","resolveUrl","baseId","ANCHOR","getSchemaRefs","schemaId","uriResolver","schId","baseIds","pathPrefix","localRefs","schemaRefs","innerBaseId","addRef","addAnchor","ambiguos","schOrRef","checkAmbiguosRef","sch1","sch2","boolSchema_1","dataType_1","dataType_2","defaults_1","keyword_1","subschema_1","resolve_1","validateFunctionCode","isSchemaObj","checkKeywords","schemaCxtHasRules","topSchemaObjCode","funcSourceUrl","destructureValCxtES5","destructureValCxt","commentKeyword","checkNoDefault","resetEvaluated","typeAndKeywords","returnResults","subschemaCode","subSchemaObjCode","updateContext","checkAsyncSchema","checkRefsAndKeywords","schemaKeywords","checkedTypes","rootName","ValidationError","assignEvaluated","evaluated","typeErrors","keywordCode","checkStrictTypes","groupKeywords","iterateKeywords","useDefaults","checkContextTypes","checkMultipleTypes","checkKeywordTypes","includesType","strictTypesError","narrowSchemaTypes","hasApplicableType","schTs","kwdT","withTypes","KeywordCxt","successAction","failAction","errorParams","codeBlock","$dataValid","wrong$DataType","invalid$DataSchema","validateSchemaRef","appl","nextContext","schemaCxt","ruleType","JSON_POINTER","RELATIVE_JSON_POINTER","dataLevel","dataNames","jsonPointer","errorMsg","pointerType","validation_error","ref_error","MissingRefError","validation_error_1","validate_1","SchemaEnv","compileSchema","getCompilingSchema","_ValidationError","sourceCode","validateCode","resolveRef","schOrFunc","inlineOrCompile","schEnv","sameSchemaEnv","s1","s2","resolveSchema","refPath","getJsonPointer","PREVENT_SCOPE_CHANGE","parsedRef","partSchema","$ref","factory","sets","subexp","typeOf","toUpperCase","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","GEN_DELIMS$$","SUB_DELIMS$$","RESERVED$$","UCSCHAR$$","IPRIVATE$$","UNRESERVED$$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","IPV6ADDRESS$","ZONEID$","PCHAR$","URI_PROTOCOL","IRI_PROTOCOL","slicedToArray","sliceIterator","toConsumableArray","maxInt","tMin","tMax","skew","damp","initialBias","initialN","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","mapDomain","encoded","ucs2decode","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","adapt","numPoints","inputLength","bias","oldi","baseMinusT","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_currentValue2","basicLength","handledCPCount","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","handledCPCountPlusOne","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_currentValue","qMinusT","toUnicode","toASCII","punycode","SCHEMES","pctEncChar","pctDecChars","newStr","c3","_normalizeComponentEncoding","decodeUnreserved","decStr","_stripLeadingZeros","_normalizeIPv4","_matches","address","_normalizeIPv6","_matches2","_address$toLowerCase$","_address$toLowerCase$2","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","allZeroFields","lastLongest","longestZeroFields","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","schemeHandler","_recomposeAuthority","uriTokens","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","resolveComponents","relative","skipNormalization","baseURI","relativeURI","schemelessOptions","uriA","uriB","escapeComponent","unescapeComponent","handler$1","isSecure","wsComponents","handler$2","_wsComponents$resourc","_wsComponents$resourc2","handler$3","ATEXT$$","QTEXT$$","VCHAR$$","SOME_DELIMS$$","UNRESERVED","PCT_ENCODED","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$4","mailtoComponents","unknownHeaders","hfields","hfield","toAddrs","_x","_xl","_x2","_xl2","addr","toAddr","atIdx","localPart","URN_PARSE","handler$5","urnComponents","nid","nss","urnScheme","uriComponents","UUID","handler$6","uuidComponents","uri_1","ref_error_1","compile_1","codegen_2","$dataRefSchema","defaultRegExp","META_IGNORE_OPTIONS","EXT_SCOPE_NAMES","removedOptions","deprecatedOptions","MAX_EXPRESSION","requiredOptions","_u","_v","_w","_y","_z","_0","_optz","Ajv","formatOpt","checkOptions","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","addInitialSchemas","_dataRefSchema","schemaKeyRef","_meta","loadSchema","runCompileAsync","_schema","loadMetaSchema","_compileAsync","checkLoaded","loadMissingSchema","missingRef","_loadSchema","_validateSchema","throwOrLogError","$schema","keyRef","getSchEnv","definitions","kwdOrDef","checkKeyword","addRule","keywordMetaschema","dataVar","metaSchema","keywordsJsonPointers","schemaOrData","schemas","validateSchema","addSchema","currentOpts","checkOpts","optsSchemas","metaOpts","noLogs","KEYWORD_NAME","ruleGroup","addBeforeRule","_rule","$dataRef","callRootRef","schOrEnv","callValidate","inlineRefSchema","callRef","getValidate","schName","$async","callAsyncRef","callSyncRef","addEvaluatedFrom","addErrorsFrom","schEvaluated","core_1","ref_1","limitNumber","KWDs","kwdOp","opsIdx","limitNumberExclusive","limitKwd","multipleOf","prec","ucs2length_1","ucs2length","limitLength","limitProperties","missingProperty","useLoop","allErrorsMode","exitOnErrorMode","definedProperties","requiredKey","loopAllRequired","loopUntilMissing","limitItems","equal_1","uniqueItems","itemTypes","validateUniqueItems","loopN","loopN2","eql","_const","_enum","getEql","loopEnum","vSchema","equalCode","validation_1","limitNumber_1","limitNumberExclusive_1","multipleOf_1","limitLength_1","limitProperties_1","required_1","limitItems_1","uniqueItems_1","const_1","enum_1","validation","additionalItems","validateAdditionalItems","validateTuple","extraItems","schArr","checkStrictTuple","fullTuple","prefixItems","items2020","additionalItems_1","minContains","maxContains","validateItemsWithCount","checkLimits","_valid","depsCount","property_ies","propDeps","schDeps","splitDependencies","validatePropertyDeps","validateSchemaDeps","propertyDeps","schemaDeps","hasProperty","depProp","propertyNames","additionalProperties","patProps","checkAdditionalProperties","additionalPropertyCode","isAdditional","definedProp","propsSchema","deleteAdditional","applyAdditionalSchema","additionalProperties_1","hasDefault","applyPropertySchema","patternProperties","alwaysValidPatterns","checkProperties","validatePatternProperties","pat","checkMatchingProperties","validateProperties","alwaysValid","anyOf","passing","validateOneOf","allOf","_if","hasThen","hasSchema","hasElse","validateIf","ifClause","validateClause","thenElse","applicator","prefixItems_1","items2020_1","contains_1","dependencies_1","propertyNames_1","patternProperties_1","not_1","anyOf_1","oneOf_1","allOf_1","if_1","thenElse_1","getApplicator","draft2020","validate$DataFormat","validateFormat","fmts","fDef","fType","unknownFmt","invalidFmt","callFormat","validData","formatDef","unknownFormat","fmtType","fmtRef","getFormat","validCondition","unknownMsg","fmtDef","format_2","format_1","draft4","applicator_1","metadataVocabulary","draft4Vocabularies","DiscrError","discriminator","types_1","discrError","validateMapping","mapping","getMapping","tagValue","applyTagSchema","oneOfMapping","topRequired","hasRequired","tagRequired","propSch","addMappings","addMapping","draft4_1","discriminator_1","draft4MetaSchema","META_SUPPORT_DATA","META_SCHEMA_ID","core_2","core_3","allowAdditionalItems","ADDITIONAL_PROPERTY_FLAG","ADDITIONAL_PROPERTIES_KEY","ALL_OF_KEY","ANY_OF_KEY","CONST_KEY","DEFAULT_KEY","DEPENDENCIES_KEY","ENUM_KEY","ERRORS_KEY","ID_KEY","IF_KEY","ITEMS_KEY","JUNK_OPTION_ID","NAME_KEY","ONE_OF_KEY","PROPERTIES_KEY","REQUIRED_KEY","SUBMIT_BTN_OPTIONS_KEY","REF_KEY","RJSF_ADDITONAL_PROPERTIES_FLAG","ROOT_SCHEMA_PREFIX","UI_FIELD_KEY","UI_WIDGET_KEY","UI_OPTIONS_KEY","UI_GLOBAL_OPTIONS_KEY","getUiOptions","uiSchema","globalOptions","canExpand","expandable","_getPrototype","isPlainObject_1","createErrorHandler","formObject","deepEquals","isEmpty_1","hasExcape","escapeMatcher","escapeReplacer","untilde","pointer","hasNextPart","compilePointer","compiled","jsonpointer","_arrayEach","_baseAssignValue","_assignValue","_copyObject","_baseAssign","_nativeKeysIn","_baseKeysIn","keysIn_1","_baseAssignIn","_copyArray","_copySymbols","_getSymbolsIn","_copySymbolsIn","_getAllKeysIn","_initCloneArray","_cloneArrayBuffer","_cloneDataView","_cloneRegExp","_cloneSymbol","_cloneTypedArray","_initCloneByTag","_baseCreate","_initCloneObject","_baseIsMap","isMap_1","_baseIsSet","isSet_1","_baseClone","last_1","_baseSlice","_baseUnset","_customOmitClone","_isFlattenable","_baseFlatten","flatten_1","_apply","_overRest","constant_1","identity_1","_baseSetToString","_shortOut","_setToString","_flatRest","omit_1","splitKeyElementFromObject","findSchemaDefinitionRecursive","recurseList","decodedRef","nextRef","firstRef","restRefs","circularPath","theRef","subSchema","findSchemaDefinition","_baseHas","_hasPath","has_1","isNumber_1","isString_1","_arrayReduce","_createBaseFor","_baseFor","_baseForOwn","_createBaseEach","_baseEach","_baseIsMatch","_isStrictComparable","_getMatchData","_matchesStrictComparable","_baseMatches","_baseHasIn","hasIn_1","_baseMatchesProperty","_baseProperty","_basePropertyDeep","property_1","_baseIteratee","_baseReduce","reduce_1","_castFunction","toFinite_1","toInteger_1","times_1","getOptionMatchingSimpleDiscriminator","discriminatorField","getMatchingOption","simpleDiscriminatorMatch","requiresAnyOf","augmentedSchema","shallowClone","getFirstMatchingOption","isEqual_1","_baseSet","set_1","transform_1","_assignMergeValue","isArrayLikeObject_1","_safeGet","toPlainObject_1","_baseMergeDeep","_baseMerge","_baseRest","_isIterateeCall","_createAssigner","merge_1","flattenDeep_1","_baseFindIndex","_baseIsNaN","_strictIndexOf","_baseIndexOf","_arrayIncludes","_arrayIncludesWith","noop_1","_createSet","_baseUniq","uniq_1","cloneDeep_1","_baseMap","_baseSortBy","_compareAscending","_compareMultiple","_baseOrderBy","sortBy_1","uniqWith_1","_baseIntersection","_castArrayLikeObject","intersectionWith_1","isBoolean_1","normalizeArray","undef","stringArray","undefEmpty","keyValEqual","undefAndZero","falseUndefined","emptySchema","emptyObjUndef","isSchema","undefArrayEqual","unsortedNormalizedArray","schemaGroup","aVal","bVal","unsortedArray","uniqueA","uniqueB","inter","comparers","acceptsUndefined","schemaProps","innerCompare","aValue","bValue","lib","isIntegerArray","MAXINT","gcd","bitwise","compute","nargs","clbk","lcm","_customDefaultsMerge","mergeWith_1","defaultsDeep_1","intersection_1","_baseIndexOfWith","_basePullAll","pullAll_1","forEach_1","_baseDifference","without_1","deleteUndefinedProps","returnObject","isEmptySchema","allUniqueKeys","notUndefined","withoutArr","common","removeFalseSchemas","mergeSchemaGroup","mergeSchemas","compacted","mergers","otherSubSchemas","ownPatterns","allOtherKeys","keysMatchingPattern","ownPatternKeys","allOtherPatterns","removeFalseSchemasFromArray","getItemSchemas","subSchemas","schemaAtPos","getAdditionalSchemas","mergeItems","itemsCompacted","schemasAtLastPos","computeLcm","propertiesResolver","itemsResolver","isFalse","isTrue","schemaResolver","maximumValue","minimumValue","examples","compareProp","getAllOf","tryMergeSchemaGroups","schemaGroups","getAnyOfCombinations","arrOfArrays","combinations","combination","throwIncompatible","asJSON","callGroupResolver","complexKeywords","resolverName","resolverConfig","extractedKeywordsOnly","extraKey","createRequiredMetaArray","schemaGroupProps","schemaArrays","defaultResolvers","childKey","childSchemas","innerCompacted","innerArrays","innerSchemas","arrayMetaScheams","integers","enums","defaultComplexResolvers","merger","totalSchemas","complexResolvers","complexKeysArr","mainKeyWord","resolverConf","resolverKeyword","allSchemas","getDiscriminatorFieldFromSchema","maybeString","guessType","union_1","getSchemaType","retrieveSchema","rawFormData","retrieveSchemaInternal","resolveCondition","expandAllBranches","expression","then","otherwise","resolvedSchemaLessConditional","conditionValue","resolvedSchemas","conditionalSchema","getAllPermutationsOfXxxOf","listOfLists","permutations","permutation","updatedSchemas","resolveReference","resolveDependencies","allOfSchemaElements","allOfSubschema","updatedSchema","resolveAllReferences","resolvedSchema","localSchema","childrenLists","updatedProps","childList","stubExistingAdditionalProperties","theSchema","aFormData","restOfSchema","mergeAllOf","resolvedSchemaWithoutAllOf","resolveAnyOrOneOfSchemas","anyOrOneOf","remainingSchema","processDependencies","dependencyKey","remainingDependencies","dependencyValue","withDependentProperties","withDependentSchema","additionallyRequired","dependent","dependentSchema","resolvedOneOfs","resolvedOneOf","withExactlyOneSubschema","validSubschemas","conditionPropertySchema","conditionSchema","dependentSubschema","JUNK_OPTION","calculateIndexScore","totalScore","formValue","newSchema","getClosestMatchingOption","newScore","selectedOption","resolvedOptions","allValidIndexes","validList","scoreCount","bestIndex","scoreData","bestScore","isFixedItems","mergeDefaultsWithFormData","mergeExtraArrayDefaults","defaultsArray","mergeObjects","concatArrays","toMerge","isConstant","altSchemas","isMultiSelect","AdditionalItemsHandling","getInnerSchemaForArrayItem","maybeAddDefaultToObject","computedDefault","includeUndefinedValues","isParentRequired","requiredFields","experimental_defaultFormStateBehavior","emptyObjectFields","isSelfOrParentRequired","computeDefaults","rawSchema","parentDefaults","_recurseList","schemaToCompute","updatedRecurseList","itemSchema","retrievedSchema","objectDefaults","additionalPropertiesSchema","formDataRequired","neverPopulate","ignoreMinItemsFlagSet","isSkipEmptyDefaults","computeSkipPopulate","emptyDefault","schemaItem","defaultsLength","defaultEntries","fillerSchema","fillerDefault","fillerEntries","getDefaultFormState","mergeExtraDefaults","isCustomWidget","isFilesArray","itemsSchema","getDisplayLabel","uiOptions","displayLabel","mergeValidationData","additionalErrorSchema","oldErrors","oldErrorSchema","errorSchema","NO_VALUE","sanitizeDataForNewSchema","oldSchema","newFormData","removeOldSchemaData","nestedData","oldKeyedSchema","newKeyedSchema","oldSchemaTypeForKey","newSchemaTypeForKey","itemData","newOptionDefault","oldOptionDefault","newOptionConst","oldOptionConst","oldSchemaItems","newSchemaItems","oldSchemaType","newSchemaType","maxItems","toIdSchemaInternal","idPrefix","idSeparator","idSchema","fieldId","toIdSchema","toPathSchemaInternal","pathSchema","xxxOf","schemaItems","schemaAdditionalItems","toPathSchema","SchemaUtils","createSchemaUtils","dataURItoBlob","dataURILike","splitted","media","base64","mime","mediaparams","binary","replaceStringParameters","inputString","englishStringTranslator","stringToTranslate","enumOptionsValueForIndex","allEnumOptions","emptyValue","enumOptionsDeselectValue","enumOptionsIsSelected","enumOptionsIndexForValue","selectedIndexes","isNil_1","enumOptionsSelectValue","ErrorSchemaBuilder","initialSchema","pathOfError","errorBlock","errorOrList","errorsList","listToAdd","getDateElementProps","dayObj","monthObj","yearObj","dateElementProp","rangeSpec","spec","autoDefaultStepAny","DEFAULT_OPTIONS","getSubmitButtonOptions","getTemplate","reactIs_production_min","reactIsModule","widgetMap","mergeWidgetOptions","AWidget","MergedWidget","_jsx","getWidget","widget","registeredWidgets","ReactIs","registeredWidget","hashForSchema","hasWidget","idGenerator","descriptionId","errorId","examplesId","helpId","includeExamples","optionId","optionIndex","labelValue","hideLabel","localToUTC","toConstant","optionsList","schemaWithEnumNames","aSchemaDef","aSchema","orderProperties","arrayToHash","errorPropList","propertyHash","orderFiltered","orderHash","restIndex","parseDateString","includeTime","schemaRequiresTrueValue","schemaSome","toDateString","utcTime","datetime","toErrorList","fieldPath","errorList","childSchema","toPath_1","toErrorSchema","unwrapErrorHandler","utcToLocal","jsonDate","yyyy","MM","SSS","validationDataMerge","withIdRefPrefixObject","realObj","withIdRefPrefix","withIdRefPrefixArray","schemaNode","TranslatableString","_basePickBy","_basePick","pick_1","nanoid","byte","generateRowId","generateKeyedFormData","keyedToPlainFormData","keyedFormData","keyedItem","ArrayField","schemaUtils","newErrorSchema","newKeyedFormDataRow","newKeyedFormData","reOrderArray","_newKeyedFormData","nextFormData","previousKeyedFormData","previousKeyedFormDatum","translateString","formItems","addable","UnsupportedFieldTemplate","readonly","autofocus","rawErrors","fieldTitle","formContext","_schemaItems","canAdd","arrayProps","itemCast","itemErrorSchema","itemIdPrefix","itemIdSchema","Template","hideError","widgets","globalUiOptions","uiTitle","Widget","enumOptions","itemSchemas","additionalSchema","additional","itemUiSchema","canMoveUp","canMoveDown","totalItems","ArraySchemaField","SchemaField","ItemSchemaField","orderable","removable","copyable","BooleanField","schemaTitle","yes","AnyOfField","retrievedOptions","intOption","oldOption","matchingOption","_SchemaField","autocomplete","fieldErrorSchema","optionSchema","optionsUiSchema","optionUiSchema","translateEnum","translateParams","_jsxs","trailingCharMatcherWithPrefix","trailingCharMatcher","NumberField","lastValue","setLastValue","StringField","handleChange","e.cloneElement","Markdown","unset_1","ObjectField","addedByAdditionalProperties","copiedFormData","preferredKey","duplicateKeySuffixSeparator","newKeys","renamedObj","apSchema","templateTitle","orderedProperties","fieldUiSchema","fieldIdSchema","COMPONENT_TYPES","getFieldComponent","SchemaFieldRender","_idSchema","onKeyChange","onDropPropertyClick","wasPropertyKeyModified","FieldTemplate","DescriptionFieldTemplate","FieldHelpTemplate","FieldErrorTemplate","handleFieldComponentChange","FieldComponent","uiSchemaHideError","__errors","richDescription","help","helpComponent","errorsComponent","_AnyOfField","_OneOfField","isReplacingAnyOrOneOf","_Fragment","defaultWidget","NullField","MultiSchemaField","ArrayFieldDescriptionTemplate","ArrayFieldItemTemplate","hasToolbar","hasMoveDown","hasMoveUp","hasRemove","hasCopy","onCopyIndexClick","onDropIndexClick","onReorderClick","CopyButton","MoveDownButton","MoveUpButton","RemoveButton","btnStyle","ArrayFieldTemplate","onAddClick","ArrayFieldTitleTemplate","AddButton","TitleFieldTemplate","BaseInputTemplate","onChangeOverride","_onChange","_onBlur","_onFocus","example","SubmitButton","submitText","norender","submitButtonProps","iconType","otherProps","buttonTemplates","DescriptionField","ErrorList","REQUIRED_FIELD_SYMBOL","WrapIfAdditionalTemplate","ObjectFieldTemplate","TitleField","UnsupportedField","keyLabel","ButtonTemplates","rangeOptions","readyForChange","DateElement","SelectWidget","AltDateWidget","handleSetNow","handleClear","elemProps","AltDateTimeWidget","CheckboxWidget","CheckboxesWidget","inline","enumDisabled","checkboxesValues","itemDisabled","disabledCls","checkbox","ColorWidget","DateWidget","DateTimeWidget","EmailWidget","addNameToDataURL","dataURL","processFile","processFiles","FileInfoPreview","fileInfo","FilesInfo","filesInfo","onRemove","handleRemove","extractFileInfo","dataURLs","blob","FileWidget","filesInfoEvent","rmFile","HiddenWidget","PasswordWidget","RadioWidget","radio","RangeWidget","optEmptyVal","TextareaWidget","TextWidget","TimeWidget","URLWidget","UpDownWidget","getDefaultRegistry","Form","_pick","getAllPaths","_obj","newPaths","_get","_isEmpty","extraErrors","omitExtraData","liveOmit","noValidate","liveValidate","mustValidate","_retrievedSchema","schemaValidation","schemaValidationErrors","schemaValidationErrorSchema","onSubmit","submitCustomEvent","isSchemaChanged","isFormDataChanged","inputFormData","getCurrentErrors","currentErrors","altSchemaUtils","customValidate","transformErrors","ErrorListTemplate","customTranslateString","_toPath","extraErrorsBlockSubmit","focusOnFirstError","prevErrors","enctype","acceptcharset","noHtml5Validate","showErrorList","_internalFormWrapper","FormTag","submitOptions","submitUiSchema","withTheme","themeProps","directProps","addIcon","rightJustify","allowedProps","uiProps","FluentIconButton","rawDescription","generateTemplates","styles_red","FluentLabel","_ev","updateColor","colorObj","controlClass","parseDate","_onSelectDate","valueOrDefault","_onIncrement","_onDecrement","generateWidgets","generateTheme","FluentUITheme","generateForm","draft7","metadata_1","draft7Vocabularies","draft7_1","draft7MetaSchema","compareDate","compareTime","date_time","compareDateTime","validateInt32","validateInt64","validateNumber","DAYS","d1","d2","TIME","withTimeZone","DATE_TIME_SEPARATOR","dt1","dt2","NOT_URI_FRAGMENT","URI","BYTE","MIN_INT32","MAX_INT32","Z_ANCHOR","ajv_1","fCxt","compareCode","formatLimitPlugin","ajv","formats_1","limit_1","fullName","fastName","formatsPlugin","addFormats","formats","exportName","fs","AJV_CONFIG","COLOR_FORMAT_REGEX","DATA_URL_FORMAT_REGEX","createAjvInstance","additionalMetaSchemas","customFormats","ajvOptionsOverrides","ajvFormatOptions","AjvClass","formatName","transformRJSFValidationErrors","currentProperty","uiSchemaTitle","parentSchemaTitle","processRawValidationErrors","invalidSchemaError","userErrorSchema","AJV8Validator","localizer","compilationError","compiledValidator","rootSchemaId","schemaWithIdRefPrefix","customizeValidator"],"mappings":"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CN,KAAM,sFACT,EACD,mBAAoB,CAChB,KAAM,kBACN,KAAM,iBACT,EACD,sBAAuB,CACnB,KAAM,sBACN,KAAM,8NAGT,EACD,sBAAuB,CACnB,KAAM,qBACN,KAAM,2FACT,EACD,mBAAoB,CAChB,KAAM,kBACN,KAAM,kLACT,EACD,uBAAwB,CACpB,KAAM,2BACN,KAAM,mJAET,EACD,yBAA0B,CACtB,KAAM,6BACN,KAAM,2HACT,EACD,4BAA6B,CACzB,KAAM,gCACN,KAAM,kIACT,EACD,yBAA0B,CACtB,KAAM,yBACN,KAAM,2EACT,EACD,sBAAuB,CACnB,KAAM,4BACN,KAAM,4FACT,EACD,sBAAuB,CACnB,KAAM,4BACN,KAAM,8FACT,EACD,oBAAqB,CACjB,KAAM,yBACN,KAAM,sCACT,EACD,wBAAyB,CACrB,KAAM,uBACN,KAAM,2CACT,EACD,2BAA4B,CACxB,KAAM,gCACN,KAAM,iHACT,EACD,kBAAmB,CACf,KAAM,sBACN,KAAM,yBACT,EACD,uBAAwB,CACpB,KAAM,4BACN,KAAM,kDACT,EACD,yBAA0B,CACtB,KAAM,+BACN,KAAM,yFACT,EACD,mBAAoB,CAChB,KAAM,uBACN,KAAM,4CACT,EACD,wBAAyB,CACrB,KAAM,4BACN,KAAM,2DACT,EACD,eAAgB,CACZ,KAAM,mBACN,KAAM,0CACT,EACD,iBAAkB,CACd,KAAM,sCACN,KAAM,+EACT,EACD,YAAa,CACT,KAAM,mBACN,KAAM,2EACT,EACD,iBAAkB,CACd,KAAM,qBACN,KAAM,oBACT,EACD,sBAAuB,CACnB,KAAM,0BACN,KAAM,0BACT,EACD,yBAA0B,CACtB,KAAM,6BACN,KAAM,6BACT,EACD,iBAAkB,CACd,KAAM,oBACN,KAAM,0FACT,EACD,wBAAyB,CACrB,KAAM,4BACN,KAAM,gKACT,EACD,qBAAsB,CAClB,KAAM,yBACN,KAAM,oOACT,EACD,mBAAoB,CAChB,KAAM,uBACN,KAAM,sDACT,EACD,oBAAqB,CACjB,KAAM,0CACN,KAAM,iEACT,EACD,8BAA+B,CAC3B,KAAM,kDACN,KAAM,m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ACD,mBAAoB,CAChB,KAAM,iBACN,KAAM,0BACT,EACD,yBAA0B,CACtB,KAAM,yBACN,KAAM,iGACT,EACD,0BAA2B,CACvB,KAAM,yBACN,KAAM,kGACT,EACD,sBAAuB,CACnB,KAAM,qBACN,KAAM,uLACT,EACD,sCAAuC,CACnC,KAAM,sBACN,KAAM,qIACT,EACD,+BAAgC,CAC5B,KAAM,sBACN,KAAM,qFACT,EACD,6BAA8B,CAC1B,KAAM,4BACN,KAAM,oDACT,EACD,6BAA8B,CAC1B,KAAM,4BACN,KAAM,iFACT,EACD,eAAgB,CACZ,KAAM,mBACN,KAAM,yJACT,EACD,uBAAwB,CACpB,KAAM,4BACN,KAAM,gHACT,EACD,yBAA0B,CACtB,KAAM,+BACN,KAAM,kCACT,EACD,oCAAqC,CACjC,KAAM,4CACN,KAAM,+CACT,EACD,uBAAwB,CACpB,KAAM,4BACN,KAAM,4BACT,EACD,kBAAmB,CACf,KAAM,6BACN,KAAM,gGACT,EACD,iBAAkB,CACd,KAAM,qBACN,KAAM,oBACT,EACD,wBAAyB,CACrB,KAAM,0BACN,KAAM,yEACT,EACD,gBAAiB,CACb,KAAM,oBACN,KAAM,uBACT,EACD,sBAAuB,CACnB,KAAM,0BACN,KAAM,0DACT,EACD,kBAAmB,CACf,KAAM,sBACN,KAAM,2IACT,EACD,iBAAkB,CACd,KAAM,qBACN,KAAM,iFACT,EACD,6BAA8B,CAC1B,KAAM,2BACN,KAAM,wDACT,EACD,uBAAwB,CACpB,KAAM,uBACN,KAAM,+BACT,EACD,4BAA6B,CACzB,KAAM,uBACN,KAAM,4DACT,EACD,iBAAkB,CACd,KAAM,qBACN,KAAM,8FACT,EACD,gCAAiC,CAC7B,KAAM,wCACN,KAAM,yEACT,EACD,+BAAgC,CAC5B,KAAM,uCACN,KAAM,6DACT,EACD,oBAAqB,CACjB,KAAM,uBACN,KAAM,+LACT,EACD,uCAAwC,CACpC,KAAM,+CACN,KAAM,kHACT,EACD,uBAAwB,CACpB,KAAM,2BACN,KAAM,yEACT,EACD,4BAA6B,CACzB,KAAM,iCACN,KAAM,iGACT,EACD,+BAA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aACA,UACA,UACA,YACA,mBACA,mBACA,YACA,cACA,UACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,YACA,UACA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,sBACJ,CAAC,EAMUI,IAAwBJ,GAAY,CAC3C,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,MACJ,CAAC,EAMUK,GAAwBL,GAAYI,IAAuBD,GAAiB,EAM5EG,IAAkBN,GAAYK,GAAuB,CAC5D,MACJ,CAAC,EAMUE,IAAkBP,GAAYK,GAAuB,CAC5D,SACA,OACA,QACA,UACA,MACA,OACJ,CAAC,EAMUG,IAAkBR,GAAYO,IAAiB,CACtD,QACJ,CAAC,EAMUE,IAAeT,GAAYK,GAAuB,CACzD,OACJ,CAAC,EAMUK,IAAeV,GAAYK,GAAuB,CACzD,OACJ,CAAC,EAMUM,GAAmBX,GAAYK,GAAuB,CAC7D,WACA,OACA,WACA,QACA,MACA,SACA,MACJ,CAAC,EAMUO,GAAmBZ,GAAYK,GAAuB,CAC7D,YACA,WACA,OACA,aACA,cACA,aACA,iBACA,aACA,OACA,OACJ,CAAC,EAMUQ,GAAkBb,GAAYY,GAAkB,CACvD,SACA,MACA,iBACA,eACA,UACA,UACA,OACA,SACA,YACA,OACA,MACA,YACA,MACA,YACA,WACA,UACA,cACA,WACA,WACA,MACA,OACA,OACA,OACA,QACA,OACJ,CAAC,EAMUE,IAAqBd,GAAYY,GAAkB,CAC1D,iBACA,OACA,UACA,OACA,YACA,YACA,cACA,WACA,WACA,OACA,MACJ,CAAC,EAMUG,IAAmBf,GAAYY,GAAkB,CACxD,OACA,WACA,UACJ,CAAC,EACUI,IAAmBhB,GAAYK,GAA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,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,EAAG,GAAG,EAAE,OAAOA,EAAI,CAAC,CAAC,EAAG,GAAG,OAAOA,EAAI,CAAC,EAAG,GAAG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AAoBrkS,GAAM,cAAconS,EAAQO,EAAuB3nS,GAAM,cAAcsnS,EAASZ,EAAc,CAAC1C,GAAyBwD,EAAgB9hL,EAAS,CACnK,KAAMogL,GACN,WAAYn/X,EACZ,gBAAiBs7X,CAClB,CAAA,CAAC,CAAC,CACP,CACA,CC/XA,MAAeoE,IAAA,CACb,KAAQ,CACN,QAAW,QACX,UAAa,OACb,QAAW,QACX,WAAc,UACd,MAAS,MACV,EACD,aAAc,CACZ,MAAS,MACV,EACD,eAAgB,CACd,MAAS,SACV,EACD,eAAgB,CACd,WAAc,MACf,EACD,iBAAkB,CAChB,WAAc,MACf,EACD,oBAAqB,CACnB,WAAc,MACf,EACD,oBAAqB,CACnB,WAAc,MACf,EACD,cAAe,CACb,WAAc,MACf,EACD,YAAa,CACX,WAAc,MACf,EACD,YAAa,CACX,MAAS,SACV,EACD,cAAe,CACb,MAAS,SACV,EACD,cAAe,CACb,MAAS,SACV,EACD,mBAAoB,CAClB,MAAS,SACV,EACD,sBAAuB,CACrB,MAAS,SACV,EACD,aAAc,CACZ,MAAS,SACV,EACD,oBAAqB,CACnB,MAAS,SACV,EACD,gBAAiB,CACf,MAAS,SACV,EACD,aAAc,CACZ,MAAS,UACT,WAAc,MACf,EACD,eAAgB,CACd,MAAS,UACT,WAAc,MACf,EACD,cAAe,CACb,MAAS,SACV,EACD,cAAe,CACb,MAAS,SACV,EACD,gBAAiB,CACf,MAAS,SACV,EACD,yBAA0B,CACxB,MAAS,SACV,EACD,YAAa,CACX,MAAS,SACV,EACD,qBAAsB,CACpB,MAAS,SACV,EACD,uBAAwB,CACtB,MAAS,SACV,EACD,eAAgB,CACd,MAAS,SACV,EACD,gBAAiB,CACf,MAAS,SACV,EACD,cAAe,CACb,MAAS,SACV,EACD,YAAa,CACX,MAAS,SACV,EACD,gBAAiB,CACf,MAAS,SACV,EACD,YAAa,CACX,MAAS,SACV,EACD,mBAAoB,CAClB,MAAS,SACV,EACD,gBAAiB,CACf,UAAa,QACd,EACD,cAAe,CACb,WAAc,MACf,CACH,YChHA,SAASwB,IAAWx1Y,EAAK,CACrB,OAAI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CA,0BACA,uBACA,2BACA,mBACA,oFACA,wBACJ,EAEE,MAAO,CACL,KAAM,cACN,QAAS,CAAE,WAAa,EACxB,SAAU,CACR,QACE,0iBAUF,QACE,mEACF,SACE,oUAOH,EACD,SAAU,CACRx1G,EACA0oG,EAAK,cACL,CACE,UAAW,WACX,MAAOn5G,EACL,KACA+0G,EAAO,GAAGkR,CAAiB,EAC3B,IACD,CACF,EACD,CACE,UAAW,WACX,MAAO,cACR,EACD,CACE,UAAW,UACX,MACE,8DACH,EACD,CACE,UAAW,UACX,MAAOjmH,EACL,KACA+0G,EAAO,GAAGiR,CAAgB,EAC1B,IACD,CACF,EACD,CACE,cAAe,KACf,QAAS,WACT,SAAU,CACR7M,EAAK,sBACL0M,CACD,CACF,EACD,GAAGxC,CACJ,EACD,QAAS,iBACb,CACC,CAED,OAAA6C,GAAiBN,sDCnLjB,SAASO,EAAOhN,EAAM,CACpB,MAAM5D,EAAW,yBACX6Q,EAAW,CACf,QACE,0DACF,QACE,sHACF,SACE,siCAWN,EACQx1G,EAAS,CACb,UAAW,SACX,MAAO,0GACX,EACQP,EAAS,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,iBACR,EACD,CACE,MAAO,kBACR,EACD,CACE,MAAO8oG,EAAK,WACb,CACF,EACD,UAAW,CACf,EACQkN,EAAQ,CACZ,UAAW,QACX,MAAO,SACP,IAAK,MACL,SAAUD,EACV,SAAU,CAAE,CAChB,EACQE,EAAkB,CACtB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACRnN,EAAK,iBACLkN,CACD,CACL,EACEA,EAAM,SAAW,CACflN,EAAK,iBACLA,EAAK,kBACLmN,EACAj2G,EACA8oG,EAAK,WACT,EACE,MAAMoN,EAAkBF,EAAM,SAAS,OAAO,CAC5ClN,EAAK,qBACLA,EAAK,mBACT,CAAG,EAED,MAAO,CACL,KAAM,gBACN,SAAUiN,EACV,SAAU,CACRjN,EAAK,iBACLA,EAAK,kBACLmN,EACAnN,EAAK,oBACLA,EAAK,qBACLvoG,EACAP,EACA,CACE,MAAO,UACP,UAAW,EACX,SAAU,CAAC,CACT,MAAOklG,EAAW,QAClB,YAAa,GACb,UAAW,EACX,SAAU,CAAC,CACT,UAAW,OACX,MAAOA,EACP,UAAW,CACvB,CAAW,CACX,CAAS,CACF,EACD,CACE,MAAO,IAAM4D,EAAK,eAAiB,uBACnC,SAAU,SACV,SAAU,CACRA,EAAK,oBACLA,EAAK,qBACLA,EAAK,YACL,CACE,UAAW,WACX,MAAO,cAAgB5D,EAAW,UAClC,YAAa,GACb,IAAK,SACL,SAAU,CAAC,CACT,UAAW,SACX,SAAU,CACR,CACE,MAAOA,CACR,EACD,CACE,MAAO,SACR,EACD,CACE,MAAO,KACP,IAAK,KACL,aAAc,GACd,WAAY,GACZ,SAAU6Q,EACV,SAAUG,CACX,CACF,CACf,CAAa,CACF,CACF,EACD,UAAW,CACZ,EACD,CACE,UAAW,WACX,cAAe,WACf,IAAK,KACL,WAAY,GACZ,SAAU,CACRpN,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAO5D,CACnB,CAAW,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,aAAc,GACd,WAAY,GACZ,SAAUgR,CACX,CACF,EACD,QAAS,MACV,EACD,CACE,MAAO,QACR,CACF,EACD,QAAS,QACb,CACC,CAED,OAAAC,GAAiBL,sDC3JjB,SAAS35Z,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIjB,CAMD,SAAS+uT,EAAU/uT,EAAI,CACrB,OAAOsoM,EAAO,MAAOtoM,EAAI,GAAG,CAC7B,CAMD,SAASgvT,EAAShvT,EAAI,CACpB,OAAOsoM,EAAO,IAAKtoM,EAAI,IAAI,CAC5B,CAMD,SAASsoM,KAAU1oR,EAAM,CAEvB,OADeA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAElD,CASD,SAASm5Z,EAAUxN,EAAM,CAIvB,MAAM/C,EAAsB+C,EAAK,QAAQ,KAAM,IAAK,CAClD,SAAU,CACR,CACE,MAAO,MACR,CACF,CACL,CAAG,EACKyN,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,IACvBF,EAAmB,IACnBF,EAASG,CAAY,EACrB,gBAAkBH,EAJS,UAIoB,EACjD,IACMK,EAAsB,CAC1B,UAAW,UACX,MAAO,oBACX,EAKQ5D,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAEhK,EAAK,gBAAkB,CACpC,EACD,CACE,MAAO,eAXa,uDAWyB,MAC7C,IAAK,IACL,QAAS,GACV,EACDA,EAAK,kBAAkB,CACrB,MAAO,mCACP,IAAK,qBACb,CAAO,CACF,CACL,EAEQ+J,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,eACR,EACD,CACE,MAAO,uFACR,EACD,CACE,MAAO,qFACR,CACF,EACD,UAAW,CACf,EAEQ8D,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CACR,eACE,wFAEH,EACD,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACZ,EACD7N,EAAK,QAAQgK,EAAS,CACpB,UAAW,aACnB,CAAO,EACD,CACE,UAAW,cACX,MAAO,OACR,EACD/M,EACA+C,EAAK,oBACN,CACL,EAEQvC,EAAa,CACjB,UAAW,QACX,MAAO8P,EAASG,CAAY,EAAI1N,EAAK,SACrC,UAAW,CACf,EAEQ8N,EAAiBP,EAASG,CAAY,EAAI1N,EAAK,SAAW,UAsH1D+N,EAAe,CACnB,QAAS,y0BAYT,SAAU,4BACV,iBAlIuB,CACvB,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,WACA,QACA,OACA,QACA,QACA,SACA,MACA,MACA,OACA,SACA,WACA,WACA,gBACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,eACJ,EAiBI,QAAS,yBACb,EAEQC,EAAoB,CACxB,UAAW,oBACX,UAAW,EACX,SAAUD,EACV,MAAOlnH,EACL,KACA,eACA,SACA,UACA,YACAm5G,EAAK,SACLsN,EAAU,OAAO,CAAC,CACxB,EAEQW,EAAsB,CAC1BD,EACAH,EACAD,EACA3Q,EACA+C,EAAK,qBACL+J,EACAC,CACJ,EAGQkE,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,cAAe,wBACf,IAAK,GACN,CACF,EACD,SAAUH,EACV,SAAUE,EAAoB,OAAO,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAUF,EACV,SAAUE,EAAoB,OAAO,CAAE,MAAM,CAAE,EAC/C,UAAW,CACZ,CACP,CAAK,EACD,UAAW,CACf,EAEQE,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAMR,EAAmB,eAAiBG,EACjD,YAAa,GACb,IAAK,QACL,WAAY,GACZ,SAAUC,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAON,EACP,SAAUM,EACV,UAAW,CACZ,EACD,CACE,MAAOD,EACP,YAAa,GACb,SAAU,CAAErQ,CAAY,EACxB,UAAW,CACZ,EAGD,CACE,MAAO,KACP,UAAW,CACZ,EAED,CACE,MAAO,IACP,eAAgB,GAChB,SAAU,CACRuM,EACAD,CACD,CACF,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUgE,EACV,UAAW,EACX,SAAU,CACR9Q,EACA+C,EAAK,qBACLgK,EACAD,EACA6D,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAUG,EACV,UAAW,EACX,SAAU,CACR,OACA9Q,EACA+C,EAAK,qBACLgK,EACAD,EACA6D,CACD,CACF,CACF,CACF,EACDA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f,CAAG,EACKmP,EAAgB,CACpB,eAAgB,GAChB,QAAS,IACT,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAON,EACP,UAAW,CACZ,EACD,CACE,MAAO,OACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,WAAY,GACZ,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAEC,CAAc,CAC3B,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAEA,CAAc,CAC3B,EACD,CACE,MAAO,cACR,CACF,CACF,CACF,CACF,CACF,CACL,EACE,MAAO,CACL,KAAM,YACN,QAAS,CACP,OACA,QACA,MACA,OACA,MACA,MACA,MACA,QACA,MACA,KACD,EACD,iBAAkB,GAClB,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,UAAW,GACX,SAAU,CACRC,EACAG,EACAD,EACAD,EACA,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,SAAU,CACRD,EACAC,EACAE,EACAD,CACD,CACF,CACF,CACF,CACF,CACF,EACDjP,EAAK,QACH,OACA,MACA,CACE,UAAW,EACZ,CACF,EACD,CACE,MAAO,cACP,IAAK,QACL,UAAW,EACZ,EACD8O,EACA,CACE,UAAW,OACX,MAAO,SACP,IAAK,MACL,UAAW,EACZ,EACD,CACE,UAAW,MAOX,MAAO,iBACP,IAAK,IACL,SAAU,CACR,KAAM,OACP,EACD,SAAU,CAAEK,CAAe,EAC3B,OAAQ,CACN,IAAK,YACL,UAAW,GACX,YAAa,CACX,MACA,KACD,CACF,CACF,EACD,CACE,UAAW,MAEX,MAAO,kBACP,IAAK,IACL,SAAU,CACR,KAAM,QACP,EACD,SAAU,CAAEA,CAAe,EAC3B,OAAQ,CACN,IAAK,aACL,UAAW,GACX,YAAa,CACX,aACA,aACA,KACD,CACF,CACF,EAED,CACE,UAAW,MACX,MAAO,SACR,EAED,CACE,UAAW,MACX,MAAOtoH,EACL,IACAymH,EAAUzmH,EACR+nH,EAIAhT,EAAO,MAAO,IAAK,IAAI,CACnC,CAAW,CACF,EACD,IAAK,OACL,SAAU,CACR,CACE,UAAW,OACX,MAAOgT,EACP,UAAW,EACX,OAAQO,CACT,CACF,CACF,EAED,CACE,UAAW,MACX,MAAOtoH,EACL,MACAymH,EAAUzmH,EACR+nH,EAAa,GACzB,CAAW,CACF,EACD,SAAU,CACR,CACE,UAAW,OACX,MAAOA,EACP,UAAW,CACZ,EACD,CACE,MAAO,IACP,UAAW,EACX,WAAY,EACb,CACF,CACF,CACF,CACL,CACC,CAED,OAAAQ,GAAiBT,sDCrRjB,SAASt7Z,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIjB,CAMD,SAASsoM,KAAU1oR,EAAM,CAEvB,OADeA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAElD,CAYD,SAASg7Z,EAASrP,EAAM,CACtB,MAAMsP,EAAkB,CACtB,MAAO,iBACP,UAAW,EACf,EACQC,EAAqB,CAEzB,CACE,MAAO,SACR,EAID,CACE,MAAO,uBACR,EACD,CACE,MAAO,oBACR,EACD,CACE,MAAO,oBACR,EAGD,CACE,MAAO,qBACR,CACL,EACQC,EAAS,CAEb,CACE,UAAW,SACX,MAAO,qBACR,EAED,CACE,UAAW,SACX,MAAO3oH,EACL,OACA,oCACA,+BACA,MACD,EACD,UAAW,CACZ,EAED,CACE,UAAW,SAEX,MAAO,8BACR,EAED,CACE,UAAW,SAEX,MAAO,8BACR,CACL,EACQ4oH,EAAW,CAEf,CACE,UAAW,WACX,MAAO,mBACR,EAED,CACE,UAAW,WACX,MAAO5oH,EACL,KACA,kCACA,6BACA,IACD,EACD,UAAW,CACZ,EAED,CACE,UAAW,WAEX,MAAO,4BACR,EAED,CACE,UAAW,WAEX,MAAO,4BACR,EAED,CACE,UAAW,WAEX,MAAO,iBACP,IAAK,aAEL,SAAU,CAAC,CACT,MAAO,WACP,UAAW,CACnB,CAAO,EACD,UAAW,CACZ,CACL,EACQ6oH,EAAa,CACjB,UAAW,SACX,MAAO,6CACP,UAAW,EACf,EACQC,EAAc,CAClB,UAAW,SACX,MAAO,gCACX,EAEE,MAAO,CACL,KAAM,WACN,QAAS,CAAC,MAAM,EAChB,SAAU,CAER3P,EAAK,QACH,YACA,YAIA,CACE,UAAW,EACZ,CACF,EAEDA,EAAK,QACH,MACA,IACA,CACE,UAAW,CACZ,CACF,EAED,CACE,UAAW,QACX,MAAO,YACR,EAED,CACE,MAAO,iBACP,IAAK,kBACL,UAAW,EACZ,EAED,CACE,UAAW,UACX,UAAW,GACX,SAAU,CACR,CACE,MAAO,6BACR,EACD,CACE,MAAO,sCACR,CACF,CACF,EAED,CACE,UAAW,OACX,MAAO,SACP,IAAK,MACL,WAAY,GACZ,UAAW,EACZ,EAED,CACE,UAAW,OACX,MAAO,cACP,UAAW,CACZ,EAED,CACE,UAAW,QACX,MAAO,YACP,IAAK,YACL,UAAW,EACZ,EAED,CACE,UAAW,OACX,MAAO,mBACP,IAAK,mBACL,UAAW,EACZ,EAED,CACE,MAAO,cACP,IAAK,cACL,SAAU,CAAC,CACT,MAAO,IACP,IAAK,IACL,YAAa,MACb,UAAW,CACrB,CAAS,EACD,UAAW,EACZ,EAED2P,EACAD,EACA,GAAGH,EACH,GAAGC,EACH,GAAGC,EAGH,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,SACR,EACD,CACE,MAAO,OACR,CACF,CACF,EAED,CACE,UAAW,OACX,MAAO,OACP,IAAK,cACN,EAED,CACE,UAAW,OACX,MAAO,oBACP,UAAW,CACZ,EAED,CACE,UAAW,OACX,MAAO,UACP,IAAK,IACL,UAAW,CACZ,EACDH,EAEA,CACE,MAAO,8DACP,YAAa,GACb,SAAU,CACR,CACE,MAAO,kBACP,UAAW,CACZ,EACD,CACE,UAAW,OACX,MAAO,MACP,IAAK,UACL,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAO,MACP,IAAK,MACL,aAAc,GACd,WAAY,GACZ,UAAW,CACZ,CACF,EACD,UAAW,EACZ,CACF,CACL,CACC,CAED,OAAAM,GAAiBP,sDCrSjB,SAASh8Z,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA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EACzBA,EAAK,QAAQ,kBAAmB,eAAe,CAChD,CACL,EAEQsQ,EAAW,CACf,MAAO,eACX,EAEQh5G,EAAS,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAC,CACT,MAAO,KACP,UAAW,CACrB,CAAS,CACF,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAC,CACT,MAAO,KACP,UAAW,CACrB,CAAS,CACF,CACF,CACL,EAEQJ,EAAS,CACb,SAAU,CACR8oG,EAAK,mBACLA,EAAK,aACN,CACL,EAEQ6N,EAAe,CACnB,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,eAAgBuC,CACjB,EACD,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACZ,EACD,CACE,cAAe,UACf,SAAU,CACR,eAAgB,SACjB,EACD,IAAK,IACL,SAAU,CACR94G,EACA,CACE,UAAW,cACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAC,CACT,MAAO,KACP,UAAW,CAC7B,CAAiB,CACF,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAC,CACT,MAAO,KACP,UAAW,CAC7B,CAAiB,CACF,CACF,CACF,CACF,CACF,EACDA,EACAqvF,CACD,CACL,EAEQ4pB,EAAW,CACf,UAAW,SAKX,MAAO,aACX,EAEQt5G,EAAW,CACf,UAAW,WACX,cAAe,OACf,IAAK,IACL,QAAS,YACT,SAAU,CACR+oG,EAAK,sBACL,CACE,UAAW,SACX,MAAO,MACP,IAAK,MACL,SAAU,CACRsQ,EACAh5G,EACAJ,CACD,CACF,CACF,CACL,EAEE,MAAO,CACL,KAAM,SACN,iBAAkB,GAClB,QAAS,OACT,SAAU,CACR,QAAS+1G,EACT,SAAUoD,EACV,QAASvG,CACV,EACD,SAAU,CACRnjB,EACA2pB,EACAh5G,EACAJ,EACA22G,EACA0C,EACAt5G,CACD,CACL,CACC,CAED,OAAAu5G,GAAiBL,sDC9KjB,SAASM,EAAOzQ,EAAM,CACpB,MAAO,CACL,KAAM,eACN,iBAAkB,GAClB,SAAU,CACR,SAAU,OAASA,EAAK,SACxB,QAEE,mgBAOF,SAEE,6xBAWF,KACE,oHAEH,EACD,SAAU,CACRA,EAAK,qBACLA,EAAK,QACH,IACA,IACA,CACE,UAAW,CACZ,CACF,EACDA,EAAK,cACLA,EAAK,mBACL,CACE,UAAW,SACX,MAAO,+BACR,EACDA,EAAK,kBACL,CACE,UAAW,SACX,MAAO,IACP,IAAK,WACL,QAAS,aACV,EACD,CACE,UAAW,SACX,MAAO,mBACR,EACD,CACE,UAAW,OACX,MAAO,IACP,IAAK,GACN,EACD,CACE,UAAW,QACX,MAAO,SACR,CACF,CACL,CACC,CAED,OAAA0Q,GAAiBD,sDCvEjB,SAASE,EAAI3Q,EAAM,CACjB,MAAMsQ,EAAW,CACf,UAAW,WACX,SAAU,CACR,CACE,MAAO,oBACR,EACD,CACE,MAAO,aACR,CACF,CACL,EACQrD,EAAW,8FACX31G,EAAS,CACb,UAAW,SACX,SAAU,CAAC0oG,EAAK,gBAAgB,EAChC,SAAU,CACR,CACE,MAAO,cACP,IAAK,MACL,UAAW,EACZ,EACD,CACE,MAAO,cACP,IAAK,MACL,UAAW,EACZ,EACD,CACE,MAAO,YACP,IAAK,IACL,UAAW,EACZ,EACD,CACE,MAAO,YACP,IAAK,IACL,UAAW,EACZ,EACD,CACE,MAAO,UACP,IAAK,GACN,EACD,CACE,MAAO,UACP,IAAK,GACN,EACDA,EAAK,iBACLA,EAAK,iBACN,CACL,EACE,MAAO,CACL,KAAM,MACN,SAAU,CACR,QAASiN,CACV,EACD,SAAU,CACRqD,EACAh5G,EACA0oG,EAAK,YACLA,EAAK,kBACLA,EAAK,WACN,CACL,CACC,CAED,OAAA4Q,GAAiBD,sDC/DjB,SAASE,EAAO7Q,EAAM,CAyIpB,MAAO,CACL,KAAM,MACN,QAAS,CAAC,KAAK,EACf,SATe,CACf,QAxGsB,CACtB,WACA,KACA,MACA,MACA,QACA,aACA,KACA,QACA,OACA,QACA,gBACA,QACA,SACA,SACA,SACA,QACA,WACA,QACA,eACA,WACA,cACA,OACA,UACA,MACA,KACA,OACA,OACA,eACA,SACA,UACA,QACA,UACA,YACA,YACA,aACA,cACA,eACA,gBACA,QACA,MACA,gBACA,kBACA,oBACA,mBACA,YACA,OACA,eACA,QACA,OACA,KACA,aACA,KACA,QACA,mBACA,YACA,WACA,KACA,OACA,OACA,QACA,QACA,MACA,YACA,MACA,OACA,UACA,YACA,iBACA,QACA,QACA,kBACA,QACA,UACA,YACA,SACA,WACA,iBACA,QACA,SACA,UACA,SACA,SACA,UACA,SACA,MACA,QACA,SACA,OACA,QACA,MACA,WACA,WACA,YACA,YACA,mBACA,QACA,iBACA,OACA,QACA,OACJ,EAII,SApIwB,CACxB,UACA,UACA,OACA,OACA,YACA,OACA,SACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,MACA,cACA,KACJ,EAmHI,QAjHuB,CACvB,UACA,QACA,OACA,MACJ,CA6GA,EAMI,SAAU,CACRA,EAAK,oBACLA,EAAK,qBACLA,EAAK,iBACLA,EAAK,kBACLA,EAAK,cACL,CACE,UAAW,OACX,MAAO,IACP,IAAK,GACN,EACD,CACE,UAAW,QACX,cAAe,kBACf,IAAK,KACL,WAAY,GACZ,QAAS,IACT,SAAU,CACR,CACE,cAAe,oBAChB,EACDA,EAAK,qBACN,CACF,CACF,CACL,CACC,CAED,OAAA8Q,GAAiBD,sDCzKjB,SAASx9Z,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIjB,CAMD,SAASsoM,KAAU1oR,EAAM,CAEvB,OADeA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAElD,CAWD,SAAS08Z,EAAK/Q,EAAM,CAClB,MAAMgR,EAAM,CAAA,EACNC,EAAa,CACjB,MAAO,OACP,IAAI,KACJ,SAAU,CACR,OACA,CACE,MAAO,KACP,SAAU,CAAED,CAAK,CAClB,CACF,CACL,EACE,OAAO,OAAOA,EAAI,CAChB,UAAW,WACX,SAAU,CACR,CAAC,MAAOnqH,EAAO,qBAGb,qBAA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Z,EAAUxN,EAAM,CAIvB,MAAM/C,EAAsB+C,EAAK,QAAQ,KAAM,IAAK,CAClD,SAAU,CACR,CACE,MAAO,MACR,CACF,CACL,CAAG,EACKyN,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,IACvBF,EAAmB,IACnBF,EAASG,CAAY,EACrB,gBAAkBH,EAJS,UAIoB,EACjD,IACMK,EAAsB,CAC1B,UAAW,UACX,MAAO,oBACX,EAKQ5D,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAEhK,EAAK,gBAAkB,CACpC,EACD,CACE,MAAO,eAXa,uDAWyB,MAC7C,IAAK,IACL,QAAS,GACV,EACDA,EAAK,kBAAkB,CACrB,MAAO,mCACP,IAAK,qBACb,CAAO,CACF,CACL,EAEQ+J,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,eACR,EACD,CACE,MAAO,uFACR,EACD,CACE,MAAO,qFACR,CACF,EACD,UAAW,CACf,EAEQ8D,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CACR,eACE,wFAEH,EACD,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACZ,EACD7N,EAAK,QAAQgK,EAAS,CACpB,UAAW,aACnB,CAAO,EACD,CACE,UAAW,cACX,MAAO,OACR,EACD/M,EACA+C,EAAK,oBACN,CACL,EAEQvC,EAAa,CACjB,UAAW,QACX,MAAO8P,EAASG,CAAY,EAAI1N,EAAK,SACrC,UAAW,CACf,EAEQ8N,EAAiBP,EAASG,CAAY,EAAI1N,EAAK,SAAW,UAsH1D+N,EAAe,CACnB,QAAS,y0BAYT,SAAU,4BACV,iBAlIuB,CACvB,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,WACA,QACA,OACA,QACA,QACA,SACA,MACA,MACA,OACA,SACA,WACA,WACA,gBACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,eACJ,EAiBI,QAAS,yBACb,EAEQC,EAAoB,CACxB,UAAW,oBACX,UAAW,EACX,SAAUD,EACV,MAAOlnH,EACL,KACA,eACA,SACA,UACA,YACAm5G,EAAK,SACLsN,EAAU,OAAO,CAAC,CACxB,EAEQW,EAAsB,CAC1BD,EACAH,EACAD,EACA3Q,EACA+C,EAAK,qBACL+J,EACAC,CACJ,EAGQkE,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,cAAe,wBACf,IAAK,GACN,CACF,EACD,SAAUH,EACV,SAAUE,EAAoB,OAAO,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAUF,EACV,SAAUE,EAAoB,OAAO,CAAE,MAAM,CAAE,EAC/C,UAAW,CACZ,CACP,CAAK,EACD,UAAW,CACf,EAEQE,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAMR,EAAmB,eAAiBG,EACjD,YAAa,GACb,IAAK,QACL,WAAY,GACZ,SAAUC,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAON,EACP,SAAUM,EACV,UAAW,CACZ,EACD,CACE,MAAOD,EACP,YAAa,GACb,SAAU,CAAErQ,CAAY,EACxB,UAAW,CACZ,EAGD,CACE,MAAO,KACP,UAAW,CACZ,EAED,CACE,MAAO,IACP,eAAgB,GAChB,SAAU,CACRuM,EACAD,CACD,CACF,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUgE,EACV,UAAW,EACX,SAAU,CACR9Q,EACA+C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oB,OAAO,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAUF,EACV,SAAUE,EAAoB,OAAO,CAAE,MAAM,CAAE,EAC/C,UAAW,CACZ,CACP,CAAK,EACD,UAAW,CACf,EAEQE,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAMR,EAAmB,eAAiBG,EACjD,YAAa,GACb,IAAK,QACL,WAAY,GACZ,SAAUC,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAON,EACP,SAAUM,EACV,UAAW,CACZ,EACD,CACE,MAAOD,EACP,YAAa,GACb,SAAU,CAAErQ,CAAY,EACxB,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUsQ,EACV,UAAW,EACX,SAAU,CACR9Q,EACA+C,EAAK,qBACLgK,EACAD,EACA6D,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAUG,EACV,UAAW,EACX,SAAU,CACR,OACA9Q,EACA+C,EAAK,qBACLgK,EACAD,EACA6D,CACD,CACF,CACF,CACF,EACDA,EACA3Q,EACA+C,EAAK,qBACL6N,CACD,CACL,EAEE,MAAO,CACL,KAAM,IACN,QAAS,CACP,GACD,EACD,SAAUE,EAGV,kBAAmB,GACnB,QAAS,KACT,SAAU,CAAE,EAAC,OACXG,EACAC,EACAF,EACA,CACEJ,EACA,CACE,MAAO,uKACP,IAAK,IACL,SAAUE,EACV,SAAU,CACR,OACAH,CACD,CACF,EACD,CACE,MAAO5N,EAAK,SAAW,KACvB,SAAU+N,CACX,EACD,CACE,UAAW,QACX,cAAe,0BACf,IAAK,WACL,SAAU,CACR,CACE,cAAe,oBAChB,EACD/N,EAAK,UACN,CACF,CACT,CAAO,EACH,QAAS,CACP,aAAc6N,EACd,QAAS7D,EACT,SAAU+D,CACX,CACL,CACC,CAED,OAAAqE,GAAiB19Z,sDC5SjB,SAAS29Z,EAAIrS,EAAM,CACjB,MAAMiN,EACJ,yHAEIqF,EAAW,aACXC,EAAgB,CACpBvS,EAAK,oBACLA,EAAK,QACH,KACA,KACA,CACE,UAAW,CACZ,CACF,EACDA,EAAK,QACH,OACA,OACA,CACE,UAAW,EACZ,CACF,CACL,EACQ1oG,EAAS,CACb,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAC,CACT,MAAO,IACb,CAAK,CACL,EACQk7G,EAAc,CAClB,UAAW,SACX,MAAO,SACX,EACQvI,EAAO,CACX,UAAW,SACX,MAAO,4BACP,UAAW,CACf,EACQwI,EAAsB,CAC1B,UAAW,SACX,MAAO,IACP,IAAK,GACT,EAEQC,EAAY,CAChB,UAAW,WACX,cAAe,YACf,IAAK,OACL,SAAU,eACV,SAAU,CACR1S,EAAK,WACL,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUiN,EACV,SAAU,CACR31G,EACAk7G,CACD,CACF,CACP,EAAM,OAAOD,CAAa,CAC1B,EAEQp7G,EAAS,CACb,UAAW,QACX,MAAO,gGACP,YAAa,GACb,SAAU,CACR6oG,EAAK,WACL0S,CACD,CACL,EAEE,MAAO,CACL,KAAM,OACN,iBAAkB,GAClB,SAAU,CACR,QAASzF,EACT,QAASqF,CACV,EACD,QAAS,OACT,SAAU,CACRh7G,EACAk7G,EACAvI,EACAwI,EACAzS,EAAK,YACL7oG,EACAu7G,CACD,CACL,CACC,CAED,OAAAC,GAAiBN,sDC9FjB,SAASO,EAAU5S,EAAM,CACvB,MAAO,CACL,KAAM,cACN,QAAS,CAAC,OAAO,EACjB,SAAU,CACR,QACE,sGACF,SACE,6HAEF,QACE,YACH,EACD,SAAU,CACRA,EAAK,kBACLA,EAAK,YACLA,EAAK,kBACL,CACE,UAAW,OACX,MAAO,iBACP,QAAS,IACV,EACD,CACE,UAAW,SACX,MAAO,QACR,EACD,CACE,UAAW,QACX,cAAe,cACf,IAAK,KACL,QAAS,KACT,SAAU,CAACA,EAAK,QAAQA,EAAK,WAAY,CACvC,OAAQ,CACN,eAAgB,GAChB,WAAY,EACb,CACX,CAAS,CAAC,CACH,EACD,CACE,UAAW,QACX,cAAe,YACf,IAAK,KACL,QAAS,KACT,SAAU,CAACA,EAAK,QAAQA,EAAK,WAAY,CACvC,OAAQ,CACN,eAAgB,GAChB,WAAY,EACb,CACX,CAAS,CAAC,CACH,CACF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EAiCH,EACD,SAAU,CACR,CACE,UAAW,WACX,MAAO,OACP,IAAK,IACN,EACDA,EAAK,kBACLA,EAAK,kBACLA,EAAK,WACN,CACL,CACC,CAED,OAAAsU,GAAiBD,sDC/DjB,MAAMpH,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,SACF,EACMqF,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,UACF,EAEMiC,EAAQ,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,QACF,EAEMC,EAAc,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,UACF,EAEMC,EAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,UACF,EAEMC,EAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,QACF,EAEMC,EAAY,CAAA,EAAG,OACnBF,EACAC,EACAH,EACAC,CACF,EAYA,SAASI,EAAa5U,EAAM,CAC1B,MAAM6U,EAAmB,CACvB,MACA,OACJ,EACQC,EAAkB,CACtB,MACA,KACA,KACA,KACJ,EACQC,EAAkB,CACtB,OACA,SACA,QACA,OACA,KACA,OACA,MACA,KACA,KACA,OACA,KACJ,EACQC,EAAqB,CACzB,MACA,QACA,MACA,WACA,QACJ,EACQC,EAAar+X,GAChBs+X,GAAO,CAACt+X,EAAK,SAASs+X,CAAE,EACrBC,EAAa,CACjB,QAASlI,EAAS,OAAO8H,CAAe,EAAE,OAAOE,EAAUD,CAAkB,CAAC,EAC9E,QAAS1C,EAAS,OAAOwC,CAAe,EACxC,SAAUH,EAAU,OAAOE,CAAgB,CAC/C,EACQO,EAAc,2BACdlI,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAUiI,CACd,EACQlC,EAAc,CAClBjT,EAAK,mBACLA,EAAK,QAAQA,EAAK,cAAe,CAC/B,OAAQ,CACN,IAAK,WACL,UAAW,CACZ,CACP,CAAK,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,IAAK,MACL,SAAU,CAACA,EAAK,gBAAgB,CACjC,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAACA,EAAK,gBAAgB,CACjC,EACD,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACRA,EAAK,iBACLkN,CACD,CACF,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACRlN,EAAK,iBACLkN,CACD,CACF,CACF,CACF,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACRA,EACAlN,EAAK,iBACN,CACF,EACD,CACE,MAAO,sBACP,UAAW,CACZ,EACD,CAGE,MAAO,0CACR,CACF,CACF,EACD,CACE,MAAO,IAAMoV,CACd,EACD,CACE,YAAa,aACb,aAAc,GACd,WAAY,GACZ,SAAU,CACR,CACE,MAAO,MACP,IAAK,KACN,EACD,CACE,MAAO,IACP,IAAK,GACN,CACF,CACF,CACL,EACElI,EAAM,SAAW+F,EAEjB,MAAMoC,EAAQrV,EAAK,QAAQA,EAAK,WAAY,CAC1C,MAAOoV,CACX,CAAG,EACKE,EAAqB,0BACrB5I,EAAS,CACb,UAAW,SACX,MAAO,YACP,YAAa,GAGb,SAAU,CAAC,CACT,MAAO,KACP,IAAK,KACL,SAAUyI,EACV,SAAU,CAAC,MAAM,EAAE,OAAOlC,CAAW,CAC3C,CAAK,CACL,EAEE,MAAO,CACL,KAAM,eACN,QAAS,CACP,SACA,OACA,MACD,EACD,SAAUkC,EACV,QAAS,OACT,SAAUlC,EAAY,OAAO,CAC3BjT,EAAK,QAAQ,MAAO,KAAK,EACzBA,EAAK,kBACL,CACE,UAAW,WACX,MAAO,QAAUoV,EAAc,YAAcE,EAC7C,IAAK,QACL,YAAa,GACb,SAAU,CACRD,EACA3I,CACD,CACF,EACD,CAEE,MAAO,aACP,UAAW,EACX,SAAU,CAAC,CACT,UAAW,WACX,MAAO4I,EACP,IAAK,QACL,YAAa,GACb,SAAU,CAAC5I,CAAM,CAC3B,CAAS,CACF,EACD,CACE,UAAW,QACX,cAAe,QACf,IAAK,IACL,QAAS,YACT,SAAU,CACR,CACE,cAAe,UACf,eAAgB,GAChB,QAAS,YACT,SAAU,CAAC2I,CAAK,CACjB,EACDA,CACD,CACF,EACD,CACE,MAAOD,EAAc,IACrB,IAAK,IACL,YAAa,GACb,UAAW,GACX,UAAW,CACZ,CACP,CAAK,CACL,CACC,CAED,OAAAG,GAAiBX,sDC3VjB,SAASY,EAAIxV,EAAM,CACjB,MAAO,CACL,KAAM,MACN,SAAU,CACR,QACE,svDAyBF,SACE,u5CAqBH,EACD,SAAU,CACRA,EAAK,kBACLA,EAAK,QAAQ,SAAU,QAAQ,EAC/BA,EAAK,cACL,CACE,UAAW,OACX,aAAc,GACd,MAAO,UACP,IAAK,MACN,EACD,CACE,MAAO,OACR,CACF,CACL,CACC,CAED,OAAAyV,GAAiBD,sDCtEjB,SAASE,EAAI1V,EAAM,CAiEjB,MAAO,CACL,KAAM,sBACN,iBAAkB,GAClB,QAAS,CACP,KACD,EACD,SAnDA,gbAoDA,SAAU,CA3DI,CACd,UAAW,SACX,MAAO,8BACP,UAAW,CACf,EAhBkB,CACd,UAAW,SACX,SAAU,CAAC,CACT,MAAO,IACP,IAAK,IACL,SAAU,CAAC,CACT,MAAO,KACP,UAAW,CACnB,CAAO,CACP,CAAK,CACL,EAgEMA,EAAK,oBACLA,EAAK,qBACL,CACE,UAAW,UACX,MAAO,IACP,IAAK,IACL,UAAW,CACZ,EACD,CACE,UAAW,WACX,MAAO,4BACR,EACD,CACE,UAAW,WACX,MAAO,iBACR,EACD,CACE,UAAW,WACX,MAAO,sBACR,EACD,CACE,UAAW,SACX,MAAO,mBACR,EACD,CACE,UAAW,UACX,MAAO,8BACR,EAGD,CACE,MAAO,SACP,IAAK,KACL,aAAc,GACd,WAAY,GACZ,YAAa,KACd,EACD,CACE,MAAO,4BACP,IAAK,IACL,aAAc,GACd,WAAY,GACZ,YAAa,YACd,EACD,CAEE,MAAO,aACP,IAAK,QACL,YAAa,KACd,CACF,CACL,CACC,CAED,OAAA2V,GAAiBD,sDChIjB,SAASria,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIjB,CAMD,SAAS+uT,EAAU/uT,EAAI,CACrB,OAAOsoM,EAAO,MAAOtoM,EAAI,GAAG,CAC7B,CAMD,SAASgvT,EAAShvT,EAAI,CACpB,OAAOsoM,EAAO,IAAKtoM,EAAI,IAAI,CAC5B,CAMD,SAASsoM,KAAU1oR,EAAM,CAEvB,OADeA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAElD,CASD,SAASuha,EAAI5V,EAAM,CAIjB,MAAM/C,EAAsB+C,EAAK,QAAQ,KAAM,IAAK,CAClD,SAAU,CACR,CACE,MAAO,MACR,CACF,CACL,CAAG,EACKyN,EAAmB,qBACnBC,EAAe,kBAEfC,EAAmB,IACvBF,EAAmB,IACnBF,EAASG,CAAY,EACrB,gBAAkBH,EAJS,UAIoB,EACjD,IACMK,EAAsB,CAC1B,UAAW,UACX,MAAO,oBACX,EAKQ5D,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,cACP,IAAK,IACL,QAAS,MACT,SAAU,CAAEhK,EAAK,gBAAkB,CACpC,EACD,CACE,MAAO,eAXa,uDAWyB,MAC7C,IAAK,IACL,QAAS,GACV,EACDA,EAAK,kBAAkB,CACrB,MAAO,mCACP,IAAK,qBACb,CAAO,CACF,CACL,EAEQ+J,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,eACR,EACD,CACE,MAAO,uFACR,EACD,CACE,MAAO,qFACR,CACF,EACD,UAAW,CACf,EAEQ8D,EAAe,CACnB,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CACR,eACE,wFAEH,EACD,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACZ,EACD7N,EAAK,QAAQgK,EAAS,CACpB,UAAW,aACnB,CAAO,EACD,CACE,UAAW,cACX,MAAO,OACR,EACD/M,EACA+C,EAAK,oBACN,CACL,EAEQvC,EAAa,CACjB,UAAW,QACX,MAAO8P,EAASG,CAAY,EAAI1N,EAAK,SACrC,UAAW,CACf,EAEQ8N,EAAiBP,EAASG,CAAY,EAAI1N,EAAK,SAAW,UAsH1D+N,EAAe,CACnB,QAAS,y0BAYT,SAAU,4BACV,iBAlIuB,CACvB,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,WACA,QACA,OACA,QACA,QACA,SACA,MACA,MACA,OACA,SACA,WACA,WACA,gBACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,eACJ,EAiBI,QAAS,yBACb,EAEQC,EAAoB,CACxB,UAAW,oBACX,UAAW,EACX,SAAUD,EACV,MAAOlnH,EACL,KACA,eACA,SACA,UACA,YACAm5G,EAAK,SACLsN,EAAU,OAAO,CAAC,CACxB,EAEQW,EAAsB,CAC1BD,EACAH,EACAD,EACA3Q,EACA+C,EAAK,qBACL+J,EACAC,CACJ,EAGQkE,EAAqB,CAIzB,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,cAAe,wBACf,IAAK,GACN,CACF,EACD,SAAUH,EACV,SAAUE,EAAoB,OAAO,CACnC,CACE,MAAO,KACP,IAAK,KACL,SAAUF,EACV,SAAUE,EAAoB,OAAO,CAAE,MAAM,CAAE,EAC/C,UAAW,CACZ,CACP,CAAK,EACD,UAAW,CACf,EAEQE,EAAuB,CAC3B,UAAW,WACX,MAAO,IAAMR,EAAmB,eAAiBG,EACjD,YAAa,GACb,IAAK,QACL,WAAY,GACZ,SAAUC,EACV,QAAS,iBACT,SAAU,CACR,CACE,MAAON,EACP,SAAUM,EACV,UAAW,CACZ,EACD,CACE,MAAOD,EACP,YAAa,GACb,SAAU,CAAErQ,CAAY,EACxB,UAAW,CACZ,EAGD,CACE,MAAO,KACP,UAAW,CACZ,EAED,CACE,MAAO,IACP,eAAgB,GAChB,SAAU,CACRuM,EACAD,CACD,CACF,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUgE,EACV,UAAW,EACX,SAAU,CACR9Q,EACA+C,EAAK,qBACLgK,EACAD,EACA6D,EAEA,CACE,MAAO,KACP,IAAK,KACL,SAAUG,EACV,UAAW,EACX,SAAU,CACR,OACA9Q,EACA+C,EAAK,qBACLgK,EACAD,EACA6D,CACD,CACF,CACF,CACF,EACDA,EACA3Q,EACA+C,EAAK,qBACL6N,CACD,CACL,EAEE,MAAO,CACL,KAAM,MACN,QAAS,CACP,KACA,MACA,MACA,MACA,KACA,MACA,KACD,EACD,SAAUE,EACV,QAAS,KACT,iBAAkB,CAChB,oBAAqB,UACtB,EACD,SAAU,CAAE,EAAC,OACXG,EACAC,EACAH,EACAC,EACA,CACEJ,EACA,CACE,MAAO,uKACP,IAAK,IACL,SAAUE,EACV,SAAU,CACR,OACAH,CACD,CACF,EACD,CACE,MAAO5N,EAAK,SAAW,KACvB,SAAU+N,CACX,EACD,CACE,UAAW,QACX,cAAe,0BACf,IAAK,WACL,SAAU,CACR,CACE,cAAe,oBAChB,EACD/N,EAAK,UACN,CACF,CACT,CAAO,EACH,QAAS,CACP,aAAc6N,EACd,QAAS7D,EACT,SAAU+D,CACX,CACL,CACC,CAED,OAAA8H,GAAiBD,sDCtcjB,SAASE,EAAM9V,EAAM,CACnB,MAAM+V,EAAY,yBACZC,EAAW,qHAWjB,MAAO,CACL,KAAM,QACN,QAAS,CACP,MACA,MACD,EACD,iBAAkB,GAClB,SAAU,CACR,QAfa,wDAeO,IAdN,yIAcwB,IAX5B,gBAYV,QAXa,2EAYd,EACD,SAAU,CACRhW,EAAK,kBACL,CACE,cAAe,OACf,OAAQ,CACN,IAAK,mBACL,OAAQ,CACN,UAAW,QACX,IAAK,uBACN,CACF,CACF,EACD,CACE,cAAe+V,EACf,OAAQ,CACN,UAAW,QACX,IAAK,wBACL,OAAQ,CACN,IAAK,0BACN,CACF,CACF,EACD,CACE,MAAO,OAASC,EAAS,MAAM,GAAG,EAAE,KAAK,GAAG,EAAI,QAChD,SAAUA,EACV,OAAQ,CACN,UAAW,QACX,IAAK,mBACN,CACF,EACD,CACE,cAlDgB,oCAmDhB,OAAQ,CACN,UAAW,QACX,IAAK,kBACN,CACF,EACDhW,EAAK,kBACL,CACE,UAAW,OACX,MAAO,sCACP,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAO,+BACP,UAAW,CACZ,EACD,CACE,UAAW,UACX,MAAO,qBACP,UAAW,CACZ,EACD,CACE,UAAW,OACX,MAAO,wBACP,UAAW,CACZ,EACD,CACE,UAAW,MACX,MAAO,MACP,IAAK,MACL,UAAW,CACZ,CACF,CACL,CACC,CAED,OAAAiW,GAAiBH,sDC9FjB,SAASI,EAAQlW,EAAM,CACrB,MAAMmW,EAAa,4BACbC,EAAe,gBACfC,EAAmB,sBACnBC,EAAoB,gHACpBC,EAAkB,iCAClBC,EAAmB,CACvB,SAAUH,EACV,QACE,yYAIF,QAAS,gBACb,EACQnJ,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAUsJ,CACd,EACQC,EAAY,CAChB,UAAW,oBACX,SAAU,CACR,CACE,MAAO,SACP,IAAK,QACN,EACD,CACE,MAAO,OACP,IAAK,MACN,CACF,EACD,SAAUD,CACd,EAEE,SAASE,EAAervB,EAAO/xX,EAAK,CAClC,MACIqhZ,EAAW,CACT,CACE,MAAOtvB,EACP,IAAK/xX,CACN,CACX,EACI,OAAAqhZ,EAAS,CAAC,EAAE,SAAWA,EAChBA,CACR,CACD,MAAMr/G,EAAS,CACb,UAAW,SACX,SAAU,CACR0oG,EAAK,iBACLkN,CACD,EACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,aACP,IAAK,MACL,SAAUwJ,EAAe,MAAO,KAAK,CACtC,EACD,CACE,MAAO,aACP,IAAK,MACL,SAAUA,EAAe,MAAO,KAAK,CACtC,EACD,CACE,MAAO,aACP,IAAK,KACL,SAAUA,EAAe,KAAM,IAAI,CACpC,EACD,CACE,MAAO,WACP,IAAK,IACL,SAAUA,EAAe,IAAK,GAAG,CAClC,EACD,CACE,MAAO,aACP,IAAK,KACN,EACD,CACE,MAAO,UACP,IAAK,UACN,CACF,EACD,UAAW,CACf,EACQE,EAAW,CACf,UAAW,SACX,SAAU,CACR,CACE,MAAO,QACP,IAAK,MACL,SAAUF,EAAe,MAAO,KAAK,CACtC,EACD,CACE,MAAO,QACP,IAAK,MACL,SAAUA,EAAe,MAAO,KAAK,CACtC,EACD,CACE,MAAO,QACP,IAAK,KACL,SAAUA,EAAe,KAAM,IAAI,CACpC,EACD,CACE,MAAO,MACP,IAAK,IACL,SAAUA,EAAe,IAAK,GAAG,CAClC,EACD,CACE,MAAO,QACP,IAAK,KACN,EACD,CACE,MAAO,YACP,IAAK,UACN,CACF,EACD,UAAW,CACf,EACQG,EAAS,CACb,MAAO,YAAc7W,EAAK,eAAiB,2DAC3C,SAAU,yCACV,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACRA,EAAK,iBACLkN,CACD,EACD,SAAU,CACR,CACE,MAAO,WACP,UAAW,CACZ,EACD,CACE,MAAO,WACP,IAAK,SACN,CACF,CACF,CACF,EACD,UAAW,CACf,EACQ4J,EAAU,CACd,UAAW,SACX,SAAU,CACR9W,EAAK,iBACLkN,CACD,EACD,SAAU,CACR,CACE,MAAO,QACP,IAAK,MACL,SAAUwJ,EAAe,MAAO,KAAK,CACtC,EACD,CACE,MAAO,QACP,IAAK,MACL,SAAUA,EAAe,MAAO,KAAK,CACtC,EACD,CACE,MAAO,QACP,IAAK,KACL,SAAUA,EAAe,KAAM,IAAI,CACpC,EACD,CACE,MAAO,MACP,IAAK,IACL,SAAUA,EAAe,IAAK,GAAG,CAClC,EACD,CACE,MAAO,QACP,IAAK,KACN,CACF,EACD,UAAW,CACf,EACQK,EAAY,CAChB,UAAW,OACX,MAAO,OACP,IAAK,MACL,SAAU,CACR/W,EAAK,QAAQA,EAAK,kBAAmB,CACnC,UAAW,aACnB,CAAO,CACF,CACL,EACQgX,EAA2B,CAC/BP,EACAn/G,EACAs/G,EACAE,EACAD,EACAE,EACA/W,EAAK,kBACL,CACE,UAAW,QACX,cAAe,sBACf,IAAK,MACL,QAAS,IACT,SAAU,CACRA,EAAK,kBACLA,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAOuW,CACjB,CAAS,EACD,CACE,MAAO,GACR,CACF,CACF,EACD,CACE,UAAW,QACX,cAAe,iBACf,IAAK,MACL,QAAS,IACT,SAAU,CACRvW,EAAK,kBACLA,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAOuW,CACjB,CAAS,CACF,CACF,EACD,CACE,cAAe,aACf,IAAK,MACL,QAAS,IACT,SAAU,CACRvW,EAAK,kBACLA,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAOuW,CACjB,CAAS,CACF,EACD,UAAW,CACZ,EACD,CACE,UAAW,WACX,cAAe,MACf,IAAK,OACL,SAAU,CACRvW,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAOsW,EACP,WAAY,EACtB,CAAS,CACF,CACF,EACD,CACE,UAAW,WACX,cAAe,YACf,IAAK,OACL,SAAU,CACRtW,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAOsW,EACP,WAAY,EACtB,CAAS,CACF,EACD,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAOtW,EAAK,oBAAsB,YAClC,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAO,IACP,SAAU,CACR1oG,EACA,CACE,MAAOg/G,CACR,CACF,EACD,UAAW,CACZ,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,gBAAkBH,CAC1B,EACD,CACE,MAAO,iBAAmBA,CAC3B,EACD,CACE,MAAO,uBAAyBA,CACjC,EACD,CACE,MAAO,sEAAwEC,EAAe,OAC/F,EACD,CACE,MAAO,sBAAwBD,CAChC,CACF,EACD,UAAW,CACZ,CACL,EACE,OAAAjJ,EAAM,SAAW8J,EACjBP,EAAU,SAAWO,EAAyB,MAAM,CAAC,EAE9C,CACL,KAAM,UACN,QAAS,CAAE,IAAM,EACjB,SAAUR,EACV,SAAUQ,CACd,CACC,CAED,OAAAC,GAAiBf,sDC5TjB,SAASgB,EAAOlX,EAAM,CACpB,MAAMmX,EAAoB,CACxB,OACA,OACA,OACA,UACA,WACA,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,QACJ,EACQC,EAAqB,CACzB,SACA,UACA,YACA,SACA,WACA,YACA,WACA,QACA,SACA,WACA,SACA,UACA,MACA,SACA,SACJ,EACQC,EAAmB,CACvB,UACA,QACA,OACA,MACJ,EACQC,EAAkB,CACtB,WACA,KACA,OACA,QACA,OACA,QACA,QACA,WACA,KACA,OACA,QACA,WACA,SACA,UACA,QACA,MACA,UACA,OACA,KACA,WACA,KACA,YACA,WACA,KACA,OACA,YACA,MACA,WACA,MACA,WACA,SACA,UACA,YACA,SACA,WACA,SACA,MACA,SACA,SACA,SACA,aACA,SACA,SACA,SACA,OACA,QACA,MACA,SACA,YACA,SACA,QACA,UACA,OACA,WACA,OACJ,EACQC,EAAsB,CAC1B,MACA,QACA,MACA,YACA,QACA,QACA,KACA,aACA,SACA,OACA,MACA,SACA,QACA,OACA,OACA,OACA,MACA,SACA,MACA,UACA,KACA,KACA,UACA,UACA,SACA,SACA,MACA,YACA,UACA,MACA,OACA,QACA,OACA,OACJ,EAEQtK,EAAW,CACf,QAASqK,EAAgB,OAAOC,CAAmB,EACnD,SAAUJ,EACV,QAASE,CACb,EACQ5Z,EAAauC,EAAK,QAAQA,EAAK,WAAY,CAC/C,MAAO,oBACX,CAAG,EACK+J,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,eACR,EACD,CACE,MAAO,iEACR,EACD,CACE,MAAO,qFACR,CACF,EACD,UAAW,CACf,EACQyN,EAAkB,CACtB,UAAW,SACX,MAAO,KACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,IACR,CACF,CACL,EACQC,EAAwBzX,EAAK,QAAQwX,EAAiB,CAC1D,QAAS,IACb,CAAG,EACKtK,EAAQ,CACZ,UAAW,QACX,MAAO,KACP,IAAK,KACL,SAAUD,CACd,EACQyK,EAAc1X,EAAK,QAAQkN,EAAO,CACtC,QAAS,IACb,CAAG,EACKyK,EAAsB,CAC1B,UAAW,SACX,MAAO,MACP,IAAK,IACL,QAAS,KACT,SAAU,CACR,CACE,MAAO,MACR,EACD,CACE,MAAO,MACR,EACD3X,EAAK,iBACL0X,CACD,CACL,EACQE,EAA+B,CACnC,UAAW,SACX,MAAO,OACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,MACR,EACD,CACE,MAAO,MACR,EACD,CACE,MAAO,IACR,EACD1K,CACD,CACL,EACQ2K,EAAqC7X,EAAK,QAAQ4X,EAA8B,CACpF,QAAS,KACT,SAAU,CACR,CACE,MAAO,MACR,EACD,CACE,MAAO,MACR,EACD,CACE,MAAO,IACR,EACDF,CACD,CACL,CAAG,EACDxK,EAAM,SAAW,CACf0K,EACAD,EACAH,EACAxX,EAAK,iBACLA,EAAK,kBACL+J,EACA/J,EAAK,oBACT,EACE0X,EAAY,SAAW,CACrBG,EACAF,EACAF,EACAzX,EAAK,iBACLA,EAAK,kBACL+J,EACA/J,EAAK,QAAQA,EAAK,qBAAsB,CACtC,QAAS,IACf,CAAK,CACL,EACE,MAAM1oG,EAAS,CACb,SAAU,CACRsgH,EACAD,EACAH,EACAxX,EAAK,iBACLA,EAAK,iBACN,CACL,EAEQ8X,EAAmB,CACvB,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,cAAe,QAChB,EACDra,CACD,CACL,EACQsa,EAAgB/X,EAAK,SAAW,KAAOA,EAAK,SAAW,aAAeA,EAAK,SAAW,iBACtFgY,EAAgB,CAGpB,MAAO,IAAMhY,EAAK,SAClB,UAAW,CACf,EAEE,MAAO,CACL,KAAM,KACN,QAAS,CACP,KACA,IACD,EACD,SAAUiN,EACV,QAAS,KACT,SAAU,CACRjN,EAAK,QACH,MACA,IACA,CACE,YAAa,GACb,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,UAAW,CACZ,EACD,CACE,MAAO,UACR,EACD,CACE,MAAO,MACP,IAAK,GACN,CACF,CACF,CACF,CACF,CACF,EACDA,EAAK,oBACLA,EAAK,qBACL,CACE,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,eAAgB,qFACjB,CACF,EACD1oG,EACAyyG,EACA,CACE,cAAe,kBACf,UAAW,EACX,IAAK,QACL,QAAS,UACT,SAAU,CACR,CACE,cAAe,aAChB,EACDtM,EACAqa,EACA9X,EAAK,oBACLA,EAAK,oBACN,CACF,EACD,CACE,cAAe,YACf,UAAW,EACX,IAAK,QACL,QAAS,SACT,SAAU,CACRvC,EACAuC,EAAK,oBACLA,EAAK,oBACN,CACF,EACD,CACE,cAAe,SACf,UAAW,EACX,IAAK,QACL,QAAS,SACT,SAAU,CACRvC,EACAqa,EACA9X,EAAK,oBACLA,EAAK,oBACN,CACF,EACD,CAEE,UAAW,OACX,MAAO,WACP,aAAc,GACd,IAAK,MACL,WAAY,GACZ,SAAU,CACR,CACE,UAAW,cACX,MAAO,IACP,IAAK,GACN,CACF,CACF,EACD,CAGE,cAAe,8BACf,UAAW,CACZ,EACD,CACE,UAAW,WACX,MAAO,IAAM+X,EAAgB,SAAW/X,EAAK,SAAW,qBACxD,YAAa,GACb,IAAK,WACL,WAAY,GACZ,SAAUiN,EACV,SAAU,CAER,CACE,cAAemK,EAAmB,KAAK,GAAG,EAC1C,UAAW,CACZ,EACD,CACE,MAAOpX,EAAK,SAAW,qBACvB,YAAa,GACb,SAAU,CACRA,EAAK,WACL8X,CACD,EACD,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,aAAc,GACd,WAAY,GACZ,SAAU7K,EACV,UAAW,EACX,SAAU,CACR31G,EACAyyG,EACA/J,EAAK,oBACN,CACF,EACDA,EAAK,oBACLA,EAAK,oBACN,CACF,EACDgY,CACD,CACL,CACC,CAED,OAAAC,GAAiBf,sDC9ajB,SAASgB,EAAIlY,EAAM,CACjB,MAAO,CACL,KAAM,MACN,iBAAkB,GAClB,SAAU,CACR,SAAU,yBACV,QAAS,6KAGV,EACD,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,GACN,EACD,CACE,UAAW,YACX,MAAO,WACP,IAAK,IACL,WAAY,EACb,CACF,CACL,CACC,CAED,OAAAmY,GAAiBD,sDCpCjB,MAAMra,EAASmC,IACN,CACL,UAAW,CACT,UAAW,OACX,MAAO,YACR,EACD,SAAU,CACR,UAAW,SACX,MAAO,kCACR,EACD,wBAAyB,CACvB,UAAW,gBACX,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACRA,EAAK,iBACLA,EAAK,iBACN,CACF,CACL,GAGMoY,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEMC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,YACF,EAGMC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF,EAGMC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,gBACF,EAEMC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WAC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AAY,OAAOF,EAAMC,CAAM,EAiCtC,CACL,KAAM,WACN,QAAS,CACP,KACA,SACA,KACD,EACD,SAAU,CAtCG,CACb,UAAW,UACX,SAAU,CACR,CACE,MAAO,UACP,IAAK,IACL,SAAUC,CACX,EACD,CACE,MAAO,uBACP,SAAU,CACR,CACE,MAAO,SACR,EACD,CACE,MAAO,IACP,IAAK,MACL,SAAUA,CACX,CACF,CACF,CACF,CACL,EAkBMN,EACA1G,EACA8G,EACAC,EAnBe,CACjB,UAAW,QACX,MAAO,SACP,SAAUC,EACV,IAAK,GACT,EAgBML,EACAnL,EACAqL,EACAD,CACD,CACL,CACC,CAED,OAAAK,GAAiBR,sDCvPjB,SAASS,EAAKhb,EAAM,CAClB,MAAMkN,EAAQ,CACZ,UAAW,QACX,SAAU,CAAC,CACT,MAAO,kBACb,CAAK,CACL,EAEQ+N,EAAe,CACnB,UAAW,QACX,SAAU,CAAC,CACT,MAAO,OACP,IAAK,IACX,CAAK,EACD,SAAU,mCACd,EAEQ3jH,EAAS,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,OACP,IAAK,KACN,EACD,CACE,MAAO,OACP,IAAK,KACN,EACD,CACE,MAAO,KACP,IAAK,IACL,QAAS,KACV,EACD,CACE,MAAO,KACP,IAAK,IACL,QAAS,KACV,EACD,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACR0oG,EAAK,iBACLkN,EACA+N,CACD,CACF,EACD,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACRjb,EAAK,iBACLkN,EACA+N,CACD,CACF,EACD,CACE,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CACRjb,EAAK,iBACLkN,EACA+N,CACD,CACF,EACD,CACE,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CACRjb,EAAK,iBACLkN,EACA+N,CACD,CACF,CACF,CACL,EACEA,EAAa,SAAW,CACtBjb,EAAK,cACL1oG,CACJ,EAEE,MAAM4jH,EAAiB,CAErB,aACA,WACA,WACA,WACA,WACA,WACA,OACA,MACA,QACA,SACA,UACA,SACA,MACA,YACA,SACA,eACA,aACA,SACA,OACA,MACA,OACA,SACA,MACA,MAEA,UACA,aACJ,EACQC,EAA0BD,EAAe,IAAK7la,GAAM,GAAGA,CAAC,GAAG,EAyBjE,MAAO,CACL,KAAM,OACN,SAzBe,CACf,QAAS,6YAIT,SACE6la,EACG,OAAOC,CAAuB,EAC9B,OAAO,CAEN,QACA,OACA,UACA,QAEA,WACA,gBACA,mBACA,QACV,CAAS,EACL,SAAU,0BACd,EAKI,SAAU,CACR7jH,EACA0oG,EAAK,QACH,eACA,OACA,CACE,YAAa,WACb,UAAW,CACZ,CACF,EACDA,EAAK,QACH,WACA,IAAK,CACH,SAAU,CAAC,CACT,YAAa,WACb,MAAO,IACP,IAAK,IACL,UAAW,CACvB,CAAW,CACF,CACF,EACDA,EAAK,oBACLA,EAAK,qBACL,CACE,UAAW,QACX,cAAe,kBACf,IAAK,KACL,WAAY,GACZ,SAAU,CACR,CACE,cAAe,oBAChB,EACDA,EAAK,qBACN,CACF,EACDA,EAAK,cACL,CACE,UAAW,OACX,MAAO,YACR,EACD,CACE,MAAO,IACR,CACF,CACL,CACC,CAED,OAAAob,GAAiBJ,sDChMjB,SAASK,EAAOrb,EAAM,CACpB,MAAMiN,EACJ,26BAWIsF,EAAgB,CACpBvS,EAAK,oBACLA,EAAK,QAAQ,KAAM,KAAM,CACvB,UAAW,CACjB,CAAK,EACDA,EAAK,QAAQ,OAAQ,OAAQ,CAC3B,UAAW,EACjB,CAAK,CACL,EACQsb,EAAY,CAChB,UAAW,OACX,SAAU,CACR,CACE,MAAO,OACP,IAAK,IACN,EACD,CACE,MAAO,SACP,IAAK,MACN,CACF,CACL,EACQhkH,EAAS,CACb,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAC,CACT,MAAO,IACb,CAAK,CACL,EACQJ,EAAS,CACb,UAAW,SACX,UAAW,EAEX,SAAU,CACR,CAEE,MAAO,iBACR,EACD,CAEE,MAAO,SACR,EACD,CAEE,MAAO,QACR,CACF,CACL,EACQs7G,EAAc,CAClB,UAAW,SACX,MAAO,SACX,EACQ9I,EAAQ,CACZ,MAAO1J,EAAK,SAAW,wBACvB,YAAa,GACb,SAAU,CAACA,EAAK,UAAU,CAC9B,EACQ/oG,EAAW,CACf,UAAW,WACX,cAAe,4CACf,IAAK,OACL,SAAU,qDACV,SAAU,CACR+oG,EAAK,WACL,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUiN,EACV,SAAU,CACR31G,EACAk7G,EACA8I,CACV,EAAU,OAAO/I,CAAa,CACvB,EACD+I,CACN,EAAM,OAAO/I,CAAa,CAC1B,EACE,MAAO,CACL,KAAM,SACN,QAAS,CACP,MACA,MACA,MACA,SACA,aACA,UACA,MACA,KACD,EACD,iBAAkB,GAClB,SAAUtF,EACV,QAAS,2BACT,SAAU,CACR31G,EACAk7G,EACAxS,EAAK,YACL9oG,EACAwyG,EACAzyG,EACAqkH,CACN,EAAM,OAAO/I,CAAa,CAC1B,CACC,CAED,OAAAgJ,GAAiBF,sDCpHjB,SAASzjZ,EAAKooY,EAAM,CAClB,MAAO,CACL,KAAM,OACN,QAAS,CAAC,OAAO,EACjB,SAAU,CACR,CACE,UAAW,OACX,UAAW,GACX,SAAU,CACR,CACE,MAAO,8BACR,EACD,CACE,MAAO,6BACR,EACD,CACE,MAAO,sBACR,CACF,CACF,EACD,CACE,UAAW,UACX,SAAU,CACR,CACE,MAAO,UACP,IAAK,GACN,EACD,CACE,MAAO,SACP,IAAK,GACN,EACD,CACE,MAAO,QACP,IAAK,GACN,EACD,CACE,MAAO,QACP,IAAK,GACN,EACD,CACE,MAAO,UACP,IAAK,GACN,EACD,CACE,MAAO,SACP,IAAK,GACN,EACD,CACE,MAAO,UACR,EACD,CACE,MAAO,cACP,IAAK,GACN,CACF,CACF,EACD,CACE,UAAW,WACX,MAAO,MACP,IAAK,GACN,EACD,CACE,UAAW,WACX,MAAO,KACP,IAAK,GACN,EACD,CACE,UAAW,WACX,MAAO,KACP,IAAK,GACN,CACF,CACL,CACC,CAED,OAAAwb,GAAiB5jZ,sDCzEjB,SAAS6jZ,EAAOzb,EAAM,CACpB,MAAM0b,EAAS,CACb,MAAO,gBACP,SAAU,CACR,KACE,0kBAQH,EACD,SAAU,CACR1b,EAAK,kBACLA,EAAK,gBACN,CACL,EAEE,MAAO,CACL,KAAM,SACN,QAAS,CAAC,OAAO,EACjB,iBAAkB,GAClB,YAAa,MACb,SAAU,CACRA,EAAK,QAAQ,sBAAuB,wBAAwB,EAC5DA,EAAK,QAAQ,MAAO,KAAK,EACzB,CACE,UAAW,eACX,MAAO,MACP,IAAK,MACL,SAAU,CAAC,CACT,UAAW,OACX,MAAO,MACP,SAAU,CACR,KACI,+lBASL,EACD,OAAQ,CACN,eAAgB,GAChB,SAAU,WACV,SAAU,CAAC0b,CAAM,EACjB,UAAW,CACZ,CACX,CAAS,CACF,EACD,CACE,UAAW,oBACX,MAAO,OACP,IAAK,OACL,SAAU,CAACA,CAAM,CAClB,CACF,CACL,CACC,CAED,OAAAC,GAAiBF,sDCpEjB,SAASG,EAAI5b,EAAM,CACjB,MAAO,CACL,KAAM,WACN,QAAS,CACP,OACA,MACD,EACD,SAAU,CACR,QACE,yLAEH,EACD,SAAU,CACRA,EAAK,QAAQ,IAAK,IAAK,CACrB,UAAW,CACnB,CAAO,EACD,CACE,UAAW,OACX,MAAO,oCACR,EAED,CACE,UAAW,SACX,MAAO,6mCACR,EAED,CACE,UAAW,SACX,MAAO,6FACR,EACDA,EAAK,QAAQA,EAAK,YAAa,CAC7B,MAAO,cACf,CAAO,CACF,CACL,CACC,CAED,OAAA6b,GAAiBD,sDCnCjB,SAASE,EAAW9b,EAAM,CACxB,MAAO,CACL,KAAM,aACN,QAAS,CAAC,QAAQ,EAClB,iBAAkB,GAClB,SAAU,yDACV,SAAU,CACRA,EAAK,kBACLA,EAAK,iBACLA,EAAK,kBACLA,EAAK,YACL,CACE,cAAe,qEACf,OAAQ,CACN,IAAK,SACL,YAAa,MACd,CACF,CACF,EACD,QAAS,IACb,CACC,CAED,OAAA+b,GAAiBD,sDCzBjB,SAASE,EAAIhc,EAAM,CACjB,MAAMrZ,EAAUqZ,EAAK,QACnB,cAAe,IACf,CACE,UAAW,EACZ,CACL,EAME,MAAO,CACL,KAAM,mBACN,QAAS,CACP,MACA,KACD,EACD,iBAAkB,GAClB,QAAS,OACT,SAAU,CACR,QACE,wFAEF,SACE,kfASH,EACD,SAAU,CACR,CACE,UAAW,WACX,MAAO,0BACR,EACD,CACE,UAAW,WACX,MAnCQ,CACZ,UAAW,SACX,MAAO,mDACP,UAAW,CACf,EA+BqB,MACb,IAAK,WACL,SAAU,CACRA,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAO,mDACnB,CAAW,EACDrZ,CACD,CACF,EACD,CACE,UAAW,SACX,MAAO,UACP,UAAW,CACZ,EACDA,CACD,CACL,CACC,CAED,OAAAs1B,GAAiBD,sDC7DjB,SAASE,EAASlc,EAAM,CAwBtB,MAAO,CACL,SAAU,WACV,SAAU,CACR,CACE,UAAW,UACX,MAAO,YACP,IAAK,KACL,WAAY,GACZ,UAAW,EACZ,EACD,CACE,UAAW,WACX,MAAO,qCACP,IAAK,KACL,WAAY,GACZ,QAAS,aACT,UAAW,EACZ,EACD,CACE,UAAW,WACX,MAAO,UACP,IAAK,KACL,WAAY,EACb,EA9CmB,CACtB,UAAW,SACX,MAAO,IACP,IAAK,GACT,EACwB,CACpB,UAAW,SACX,MAAO,IACP,IAAK,GACT,EAC4B,CACxB,UAAW,SACX,MAAO,eACP,IAAK,KACL,UAAW,CACf,EAC6B,CACzB,UAAW,SACX,MAAO,cACP,IAAK,SACL,UAAW,CACf,EA8BMA,EAAK,iBACN,CACL,CACC,CAED,OAAAmc,GAAiBD,sDCxDjB,SAASE,EAAIpc,EAAM,CACjB,MAAMgK,EAAU,CACd,UAAW,SACX,SAAU,CACRhK,EAAK,QAAQA,EAAK,kBAAmB,CACnC,MAAO,eACf,CAAO,EACD,CACE,MAAO,aACP,IAAK,IACL,SAAU,CAACA,EAAK,gBAAgB,CACjC,EACD,CACE,MAAO,UACP,IAAK,IACL,QAAS,GACV,CACF,CACL,EAEQ+J,EAAU,CACd,UAAW,SACX,SAAU,CACR,CACE,MAAO,gDACR,EACD,CACE,MAAO/J,EAAK,WACb,CACF,EACD,UAAW,CACf,EAEQ6N,EAAe,CACnB,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,eAAgB,8CACjB,EACD,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACZ,EACD,CACE,cAAe,UACf,IAAK,IACL,SAAU,CACR,eAAgB,SACjB,EACD,SAAU,CACR7N,EAAK,QAAQgK,EAAS,CACpB,UAAW,aACvB,CAAW,EACD,CACE,UAAW,cACX,MAAO,IACP,IAAK,IACL,QAAS,KACV,CACF,CACF,EACDA,EACAhK,EAAK,oBACLA,EAAK,oBACN,CACL,EAEQqc,EAAgB,CACpB,UAAW,WACX,MAAO,cACX,EAEQC,EAAc,CAClB,UAAW,eACX,MAAO,mBACX,EAEQC,EAAY,CAChB,UAAW,SACX,MAAO,8BACX,EAEQC,EAAoB,CACxB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACRzS,EACAsS,CACD,CACL,EAEQI,EAAW,CACf,UAAW,QACX,MAAO,6BACP,IAAK,QACL,YAAa,GACb,WAAY,EAChB,EAoBE,MAAO,CACL,KAAM,cACN,SAAU,GACV,SAAU,CArBU,CACpB,UAAW,QACX,MAAO,WACP,IAAK,MACL,UAAW,GACX,SAAU,CACRJ,EACAC,EACAC,EACAE,EACAD,EACAxc,EAAK,oBACLA,EAAK,qBACL+J,EACAC,CACD,CACL,EAOMqS,EACAC,EACAC,EACAE,EACAD,EACAxc,EAAK,oBACLA,EAAK,qBACL+J,EACAC,EACA6D,EACA,CACE,MAAO7N,EAAK,SAAW,KACvB,SAAU,EACX,CACF,CACL,CACC,CAED,OAAA0c,GAAiBN,sDC9IjB,SAASO,EAAK3c,EAAM,CAElB,MAAO,CACL,KAAM,OACN,QAAS,CAAC,KAAK,EACf,iBAAkB,GAClB,YAAa,MACb,SAAU,CACR,CACE,UAAW,eACX,MAAO,UACP,IAAK,KACL,QAAS,IACT,SAAU,CAAC,CACT,UAAW,OACX,MAAO,eACP,OAAQ,CACN,eAAgB,GAChB,UAAW,EACX,SAAU,CAACA,EAAK,iBAAiB,CAClC,CACX,CAAS,CACF,EACD,CACE,UAAW,oBACX,MAAO,KACP,IAAK,KACL,QAAS,IACT,SA3BsB,gDA4BvB,CACF,CACL,CACC,CAED,OAAA4c,GAAiBD,sDCrCjB,SAASE,EAAK7c,EAAM,CAClB,MAAMuK,EAAcvK,EAAK,QAAQ,OAAQ,MAAM,EAEzC8c,EAAkB,CACtB,UAAW,YACX,MAAO,mCACX,EAOQC,EAAe,CACnB,MAAO,IACP,IAAK,OACL,SAAU,CACRxS,EATwB,CAC1B,UAAW,OACX,MAAO,QACX,EAQM,CAEE,UAAW,SACX,SAAU,CACRvK,EAAK,iBACLA,EAAK,kBACL,CACE,MAAO,IACP,IAAK,GACN,CACF,CACF,CACF,CACL,EAEE,MAAO,CACL,KAAM,4BACN,QAAS,KACT,SAAU,CACRuK,EACAuS,EACAC,CACD,CACL,CACC,CAED,OAAAC,GAAiBH,sDC3CjB,SAASI,EAAOjd,EAAM,CACpB,MAAMkd,EAAkB,kCAClBC,EAAmB,mFACnBC,EAAkB,CACtB,SAAUF,EACV,QAAS,qMAGb,EACQhQ,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAUkQ,CACd,EACQlmH,EAAS,CACb,UAAW,SACX,MAAO,uGACP,UAAW,CACf,EACQmmH,EAAmB,aACnBC,EAAkB,CACtB,UAAW,SACX,MAAO,YAAmBD,EAAmB,IAC7C,SAAU,CACR,CACE,WAAY,GACZ,SAAU,CACR,CACE,SAAU,CACRrd,EAAK,iBACLkN,CACD,EACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,MAAO,IACP,IAAK,GACN,CACF,CACF,CACF,CACF,CACF,CACL,EAEQqQ,EAAe,CACnB,UAAW,SACX,MAAO,YAAmBF,EAAmB,IAC7C,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,MAAO,IACP,IAAK,GACN,CACF,CACL,EAEQ/lH,EAAS,CACb,UAAW,SACX,SAAU,CACR0oG,EAAK,iBACLkN,CACD,EACD,SAAU,CACR,CACE,MAAO,MACP,IAAK,KACN,EACD,CACE,MAAO,MACP,IAAK,KACN,EACD,CACE,MAAO,QACP,IAAK,MACL,SAAU,CAAE,CACb,EACD,CACE,MAAO,MACP,IAAK,IACL,SAAU,CAAE,CACb,EACD,CACE,MAAO,QACP,IAAK,MACL,SAAU,CAAE,CACb,EACD,CACE,MAAO,MACP,IAAK,IACL,SAAU,CAAE,CACb,EACD,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,CACF,CACL,EACQj2G,EAAW,CACf,UAAW,WACX,cAAe,oBACf,IAAK,OACL,SAAU,CACR+oG,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAOkd,EACP,WAAY,EACpB,CAAO,CACF,CACL,EACQxT,EAAQ1J,EAAK,QAAQ/oG,EAAU,CACnC,UAAW,QACX,cAAe,0CACf,IAAK,YACT,CAAG,EACKumH,EAA0B,CAC9BlmH,EACAimH,EACAD,EACAtd,EAAK,kBACL0J,EACAzyG,EACA,CACE,MAAO,IACR,EACD,CACE,UAAW,SACX,MAAO,cACP,SAAU,CACRK,EACA,CACE,MAAO6lH,CACR,CACF,EACD,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAOD,EAAkB,SACzB,UAAW,CACZ,EACDhmH,EACA,CACE,UAAW,WACX,MAAO,4BACR,EACD,CACE,MAAO,IACR,EACD,CACE,MAAO,IAAM8oG,EAAK,eAAiB,QACnC,SAAU,CACRA,EAAK,kBACL,CAGE,MAAO,sBACP,UAAW,EACX,SAAU,CAAC9oG,CAAM,CAClB,EACD,CACE,UAAW,SACX,QAAS,MACT,SAAU,CACR8oG,EAAK,iBACLkN,CACD,EACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,SACN,EACD,CACE,MAAO,QACP,IAAK,WACN,CACF,CACF,CACF,EACD,UAAW,CACZ,CACL,EACE,OAAAA,EAAM,SAAWsQ,EAEV,CACL,KAAM,SACN,SAAUJ,EACV,SAAUI,CACd,CACC,CAED,OAAAC,GAAiBR,sDC1PjB,SAASr8G,EAAIo/F,EAAM,CACjB,MAAMrZ,EAAU,CACd,SAAU,CACRqZ,EAAK,QAAQ,KAAM,GAAG,EACtBA,EAAK,QACH,MACA,MACA,CACE,SAAU,CAAC,MAAM,CAClB,CACF,CACF,CACL,EAEQxoG,EAAc,CAClB,UAAW,OACX,MAAO,kBACP,UAAW,CACf,EAEQs8G,EAAO,CACX,MAAO,MACP,IAAK,MACL,QAAS,IACT,SAAU,CACR,CACE,UAAW,OACX,MAAO,wCACR,EACDntB,CACD,CACL,EAEQ+2B,EAAS,CACb,MAAO,KACP,IAAK,KACL,SAAU5J,EAAK,QACnB,EAEQ6J,EAAY,CAChB,UAAW,SACX,MAAO,UACP,IAAK,IACL,QAAS,GACb,EAEE,MAAO,CACL,KAAM,MACN,SACE,8HAEF,SAAU,CAIR,CACE,cAAe,qBACf,IAAK,WACL,SAAU,yDACV,SAAU,CACR7J,EACAntB,CACD,EACD,QAAS,UACV,EACD,CACE,MAAO,SACP,IAAK,IACL,SAAU,qBACV,SAAU,CACRmtB,EACAntB,CACD,EACD,QAAS,UACV,EACD,CACE,MAAO,OACP,IAAK,IACL,SAAU,aACV,SAAU,CACRnvF,EACAs8G,EACA4J,EACA/2B,CACD,CACF,EACD,CACE,cAAe,sBACf,IAAK,IACL,SAAU,CACRqZ,EAAK,cACLrZ,CACD,CACF,EACD,CACE,MAAO,OACP,IAAK,IACL,SAAU,OACV,SAAU,CAACA,CAAO,CACnB,EAIDg3B,EACA3d,EAAK,kBACLA,EAAK,cACLxoG,EACAwoG,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAO,gBACf,CAAO,EACDrZ,EAEA,CACE,MAAO,OACR,CACF,EACD,QAAS,GACb,CACC,CAED,OAAAi3B,GAAiBh9G,sDCvHjB,SAASvtT,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIjB,CAMD,SAAS+uT,EAAU/uT,EAAI,CACrB,OAAOsoM,EAAO,MAAOtoM,EAAI,GAAG,CAC7B,CAMD,SAASsoM,KAAU1oR,EAAM,CAEvB,OADeA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAElD,CAWD,SAASwpa,EAAK7d,EAAM,CAClB,MAAM8d,EAAiB,qFACjBC,EAAgB,CACpB,QACE,uPAIF,SAAU,cACV,QACE,gBACN,EACQC,EAAY,CAChB,UAAW,SACX,MAAO,YACX,EACQC,EAAa,CACjB,MAAO,KACP,IAAK,GACT,EACQ1L,EAAgB,CACpBvS,EAAK,QACH,IACA,IACA,CACE,SAAU,CAAEge,CAAW,CACxB,CACF,EACDhe,EAAK,QACH,UACA,QACA,CACE,SAAU,CAAEge,CAAW,EACvB,UAAW,EACZ,CACF,EACDhe,EAAK,QAAQ,WAAY,MAAM,CACnC,EACQkN,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAU6Q,CACd,EACQzmH,EAAS,CACb,UAAW,SACX,SAAU,CACR0oG,EAAK,iBACLkN,CACD,EACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,cACP,IAAK,IACN,EACD,CACE,MAAO,cACP,IAAK,IACN,EACD,CACE,MAAO,cACP,IAAK,IACN,EACD,CACE,MAAO,aACP,IAAK,GACN,EACD,CACE,MAAO,cACP,IAAK,IACN,EACD,CACE,MAAO,aACP,IAAK,GACN,EACD,CACE,MAAO,aACP,IAAK,GACN,EACD,CACE,MAAO,cACP,IAAK,IACN,EAGD,CACE,MAAO,iBACR,EACD,CACE,MAAO,2BACR,EACD,CACE,MAAO,iCACR,EACD,CACE,MAAO,yDACR,EACD,CACE,MAAO,yBACR,EACD,CACE,MAAO,WACR,EACD,CACE,MAAO,wCACP,YAAa,GACb,SAAU,CACR,CACE,MAAO,WACR,EACDlN,EAAK,kBAAkB,CACrB,MAAO,QACP,IAAK,QACL,SAAU,CACR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EAAK,qBACLA,EAAK,QACH,UACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CAEE,MAAO,OACP,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAO,YACR,CACF,CACF,CACF,CACL,CAAG,EACK6W,EAAS,CACb,UAAW,SACX,MAAO,iBACP,SAAU,CAAE7W,EAAK,gBAAkB,CACvC,EACQ9oG,EAASyrH,EAAS,CACtB3iB,EAAK,mBACLA,EAAK,aACT,CAAG,EACK1oG,EAASqrH,EAAS,CACtB,CACE,MAAO,MACP,IAAK,KACN,EACD,CACE,MAAO,MACP,IAAK,KACN,EACD,CACE,MAAO,OACP,IAAK,OACL,UAAW,EACZ,EACD3iB,EAAK,iBACLA,EAAK,iBACN,EACD,CACE,UAAW,QACZ,CACH,EAEE,MAAO,CACL,KAAM,SACN,SAAU,CACR,SAAU,aACV,QAAS,kBACT,QACM,2TAOP,EACD,SAAU,CACRA,EAAK,QAAQ,CACX,OAAQ,SACR,UAAW,EACnB,CAAO,EACDrZ,EACArvF,EACAu/G,EACA3/G,EACA,CACE,UAAW,QACX,cAAe,6BACf,IAAK,KACL,QAAS,IACT,SAAU,CACR,CACE,cAAe,oBAChB,EACD8oG,EAAK,qBACN,CACF,EACD,CACE,UAAW,OACX,MAAO,aACP,UAAW,CACZ,EACD,CAEE,UAAW,OACX,MAAO5D,EAAW,SAClB,UAAW,CACZ,EACD,CAGE,MAAO,KACP,IAAK,IACL,UAAW,EACX,SAAU,CACRzV,EACArvF,EACAu/G,EACA3/G,EACA,MACD,CACF,EACD,CAEE,UAAW,SACX,MAAO,SAAYo2G,EAAUlR,EAAW,GAAG,EAC3C,aAAc,GACd,IAAKA,EAAW,IAChB,UAAW,CACZ,CACF,EACD,QAAS,OACb,CACC,CAED,OAAAymB,GAAiBD,sDCpKjB,SAASE,EAAK9iB,EAAM,CAClB,MAAO,CACL,KAAM,OACN,iBAAkB,GAClB,SAAU,CACR,CACE,UAAW,OACX,MAAO,gEACP,UAAW,EACZ,EAEDA,EAAK,QACH,wBACA,GACA,CACE,UAAW,CACZ,CACF,EACD,CACE,MAAO,qBACP,OAAQ,C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,IAAK,GACT,EAEQr2G,EAAc,CAClB,UAAW,OACX,MAAO,kBACP,UAAW,CACf,EAEQs8G,EAAO,CACX,MAAO,MACP,IAAK,MACL,QAAS,IACT,SAAU,CACRuQ,EACAxW,EACA,CACE,UAAW,OACX,MAAO,wCACR,EACD7N,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAO,eACf,CAAO,EACDrZ,CACD,CACL,EAEQ+2B,EAAS,CACb,MAAO,KACP,IAAK,KACL,SAAU5J,EAAK,QACnB,EAEE,MAAO,CACL,KAAM,UACN,QAAS,CAAC,IAAI,EACd,SACE,wOAIF,SAAU,CAER,CACE,cAAe,SACf,IAAK,QACL,SAAU,eACV,SAAU,CACRA,EACAntB,CACD,EACD,QAAS,UACV,EACD,CACE,MAAO,eACP,IAAK,IACL,SAAU,6BACV,SAAU,CACRmtB,EACAntB,CACD,EACD,QAAS,UACV,EACD,CACE,UAAW,QACX,MAAO,8BACP,IAAK,QACL,SAAU,8BACV,SAAU,CACRnvF,EACAs8G,EACAntB,CACD,CACF,EACD,CACE,UAAW,QACX,MAAO,0BACP,IAAK,IACL,SAAU,oCACV,SAAU,CACR09B,EACA7sH,EACAs8G,EACA4J,EACA/2B,CACD,CACF,EACD,CACE,cAAe,UACf,IAAK,IACL,SAAU,CACRnvF,EACAs8G,EACAntB,CACD,CACF,EACD,CACE,cAAe,sBACf,IAAK,IACL,SAAU,CACRqZ,EAAK,cACLrZ,CACD,CACF,EACD,CACE,MAAO,gBACP,IAAK,IACL,SAAU,uEAEV,SAAU,CACRnvF,EACAwoG,EAAK,kBACLrZ,CACD,CACF,EACD,CACE,UAAW,OACX,MAAO,kCACP,IAAK,GACN,EAED09B,EACAxW,EAKA7N,EAAK,kBACLA,EAAK,cACLxoG,EACAwoG,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAO,gBACf,CAAO,EACDrZ,EACA,CACE,MAAO,OACR,CACF,CACL,CACC,CAED,OAAA29B,GAAiBF,sDCpKjB,SAASG,EAAKvkB,EAAM,CAIlB,MAAO,CACL,KAAM,OACN,QAAS,CAAC,IAAI,EACd,SAAU,CACR,QAAS,8OANY,4CAUrB,SACE,aACF,QACE,mBACH,EACD,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACRA,EAAK,iBACL,CACE,UAAW,QACX,MAAO,SACP,IAAK,KACN,EACD,CACE,UAAW,QACX,MAAO,MACP,IAAK,MACN,CACF,CACF,EACDA,EAAK,kBACLA,EAAK,oBACLA,EAAK,qBACLA,EAAK,cACL,CACE,UAAW,OACX,MAAO,KACP,IAAK,GACN,EACD,CACE,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,eAAgB,0BACjB,CACF,EACD,CACE,UAAW,OACX,MAAO,SACP,IAAK,sBACL,aAAc,GACd,WAAY,GACZ,UAAW,CACZ,EACD,CACE,UAAW,OACX,MAAO,SACP,IAAK,MACL,aAAc,GACd,WAAY,EACb,EACD,CACE,UAAW,OACX,MAAO,QACP,IAAK,MACL,aAAc,GACd,WAAY,EACb,EACD,CACE,UAAW,QACX,cAAe,OACf,IAAK,MACL,SAAU,CAACA,EAAK,UAAU,CAC3B,EACD,CACE,UAAW,QACX,cAAe,WACf,IAAK,SACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,MACP,IAAK,MACL,aAAc,GACd,WAAY,EACb,EACD,CACE,UAAW,OACX,MAAO,SACP,IAAK,MACL,aAAc,GACd,WAAY,EACb,EACD,CACE,UAAW,OACX,MAAO,OACP,IAAK,MACL,aAAc,GACd,WAAY,EACb,EACDA,EAAK,UACN,EACD,SAAU,CACR,QAAS,kBACV,CACF,EACD,CACE,UAAW,QACX,MAAO,yBACP,IAAK,SACL,WAAY,GACZ,SAAU,kBACV,SAAU,CACR,CACE,UAAW,UACX,MAAO,4BACP,SAAU,qBACV,SAAU,CACR,CACE,UAAW,OACX,MAAOA,EAAK,SACZ,UAAW,CACZ,CACF,CACF,EACDA,EAAK,UACN,CACF,EACD,CACE,UAAW,WACX,cAAe,WACf,IAAK,MACL,WAAY,GACZ,QAAS,MACT,SAAU,CAACA,EAAK,UAAU,CAC3B,CACF,EACD,QAAS,KACb,CACC,CAED,OAAAwkB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V,SAAU,CACR,CACE,MAAOjN,EAAK,oBAAsB,UAAW,YAAa,GAC1D,UAAW,EACX,SAAU,CAACA,EAAK,qBAAqB,CACtC,EACD,CACE,UAAW,SACX,MAAO,KAAM,IAAK,KAClB,SAAUiN,EACV,UAAW,EACX,SAAU,CACRka,EACAnnB,EAAK,iBACLA,EAAK,kBACL9oG,EACA8oG,EAAK,oBACN,CACF,EACDA,EAAK,oBACLA,EAAK,oBACN,CACF,EACD9oG,EACAiwH,CACD,CACL,CACC,CAED,OAAAC,GAAiBJ,sDCpLjB,MAAM5qB,EAAW,2BACX6Q,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,SACF,EACMqF,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,UACF,EAEMiC,EAAQ,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,QACF,EAEMC,EAAc,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,UACF,EAEMC,EAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,UACF,EAEMC,EAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,QACF,EAEMC,EAAY,CAAA,EAAG,OACnBF,EACAC,EACAH,EACAC,CACF,EAWA,SAASnha,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIjB,CAMD,SAAS+uT,EAAU/uT,EAAI,CACrB,OAAOsoM,EAAO,MAAOtoM,EAAI,GAAG,CAC7B,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AAkB,CACtB,IAAK,IACL,eAAgB,GAChB,WAAY,GACZ,SAAUjU,EACV,SAAUjC,CACd,EACQn7G,EAAS,CACb,MAAO,KACP,IAAK,KACL,SAAU,CACR,CACE,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,CAAC6oG,EAAK,gBAAgB,EAChC,QAAS,KACV,EACDA,EAAK,QAAQwoB,EAAiB,CAC5B,MAAO,GACf,CAAO,CACP,EAAM,OAAOD,CAAgB,EACzB,QAAS,KACb,EACQ7C,EAAQ,CACZ,MAAO,MACP,IAAK,MACL,SAAU,CAAC1lB,EAAK,QAAQwoB,CAAe,CAAC,EACxC,QAAS,KACb,EACE,OAAAjU,EAAM,KAAKp9G,EAAQuuH,CAAK,EACxB6C,EAAiB,QAAQ,SAASrkT,EAAM,CACtCqwS,EAAM,KAAKrwS,CAAI,CACnB,CAAG,EACM,CACL,KAAM,OACN,SAAUqwS,EACV,SAAUjC,EACV,QAAS,KACb,CACC,CAED,OAAAmW,GAAiBnzX,sDCtDjB,SAASozX,EAAM1oB,EAAM,CAOnB,IAAI2oB,EAAmB,uDAYnBC,EAAe,CACjB,aACA,QACA,QACA,QACA,QACA,QACA,WACA,KACA,OACA,SACA,MACA,SACA,QACA,UACA,MACA,WACA,SACA,KACA,SACA,KACA,MACA,MACA,QACA,QACA,SACA,QACA,SACA,OACA,MACA,QACA,QACA,OACJ,EAiBMC,EAAe,CACjB,OACA,SACA,aACA,aACA,MACA,MACA,QACA,QACA,QACA,gBACA,YACA,YACA,MACA,QACA,QACA,QACA,eACA,YACA,YACA,gBACA,eACA,uBACA,qBACA,cACA,UACA,YACA,UACA,QACA,KACA,UACA,UACA,KACA,SACA,QACA,SACA,OACA,QACA,IACA,GACJ,EAiBMC,EAAgB,CAClB,gBACA,kBACA,eACA,eACA,kBACA,gBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,mBACA,iBACA,MACA,gBACA,QACA,iBACA,WACA,SACA,WACA,YACA,SACA,YACA,OACA,cACA,oBACA,iBACA,mBACA,QACA,UACA,SACA,UACA,OACA,OACA,YACA,QACA,YACA,MACA,QACA,UACA,aACA,aACA,aACA,qBACA,YACA,aACA,SACA,UACA,WACA,UACA,SACA,QACA,aACA,SACA,aACA,UACA,QACA,WACA,WACA,WACA,aACA,cACA,gBACA,cACA,OACA,oBACA,OACA,cACA,cACA,WACA,OACA,iBACA,YACA,qBACA,OACA,UACA,UACA,UACA,WACA,YACA,OACA,KACA,WACA,YACA,WACA,SACA,iBACA,cACA,aACA,eACA,YACA,MACA,SACA,QACA,QACA,QACA,OACA,UACA,qBACA,wBACA,aACA,WACA,WACA,iBACA,gBACA,YACA,OACA,SACA,SACA,cACA,UACA,mBACA,SACA,SACA,aACA,UACA,SACA,eACA,mBACA,gBACA,OACA,mBACA,oBACA,OACA,yBACA,MACA,YACA,WACA,QACA,sBACA,OACA,gBACA,MACA,QACA,aACA,eACA,oBACA,MACA,SACA,OACA,qBACA,YACA,eACA,eACA,gBACA,kBACA,gBACA,SACA,mBACA,WACA,YACA,qBACA,SACA,cACA,OACA,sBACA,OACA,cACA,QACA,QACA,OACA,YACA,UACA,OACA,UACA,SACA,SACA,SACA,QACA,mBACA,oBACA,gBACA,gBACA,QACA,WACA,YACA,WACA,MACA,SACA,aACA,WACA,SACA,gBACA,cACA,SACJ,EAEM7b,EAAW,CACb,SAAU0b,EACV,QAASC,EACT,QAASC,EACT,SAAUC,CACd,EAGMC,EAAU,CACZ,SAAU9b,EAAU,QAAS,KACjC,EAGM/1G,EAAS,CACX,UAAW,SAQX,MAAO,qIACP,UAAW,CACf,EAEMyoH,EAAO,CACT,UAAW,SACX,MAAO,4BACX,EAEMqJ,EAAgB,CAClB,UAAW,QACX,MAAO,OAAQ,IAAK,KACpB,SAAU/b,CACd,EAEMgc,EAAwB,CAC1B,UAAW,WACX,MAAO,MAAQN,CACnB,EAGMrxH,EAAS,CACX,UAAW,SACX,SAAU,CAAC0oG,EAAK,iBAAkBgpB,EAAeC,CAAqB,EACtE,SAAU,CACR,CAAE,MAAO,SAAU,IAAK,SAAU,UAAW,EAAI,EACjD,CAAE,MAAO,OAAQ,IAAK,MAAQ,CAC/B,CACL,EAEMC,EAAU,CACZ,UAAW,SACX,SAAU,CAAClpB,EAAK,iBAAkBgpB,EAAeC,CAAqB,EACtE,MAAO,IAAK,IAAK,GACrB,EAEME,EAAY,CACd,UAAW,OACX,MAAO,IAAMR,CACjB,EAEMhiC,EAAU,CACZ,UAAW,UACX,SAAU,CACR,CAAE,MAAO,KAAM,IAAK,KAAM,UAAW,EAAI,EACzC,CAAE,MAAO,IAAK,IAAK,GAAK,CACzB,CACL,EAEE,OAAAoiC,EAAQ,KAAO,QACfA,EAAQ,SAAW,CACjB7xH,EACAyoH,EACAroH,EACA4xH,EACAC,EACAxiC,EACAqZ,EAAK,kBACL,CACE,UAAW,UACX,MACE,6DACH,EACD,CAAC,MAAO,IAAI,CAChB,EACEgpB,EAAc,SAAWD,EAAQ,SAE1BA,CACR,CAED,OAAAK,GAAiBV,sDCvYjB,SAASW,EAAUrpB,EAAM,CACvB,MAAO,CACL,KAAM,aACN,SAAU,CACR,CACE,UAAW,OACX,MAAO,UACP,UAAW,GACX,OAAQ,CAGN,IAAK,cACL,YAAa,OAChB,EAMD,QAAS,CAAC,WAAW,CACpB,CACF,CACF,CACF,CAED,OAAAspB,GAAiBD,sDChDjB,IAAIzC,EAAgB,kBAChBC,EAAO,OAAOD,CAAa,IAC3BE,EAAY,8BACZC,EAAU,CACZ,UAAW,SACX,SAAU,CAGR,CAAE,MAAO,QAAQH,CAAa,MAAMC,CAAI,YAAYA,CAAI,eACzCD,CAAa,aAAe,EAE3C,CAAE,MAAO,OAAOA,CAAa,MAAMC,CAAI,8BAAgC,EACvE,CAAE,MAAO,IAAIA,CAAI,aAAe,EAChC,CAAE,MAAO,OAAOD,CAAa,YAAc,EAG3C,CAAE,MAAO,aAAaE,CAAS,UAAUA,CAAS,SAASA,CAAS,eACrDF,CAAa,aAAe,EAG3C,CAAE,MAAO,gCAAkC,EAG3C,CAAE,MAAO,YAAYE,CAAS,WAAa,EAG3C,CAAE,MAAO,wBAA0B,EAGnC,CAAE,MAAO,+BAAiC,CAC3C,EACD,UAAW,CACb,EAUA,SAASyC,EAAOvpB,EAAM,CACpB,MAAMiN,EAAW,CACf,QACE,wYAKF,SACE,kEACF,QACE,iBACN,EACQuc,EAAsB,CAC1B,UAAW,UACX,MAAO,mCACP,OAAQ,CACN,SAAU,CACR,CACE,UAAW,SACX,MAAO,MACR,CACF,CACF,CACL,EACQC,EAAQ,CACZ,UAAW,SACX,MAAOzpB,EAAK,oBAAsB,GACtC,EAGQkN,EAAQ,CACZ,UAAW,QACX,MAAO,OACP,IAAK,KACL,SAAU,CAAElN,EAAK,aAAe,CACpC,EACQsQ,EAAW,CACf,UAAW,WACX,MAAO,MAAQtQ,EAAK,mBACxB,EACQ1oG,EAAS,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,IAAK,cACL,SAAU,CACRg5G,EACApD,CACD,CACF,EAID,CACE,MAAO,IACP,IAAK,IACL,QAAS,KACT,SAAU,CAAElN,EAAK,gBAAkB,CACpC,EACD,CACE,MAAO,IACP,IAAK,IACL,QAAS,KACT,SAAU,CACRA,EAAK,iBACLsQ,EACApD,CACD,CACF,CACF,CACL,EACEA,EAAM,SAAS,KAAK51G,CAAM,EAE1B,MAAMoyH,EAAsB,CAC1B,UAAW,OACX,MAAO,gFAAkF1pB,EAAK,oBAAsB,IACxH,EACQmnB,EAAa,CACjB,UAAW,OACX,MAAO,IAAMnnB,EAAK,oBAClB,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,SAAU,CACRA,EAAK,QAAQ1oG,EAAQ,CACnB,UAAW,aACvB,CAAW,CACF,CACF,CACF,CACL,EAKQqyH,EAAqB5C,EACrB6C,EAAwB5pB,EAAK,QACjC,OAAQ,OACR,CACE,SAAU,CAAEA,EAAK,oBAAsB,CACxC,CACL,EACQ6pB,EAAoB,CACxB,SAAU,CACR,CACE,UAAW,OACX,MAAO7pB,EAAK,mBACb,EACD,CACE,MAAO,KACP,IAAK,KACL,SAAU,CAAE,CACb,CACF,CACL,EACQ8pB,EAAqBD,EAC3B,OAAAC,EAAmB,SAAS,CAAC,EAAE,SAAW,CAAED,CAAiB,EAC7DA,EAAkB,SAAS,CAAC,EAAE,SAAW,CAAEC,CAAkB,EAEtD,CACL,KAAM,SACN,QAAS,CAAE,KAAM,KAAO,EACxB,SAAU7c,EACV,SAAU,CACRjN,EAAK,QACH,UACA,OACA,CACE,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,MAAO,YACR,CACF,CACF,CACF,EACDA,EAAK,oBACL4pB,EACAJ,EACAC,EACAC,EACAvC,EACA,CACE,UAAW,WACX,cAAe,MACf,IAAK,QACL,YAAa,GACb,WAAY,GACZ,SAAUla,EACV,UAAW,EACX,SAAU,CACR,CACE,MAAOjN,EAAK,oBAAsB,UAClC,YAAa,GACb,UAAW,EACX,SAAU,CAAEA,EAAK,qBAAuB,CACzC,EACD,CACE,UAAW,OACX,MAAO,IACP,IAAK,IACL,SAAU,UACV,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,WAAY,GACZ,SAAUiN,EACV,UAAW,EACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,SACL,eAAgB,GAChB,SAAU,CACR4c,EACA7pB,EAAK,oBACL4pB,CACD,EACD,UAAW,CACZ,EACD5pB,EAAK,oBACL4pB,EACAF,EACAvC,EACA7vH,EACA0oG,EAAK,aACN,CACF,EACD4pB,CACD,CACF,EACD,CACE,UAAW,QACX,cAAe,wBACf,IAAK,WACL,WAAY,GACZ,QAAS,qBACT,SAAU,CACR,CACE,cAAe,+CAChB,EACD5pB,EAAK,sBACL,CACE,UAAW,OACX,MAAO,IACP,IAAK,IACL,aAAc,GACd,WAAY,GACZ,UAAW,CACZ,EACD,CACE,UAAW,OACX,MAAO,UACP,IAAK,WACL,aAAc,GACd,UAAW,EACZ,EACD0pB,EACAvC,CACD,CACF,EACD7vH,EACA,CACE,UAAW,OACX,MAAO,kBACP,IAAK,IACL,QAAS;AAAA,CACV,EACDqyH,CACD,CACL,CACC,CAED,OAAAI,GAAiBR,sDCpRjB,SAASS,EAAMhqB,EAAM,CACnB,MAAMiqB,EAAiB,mBACjBC,EAAiB,yBACjBC,EAAiB,WACjBC,EAAiB,CACrB,SAAUH,EAAiB,WAC3B,QACE,uGAEF,SACE,yMAGF,QACE,yhCAiBN,EACQI,EAAerqB,EAAK,QACxB,OACA,MACA,CACE,UAAW,CACZ,CACL,EACQsqB,EAAkB,CACtB,UAAW,OACX,MAAO,kBACP,OAAQ,CACN,IAAK,mBACL,UAAW,GACX,SAAU,CAACD,CAAY,CACxB,CACL,EACQE,EAAc,CAClB,UAAW,OACX,MAAO,iBAAmBL,CAC9B,EACQM,EAAmB,CACvB,UAAW,SACX,MAAO,IAAOP,EAAiB,GACnC,EACQQ,EAAa,CACjBzqB,EAAK,oBACLA,EAAK,qBACLA,EAAK,QAAQA,EAAK,cAAe,CAC/B,MAAOA,EAAK,YAAc,sBAChC,CAAK,EACDA,EAAK,QAAQA,EAAK,iBAAkB,CAClC,QAAS,IACf,CAAK,EACDA,EAAK,QAAQA,EAAK,kBAAmB,CACnC,QAAS,IACf,CAAK,EACD,CACE,UAAW,SACX,MAAO,IACP,IAAK,GACN,EACD,CACE,SAAU,CACR,CACE,MAAO,OAASiqB,CACjB,EACD,CACE,MAAO,IACP,IAAK,OACL,QAAS,KACV,CACF,CACF,EACD,CACE,UAAW,OACX,MAAO,SACP,IAAKA,EACL,QAAS,KACV,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,gBAAkBA,EACzB,UAAW,CACZ,EACD,CACE,MAAO,aACR,CACF,CACF,EACD,CACE,MAAO,aACP,UAAW,EACX,SAAU,CAACO,CAAgB,CAC5B,EACD,CACE,UAAW,QACX,cAAe,SACf,UAAW,GACX,IAAK,SACL,SAAU,CACRxqB,EAAK,QAAQA,EAAK,WAAY,CAC5B,MAAOiqB,EAAiB,wBAClC,CAAS,CACF,CACF,CACL,EACE,MAAO,CACL,KAAM,QACN,QAAS,CACP,KACA,aACD,EACD,iBAAkB,GAClB,SAAUG,EACV,SAAU,CACR,CACE,UAAW,OACX,MAAOD,EACP,UAAW,EACX,OAAQ,CACN,IAAK,OAASD,EACd,UAAW,GACX,UAAW,EACX,SAAU,CAACG,CAAY,CACxB,CACF,EACDC,EACAC,EACA,CACE,UAAW,OACX,MAAO,wBACP,OAAQ,CACN,IAAK,4BACL,SAAUH,EACV,SAAU,CACR,CACE,UAAW,OACX,MAAOD,EACP,UAAW,EACX,OAAQ,CACN,IAAK,mBAAqBD,EAC1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N,QAAS,CAAC,KAAK,EACf,SAAU,CACR,GAAGE,EACH,GAAGjB,CACJ,CACL,CACC,CAED,OAAAkB,GAAiB5B,sDC7QjB,SAAS6B,EAAKxsB,EAAM,CAClB,MAAO,CACL,KAAM,OACN,SAAU,CACR,CACE,UAAW,YACX,MAAO,MACP,IAAK,KACL,WAAY,GACZ,OAAQ,CACN,IAAK,IACL,UAAW,CACZ,EACD,UAAW,EACZ,EACD,CACE,UAAW,YACX,MAAO,OACP,IAAK,KACL,WAAY,GACZ,OAAQ,CACN,IAAK,IACL,UAAW,CACZ,CACF,EACD,CACE,UAAW,UACX,MAAO,KACP,IAAK,GACN,EACDA,EAAK,iBACN,CACL,CACC,CAED,OAAAysB,GAAiBD,sDCnCjB,SAASE,EAAK1sB,EAAM,CAClB,MAAO,CACL,KAAM,OACN,SAAU,CACR,CACE,UAAW,WACX,MAAO,qBACP,IAAK,MACL,YAAa,GACb,WAAY,GACZ,SAAU,CACR,CACE,UAAW,UACX,MAAO,IACR,EACD,CACE,UAAW,QACX,MAAO,wBACR,EACD,CACE,UAAW,SACX,MAAO,MACP,IAAK,MACL,WAAY,GACZ,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,GACN,EACD,CACE,UAAW,WACX,MAAO,wBACR,CACF,CACF,CACF,CACF,CACF,CACL,CACC,CAED,OAAA2sB,GAAiBD,sDChDjB,MAAM7uB,EAASmC,IACN,CACL,UAAW,CACT,UAAW,OACX,MAAO,YACR,EACD,SAAU,CACR,UAAW,SACX,MAAO,kCACR,EACD,wBAAyB,CACvB,UAAW,gBACX,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACRA,EAAK,iBACLA,EAAK,iBACN,CACF,CACL,GAGMoY,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEMC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,YACF,EAGMC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF,EAGMC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,gBACF,EAEMC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,SAGD,EAAC,QAAO,EAGHoU,EAAmBtU,EAAe,OAAOC,CAAe,EAW9D,SAASsU,EAAK7sB,EAAM,CAClB,MAAMyY,EAAQ5a,EAAMmC,CAAI,EAClB8sB,EAAqBF,EAErBjU,EAAe,kBACfvc,EAAW,UACX2wB,EAAkB,IAAM3wB,EAAW,QAAUA,EAAW,OAIxD4wB,EAAQ,CAAE,EAAQC,EAAc,CAAA,EAEhCC,EAAc,SAASx4a,EAAG,CAC9B,MAAO,CAEL,UAAW,SACX,MAAO,KAAOA,EAAI,MAAQA,CAChC,CACA,EAEQy4a,EAAa,SAASrya,EAAMusY,EAAOub,EAAW,CAClD,MAAO,CACL,UAAW9nZ,EACX,MAAOusY,EACP,UAAWub,CACjB,CACA,EAEQwqB,EAAc,CAClB,SAAU,UACV,QAASzU,EACT,UAAWN,EAAe,KAAK,GAAG,CACtC,EAEQgV,EAAc,CAElB,MAAO,MACP,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CAC3C,SAAU,CACR,CACE,MAAO,+BACR,EACD,CACE,MAAO,kBACR,CACF,CACL,CAAG,EACK0uB,EAAS1uB,EAAK,QAAQA,EAAK,WAAY,CAC3C,MAAO,0BACX,CAAG,EACD,MAAO,CACL,KAAM,WACN,iBAAkB,GAClB,SAAU,CACR,QACE,4/BAYF,QACE,gfAMF,SACE,k4KAoDH,EACD,SAAU,CACRsQ,EACA,CACE,UAAW,UACX,MAAO,gBACR,EACD,CACE,UAAW,WACX,cAAe,WACf,IAAK,IACL,SAAU,CACRA,EACAoe,EACA1uB,EAAK,iBACLA,EAAK,kBACLA,EAAK,mBACLA,EAAK,cACLyuB,CACD,CACF,EACD,CACE,UAAW,WACX,MAAO,aACP,IAAK,IACL,SAAU,MACV,SAAU,CACRC,EACAD,CACD,EACD,UAAW,CACZ,EACD,CACE,cAAe,aACf,IAAK,IACL,SAAU,CACRne,EACAoe,EACA1uB,EAAK,iBACLA,EAAK,kBACLA,EAAK,mBACLA,EAAK,cACLyuB,CACD,CACF,EACD,CACE,UAAW,OACX,SAAU,CACR,CACE,MAAO,wBACP,UAAW,EACZ,EACD,CACE,MAAO,MACR,EACD,CACE,MAAO,MACR,CACF,CACF,EACDzuB,EAAK,iBACLA,EAAK,kBACLA,EAAK,mBACLA,EAAK,cACLyuB,CACN,EAAM,OAAOlc,CAAa,EACtB,QAAS,kBACb,CACC,CAED,OAAAoc,GAAiBH,sDC5LjB,MAAMvhB,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,SACF,EACMqF,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,UACF,EAEMiC,EAAQ,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,QACF,EAEMC,EAAc,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,UACF,EAEMC,EAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,UACF,EAEMC,EAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,QACF,EAEMC,EAAY,CAAA,EAAG,OACnBF,EACAC,EACAH,EACAC,CACF,EAYA,SAASoa,EAAW5uB,EAAM,CACxB,MAAM6uB,EAAuB,CAC3B,MACA,OACJ,EACQC,EAAsB,CAC1B,MACA,KACA,KACA,MACA,KACA,OACA,MACJ,EACQC,EAAsB,CAC1B,OACA,SACA,QACA,OACA,KACA,KACA,OACA,MACA,KACA,KACA,OACA,MACA,KACA,OACA,YACA,OACA,KACA,MACA,cACA,OACA,OACA,SACA,OACA,MACA,YACA,YACA,UACA,SACA,WACJ,EACQ5Z,EAAa,CACjB,QAASlI,EAAS,OAAO8hB,CAAmB,EAC5C,QAASzc,EAAS,OAAOwc,CAAmB,EAC5C,SAAUna,EAAU,OAAOka,CAAoB,CACnD,EACQzZ,EAAc,8CACdC,EAAQrV,EAAK,QAAQA,EAAK,WAAY,CAC1C,MAAOoV,CACX,CAAG,EACKlI,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAUiI,CACd,EACQ6Z,EAAe,CACnB,UAAW,QACX,MAAO,cACP,IAAK,oCACL,SAAU7Z,CACd,EACQlC,EAAc,CAClBjT,EAAK,mBACL,CACE,UAAW,SACX,MAAO,0GACP,UAAW,EACX,OAAQ,CACN,IAAK,WACL,UAAW,CACZ,CACF,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,IAAK,MACL,SAAU,CAACA,EAAK,gBAAgB,CACjC,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAACA,EAAK,gBAAgB,CACjC,EACD,CACE,MAAO,MACP,IAAK,MACL,SAAU,CACRA,EAAK,iBACLkN,EACA8hB,CACD,CACF,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACRhvB,EAAK,iBACLkN,EACA8hB,CACD,CACF,EACD,CACE,MAAO,KACP,IAAK,SACL,WAAY,EACb,CACF,CACF,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,KACP,IAAK,WACL,SAAU,CACR9hB,EACAlN,EAAK,iBACN,CACF,EACD,CAGE,MAAO,yCACR,CACF,CACF,EACD,CACE,MAAO,IAAMoV,CACd,EACD,CACE,MAAO,KACP,IAAK,KACL,aAAc,GACd,WAAY,GACZ,YAAa,YACd,CACL,EACElI,EAAM,SAAW+F,EAEjB,MAAMvG,EAAS,CACb,UAAW,SACX,MAAO,MACP,YAAa,GAGb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,SAAUyI,EACV,SAAU,CAAC,MAAM,EAAE,OAAOlC,CAAW,CACtC,CACF,CACL,EAEQuN,EAAU,CACd,MAAO,yBACX,EAEE,MAAO,CACL,KAAM,aACN,QAAS,CAAC,IAAI,EACd,SAAUrL,EACV,QAAS,OACT,SAAUlC,EAAY,OAAO,CAC3BjT,EAAK,QAAQ,SAAU,QAAQ,EAC/BA,EAAK,kBACLwgB,EACA,CACE,UAAW,WACX,SAAU,CACRnL,EACA3I,CACD,EACD,YAAa,GACb,SAAU,CACR,CACE,MAAO,IAAM0I,EAAc,6CAC3B,IAAK,QACN,EACD,CACE,MAAO,IAAMA,EAAc,uDAC3B,IAAK,gBACN,EACD,CACE,MAAO,IAAMA,EAAc,uDAC3B,IAAK,kBACN,CACF,CACF,EACD,CACE,UAAW,QACX,cAAe,QACf,IAAK,IACL,QAAS,YACT,SAAU,CACR,CACE,cAAe,UACf,eAAgB,GAChB,QAAS,YACT,SAAU,CAACC,CAAK,CACjB,EACDA,CACD,CACF,EACD,CACE,MAAOD,EAAc,IACrB,IAAK,IACL,YAAa,GACb,UAAW,GACX,UAAW,CACZ,CACP,CAAK,CACL,CACC,CAED,OAAA6Z,GAAiBL,sDC5WjB,SAASv7a,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA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,CACE,UAAW,SACX,MAAO8vB,EACP,IAAKC,EACL,SAAU,CAACC,CAAa,EACxB,UAAW,CACZ,CACP,CAAK,CACL,CACC,CAED,OAAAC,GAAiBJ,sDCzEjB,SAASK,EAASlwB,EAAM,CAEtB,MAAMsQ,EAAW,CACf,UAAW,WACX,SAAU,CACR,CACE,MAAO,SAAWtQ,EAAK,oBAAsB,MAC7C,SAAU,CAAEA,EAAK,gBAAkB,CACpC,EACD,CACE,MAAO,gBACR,CACF,CACL,EAEQmR,EAAe,CACnB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACRnR,EAAK,iBACLsQ,CACD,CACL,EAEQ6f,EAAO,CACX,UAAW,WACX,MAAO,eACP,IAAK,KACL,SAAU,CACR,SACE,gPAIH,EACD,SAAU,CAAE7f,CAAU,CAC1B,EAEQoQ,EAAa,CACjB,MAAO,IAAM1gB,EAAK,oBAAsB,iBAC5C,EAEQmK,EAAO,CACX,UAAW,OACX,MAAO,YACP,IAAK,IACL,SAAU,CACR,SAAU,UACV,eAAgB,QACjB,CACL,EAEQimB,EAAS,CACb,UAAW,UACX,MAAO,WACP,IAAK,IACL,SAAU,CAAE9f,CAAU,CAC1B,EACE,MAAO,CACL,KAAM,WACN,QAAS,CACP,KACA,MACA,MACD,EACD,SAAU,CACR,SAAU,SACV,QAAS,2HAEV,EACD,SAAU,CACRtQ,EAAK,kBACLsQ,EACAa,EACAgf,EACAzP,EACAvW,EACAimB,CACD,CACL,CACC,CAED,OAAAC,GAAiBH,sDC3FjB,MAAMI,EAAiB,CACrB,cACA,eACA,QACA,eACA,eACA,qBACA,QACA,MACA,SACA,aACA,WACA,sBACA,8BACA,uBACA,kBACA,mBACA,kBACA,oBACA,oBACA,eACA,iBACA,sBACA,iBACA,aACA,WACA,eACA,cACA,aACA,gBACA,uBACA,WACA,SACA,uBACA,6BACA,aACA,mBACA,yBACA,cACA,gBACA,gBACA,WACA,QACA,mBACA,WACA,iBACA,gBACA,kBACA,oBACA,gBACA,uBACA,2BACA,6BACA,kBACA,cACA,wBACA,kBACA,QACA,wBACA,mBACA,eACA,cACA,kBACA,qBACA,SACA,cACA,aACA,SACA,cACA,aACA,oBACA,kBACA,6BACA,sBACA,4BACA,uBACA,iBACA,qBACA,aACA,iBACA,YACA,kBACA,iBACA,MACA,oBACA,8BACA,kCACA,oBACA,wBACA,eACA,kBACA,kBACA,mBACA,4BACA,oBACA,yBACA,yBACA,qBACA,UACA,WACA,kBACA,iBACA,eACA,iBACA,uBACA,mBACA,wBACA,eACA,iBACA,eACA,oBACA,gBACA,WACA,cACA,cACA,gBACA,mBACA,iBACA,iBACA,MACA,sBACA,SACA,gBACA,eACA,YACA,cACA,cACA,eACA,UACA,uBACA,4BACA,qBACA,uBACA,gBACA,uBACA,mBACA,mBACA,qBACA,WACA,cACA,qBACA,mBACA,WACA,aACA,mBACA,iBACA,kBACA,kBACA,UACA,aACA,UACA,mBACA,kBACA,0BACA,YACA,eACA,uBACA,gBACA,uBACA,WACA,WACA,YACA,UACA,QACA,kBACA,cACA,aACA,qBACA,kBACA,WACA,SACA,cACA,cACA,WACA,QACA,aACA,SACA,UACA,SACA,UACA,SACA,UACA,eACA,cACA,YACA,SACA,UACA,SACA,qBACA,UACA,SACA,UACA,OACA,MACA,SACA,SACA,iBACA,eACA,0BACA,cACA,SACA,gBACA,YACA,QACA,kBACA,aACA,cACA,eACA,YACA,WACA,YACA,SACA,gBACA,eACA,aACA,SACA,QACA,aACA,WACA,aACA,cACA,MACA,YACA,aACA,aACA,SACA,aACA,cACA,WACA,qBACA,cACA,mBACA,SACA,cACA,cACA,oBACA,iBACA,eACA,oBACA,sBACA,WACA,cACA,mBACA,aACA,wBACA,kBACA,uBACA,oBACA,yBACA,sBACA,iBACA,sBACA,0BACA,oBACA,wBACA,kBACA,gBACA,eACA,yBACA,oBACA,OACA,kBACA,YACA,yBACA,WACA,QACA,iBACA,aACA,QACA,eACA,gBACA,wBACA,gBACA,eACA,yBACA,sBACA,kBACA,gBACA,uBACA,YACA,aACA,cACA,cACA,gBACA,gBACA,YACA,sBACA,iBACA,gBACA,mBACA,cACA,iBACA,iBACA,YACA,aACA,cACA,yBACA,eACA,gBACA,oBACA,iBACA,oBACA,eACA,WACA,WACA,iBACA,aACA,kBACA,YACA,YACA,SACA,cACA,eACA,gBACA,cACA,eACA,kBACA,mBACA,8BACA,aACA,YACA,cACA,eACA,mBACA,cACA,YACA,YACA,sBACA,+BACA,eACA,iBACA,uBACA,aACA,eACA,yBACA,WACA,sBACA,aACA,qBACA,uBACA,aACA,qBACA,kBACA,eACA,YACA,YACA,qBACA,2BACA,uBACA,oBACA,mBACA,sBACA,gBACA,aACA,oBACA,cACA,aACA,cACA,mBACA,iBACA,iBACA,OACA,WACA,YACA,aACA,YACA,kBACA,OACA,oBACA,OACA,aACA,uBACA,0BACA,YACA,mBACA,WACA,OACA,OACA,iBACA,iBACA,kCACA,WACA,aACA,eACA,mBACA,sBACA,YACA,2BACA,UACA,YACA,aACA,qBACA,iBACA,aACA,aACA,WACA,WACA,mBACA,YACA,sBACA,0BACA,YACA,oBACA,uBACA,uBACA,6BACA,uBACA,6BACA,UACA,uBACA,OACA,SACA,QACA,oBACA,iCACA,eACA,QACA,QACA,QACA,sBACA,qBACA,+BACA,gCACA,aACA,wBACA,6BACA,mBACA,iBACA,oBACA,UACA,UACA,cACA,UACA,UACA,cACA,OACA,2BACA,mBACA,mCACA,wBACA,kBACA,UACA,wBACA,oBACA,cACA,mBACA,0BACA,iBACA,wBACA,iBACA,kBACA,WACA,oBACA,iBACA,eACA,eACA,aACA,iBACA,kBACA,cACA,YACA,WACA,WACA,uBACA,kBACA,uBACA,4BACA,kBACA,yBACA,qBACA,+BACA,SACA,WACA,SACA,YACA,SACA,QACA,SACA,eACA,gBACA,SACA,mBACA,sBACA,QACA,uBACA,wBACA,iBACA,QACA,YACA,oBACA,gBACA,QACA,QACA,wBACA,iBACA,sBACA,0BACA,iBACA,gBACA,sBACA,gBACA,sBACA,wBACA,4BACA,4BACA,8BACA,WACA,cACA,gBACA,oBACA,OACA,OACA,WACA,eACA,OACA,OACA,YACA,WACA,QACA,YACA,QACA,6BACA,iBACA,0BACA,kBACA,eACA,kBACA,kBACA,kBACA,WACA,gBACA,WACA,iBACA,eACA,mBACA,mBACA,0BACA,SACA,qBACA,6BACA,2BACA,eACA,qBACA,sBACA,gBACA,iBACA,iBACA,SACA,MACA,mBACA,UACA,gBACA,QACA,QACA,UACA,qBACA,WACA,QACA,aACA,YACA,YACA,YACA,cACA,mBACA,WACA,kBACA,MACA,gBACA,SACA,qBACA,mBACA,QACA,aACA,qBACA,uBACA,QACA,oBACA,wBACA,kBACA,eACA,eACA,oBACA,2BACA,kBACA,yBACA,kBACA,iBACA,sBACA,6BACA,cACA,gBACA,cACA,cACA,eACA,cACA,eACA,iBACA,yBACA,SACA,YACA,YACA,mBACA,aACA,iBACA,aACA,kBACA,mBACA,cACA,iBACA,gBACA,kBACA,aACA,iBACA,eACA,cACA,yBACA,OACA,YACA,kBACA,aACA,oBACA,YACA,eACA,IACA,cACA,gBACA,mBACA,kBACA,eACA,eACA,UACA,gBACA,eACA,aACA,mBACA,SACA,eACA,mBACA,iBACA,sBACA,yBACA,gBACA,iCACA,2BACA,aACA,kBACA,MACA,UACA,uBACA,aACA,eACA,iBACA,uBACA,oBACA,mBACA,eACA,QACA,gBACA,WACA,aACA,UACA,gBACA,QACA,0BACA,WACA,gBACA,qBACA,eACA,cACA,MACA,YACA,iBACA,aACA,UACA,kBACA,OACA,oBACA,eACA,kBACA,qBACA,kBACA,eACA,cACA,cACA,wBACA,oBACA,0BACA,sBACA,aACA,0BACA,yBACA,yBACA,mBACA,YACA,iBACA,wBACA,kBACA,mBACA,YACA,gBACA,eACA,oBACA,0BACA,SACA,YACA,sBACA,mBACA,uBACA,iBACA,oBACA,cACA,aACA,WACA,YACA,aACA,QACA,WACA,YACA,WACA,oBACA,uBACA,YACA,SACA,cACA,YACA,iBACA,gBACA,kCACA,cACA,mBACA,gBACA,QACA,qBACA,gBACA,cACA,sBACA,iBACA,uBACA,gBACA,kBACA,mBACA,sBACA,gBACA,yBACA,0BACA,cACA,qBACA,mBACA,YACA,kBACA,oBACA,yBACA,yBACA,2BACA,gBACA,qBACA,iBACA,aACA,iBACA,mBACA,2BACA,uBACA,gBACA,cACA,cACA,eACA,aACA,wBACA,wBACA,oBACA,aACA,aACA,QACA,aACA,WACA,WACA,cACA,cACA,qBACA,eACA,qBACA,kBACA,mBACA,wBACA,gBACA,eACA,wBACA,OACA,mBACA,qBACA,sBACA,SACA,YACA,YACA,cACA,aACA,eACA,gBACA,cACA,iBACA,uCACA,uCACA,iCACA,uCACA,oCACA,eACA,WACA,qBACA,wBACA,yBACA,+BACA,WACA,cACA,QACA,WACA,kBACA,eACA,mBACA,mBACA,gBACA,YACA,OACA,oBACA,WACA,gBACA,aACA,kBACA,YACA,QACA,aACA,2BACA,QACA,SACA,eACA,sBACA,UACA,kBACA,eACA,oBACA,mBACA,YACA,eACA,mBACA,cACA,iBACA,kBACA,gBACA,cACA,kBACA,mBACA,gBACA,WACA,cACA,mBACA,cACA,yBACA,6BACA,wBACA,eACA,qBACA,eACA,WACA,uBACA,YACA,aACA,cACA,cACA,eACA,cACA,kBACA,+BACA,uBACA,iBACA,YACA,SACA,oBACA,cACA,oBACA,oBACA,kBACA,mBACA,iBACA,UACA,QACA,YACA,eACA,eACA,eACA,gBACA,YACA,oBACA,cACA,gBACA,gBACA,uBACA,WACA,cACA,cACA,mBACA,SACA,gBACA,eACA,aACA,wBACA,gBACA,cACA,iBACA,wBACA,cACA,aACA,aACA,mBACA,SACA,mBACA,oBACA,aACA,cACA,eACA,iBACA,eACA,sBACA,mBACA,YACA,2BACA,YACA,kBACA,aACA,cACA,yBACA,qBACA,kBACA,uBACA,cACA,kBACA,qBACA,oBACA,UACA,WACA,uBACA,mBACA,kBACA,aACA,0BACA,gBACA,iBACA,mBACA,wBACA,UACA,qBACA,YACA,gBACA,kBACA,qBACA,kBACA,cACA,gBACA,oBACA,oBACA,oBACA,wBACA,2BACA,UACA,cACA,gBACA,aACA,cACA,kBACA,qBACA,8BACA,yBACA,yBACA,WACA,iBACA,mBACA,qBACA,YACA,wBACA,cACA,OACA,UACA,kBACA,kBACA,sBACA,oBACA,eACA,gBACA,YACA,kBACA,uBACA,qBACA,oBACA,YACA,qBACA,cACA,UACA,sBACA,2BACA,kBACA,0BACA,8BACA,qBACA,qBACA,iCACA,+BACA,eACA,cACA,iBACA,uBACA,WACA,gBACA,qBACA,gBACA,oBACA,kBACA,YACA,qBACA,oBACA,iBACA,iBACA,YACA,aACA,cACA,cACA,kBACA,eACA,eACA,sBACA,0BACA,gBACA,iBACA,sBACA,oBACA,cACA,UACA,cACA,WACA,oBACA,eACA,WACA,oBACA,qBACA,mBACA,0BACA,iBACA,uBACA,wBACA,6BACA,gBACA,kBACA,kBACA,gBACA,eACA,cACA,gBACA,WACA,iBACA,mBACA,eACA,qBACA,uBACA,UACA,gBACA,mBACA,0BACA,yBACA,wBACA,4BACA,qBACA,qBACA,wBACA,4BACA,oBACA,uBACA,mBACA,iBACA,kBACA,mBACA,oBACA,cACA,cACA,oBACA,kBACA,wBACA,sBACA,4BACA,iBACA,iBACA,oBACA,mBACA,WACA,iBACA,iBACA,iBACA,iBACA,UACA,wBACA,6BACA,mBACA,wBACA,sBACA,yBACA,sBACA,0BACA,WACA,YACA,qBACA,WACA,cACA,gBACA,WACA,UACA,kBACA,eACA,kBACA,cACA,sBACA,sBACA,kBACA,MACA,OACA,eACA,iBACA,eACA,cACA,MACA,OACA,QACA,gBACA,kBACA,qBACA,aACA,oBACA,kCACA,mBACA,kBACA,oBACA,eACA,0BACA,aACA,cACA,SACA,WACA,aACA,8BACA,qBACA,qBACA,0BACA,WACA,cACA,qBACA,gBACA,eACA,gBACA,wBACA,gBACA,sBACA,wBACA,eACA,kBACA,iBACA,aACA,gCACA,iCACA,iBACA,sBACA,gBACA,sBACA,yBACA,sBACA,oBACA,oBACA,kBACA,aACA,eACA,oBACA,+BACA,+BACA,kBACA,QACA,wBACA,gBACA,iBACA,kBACA,cACA,MACA,OACA,eACA,OACA,WACA,SACA,SACA,YACA,WACA,6BACA,MACA,SACA,OACA,mBACA,aACA,kBACA,cACA,eACA,0BACA,uBACA,qBACA,eACA,QACA,eACA,sBACA,cACA,OACA,aACA,uBACA,SACA,cACA,aACA,WACA,cACA,2BACA,IACA,oBACA,UACA,6BACA,gBACA,SACA,SACA,UACA,kBACA,qBACA,oBACA,UACA,aACA,gBACA,WACA,gBACA,kBACA,mBACA,YACA,eACA,UACA,sBACA,gBACA,iBACA,OACA,aACA,QACA,iBACA,iBACA,YACA,aACA,eACA,gBACA,eACA,WACA,kBACA,eACA,mBACA,aACA,cACA,gBACA,cACA,WACA,YACA,gBACA,aACA,kBACA,YACA,cACA,oBACA,oBACA,UACA,WACA,qBACA,gBACA,YACA,YACA,UACA,qBACA,UACA,WACA,WACA,gBACA,mBACA,QACA,WACA,eACA,UACA,cACA,sBACA,iBACA,YACA,qBACA,YACA,UACA,cACA,cACA,qBACA,UACA,mBACA,mBACA,kBACA,gBACA,eACA,0BACA,4BACA,kBACA,iBACA,wBACA,wBACA,cACA,wBACA,oBACA,4BACA,oBACA,yBACA,wBACA,0BACA,yBACA,oBACA,mBACA,yBACA,sBACA,4BACA,kBACA,iBACA,0BACA,wBACA,eACA,0BACA,wBACA,8BACA,oBACA,sBACA,eACA,gBACA,QACA,iBACA,0BACA,2BACA,yBACA,aACA,SACA,mBACA,0BACA,sBACA,6BACA,eACA,eACA,mBACA,MACA,eACA,UACA,YACA,SACA,kBACA,yBACA,cACA,gBACA,wBACA,iBACA,kBACA,mBACA,qBACA,aACA,gBACA,eACA,uBACA,oBACA,wBACA,kBACA,qBACA,kBACA,iBACA,oBACA,YACA,qBACA,oBACA,aACA,mBACA,aACA,cACA,kBACA,mBACA,cACA,gBACA,qBACA,SACA,WACA,QACA,iBACA,aACA,mBACA,aACA,uBACA,eACA,yBACA,MACA,cACA,kBACA,gBACA,4BACA,eACA,aACA,cACA,aACA,mBACA,mBACA,iBACA,uBACA,UACA,gBACA,cACA,oBACA,mBACA,yBACA,WACA,wBACA,iBACA,kBACA,SACA,eACA,cACA,cACA,iBACA,eACA,eACA,gBACA,UACA,gBACA,oBACA,mBACA,kBACA,kBACA,kBACA,qBACA,iBACA,uBACA,cACA,gBACA,mBACA,yBACA,uBACA,mBACA,aACA,oBACA,iBACA,aACA,SACA,gBACA,gBACA,WACA,0BACA,4BACA,kBACA,2BACA,qBACA,aACA,YACA,aACA,eACA,gBACA,gBACA,iBACA,mBACA,YACA,YACA,YACA,gBACA,aACA,iBACA,gBACA,qBACA,qBACA,oBACA,wBACA,eACA,aACA,kBACA,qBACA,kBACA,4BACA,oBACA,qBACA,0BACA,mBACA,gBACA,4BACA,oBACA,gBACA,2BACA,2BACA,wBACA,wBACA,mBACA,mBACA,eACA,iBACA,gBACA,uBACA,gBACA,qBACA,8BACA,oBACA,sBACA,iCACA,2BACA,qBACA,mBACA,eACA,YACA,cACA,OACA,UACA,aACA,cACA,WACA,YACA,8BACA,UACA,kBACA,mBACA,0BACA,cACA,kBACA,gBACA,eACA,uBACA,gBACA,mBACA,cACA,iBACA,sBACA,mBACA,iBACA,oBACA,aACA,cACA,sBACA,wBACA,oBACA,qBACA,sBACA,mCACA,yBACA,YACA,MACA,aACA,SACA,WACA,WACA,cACA,YACA,WACA,eACA,aACA,UACA,YACA,KACA,cACA,oBACA,+BACA,mCACA,qBACA,mBACA,yBACA,eACA,gCACA,iBACA,gBACA,MACA,YACA,WACA,WACA,eACA,SACA,sBACA,wBACA,kBACA,kBACA,uBACA,gBACA,sBACA,2BACA,uBACA,mBACA,iBACA,gBACA,oBACA,oBACA,iBACA,OACA,YACA,eACA,mBACA,sBACA,oBACA,iBACA,oBACA,qBACA,kBACA,qBACA,aACA,UACA,eACA,aACA,cACA,YACA,iBACA,kBACA,OACA,eACA,SACA,cACA,KACA,wBACA,iBACA,mBACA,UACA,WACA,iBACA,WACA,UACA,aACA,oBACA,2BACA,qBACA,eACA,kBACA,gBACA,mBACA,0BACA,sBACA,sBACA,cACA,mBACA,mBACA,iBACA,kBACA,iBACA,oBACA,2BACA,IACA,kBACA,iBACA,yBACA,OACA,eACA,cACA,UACA,4BACA,eACA,cACA,YACA,mBACA,eACA,WACA,YACA,aACA,kBACA,cACA,aACA,aACA,WACA,YACA,eACA,eACA,aACA,iBACA,WACA,cACA,QACA,wBACA,YACA,oBACA,YACA,kBACA,mBACA,WACA,gBACA,aACA,qBACA,WACA,qBACA,uBACA,eACA,oBACA,cACA,cACA,wBACA,eACA,UACA,cACA,mBACA,cACA,YACA,mBACA,YACA,YACA,cACA,mBACA,YACA,sBACA,YACA,cACA,gBACA,aACA,6BACA,gBACA,qBACA,YACA,eACA,kBACA,iBACA,kBACA,YACA,wBACA,wBACA,QACA,cACA,cACA,2BACA,UACA,SACA,UACA,kBACA,cACA,MACA,SACA,kBACA,+BACA,cACA,YACA,YACA,cACA,aACA,oBACA,kBACA,QACA,wBACA,kBACA,SACA,cACA,kBACA,eACA,iBACA,cACA,iBACA,aACA,iBACA,mBACA,iBACA,sBACA,iBACA,cACA,eACA,iBACA,mBACA,cACA,UACA,gBACA,cACA,SACA,iBACA,QACA,eACA,YACA,aACA,UACA,YACA,cACA,yBACA,aACA,MACA,OACA,OACA,UACA,UACA,qBACA,UACA,WACA,kBACA,YACA,cACA,uBACA,eACA,sBACA,wBACA,mBACA,iBACA,qBACA,oBACA,cACA,sBACA,SACA,aACA,iBACA,cACA,WACA,cACA,WACA,YACA,iBACA,wBACA,gBACA,iBACA,6BACA,iBACA,qBACA,wBACA,iBACA,oBACA,qBACA,mBACA,kBACA,YACA,iBACA,QACA,YACA,iBACA,eACA,kBACA,cACA,cACA,sBACA,eACA,qBACA,cACA,SACA,gBACA,gBACA,6BACA,cACA,aACA,kBACA,SACA,OACA,aACA,gBACA,MACA,SACA,YACA,oBACA,iBACA,kBACA,cACA,eACA,gBACA,uBACA,eACA,gBACA,iBACA,WACA,mBACA,0BACA,oBACA,gCACA,2BACA,+BACA,mBACA,eACA,SACA,yBACA,kBACA,aACA,eACA,eACA,aACA,iBACA,kBACA,mBACA,iBACA,YACA,sBACA,cACA,YACA,wBACA,gBACA,aACA,iBACA,eACA,gCACA,mBACA,mBACA,uBACA,qBACA,iBACA,kBACA,wBACA,mBACA,sBACA,0BACA,qBACA,wBACA,qBACA,wBACA,wBACA,gBACA,UACA,iBACA,eACA,uBACA,2BACA,YACA,WACA,YACA,iBACA,iBACA,SACA,iBACA,YACA,aACA,kBACA,oCACA,iBACA,gBACA,aACA,mBACA,uBACA,cACA,kBACA,OACA,UACA,gBACA,sBACA,WACA,QACA,gBACA,gBACA,kBACA,iBACA,oBACA,mBACA,2BACA,eACA,iBACA,mBACA,qBACA,eACA,8BACA,oBACA,iBACA,sBACA,eACA,6BACA,kBACA,YACA,aACA,0BACA,YACA,iBACA,cACA,YACA,OACA,eACA,gBACA,cACA,WACA,cACA,gBACA,aACA,cACA,WACA,kBACA,WACA,gBACA,yBACA,eACA,gBACA,eACA,YACA,iBACA,gBACA,eACA,YACA,WACA,gBACA,iBACA,eACA,oBACA,WACA,cACA,iBACA,wBACA,UACA,eACA,mBACA,sBACA,cACA,gBACA,gBACA,sBACA,qBACA,OACA,gBACA,aACA,aACA,eACA,aACA,eACA,cACA,gBACA,YACA,cACA,mBACA,6BACA,gBACA,gBACA,cACA,2BACA,sBACA,oBACA,yBACA,YACA,WACA,UACA,cACA,wBACA,yBACA,kBACA,2BACA,yBACA,uBACA,uBACA,qBACA,uBACA,sBACA,yBACA,gBACA,yBACA,2BACA,eACA,wBACA,YACA,cACA,YACA,YACA,cACA,uBACA,WACA,oBACA,cACA,iBACA,kBACA,eACA,kBACA,cACA,sBACA,iBACA,eACA,2BACA,WACA,YACA,kBACA,kBACA,wBACA,aACA,WACA,uBACA,eACA,mBACA,mBACA,mBACA,6BACA,oBACA,gBACA,sBACA,kBACA,gBACA,6BACA,OACA,gBACA,0BACA,mBACA,kBACA,QACA,YACA,+BACA,gBACA,mBACA,mBACA,wBACA,mCACA,kBACA,sBACA,MACA,SACA,oBACA,cACA,aACA,aACA,iBACA,iBACA,OACA,UACA,YACA,eACA,gBACA,WACA,QACA,iBACA,yBACA,OACA,WACA,WACA,eACA,kBACA,OACA,YACA,aACA,WACA,WACA,cACA,qBACA,iBACA,iBACA,WACA,YACA,oBACA,eACA,iBACA,aACA,MACA,SACA,sBACA,SACA,cACA,aACA,wBACA,eACA,UACA,iBACA,cACA,eACA,qBACA,aACA,WACA,YACA,cACA,gBACA,cACA,UACA,kBACA,UACA,qBACA,wBACA,mBACA,sBACA,aACA,mBACA,mBACA,aACA,mBACA,gBACA,oBACA,2BACA,gBACA,wBACA,mBACA,sBACA,mBACA,oBACA,kCACA,iCACA,iBACA,cACA,qBACA,eACA,QACA,WACA,kBACA,SACA,aACA,aACA,YACA,eACA,YACA,aACA,aACA,kBACA,qBACA,sBACA,QACA,qBACA,gCACA,WACA,WACA,WACA,WACA,SACA,kBACA,iBACA,mBACA,oBACA,uBACA,wBACA,WACA,aACA,UACA,aACA,iBACA,mBACA,uBACA,mBACA,2BACA,eACA,QACA,4BACA,uBACA,kBACA,iBACA,mBACA,yBACA,oBACA,gBACA,uBACA,qBACA,kBACA,iBACA,mBACA,OACA,WACA,iBACA,WACA,eACA,iCACA,cACA,aACA,eACA,WACA,kBACA,wBACA,iCACA,+BACA,8BACA,iBACA,iBACA,wBACA,iBACA,gBACA,gBACA,0BACA,cACA,cACA,eACA,cACA,mBACA,aACA,cACA,QACA,oBACA,mBACA,aACA,eACA,sBACA,SACA,WACA,2BACA,iBACA,4BACA,iBACA,kBACA,cACA,eACA,aACA,iBACA,mBACA,iBACA,uCACA,uCACA,oCACA,iBACA,MACA,cACA,UACA,4BACA,4BACA,qBACA,gBACA,2BACA,qBACA,2BACA,mBACA,sBACA,8BACA,wBACA,uBACA,mCACA,uBACA,qBACA,uBACA,yBACA,sBACA,UACA,kCACA,aACA,eACA,cACA,UACA,eACA,gBACA,iBACA,YACA,kBACA,iBACA,YACA,YACA,iBACA,iBACA,kBACA,mBACA,kBACA,kBACA,iBACA,cACA,eACA,UACA,kBACA,cACA,kBACA,mBACA,cACA,cACA,sBACA,6BACA,eACA,oBACA,kBACA,eACA,sBACA,kBACA,sBACA,gBACA,WACA,gBACA,wBACA,eACA,cACA,WACA,YACA,YACA,cACA,cACA,uBACA,uBACA,YACA,qBACA,iCACA,wBACA,gBACA,sBACA,wBACA,iBACA,0BACA,+BACA,sCACA,6BACA,oCACA,WACA,aACA,UACA,cACA,iBACA,iBACA,gBACA,oBACA,WACA,kBACA,qBACA,gBACA,cACA,YACA,qBACA,gBACA,aACA,0BACA,aACA,YACA,eACA,gBACA,eACA,mBACA,2BACA,aACA,eACA,iBACA,oBACA,MACA,2BACA,aACA,iBACA,cACA,+BACA,gCACA,iBACA,gCACA,WACA,8BACA,oBACA,gBACA,OACA,cACA,cACA,8BACA,eACA,sBACA,0BACA,OACA,OACA,WACA,iBACA,4BACA,eACA,eACA,eACA,QACA,UACA,qBACA,yBACA,cACA,kBACA,YACA,eACA,gBACA,kBACA,qBACA,gBACA,sBACA,mBACA,iBACA,iBACA,sBACA,WACA,WACA,aACA,gBACA,uBACA,gBACA,mBACA,cACA,qBACA,gBACA,iBACA,kBACA,uBACA,8BACA,qBACA,4BACA,mBACA,eACA,eACA,kBACA,gBACA,qBACA,4BACA,mBACA,0BACA,mBACA,yBACA,cACA,kBACA,gBACA,oBACA,cACA,sBACA,iBACA,YACA,cACA,aACA,4BACA,SACA,cACA,mBACA,YACA,aACA,aACA,OACA,YACA,UACA,eACA,mBACA,mBACA,mBACA,iBACA,cACA,oBACA,cACA,eACA,QACA,gBACA,OACA,eACA,UACA,mBACA,oBACA,kBACA,eACA,kBACA,mBACA,iBACA,kBACA,uBACA,qBACA,0BACA,YACA,mBACA,YACA,YACA,iBACA,gBACA,kBACA,UACA,mBACA,uBACA,uBACA,gBACA,gBACA,qBACA,kBACA,YACA,2BACA,cACA,aACA,uBACA,yBACA,kBACA,uBACA,wBACA,8BACA,oBACA,eACA,eACA,qBACA,cACA,iBACA,WACA,yBACA,YACA,YACA,kBACA,oBACA,kBACA,gBACA,mBACA,uBACA,WACA,WACA,eACA,kBACA,oBACA,aACA,sBACA,cACA,eACA,qBACA,iBACA,OACA,eACA,eACA,YACA,iBACA,OACA,cACA,kBACA,mBACA,wBACA,cACA,aACA,cACA,QACA,kBACA,cACA,iBACA,cACA,WACA,oBACA,sBACA,sBACA,OACA,uBACA,WACA,mBACA,0BACA,UACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,uBACA,aACA,gBACA,uBACA,cACA,sBACA,gBACA,cACA,iBACA,iBACA,gBACA,iBACA,oBACA,eACA,gBACA,gBACA,YACA,cACA,wBACA,gBACA,qBACA,kCACA,uBACA,mBACA,iBACA,qBACA,YACA,aACA,iBACA,OACA,UACA,kBACA,eACA,YACA,WACA,cACA,WACA,kBACA,gBACA,WACA,aACA,iBACA,kBACA,2BACA,aACA,aACA,+BACA,mBACA,WACA,oBACA,eACA,cACA,kBACA,eACA,MACA,kBACA,eACA,YACA,kBACA,cACA,yBACA,iBACA,+BACA,iBACA,oBACA,+BACA,oBACA,+BACA,oBACA,+BACA,6BACA,oBACA,+BACA,kBACA,YACA,kBACA,4BACA,aACA,cACA,qBACA,8BACA,qBACA,IACA,WACA,UACA,iBACA,YACA,cACA,WACA,iBACA,KACA,aACA,mBACA,oBACA,mBACA,mBACA,KACA,QACA,UACA,oBACA,gBACA,kBACA,WACA,cACA,aACA,aACA,oBACA,mBACA,gBACA,yBACA,qBACA,aACA,kBACA,eACA,uBACA,aACA,gBACA,YACA,eACA,kBACA,eACA,iBACA,gBACA,gBACA,oBACA,eACA,iBACA,2BACA,YACA,YACA,kBACA,gBACA,kBACA,kBACA,qBACA,gBACA,cACA,uBACA,oBACA,iBACA,kBACA,gBACA,cACA,oBACA,2BACA,uBACA,6BACA,gBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,cACA,aACA,eACA,cACA,eACA,oBACA,YACA,gBACA,cACA,WACA,eACA,iBACA,mBACA,iCACA,gBACA,uBACA,eACA,oBACA,SACA,kBACA,eACA,eACA,cACA,cACA,kBACA,eACA,cACA,eACA,sBACA,cACA,YACA,YACA,kBACA,iBACA,uBACA,eACA,gBACA,YACA,sBACA,YACA,YACA,aACA,sBACA,gBACA,iBACA,UACA,SACA,yBACA,kBACA,gBACA,eACA,wBACA,KACA,aACA,WACA,iBACA,gBACA,kBACA,uBACA,uBACA,qBACA,qBACA,uBACA,wBACA,mBACA,qBACA,yBACA,cACA,oBACA,uBACA,sBACA,qBACA,YACA,oBACA,SACA,2BACA,oBACA,mBACA,sBACA,8BACA,kBACA,2BACA,wBACA,gBACA,yBACA,uBACA,UACA,uBACA,aACA,WACA,aACA,iBACA,iBACA,iBACA,eACA,eACA,gBACA,WACA,QACA,kBACA,kBACA,cACA,kBACA,sBACA,YACA,eACA,8BACA,2BACA,iBACA,qBACA,+BACA,4BACA,wBACA,sBACA,aACA,iBACA,2BACA,0BACA,cACA,QACA,eACA,kBACA,UACA,QACA,eACA,mBACA,wBACA,aACA,gBACA,uBACA,YACA,gBACA,kBACA,gBACA,cACA,gBACA,cACA,cACA,oBACA,uBACA,SACA,oBACA,uBACA,mBACA,gBACA,QACA,aACA,oBACA,WACA,kBACA,WACA,UACA,iBACA,6BACA,WACA,UACA,gBACA,kBACA,gBACA,cACA,cACA,oBACA,WACA,iBACA,WACA,gBACA,WACA,YACA,cACA,0BACA,aACA,eACA,kCACA,wBACA,0BACA,gBACA,qBACA,sBACA,yBACA,iBACA,oBACA,2BACA,yBACA,cACA,oBACA,qBACA,YACA,oBACA,yBACA,gBACA,eACA,WACA,uBACA,kBACA,uBACA,kBACA,iBACA,gBACA,OACA,UACA,yBACA,aACA,+BACA,oCACA,2BACA,uBACA,aACA,cACA,iBACA,6BACA,kCACA,6BACA,0BACA,kBACA,mBACA,2BACA,0BACA,8BACA,sBACA,yBACA,mBACA,sBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,0BACA,yBACA,qBACA,eACA,wBACA,gBACA,0BACA,qBACA,0BACA,2BACA,0BACA,sBACA,mCACA,oBACA,YACA,uBACA,iBACA,YACA,yBACA,aACA,oBACA,mBACA,cACA,SACA,OACA,kBACA,UACA,iBACA,sBACA,WACA,YACA,aACA,uBACA,kBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,eACA,aACA,eACA,eACA,eACA,eACA,oBACA,sBACA,OACA,aACA,SACA,cACA,iBACA,wBACA,WACA,sBACA,2BACA,aACA,oBACA,yBACA,eACA,iBACA,IACA,YACA,qBACA,eACA,kBACA,eACA,6BACA,WACA,iBACA,kBACA,gBACA,2BACA,uBACA,sBACA,YACA,YACA,YACA,YACA,aACA,iBACA,gBACA,iBACA,4BACA,eACA,UACA,MACA,MACA,uBACA,gBACA,UACA,cACA,aACA,WACA,kBACA,SACA,aACA,mBACA,OACA,YACA,UACA,YACA,UACA,WACA,cACA,kBACA,WACA,cACA,iBACA,kBACA,kBACA,gBACA,kBACA,WACA,aACA,YACA,wBACA,iBACA,8BACA,mBACA,kBACA,aACA,0BACA,WACA,iBACA,6BACA,yBACA,WACA,QACA,UACA,gBACA,mBACA,eACA,aACA,kBACA,YACA,WACA,mBACA,WACA,aACA,gBACA,qBACA,WACA,mBACA,eACA,mBACA,kBACA,sBACA,mBACA,YACA,kBACA,0BACA,QACA,SACA,OACA,WACA,oBACA,cACA,gBACA,SACA,gBACA,mBACA,oBACA,oBACA,WACA,MACA,aACA,YACA,YACA,oBACA,sBACA,eACA,0BACA,eACA,2BACA,OACA,YACA,eACA,sBACA,oBACA,iBACA,oBACA,iBACA,kBACA,UACA,eACA,gBACA,eACA,kBACA,oBACA,mBACA,kBACA,eACA,kBACA,aACA,gBACA,mBACA,WACA,iBACA,cACA,eACA,gBACA,gBACA,mBACA,YACA,YACA,eACA,SACA,cACA,WACA,OACA,YACA,mBACA,gBACA,gBACA,cACA,WACA,iBACA,WACA,YACA,kBACA,eACA,eACA,UACA,QACA,aACA,mBACA,mBACA,gBACA,kBACA,kBACA,uBACA,6BACA,sBACA,wBACA,cACA,gBACA,YACA,oBACA,0BACA,YACA,aACA,YACA,UACA,YACA,aACA,WACA,gBACA,eACA,cACA,YACA,cACA,WACA,eACA,cACA,aACA,QACA,oBACA,0BACA,sBACA,OACA,YACA,mBACA,eACA,+BACA,4BACA,sBACA,gCACA,cACA,iBACA,uBACA,qBACA,oBACA,mBACA,cACA,sBACA,UACA,iBACA,YACA,uBACA,iBACA,8BACA,kBACA,YACA,YACA,aACA,wBACA,8BACA,+BACA,aACA,cACA,cACA,gBACA,eACA,YACA,cACA,iBACA,aACA,YACA,YACA,eACA,WACA,gBACA,aACA,WACA,aACA,WACA,cACA,eACA,eACA,qBACA,WACA,eACA,aACA,QACA,cACA,YACA,gBACA,kBACA,OACA,WACA,cACA,kBACA,oBACA,eACA,gBACA,oBACA,iBACA,kBACA,oBACA,SACA,aACA,+BACA,oBACA,kCACA,eACA,oBACA,iBACA,cACA,aACA,gBACA,0BACA,uBACA,WACA,WACA,aACA,kBACA,gBACA,QACA,yBACA,yBACA,wBACA,eACA,wBACA,iBACA,oBACA,wBACA,iBACA,mBACA,iBACA,UACA,gBACA,wBACA,aACA,6BACA,sBACA,oBACA,cACA,eACA,kCACA,cACA,cACA,YACA,gBACA,0BACA,eACA,UACA,oBACA,aACA,oBACA,mBACA,cACA,iBACA,wBACA,gBACA,SACA,MACA,QACA,OACA,aACA,WACA,uBACA,gBACA,cACA,uBACA,kBACA,gBACA,gBACA,gBACA,0BACA,aACA,6BACA,wBACA,UACA,cACA,wBACA,YACA,UACA,wBACA,iCACA,2BACA,oCACA,eACA,yBACA,WACA,YACA,gBACA,qBACA,iBACA,2BACA,SACA,WACA,iBACA,UACA,eACA,aACA,iBACA,kBACA,qBACA,yBACA,gBACA,mBACA,eACA,yBACA,mBACA,qBACA,SACA,uBACA,kBACA,eACA,WACA,gBACA,eACA,YACA,cACA,iBACA,mBACA,2BACA,UACA,gBACA,UACA,wBACA,cACA,aACA,WACA,uBACA,uBACA,aACA,oBACA,uBACA,eACA,YACA,wBACA,WACA,YACA,iBACA,YACA,6BACA,4BACA,yBACA,wBACA,8BACA,uBACA,oBACA,iBACA,oBACA,aACA,cACA,yBACA,kBACA,mBACA,SACA,MACA,SACA,QACA,aACA,YACA,YACA,8BACA,UACA,qBACA,qBACA,qBACA,uBACA,0BACA,UACA,wBACA,kBACA,kBACA,SACA,WACA,2BACA,sBACA,WACA,yBACA,yBACA,gCACA,gBACA,kBACA,kBACA,kBACA,kBACA,kBACA,WACA,gBACA,aACA,aACA,WACA,YACA,aACA,iBACA,YACA,2BACA,aACA,cACA,6BACA,UACA,aACA,sBACA,MACA,UACA,iBACA,mBACA,UACA,YACA,cACA,qBACA,qBACA,yBACA,cACA,YACA,YACA,WACA,WACA,gBACA,WACA,gBACA,oBACA,qBACA,gBACA,YACA,eACA,wBACA,kBACA,WACA,cACA,oBACA,WACA,sBACA,aACA,qBACA,OACA,wBACA,aACA,4BACA,yBACA,gBACA,aACA,oBACA,qBACA,YACA,kBACA,uBACA,SACA,kBACA,eACA,kBACA,SACA,UACA,gBACA,sBACA,iBACA,kBACA,UACA,kBACA,oBACA,mBACA,cACA,aACA,OACA,iBACA,iBACA,gBACA,WACA,WACA,aACA,mBACA,YACA,WACA,QACA,mBACA,kBACA,wBACA,yBACA,OACA,mBACA,gBACA,oBACA,gBACA,gBACA,iBACA,kBACA,kBACA,YACA,wBACA,gBACA,wBACA,kBACA,gBACA,iBACA,kBACA,YACA,yBACA,aACA,cACA,cACA,YACA,UACA,gBACA,cACA,cACA,gBACA,iBACA,gBACA,WACA,mBACA,iBACA,kBACA,mBACA,SACA,gBACA,oBACA,eACA,WACA,MACA,mBACA,UACA,YACA,cACA,YACA,YACA,oBACA,yBACA,WACA,uBACA,kBACA,wBACA,WACA,SACA,kBACA,SACA,eACA,UACA,wBACA,QACA,YACA,WACA,UACA,kBACA,oBACA,mBACA,WACA,gBACA,eACA,sBACA,iBACA,qBACA,cACA,iBACA,aACA,qBACA,YACA,sBACA,MACA,QACA,OACA,UACA,iBACA,gBACA,SACA,UACA,YACA,WACA,oBACA,sBACA,gBACA,iBACA,kBACA,eACA,iBACA,mBACA,YACA,oBACA,gBACA,SACA,YACA,gBACA,iBACA,2BACA,kBACA,SACA,UACA,eACA,gBACA,gBACA,YACA,eACA,gBACA,wBACA,4BACA,0BACA,2BACA,qBACA,yBACA,yBACA,gBACA,OACA,eACA,kBACA,kBACA,qBACA,eACA,YACA,mBACA,gBACA,YACA,gBACA,YACA,eACA,oBACA,cACA,iBACA,cACA,qBACA,qBACA,mBACA,oBACA,cACA,0BACA,0BACA,sBACA,eACA,gBACA,iBACA,yCACA,kCACA,4BACA,IACA,uBACA,QACA,QACA,eACA,sBACA,OACA,UACA,UACA,cACA,kBACA,sBACA,SACA,gBACA,gBACA,UACA,eACA,UACA,kBACA,mBACA,uBACA,YACA,aACA,mCACA,mCACA,4BACA,QACA,WACA,+BACA,0BACA,mBACA,kCACA,oBACA,gBACA,8BACA,mBACA,oBACA,OACA,uBACA,iBACA,oBACA,YACA,WACA,YACA,gBACA,YACA,2BACA,WACA,aACA,YACA,UACA,aACA,oBACA,aACA,aACA,kBACA,iBACA,WACA,iBACA,gBACA,YACA,wBACA,UACA,iBACA,uBACA,kBACA,WACA,kBACA,2BACA,UACA,kBACA,aACA,YACA,aACA,iBACA,iBACA,iBACA,UACA,WACA,wBACA,uBACA,yBACA,+BACA,qBACA,eACA,gBACA,gBACA,gBACA,gBACA,oBACA,eACA,OACA,WACA,WACA,YACA,wBACA,WACA,aACA,YACA,mBACA,cACA,kBACA,aACA,YACA,YACA,YACA,YACA,mBACA,iBACA,6BACA,kCACA,+BACA,iCACA,yBACA,eACA,iCACA,OACA,WACA,oBACA,2BACA,sBACA,cACA,sBACA,uBACA,mBACA,cACA,sBACA,uBACA,mBACA,MACA,WACA,OACA,SACA,qBACA,iBACA,qBACA,YACA,aACA,qCACA,gBACA,kBACA,eACA,MACA,eACA,YACA,uBACA,WACA,gBACA,mBACA,gBACA,0BACA,iBACA,6BACA,kBACA,iBACA,oBACA,4BACA,mBACA,uBACA,mBACA,eACA,2BACA,cACA,qCACA,gCACA,iBACA,sBACA,0BACA,iBACA,iBACA,eACA,2BACA,eACA,gBACA,cACA,0BACA,eACA,8BACA,YACA,eACA,iBACA,oBACA,uCACA,gBACA,mBACA,gBACA,aACA,gBACA,YACA,aACA,kBACA,sBACA,oBACA,iBACA,uBACA,kBACA,UACA,kBACA,eACA,uBACA,kBACA,qBACA,uBACA,UACA,eACA,mBACA,iBACA,cACA,oBACA,eACA,0BACA,oBACA,cACA,mBACA,wBACA,mBACA,oBACA,mBACA,sBACA,wBACA,kBACA,uBACA,oBACA,yBACA,YACA,iBACA,cACA,mBACA,wBACA,mBACA,cACA,mBACA,WACA,gBACA,oBACA,gBACA,iBACA,MACA,eACA,eACA,WACA,kBACA,SACA,SACA,OACA,YACA,uBACA,qBACA,OACA,cACA,YACA,YACA,SACA,gBACA,kBACA,eACA,yBACA,0BACA,8BACA,2BACA,iCACA,uBACA,0BACA,uBACA,aACA,eACA,iBACA,cACA,mBACA,gBACA,cACA,UACA,kBACA,cACA,eACA,YACA,uBACA,iBACA,gBACA,eACA,gBACA,mBACA,kBACA,WACA,gBACA,UACA,mBACA,cACA,IACA,uBACA,sBACA,0BACA,mBACA,YACA,aACA,OACA,MACA,SACA,UACA,KACA,cACA,OACA,cACA,UACA,kBACA,yBACA,OACA,aACA,SACA,YACA,mBACA,aACA,8BACA,UACA,WACA,qBACA,gBACA,YACA,UACA,kBACA,kBACA,kBACA,WACA,kBACA,0BACA,UACA,UACA,gBACA,iBACA,cACA,iBACA,wBACA,KACA,SACA,QACA,oBACA,WACA,WACA,aACA,gBACA,YACA,2BACA,2BACA,gBACA,oBACA,MACA,QACA,eACA,kBACA,sBACA,8BACA,2BACA,aACA,iBACA,iBACA,2BACA,mBACA,iBACA,kBACA,eACA,OACA,UACA,UACA,WACA,UACA,WACA,UACA,aACA,oBACA,aACA,gBACA,uBACA,YACA,aACA,kBACA,QACA,YACA,UACA,gBACA,aACA,oBACA,qBACA,sBACA,wBACA,wBACA,gBACA,eACA,aACA,mBACA,oBACA,gBACA,sBACA,eACA,eACA,gBACA,aACA,mBACA,qBACA,cACA,uBACA,mBACA,kBACA,eACA,aACA,UACA,eACA,cACA,kBACA,UACA,WACA,iBACA,iBACA,kBACA,kBACA,cACA,kBACA,cACA,aACA,qBACA,YACA,YACA,aACA,iBACA,kBACA,wBACA,cACA,cACA,kBACA,cACA,cACA,OACA,UACA,iBACA,QACA,WACA,kBACA,UACA,eACA,kBACA,yBACA,aACA,qBACA,kBACA,mBACA,gBACA,kBACA,aACA,iBACA,mBACA,kBACA,cACA,cACA,gBACA,gBACA,kBACA,iBACA,cACA,gBACA,cACA,YACA,qBACA,+BACA,qBACA,qBACA,oBACA,yBACA,iBACA,mBACA,sBACA,mBACA,YACA,aACA,gBACA,kBACA,aACA,eACA,aACA,iBACA,qBACA,6BACA,WACA,OACA,eACA,6BACA,WACA,0BACA,eACA,YACA,uBACA,cACA,cACA,YACA,eACA,iBACA,eACA,qBACA,iBACA,eACA,QACA,2BACA,0BACA,cACA,OACA,YACA,aACA,UACA,iBACA,kBACA,cACA,cACA,cACA,QACA,aACA,MACA,aACA,aACA,uBACA,yBACA,sBACA,cACA,gBACA,iBACA,kBACA,YACA,4BACA,wBACA,cACA,mBACA,YACA,cACA,mBACA,0BACA,oBACA,iBACA,kBACA,oBACA,qBACA,mBACA,oBACA,kBACA,mBACA,iBACA,iBACA,mBACA,mBACA,qBACA,qBACA,eACA,qBACA,UACA,oBACA,gBACA,wBACA,sBACA,kBACA,mBACA,oBACA,kBACA,aACA,mBACA,gBACA,eACA,aACA,qBACA,KACA,OACA,UACA,sBACA,iBACA,UACA,YACA,kBACA,WACA,aACA,cACA,kBACA,WACA,OACA,iBACA,WACA,mBACA,aACA,sBACA,SACA,cACA,qBACA,QACA,cACA,cACA,eACA,qBACA,iBACA,oBACA,aACA,YACA,OACA,YACA,OACA,SACA,cACA,eACA,aACA,YACA,aACA,aACA,cACA,cACA,aACA,YACA,oBACA,2BACA,mBACA,aACA,YACA,YACA,YACA,OACA,YACA,aACA,YACA,WACA,QACA,aACA,oBACA,WACA,kBACA,mBACA,cACA,YACA,4BACA,sBACA,iBACA,gBACA,YACA,kBACA,iBACA,YACA,aACA,kBACA,0BACA,YACA,UACA,eACA,sBACA,kBACA,eACA,aACA,oBACA,qBACA,uBACA,mBACA,uBACA,eACA,aACA,kBACA,wBACA,iBACA,0BACA,kBACA,UACA,wBACA,iBACA,gBACA,gBACA,gBACA,cACA,qBACA,8BACA,mBACA,sBACA,cACA,eACA,YACA,eACA,sBACA,YACA,cACA,WACA,gBACA,WACA,0BACA,mBACA,oBACA,gBACA,8BACA,gBACA,UACA,aACA,QACA,oBACA,cACA,WACA,eACA,aACA,uBACA,wBACA,2BACA,aACA,iBACA,WACA,gBACA,qBACA,gBACA,YACA,gBACA,eACA,UACA,iBACA,oBACA,uBACA,wBACA,8BACA,iBACA,kBACA,SACA,eACA,UACA,eACA,YACA,qBACA,gBACA,uBACA,WACA,eACA,eACA,yBACA,qBACA,QACA,UACA,aACA,UACA,cACA,SACA,SACA,aACA,uBACA,gBACA,oBACA,sBACA,iBACA,QACA,kBACA,cACA,YACA,iBACA,kBACA,oBACA,6BACA,2BACA,aACA,sBACA,iBACA,iBACA,QACA,WACA,kBACA,qBACA,2BACA,qBACA,yBACA,aACA,yBACA,eACA,cACA,0BACA,kBACA,gBACA,uBACA,iBACA,oBACA,mBACA,qBACA,YACA,mBACA,qBACA,gBACA,8BACA,oBACA,qBACA,gBACA,oBACA,UACA,sBACA,aACA,oBACA,uBACA,8BACA,aACA,SACA,aACA,cACA,aACA,WACA,eACA,gBACA,aACA,eACA,UACA,YACA,cACA,UACA,gBACA,4BACA,YACA,cACA,aACA,uBACA,SACA,MACA,YACA,UACA,aACA,oBACA,YACA,aACA,SACA,qBACA,eACA,cACA,aACA,kBACA,uBACA,wBACA,WACA,eACA,WACA,gBACA,uBACA,eACA,oBACA,YACA,eACA,mBACA,gCACA,6BACA,6BACA,mCACA,WACA,oBACA,YACA,mBACA,QACA,yBACA,kBACA,kBACA,QACA,OACA,WACA,oBACA,sBACA,sBACA,aACA,oBACA,cACA,iBACA,iBACA,wBACA,QACA,iBACA,eACA,gBACA,oBACA,gBACA,OACA,SACA,eACA,cACA,gBACA,eACA,iBACA,oBACA,cACA,cACA,iBACA,gBACA,oBACA,cACA,gBACA,mBACA,cACA,aACA,eACA,aACA,gBACA,gBACA,oBACA,aACA,QACA,cACA,qBACA,YACA,YACA,mBACA,SACA,WACA,cACA,qBACA,cACA,YACA,mBACA,YACA,aACA,WACA,oBACA,cACA,YACA,SACA,WACA,WACA,UACA,YACA,uBACA,KACA,OACA,gBACA,WACA,WACA,gBACA,aACA,OACA,UACA,wBACA,aACA,eACA,QACA,WACA,OACA,oBACA,mBACA,uBACA,SACA,cACA,mBACA,YACA,eACA,sBACA,iBACA,mBACA,8BACA,mBACA,kBACA,sBACA,MACA,SACA,SACA,qBACA,mBACA,uBACA,SACA,mBACA,sBACA,UACA,cACA,SACA,iBACA,iBACA,sBACA,eACA,iBACA,mBACA,kBACA,iBACA,iBACA,yBACA,2BACA,cACA,qBACA,iBACA,cACA,qBACA,gBACA,eACA,uBACA,eACA,gBACA,wBACA,aACA,eACA,gBACA,UACA,eACA,aACA,4BACA,cACA,eACA,4BACA,oBACA,iBACA,oBACA,iBACA,OACA,aACA,WACA,YACA,YACA,qBACA,gBACA,UACA,cACA,0BACA,cACA,aACA,6BACA,gBACA,yBACA,aACA,YACA,mBACA,SACA,qBACA,yBACA,oBACA,mBACA,wBACA,2BACA,UACA,mBACA,0BACA,2BACA,iBACA,sBACA,cACA,oBACA,kBACA,aACA,YACA,mBACA,iBACA,aACA,aACA,WACA,eACA,iBACA,iBACA,mBACA,UACA,aACA,kBACA,oBACA,cACA,cACA,oBACA,kBACA,iBACA,6BACA,aACA,0BACA,mBACA,UACA,qBACA,iBACA,mBACA,qBACA,eACA,UACA,cACA,UACA,kBACA,eACA,mBACA,iBACA,mBACA,iBACA,iBACA,2BACA,iBACA,qBACA,qBACA,iBACA,kBACA,eACA,OACA,kBACA,aACA,YACA,eACA,SACA,oBACA,yBACA,wBACA,eACA,wBACA,mBACA,UACA,iBACA,mCACA,iBACA,qBACA,eACA,cACA,gBACA,uBACA,iBACA,mBACA,WACA,eACA,mBACA,cACA,WACA,qBACA,iBACA,YACA,SACA,QACA,aACA,gBACA,sBACA,mBACA,2BACA,qBACA,kBACA,qBACA,WACA,gBACA,iBACA,gBACA,mBACA,qBACA,oBACA,mBACA,gBACA,mBACA,cACA,iBACA,4BACA,0BACA,8BACA,qBACA,qBACA,eACA,OACA,kBACA,gBACA,gBACA,iBACA,eACA,aACA,QACA,UACA,SACA,cACA,aACA,cACA,iBACA,cACA,qBACA,iBACA,oBACA,QACA,eACA,iBACA,MACA,gBACA,iBACA,SACA,aACA,WACA,eACA,YACA,YACA,cACA,SACA,cACA,eACA,kBACA,OACA,gBACA,cACA,WACA,WACA,aACA,MACA,aACA,mBACA,aACA,oBACA,iBACA,0BACA,QACA,WACA,qBACA,qBACA,cACA,uBACA,mBACA,aACA,iBACA,gBACA,eACA,cACA,gBACA,sBACA,0BACA,eACA,WACA,OACA,WACA,iBACA,iBACA,kBACA,sBACA,eACA,QACA,SACA,iBACA,sBACA,cACA,eACA,cACA,kBACA,mBACA,gBACA,mBACA,OACA,gBACA,uBACA,2BACA,+BACA,sBACA,iBACA,qBACA,iBACA,8BACA,WACA,gBACA,WACA,gBACA,kBACA,yBACA,uBACA,aACA,cACA,gBACA,cACA,wBACA,aACA,mBACA,iBACA,mBACA,oBACA,gBACA,oBACA,qBACA,MACA,OACA,mBACA,8BACA,kBACA,cACA,gBACA,eACA,gBACA,2BACA,4BACA,aACA,SACA,aACA,mBACA,gBACA,mBACA,cACA,YACA,mBACA,gBACA,0BACA,4BACA,2BACA,sBACA,uBACA,yBACA,oBACA,8BACA,gBACA,uBACA,oBACA,qBACA,YACA,gBACA,iBACA,uBACA,yBACA,kCACA,2BACA,WACA,cACA,WACA,oBACA,yBACA,gBACA,gBACA,eACA,mBACA,eACA,eACA,oBACA,oBACA,mBACA,kBACA,4BACA,kBACA,oBACA,uBACA,gBACA,SACA,oBACA,aACA,iBACA,iBACA,oBACA,iBACA,gBACA,iBACA,kBACA,gBACA,gBACA,cACA,MACA,cACA,kBACA,gBACA,WACA,wBACA,oBACA,aACA,aACA,eACA,iBACA,wBACA,cACA,wBACA,wBACA,aACA,mBACA,iBACA,eACA,cACA,8BACA,sBACA,oBACA,oBACA,4BACA,oBACA,iBACA,mBACA,SACA,YACA,YACA,mBACA,UACA,WACA,WACA,UACA,UACA,iBACA,kBACA,QACA,cACA,UACA,iBACA,oBACA,cACA,mBACA,8BACA,wBACA,QACA,iBACA,WACA,gBACA,uBACA,iBACA,kBACA,mBACA,uBACA,eACA,OACA,kBACA,qBACA,iBACA,kBACA,gBACA,eACA,qBACA,iBACA,eACA,eACA,oBACA,yBACA,kBACA,0BACA,iBACA,0BACA,gBACA,mBACA,wBACA,uBACA,mBACA,iBACA,wBACA,eACA,cACA,kBACA,kBACA,iBACA,OACA,YACA,iBACA,uBACA,oBACA,cACA,WACA,kBACA,cACA,eACA,iBACA,oBACA,UACA,WACA,MACA,OACA,2BACA,mBACA,sBACA,oBACA,6BACA,oBACA,oBACA,iBACA,OACA,eACA,cACA,aACA,WACA,oBACA,sBACA,WACA,yBACA,YACA,OACA,qBACA,qBACA,oBACA,oBACA,SACA,WACA,cACA,qBACA,YACA,mBACA,YACA,OACA,eACA,QACA,cACA,UACA,qBACA,wBACA,0BACA,yBACA,kBACA,oBACA,2BACA,eACA,UACA,iBACA,kBACA,SACA,gBACA,eACA,iBACA,eACA,aACA,oBACA,eACA,UACA,gBACA,iBACA,eACA,2BACA,eACA,yBACA,aACA,YACA,eACA,QACA,cACA,eACA,OACA,SACA,WACA,oBACA,QACA,mBACA,YACA,cACA,aACA,MACA,QACA,iBACA,YACA,SACA,WACA,OACA,kBACA,wBACA,gBACA,eACA,eACA,oBACA,cACA,cACA,qBACA,gBACA,cACA,2BACA,gBACA,6BACA,QACA,gBACA,kBACA,mBACA,cACA,cACA,kBACA,mBACA,cACA,mBACA,cACA,cACA,oBACA,kBACA,mBACA,qBACA,yBACA,uBACA,2BACA,kBACA,4BACA,SACA,YACA,eACA,mBACA,mBACA,oBACA,oBACA,qBACA,kBACA,kBACA,iBACA,uBACA,0BACA,eACA,oBACA,eACA,oBACA,yBACA,eACA,oBACA,eACA,oBACA,SACA,sBACA,eACA,eACA,cACA,gBACA,QACA,UACA,eACA,OACA,UACA,iBACA,SACA,2BACA,cACA,qBACA,gBACA,yBACA,WACA,eACA,oBACA,iBACA,sBACA,cACA,aACA,cACA,mBACA,wBACA,qBACA,QACA,aACA,gBACA,sBACA,kBACA,eACA,eACA,yBACA,oBACA,0BACA,eACA,cACA,eACA,oBACA,sBACA,OACA,kBACA,WACA,YACA,wBACA,uBACA,mBACA,cACA,gBACA,eACA,qBACA,eACA,kBACA,kBACA,qBACA,uBACA,gBACA,kBACA,wBACA,sBACA,+BACA,yBACA,mCACA,6BACA,aACA,mBACA,cACA,0BACA,iBACA,iBACA,aACA,aACA,uBACA,oBACA,oBACA,kBACA,sBACA,sBACA,6BACA,oBACA,gBACA,aACA,eACA,iBACA,UACA,cACA,cACA,SACA,cACA,kBACA,cACA,kBACA,cACA,eACA,aACA,cACA,mBACA,gBACA,aACA,eACA,cACA,eACA,aACA,eACA,eACA,gBACA,iBACA,aACA,kBACA,iBACA,UACA,eACA,gBACA,oBACA,oBACA,gBACA,eACA,mBACA,oBACA,iBACA,cACA,gBACA,aACA,iBACA,oBACA,iBACA,aACA,aACA,eACA,oBACA,aACA,uBACA,kBACA,uBACA,sBACA,UACA,UACA,OACA,uBACA,QACA,WACA,qBACA,YACA,mBACA,YACA,aACA,kBACA,mBACA,0BACA,aACA,aACA,iBACA,YACA,eACA,WACA,WACA,UACA,mCACA,0BACA,gBACA,YACA,eACA,sBACA,cACA,eACA,SACA,cACA,cACA,cACA,YACA,iBACA,UACA,gBACA,UACA,UACA,qBACA,iBACA,oBACA,2BACA,mBACA,iBACA,WACA,eACA,gBACA,YACA,WACA,gBACA,qBACA,gBACA,UACA,WACA,MACA,iBACA,iBACA,SACA,cACA,UACA,SACA,cACA,aACA,gBACA,YACA,cACA,iBACA,wBACA,WACA,gBACA,YACA,OACA,WACA,oBACA,cACA,eACA,cACA,kBACA,uBACA,mBACA,gBACA,mBACA,gBACA,qBACA,iBACA,eACA,SACA,SACA,aACA,gBACA,YACA,iBACA,eACA,mBACA,sBACA,qBACA,aACA,mBACA,wBACA,iCACA,mCACA,yBACA,4BACA,sBACA,WACA,SACA,aACA,oBACA,eACA,eACA,UACA,0BACA,mBACA,uBACA,sBACA,uBACA,8BACA,oBACA,kBACA,YACA,iBACA,oBACA,wBACA,gBACA,cACA,gBACA,sBACA,uBACA,gCACA,kBACA,+BACA,yBACA,eACA,sBACA,iCACA,4BACA,aACA,gBACA,oBACA,kBACA,0BACA,oBACA,+BACA,qBACA,yBACA,sBACA,8BACA,qBACA,wBACA,oBACA,oBACA,8BACA,4BACA,mCACA,mCACA,aACA,aACA,MACA,aACA,QACA,kBACA,aACA,kBACA,YACA,gBACA,eACA,YACA,eACA,yBACA,uBACA,sBACA,cACA,UACA,aACA,oBACA,SACA,aACA,gBACA,eACA,SACA,gBACA,WACA,WACA,OACA,WACA,cACA,gBACA,WACA,eACA,iBACA,YACA,QACA,MACA,OACA,eACA,kBACA,eACA,cACA,YACA,cACA,aACA,aACA,aACA,QACA,cACA,WACA,aACA,mBACA,gBACA,iBACA,cACA,qBACA,mBACA,qBACA,aACA,iBACA,mBACA,eACA,uBACA,sBACA,mBACA,eACA,eACA,qBACA,YACA,oBACA,iBACA,mBACA,eACA,gBACA,UACA,aACA,eACA,iBACA,kBACA,cACA,SACA,aACA,mBACA,mBACA,cACA,iBACA,wBACA,UACA,UACA,OACA,YACA,mBACA,gBACA,WACA,kBACA,UACA,YACA,WACA,oBACA,eACA,WACA,cACA,WACA,WACA,oBACA,WACA,aACA,gBACA,eACA,gBACA,aACA,mBACA,gBACA,aACA,gBACA,YACA,kBACA,UACA,4BACA,2BACA,YACA,YACA,oBACA,mBACA,QACA,YACA,OACA,WACA,WACA,kBACA,SACA,iBACA,eACA,YACA,UACA,QACA,YACA,YACA,WACA,QACA,aACA,WACA,QACA,aACA,iBACA,aACA,kBACA,iBACA,gBACA,aACA,WACA,eACA,aACA,cACA,gBACA,QACA,UACA,aACA,sBACA,qBACA,mBACA,0BACA,gBACA,sBACA,kBACA,qBACA,qBACA,oBACA,kBACA,mBACA,mBACA,WACA,YACA,4BACA,sBACA,WACA,kBACA,iBACA,SACA,OACA,gBACA,aACA,UACA,kBACA,UACA,wBACA,SACA,QACA,sBACA,WACA,iBACA,eACA,aACA,WACA,SACA,cACA,UACA,aACA,aACA,oBACA,mBACA,yBACA,aACA,YACA,cACA,WACA,gBACA,SACA,UACA,aACA,oBACA,eACA,eACA,cACA,MACA,kBACA,qBACA,kBACA,aACA,UACA,yBACA,WACA,QACA,cACA,aACA,uBACA,aACA,gBACA,sBACA,8BACA,cACA,KACA,QACA,aACA,cACA,gBACA,aACA,cACA,eACA,gBACA,aACA,WACA,UACA,gBACA,aACA,YACA,iBACA,mBACA,yBACA,eACA,kBACA,8BACA,sBACA,mBACA,gCACA,2BACA,+BACA,4BACA,4BACA,yBACA,yBACA,yBACA,yBACA,wBACA,wBACA,4BACA,wBACA,sBACA,yBACA,0BACA,uBACA,0BACA,mBACA,qBACA,oBACA,sBACA,qBACA,mBACA,yBACA,2BACA,YACA,qBACA,uBACA,gBACA,cACA,mBACA,YACA,iBACA,gBACA,mBACA,uBACA,iBACA,qBACA,eACA,aACA,WACA,YACA,aACA,WACA,aACA,WACA,iBACA,oBACA,sBACA,eACA,yBACA,kBACA,OACA,aACA,aACA,iBACA,UACA,aACA,YACA,cACA,kBACA,oBACA,OACA,QACA,wBACA,sBACA,kCACA,+BACA,QACA,OACA,qBACA,4BACA,UACA,iBACA,sBACA,6BACA,UACA,0BACA,cACA,aACA,SACA,aACA,gBACA,kBACA,aACA,QACA,gBACA,SACA,aACA,0BACA,YACA,WACA,YACA,aACA,kBACA,qBACA,4BACA,cACA,iBACA,wBACA,sBACA,iBACA,kBACA,mBACA,cACA,uBACA,UACA,YACA,cACA,sBACA,2BACA,oBACA,yBACA,YACA,QACA,qBACA,YACA,SACA,iBACA,UACA,cACA,iBACA,UACA,eACA,eACA,WACA,aACA,eACA,aACA,kBACA,kBACA,oBACA,iBACA,WACA,YACA,8BACA,UACA,mBACA,QACA,cACA,qBACA,KACA,UACA,aACA,mBACA,SACA,uBACA,kCACA,iBACA,oBACA,oBACA,cACA,gBACA,aACA,iBACA,kBACA,qBACA,yBACA,WACA,QACA,eACA,QACA,aACA,OACA,WACA,MACA,WACA,YACA,gBACA,cACA,oBACA,YACA,aACA,YACA,WACA,uBACA,WACA,iBACA,iBACA,UACA,kBACA,UACA,sBACA,aACA,YACA,mBACA,qBACA,QACA,gBACA,kBACA,QACA,uBACA,mBACA,gBACA,QACA,WACA,kBACA,kBACA,YACA,6BACA,SACA,SACA,aACA,YACA,WACA,0BACA,4BACA,4BACA,eACA,cACA,eACA,oBACA,sBACA,6BACA,oBACA,kBACA,gBACA,qBACA,aACA,kBACA,gBACA,aACA,eACA,eACA,UACA,cACA,UACA,cACA,gBACA,cACA,cACA,MACA,WACA,UACA,mCACA,mBACA,oBACA,mBACA,yBACA,sBACA,uBACA,6BACA,kBACA,wBACA,UACA,uBACA,gBACA,YACA,iBACA,eACA,kBACA,qBACA,iBACA,wBACA,oBACA,8BACA,yBACA,cACA,eACA,wBACA,eACA,eACA,uBACA,qBACA,oBACA,iBACA,cACA,0BACA,iBACA,eACA,mBACA,aACA,gBACA,qBACA,kBACA,UACA,0BACA,gBACA,cACA,sBACA,aACA,cACA,2BACA,eACA,uBACA,WACA,cACA,eACA,gBACA,oBACA,iBACA,gBACA,QACA,gBACA,qBACA,iBACA,gBACA,aACA,YACA,SACA,YACA,cACA,eACA,kBACA,cACA,YACA,YACA,aACA,aACA,YACA,4BACA,WACA,iBACA,YACA,aACA,eACA,mBACA,UACA,cACA,iBACA,oBACA,cACA,SACA,uBACA,cACA,UACA,uBACA,WACA,YACA,qBACA,sCACA,yBACA,wBACA,kBACA,sBACA,oBACA,iCACA,mBACA,4BACA,mBACA,kBACA,oBACA,oBACA,aACA,aACA,eACA,mBACA,mBACA,4BACA,iCACA,wBACA,mBACA,cACA,sBACA,iBACA,mBACA,SACA,aACA,WACA,iBACA,YACA,mBACA,cACA,kBACA,QACA,YACA,sBACA,gBACA,gBACA,gBACA,kBACA,kBACA,kBACA,yBACA,0BACA,0BACA,0BACA,yBACA,yBACA,wBACA,eACA,oBACA,mBACA,kBACA,yBACA,0BACA,eACA,iBACA,UACA,cACA,aACA,YACA,QACA,QACA,QACA,oBACA,aACA,aACA,sBACA,aACA,aACA,eACA,gBACA,UACA,+BACA,eACA,iBACA,gBACA,kBACA,SACA,aACA,oBACA,eACA,iBACA,oBACA,iBACA,iBACA,cACA,sBACA,gBACA,gBACA,gBACA,yBACA,iBACA,aACA,mBACA,cACA,iBACA,cACA,gBACA,iBACA,iBACA,qBACA,4BACA,OACA,eACA,mBACA,uBACA,qBACA,sBACA,OACA,eACA,gBACA,YACA,YACA,aACA,WACA,iBACA,gBACA,oBACA,WACA,kBACA,aACA,wBACA,iBACA,eACA,WACA,kBACA,mBACA,aACA,QACA,YACA,cACA,YACA,aACA,YACA,cACA,OACA,MACA,WACA,SACA,YACA,oBACA,WACA,gBACA,WACA,iBACA,OACA,WACA,cACA,mBACA,aACA,aACA,QACA,aACA,WACA,qBACA,iBACA,4BACA,mBACA,oBACA,iCACA,iBACA,kBACA,eACA,oBACA,iBACA,iBACA,qBACA,sBACA,iBACA,wBACA,cACA,eACA,kBACA,YACA,gBACA,sBACA,YACA,eACA,qBACA,sBACA,oBACA,aACA,kBACA,mBACA,yBACA,mBACA,uBACA,yBACA,sBACA,sBACA,mBACA,eACA,iBACA,gBACA,sBACA,mCACA,eACA,qBACA,iBACA,qBACA,WACA,eACA,wBACA,WACA,eACA,gBACA,eACA,eACA,qBACA,kBACA,oBACA,2BACA,4BACA,eACA,mBACA,wBACA,oBACA,kBACA,2BACA,eACA,qBACA,gCACA,WACA,mBACA,uBACA,qBACA,QACA,yBACA,sBACA,gBACA,UACA,uBACA,yBACA,yBACA,iBACA,2BACA,uBACA,UACA,uBACA,gBACA,cACA,YACA,mBACA,kBACA,eACA,mBACA,sBACA,wBACA,qBACA,iBACA,iBACA,mBACA,eACA,eACA,aACA,wBACA,mBACA,iBACA,kBACA,iBACA,wBACA,oBACA,kBACA,0BACA,SACA,iBACA,sBACA,aACA,oBACA,yBACA,wBACA,oBACA,kBACA,eACA,YACA,YACA,mBACA,eACA,yBACA,aACA,oBACA,iBACA,uBACA,eACA,QACA,UACA,iBACA,eACA,aACA,mBACA,oBACA,iBACA,kBACA,kBACA,aACA,eACA,oBACA,eACA,qBACA,uBACA,0BACA,oBACA,aACA,qBACA,gBACA,iBACA,iBACA,eACA,mBACA,YACA,oBACA,aACA,sBACA,gBACA,eACA,gBACA,oBACA,qBACA,kBACA,cACA,aACA,8BACA,aACA,WACA,eACA,OACA,mBACA,UACA,eACA,mBACA,uBACA,YACA,cACA,mBACA,gBACA,gBACA,QACA,qBACA,mBACA,eACA,wBACA,mBACA,mBACA,iBACA,aACA,QACA,OACA,wBACA,qBACA,YACA,WACA,cACA,gBACA,uBACA,aACA,kBACA,iBACA,sBACA,eACA,eACA,eACA,kBACA,2BACA,sBACA,iBACA,oBACA,sBACA,wBACA,iBACA,iBACA,qBACA,qBACA,kCACA,2BACA,YACA,aACA,iBACA,mBACA,mBACA,gBACA,wBACA,cACA,qBACA,oBACA,oBACA,2BACA,0BACA,yBACA,iBACA,UACA,2BACA,yBACA,YACA,gBACA,eACA,kBACA,oBACA,gBACA,sBACA,mBACA,gBACA,aACA,YACA,YACA,YACA,kBACA,gBACA,YACA,WACA,gBACA,mBACA,kBACA,cACA,UACA,uBACA,sBACA,oBACA,iBACA,4BACA,mBACA,oBACA,qBACA,4BACA,0BACA,YACA,YACA,eACA,WACA,iBACA,iBACA,iBACA,eACA,6BACA,aACA,cACF,EAWA,SAASj9a,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIjB,CAMD,SAASgvT,EAAShvT,EAAI,CACpB,OAAOsoM,EAAO,IAAKtoM,EAAI,IAAI,CAC5B,CAMD,SAASsoM,KAAU1oR,EAAM,CAEvB,OADeA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAElD,CASD,SAASunZ,KAAUz9X,EAAM,CAEvB,MADe,IAAMA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,GAAG,EAAI,GAE7D,CAWD,SAASk8a,EAAYvwB,EAAM,CAKzB,MAAMwwB,EAAU,+BACVC,EAAiB,0BACjBn0B,EAAY,0BACZo0B,EAAiB90B,EAAO/0G,EAAO2pI,EAASC,CAAc,EAAGn0B,CAAS,EAIlEq0B,EAAwB/0B,EAFV,iCACC,kCACyC,EAExDg1B,EAAyB,eAQzB7mB,EAAU,CACd,UAAW,SACX,UAAW,EACX,MAT4BljH,EAC5B6pI,EACAnjB,EAASojB,CAAqB,EAC9BpjB,EAASqjB,CAAsB,CACnC,CAMA,EAEQrd,EAAY,yBACZsd,EAAqB,IAAI,IAAIP,CAAc,EAE3C9P,EAAU,CACd,SAAU,CACR,CACE,UAAW,iB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ACd,UAAW,SACX,MAAO,0BACX,EAEQC,EAAO/xB,EAAK,QAAQA,EAAK,iBAAkB,CAC/C,UAAW,CACf,CAAG,EACK1oG,EAAS0oG,EAAK,QAAQA,EAAK,kBAAmB,CAClD,UAAW,CACf,CAAG,EACKgyB,EAAa,CACjB,UAAW,QACX,MAAO,wEACP,UAAW,CACf,EACE,OAAA16H,EAAO,SAAWA,EAAO,SAAS,MAAK,EACvCA,EAAO,SAAS,KAAK06H,CAAU,EAsCxB,CACL,KAAM,UACN,QAAS,CACP,IACA,KACD,EACD,SAAU/kB,EACV,SAAU,CA3CQ,CAClB,UAAW,WACX,SAAU,CACR,CACE,MAAO,KACR,EACD,CACE,MAAO,KACP,UAAW,CACZ,EACD,CACE,MAAO,KACP,UAAW,CACZ,EACD,CACE,MAAO,OACR,EACD,CACE,MAAO,OACR,CACF,CACL,EAEgC,CAC5B,UAAW,WACX,SAAU,CACR,CACE,MAAO,UACR,EACD,CACE,MAAO,IACP,UAAW,CACZ,CACF,CACL,EAYMtmB,EACAqZ,EAAK,qBACL8xB,EACA9xB,EAAK,YACL+xB,EACAz6H,EACA,CACE,MAAO,IACR,EACD,CACE,MAAO,KACR,CACF,CACL,CACC,CAED,OAAA26H,GAAiBJ,sDChHjB,SAASK,EAAQlyB,EAAM,CAErB,MAAO,CACL,KAAM,gBACN,iBAAkB,GAClB,QAAS,CAAE,MAAQ,EACnB,SAAU,CACR,SAAU,OAASA,EAAK,SACxB,KAEE,6OACF,SACE,kpBAWH,EACD,SAAU,CACR,CACE,UAAW,UACX,MAAO,63BAqBP,IAAK,KACN,EAEDA,EAAK,QAAQ,gBAAiB,GAAG,EACjCA,EAAK,qBACLA,EAAK,kBACL,CACE,UAAW,SACX,MAAO,IACP,IAAK,WACL,UAAW,CACZ,EACD,CACE,UAAW,QACX,MAAO,MACP,IAAK,MACL,QAAS,MACT,UAAW,CACZ,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,aACR,EACD,CACE,MAAO,WACR,CACF,EACD,UAAW,CACZ,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,oCACR,EACD,CACE,MAAO,cACR,EACD,CACE,MAAO,YACR,CACF,EACD,UAAW,CACZ,CACF,EAED,QAAS,IACb,CACC,CAED,OAAAmyB,GAAiBD,sDCpGjB,SAASE,EAAMpyB,EAAM,CACnB,MAAO,CACL,KAAM,QACN,SACE,ylBAUF,SAAU,CACRA,EAAK,QAAQ,KAAM,GAAG,CACvB,CACL,CACC,CAED,OAAAqyB,GAAiBD,sDCnBjB,SAAS/+a,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIjB,CAMD,SAASsoM,KAAU1oR,EAAM,CAEvB,OADeA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAElD,CASD,SAASunZ,KAAUz9X,EAAM,CAEvB,MADe,IAAMA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,GAAG,EAAI,GAE7D,CAUD,SAASi+a,EAAKtyB,EAAM,CAClB,MAAMiN,EAAW,CACf,MACA,SACA,QACA,MACA,QACA,OACA,UACA,QACA,QACA,SACA,QACA,QACA,QACA,OACA,QACA,MACA,SACA,QACA,WACA,UACA,WACA,MACA,QACA,WACA,UACA,UACA,SACA,MACA,KACA,OACA,OACA,OACA,QACA,WACA,aACA,YACA,cACA,WACA,aACA,MACA,OACA,OACA,SACA,OACA,MACA,QACA,SACA,QACA,MACA,UACA,OACA,SACA,WACA,OACA,WACA,WACA,WACA,gBACA,gBACA,aACA,WACA,eACA,eACA,YACA,cACA,UACA,cACA,iBACA,mBACA,cACA,WACA,WACA,WACA,gBACA,gBACA,aACA,cACA,aACA,QACA,OACA,SACA,OACA,OACA,KACA,MACA,KACA,QACA,MACA,QACA,OACA,OACA,OACA,OACA,KACA,UACA,SACA,OACA,SACA,QACA,YACA,MACA,QACA,KACA,KACA,MACA,QACA,SACA,SACA,SACA,SACA,KACA,KACA,OACA,KACA,MACA,MACA,OACA,UACA,KACA,MACA,MACA,OACA,UACA,OACA,MACA,MACA,QACA,SACA,YACA,OACA,MACA,KACA,YACA,KACA,KACA,OACA,OACA,UACA,WACA,WACA,WACA,OACA,OACA,MACA,SACA,UACA,QACA,SACA,UACA,YACA,SACA,QACA,MACA,SACA,OACA,UACA,SACA,SACA,SACA,QACA,OACA,WACA,aACA,YACA,UACA,cACA,cACA,WACA,aACA,aACA,QACA,SACA,SACA,UACA,WACA,WACA,MACA,QACA,SACA,aACA,OACA,SACA,QACA,UACA,OACA,QACA,OACA,QACA,QACA,MACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,WACA,OACA,UACA,MACA,OACA,OACA,QACA,KACA,WACA,KACA,UACA,QACA,QACA,SACA,SACA,SACA,UACA,QACA,QACA,MACA,QACA,SACA,MACA,OACA,UACA,YACA,OACA,OACA,QACA,QACA,MACA,MACA,KACJ,EAGQslB,EAAkB,uBAClBC,EAAgB,CACpB,SAAU,SACV,QAASvlB,EAAS,KAAK,GAAG,CAC9B,EACQC,EAAQ,CACZ,UAAW,QACX,MAAO,UACP,IAAK,MACL,SAAUslB,CACd,EACQ5S,EAAS,CACb,MAAO,OACP,IAAK,IAET,EACQ5O,EAAM,CACV,SAAU,CACR,CACE,MAAO,MACR,EACD,CACE,MAAOnqH,EACL,iDAGA,uBACD,CACF,EACD,CACE,MAAO,gBACP,UAAW,CACZ,CACF,CACL,EACQ4rI,EAAkB,CACtBzyB,EAAK,iBACLkN,EACA8D,CACJ,EACQ0hB,EAAe,CACnB,IACA,KACA,KACA,KACA,IACA,IACA,GACJ,EAMQC,EAAmB,CAAC3uT,EAAQkwJ,EAAM2sI,EAAQ,QAAU,CACxD,MAAM+xB,EAAU/xB,IAAU,MACtBA,EACAh6G,EAAOg6G,EAAO3sI,CAAI,EACtB,OAAO2yB,EACLA,EAAO,MAAO7iL,EAAQ,GAAG,EACzBkwJ,EACA,oBACA0+J,EACA,oBACA/xB,EACA0xB,CACN,CACA,EAMQM,EAAY,CAAC7uT,EAAQkwJ,EAAM2sI,IACxBh6G,EACLA,EAAO,MAAO7iL,EAAQ,GAAG,EACzBkwJ,EACA,oBACA2sI,EACA0xB,CACN,EAEQO,EAAwB,CAC5B9hB,EACAhR,EAAK,kBACLA,EAAK,QACH,OACA,OACA,CACE,eAAgB,EACjB,CACF,EACD4f,EACA,CACE,UAAW,SACX,SAAU6S,EACV,SAAU,CACR,CACE,MAAO,kBACP,IAAK,MACL,UAAW,CACZ,EACD,CACE,MAAO,kBACP,IAAK,MACL,UAAW,CACZ,EACD,CACE,MAAO,kBACP,IAAK,MACL,UAAW,CACZ,EACD,CACE,MAAO,kBACP,IAAK,MACL,UAAW,CACZ,EACD,CACE,MAAO,gBACP,IAAK,IACL,UAAW,CACZ,EACD,CACE,MAAO,UACP,IAAK,IACL,UAAW,CACZ,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAEzyB,EAAK,gBAAkB,CACpC,EACD,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAEA,EAAK,gBAAkB,CACpC,EACD,CACE,MAAO,UACP,UAAW,CACZ,EACD,CACE,MAAO,eACP,UAAW,CACZ,CACF,CACF,EACD,CACE,UAAW,SACX,MAAO,4EACP,UAAW,CACZ,EACD,CACE,MAAO,WAAaA,EAAK,eAAiB,gDAC1C,SAAU,kCACV,UAAW,EACX,SAAU,CACRA,EAAK,kBACL,CACE,UAAW,SACX,SAAU,CAER,CAAE,MAAO2yB,EAAiB,SAAU/2B,EAAO,GAAG82B,CAAY,CAAC,CAAG,EAE9D,CAAE,MAAOC,EAAiB,SAAU,MAAO,KAAK,CAAG,EACnD,CAAE,MAAOA,EAAiB,SAAU,MAAO,KAAK,CAAG,EACnD,CAAE,MAAOA,EAAiB,SAAU,MAAO,KAAK,CAAG,CACpD,EACD,UAAW,CACZ,EACD,CACE,UAAW,SACX,SAAU,CACR,CAGE,MAAO,aACP,UAAW,CACZ,EAED,CAAE,MAAOE,EAAU,YAAa,KAAM,IAAI,CAAC,EAE3C,CAAE,MAAOA,EAAU,OAAQj3B,EAAO,GAAG82B,CAAY,EAAG,IAAI,CAAC,EAEzD,CAAE,MAAOG,EAAU,OAAQ,KAAM,IAAI,CAAC,EACtC,CAAE,MAAOA,EAAU,OAAQ,KAAM,IAAI,CAAC,EACtC,CAAE,MAAOA,EAAU,OAAQ,KAAM,IAAI,CAAC,CACvC,CACF,CACF,CACF,EACD,CACE,UAAW,WACX,cAAe,MACf,IAAK,uBACL,WAAY,GACZ,UAAW,EACX,SAAU,CAAE7yB,EAAK,UAAY,CAC9B,EACD,CACE,MAAO,UACP,UAAW,CACZ,EACD,CACE,MAAO,aACP,IAAK,YACL,YAAa,cACb,SAAU,CACR,CACE,MAAO,QACP,IAAK,IACL,UAAW,SACZ,CACF,CACF,CACL,EACE,OAAAkN,EAAM,SAAW4lB,EACjBlT,EAAO,SAAWkT,EAEX,CACL,KAAM,OACN,QAAS,CACP,KACA,IACD,EACD,SAAUN,EACV,SAAUM,CACd,CACC,CAED,OAAAC,GAAiBT,sDC1fjB,SAASU,EAAYhzB,EAAM,CACzB,MAAO,CACL,KAAM,cACN,YAAa,MACb,SAAU,CACR,CACE,UAAW,OACX,MAAO,kBACR,EAED,CACE,MAAO,oBACP,IAAK,IACL,YAAa,MACd,EAED,CACE,MAAO,gBACP,IAAK,WACL,YAAa,OACb,aAAc,GACd,WAAY,EACb,CACF,CACL,CACC,CAED,OAAAizB,GAAiBD,sDC5BjB,SAASE,EAAOlzB,EAAM,CACpB,MAAM9oG,EAAS,CACb,UAAW,SACX,UAAW,EACX,SAAU,CACR,CACE,MAAO,iBACR,EACD8oG,EAAK,WACN,CACL,EAEE,MAAO,CACL,KAAM,SACN,iBAAkB,GAClB,SAAU,CACR,QAAS,qPAKT,SAAU,uMAGV,QAAS,oCACV,EACD,QAAS,OACT,SAAU,CACRA,EAAK,QAAQ,OAAQ,MAAM,EAC3BA,EAAK,QACH,IACA,IACA,CACE,UAAW,CACZ,CACF,EACD,CACE,UAAW,WACX,cAAe,kBACf,IAAK,UACL,QAAS,KACT,SAAU,CAAEA,EAAK,qBAAuB,CACzC,EACD,CACE,UAAW,QACX,cAAe,kBACf,IAAK,IACL,SAAU,CACR,CACE,cAAe,oBAChB,EACDA,EAAK,qBACN,CACF,EACD,CACE,UAAW,WACX,MAAO,oBACR,EACD,CACE,UAAW,OACX,MAAO,QACP,IAAK,IACL,SAAU,CACR,eAAgB,+BACjB,CACF,EACD,CACE,UAAW,OACX,MAAO,gBACR,EACD,CACE,cAAe,QACf,IAAK,IACL,SAAU,CAAEA,EAAK,qBAAuB,CACzC,EACDA,EAAK,kBACL9oG,CACD,CACL,CACC,CAED,OAAAi8H,GAAiBD,sDC/EjB,SAASE,EAAWpzB,EAAM,CACxB,MAAMiN,EAAW,CACf,QAEE,6IAEF,QACE,iBACF,SACE,mRAIN,EACQmI,EAAc,2BACdlI,EAAQ,CACZ,UAAW,QACX,MAAO,MACP,IAAK,KACL,SAAUD,CACd,EACQgG,EAAc,CAClBjT,EAAK,QAAQA,EAAK,cAChB,CACE,OAAQ,CACN,IAAK,WACL,UAAW,CACZ,CACT,CAAO,EACH,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CAAEA,EAAK,gBAAkB,CACpC,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACRA,EAAK,iBACLkN,CACD,CACF,CACF,CACF,EACD,CACE,UAAW,WACX,MAAO,MAAQlN,EAAK,QACrB,EACD,CACE,MAAO,IAAMA,EAAK,QACnB,EACD,CACE,MAAOA,EAAK,SAAW,OAASA,EAAK,QACtC,CACL,EACEkN,EAAM,SAAW+F,EAEjB,MAAMoC,EAAQrV,EAAK,QAAQA,EAAK,WAAY,CAC1C,MAAOoV,CACX,CAAG,EACKE,EAAqB,0BACrB5I,EAAS,CACb,UAAW,SACX,MAAO,YACP,YAAa,GAGb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,SAAUO,EACV,SAAU,CAAE,QAAS,OAAOgG,CAAW,CACxC,CACF,CACL,EAEE,MAAO,CACL,KAAM,aACN,QAAS,CAAE,MAAQ,EACnB,SAAUhG,EACV,QAAS,OACT,SAAUgG,EAAY,OAAO,CAC3BjT,EAAK,QAAQ,KAAM,GAAG,EACtB,CACE,UAAW,WACX,MAAO,QAAUoV,EAAc,YAAcE,EAC7C,IAAK,QACL,YAAa,GACb,SAAU,CACRD,EACA3I,CACD,CACF,EACD,CACE,MAAO,aACP,UAAW,EACX,SAAU,CACR,CACE,UAAW,WACX,MAAO4I,EACP,IAAK,QACL,YAAa,GACb,SAAU,CAAE5I,CAAQ,CACrB,CACF,CACF,EACD,CACE,UAAW,QACX,cAAe,QACf,IAAK,IACL,QAAS,YACT,SAAU,CACR,CACE,cAAe,UACf,eAAgB,GAChB,QAAS,YACT,SAAU,CAAE2I,CAAO,CACpB,EACDA,CACD,CACF,EACD,CACE,UAAW,OACX,MAAOD,EAAc,IACrB,IAAK,IACL,YAAa,GACb,UAAW,GACX,UAAW,CACZ,CACP,CAAK,CACL,CACC,CAED,OAAAie,GAAiBD,sDC1IjB,SAASE,EAAKtzB,EAAM,CAClB,MAAO,CACL,KAAM,OACN,iBAAkB,GAClB,SAAU,CACR,CACE,cACE,+FACF,IAAK,IAAK,eAAgB,GAC1B,SAAU,CAER,QACE,gkCAaF,QACE,4BAEF,SACE,ixCAYH,EACD,SAAU,CACR,CACE,UAAW,SACX,MAAO,IAAM,IAAK,IAClB,SAAU,CAACA,EAAK,gBAAgB,CACjC,EACD,CACE,UAAW,SACX,MAAO,IAAK,IAAK,IACjB,SAAU,CAACA,EAAK,gBAAgB,CACjC,EACD,CACE,UAAW,SACX,MAAO,IAAK,IAAK,IACjB,SAAU,CAACA,EAAK,gBAAgB,EAChC,UAAW,CACZ,EACDA,EAAK,cACLA,EAAK,oBACN,CACF,EACDA,EAAK,oBACN,CACL,CACC,CAED,OAAAuzB,GAAiBD,sDCpEjB,SAASE,EAAMxzB,EAAM,CACnB,MAAMgR,EAAM,CACV,UAAW,WACX,SAAU,CACR,CACE,MAAO,OACR,EACD,CACE,MAAO,OACP,IAAK,IACN,EACD,CACE,MAAO,OAAShR,EAAK,mBACtB,CACF,CACL,EACQ+oB,EAAU,CACd,eAAgB,GAChB,SAAU,CACR,SAAU,WACV,QACE,gJAEH,EACD,UAAW,EACX,QAAS,KACT,SAAU,CACR/oB,EAAK,kBACL,CACE,UAAW,SACX,SAAU,CACRA,EAAK,iBACLgR,CACD,EACD,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,CACF,CACF,EAED,CACE,MAAO,aACP,IAAK,MACL,eAAgB,GAChB,WAAY,GACZ,SAAU,CAAEA,CAAK,CAClB,EACD,CACE,UAAW,SACX,SAAU,CACRhR,EAAK,iBACLgR,CACD,EACD,SAAU,CACR,CACE,MAAO,SACP,IAAK,YACL,UAAW,EACZ,EAED,CACE,MAAO,YACP,IAAK,YACL,UAAW,EACZ,EAED,CACE,MAAO,oBACR,EAED,CACE,MAAO,oBACR,CACF,CACF,EAED,CACE,UAAW,SACX,MAAO,6DACR,EAED,CACE,UAAW,SACX,MAAO,4BACP,UAAW,CACZ,EACDA,CACD,CACL,EAEE,MAAO,CACL,KAAM,eACN,QAAS,CAAE,WAAa,EACxB,SAAU,CACRhR,EAAK,kBACL,CACE,MAAOA,EAAK,oBAAsB,UAClC,YAAa,GACb,IAAK,KACL,SAAU,CACR,CACE,UAAW,UACX,MAAOA,EAAK,mBACb,CACF,EACD,UAAW,CACZ,EACD,CACE,MAAOA,EAAK,oBAAsB,MAClC,IAAK,QACL,YAAa,GACb,SAAU,CACR,CACE,UAAW,YACX,MAAOA,EAAK,oBACZ,OAAQ+oB,CACT,CACF,EACD,UAAW,CACZ,CACF,EACD,QAAS,WACb,CACC,CAED,OAAA0K,GAAiBD,sDCpIjB,SAASE,EAAI1zB,EAAM,CACjB,MAAO,CACL,KAAM,MACN,SAAU,CACR,QACE,qXAMF,QACE,uDACF,SACE,0TAKH,EACD,SAAU,CACR,CACE,UAAW,OACX,MAAO,OACP,IAAK,OACL,UAAW,EACZ,EACD,CACE,UAAW,SACX,MAAO,eACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,IACR,CACF,CACF,EACD,CACE,UAAW,SACX,MAAO,oBACP,IAAK,KACN,EACDA,EAAK,kBACL,CACE,UAAW,OACX,MAAO,eACP,UAAW,CACZ,EACD,CACE,UAAW,SACX,UAAW,EACX,SAAU,CACR,CACE,MAAO,0DACR,EACD,CACE,MAAO,6CACR,EACD,CACE,MAAO,+CACR,EACD,CACE,MAAO,uCACR,CACF,CACF,EACDA,EAAK,iBACN,CACL,CACC,CAED,OAAA2zB,GAAiBD,sDCvEjB,SAASE,EAAI5zB,EAAM,CACjB,MAAM6zB,EAAe,CACnB,QACE,8CACF,QACE,yBACF,SACE,yFAEN,EACQC,EAAY,CAChB,UAAW,QACX,MAAO,OACP,IAAK,KACL,SAAUD,CACd,EACQE,EAAQ,CACZ,MAAO,uBACP,YAAa,GACb,UAAW,EACX,SAAU,CACR,CACE,UAAW,OACX,MAAO,KACR,CACF,CACL,EACQz8H,EAAS,CACb,UAAW,SACX,SAAU,CAAEw8H,CAAW,EACvB,SAAU,CACR,CACE,MAAO,KACP,IAAK,IACN,EACD,CACE,MAAO,IACP,IAAK,GACN,CACF,CACL,EACQ7gB,EAAc,CAClBjT,EAAK,YACLA,EAAK,kBACLA,EAAK,qBACL1oG,EACAy8H,CACJ,EACE,OAAAD,EAAU,SAAW7gB,EACd,CACL,KAAM,MACN,QAAS,CAAE,OAAS,EACpB,SAAU4gB,EACV,SAAU5gB,CACd,CACC,CAED,OAAA+gB,GAAiBJ,sDCxDjB,SAASK,EAASj0B,EAAM,CACtB,MAAO,CACL,KAAM,YACN,SAAU,CACR,CACE,UAAW,OACX,OAAQ,CAGN,IAAK,MACL,OAAQ,CACN,IAAK,IACL,YAAa,YACd,CACF,EACD,SAAU,CACR,CACE,MAAO,aACR,EACD,CACE,MAAO,kBACR,CACF,CACF,CACF,CACL,CACC,CAED,OAAAk0B,GAAiBD,sDC7BjB,SAASE,EAAKn0B,EAAM,CAClB,MAAMkmB,EAAY,CAChB,UAAW,WACX,MAAO,sbACX,EAEQkO,EAAU,CAEd,UAAW,WACX,MAAO,iBACX,EAEQ3O,EAAY,CAEhB,UAAW,WACX,MAAO,SACP,QAAS,UACb,EAEQ4O,EAAY,CAEhB,UAAW,WACX,MAAO,kBACX,EAEQC,EAAa,CAEjB,UAAW,SACX,MAAO,mpBACX,EAEQC,EAAW,CAEf,UAAW,UACX,MAAO,0RACX,EAEQC,EAAY,CAEhB,UAAW,OACX,MAAO,gBACX,EAEQC,EAAU,CAEd,UAAW,QACX,MAAO,UACX,EAEQn9H,EAAS,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,IACP,IAAK,GACN,CACF,EACD,QAAS,KACT,SAAU,CACRk9H,EACAtO,EACAkO,EACA3O,EACA4O,CACD,CACL,EAEE,MAAO,CACL,KAAM,OACN,iBAAkB,GAClB,SAAU,CACR,QACA,ilFACA,QACA,gYACD,EACD,SAAU,CACRr0B,EAAK,kBACLA,EAAK,qBACLA,EAAK,QACH,IACA,IACA,CACE,UAAW,CACZ,CACF,EACD,CACE,UAAW,WACX,cAAe,uCACf,IAAK,GACN,EACD1oG,EACAi9H,EACAH,EACA3O,EACA4O,EACAC,EACAG,EACAz0B,EAAK,WACN,CACL,CACC,CAED,OAAA00B,GAAiBP,sDC9GjB,SAASQ,EAAW30B,EAAM,CACxB,MAAM40B,EAAY,CAChB,UAAW,WACX,MAAO,sEACX,EACQC,EAAgB,yBAChBC,EAAgB,CACpB,SAAUD,EACV,QACE,guCAsBF,QACE,wCACF,SACE,kFACN,EACQE,EAAiB,CACrB,SAAUF,EACV,QAAS,6CACb,EACE,MAAO,CACL,KAAM,cACN,QAAS,CACP,KACA,OACA,QACA,UACA,eACD,EACD,SAAUC,EACV,QAAS,KACT,SAAU,CACRF,EACA50B,EAAK,oBACLA,EAAK,qBACLA,EAAK,cACLA,EAAK,kBACLA,EAAK,iBACL,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,KACP,IAAK,IACL,QAAS,MACT,SAAU,CAAEA,EAAK,gBAAkB,CACpC,CACF,CACF,EACD,CACE,UAAW,OACX,MAAO,eACP,IAAK,IACL,SAAU,CACR,eACE,gFAEH,EACD,SAAU,CACR,CACE,MAAO,OACP,UAAW,CACZ,EACDA,EAAK,QAAQA,EAAK,kBAAmB,CACnC,UAAW,aACvB,CAAW,EACD,CACE,UAAW,cACX,MAAO,QACP,IAAK,IACL,QAAS,KACV,EACDA,EAAK,oBACLA,EAAK,oBACN,CACF,EACD,CACE,UAAW,QACX,MAAO,IAAM+0B,EAAe,QAAQ,MAAM,GAAG,EAAE,KAAK,GAAG,EAAI,OAC3D,IAAK,SACL,WAAY,GACZ,SAAUA,EACV,SAAU,CAAE/0B,EAAK,qBAAuB,CACzC,EACD,CACE,MAAO,MAAQA,EAAK,oBACpB,UAAW,CACZ,CACF,CACL,CACC,CAED,OAAAg1B,GAAiBL,sDC/GjB,SAASM,EAAMj1B,EAAM,CAEnB,MAAO,CACL,KAAM,QACN,QAAS,CAAC,IAAI,EACd,SAAU,CACR,SAAU,eACV,QACE,sVAOF,SAEE,qHAGF,QACE,YACH,EACD,QAAS,UACT,SAAU,CACR,CACE,UAAW,UACX,MAAO,yBACP,UAAW,CACZ,EACDA,EAAK,QACH,SACA,SACA,CACE,SAAU,CAAC,MAAM,CAClB,CACF,EACD,CACE,UAAW,SACX,MAAO,wBAER,EACD,CACE,UAAW,OACX,MAAO,eACR,EACD,CACE,UAAW,OACX,MAAO,kBACP,UAAW,CACZ,EACD,CACE,MAAO,qBAAwB,UAAW,CAC3C,EACDA,EAAK,QAAQA,EAAK,iBAAkB,CAAC,UAAW,SAAU,UAAW,CAAC,CAAC,EACvEA,EAAK,QAAQA,EAAK,kBAAmB,CAAC,QAAS,IAAI,CAAC,EACpD,CACE,UAAW,SACX,MACE,2HAIF,UAAW,CACZ,EACD,CACE,MAAO,IACR,CACF,CACF,CACF,CAED,OAAAk1B,GAAiBD,sDCzEjB,SAASE,EAASn1B,EAAM,CACtB,MAAMo1B,EAAe,CACnB,UAAW,UACX,MAAO,gCACX,EACQ9iB,EAAW,CACf,UAAW,UACX,MAAO,qBACX,EACQvI,EAAU,CACd,UAAW,SACX,MAAO,8BACP,UAAW,CACf,EACQzyG,EAAS0oG,EAAK,QAAQA,EAAK,kBAAmB,CAClD,QAAS,IACb,CAAG,EACKq1B,EAAS,CACb,UAAW,OACX,SAAU,CACR,eAAgB,aACjB,EACD,MAAO,gBACP,IAAK,GACT,EACQ3oB,EAAS,CACb,UAAW,SACX,MAAO,MACP,IAAK,MACL,SAAU,CACR,OACA3C,EACAzyG,EACA89H,EACA9iB,CACD,CACL,EACQgjB,EAAY,CAChB,MAAO,SACP,UAAW,CACf,EACQC,EAAY,CAChB,UAAW,WACX,cAAe,kBACf,IAAK,OACL,SAAU,CACR7oB,EACA1M,EAAK,qBACN,CACL,EAEE,MAAO,CACL,KAAM,WACN,QAAS,CAAE,MAAQ,EACnB,SAAU,CACR,QAAS,+DACT,QAAS,sBACT,SAAU,qdACX,EACD,SAAU,CACRA,EAAK,oBACLA,EAAK,qBACL+J,EACAsrB,EACA/9H,EACA89H,EACAE,EACAC,CACD,CACL,CACC,CAED,OAAAC,GAAiBL,sDCzEjB,SAASM,EAAQz1B,EAAM,CACrB,MAAM01B,EAAmB,CACvB,SAAU,SACV,QACE,6lCAQN,EACQC,EAAgB31B,EAAK,QACzB,KACA,KACA,CACE,UAAW,CACZ,CACL,EACQ41B,EAAgB51B,EAAK,QACzB,SACA,SACA,CACE,UAAW,EACZ,CACL,EACQ1oG,EAAS,CACb,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,IACR,CACF,CACL,EACQk7G,EAAc,CAClB,UAAW,SACX,MAAO,UACX,EACQv7G,EAAW,CACf,UAAW,WACX,cAAe,mDACf,IAAK,OACL,SAAU,+DACV,SAAU,CACR+oG,EAAK,WACL,CACE,UAAW,SACX,MAAO,MACP,IAAK,MACL,SAAU01B,EACV,SAAU,CACRp+H,EACAk7G,CACD,CACF,EACDmjB,EACAC,CACD,CACL,EACE,MAAO,CACL,KAAM,UACN,iBAAkB,GAClB,SAAUF,EACV,QAAS,kCACT,SAAU,CACRC,EACAC,EACA51B,EAAK,oBACL1oG,EACAk7G,EACAxS,EAAK,YACL/oG,EACA,CACE,UAAW,QACX,MAAO,eACP,IAAK,OACL,SAAUy+H,EACV,SAAU,CACRp+H,EACAk7G,EACAmjB,EACAC,EACA51B,EAAK,oBACL/oG,CACD,CACF,CACF,CACL,CACC,CAED,OAAA4+H,GAAiBJ,sDC5FjB,SAASK,EAAQ91B,EAAM,CACrB,MAAM+1B,EAAmB/1B,EAAK,QAC5B,KACA,KACA,CACE,SAAU,CAAE,MAAQ,CACrB,CACL,EACE,MAAO,CACL,KAAM,UACN,YAAa,MACb,UAAW,EACX,SAAU,CACRA,EAAK,QAAQ,KAAM,GAAG,EACtBA,EAAK,QACH,UACA,KACA,CACE,UAAW,GACX,SAAU,CAAE+1B,CAAkB,CAC/B,CACF,EACD,CACE,UAAW,OACX,MAAO,gCACP,UAAW,EACZ,EACD,CACE,UAAW,QACX,MAAO,0DACR,EACD,CACE,UAAW,WACX,MAAO,mBACR,EACD,CACE,UAAW,UACX,MAAO,aACR,EACD,CACE,UAAW,SACX,MAAO,kBACR,EACD/1B,EAAK,aACN,CACL,CACC,CAED,OAAAg2B,GAAiBF,sDChDjB,SAASt0U,EAAGw+S,EAAM,CAChB,MAAMi2B,EAAQ,CACZ,UAAW,WACX,MAAO,oBACX,EACQC,EAAQ,CACZ,UAAW,WACX,MAAO,UACP,IAAK,GACT,EAEE,MAAO,CACL,KAAM,uBACN,QAAS,CAAE,SAAW,EACtB,SAAU,CACR,SAAU,gBACV,SAGE,wDACF,QACE,kzBAgBF,QACE,oDACH,EACD,SAAU,CACRl2B,EAAK,kBACLA,EAAK,YACLA,EAAK,kBACLi2B,EACAC,CACD,CACL,CACC,CAED,OAAAC,GAAiB30U,sDCxCjB,SAAS40U,EAAMp2B,EAAM,CACnB,MAAMq2B,EAAer2B,EAAK,QAAQ,KAAM,GAAG,EACrCs2B,EAAiB,0BACjBC,EAAgB,4CAChB9M,EAAQ,SAAW6M,EAAiB,SAEpCE,EAIJ,g5EA0CIC,EACJ,qJAGIC,EACJ,uLAIIniB,EAEJ,gxBAeIoiB,EACJpiB,EAAM,KAAM,EACT,MAAM,GAAG,EACT,IAAI,SAAS7ha,EAAK,CAAE,OAAOA,EAAI,MAAM,GAAG,EAAE,CAAC,EAAI,EAC/C,KAAK,GAAG,EAEPkkb,EACJ,8JAGIC,EACJ,uXAOIC,EAEJ,i1LAuKIC,EAzFJ,quIA0FY,KAAM,EACb,MAAM,GAAG,EACT,IAAI,SAASrkb,EAAK,CAAE,OAAOA,EAAI,MAAM,GAAG,EAAE,CAAC,EAAI,EAC/C,KAAK,GAAG,EAEf,MAAO,CACL,KAAM,aACN,QAAS,CACP,WACA,YACD,EACD,iBAAkB,GAClB,SAAU,CACR,QACM8jb,EAASE,EAAaD,EAC5B,SACMG,EAASC,EAAaC,CAC7B,EAGD,QAAS,6DACT,SAAU,CAER,CACE,UAAW,UACX,SAAU,CACR,CACE,MAAO,mBACR,EACD,CACE,MAAO,yCACR,EACD,CACE,MAAO,yCACR,EACD,CACE,MAAO,8CACR,EACD,CACE,MAAO,mCACR,EACD,CACE,MAAO,0BACR,EACD,CACE,MAAO,qBACR,EACD,CACE,MAAO,4BACR,EACD,CACE,MAAO,wCACR,EACD,CACE,MAAO,8BACR,EACD,CACE,MAAO,oCACR,EACD,CACE,MAAO,+EACR,EACD,CACE,MAAO,qBACR,EACD,CACE,MAAO,qBACR,EACD,CACE,MAAO,6BACR,EACD,CACE,MAAO,mBACR,EACD,CACE,MAAO,qBACR,EACD,CACE,MAAO,4DACR,EACD,CACE,MAAO,2BACR,EACD,CACE,MAAO,8CACR,EACD,CACE,MAAO,kCACR,EACD,CACE,MAAO,mCACR,EACD,CACE,MAAO,sCACR,EACD,CACE,MAAO,2BACR,EACD,CACE,MAAO,sBACR,EACD,CACE,MAAO,sCACR,EACD,CACE,MAAO,yBACR,EACD,CACE,MAAO,0BACR,EACD,CACE,MAAO,iCACR,EACD,CACE,MAAO,6BACR,EACD,CACE,MAAO,4BACR,EACD,CACE,MAAO,uCACR,EACD,CACE,MAAO,mCACR,EACD,CACE,MAAO,qCACR,EACD,CACE,MAAO,wCACR,EACD,CACE,MAAO,sBACR,EACD,CACE,MAAO,kBACR,EACD,CACE,MAAO,2BACR,EACD,CACE,MAAO,iCACR,EACD,CACE,MAAO,oCACR,EACD,CACE,MAAO,qGACR,EACD,CACE,MAAO,kEACR,CACF,CACF,EAED,CACE,MAAO,gCAER,EAED,CACE,MAAO,iBACP,SAAU,SACX,EAED,CACE,MAAO,mDACR,EAGD,CACE,MAAO,2MACR,EAED,CAEE,MAAO,sCACP,UAAW,EACZ,EAED,CACE,MAAO,iBACP,IAAK,WACL,UAAW,GACX,SAAU,CAER,KAAM,wKAGP,CACF,EAED,CACE,MAAO,mCACP,SAAU,CAER,QAAS,MACV,CACF,EAED,CACE,MAAO,sDACP,SAAU,CAER,QAAS,kBACV,CACF,EAID,CACE,cAAe,oCACf,IAAK92B,EAAK,YACV,UAAW,GACX,SAAU,sCACX,EAED,CACE,UAAW,OACX,MAAO,kCACR,EAED,CACE,UAAW,OACX,MAAO,yFACR,EAED,CACE,MAAO,kGACP,SAAU,CACR,QAAS,UACT,KAAM,iFACP,CACF,EAED,CACE,MAAO,OAAS+2B,EAAe,UAEhC,EAED,CACE,MAAO,OAASJ,EAAW,MAC5B,EACD,CACE,MAAO,OAASA,EAAW,eAC3B,SAAU,CACR,QAAS,OACT,KAAMpiB,EAAM,QAAQ,QAAS,EAAE,CAChC,CACF,EACD,CACE,UAAW,OACX,MAAO,OAASoiB,EAAW,MAC5B,EAED,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,IACR,CACF,CACF,EACD,CACE,UAAW,SACX,MAAO,eACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,OACR,CACF,EACD,UAAW,EACZ,EACD32B,EAAK,kBAAkB,CACrB,MAAOu2B,EACP,IAAKA,EACL,SAAU,CACR,CAGE,YAAa,CACX,QACA,OACA,SACA,MACA,IACA,MACA,OACA,MACA,OACA,OACA,SACA,MACA,MACD,EACD,eAAgB,EACjB,CACF,CACT,CAAO,EAED,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,IACR,CACF,CACF,EAEDv2B,EAAK,cAELA,EAAK,qBACLq2B,EAGA,CACE,UAAW,OACX,SAAU,CACR,CACE,MAAO,cACP,UAAW,EACZ,EACD,CACE,MAAO,SACR,EACD,CACE,MAAO,QACP,IAAK,GACN,CACF,CACF,EAED,CACE,UAAW,SACX,MAAO5M,EACP,UAAW,EACZ,CACF,CACL,CACC,CAED,OAAAuN,GAAiBZ,sDCzmBjB,SAASa,EAAIj3B,EAAM,CACjB,MAAMsQ,EAAW,CACf,UAAW,WACX,MAAO,wDAIX,EACQzC,EAAe,CACnB,UAAW,OACX,SAAU,CACR,CAAE,MAAO,SAAU,UAAW,EAAI,EAClC,CAAE,MAAO,SAAW,EACpB,CAAE,MAAO,KAAO,CACjB,CACL,EACQX,EAAQ,CACZ,UAAW,QACX,SAAU,CA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BACN,EAEQyqB,EAA2B,CAC/B,UAAW,SACX,MAAO,MACP,IAAK,MACL,UAAW,EACf,EAEQ56B,EAAoB,CACxB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAEkD,EAAK,gBAAkB,CACvC,EAEQ23B,EAAyB,CAC7B,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CAAE33B,EAAK,gBAAkB,EACnC,UAAW,CACf,EAEQ43B,EAAY,CAChB,UAAW,OACX,MAAO,mBACP,UAAW,CACf,EAEQC,EAAc,CAClB,MAAO73B,EAAK,SAAW,IACvB,UAAW,CACf,EAmBE,MAAO,CACL,KAAM,OACN,SAAUiN,EACV,SAAU,CACR2qB,EACAF,EACA56B,EACA66B,EACAE,EAzBgB,CAClB,UAAW,SACX,MAAO,+FACP,UAAW,CACf,EAuBM73B,EAAK,oBACLA,EAAK,oBACN,CACL,CACC,CAED,OAAA83B,GAAiBL,sDChFjB,SAASM,EAAW/3B,EAAM,CACxB,MAAMuU,EAAQ,CACZ,SACA,OACA,OACA,MACA,OACA,OACA,UACA,SACA,SACA,WACA,MACA,QACA,YACA,MACJ,EAGQyjB,EACJ,2rBAYIC,EACJ,+bAQIhrB,EAAW,CACf,SAAU,iBACV,QACE,uLAIF,SACE,iqBASN,EAEQirB,EAAgB,yBAEhBjoB,EAAkB,CACtB,MAAO,YACP,UAAW,CACf,EAEQe,EAAM,CACV,UAAW,WACX,SAAU,CACR,CACE,MAAO,MACR,EACD,CACE,UAAW,UACX,MAAO,QACR,EACD,CACE,MAAO,mBACR,CACF,CACL,EAEQlH,EAAU,CACd,UAAW,UACX,MAAO,uBACX,EAEQqH,EAAe,CACnB,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,KACP,IAAK,KACN,CACF,EACD,SAAU,CACRlB,EACAe,EACA,CACE,UAAW,WACX,MAAO,UACP,IAAK,QACN,CACF,CACL,EAEQK,EAAc,CAClB,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,GACN,EACD,CACE,MAAO,KACP,IAAK,KACN,CACF,CACL,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V,QAzIqB,CACrB,MACA,KACA,SACA,QACA,QACA,QACA,QACA,WACA,MACA,MACA,OACA,OACA,SACA,UACA,MACA,OACA,SACA,KACA,SACA,KACA,KACA,SACA,cACA,MACA,KACA,OACA,QACA,SACA,MACA,QACA,OACA,OACJ,EAyGI,SAvGgB,CAChB,aACA,MACA,MACA,MACA,QACA,MACA,OACA,aACA,YACA,QACA,WACA,MACA,cACA,UACA,UACA,UACA,OACA,MACA,SACA,YACA,OACA,OACA,SACA,QACA,SACA,YACA,UACA,UACA,UACA,OACA,OACA,MACA,KACA,QACA,MACA,aACA,aACA,OACA,MACA,OACA,SACA,MACA,MACA,aACA,MACA,OACA,SACA,MACA,OACA,MACA,MACA,QACA,WACA,QACA,OACA,WACA,QACA,MACA,UACA,QACA,SACA,eACA,MACA,MACA,QACA,QACA,OACA,OACA,KACJ,EAkCI,QAhCe,CACf,YACA,WACA,QACA,OACA,iBACA,MACJ,EA0BI,KArBY,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,OACJ,CAQA,EAEQytB,EAAS,CACb,UAAW,OACX,MAAO,gBACX,EAEQxtB,EAAQ,CACZ,UAAW,QACX,MAAO,KACP,IAAK,KACL,SAAUD,EACV,QAAS,GACb,EAEQ0tB,EAAkB,CACtB,MAAO,OACP,UAAW,CACf,EAEQrjI,EAAS,CACb,UAAW,SACX,SAAU,CAAE0oG,EAAK,gBAAkB,EACnC,SAAU,CACR,CACE,MAAO,yCACP,IAAK,MACL,SAAU,CACRA,EAAK,iBACL06B,CACD,EACD,UAAW,EACZ,EACD,CACE,MAAO,yCACP,IAAK,MACL,SAAU,CACR16B,EAAK,iBACL06B,CACD,EACD,UAAW,EACZ,EACD,CACE,MAAO,8BACP,IAAK,MACL,SAAU,CACR16B,EAAK,iBACL06B,EACAC,EACAztB,CACD,CACF,EACD,CACE,MAAO,8BACP,IAAK,MACL,SAAU,CACRlN,EAAK,iBACL06B,EACAC,EACAztB,CACD,CACF,EACD,CACE,MAAO,eACP,IAAK,IACL,UAAW,EACZ,EACD,CACE,MAAO,eACP,IAAK,IACL,UAAW,EACZ,EACD,CACE,MAAO,4BACP,IAAK,GACN,EACD,CACE,MAAO,4BACP,IAAK,GACN,EACD,CACE,MAAO,4BACP,IAAK,IACL,SAAU,CACRlN,EAAK,iBACL26B,EACAztB,CACD,CACF,EACD,CACE,MAAO,4BACP,IAAK,IACL,SAAU,CACRlN,EAAK,iBACL26B,EACAztB,CACD,CACF,EACDlN,EAAK,iBACLA,EAAK,iBACN,CACL,EAGQ46B,EAAY,kBACZC,EAAa,QAAQD,CAAS,UAAUA,CAAS,SAASA,CAAS,OACnE1jI,EAAS,CACb,UAAW,SACX,UAAW,EACX,SAAU,CAWR,CACE,MAAO,QAAQ0jI,CAAS,MAAMC,CAAU,eAAeD,CAAS,WACjE,EACD,CACE,MAAO,IAAIC,CAAU,QACtB,EAQD,CACE,MAAO,yCACR,EACD,CACE,MAAO,2BACR,EACD,CACE,MAAO,4BACR,EACD,CACE,MAAO,kCACR,EAID,CACE,MAAO,OAAOD,CAAS,UACxB,CACF,CACL,EACQE,EAAe,CACnB,UAAW,UACX,MAAOxtB,EAAU,SAAS,EAC1B,IAAK,IACL,SAAUL,EACV,SAAU,CACR,CACE,MAAO,SACR,EAED,CACE,MAAO,IACP,IAAK,OACL,eAAgB,EACjB,CACF,CACL,EACQP,EAAS,CACb,UAAW,SACX,SAAU,CAER,CACE,UAAW,GACX,MAAO,UACP,KAAM,EACP,EACD,CACE,MAAO,KACP,IAAK,KACL,aAAc,GACd,WAAY,GACZ,SAAUO,EACV,SAAU,CACR,OACAytB,EACAxjI,EACAI,EACA0oG,EAAK,iBACN,CACF,CACF,CACL,EACE,OAAAkN,EAAM,SAAW,CACf51G,EACAJ,EACAwjI,CACJ,EAES,CACL,KAAM,SACN,QAAS,CACP,KACA,MACA,SACD,EACD,SAAUztB,EACV,QAAS,iBACT,SAAU,CACRytB,EACAxjI,EACA,CAEE,MAAO,UACR,EACD,CAGE,cAAe,KACf,UAAW,CACZ,EACDI,EACAwjI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CA,KACA,KACA,KACA,IACA,IACA,KACA,KACA,KACD,CAAA,EAAI,mBACCQ,EAAqB,OAASD,EAAc,OAE5CrvB,EAAW,CACf,QACE,iTAIF,SACE,+FACF,QACE,YACN,EAEQuvB,EAAY,2HAKZp/B,EAAc,CAClB,UAAW,SACX,UAAW,EACX,SAAU,CACR,CACE,MAAOo/B,CACR,EACD,CACE,MAAO,OAASA,EAAY,KAC7B,CACF,CACL,EAEQC,EAAgB,CACpB,UAAW,WACX,UAAW,EACX,MAAOH,CACX,EACQI,EAAsB,CAC1B,CACE,UAAW,aACX,UAAW,EACX,MAAOT,CACR,EACDQ,EACAr/B,CACJ,EAEQu/B,EAAyB,CAC7B38B,EAAK,kBACLy8B,EACA,CACE,UAAW,SACX,MAAO,MAAQP,EACf,YAAa,GACb,IAAK,IACL,SAAU,CACR,CACE,UAAW,aACX,MAAOA,EACP,UAAW,CACZ,CACF,CACF,CACL,EAEQU,EAAkB,CACtB,CACE,UAAW,SACX,MAAO,MAAQV,EACf,YAAa,GACb,IAAK,IACL,UAAW,EACX,SAAU,CACR,CACE,UAAW,aACX,MAAOA,EACP,UAAW,CACZ,CACF,CACF,CACL,EAEQW,EAAc,CAClB,MAAOZ,EACP,IAAK,cACL,UAAW,EACX,SAAU,CACRQ,EACA,CACE,UAAW,SACX,MAAO,IACP,IAAK,UACL,YAAa,GACb,UAAW,EACX,SAAUG,CACX,CACF,CACL,EAEQE,EAAsB,CAC1B,UAAW,WACX,UAAW,EACX,SAAU7vB,EACV,SAAU,CACR,CACE,MAAO,qBAAuBgvB,EAAW,UACzC,IAAK,SACL,YAAa,GACb,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAOA,CACR,EACD,CACE,MAAOI,CACR,EACD,CACE,MAAO,SACR,CACF,CACF,CACF,CACF,EACD,CACE,MAAO,8BACP,IAAK,QACL,YAAa,GACb,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,UAAW,EACX,SAAU,CAAEQ,CAAa,CAC1B,CACF,CACF,EACD,CACE,MAAO,YAAcZ,EAAW,WACjC,CACF,CACL,EACEU,EAAuB,KAAKG,CAAmB,EAE/C,MAAMC,EAAmB,CACvB,UAAW,cACX,MAAOb,EAAkB,MACzB,IAAK,MACL,QAAS,MACT,SAAUjvB,EACV,SAAU,CACRjN,EAAK,kBACLy8B,EACA,CACE,UAAW,SACX,MAAO,MAAQR,CAChB,CACF,CACL,EAEQe,EAA2B,CAC/B,UAAW,gBACX,MAAO,MACP,YAAa,GACb,SAAU/vB,EACV,IAAK,KACL,UAAW,EACX,SAAU,CACR8vB,EACAN,EACA,CACE,UAAW,EACX,UAAW,cACX,MAAOP,CACR,CACF,CACL,EAEQe,EAAqB,CACzB,UAAW,gBACX,SAAUhwB,EACV,YAAa,GACb,SAAU,CACR,CACE,MAAO,OAASivB,EAAkB,QAAUD,CAC7C,EACD,CACE,MAAO,OAASC,EAAkB,WAClC,IAAK,MACL,YAAa,GACb,SAAU,CACRY,EACA,CACE,MAAO,MACP,IAAK,MACL,KAAM,EACP,CACX,EAAU,OAAOH,CAAsB,CAChC,EACD,CACE,MAAO,OAAST,EAAkB,WAClC,IAAK,IACN,CACF,EACD,SAAUS,CACd,EAEE,OAAAC,EAAgB,KAAKK,CAAkB,EAEhC,CACL,KAAM,WACN,QAAS,CAAE,IAAM,EACjB,SAAUhwB,EACV,QAAS,sBACT,SAAU,CACRjN,EAAK,QAAQ,OAAQ,OAAQ,CAC3B,QAAS,aACjB,CAAO,EACD,CACE,UAAW,YACX,MAAO,qBACP,QAAS,MACT,UAAW,CACZ,EACDA,EAAK,kBACL,CACE,UAAW,UACX,MAAO,SACP,UAAW,CACZ,EACD,CACE,UAAW,UACX,MAAO,SACP,IAAK,SACL,UAAW,EACX,SAAU08B,CACX,EACD,CACE,UAAW,UACX,MAAO,MACP,IAAK,MACL,UAAW,EACX,SAAUA,CACX,EACDK,EACA,CACE,UAAW,WACX,MAAOR,EACP,QAAS,MACT,UAAW,CACZ,EACDn/B,EACA4C,EAAK,oBACLg9B,EACAF,EACA,CACE,UAAW,aACX,MAAO,gBAAkBb,EAAW,OAASC,EAAkB,eAC/D,IAAK,KACL,YAAa,GACb,SAAUjvB,EACV,UAAW,EACX,SAAU,CACR,CACE,UAAW,SACX,UAAW,EACX,MAAOivB,CACR,EACD,CACE,MAAO,KACP,IAAK,KACL,KAAM,EACP,CACX,EAAU,OAAOS,CAAsB,CAChC,EACDM,CACD,CACL,CACC,CAED,OAAAC,GAAiBpB,sDCxTjB,SAASqB,EAAIn9B,EAAM,CACjB,MAAO,CACL,KAAM,gBACN,SACE,klCAcF,QAAS,KACT,SAAU,CACRA,EAAK,kBACLA,EAAK,cACLA,EAAK,iBACLA,EAAK,iBACN,CACL,CACC,CAED,OAAAo9B,GAAiBD,sDC5BjB,SAASE,EAASr9B,EAAM,CACtB,MAAMs9B,EAAa,wBAEbjC,EAAW,CACf,UAAW,YACX,MAAO,cACP,IAAK,OACL,WAAY,GACZ,OAAQ,CACN,IAAK,IACL,UAAW,EACX,SAAU,CACR,CACE,UAAW,WACX,MAAO,eACR,EACD,CACE,UAAW,UACX,MAAO,cACR,CACF,CACF,CACL,EAEE,MAAO,CACL,KAAM,WACN,QAAS,CACP,QACA,WACD,EACD,iBAAkB,GAClB,SAAU,SACV,SAAU,CAER,CACE,MAAO,UAAYiC,EACnB,IAAK,KACL,SAAU,QACV,SAAU,CACRjC,EACAr7B,EAAK,iBACN,CACF,EAGD,CACE,MAAO,oBAAsBs9B,EAC7B,IAAK,KACL,SAAU,+DACV,QAAS,KACT,SAAU,CACR,OACAjC,EACAr7B,EAAK,iBACN,CACF,EAGD,CACE,MAAO,IAAMs9B,EACb,IAAK,KACL,SAAU,CACRjC,EACAr7B,EAAK,iBACN,CACF,EAGDA,EAAK,iBACN,CACL,CACC,CAED,OAAAu9B,GAAiBF,sDCpEjB,SAASG,EAASx9B,EAAM,CACtB,MAAMy9B,EAAa,mEAGbC,EAAkB,mKAGlBC,EAAkB,wFAElBrrB,EAAW,qCAEXsrB,EAAU,26BAEV5sB,EAAM,CACV,UAAW,WACX,SAAU,CACR,CACE,MAAO,oBACR,EACD,CACE,MAAO,aACR,CACF,CACL,EAEQG,EAAe,CACnB,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACRnR,EAAK,iBACLgR,EACA,CACE,UAAW,WACX,MAAO,OACP,IAAK,KACL,SAAU,CAAEhR,EAAK,gBAAkB,CACpC,CACF,CACL,EAEQqR,EAAc,CAClB,UAAW,SACX,MAAO,IACP,IAAK,GACT,EAEE,MAAO,CACL,KAAM,2BACN,QAAS,CACP,UACD,EACD,iBAAkB,GAClB,SAAU,CACR,SAAU,WACV,QAASiB,EACT,QAASmrB,EAAa,KAAOA,EAAW,MAAM,GAAG,EAAE,KAAK,IAAI,EAAI,KAAOC,EAAgB,MAAM,GAAG,EAAE,KAAK,IAAI,CAC5G,EACD,SAAU,CACR,CACE,SAAU,CACR,CACE,MAAO,OACP,IAAK,MACN,EACD,CACE,MAAO,OACP,IAAK,GACN,EACD,CACE,MAAO,MACP,IAAK,GACN,CACF,EACD,QAAS,GACV,EACD19B,EAAK,QAAQ,KAAM,GAAG,EACtBmR,EACAE,EACAL,EAEA,CAEE,MAAO,0BACP,UAAW,EACX,YAAa,GACb,SAAU,CACR,CACE,UAAW,YACX,MAAO,OACR,EACD,CACE,MAAO,IACP,eAAgB,GAChB,UAAW,EACX,SAAU,CACRG,EACAE,EACAL,EACA,CACE,UAAW,UACX,MAAO,OAASsB,EAAS,MAAM,GAAG,EAAE,KAAK,GAAG,EAAI,MACjD,EACD,CAEE,MAAO,uBACR,CAiBF,CACF,CACF,CACF,EACD,CAEE,UAAW,SACX,MAAO,gBACR,EACD,CACE,MAAO,OAASqrB,EAAgB,MAAM,GAAG,EAAE,KAAK,GAAG,EAAI,iBACvD,YAAa,GACb,SAAU,CACR,CACE,UAAW,eACX,MAAO,KACR,CACF,CACF,EACD,CACE,UAAW,WACX,SAAU,CACR,CACE,MAAO,oBAAsBC,EAAQ,MAAM,GAAG,EAAE,KAAK,GAAG,EAAI,UAC7D,EACD,CACE,MAAO,OACP,UAAW,CACZ,CACF,CACF,CACF,CACL,CACC,CAED,OAAAC,GAAiBL,sDCnKjB,SAASM,EAAI99B,EAAM,CACjB,MAAO,CACL,KAAM,gBACN,SAAU,CACR,QACE,2FACF,SACE,yiBAOH,EACD,QAAS,KACT,SAAU,CACRA,EAAK,oBACLA,EAAK,qBACLA,EAAK,kBACLA,EAAK,iBACLA,EAAK,cACL,CACE,UAAW,OACX,MAAO,IACP,IAAK,GACN,EACD,CACE,UAAW,QACX,cAAe,2CACf,IAAK,KACN,EACD,CACE,cAAe,gCACf,IAAK,KACN,CACF,CACL,CACC,CAED,OAAA+9B,GAAiBD,sDCxCjB,SAASE,EAAch+B,EAAM,CAC3B,MAAO,CACL,KAAM,wBACN,SAAU,CACR,QACE,y/FAmCF,SACE,kcAKH,EACD,SAAU,CACRA,EAAK,oBACLA,EAAK,qBACLA,EAAK,iBACLA,EAAK,kBACLA,EAAK,cACL,CACE,UAAW,UACX,SAAU,CACR,CACE,MAAO,QACP,UAAW,CACZ,EACD,CACE,MAAO,cACR,CACF,CACF,CACF,CACL,CACC,CAED,OAAAi+B,GAAiBD,sDCrEjB,SAASE,EAAKl+B,EAAM,CAClB,MAAMm+B,EAAa,wCACblxB,EACJ,2RAIImxB,EAEJ,upBAkBF,MAAO,CACL,KAAM,OACN,QAAS,CAAE,IAAM,EACjB,SAAU,CACR,SAAUp+B,EAAK,SAAW,KAC1B,QACEiN,EACF,QACE,8BACF,SACEmxB,CACH,EACD,QAAS,KACT,SAAU,CACRp+B,EAAK,oBACLA,EAAK,QAAQ,OAAQ,OAAQ,CAC3B,SAAU,CAAE,MAAQ,CAC5B,CAAO,EACDA,EAAK,QAAQA,EAAK,kBAAmB,CACnC,MAAO,MACP,QAAS,IACjB,CAAO,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,wBACR,EACD,CACE,MAAO,iCACR,CACF,CACF,EACD,CACE,UAAW,SACX,MAAO,yBACR,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,gBAAkBm+B,CAC1B,EACD,CACE,MAAO,iBAAmBA,CAC3B,EACD,CACE,MAAO,uBAAyBA,CACjC,EACD,CACE,MAAO,kDACAA,CACR,CACF,EACD,UAAW,CACZ,EACD,CACE,UAAW,WACX,cAAe,KACf,IAAK,UACL,WAAY,GACZ,SAAU,CAAEn+B,EAAK,qBAAuB,CACzC,EACD,CACE,UAAW,OACX,MAAO,SACP,IAAK,MACL,SAAU,CACR,CACE,UAAW,cACX,MAAO,IACP,IAAK,GACN,CACF,CACF,EACD,CACE,UAAW,QACX,cAAe,OACf,IAAK,IACL,SAAU,CACRA,EAAK,QAAQA,EAAK,sBAAuB,CACvC,WAAY,EACxB,CAAW,CACF,EACD,QAAS,KACV,EACD,CACE,UAAW,QACX,cAAe,0BACf,IAAK,KACL,SAAU,CACRA,EAAK,QAAQA,EAAK,sBAAuB,CACvC,WAAY,EACxB,CAAW,CACF,EACD,QAAS,UACV,EACD,CACE,MAAOA,EAAK,SAAW,KACvB,SAAU,CACR,SAAUo+B,CACX,CACF,EACD,CACE,MAAO,IACR,CACF,CACL,CACC,CAED,OAAAC,GAAiBH,sDC3IjB,SAASI,EAAIt+B,EAAM,CAyEjB,MAAO,CACL,KAAM,MACN,iBAAkB,GAClB,SAAU,CACR,QACE,kGAEF,KA7EF,urBA+EC,EACD,SAAU,CACR,CAEE,UAAW,UACX,MAAO,wCACR,EACD,CAEE,UAAW,WACX,MAAO,6BACR,EACD,CAEE,UAAW,WACX,MAAO,yBACP,IAAK,WACN,EACD,CACE,UAAW,WACX,MAAO,KAvCX,4YAuCkC,GAC/B,EACD,CAEE,UAAW,OACX,MAAO,yBACR,EACD,CACE,UAAW,OACX,MAAO,QA1FX,+1DA0F+B,MAC5B,EACD,CACE,UAAW,SACX,SAAU,CACRA,EAAK,iBACLA,EAAK,iBACN,CACF,EACDA,EAAK,QAAQ,MAAO,GAAG,EACvBA,EAAK,oBACN,CACL,CACC,CAED,OAAAu+B,GAAiBD,sDC5HjB,SAASE,EAAMx+B,EAAM,CACnB,MAAMmnB,EAAa,CACjB,UAAW,OACX,MAAO,YACX,EAGQja,EAAQ,CACZ,UAAW,QACX,SAAU,CACR,CACE,MAAO,kBACR,EACD,CACE,MAAO,OACP,IAAK,IACN,CACF,CACL,EAEQ51G,EAAS,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,MACP,IAAK,KACN,EACD,CACE,MAAO,IACP,IAAK,IACL,QAAS,MACT,SAAU,CAAE0oG,EAAK,gBAAkB,CACpC,EACD,CACE,MAAO,UACP,IAAK,IACL,QAAS,MACT,SAAU,CACRA,EAAK,iBA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CACR,SAAU,QACV,QAAS,wIAET,QACE,6CACF,SACC,0bAMF,EACD,QAAS,uBACT,SAAU,CACR,CACE,UAAW,WACX,cAAe,WACf,IAAK,IACL,SAAU,CACRA,EAAK,sBACL,CACE,UAAW,SACX,MAAO,MACP,IAAK,KACN,CACF,CACF,EAGD,CACE,MAAO,gCACP,UAAW,CACZ,EACD,CACE,MAAO,MACP,IAAK,aACL,UAAW,EACX,SAAUi/B,CACX,EACDj/B,EAAK,QAAQ,KAAM,GAAG,CAC5B,EAAM,OAAOi/B,CAAe,CAC5B,CACC,CAED,OAAAC,GAAiBF,sDCxEjB,MAAMnhC,EAASmC,IACN,CACL,UAAW,CACT,UAAW,OACX,MAAO,YACR,EACD,SAAU,CACR,UAAW,SACX,MAAO,kCACR,EACD,wBAAyB,CACvB,UAAW,gBACX,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACRA,EAAK,iBACLA,EAAK,iBACN,CACF,CACL,GAGMoY,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEMC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,YACF,EAGMC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF,EAGMC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,gBACF,EAEMC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,SAGD,EAAC,QAAO,EAWT,SAAS2mB,EAAKn/B,EAAM,CAClB,MAAMyY,EAAQ5a,EAAMmC,CAAI,EAClBo/B,EAAoB7mB,EACpB8mB,EAAmB/mB,EAEnBN,EAAgB,WAChBW,EAAe,kBAEfrI,EAAW,CACf,UAAW,WACX,MAAO,OAHQ,0BAGY,MAC/B,EAEE,MAAO,CACL,KAAM,OACN,iBAAkB,GAClB,QAAS,SACT,SAAU,CACRtQ,EAAK,oBACLA,EAAK,qBACL,CACE,UAAW,cACX,MAAO,kBACP,UAAW,CACZ,EACD,CACE,UAAW,iBACX,MAAO,oBACP,UAAW,CACZ,EACDyY,EAAM,wBACN,CACE,UAAW,eACX,MAAO,OAASL,EAAK,KAAK,GAAG,EAAI,OAEjC,UAAW,CACZ,EACD,CACE,UAAW,kBACX,MAAO,KAAOinB,EAAiB,KAAK,GAAG,EAAI,GAC5C,EACD,CACE,UAAW,kBACX,MAAO,MAAQD,EAAkB,KAAK,GAAG,EAAI,GAC9C,EACD9uB,EACA,CACE,MAAO,KACP,IAAK,KACL,SAAU,CAAEtQ,EAAK,eAAiB,CACnC,EACD,CACE,UAAW,YACX,MAAO,OAASwY,EAAW,KAAK,GAAG,EAAI,MACxC,EACD,CACE,MAAO,4oCACR,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACRlI,EACAmI,EAAM,SACNzY,EAAK,gBACLA,EAAK,kBACLA,EAAK,iBACLyY,EAAM,SACP,CACF,EAID,CACE,MAAO,oBACP,QAAST,EACT,SAAU,kBACX,EACD,CACE,MAAO,IACP,IAAK,OACL,YAAa,GACb,SAAU,CACR,SAAU,UACV,QAASW,EACT,UAAWN,EAAe,KAAK,GAAG,CACnC,EACD,SAAU,CACR,CACE,MAAOL,EACP,UAAW,SACZ,EACD,CACE,MAAO,eACP,UAAW,WACZ,EACD1H,EACAtQ,EAAK,kBACLA,EAAK,iBACLyY,EAAM,SACNzY,EAAK,eACN,CACF,CACF,CACL,CACC,CAED,OAAAs/B,GAAiBH,sDCvhBjB,SAASI,EAAMv/B,EAAM,CACnB,MAAO,CACL,KAAM,gBACN,QAAS,CAAE,SAAW,EACtB,SAAU,CACR,CACE,UAAW,OAIX,MAAO,iCACP,OAAQ,CACN,IAAK,gBACL,YAAa,MACd,CACF,CACF,CACL,CACC,CAED,OAAAw/B,GAAiBD,sDCtBjB,SAASE,EAAMz/B,EAAM,CACnB,MAAM0/B,EAAuB,CAC3B,MACA,MACA,MACA,OACA,OACA,QACA,MACA,SACA,QACA,OACA,KACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,SACA,MACA,MACA,OACA,MACA,QACA,OACA,KACJ,EACQC,EAAwB,CAC5B,OACA,OACA,QACA,QACA,UACA,OACA,SACA,UACA,UACA,OACA,WACA,SACA,OACA,UACA,SACA,OACA,QACJ,EACQC,EAAiB,CACrB,YACA,cACA,WACA,QACA,YACA,SACA,UACA,YACA,SACA,SACA,QACJ,EACE,MAAO,CACL,KAAM,QACN,SAAU,CACR,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,UAAW,CACZ,EACD5/B,EAAK,QACH,IACA,IACA,CACE,UAAW,CACZ,CACF,EACD,CACE,UAAW,UACX,SAAU,CACR,CACE,MAAO,2BACR,EACD,CACE,MAAO,oBACP,UAAW,CACZ,EACD,CACE,MAAO,oBACP,UAAW,CACZ,EACD,CACE,MAAO,OAAS4/B,EAAe,KAAK,GAAG,EAAI,GAC5C,CACF,CACF,EACD,CACE,UAAW,WACX,SAAU,CACR,CACE,MAAO,OAASF,EAAqB,KAAK,GAAG,EAAI,MAClD,EACD,CACE,MAAO,OAASA,EAAqB,KAAK,GAAG,EAAI,2BACjD,UAAW,EACZ,EACD,CACE,MAAO,OAASC,EAAsB,KAAK,GA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E,UAAW,SACX,MAAO,IAAK,IAAK,IACjB,SAAU,CAAC,CAAC,MAAO,IAAI,CAAC,CACzB,EACD,CACE,UAAW,SACX,MAAO,IAAK,IAAK,GAClB,EACDA,EAAK,cACLA,EAAK,qBACLq2B,EACAr2B,EAAK,iBACN,CACF,EACDA,EAAK,qBACLq2B,EACAr2B,EAAK,iBACN,CACL,CACC,CAED,OAAAsgC,GAAiBD,sDC7KjB,SAAShtb,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIjB,CAMD,SAASsoM,KAAU1oR,EAAM,CAEvB,OADeA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAElD,CASD,SAASunZ,KAAUz9X,EAAM,CAEvB,MADe,IAAMA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,GAAG,EAAI,GAE7D,CAQD,SAASksb,EAAIvgC,EAAM,CACjB,MAAMq2B,EAAer2B,EAAK,QAAQ,KAAM,GAAG,EACrC1oG,EAAS,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CAAC,MAAO,IAAM,CACf,CACF,CACF,CACL,EACQkpI,EAAoB,CACxB,MAAO,IACP,IAAK,IACL,SAAU,CAAE,CAAE,MAAO,KAAQ,CACjC,EAEQluB,EAAW,CACf,OACA,QAGA,SACJ,EAEQmuB,EAAmB,CACvB,mBACA,eACA,gBACA,kBACJ,EAEQlsB,EAAQ,CACZ,SACA,SACA,OACA,UACA,OACA,YACA,OACA,OACA,MACA,WACA,UACA,QACA,MACA,UACA,WACA,QACA,QACA,WACA,UACA,OACA,MACA,WACA,OACA,YACA,UACA,UACA,WACJ,EAEQmsB,EAAqB,CACzB,MACA,MACA,YACA,OACA,QACA,QACA,OACA,MACJ,EAGQC,EAAiB,CACrB,MACA,OACA,MACA,WACA,QACA,MACA,MACA,MACA,QACA,YACA,wBACA,KACA,aACA,OACA,aACA,KACA,OACA,SACA,gBACA,MACA,QACA,cACA,kBACA,UACA,SACA,SACA,OACA,UACA,OACA,KACA,OACA,SACA,cACA,WACA,OACA,OACA,OACA,UACA,OACA,cACA,YACA,mBACA,QACA,aACA,OACA,QACA,WACA,UACA,UACA,SACA,SACA,YACA,UACA,aACA,WACA,UACA,OACA,OACA,gBACA,MACA,OACA,QACA,YACA,aACA,SACA,QACA,OACA,YACA,UACA,kBACA,eACA,kCACA,eACA,eACA,cACA,iBACA,eACA,oBACA,eACA,eACA,mCACA,eACA,SACA,QACA,OACA,MACA,aACA,MACA,UACA,WACA,UACA,UACA,SACA,SACA,aACA,QACA,WACA,gBACA,aACA,WACA,SACA,OACA,UACA,OACA,UACA,OACA,QACA,MACA,YACA,gBACA,WACA,SACA,SACA,QACA,SACA,OACA,UACA,SACA,MACA,WACA,UACA,QACA,QACA,SACA,cACA,QACA,QACA,MACA,UACA,YACA,OACA,OACA,OACA,WACA,SACA,MACA,SACA,QACA,QACA,WACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,UACA,QACA,QACA,cACA,SACA,MACA,UACA,YACA,eACA,WACA,OACA,KACA,OACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,WACA,QACA,aACA,UACA,OACA,UACA,OACA,OACA,aACA,UACA,KACA,QACA,YACA,iBACA,MACA,QACA,QACA,QACA,eACA,kBACA,UACA,MACA,SACA,QACA,SACA,MACA,SACA,MACA,WACA,SACA,QACA,WACA,WACA,UACA,QACA,QACA,MACA,KACA,OACA,YACA,MACA,YACA,QACA,OACA,SACA,UACA,eACA,oBACA,KACA,SACA,MACA,OACA,KACA,MACA,OACA,OACA,KACA,QACA,MACA,QACA,OACA,WACA,UACA,YACA,YACA,UACA,MACA,UACA,eACA,kBACA,kBACA,SACA,UACA,WACA,iBACA,QACA,WACA,YACA,UACA,UACA,YACA,MACA,QACA,OACA,QACA,OACA,YACA,MACA,aACA,cACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,UACA,SACA,SACA,UACA,SACA,QACA,WACA,SACA,MACA,aACA,OACA,UACA,YACA,QACA,SACA,SACA,SACA,OACA,SACA,YACA,eACA,MACA,OACA,UACA,MACA,OACA,OACA,WACA,OACA,WACA,eACA,MACA,eACA,WACA,aACA,OACA,QACA,SACA,aACA,cACA,cACA,SACA,YACA,kBACA,WACA,MACA,YACA,SACA,cACA,cACA,QACA,cACA,MACA,OACA,OACA,OACA,YACA,gBACA,kBACA,KACA,WACA,YACA,kBACA,cACA,QACA,UACA,OACA,aACA,OACA,WACA,UACA,QACA,SACA,UACA,SACA,YACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YACA,UACA,UACA,aACA,OACA,WACA,QACA,eACA,SACA,OACA,SACA,UACA,MACJ,EAKQC,EAAqB,CACzB,MACA,OACA,YACA,OACA,OACA,MACA,OACA,OACA,UACA,WACA,OACA,MACA,OACA,QACA,YACA,aACA,YACA,aACA,QACA,UACA,MACA,UACA,cACA,QACA,aACA,gBACA,cACA,cACA,iBACA,aACA,aACA,uBACA,aACA,MACA,aACA,OACA,UACA,KACA,MACA,QACA,QACA,MACA,MACA,MACA,YACA,QACA,SACA,eACA,kBACA,kBACA,WACA,iBACA,QACA,OACA,YACA,YACA,aACA,iBACA,UACA,aACA,WACA,WACA,WACA,aACA,MACA,OACA,OACA,aACA,cACA,YACA,kBACA,MACA,MACA,OACA,YACA,kBACA,QACA,OACA,aACA,SACA,QACA,WACA,UACA,WACA,cACJ,EAGQC,EAA0B,CAC9B,kBACA,eACA,kCACA,eACA,eACA,iBACA,mCACA,eACA,eACA,cACA,cACA,eACA,YACA,oBACA,gBACJ,EAIQC,EAAS,CACb,eACA,cACA,cACA,cACA,WACA,cACA,iBACA,gBACA,cACA,gBACA,gBACA,eACA,cACA,aACA,cACA,eACJ,EAEQvL,EAAYqL,EAEZ3zB,EAAW,CAAC,GAAG0zB,EAAgB,GAAGD,CAAkB,EAAE,OAAQ9hC,GAC3D,CAACgiC,EAAmB,SAAShiC,CAAO,CAC5C,EAEK0R,EAAW,CACf,UAAW,WACX,MAAO,YACX,EAEQ6e,EAAW,CACf,UAAW,WACX,MAAO,gDACP,UAAW,CACf,EAEQpQ,EAAgB,CACpB,MAAOl4H,EAAO,KAAM+0G,EAAO,GAAG25B,CAAS,EAAG,OAAO,EACjD,SAAU,CACR,SAAUA,CACX,CACL,EAGE,SAASwL,EAAgBnqZ,EAAM,CAAC,WAAAk1T,EAAY,KAAAk1F,CAAI,EAAI,CAAA,EAAI,CACtD,MAAMC,EAAYD,EAClB,OAAAl1F,EAAaA,GAAc,GACpBl1T,EAAK,IAAKpgB,GACXA,EAAK,MAAM,QAAQ,GAAKs1U,EAAW,SAASt1U,CAAI,EAC3CA,EACEyqa,EAAUzqa,CAAI,EAChB,GAAGA,CAAI,KAEPA,CAEV,CACF,CAED,MAAO,CACL,KAAM,MACN,iBAAkB,GAElB,QAAS,WACT,SAAU,CACR,SAAU,YACV,QACEuqa,EAAgB9zB,EAAU,CAAE,KAAO54Z,GAAMA,EAAE,OAAS,EAAG,EACzD,QAASi+Z,EACT,KAAMiC,EACN,SAAUssB,CACX,EACD,SAAU,CACR,CACE,MAAOjlC,EAAO,GAAGklC,CAAM,EACvB,SAAU,CACR,SAAU,UACV,QAAS7zB,EAAS,OAAO6zB,CAAM,EAC/B,QAASxuB,EACT,KAAMiC,CACP,CACF,EACD,CACE,UAAW,OACX,MAAO3Y,EAAO,GAAG6kC,CAAgB,CAClC,EACD1hB,EACAzO,EACAh5G,EACAkpI,EACAxgC,EAAK,cACLA,EAAK,qBACLq2B,EACAlH,CACD,CACL,CACC,CAED,OAAA+R,GAAiBX,sDClrBjB,SAASY,EAAKnhC,EAAM,CAElB,MAAMohC,EAAS,CACb,YACA,QACA,OACA,aACA,aACA,cACA,WACJ,EACQ3D,EAAa,CACjB,MACA,KACA,KACA,OACA,QACA,QACA,WACA,QACJ,EACQ4D,EAAoB,CACxB,QACA,SACA,wBACA,mBACA,wBACA,uBACA,gBACJ,EACQC,EAAY,CAChB,MACA,OACA,SACA,UACA,mBACA,UACA,cACA,aACA,SACA,0BACA,yBACA,iBACA,gBACA,MACJ,EACQ/L,EAAY,CAChB,MACA,aACA,MACA,OACA,QACA,iBACA,eACA,aACA,aACA,OACA,QACA,OACA,QACA,QACA,gBACA,kBACA,iBACA,uBACA,sBACA,iBACA,gBACA,oBACA,qBACA,oBACA,sBACA,qBACA,qBACA,oBACA,WACA,aACA,YACA,YACA,WACA,kBACA,eACA,2BACA,iBACA,gBACA,sBACA,gBACA,eACA,QACA,yBACA,wBACA,mBACA,kBACA,aACA,eACA,cACA,cACA,aACA,OACA,OACA,iBACA,mBACA,kBACA,kBACA,iBACA,qBACA,SACA,MACA,OACA,sBACA,mBACA,MACA,OACA,eACA,YACA,gBACA,gBACA,gBACA,0BACA,sBACA,iBACA,cACA,cACA,qBACA,oBACA,WACA,UACA,OACA,iBACA,gBACA,WACA,cACA,WACA,yBACA,2BACA,0BACA,0BACA,yBACA,IACA,kBACA,mBACA,MACA,OACA,MACA,OACA,qBACA,uBACA,sBACA,sBACA,qBACA,QACA,kBACA,oBACA,mBACA,mBACA,kBACA,OACA,oBACA,OACA,QACA,MACA,OACA,OACA,OACA,cACA,gBACA,eACA,eACA,cACA,YACA,cACA,aACA,aACA,UACA,UACA,YACA,wBACA,SACA,aACA,eACA,cACA,cACA,aACA,OACA,sBACA,qBACA,QACA,WACA,WACA,gBACA,oBACA,qBACA,MACA,UACA,qBACA,uBACA,sBACA,sBACA,qBACA,cACA,gBACA,kBACA,iBACA,iBACA,gBACA,YACA,WACA,aACA,mBACA,kBACA,UACA,cACA,SACA,SACA,QACA,UACA,SACA,yBACA,wBACA,gBACA,eACA,UACA,YACA,MACA,QACA,QACA,YACA,kBACA,QACA,YACA,OACA,kBACA,eACA,wBACA,gBACA,UACA,uBACA,cACA,cACA,eACA,iBACA,gBACA,gBACA,eACA,QACA,gBACA,kBACA,iBACA,iBACA,gBACA,oBACA,aACA,MACA,mBACA,uBACA,oBACA,wBACA,OACA,MACA,6BACA,8BACA,yBACA,gBACA,6BACA,4BACA,oBACA,yBACA,mBACA,uBACA,sBACA,mBACA,kBACA,eACA,oCACA,qBACA,uBACA,sBACA,0BACA,yBACA,sBACA,qBACA,mBACA,qBACA,oBACA,oBACA,mBACA,oBACA,aACA,eACA,cACA,cACA,aACA,eACA,eACA,wBACA,uBACA,UACA,aACA,eACA,cACA,cACA,aACA,oBACA,sBACA,qBACA,qBACA,oBACA,KACA,cACA,gBACA,eACA,mBACA,kBACA,eACA,cACA,oBACA,MACA,QACA,OACA,OACA,OACA,YACA,iBACA,gBACA,OACA,eACA,iBACA,gBACA,gBACA,eACA,SACA,YACA,aACA,iBACA,aACA,mBACA,QACA,MACA,OACA,mBACA,gBACA,4BACA,8BACA,6BACA,6BACA,4BACA,KACA,UACA,MACA,kBACA,OACA,OACA,kBACA,oBACA,mBACA,mBACA,kBACA,UACA,WACA,YACA,mBACA,oBACA,OACA,QACA,SACA,mBACA,OACA,gBACA,kBACA,iBACA,iBACA,gBACA,UACA,UACA,MACA,OACA,MACA,OACA,SACA,aACA,SACA,cACA,cACA,YACA,gBACA,YACA,QACA,sBACA,kBACA,WACA,QACA,cACA,gBACA,eACA,eACA,cACA,WACA,iBACA,gBACA,cACA,gBACA,eACA,eACA,cACA,cACA,eACA,aACJ,EACQgM,EAAgB,CACpB,YACA,kBACA,OACA,gBACA,WACA,iBACA,cACA,oBACA,SACA,aACA,YACA,qBACA,iBACA,cACA,UACA,QACA,mBACA,SACA,iBACA,iBACA,YACA,cACA,WACA,oBACA,WACA,YACA,WACA,oBACA,eACA,wBACA,oBACA,kBACA,cACA,eACA,iBACA,qBACA,SACA,mBACA,SACA,gBACA,UACA,cACA,WACA,wBACA,cACA,YACA,UACA,YACA,UACA,SACA,SACJ,EAEE,MAAO,CACL,KAAM,OACN,QAAS,CAAE,WAAa,EACxB,SAAU,CACR,SAAUvhC,EAAK,SACf,MAAOohC,EACP,QAAS3D,EAAW,OAAO6D,CAAS,EAAE,OAAOD,CAAiB,EAC9D,SAAU9L,CACX,EACD,SAAU,CACRv1B,EAAK,oBACLA,EAAK,QACH,IACA,IACA,CACE,UAAW,EACX,SAAU,CACR,eAAgB,SACjB,CACF,CACF,EACDA,EAAK,QACH,OACA,OACA,CACE,UAAW,EAEX,SAAU,CACR,CACE,UAAW,SACX,MAAO,iBACR,CACF,CACF,CACF,EACD,CAEE,MAAO,gBACP,SAAU,OACX,EACD,CAGE,MAAO,mBACP,SAAU,OACX,EACD,CACE,UAAW,UACX,MAAO,iBACP,UAAW,EACZ,EACD,CACE,MAAO,SAAWA,EAAK,SAAW,WAClC,SAAUuhC,CACX,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,kCACR,EACD,CACE,MAAO,0BACR,CACF,EACD,UAAW,CACZ,EACD,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,UAAW,CACZ,CACF,CACL,CACC,CAED,OAAAC,GAAiBL,sDCthBjB,SAASM,EAAMzhC,EAAM,CACnB,MAAO,CACL,KAAM,QACN,QAAS,CACP,KACA,KACD,EACD,iBAAkB,GAClB,SAAU,4/cACV,SAAU,CACR,CACE,UAAW,SACX,MAAO,iBACR,EACD,CACE,UAAW,WACX,MAAO,uBACR,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO;AAAA,MACR,EACD,CACE,MAAO;AAAA,KACR,CACF,CACF,EAED,CACE,UAAW,WACX,SAAU,CACR,CACE,MAAO,i5CACR,CACF,CACF,EAEDA,EAAK,QAAQ,eAAiB,EAAK,EACnCA,EAAK,oBACLA,EAAK,oBACN,CACL,CACC,CAED,OAAA0hC,GAAiBD,sDCpDjB,SAASE,EAAO3hC,EAAM,CAiBpB,MAAO,CACL,KAAM,eACN,QAAS,CACP,MACA,OACA,KACD,EACD,iBAAkB,GAClB,SAvBsB,CACtB,SAFsB,oBAGtB,QAAS,oBACb,EAqBI,SAAU,CApBS,CACnB,UAAW,OACX,MAAO,gBACP,UAAW,EACf,EACuB,CACnB,UAAW,OACX,MAAO,oBACP,UAAW,EACf,EAcMA,EAAK,oBACLA,EAAK,qBACLA,EAAK,QAAQ,WAAY,MAAM,EAC/BA,EAAK,cACLA,EAAK,QAAQA,EAAK,iBAAkB,CAClC,QAAS,IACjB,CAAO,EACDA,EAAK,QAAQA,EAAK,kBAAmB,CACnC,QAAS,IACjB,CAAO,EACD,CACE,UAAW,SACX,MAAO,IACP,IAAK,GACN,EACD,CACE,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,OACL,QAAS,KACV,CACF,CACF,CACF,CACL,CACC,CAED,OAAA4hC,GAAiBD,sDCjEjB,MAAM9jC,EAASmC,IACN,CACL,UAAW,CACT,UAAW,OACX,MAAO,YACR,EACD,SAAU,CACR,UAAW,SACX,MAAO,kCACR,EACD,wBAAyB,CACvB,UAAW,gBACX,MAAO,KACP,IAAK,KACL,QAAS,IACT,SAAU,CACRA,EAAK,iBACLA,EAAK,iBACN,CACF,CACL,GAGMoY,EAAO,CACX,IACA,OACA,UACA,UACA,QACA,QACA,IACA,aACA,OACA,SACA,SACA,UACA,OACA,OACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,SACA,SACA,OACA,IACA,SACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,OACA,OACA,MACA,SACA,KACA,IACA,IACA,QACA,OACA,UACA,OACA,SACA,UACA,MACA,QACA,QACA,KACA,WACA,QACA,KACA,QACA,OACA,KACA,KACA,MACA,OACF,EAEMC,EAAiB,CACrB,YACA,cACA,eACA,QACA,cACA,cACA,sBACA,gBACA,eACA,eACA,gBACA,OACA,SACA,QACA,kBACA,aACA,cACA,iBACA,kBACA,UACA,uBACA,mBACA,yBACA,+BACA,aACA,OACA,YACA,SACA,QAEA,YACA,YACA,aACA,YACF,EAGMC,EAAiB,CACrB,SACA,WACA,QACA,UACA,UACA,UACA,UACA,MACA,WACA,OACA,QACA,UACA,QACA,cACA,gBACA,aACA,SACA,QACA,gBACA,eACA,MACA,OACA,eACA,QACA,gBACA,WACA,UACA,KACA,OACA,aACA,eACA,OACA,OACA,aACA,MACA,YACA,UACA,iBACA,eACA,mBACA,cACA,aACA,eACA,WACA,eACA,OACA,oBACA,YACA,aACA,WACA,QACA,OACA,QACA,SACA,gBACA,eACA,QACA,UACA,OACF,EAGMC,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,gBACF,EAEMC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,sBACA,aACA,wBACA,kBACA,mBACA,mBACA,oBACA,sBACA,oBACA,kBACA,SACA,gBACA,sBACA,4BACA,6BACA,sBACA,sBACA,kBACA,eACA,eACA,sBACA,sBACA,qBACA,sBACA,qBACA,cACA,oBACA,oBACA,oBACA,gBACA,eACA,qBACA,qBACA,qBACA,iBACA,eACA,aACA,mBACA,yBACA,0BACA,mBACA,mBACA,eACA,SACA,uBACA,aACA,aACA,cACA,eACA,eACA,eACA,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,WACA,YACA,WACA,YACA,SACA,OACA,SACA,aACA,kBACA,UACA,QACA,UACA,UACA,gBACA,iBACA,gBACA,gBACA,WACA,gBACA,aACA,aACA,UACA,iBACA,eACA,gBACA,cACA,mBACA,oBACA,oBACA,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,SAGD,EAAC,QAAO,EAWT,SAASqpB,EAAO7hC,EAAM,CACpB,MAAMyY,EAAQ5a,EAAMmC,CAAI,EAElB2Y,EAAe,kBACfrI,EAAW,CACf,UAAW,WACX,MAAO,MAAQtQ,EAAK,QACxB,EAEQotB,EAAc,CAClB,UACA,MACA,QACA,SACA,YACA,MACA,SACA,UACA,YACA,QACA,QACA,OACA,OACA,OACJ,EAEQ0U,EAAoB,oBAiB1B,MAAO,CACL,KAAM,SACN,QAAS,CAAE,MAAQ,EACnB,iBAAkB,GAClB,SAAU,iBACV,QAAS,IAnBK,CACd,MACA,iBACA,cACA,cACA,cACA,IACA,OACA,SACA,SACA,MACA,GACJ,EAO2B,KAAK,GAAG,EAAI,IACnC,SAAU,CAGR9hC,EAAK,kBACLA,EAAK,iBAGLA,EAAK,oBACLA,EAAK,qBAGLyY,EAAM,SAGN,CACE,MAAO,4BAA8BqpB,EACrC,UAAW,gBACZ,EAGD,CACE,MAAO,0BAA4BA,EACnC,UAAW,aACZ,EAGD,CACE,MAAO,OAAS1pB,EAAK,KAAK,GAAG,EAAI,IAAM0pB,EACvC,UAAW,cACZ,EAGD,CACE,UAAW,kBACX,MAAO,OAASxpB,EAAe,KAAK,GAAG,EAAI,IAAMwpB,CAClD,EACD,CACE,UAAW,kBACX,MAAO,QAAUvpB,EAAgB,KAAK,GAAG,EAAI,IAAMupB,CACpD,EAEDrpB,EAAM,wBAEN,CACE,UAAW,UACX,MAAO,SACP,OAAQ,CACN,IAAK,QACL,SAAU,CACR,SAAU,UACV,QAASE,EACT,UAAWN,EAAe,KAAK,GAAG,CACnC,EACD,SAAU,CAAErY,EAAK,eAAiB,CACnC,CACF,EAGD,CACE,UAAW,UACX,MAAO,4BAA+BotB,EAAY,KAAK,GAAG,EAAI,OAC/D,EAGD9c,EAGAtQ,EAAK,gBAIL,CACE,UAAW,WACX,MAAO,kCACP,QAAS,QACT,YAAa,GACb,SAAU,CACR,CACE,UAAW,QACX,MAAO,2BACR,EACD,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAU,CACRyY,EAAM,SACNnI,EACAtQ,EAAK,iBACLA,EAAK,gBACLA,EAAK,iBACN,CACF,CACF,CACF,EAKD,CACE,UAAW,YACX,MAAO,OAASwY,EAAW,KAAK,GAAG,EAAI,OACvC,OAAQ,CAEN,IAAK,MACL,SAAU,CACRC,EAAM,SACNnI,EACAtQ,EAAK,iBACLA,EAAK,kBACLA,EAAK,gBACLA,EAAK,qBACLyY,EAAM,SACP,EACD,QAAS,KACT,UAAW,CACZ,CACF,CACF,CACL,CACC,CAED,OAAAspB,GAAiBF,sDC1lBjB,SAASG,EAAQhiC,EAAM,CAgCrB,MAAO,CACL,KAAM,UACN,iBAAkB,GAClB,SAAU,CAlCI,CACd,UAAW,SACX,MAAO;AAAA,cACP,IAAK;AAAA,CACT,EACe,CACX,UAAW,SACX,MAAO,sDACX,EACwB,CACpB,UAAW,SACX,MAAO,aACX,EACmB,CACf,UAAW,UACX,UAAW,GACX,SAAU,CACR,CACE,MAAO,sFACR,EACD,CACE,MAAO,iCACR,EACD,CACE,MAAO,QACR,EACD,CACE,MAAO,QACR,CACF,CACL,CASK,CACL,CACC,CAED,OAAAiiC,GAAiBD,sDCzCjB,SAAS3ub,EAAOkrG,EAAI,CAClB,OAAKA,EACD,OAAOA,GAAO,SAAiBA,EAE5BA,EAAG,OAHM,IAIjB,CAMD,SAAS+uT,EAAU/uT,EAAI,CACrB,OAAOsoM,EAAO,MAAOtoM,EAAI,GAAG,CAC7B,CAMD,SAASsoM,KAAU1oR,EAAM,CAEvB,OADeA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAElD,CASD,SAASunZ,KAAUz9X,EAAM,CAEvB,MADe,IAAMA,EAAK,IAAK9pB,GAAMhB,EAAOgB,CAAC,CAAC,EAAE,KAAK,GAAG,EAAI,GAE7D,CAED,MAAM6tb,EAAiBtjC,GAAW/3G,EAChC,KACA+3G,EACA,MAAM,KAAKA,CAAO,EAAI,KAAO,IAC/B,EAGMujC,EAAc,CAClB,WACA,MACF,EAAE,IAAID,CAAc,EAGdE,EAAsB,CAC1B,OACA,MACF,EAAE,IAAIF,CAAc,EAGdG,EAAe,CACnB,MACA,MACF,EAGM/3B,EAAW,CAIf,iBACA,QACA,QACA,OACA,MACA,KACA,QACA,OACA,QACA,QACA,WACA,cACA,UACA,QACA,SACA,SACA,KACA,UACA,OACA,OACA,YACA,cACA,qBACA,cACA,QACA,MACA,OACA,MACA,QACA,KACA,SACA,WACA,QACA,SACA,QACA,QACA,kBACA,WACA,KACA,KACA,OACA,MACA,WACA,cACA,cACA,OACA,WACA,WACA,WACA,UACA,kBACA,SACA,iBACA,UACA,WACA,gBACA,SACA,SACA,WACA,WACA,SACA,MACA,OACA,SACA,SACA,YACA,QACA,SACA,SACA,QACA,QACA,OACA,MACA,YACA,kBACA,oBACA,UACA,MACA,OACA,QACA,QACA,SACF,EAMMg4B,EAAW,CACf,QACA,MACA,MACF,EAGMC,EAA0B,CAC9B,aACA,gBACA,aACA,OACA,YACA,OACA,OACF,EAIMC,EAAqB,CACzB,gBACA,UACA,aACA,QACA,UACA,SACA,SACA,QACA,UACA,eACA,YACA,YACA,MACA,gBACA,WACA,QACA,YACA,kBACA,2BACA,UACF,EAGMC,EAAW,CACf,MACA,MACA,MACA,SACA,mBACA,aACA,OACA,aACA,YACA,4BACA,MACA,MACA,cACA,eACA,eACA,eACA,sBACA,QACA,WACA,gBACA,WACA,SACA,OACA,oCACA,YACA,OACA,gBACA,iBACA,uBACA,2BACA,oBACA,aACA,0BACA,KACF,EAGMC,EAAe9mC,EACnB,oBACA,kBACA,iBACA,iBACA,iBACA,mCACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,k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ACD,CACL,EAEMnd,EAAO,iIAGX,OAAAA,EAAOA,EAAO,IAAMA,EAAK,MAAM,GAAG,EAAE,IAAI,SAASnka,EAAE,CAAC,MAAO,MAAQA,CAAC,CAAC,EAAE,KAAK,GAAG,EAExE,CACL,KAAM,OACN,QAAS,CAAC,UAAU,EACpB,iBAAkB,GAClB,YAAa,MACb,SAAU,CACR+rZ,EAAK,QAAQ,MAAO,KAAK,EACzB,CACE,UAAW,eACX,MAAO,MAAO,IAAK,MACnB,SAAU,CACR,CACE,UAAW,OACX,MAAO,MACP,SAAUoY,EACV,OAAQ,CACN,eAAgB,GAChB,SAAU,CAACsD,EAAQ6Z,CAAS,EAC5B,UAAW,CACZ,CACF,CACF,CACF,EACD,CACE,UAAW,oBACX,MAAO,OAAQ,IAAK,OACpB,SAAU,CAAC,OAAQ7Z,EAAQ6Z,CAAS,CACrC,CACF,CACL,CACC,CAED,OAAAoR,GAAiBF,sDC5EjB,MAAMrqC,EAAW,2BACX6Q,EAAW,CACf,KACA,KACA,KACA,KACA,MACA,QACA,UACA,MACA,MACA,WACA,KACA,SACA,OACA,OACA,QACA,QACA,aACA,OACA,QACA,OACA,UACA,MACA,SACA,WACA,SACA,SACA,MACA,QACA,QACA,QAIA,WACA,QACA,QACA,SACA,SACA,OACA,SACA,SACF,EACMqF,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,UACF,EAEMiC,EAAQ,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,QACF,EAEMC,EAAc,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,UACF,EAEMC,EAAmB,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,UACF,EAEMC,EAAqB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,QACF,EAEMC,E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SACX,MAAO,sBACR,EACDA,EAAK,QAAQ,IAAK,GAAG,EAErB,CACE,UAAW,WACX,MAAO,qBACR,EACD,CACE,UAAW,WACX,cAAe,qBACf,IAAK,IACL,UAAW,EACX,SAAU,CACRA,EAAK,WACL,CACE,UAAW,SACX,MAAO,MACP,IAAK,KACN,CACF,CACF,EACD,CACE,UAAW,SACX,MAAO,UACR,CACF,CACL,CACC,CAED,OAAA4oC,GAAiBD,sDClHjB,SAASE,EAAO7oC,EAAM,CACpB,MAAO,CACL,KAAM,qBACN,iBAAkB,GAClB,SAAU,CACR,SAAU,QAAUA,EAAK,SACzB,QACE,qteAEF,SAEE,i5CAyCF,KACE,w/BAaH,EACD,SAAU,CACRA,EAAK,QACH,IACA,IACA,CACE,UAAW,CACZ,CACF,EACD,CACE,UAAW,SACX,SAAU,CAER,CACE,MAAO,uHAEP,UAAW,CACZ,EAGD,CACE,MAAO,uBACP,UAAW,CACZ,EAGD,CACE,MAAO,kGACR,EAGD,CACE,MAAO,2EACR,CACF,CACF,EAEDA,EAAK,kBACL,CACE,UAAW,SACX,SAAU,CAER,CACE,MAAO,IACP,IAAK,UACN,EAED,CACE,MAAO,IACP,IAAK,UACN,CACF,EACD,UAAW,CACZ,EACD,CACE,UAAW,SACX,SAAU,CAER,CACE,MAAO,kDACR,EAED,CACE,MAAO,6BACR,CACF,EACD,UAAW,CACZ,EAED,CACE,UAAW,QACX,MAAO,UACP,UAAW,CACZ,EAED,CACE,UAAW,QACX,MAAO,OACP,UAAW,CACZ,EACD,CACE,UAAW,OACX,MAAO,eACR,CACF,CACL,CACC,CAED,OAAA8oC,GAAiBD,sDC3JjB,SAASE,EAAG/oC,EAAM,CAKhB,MAAMgpC,EAAc,CAClB,SAAU,yBACV,QACE,2JAEF,QACE,iBACF,SACE,ujBAXF,wMAqBJ,EAEQC,EAAoB,CACxB,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,KACb,EACQC,EAAoB,CACxB,UAAW,SACX,MAAO,IACP,IAAK,IACL,QAAS,KACb,EACQC,EAAY,CAChB,UAAW,SACX,MAAO,KACP,IAAK,IACT,EACQC,EAAe,CACnB,UAAW,SACX,MAAO,wDACX,EACQtiD,EAAS,CACb,cAAe,SACf,IAAK,IACL,SAAUkiD,EACV,SAAU,CAAEC,CAAmB,CACnC,EACQI,EAAsB,CAC1B,UAAW,WACX,MAAO,gBACP,YAAa,GACb,IAAK,KACL,SAAU,CACRrpC,EAAK,QAAQA,EAAK,WAAY,CAC5B,OAAQ,CACN,eAAgB,GAChB,SAAUgpC,CACX,CACT,CAAO,CACF,CACL,EACE,MAAO,CACL,KAAM,KACN,QAAS,CAAE,KAAO,EAClB,SAAUA,EACV,SAAU,CACRhpC,EAAK,oBACLA,EAAK,qBACLipC,EACAC,EACAC,EACAE,EACAviD,EACAsiD,EACAppC,EAAK,WACN,CACL,CACC,CAED,OAAAspC,GAAiBP,sDC/EjB,SAASQ,EAAOx+B,EAAO,CAsKrB,MAAO,CACL,KAAM,SACN,QAAS,CACP,QACA,IACD,EACD,iBAAkB,GAClB,QAAS,0CACT,SAAU,CACR,SAAU,2BACV,QA7KF,0uBA8KE,KAnKF,osBAoKE,QAhKF,8LAiKC,EACD,SA1Be,CA/EL,CACV,UAAW,WACX,MAAO,aACX,EAvDmB,CACf,UAAW,WACX,SAAU,CACR,CACE,MAAO,WACP,IAAK,2IACN,EACD,CACE,MAAO,SACP,IAAK,mEACN,EACD,CACE,MAAO,UACP,IAAK,0EACN,EACD,CACE,MAAO,QACP,IAAK,KACL,WAAY,EACb,EACD,CACE,MAAO,QACP,IAAK,KACL,WAAY,EACb,EAED,CACE,MAAO,62DACR,EACD,CACE,MAAO,WACP,IAAK,KACL,WAAY,EACb,EACD,CACE,MAAO,SACP,IAAK,oEACN,EACD,CACE,MAAO,uCACP,IAAK,KACL,WAAY,EACb,CACF,CACL,EAmBiB,CACb,UAAW,SACX,SAAU,CACR,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACZ,CACF,CACF,EACD,CACE,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,MAAO,KACP,UAAW,CACZ,CACF,CACF,CACF,CACL,EA9BiB,CACb,UAAW,SACX,MAAO,uEACP,UAAW,CACf,EAiCkB,CACd,UAAW,UACX,MAAO,MACP,IAAK,MACL,UAAW,GACX,SAAU,CACR,CACE,UAAW,SACX,MAAO,MACR,CACF,CACL,EAhBqB,CACjB,UAAW,OACX,MAAO,WACX,EA9CgB,CACZ,UAAW,QACX,MAAO,qDACP,IAAK,GACT,EA4DmB,CACf,cAAe,4DACf,IAAK,KACL,WAAY,EAChB,EAGiB,CACb,MAAO,sCACP,IAAK,iBACL,YAAa,MACb,SAAU,CACR,CACE,MAAO,KACP,IAAK,KACL,YAAa,QACd,EACD,MACD,CACL,CAYA,CAiBA,CACC,CAED,OAAAy+B,GAAiBD,sDC3LjB,SAASE,EAAOzpC,EAAM,CACpB,MAAM1oG,EAAS,CACb,UAAW,SACX,SAAU,CAAE0oG,EAAK,gBAAkB,EACnC,SAAU,CACRA,EAAK,QAAQA,EAAK,iBAAkB,CAClC,QAAS,IACjB,CAAO,EACDA,EAAK,QAAQA,EAAK,kBAAmB,CACnC,QAAS,IACjB,CAAO,CACF,CACL,EACQvC,EAAauC,EAAK,sBAClB9oG,EAAS,CACb,SAAU,CACR8oG,EAAK,mBACLA,EAAK,aACN,CACL,EACQiN,EAEJ,sfAyBF,MAAO,CACL,KAAM,SACN,QAAS,CAAE,KAAO,EAClB,SAAUA,EACV,SAAU,CACRjN,EAAK,oBACLA,EAAK,QACH,OACA,OACA,CACE,SAAU,CACR,CACE,UAAW,SACX,MAAO,YACR,CACF,CACF,CACF,EACD,CACE,UAAW,SACX,MAAO,oBACP,IAAK,QACL,SAAU,CAAEA,EAAK,gBAAkB,CACpC,EACD,CAEE,MAAO,kDACR,EACD,CACE,UAAW,WACX,cAAe,cACf,IAAK,OACL,WAAY,GACZ,QAAS,UACT,SAAU,CACRvC,EACA,CACE,UAAW,SACX,MAAO,KACP,IAAK,KACL,SAAUwP,EACV,SAAU,CACR,OACAjN,EAAK,qBACL1oG,EACAJ,CACD,CACF,CACF,CACF,EACD,CACE,UAAW,QACX,cAAe,kBACf,IAAK,KACL,WAAY,GACZ,QAAS,SACT,SAAU,CACR,CACE,cAAe,oBACh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S,SACV,EACD,cAAe,CACb,MAAS,SACV,EACD,gBAAiB,CACf,MAAS,SACV,EACD,oBAAqB,CACnB,MAAS,SACV,EACD,eAAgB,CACd,MAAS,SACV,EACD,YAAa,CACX,MAAS,SACV,EACD,cAAe,CACb,MAAS,SACV,EACD,YAAa,CACX,MAAS,SACV,EACD,YAAa,CACX,MAAS,SACV,EACD,iBAAkB,CAChB,MAAS,SACV,EACD,cAAe,CACb,MAAS,SACV,EACD,cAAe,CACb,MAAS,SACV,EACD,cAAe,CACb,MAAS,SACV,EACD,gBAAiB,CACf,MAAS,SACV,EACD,aAAc,CACZ,MAAS,SACV,EACD,eAAgB,CACd,MAAS,SACV,EACD,eAAgB,CACd,MAAS,SACV,EACD,oBAAqB,CACnB,MAAS,SACV,EACD,KAAQ,CACN,QAAW,QACX,UAAa,OACb,WAAc,UACd,MAAS,UACT,QAAW,OACZ,EACD,gBAAiB,CACf,UAAa,QACd,EACD,cAAe,CACb,WAAc,MACf,CACH,EC/FeC,IAAA,CACb,KAAQ,CACN,QAAW,QACX,UAAa,OACb,QAAW,QACX,MAAS,UACT,WAAc,SACf,EACD,eAAgB,CACd,MAAS,SACV,EACD,eAAgB,CACd,MAAS,SACV,EACD,oBAAqB,CACnB,MAAS,SACV,EACD,oBAAqB,CACnB,MAAS,SACV,EACD,cAAe,CACb,MAAS,SACV,EACD,eAAgB,CACd,MAAS,SACV,EACD,sBAAuB,CACrB,MAAS,SACV,EACD,YAAa,CACX,MAAS,SACV,EACD,uBAAwB,CACtB,MAAS,SACV,EACD,YAAa,CACX,MAAS,SACV,EACD,iBAAkB,CAChB,MAAS,SACV,EACD,YAAa,CACX,MAAS,SACV,EACD,YAAa,CACX,MAAS,SACV,EACD,cAAe,CACb,MAAS,SACV,EACD,mBAAoB,CAClB,MAAS,SACV,EACD,aAAc,CACZ,MAAS,SACV,EACD,oBAAqB,CACnB,MAAS,SACV,EACD,gBAAiB,CACf,MAAS,SACV,EACD,aAAc,CACZ,MAAS,SACV,EACD,eAAgB,CACd,MAAS,SACV,EACD,cAAe,CACb,MAAS,SACV,E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,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACvH,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MA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U,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,KACV,IAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,KACV,EAAU,KACV,EAAU,KACV,EAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,KACV,EAAU,KACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,IAAU,KACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,IACV,EAAU,GAClB,EACIA,EAAS,YAAc,CAWnB,MAAO,SAAU5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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019,1020,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1538,1539,1540,1541,1542,1543,1544,1545,1546,1547,1548,1549,1550,1551,1552,1553,1554,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1619,1620,1621,1622,1623,1624,1625,1626,1627,1628,1629,1630,1631,1632,1633,1634,1635,1636,1637,1638,1639,1640,1641,1642,1643,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,1751,1752,1753,1754,1755,1756,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1769,1770,1771,1772,1773,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045]}